]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/commitdiff
Merge remote-tracking branch 'stevee/mc-update' into thirteen
authorMichael Tremer <michael.tremer@ipfire.org>
Wed, 19 Dec 2012 20:57:38 +0000 (21:57 +0100)
committerMichael Tremer <michael.tremer@ipfire.org>
Wed, 19 Dec 2012 20:57:38 +0000 (21:57 +0100)
810 files changed:
config/acpid/power [new file with mode: 0644]
config/acpid/power.sh [new file with mode: 0644]
config/asterisk/asterisk.makeopts
config/backup/includes/lcr
config/backup/includes/pakfire3 [new file with mode: 0644]
config/bash/dot_bash_logout [new file with mode: 0644]
config/bash/dot_bash_profile [new file with mode: 0644]
config/bash/dot_bashrc [new file with mode: 0644]
config/collectd/collectd.conf
config/etc/bashrc
config/etc/inputrc
config/etc/profile
config/etc/securetty
config/etc/sysctl.conf
config/grub/grub.conf
config/hostapd/config
config/hostapd/hostapd.conf
config/include/obsolete_videodev.h [new file with mode: 0644]
config/kernel/kernel.config.armv5tel-ipfire-kirkwood
config/kernel/kernel.config.armv5tel-ipfire-omap [new file with mode: 0644]
config/kernel/kernel.config.armv5tel-ipfire-rpi [moved from config/kernel/kernel.config.armv5tel-ipfire-versatile with 68% similarity]
config/kernel/kernel.config.i586-ipfire
config/kernel/kernel.config.i586-ipfire-pae
config/kernel/kernel.config.i586-ipfire-xen
config/madwifi/madwifi.conf [deleted file]
config/profile.d/colorls.sh [new file with mode: 0644]
config/profile.d/dircolors.sh [deleted file]
config/profile.d/extrapaths.sh
config/profile.d/glib2-locale.sh [new file with mode: 0644]
config/profile.d/i18n.sh
config/profile.d/lang.sh [new file with mode: 0644]
config/profile.d/term256.sh [new file with mode: 0644]
config/qos/makeqosscripts.pl
config/rootfiles/common/Crypt-PasswdMD5
config/rootfiles/common/armv5tel/binutils
config/rootfiles/common/armv5tel/dracut [new file with mode: 0644]
config/rootfiles/common/armv5tel/gcc
config/rootfiles/common/armv5tel/glibc
config/rootfiles/common/armv5tel/initscripts
config/rootfiles/common/armv5tel/installer [new file with mode: 0644]
config/rootfiles/common/armv5tel/linux-headers [new file with mode: 0644]
config/rootfiles/common/armv5tel/linux-kirkwood
config/rootfiles/common/armv5tel/linux-omap [new file with mode: 0644]
config/rootfiles/common/armv5tel/linux-rpi [new file with mode: 0644]
config/rootfiles/common/armv5tel/linux-versatile [deleted file]
config/rootfiles/common/armv5tel/rpi-firmware [new file with mode: 0644]
config/rootfiles/common/armv5tel/u-boot [new file with mode: 0644]
config/rootfiles/common/armv5tel/uboot [deleted file]
config/rootfiles/common/autoconf
config/rootfiles/common/automake
config/rootfiles/common/bash
config/rootfiles/common/bridge-utils
config/rootfiles/common/cairo [new file with mode: 0644]
config/rootfiles/common/cmake
config/rootfiles/common/collectd
config/rootfiles/common/compat-wireless
config/rootfiles/common/coreutils
config/rootfiles/common/curl
config/rootfiles/common/dejavu-fonts-ttf [new file with mode: 0644]
config/rootfiles/common/dvb-firmwares [new file with mode: 0644]
config/rootfiles/common/e2fsprogs
config/rootfiles/common/file
config/rootfiles/common/fontconfig [moved from config/rootfiles/packages/fontconfig with 99% similarity]
config/rootfiles/common/fw_ath9k_htc [deleted file]
config/rootfiles/common/gettext
config/rootfiles/common/glib [moved from config/rootfiles/packages/glib with 60% similarity]
config/rootfiles/common/gmp
config/rootfiles/common/gmp-compat [new file with mode: 0644]
config/rootfiles/common/gnupg
config/rootfiles/common/grep
config/rootfiles/common/hddtemp [deleted file]
config/rootfiles/common/i586/acpid [new file with mode: 0644]
config/rootfiles/common/i586/binutils
config/rootfiles/common/i586/dracut [moved from config/rootfiles/common/dracut with 100% similarity]
config/rootfiles/common/i586/gcc
config/rootfiles/common/i586/glibc
config/rootfiles/common/i586/grub
config/rootfiles/common/i586/initscripts
config/rootfiles/common/i586/kqemu [deleted file]
config/rootfiles/common/i586/linux
config/rootfiles/common/i586/linux-headers [new file with mode: 0644]
config/rootfiles/common/i586/madwifi [deleted file]
config/rootfiles/common/i586/strongswan-padlock [new file with mode: 0644]
config/rootfiles/common/iproute2
config/rootfiles/common/iptables
config/rootfiles/common/iptstate [deleted file]
config/rootfiles/common/kudzu [deleted file]
config/rootfiles/common/less
config/rootfiles/common/libaal [deleted file]
config/rootfiles/common/libffi [new file with mode: 0644]
config/rootfiles/common/libsafe [deleted file]
config/rootfiles/common/libsigc++
config/rootfiles/common/libtool [new file with mode: 0644]
config/rootfiles/common/linux-atm
config/rootfiles/common/linux-firmware
config/rootfiles/common/linux-libc-header [deleted file]
config/rootfiles/common/mISDNuser
config/rootfiles/common/mbr
config/rootfiles/common/misc-progs
config/rootfiles/common/mpfr [new file with mode: 0644]
config/rootfiles/common/ncurses
config/rootfiles/common/newt
config/rootfiles/common/openldap
config/rootfiles/common/openssl
config/rootfiles/common/pam
config/rootfiles/common/pango [new file with mode: 0644]
config/rootfiles/common/pciutils
config/rootfiles/common/pcre
config/rootfiles/common/pcre-compat [new file with mode: 0644]
config/rootfiles/common/pixman [new file with mode: 0644]
config/rootfiles/common/procps
config/rootfiles/common/readline
config/rootfiles/common/readline-compat [new file with mode: 0644]
config/rootfiles/common/reiser4progs [deleted file]
config/rootfiles/common/rrdtool
config/rootfiles/common/sdparm
config/rootfiles/common/sed
config/rootfiles/common/shadow
config/rootfiles/common/smartmontools
config/rootfiles/common/stage2
config/rootfiles/common/strongswan
config/rootfiles/common/sysfsutils
config/rootfiles/common/sysvinit
config/rootfiles/common/texinfo
config/rootfiles/common/tzdata
config/rootfiles/common/uClibc [deleted file]
config/rootfiles/common/udev
config/rootfiles/common/usbutils
config/rootfiles/common/xz
config/rootfiles/common/zlib
config/rootfiles/core/66/exclude [new file with mode: 0644]
config/rootfiles/core/66/filelists/GeoIP [new file with mode: 0644]
config/rootfiles/core/66/filelists/armv5tel/binutils [new symlink]
config/rootfiles/core/66/filelists/armv5tel/dracut [new symlink]
config/rootfiles/core/66/filelists/armv5tel/gcc [new symlink]
config/rootfiles/core/66/filelists/armv5tel/glibc [new symlink]
config/rootfiles/core/66/filelists/armv5tel/linux-kirkwood [new symlink]
config/rootfiles/core/66/filelists/armv5tel/linux-omap [new symlink]
config/rootfiles/core/66/filelists/armv5tel/linux-rpi [new symlink]
config/rootfiles/core/66/filelists/armv5tel/rpi-firmware [new symlink]
config/rootfiles/core/66/filelists/armv5tel/u-boot [new symlink]
config/rootfiles/core/66/filelists/armv5tel/util-linux [new symlink]
config/rootfiles/core/66/filelists/autoconf [new symlink]
config/rootfiles/core/66/filelists/automake [new symlink]
config/rootfiles/core/66/filelists/bash [new symlink]
config/rootfiles/core/66/filelists/bridge-utils [new symlink]
config/rootfiles/core/66/filelists/cairo [new symlink]
config/rootfiles/core/66/filelists/capi4k-utils [new symlink]
config/rootfiles/core/66/filelists/cmake [new symlink]
config/rootfiles/core/66/filelists/collectd [new symlink]
config/rootfiles/core/66/filelists/compat-wireless [new symlink]
config/rootfiles/core/66/filelists/coreutils [new symlink]
config/rootfiles/core/66/filelists/curl [new symlink]
config/rootfiles/core/66/filelists/cyrus-sasl [new symlink]
config/rootfiles/core/66/filelists/daq [new symlink]
config/rootfiles/core/66/filelists/dejavu-fonts-ttf [new symlink]
config/rootfiles/core/66/filelists/dhcp [new symlink]
config/rootfiles/core/66/filelists/dvb-firmwares [new symlink]
config/rootfiles/core/66/filelists/e2fsprogs [new symlink]
config/rootfiles/core/66/filelists/file [new symlink]
config/rootfiles/core/66/filelists/files [new file with mode: 0644]
config/rootfiles/core/66/filelists/fontconfig [new symlink]
config/rootfiles/core/66/filelists/gawk [new symlink]
config/rootfiles/core/66/filelists/gettext [new symlink]
config/rootfiles/core/66/filelists/glib [new symlink]
config/rootfiles/core/66/filelists/gmp [new symlink]
config/rootfiles/core/66/filelists/gmp-compat [new symlink]
config/rootfiles/core/66/filelists/gnupg [new symlink]
config/rootfiles/core/66/filelists/grep [new symlink]
config/rootfiles/core/66/filelists/hdparm [new symlink]
config/rootfiles/core/66/filelists/i586/acpi-init [new file with mode: 0644]
config/rootfiles/core/66/filelists/i586/acpid [new symlink]
config/rootfiles/core/66/filelists/i586/binutils [new symlink]
config/rootfiles/core/66/filelists/i586/dracut [new symlink]
config/rootfiles/core/66/filelists/i586/gcc [new symlink]
config/rootfiles/core/66/filelists/i586/glibc [new symlink]
config/rootfiles/core/66/filelists/i586/grub [new symlink]
config/rootfiles/core/66/filelists/i586/linux [new symlink]
config/rootfiles/core/66/filelists/i586/strongswan-padlock [new symlink]
config/rootfiles/core/66/filelists/i586/util-linux [new symlink]
config/rootfiles/core/66/filelists/inetutils [new symlink]
config/rootfiles/core/66/filelists/iproute2 [new symlink]
config/rootfiles/core/66/filelists/iptables [new symlink]
config/rootfiles/core/66/filelists/kbd [new symlink]
config/rootfiles/core/66/filelists/less [new symlink]
config/rootfiles/core/66/filelists/libffi [new symlink]
config/rootfiles/core/66/filelists/libnl [new symlink]
config/rootfiles/core/66/filelists/libsigc++ [new symlink]
config/rootfiles/core/66/filelists/libtool [new symlink]
config/rootfiles/core/66/filelists/linux-atm [new symlink]
config/rootfiles/core/66/filelists/linux-firmware [new symlink]
config/rootfiles/core/66/filelists/m4 [new symlink]
config/rootfiles/core/66/filelists/mISDNuser [new symlink]
config/rootfiles/core/66/filelists/man [new symlink]
config/rootfiles/core/66/filelists/misc-progs [new symlink]
config/rootfiles/core/66/filelists/mpfr [new symlink]
config/rootfiles/core/66/filelists/ncurses [new symlink]
config/rootfiles/core/66/filelists/newt [new symlink]
config/rootfiles/core/66/filelists/openldap [new symlink]
config/rootfiles/core/66/filelists/openssl [new symlink]
config/rootfiles/core/66/filelists/pam [new symlink]
config/rootfiles/core/66/filelists/pango [new symlink]
config/rootfiles/core/66/filelists/pciutils [new symlink]
config/rootfiles/core/66/filelists/pcmciautils [new symlink]
config/rootfiles/core/66/filelists/pcre [new symlink]
config/rootfiles/core/66/filelists/pcre-compat [new symlink]
config/rootfiles/core/66/filelists/pixman [new symlink]
config/rootfiles/core/66/filelists/popt [new symlink]
config/rootfiles/core/66/filelists/pptp [new symlink]
config/rootfiles/core/66/filelists/readline [new symlink]
config/rootfiles/core/66/filelists/readline-compat [new symlink]
config/rootfiles/core/66/filelists/reiserfsprogs [new symlink]
config/rootfiles/core/66/filelists/rrdtool [new symlink]
config/rootfiles/core/66/filelists/screen [new symlink]
config/rootfiles/core/66/filelists/sdparm [new symlink]
config/rootfiles/core/66/filelists/sed [new symlink]
config/rootfiles/core/66/filelists/setup [new symlink]
config/rootfiles/core/66/filelists/shadow [new symlink]
config/rootfiles/core/66/filelists/slang [new symlink]
config/rootfiles/core/66/filelists/smartmontools [new symlink]
config/rootfiles/core/66/filelists/snort [new symlink]
config/rootfiles/core/66/filelists/stage2-partial [new file with mode: 0644]
config/rootfiles/core/66/filelists/strongswan [new symlink]
config/rootfiles/core/66/filelists/sysfsutils [new symlink]
config/rootfiles/core/66/filelists/sysvinit [new symlink]
config/rootfiles/core/66/filelists/texinfo [new symlink]
config/rootfiles/core/66/filelists/tzdata [new symlink]
config/rootfiles/core/66/filelists/udev [new symlink]
config/rootfiles/core/66/filelists/usbutils [new symlink]
config/rootfiles/core/66/filelists/vim [new symlink]
config/rootfiles/core/66/filelists/wget [new symlink]
config/rootfiles/core/66/filelists/wpa_supplicant [new symlink]
config/rootfiles/core/66/filelists/xz [new symlink]
config/rootfiles/core/66/filelists/zlib [new symlink]
config/rootfiles/core/66/meta [new file with mode: 0644]
config/rootfiles/core/66/update.sh [new file with mode: 0644]
config/rootfiles/installer/findutils [new symlink]
config/rootfiles/installer/kudzu [deleted symlink]
config/rootfiles/installer/libsafe [deleted symlink]
config/rootfiles/installer/pcre [new symlink]
config/rootfiles/packages/alsa
config/rootfiles/packages/applejuice [deleted file]
config/rootfiles/packages/asterisk
config/rootfiles/packages/bluetooth
config/rootfiles/packages/centerim [deleted file]
config/rootfiles/packages/cups
config/rootfiles/packages/dahdi [deleted file]
config/rootfiles/packages/directfb [deleted file]
config/rootfiles/packages/ebtables
config/rootfiles/packages/flac
config/rootfiles/packages/git
config/rootfiles/packages/gnump3d
config/rootfiles/packages/gpgme [new file with mode: 0644]
config/rootfiles/packages/hplip
config/rootfiles/packages/ipfireseeder [deleted file]
config/rootfiles/packages/lcr
config/rootfiles/packages/libassuan [new file with mode: 0644]
config/rootfiles/packages/libgpg-error [new file with mode: 0644]
config/rootfiles/packages/libogg
config/rootfiles/packages/libsolv
config/rootfiles/packages/libtool [deleted file]
config/rootfiles/packages/libvorbis
config/rootfiles/packages/linux-pae
config/rootfiles/packages/linux-xen
config/rootfiles/packages/pakfire3 [new file with mode: 0644]
config/rootfiles/packages/pakfire3-deps [deleted file]
config/rootfiles/packages/pycurl [new file with mode: 0644]
config/rootfiles/packages/pygpgme [new file with mode: 0644]
config/rootfiles/packages/python-rssdler
config/rootfiles/packages/qemu-kqemu [deleted file]
config/rootfiles/packages/splix [deleted file]
config/rootfiles/packages/urlgrabber
config/rootfiles/packages/videolan [deleted file]
config/rootfiles/packages/w_scan
config/rpi-firmware/config.txt [new file with mode: 0644]
config/u-boot/boot.scr [new file with mode: 0755]
config/u-boot/boot.script [new file with mode: 0755]
config/u-boot/convert_bootscript [new file with mode: 0755]
config/uClibc/busybox.config [deleted file]
config/uClibc/codesets.txt [deleted file]
config/uClibc/locales.txt [deleted file]
config/uClibc/uClibc.config-i586 [deleted file]
config/udev/10-dvb.rules [deleted file]
config/udev/25-alsa.rules [new file with mode: 0644]
config/udev/55-scsi-cdrom.rules [deleted file]
config/udev/99-codel.rules [new file with mode: 0644]
config/udev/dvb.sh [deleted file]
config/udev/enable_codel [moved from src/paks/ipfireseeder/install.sh with 69% similarity]
config/w_scan/w_scan_start [new file with mode: 0755]
config/wpa_supplicant/config
html/cgi-bin/qos.cgi
html/cgi-bin/services.cgi
html/cgi-bin/vpnmain.cgi
html/cgi-bin/wlanap.cgi
lfs/Config
lfs/acpid [new file with mode: 0644]
lfs/alsa
lfs/apcupsd
lfs/autoconf
lfs/automake
lfs/bash
lfs/binutils
lfs/bluetooth
lfs/bridge-utils
lfs/cairo [new file with mode: 0644]
lfs/capi4k-utils
lfs/ccache
lfs/cleanup-toolchain
lfs/cmake
lfs/collectd
lfs/compat-wireless
lfs/core-updates
lfs/coreutils
lfs/cpufrequtils
lfs/cryptodev
lfs/curl
lfs/cyrus-imapd
lfs/cyrus-sasl
lfs/dahdi [deleted file]
lfs/dbus
lfs/dejavu-fonts-ttf [moved from lfs/iptstate with 94% similarity]
lfs/dhcp
lfs/directfb
lfs/dracut
lfs/dvb-firmwares [new file with mode: 0644]
lfs/e1000
lfs/e1000e
lfs/e2fsprogs
lfs/ebtables
lfs/fake-environ
lfs/file
lfs/flash-images
lfs/fontconfig
lfs/gawk
lfs/gcc
lfs/gettext
lfs/glib
lfs/glibc
lfs/gmp
lfs/gmp-compat [moved from lfs/splix with 88% similarity]
lfs/gnupg
lfs/gpgme [new file with mode: 0644]
lfs/grep
lfs/grub
lfs/hdparm
lfs/hostapd
lfs/hplip
lfs/hwdata
lfs/igb
lfs/imspector
lfs/inetutils
lfs/initrd
lfs/initscripts
lfs/installer
lfs/ipfireseeder [deleted file]
lfs/iproute2
lfs/iptables
lfs/kbd
lfs/kudzu [deleted file]
lfs/kvm-kmod
lfs/lcr
lfs/less
lfs/libassuan [new file with mode: 0644]
lfs/libffi [moved from lfs/centerim with 93% similarity]
lfs/libgpg-error [new file with mode: 0644]
lfs/libmad
lfs/libnl
lfs/libogg
lfs/libsafe [deleted file]
lfs/libsigc++
lfs/libsolv
lfs/libtool
lfs/libvorbis
lfs/linux
lfs/linux-firmware
lfs/linux-libc-header [deleted file]
lfs/linux-xen
lfs/linux2 [new file with mode: 0644]
lfs/m4
lfs/mISDN
lfs/mISDNuser
lfs/madwifi [deleted file]
lfs/make
lfs/man
lfs/mbr
lfs/mc
lfs/minidlna
lfs/miniupnpd
lfs/misc-progs
lfs/motion
lfs/mpd
lfs/mpfr [moved from lfs/reiser4progs with 93% similarity]
lfs/nagios
lfs/ncurses
lfs/netpbm
lfs/newt
lfs/nut
lfs/openldap
lfs/openvmtools
lfs/pakfire3 [moved from lfs/qemu-kqemu with 81% similarity]
lfs/pakfire3-deps [deleted file]
lfs/pango [moved from lfs/fw_ath9k_htc with 90% similarity]
lfs/pciutils
lfs/pcmciautils
lfs/pcre
lfs/pcre-compat [moved from lfs/hddtemp with 91% similarity]
lfs/php
lfs/pixman [moved from lfs/libaal with 96% similarity]
lfs/popt
lfs/postfix
lfs/ppp
lfs/pptp
lfs/pycurl [moved from lfs/kqemu with 84% similarity]
lfs/pygpgme [new file with mode: 0644]
lfs/qemu
lfs/r8101
lfs/r8168
lfs/r8169
lfs/readline
lfs/readline-compat [moved from lfs/applejuice with 82% similarity]
lfs/reiserfsprogs
lfs/rpi-firmware [new file with mode: 0644]
lfs/rrdtool
lfs/screen
lfs/sdl
lfs/sdparm
lfs/sed
lfs/slang
lfs/smartmontools
lfs/stage2
lfs/streamripper
lfs/strip
lfs/strongswan
lfs/sysfsutils
lfs/sysvinit
lfs/texinfo
lfs/tzdata
lfs/u-boot
lfs/udev
lfs/urlgrabber
lfs/usb-stick
lfs/util-linux
lfs/v4l-dvb
lfs/vdr
lfs/videolan [deleted file]
lfs/w_scan
lfs/wget
lfs/wpa_supplicant
lfs/xen-image
lfs/xfsprogs
lfs/xz
lfs/zlib
make.sh
src/fake-environ/Makefile
src/initscripts/init.d/acpid [new file with mode: 0644]
src/initscripts/init.d/cpufreq
src/initscripts/init.d/firstsetup
src/initscripts/init.d/fsresize
src/initscripts/init.d/halt
src/initscripts/init.d/ipfireseeder [deleted file]
src/initscripts/init.d/minidlna [changed mode: 0755->0644]
src/initscripts/init.d/mountfs
src/initscripts/init.d/network
src/initscripts/init.d/network-vlans [changed mode: 0755->0644]
src/initscripts/init.d/partresize
src/initscripts/init.d/reboot
src/initscripts/init.d/sendsignals
src/initscripts/init.d/setclock
src/initscripts/init.d/tmpfs
src/initscripts/sysconfig/rc.local
src/install+setup/install/Makefile
src/install+setup/install/main.c
src/install+setup/install/mountdest.sh
src/install+setup/install/mountsource.sh
src/install+setup/install/probehw.sh [deleted file]
src/install+setup/install/probenic.sh
src/install+setup/libsmooth/Makefile
src/install+setup/libsmooth/netstuff.c
src/misc-progs/Makefile
src/misc-progs/getiptstate.c [deleted file]
src/misc-progs/ipsecctrl.c
src/misc-progs/rebuildhosts.c
src/misc-progs/setportfw.c
src/paks/applejuice/install.sh [deleted file]
src/paks/applejuice/uninstall.sh [deleted file]
src/paks/applejuice/update.sh [deleted file]
src/paks/files
src/paks/ipfireseeder/uninstall.sh [deleted file]
src/paks/ipfireseeder/update.sh [deleted file]
src/paks/linux-pae/install.sh
src/paks/linux-xen/install.sh
src/patches/bash-3.1-fixes-8.patch [deleted file]
src/patches/bash-3.1-login.patch [deleted file]
src/patches/bash-3.2-ssh_source_bash.patch [new file with mode: 0644]
src/patches/bash-4.0-paths-1.patch [new file with mode: 0644]
src/patches/bash-4.0-profile-1.patch [new file with mode: 0644]
src/patches/bash/bash32-001 [new file with mode: 0644]
src/patches/bash/bash32-002 [new file with mode: 0644]
src/patches/bash/bash32-003 [new file with mode: 0644]
src/patches/bash/bash32-004 [new file with mode: 0644]
src/patches/bash/bash32-005 [new file with mode: 0644]
src/patches/bash/bash32-006 [new file with mode: 0644]
src/patches/bash/bash32-007 [new file with mode: 0644]
src/patches/bash/bash32-008 [new file with mode: 0644]
src/patches/bash/bash32-009 [new file with mode: 0644]
src/patches/bash/bash32-010 [new file with mode: 0644]
src/patches/bash/bash32-011 [new file with mode: 0644]
src/patches/bash/bash32-012 [new file with mode: 0644]
src/patches/bash/bash32-013 [new file with mode: 0644]
src/patches/bash/bash32-014 [new file with mode: 0644]
src/patches/bash/bash32-015 [new file with mode: 0644]
src/patches/bash/bash32-016 [new file with mode: 0644]
src/patches/bash/bash32-017 [new file with mode: 0644]
src/patches/bash/bash32-018 [new file with mode: 0644]
src/patches/bash/bash32-019 [new file with mode: 0644]
src/patches/bash/bash32-020 [new file with mode: 0644]
src/patches/bash/bash32-021 [new file with mode: 0644]
src/patches/bash/bash32-022 [new file with mode: 0644]
src/patches/bash/bash32-023 [new file with mode: 0644]
src/patches/bash/bash32-024 [new file with mode: 0644]
src/patches/bash/bash32-025 [new file with mode: 0644]
src/patches/bash/bash32-026 [new file with mode: 0644]
src/patches/bash/bash32-027 [new file with mode: 0644]
src/patches/bash/bash32-028 [new file with mode: 0644]
src/patches/bash/bash32-029 [new file with mode: 0644]
src/patches/bash/bash32-030 [new file with mode: 0644]
src/patches/bash/bash32-031 [new file with mode: 0644]
src/patches/bash/bash32-032 [new file with mode: 0644]
src/patches/bash/bash32-033 [new file with mode: 0644]
src/patches/bash/bash32-034 [new file with mode: 0644]
src/patches/bash/bash32-035 [new file with mode: 0644]
src/patches/bash/bash32-036 [new file with mode: 0644]
src/patches/bash/bash32-037 [new file with mode: 0644]
src/patches/bash/bash32-038 [new file with mode: 0644]
src/patches/bash/bash32-039 [new file with mode: 0644]
src/patches/bash/bash32-040 [new file with mode: 0644]
src/patches/bash/bash32-041 [new file with mode: 0644]
src/patches/bash/bash32-042 [new file with mode: 0644]
src/patches/bash/bash32-043 [new file with mode: 0644]
src/patches/bash/bash32-044 [new file with mode: 0644]
src/patches/bash/bash32-045 [new file with mode: 0644]
src/patches/bash/bash32-046 [new file with mode: 0644]
src/patches/bash/bash32-047 [new file with mode: 0644]
src/patches/bash/bash32-048 [new file with mode: 0644]
src/patches/bash/bash32-049 [new file with mode: 0644]
src/patches/bash/bash32-050 [new file with mode: 0644]
src/patches/bash/bash32-051 [new file with mode: 0644]
src/patches/binutils-2.18-configure-1.patch [deleted file]
src/patches/ccache-3.1.6-no_compiler_mtime.patch [deleted file]
src/patches/compat-wireless-3.5-build_ath5k_only_with_pci.patch [new file with mode: 0644]
src/patches/compat-wireless-3.5-libertas_uap.patch [moved from src/patches/compat-wireless-3.0-libertas_uap.patch with 97% similarity]
src/patches/compat-wireless_codel-avoid-a-nul-rec_inv_sqrt.patch [new file with mode: 0644]
src/patches/coreutils-5.96-futimes.patch [new file with mode: 0644]
src/patches/cyrus-sasl-2.1.22-bad-elif.patch [new file with mode: 0644]
src/patches/dbus-1.0.3-compile-fix-1.patch [new file with mode: 0644]
src/patches/dhcp-3.1_linux3.patch [new file with mode: 0644]
src/patches/directfb-1.1.1-fix-mknod.patch [new file with mode: 0644]
src/patches/gcc-4.0.4-specs-1.patch [deleted file]
src/patches/gcc-4.1.2-arm-linux-soft-float.patch [deleted file]
src/patches/gcc-4.1.2-fix_linker_version_detection.patch [deleted file]
src/patches/gcc-4.1.2-gcc_eh.patch [deleted file]
src/patches/gcc-4.1.2-specs-1.patch [deleted file]
src/patches/gcc-4.4.3-startfiles_fix-1.patch [new file with mode: 0644]
src/patches/gcc-libstdc++-pic.patch [deleted file]
src/patches/gcc-sdk-libstdc++-includes.patch [deleted file]
src/patches/gcc-uclibc-conf.patch [deleted file]
src/patches/gcc-uclibc-locale.patch [deleted file]
src/patches/gcc/gcc44-build-id.patch [new file with mode: 0644]
src/patches/gcc/gcc44-c++-builtin-redecl.patch [new file with mode: 0644]
src/patches/gcc/gcc44-i386-libgomp.patch [new file with mode: 0644]
src/patches/gcc/gcc44-libtool-no-rpath.patch [new file with mode: 0644]
src/patches/gcc/gcc44-no-add-needed.patch [new file with mode: 0644]
src/patches/gcc/gcc44-pr33763.patch [new file with mode: 0644]
src/patches/gcc/gcc44-rh330771.patch [new file with mode: 0644]
src/patches/gcc/gcc44-rh533181.patch [new file with mode: 0644]
src/patches/gcc/gcc44-rh610785.patch [new file with mode: 0644]
src/patches/gcc/gcc44-unwind-debug-hook.patch [new file with mode: 0644]
src/patches/glibc-2.3.6-dont_use_origin_on_privil_exec.patch [deleted file]
src/patches/glibc-2.3.6-inotify-1.patch [deleted file]
src/patches/glibc-2.3.6-linux_types-1.patch [deleted file]
src/patches/glibc-arm-dont-use-swp.patch [new file with mode: 0644]
src/patches/glibc-cfi-entry-not-closed.patch [new file with mode: 0644]
src/patches/glibc-ports-avoid-using-asm-procinfo.patch [deleted file]
src/patches/glibc-remove-ctors-dtors-output-sections.patch [new file with mode: 0644]
src/patches/glibc-resolv-stack_chk_fail.patch [new file with mode: 0644]
src/patches/glibc-test-installation.pl-libgcc_s.patch [new file with mode: 0644]
src/patches/glibc-test-installation.pl-nss_test1.patch [new file with mode: 0644]
src/patches/glibc/glibc-aliasing.patch [new file with mode: 0644]
src/patches/glibc/glibc-fedora.patch [new file with mode: 0644]
src/patches/glibc/glibc-getlogin-r.patch [new file with mode: 0644]
src/patches/glibc/glibc-localedata.patch [new file with mode: 0644]
src/patches/glibc/glibc-recvmmsg.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh580498.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh582738.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh587360.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh593396.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh593686.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh601686.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh607010.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh607461.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh615090.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh615701.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh621959.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh623187.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh625893.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh630801.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh631011.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh641128.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh642584.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh643822.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh645672.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh646954.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh647448.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh652661.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh656014.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh656530.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh657572.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh661982.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh667974.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh676076.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh676591.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh681054.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh688720.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh688980.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh689471.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh692177.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh692838.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh694386.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh695595.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh695963.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh696472.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh697421.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh699724.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh700507.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh703480.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh703481.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh705465.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh711927.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh711987.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh712248.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh713134.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh714823.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh718057.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh726517.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh730379.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh731042.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh736346.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh737778.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh738665.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh738763.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh739184.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh739971.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh740506-2.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh740506.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh749188.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh750531.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh751750.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh752122.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh757888.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh766513.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh767146.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh767693-2.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh767693.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh767746.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh771342.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh782585.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh784402.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh785984.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh788959-2.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh788959.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh789189.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh789209.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh789238-2.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh789238.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh794817-2.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh794817.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh795498.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh797094-1.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh797094-2.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh804630.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh804689.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh808337.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh808545.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh809602.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh833716.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh837026.patch [new file with mode: 0644]
src/patches/grep-2.5.1a-redhat_fixes-2.patch [deleted file]
src/patches/grub-0.90-append.patch [deleted file]
src/patches/grub-0.90-symlinkmenulst.patch [deleted file]
src/patches/grub-0.91-splashimagehelp.patch [deleted file]
src/patches/grub-0.93-configfile.patch [deleted file]
src/patches/grub-0.93-endedit.patch [deleted file]
src/patches/grub-0.93-graphics-bootterm.patch [deleted file]
src/patches/grub-0.93-special-device-names.patch [deleted file]
src/patches/grub-0.94-i2o.patch [deleted file]
src/patches/grub-0.94-installcopyonly.patch [deleted file]
src/patches/grub-0.95-graphics.patch [deleted file]
src/patches/grub-0.95-hiddenmenu-tweak.patch [deleted file]
src/patches/grub-0.95-md-mbr.patch [deleted file]
src/patches/grub-0.95-md-rework.patch [deleted file]
src/patches/grub-0.95-md.patch [deleted file]
src/patches/grub-0.95-moreraid.patch [deleted file]
src/patches/grub-0.95-nonmbr.patch [deleted file]
src/patches/grub-0.95-odirect.patch [deleted file]
src/patches/grub-0.95-recheck-bad.patch [deleted file]
src/patches/grub-0.95-splash-error-term.patch [deleted file]
src/patches/grub-0.95-staticcurses.patch [deleted file]
src/patches/grub-0.95-xpmjunk.patch [deleted file]
src/patches/grub-0.97-bz429187-cciss.patch [deleted file]
src/patches/grub-0.97-cmdline-size.patch [deleted file]
src/patches/grub-0.97-datadir.patch [deleted file]
src/patches/grub-0.97-disk_geometry-1.patch [deleted file]
src/patches/grub-0.97-dmraid-partition-names.patch [deleted file]
src/patches/grub-0.97-dmraid-recheck-bad.patch [deleted file]
src/patches/grub-0.97-dmraid.patch [deleted file]
src/patches/grub-0.97-install.in.patch [deleted file]
src/patches/grub-0.97-mactel-kbd.patch [deleted file]
src/patches/grub-0.97-mdadm-path.patch [deleted file]
src/patches/grub-0.97-mpath.patch [deleted file]
src/patches/grub-0.97-nx-multiinstall.patch [deleted file]
src/patches/grub-0.97-nxstack.patch [deleted file]
src/patches/grub-0.97-once.patch [deleted file]
src/patches/grub-0.97-prototypes.patch [deleted file]
src/patches/grub-0.97-stderr.patch [deleted file]
src/patches/grub-0.97_grub-install_virtio.patch [deleted file]
src/patches/grub-gentoo-14.patch [new file with mode: 0644]
src/patches/iptables-1.4.12-IMQ-test4.diff [moved from src/patches/iptables-1.4.6-imq_test1.patch with 60% similarity]
src/patches/iptables-1.4.14-ipp2p-0.8.2-ipfire.patch [moved from src/patches/iptables-1.4.6-ipp2p-0.8.2-pomng.patch with 99% similarity]
src/patches/iptables-1.4.6-errorno_includes.patch [deleted file]
src/patches/kudzu-link-lintl.diff [deleted file]
src/patches/kudzu-usbnet.patch [deleted file]
src/patches/kvm-kmod-2.6.38.6_remove_pvclock_scale_delta_redifinition.patch [deleted file]
src/patches/kvm-kmod-3.0b_remove_pvclock_scale_delta_redefinition.patch [deleted file]
src/patches/libmad-0.15.1b-cflags-O2.patch [new file with mode: 0644]
src/patches/libmad-0.15.1b-cflags.patch [new file with mode: 0644]
src/patches/libnl-1.1-ULONG_MAX.patch [new file with mode: 0644]
src/patches/libsafe-alpha.diff [deleted file]
src/patches/libsafe-functioncaching.diff [deleted file]
src/patches/libsigc++-gcc43.patch [new file with mode: 0644]
src/patches/linux-2.6-arm-asm-constraint.patch [new file with mode: 0644]
src/patches/linux-2.6.25.18-not_report_sysctl_1.23.patch [deleted file]
src/patches/linux-2.6.32-crypto-mv_cesa.patch [new file with mode: 0644]
src/patches/linux-2.6.32.11-option_add_vodafone_usbids.patch [deleted file]
src/patches/linux-2.6.32.45-arm_kirkwood_setups.patch [deleted file]
src/patches/linux-2.x-smsc95xx-add_mac_addr_param.patch [new file with mode: 0644]
src/patches/linux-3.0-ipp2p-0.8.2-ipfire.patch [new file with mode: 0644]
src/patches/linux-3.1-imq.patch [new file with mode: 0644]
src/patches/linux-3.2-0001-panda-wlan-fix.patch [new file with mode: 0644]
src/patches/linux-3.2-0002-panda-i2c.patch [new file with mode: 0644]
src/patches/linux-3.2-imq.patch [new file with mode: 0644]
src/patches/linux-3.2-panda-reboot.patch [new file with mode: 0644]
src/patches/linux-3.2.25-arm_kirkwood_setups.patch [new file with mode: 0644]
src/patches/linux-3.2.27-rpi_fix_dwc_common_build.patch [new file with mode: 0644]
src/patches/linux-3.2.33-ledtrig-netdev-1.patch [new file with mode: 0644]
src/patches/linux-3.2.33_ipg-fix-driver-name.patch [new file with mode: 0644]
src/patches/linux-libc-headers-2.6.12.0-inotify-3.patch [deleted file]
src/patches/mISDN_hfc-s_add_id.patch
src/patches/miniupnpd-iptcrdr.patch [deleted file]
src/patches/ncurses-5.5-fixes-1.patch [deleted file]
src/patches/netfilter_layer7_2.22_kernel3.0.patch [new file with mode: 0644]
src/patches/netpbm-10.26.46-getline.patch [new file with mode: 0644]
src/patches/openldap-gcc44-fixes.patch [new file with mode: 0644]
src/patches/pakfire3-changes-for-ipfire2.diff [new file with mode: 0644]
src/patches/pptp-1.7.2-compat.patch [new file with mode: 0644]
src/patches/python-pycurl-fix-do_curl_reset-refcount.patch [new file with mode: 0644]
src/patches/python-pycurl-no-static-libs.patch [new file with mode: 0644]
src/patches/qemu-kqemu_change-default-kqemu-bios.patch [deleted file]
src/patches/r8169_add_missing_pciids.patch
src/patches/readline-5.1-fixes-3.patch [deleted file]
src/patches/readline/readline52-001 [new file with mode: 0644]
src/patches/readline/readline52-002 [new file with mode: 0644]
src/patches/readline/readline52-003 [new file with mode: 0644]
src/patches/readline/readline52-004 [new file with mode: 0644]
src/patches/readline/readline52-005 [new file with mode: 0644]
src/patches/readline/readline52-006 [new file with mode: 0644]
src/patches/readline/readline52-007 [new file with mode: 0644]
src/patches/readline/readline52-008 [new file with mode: 0644]
src/patches/readline/readline52-009 [new file with mode: 0644]
src/patches/readline/readline52-010 [new file with mode: 0644]
src/patches/readline/readline52-011 [new file with mode: 0644]
src/patches/readline/readline52-012 [new file with mode: 0644]
src/patches/readline/readline52-013 [new file with mode: 0644]
src/patches/readline/readline52-014 [new file with mode: 0644]
src/patches/readline/readline62-001 [new file with mode: 0644]
src/patches/readline/readline62-002 [new file with mode: 0644]
src/patches/readline/readline62-003 [new file with mode: 0644]
src/patches/readline/readline62-004 [new file with mode: 0644]
src/patches/screen-4.0.3-stropts.patch [new file with mode: 0644]
src/patches/slang-1.4.9-uclibc.patch [deleted file]
src/patches/texinfo-4.8-multibyte-1.patch [deleted file]
src/patches/texinfo-4.8-tempfile_fix-2.patch [deleted file]
src/patches/uClibc-gcc4-genwctype.patch [deleted file]
src/patches/udev-125-ext4_wo_journal.patch [new file with mode: 0644]
src/patches/udev-125-netif_rename.patch [deleted file]
src/patches/udev-141_no_netif_rename.patch [new file with mode: 0644]
src/patches/udev-config-6.2_persistent-storage-fix.patch [deleted file]
src/patches/udev-config-6.2_remove-lfs-usb-rule.patch [deleted file]
src/patches/v4l-dvb_bestunar_us638x.patch [new file with mode: 0644]
src/patches/v4l-dvb_fix_tua6034_pll.patch [new file with mode: 0644]
src/patches/v4l-dvb_rtl28xx_add_usb_ids.patch [new file with mode: 0644]
src/patches/v4l-dvb_rtl28xx_commented_usb_clear_halt.patch [new file with mode: 0644]
src/patches/v4l-dvb_usbv2_dont_report_pidfilter_fail.patch [new file with mode: 0644]
src/patches/vdr-1.6.0-gcc44-fixes.patch [new file with mode: 0644]
src/patches/vdr-plugin-epgsearch-gcc44.patch [new file with mode: 0644]
src/patches/w_scan-ipfire.patch [deleted file]
src/scripts/readhash
src/scripts/scanhd
src/scripts/vpn-watch [deleted file]
src/stripper [new file with mode: 0755]
tools/make-functions

diff --git a/config/acpid/power b/config/acpid/power
new file mode 100644 (file)
index 0000000..7406317
--- /dev/null
@@ -0,0 +1,4 @@
+# ACPID config to power down machine if powerbutton is pressed
+
+event=button/power.*
+action=/etc/acpi/actions/power.sh
diff --git a/config/acpid/power.sh b/config/acpid/power.sh
new file mode 100644 (file)
index 0000000..839a318
--- /dev/null
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+# Shutdown the system immediately
+shutdown -h now
index 6fa4c1108209d7cc9765f4519abf512403f07a84..60a311b0b738c5ca0b978af92d004a9c35869f89 100644 (file)
@@ -1,26 +1,31 @@
-MENUSELECT_ADDONS=format_mp3
-MENUSELECT_APPS=app_fax app_jack app_osplookup 
+MENUSELECT_ADDONS=format_mp3 
+MENUSELECT_APPS=app_flash app_meetme app_page app_dahdiras app_fax app_jack app_osplookup app_dahdibarge 
 MENUSELECT_BRIDGES=
 MENUSELECT_CDR=cdr_adaptive_odbc cdr_odbc cdr_pgsql cdr_radius cdr_tds cdr_sqlite 
 MENUSELECT_CEL=cel_odbc cel_pgsql cel_radius cel_tds 
-MENUSELECT_CHANNELS=chan_console chan_gtalk chan_jingle chan_misdn chan_nbs chan_vpb chan_h323 
-MENUSELECT_CODECS=codec_ilbc codec_resample codec_speex 
+MENUSELECT_CHANNELS=chan_dahdi chan_console chan_gtalk chan_jingle chan_misdn chan_nbs chan_vpb chan_h323 
+MENUSELECT_CODECS=codec_dahdi codec_resample codec_speex 
 MENUSELECT_FORMATS=
 MENUSELECT_FUNCS=func_odbc func_speex 
 MENUSELECT_PBX=pbx_lua 
-MENUSELECT_RES=res_calendar_caldav res_calendar_ews res_calendar_exchange res_calendar_icalendar res_config_odbc res_http_post res_odbc res_srtp res_timing_timerfd res_ais res_config_pgsql res_config_sqlite res_jabber res_timing_kqueue 
+MENUSELECT_RES=res_calendar_caldav res_calendar_ews res_calendar_exchange res_calendar_icalendar res_config_odbc res_http_post res_odbc res_srtp res_timing_dahdi res_ais res_config_pgsql res_config_sqlite res_jabber res_timing_kqueue 
 MENUSELECT_TESTS=test_acl test_amihooks test_aoc test_app test_ast_format_str_reduce test_astobj2 test_config test_db test_devicestate test_dlinklists test_event test_expr test_func_file test_gosub test_heap test_linkedlists test_locale test_logger test_netsock2 test_pbx test_poll test_sched test_security_events test_skel test_stringfields test_strings test_substitution test_time test_utils 
 MENUSELECT_CFLAGS=LOADABLE_MODULES 
-MENUSELECT_OPTS_app_voicemail=
-MENUSELECT_UTILS=
+MENUSELECT_OPTS_app_voicemail=FILE_STORAGE 
+MENUSELECT_UTILS=astcanary aelparse astman check_expr check_expr2 conf2ael hashtest hashtest2 muted refcounter smsq stereorize streamplayer 
 MENUSELECT_AGIS=
 MENUSELECT_EMBED=
 MENUSELECT_CORE_SOUNDS=CORE-SOUNDS-EN-GSM 
 MENUSELECT_MOH=MOH-OPSOUND-GSM 
 MENUSELECT_EXTRA_SOUNDS=EXTRA-SOUNDS-EN-GSM 
-MENUSELECT_BUILD_DEPS=chan_local app_voicemail app_meetme res_monitor res_agi res_adsi res_smdi res_crypto res_pktccops res_ael_share res_fax G711_NEW_ALGORITHM 
+MENUSELECT_BUILD_DEPS=chan_local app_voicemail res_monitor res_agi res_adsi res_smdi res_crypto res_pktccops res_ael_share res_fax G711_NEW_ALGORITHM 
+MENUSELECT_DEPSFAILED=MENUSELECT_APPS=app_flash
+MENUSELECT_DEPSFAILED=MENUSELECT_APPS=app_meetme
+MENUSELECT_DEPSFAILED=MENUSELECT_APPS=app_page
+MENUSELECT_DEPSFAILED=MENUSELECT_APPS=app_dahdiras
 MENUSELECT_DEPSFAILED=MENUSELECT_APPS=app_jack
 MENUSELECT_DEPSFAILED=MENUSELECT_APPS=app_osplookup
+MENUSELECT_DEPSFAILED=MENUSELECT_APPS=app_dahdibarge
 MENUSELECT_DEPSFAILED=MENUSELECT_CDR=cdr_adaptive_odbc
 MENUSELECT_DEPSFAILED=MENUSELECT_CDR=cdr_odbc
 MENUSELECT_DEPSFAILED=MENUSELECT_CDR=cdr_pgsql
@@ -31,6 +36,7 @@ MENUSELECT_DEPSFAILED=MENUSELECT_CEL=cel_odbc
 MENUSELECT_DEPSFAILED=MENUSELECT_CEL=cel_pgsql
 MENUSELECT_DEPSFAILED=MENUSELECT_CEL=cel_radius
 MENUSELECT_DEPSFAILED=MENUSELECT_CEL=cel_tds
+MENUSELECT_DEPSFAILED=MENUSELECT_CHANNELS=chan_dahdi
 MENUSELECT_DEPSFAILED=MENUSELECT_CHANNELS=chan_console
 MENUSELECT_DEPSFAILED=MENUSELECT_CHANNELS=chan_gtalk
 MENUSELECT_DEPSFAILED=MENUSELECT_CHANNELS=chan_jingle
@@ -38,6 +44,7 @@ MENUSELECT_DEPSFAILED=MENUSELECT_CHANNELS=chan_misdn
 MENUSELECT_DEPSFAILED=MENUSELECT_CHANNELS=chan_nbs
 MENUSELECT_DEPSFAILED=MENUSELECT_CHANNELS=chan_vpb
 MENUSELECT_DEPSFAILED=MENUSELECT_CHANNELS=chan_h323
+MENUSELECT_DEPSFAILED=MENUSELECT_CODECS=codec_dahdi
 MENUSELECT_DEPSFAILED=MENUSELECT_CODECS=codec_resample
 MENUSELECT_DEPSFAILED=MENUSELECT_CODECS=codec_speex
 MENUSELECT_DEPSFAILED=MENUSELECT_FUNCS=func_odbc
@@ -51,7 +58,7 @@ MENUSELECT_DEPSFAILED=MENUSELECT_RES=res_config_odbc
 MENUSELECT_DEPSFAILED=MENUSELECT_RES=res_http_post
 MENUSELECT_DEPSFAILED=MENUSELECT_RES=res_odbc
 MENUSELECT_DEPSFAILED=MENUSELECT_RES=res_srtp
-MENUSELECT_DEPSFAILED=MENUSELECT_RES=res_timing_timerfd
+MENUSELECT_DEPSFAILED=MENUSELECT_RES=res_timing_dahdi
 MENUSELECT_DEPSFAILED=MENUSELECT_RES=res_ais
 MENUSELECT_DEPSFAILED=MENUSELECT_RES=res_config_pgsql
 MENUSELECT_DEPSFAILED=MENUSELECT_RES=res_config_sqlite
index 71f4cacc0878687e22a8a13e27f847369071ca5c..618f4c784e5aee0a507865cdde88a24db7b4c25d 100644 (file)
@@ -3,3 +3,4 @@
 /var/ipfire/lcr/interface.conf
 /var/ipfire/lcr/options.conf
 /var/ipfire/lcr/routing.conf
+/var/log/lcr
diff --git a/config/backup/includes/pakfire3 b/config/backup/includes/pakfire3
new file mode 100644 (file)
index 0000000..404e92c
--- /dev/null
@@ -0,0 +1 @@
+/etc/pakfire
diff --git a/config/bash/dot_bash_logout b/config/bash/dot_bash_logout
new file mode 100644 (file)
index 0000000..d56620d
--- /dev/null
@@ -0,0 +1,10 @@
+# Begin ~/.bash_logout
+
+# Personal items to perform on logout.
+
+# Clear console to not leak any information.
+clear
+
+echo "Bye bye."
+
+# End ~/.bash_logout
diff --git a/config/bash/dot_bash_profile b/config/bash/dot_bash_profile
new file mode 100644 (file)
index 0000000..3dc099a
--- /dev/null
@@ -0,0 +1,12 @@
+# .bash_profile
+
+# Get the aliases and functions
+if [ -f ~/.bashrc ]; then
+       . ~/.bashrc
+fi
+
+# User specific environment and startup programs
+
+PATH=$PATH:$HOME/bin
+
+export PATH
diff --git a/config/bash/dot_bashrc b/config/bash/dot_bashrc
new file mode 100644 (file)
index 0000000..6e6d1e1
--- /dev/null
@@ -0,0 +1,12 @@
+# .bashrc
+
+# User specific aliases and functions
+
+alias rm='rm -i'
+alias cp='cp -i'
+alias mv='mv -i'
+
+# Source global definitions
+if [ -f /etc/bashrc ]; then
+       . /etc/bashrc
+fi
index 939dd4b30253ab9e535dd67c57f915af6a858717..67d9e19054da255ef327cd036496fed18f2b1411 100644 (file)
@@ -68,7 +68,7 @@ include "/etc/collectd.precache"
        Process "nmbd"
        Process "squid"
        Process "squidguard"
-       Process "pluto"
+       Process "charon"
        Process "snort"
        Process "openvpn"
        Process "qemu"
index e35209f335ff37d689d61bd4156548a1183650bc..901f5d57f8b242febca56a6168dde6e02cf1aa3d 100644 (file)
@@ -1,46 +1,89 @@
-# Begin /etc/bashrc
-# Written for Beyond Linux From Scratch
-# by James Robertson <jameswrobertson@earthlink.net>
-# updated by Bruce Dubbs <bdubbs@linuxfromscratch.org>
+# /etc/bashrc
 
-# Make sure that the terminal is set up properly for each shell
+# System wide functions and aliases
+# Environment stuff goes in /etc/profile
 
-if [ -f /etc/profile.d/tinker-term.sh ]; then
-  source /etc/profile.d/tinker-term.sh
-fi
-
-# System wide aliases and functions.
-
-# System wide environment variables and startup programs should go into
-# /etc/profile.  Personal environment variables and startup programs
-# should go into ~/.bash_profile.  Personal aliases and functions should
-# go into ~/.bashrc
-
-# Provides a colored /bin/ls command.  Used in conjunction with code in
-# /etc/profile.
+# It's NOT a good idea to change this file unless you know what you
+# are doing. It's much better to create a custom.sh shell script in
+# /etc/profile.d/ to make custom changes to your environment, as this
+# will prevent the need for merging in future updates.
 
-alias ls='ls --color=auto'
-alias ll='ls -la'
-alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
-
-# Make the shell a little bit more interactive 
-# to prevent the deletion of some files
-alias mv='mv -i'
-alias rm='rm -i'
-alias cp='cp -i'
-
-# Midnight Commander isn't compatible to UTF8.
-# So we use it in ACSII-Mode.
+# are we an interactive shell?
+if [ "$PS1" ]; then
+  if [ -z "$PROMPT_COMMAND" ]; then
+    case $TERM in
+    xterm*)
+      if [ -e /etc/sysconfig/bash-prompt-xterm ]; then
+          PROMPT_COMMAND=/etc/sysconfig/bash-prompt-xterm
+      else
+          PROMPT_COMMAND='printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"'
+      fi
+      ;;
+    screen)
+      if [ -e /etc/sysconfig/bash-prompt-screen ]; then
+          PROMPT_COMMAND=/etc/sysconfig/bash-prompt-screen
+      else
+          PROMPT_COMMAND='printf "\033]0;%s@%s:%s\033\\" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"'
+      fi
+      ;;
+    *)
+      [ -e /etc/sysconfig/bash-prompt-default ] && PROMPT_COMMAND=/etc/sysconfig/bash-prompt-default
+      ;;
+    esac
+  fi
+  # Turn on parallel history
+  shopt -s histappend
+  history -a
+  # Turn on checkwinsize
+  shopt -s checkwinsize
+  [ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \W]\\$ "
+  # You might want to have e.g. tty in prompt (e.g. more virtual machines)
+  # and console windows
+  # If you want to do so, just add e.g.
+  # if [ "$PS1" ]; then
+  #   PS1="[\u@\h:\l \W]\\$ "
+  # fi
+  # to your custom modification shell script in /etc/profile.d/ directory
+fi
 
-alias mc='mc -a'
+if ! shopt -q login_shell ; then # We're not a login shell
+    # Need to redefine pathmunge, it get's undefined at the end of /etc/profile
+    pathmunge () {
+        case ":${PATH}:" in
+            *:"$1":*)
+                ;;
+            *)
+                if [ "$2" = "after" ] ; then
+                    PATH=$PATH:$1
+                else
+                    PATH=$1:$PATH
+                fi
+        esac
+    }
 
-# Provides prompt for non-login shells, specifically shells started
-# in the X environment. [Review the LFS archive thread titled
-# PS1 Environment Variable for a great case study behind this script
-# addendum.]
+    # By default, we want umask to get set. This sets it for non-login shell.
+    # Current threshold for system reserved uid/gids is 200
+    # You could check uidgid reservation validity in
+    # /usr/share/doc/setup-*/uidgid file
+    if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
+       umask 002
+    else
+       umask 022
+    fi
 
-#export PS1="\033[0m[\033[1;33m\u\033[1;37m@\033[1;32m\]\h \033[1;31m\w\033[0m]\\$ "
-export PS1="[\u@\h \w]\\$ "
-#export PS1='\u@\h:\w\$ '
+    # Only display echos from profile.d scripts if we are no login shell
+    # and interactive - otherwise just process them to set envvars
+    for i in /etc/profile.d/*.sh; do
+        if [ -r "$i" ]; then
+            if [ "$PS1" ]; then
+                . "$i"
+            else
+                . "$i" >/dev/null
+            fi
+        fi
+    done
 
-# End /etc/bashrc
+    unset i
+    unset -f pathmunge
+fi
+# vim:ts=4:sw=4
index 7a7908cc8ddb2841a27fba8a64e66a81d48d0c09..883686c594b00542d46e61b64252a5117853a66c 100644 (file)
@@ -1,42 +1,42 @@
-# Begin /etc/inputrc
+# do not bell on tab-completion
+#set bell-style none
 
-# Allow the command prompt to wrap to the next line
-set horizontal-scroll-mode Off
+set meta-flag on
+set input-meta on
+set convert-meta off
+set output-meta on
 
-# Enable 8bit input
-set meta-flag On
-set input-meta On
+# Completed names which are symbolic links to
+# directories have a slash appended.
+set mark-symlinked-directories on
 
-# Turns off 8th bit stripping
-set convert-meta Off
+$if mode=emacs
 
-# Keep the 8th bit for display
-set output-meta On
-
-# none, visible or audible
-set bell-style none
-
-# All of the following map the escape sequence of the
-# value contained inside the 1st argument to the
-# readline specific functions
-
-"\eOd": backward-word
-"\eOc": forward-word
-
-# for linux console
+# for linux console and RH/Debian xterm
 "\e[1~": beginning-of-line
 "\e[4~": end-of-line
-"\e[5~": beginning-of-history
-"\e[6~": end-of-history
+# commented out keymappings for pgup/pgdown to reach begin/end of history
+#"\e[5~": beginning-of-history
+#"\e[6~": end-of-history
+"\e[5~": history-search-backward
+"\e[6~": history-search-forward
 "\e[3~": delete-char
 "\e[2~": quoted-insert
+"\e[5C": forward-word
+"\e[5D": backward-word
+"\e[1;5C": forward-word
+"\e[1;5D": backward-word
 
-# for xterm
+# for rxvt
+"\e[8~": end-of-line
+"\eOc": forward-word
+"\eOd": backward-word
+
+# for non RH/Debian xterm, can't hurt for RH/DEbian xterm
 "\eOH": beginning-of-line
 "\eOF": end-of-line
 
-# for Konsole
+# for freebsd console
 "\e[H": beginning-of-line
 "\e[F": end-of-line
-
-# End /etc/inputrc
+$endif
index 3c2921908ac65b4d25f326a4c23873513a639f43..2d66685588f07b8aeacf77624beb1909532c159a 100644 (file)
@@ -1,64 +1,78 @@
-# Begin /etc/profile
-# Written for Beyond Linux From Scratch
-# by James Robertson <jameswrobertson@earthlink.net>
-# modifications by Dagmar d'Surreal <rivyqntzne@pbzpnfg.arg>
+# /etc/profile
 
-# System wide environment variables and startup programs.
+# System wide environment and startup programs, for login setup
+# Functions and aliases go in /etc/bashrc
 
-# System wide aliases and functions should go in /etc/bashrc.  Personal
-# environment variables and startup programs should go into
-# ~/.bash_profile.  Personal aliases and functions should go into
-# ~/.bashrc.
+# It's NOT a good idea to change this file unless you know what you
+# are doing. It's much better to create a custom.sh shell script in
+# /etc/profile.d/ to make custom changes to your environment, as this
+# will prevent the need for merging in future updates.
 
-# Functions to help us manage paths.  Second argument is the name of the
-# path variable to be modified (default: PATH)
-pathremove () {
-        local IFS=':'
-        local NEWPATH
-        local DIR
-        local PATHVARIABLE=${2:-PATH}
-        for DIR in ${!PATHVARIABLE} ; do
-                if [ "$DIR" != "$1" ] ; then
-                  NEWPATH=${NEWPATH:+$NEWPATH:}$DIR
-                fi
-        done
-        export $PATHVARIABLE="$NEWPATH"
+pathmunge () {
+    case ":${PATH}:" in
+        *:"$1":*)
+            ;;
+        *)
+            if [ "$2" = "after" ] ; then
+                PATH=$PATH:$1
+            else
+                PATH=$1:$PATH
+            fi
+    esac
 }
 
-pathprepend () {
-        pathremove $1 $2
-        local PATHVARIABLE=${2:-PATH}
-        export $PATHVARIABLE="$1${!PATHVARIABLE:+:${!PATHVARIABLE}}"
-}
-
-pathappend () {
-        pathremove $1 $2
-        local PATHVARIABLE=${2:-PATH}
-        export $PATHVARIABLE="${!PATHVARIABLE:+${!PATHVARIABLE}:}$1"
-}
 
+if [ -x /usr/bin/id ]; then
+    if [ -z "$EUID" ]; then
+        # ksh workaround
+        EUID=`id -u`
+        UID=`id -ru`
+    fi
+    USER="`id -un`"
+    LOGNAME=$USER
+    MAIL="/var/spool/mail/$USER"
+fi
 
-# Set the initial path
-export PATH=/bin:/usr/bin
+# Path manipulation
+if [ "$EUID" = "0" ]; then
+    pathmunge /sbin
+    pathmunge /usr/sbin
+    pathmunge /usr/local/sbin
+else
+    pathmunge /usr/local/sbin after
+    pathmunge /usr/sbin after
+    pathmunge /sbin after
+fi
 
-if [ $EUID -eq 0 ] ; then
-        pathappend /sbin:/usr/sbin
-        unset HISTFILE
+HOSTNAME=`/bin/hostname 2>/dev/null`
+HISTSIZE=1000
+if [ "$HISTCONTROL" = "ignorespace" ] ; then
+    export HISTCONTROL=ignoreboth
+else
+    export HISTCONTROL=ignoredups
 fi
 
-# Setup some environment variables.
-export HISTSIZE=1000
-export HISTIGNORE="&:[bf]g:exit"
-export PS1="[\u@\h \w]\\$ "
-#export PS1='\u@\h:\w\$ '
+export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL
+
+# By default, we want umask to get set. This sets it for login shell
+# Current threshold for system reserved uid/gids is 200
+# You could check uidgid reservation validity in
+# /usr/share/doc/setup-*/uidgid file
+if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
+    umask 002
+else
+    umask 022
+fi
 
-for script in /etc/profile.d/*.sh ; do
-        if [ -r $script ] ; then
-                . $script
+for i in /etc/profile.d/*.sh ; do
+    if [ -r "$i" ]; then
+        if [ "${-#*i}" != "$-" ]; then 
+            . "$i"
+        else
+            . "$i" >/dev/null 2>&1
         fi
+    fi
 done
 
-# Now to clean up
-unset pathremove pathprepend pathappend
-
-# End /etc/profile
+unset i
+unset pathmunge
index 9a6a9fd30e841539a99fb191d3fa9b44f7ed5c26..3a69d0b6e7ef983495c7eeb68e00a9dab50e49b8 100644 (file)
@@ -5,6 +5,7 @@ tty4
 tty5
 tty6
 ttyAMA0
+ttyO2
 ttyS0
 ttyS1
 ttyS2
index 105feaa0acd34872c9a8982f36840a7e05281fa8..df3ef5f96a08543d78d93abe1adade575766e0a2 100644 (file)
@@ -23,3 +23,8 @@ net.ipv4.conf.all.log_martians = 1
 kernel.printk = 1 4 1 7
 vm.swappiness=0
 vm.mmap_min_addr = 4096
+vm.min_free_kbytes = 8192
+
+# Disable IPv6 by default.
+net.ipv6.conf.all.disable_ipv6 = 1
+net.ipv6.conf.default.disable_ipv6 = 1
index 553b10d42d4d8469e7c3e984551393568058381d..2199bf1d895f5244ecdd53aedbfadd2d759180bb 100644 (file)
@@ -14,28 +14,8 @@ title IPFire
   kernel /vmlinuz-KVER-ipfire root=ROOT panic=10 MOUNT
   initrd /ipfirerd-KVER.img
   savedefault 0
-title IPFire (vesafb 640x480)
-  root (hd0,0)
-  kernel /vmlinuz-KVER-ipfire root=ROOT panic=10 vga=785 MOUNT
-  initrd /ipfirerd-KVER.img
-  savedefault 1
-title IPFire (vesafb 800x600)
-  root (hd0,0)
-  kernel /vmlinuz-KVER-ipfire root=ROOT panic=10 vga=788 MOUNT
-  initrd /ipfirerd-KVER.img
-  savedefault 2
 title IPFire (vesafb 1024x768)
   root (hd0,0)
   kernel /vmlinuz-KVER-ipfire root=ROOT panic=10 vga=791 MOUNT
   initrd /ipfirerd-KVER.img
-  savedefault 3
-title IPFire (acpi disabled)
-  root (hd0,0)
-  kernel /vmlinuz-KVER-ipfire root=ROOT panic=10 acpi=off MOUNT
-  initrd /ipfirerd-KVER.img
-  savedefault 4
-title IPFire (single Processor)
-  root (hd0,0)
-  kernel /vmlinuz-KVER-ipfire root=ROOT panic=10 nosmp MOUNT
-  initrd /ipfirerd-KVER.img
-  savedefault 5
+  savedefault 1
index 88dca15c64a346ea2a35249c7fc0f2f8e3804161..6158e2cdf08f9e94b4f2c399738da1fdad79847d 100644 (file)
@@ -16,8 +16,8 @@ CONFIG_DRIVER_HOSTAP=y
 #CONFIG_DRIVER_WIRED=y
 
 # Driver interface for madwifi driver
-CONFIG_DRIVER_MADWIFI=y
-CFLAGS += -I../../madwifi # change to the madwifi source directory
+#CONFIG_DRIVER_MADWIFI=y
+#CFLAGS += -I../../madwifi # change to the madwifi source directory
 
 # Driver interface for Prism54 driver
 CONFIG_DRIVER_PRISM54=y
index 5e67dcee4a35467d1240235f1a923255a65ee2f6..e1f493f96edad90e5f12f692131b9344e7213628 100644 (file)
@@ -1,4 +1,4 @@
-driver=madwifi
+driver=nl80211
 ######################### basic hostapd configuration ##########################
 #
 interface=blue0
diff --git a/config/include/obsolete_videodev.h b/config/include/obsolete_videodev.h
new file mode 100644 (file)
index 0000000..c51a5f9
--- /dev/null
@@ -0,0 +1,320 @@
+/*
+ *     Video for Linux version 1 - OBSOLETE
+ *
+ *     Header file for v4l1 drivers and applications, for
+ *     Linux kernels 2.2.x or 2.4.x.
+ *
+ *     Provides header for legacy drivers and applications
+ *
+ *     See http://linuxtv.org for more info
+ *
+ */
+#ifndef __LINUX_VIDEODEV_H
+#define __LINUX_VIDEODEV_H
+
+#include <linux/types.h>
+#include <linux/ioctl.h>
+#include <linux/videodev2.h>
+
+
+#define VID_TYPE_CAPTURE       1       /* Can capture */
+#define VID_TYPE_TUNER         2       /* Can tune */
+#define VID_TYPE_TELETEXT      4       /* Does teletext */
+#define VID_TYPE_OVERLAY       8       /* Overlay onto frame buffer */
+#define VID_TYPE_CHROMAKEY     16      /* Overlay by chromakey */
+#define VID_TYPE_CLIPPING      32      /* Can clip */
+#define VID_TYPE_FRAMERAM      64      /* Uses the frame buffer memory */
+#define VID_TYPE_SCALES                128     /* Scalable */
+#define VID_TYPE_MONOCHROME    256     /* Monochrome only */
+#define VID_TYPE_SUBCAPTURE    512     /* Can capture subareas of the image */
+#define VID_TYPE_MPEG_DECODER  1024    /* Can decode MPEG streams */
+#define VID_TYPE_MPEG_ENCODER  2048    /* Can encode MPEG streams */
+#define VID_TYPE_MJPEG_DECODER 4096    /* Can decode MJPEG streams */
+#define VID_TYPE_MJPEG_ENCODER 8192    /* Can encode MJPEG streams */
+
+struct video_capability
+{
+       char name[32];
+       int type;
+       int channels;   /* Num channels */
+       int audios;     /* Num audio devices */
+       int maxwidth;   /* Supported width */
+       int maxheight;  /* And height */
+       int minwidth;   /* Supported width */
+       int minheight;  /* And height */
+};
+
+
+struct video_channel
+{
+       int channel;
+       char name[32];
+       int tuners;
+       __u32  flags;
+#define VIDEO_VC_TUNER         1       /* Channel has a tuner */
+#define VIDEO_VC_AUDIO         2       /* Channel has audio */
+       __u16  type;
+#define VIDEO_TYPE_TV          1
+#define VIDEO_TYPE_CAMERA      2
+       __u16 norm;                     /* Norm set by channel */
+};
+
+struct video_tuner
+{
+       int tuner;
+       char name[32];
+       unsigned long rangelow, rangehigh;      /* Tuner range */
+       __u32 flags;
+#define VIDEO_TUNER_PAL                1
+#define VIDEO_TUNER_NTSC       2
+#define VIDEO_TUNER_SECAM      4
+#define VIDEO_TUNER_LOW                8       /* Uses KHz not MHz */
+#define VIDEO_TUNER_NORM       16      /* Tuner can set norm */
+#define VIDEO_TUNER_STEREO_ON  128     /* Tuner is seeing stereo */
+#define VIDEO_TUNER_RDS_ON      256     /* Tuner is seeing an RDS datastream */
+#define VIDEO_TUNER_MBS_ON      512     /* Tuner is seeing an MBS datastream */
+       __u16 mode;                     /* PAL/NTSC/SECAM/OTHER */
+#define VIDEO_MODE_PAL         0
+#define VIDEO_MODE_NTSC                1
+#define VIDEO_MODE_SECAM       2
+#define VIDEO_MODE_AUTO                3
+       __u16 signal;                   /* Signal strength 16bit scale */
+};
+
+struct video_picture
+{
+       __u16   brightness;
+       __u16   hue;
+       __u16   colour;
+       __u16   contrast;
+       __u16   whiteness;      /* Black and white only */
+       __u16   depth;          /* Capture depth */
+       __u16   palette;        /* Palette in use */
+#define VIDEO_PALETTE_GREY     1       /* Linear greyscale */
+#define VIDEO_PALETTE_HI240    2       /* High 240 cube (BT848) */
+#define VIDEO_PALETTE_RGB565   3       /* 565 16 bit RGB */
+#define VIDEO_PALETTE_RGB24    4       /* 24bit RGB */
+#define VIDEO_PALETTE_RGB32    5       /* 32bit RGB */
+#define VIDEO_PALETTE_RGB555   6       /* 555 15bit RGB */
+#define VIDEO_PALETTE_YUV422   7       /* YUV422 capture */
+#define VIDEO_PALETTE_YUYV     8
+#define VIDEO_PALETTE_UYVY     9       /* The great thing about standards is ... */
+#define VIDEO_PALETTE_YUV420   10
+#define VIDEO_PALETTE_YUV411   11      /* YUV411 capture */
+#define VIDEO_PALETTE_RAW      12      /* RAW capture (BT848) */
+#define VIDEO_PALETTE_YUV422P  13      /* YUV 4:2:2 Planar */
+#define VIDEO_PALETTE_YUV411P  14      /* YUV 4:1:1 Planar */
+#define VIDEO_PALETTE_YUV420P  15      /* YUV 4:2:0 Planar */
+#define VIDEO_PALETTE_YUV410P  16      /* YUV 4:1:0 Planar */
+#define VIDEO_PALETTE_PLANAR   13      /* start of planar entries */
+#define VIDEO_PALETTE_COMPONENT 7      /* start of component entries */
+};
+
+struct video_audio
+{
+       int     audio;          /* Audio channel */
+       __u16   volume;         /* If settable */
+       __u16   bass, treble;
+       __u32   flags;
+#define VIDEO_AUDIO_MUTE       1
+#define VIDEO_AUDIO_MUTABLE    2
+#define VIDEO_AUDIO_VOLUME     4
+#define VIDEO_AUDIO_BASS       8
+#define VIDEO_AUDIO_TREBLE     16
+#define VIDEO_AUDIO_BALANCE    32
+       char    name[16];
+#define VIDEO_SOUND_MONO       1
+#define VIDEO_SOUND_STEREO     2
+#define VIDEO_SOUND_LANG1      4
+#define VIDEO_SOUND_LANG2      8
+       __u16   mode;
+       __u16   balance;        /* Stereo balance */
+       __u16   step;           /* Step actual volume uses */
+};
+
+struct video_clip
+{
+       __s32   x,y;
+       __s32   width, height;
+       struct  video_clip *next;       /* For user use/driver use only */
+};
+
+struct video_window
+{
+       __u32   x,y;                    /* Position of window */
+       __u32   width,height;           /* Its size */
+       __u32   chromakey;
+       __u32   flags;
+       struct  video_clip *clips;      /* Set only */
+       int     clipcount;
+#define VIDEO_WINDOW_INTERLACE 1
+#define VIDEO_WINDOW_CHROMAKEY 16      /* Overlay by chromakey */
+#define VIDEO_CLIP_BITMAP      -1
+/* bitmap is 1024x625, a '1' bit represents a clipped pixel */
+#define VIDEO_CLIPMAP_SIZE     (128 * 625)
+};
+
+struct video_capture
+{
+       __u32   x,y;                    /* Offsets into image */
+       __u32   width, height;          /* Area to capture */
+       __u16   decimation;             /* Decimation divider */
+       __u16   flags;                  /* Flags for capture */
+#define VIDEO_CAPTURE_ODD              0       /* Temporal */
+#define VIDEO_CAPTURE_EVEN             1
+};
+
+struct video_buffer
+{
+       void    *base;
+       int     height,width;
+       int     depth;
+       int     bytesperline;
+};
+
+struct video_mmap
+{
+       unsigned        int frame;              /* Frame (0 - n) for double buffer */
+       int             height,width;
+       unsigned        int format;             /* should be VIDEO_PALETTE_* */
+};
+
+struct video_key
+{
+       __u8    key[8];
+       __u32   flags;
+};
+
+struct video_mbuf
+{
+       int     size;           /* Total memory to map */
+       int     frames;         /* Frames */
+       int     offsets[VIDEO_MAX_FRAME];
+};
+
+#define        VIDEO_NO_UNIT   (-1)
+
+struct video_unit
+{
+       int     video;          /* Video minor */
+       int     vbi;            /* VBI minor */
+       int     radio;          /* Radio minor */
+       int     audio;          /* Audio minor */
+       int     teletext;       /* Teletext minor */
+};
+
+struct vbi_format {
+       __u32   sampling_rate;  /* in Hz */
+       __u32   samples_per_line;
+       __u32   sample_format;  /* VIDEO_PALETTE_RAW only (1 byte) */
+       __s32   start[2];       /* starting line for each frame */
+       __u32   count[2];       /* count of lines for each frame */
+       __u32   flags;
+#define        VBI_UNSYNC      1       /* can distingues between top/bottom field */
+#define        VBI_INTERLACED  2       /* lines are interlaced */
+};
+
+/* video_info is biased towards hardware mpeg encode/decode */
+/* but it could apply generically to any hardware compressor/decompressor */
+struct video_info
+{
+       __u32   frame_count;    /* frames output since decode/encode began */
+       __u32   h_size;         /* current unscaled horizontal size */
+       __u32   v_size;         /* current unscaled veritcal size */
+       __u32   smpte_timecode; /* current SMPTE timecode (for current GOP) */
+       __u32   picture_type;   /* current picture type */
+       __u32   temporal_reference;     /* current temporal reference */
+       __u8    user_data[256]; /* user data last found in compressed stream */
+       /* user_data[0] contains user data flags, user_data[1] has count */
+};
+
+/* generic structure for setting playback modes */
+struct video_play_mode
+{
+       int     mode;
+       int     p1;
+       int     p2;
+};
+
+/* for loading microcode / fpga programming */
+struct video_code
+{
+       char    loadwhat[16];   /* name or tag of file being passed */
+       int     datasize;
+       __u8    *data;
+};
+
+#define VIDIOCGCAP             _IOR('v',1,struct video_capability)     /* Get capabilities */
+#define VIDIOCGCHAN            _IOWR('v',2,struct video_channel)       /* Get channel info (sources) */
+#define VIDIOCSCHAN            _IOW('v',3,struct video_channel)        /* Set channel  */
+#define VIDIOCGTUNER           _IOWR('v',4,struct video_tuner)         /* Get tuner abilities */
+#define VIDIOCSTUNER           _IOW('v',5,struct video_tuner)          /* Tune the tuner for the current channel */
+#define VIDIOCGPICT            _IOR('v',6,struct video_picture)        /* Get picture properties */
+#define VIDIOCSPICT            _IOW('v',7,struct video_picture)        /* Set picture properties */
+#define VIDIOCCAPTURE          _IOW('v',8,int)                         /* Start, end capture */
+#define VIDIOCGWIN             _IOR('v',9, struct video_window)        /* Get the video overlay window */
+#define VIDIOCSWIN             _IOW('v',10, struct video_window)       /* Set the video overlay window - passes clip list for hardware smarts , chromakey etc */
+#define VIDIOCGFBUF            _IOR('v',11, struct video_buffer)       /* Get frame buffer */
+#define VIDIOCSFBUF            _IOW('v',12, struct video_buffer)       /* Set frame buffer - root only */
+#define VIDIOCKEY              _IOR('v',13, struct video_key)          /* Video key event - to dev 255 is to all - cuts capture on all DMA windows with this key (0xFFFFFFFF == all) */
+#define VIDIOCGFREQ            _IOR('v',14, unsigned long)             /* Set tuner */
+#define VIDIOCSFREQ            _IOW('v',15, unsigned long)             /* Set tuner */
+#define VIDIOCGAUDIO           _IOR('v',16, struct video_audio)        /* Get audio info */
+#define VIDIOCSAUDIO           _IOW('v',17, struct video_audio)        /* Audio source, mute etc */
+#define VIDIOCSYNC             _IOW('v',18, int)                       /* Sync with mmap grabbing */
+#define VIDIOCMCAPTURE         _IOW('v',19, struct video_mmap)         /* Grab frames */
+#define VIDIOCGMBUF            _IOR('v',20, struct video_mbuf)         /* Memory map buffer info */
+#define VIDIOCGUNIT            _IOR('v',21, struct video_unit)         /* Get attached units */
+#define VIDIOCGCAPTURE         _IOR('v',22, struct video_capture)      /* Get subcapture */
+#define VIDIOCSCAPTURE         _IOW('v',23, struct video_capture)      /* Set subcapture */
+#define VIDIOCSPLAYMODE                _IOW('v',24, struct video_play_mode)    /* Set output video mode/feature */
+#define VIDIOCSWRITEMODE       _IOW('v',25, int)                       /* Set write mode */
+#define VIDIOCGPLAYINFO                _IOR('v',26, struct video_info)         /* Get current playback info from hardware */
+#define VIDIOCSMICROCODE       _IOW('v',27, struct video_code)         /* Load microcode into hardware */
+#define        VIDIOCGVBIFMT           _IOR('v',28, struct vbi_format)         /* Get VBI information */
+#define        VIDIOCSVBIFMT           _IOW('v',29, struct vbi_format)         /* Set VBI information */
+
+
+#define BASE_VIDIOCPRIVATE     192             /* 192-255 are private */
+
+/* VIDIOCSWRITEMODE */
+#define VID_WRITE_MPEG_AUD             0
+#define VID_WRITE_MPEG_VID             1
+#define VID_WRITE_OSD                  2
+#define VID_WRITE_TTX                  3
+#define VID_WRITE_CC                   4
+#define VID_WRITE_MJPEG                        5
+
+/* VIDIOCSPLAYMODE */
+#define VID_PLAY_VID_OUT_MODE          0
+       /* p1: = VIDEO_MODE_PAL, VIDEO_MODE_NTSC, etc ... */
+#define VID_PLAY_GENLOCK               1
+       /* p1: 0 = OFF, 1 = ON */
+       /* p2: GENLOCK FINE DELAY value */
+#define VID_PLAY_NORMAL                        2
+#define VID_PLAY_PAUSE                 3
+#define VID_PLAY_SINGLE_FRAME          4
+#define VID_PLAY_FAST_FORWARD          5
+#define VID_PLAY_SLOW_MOTION           6
+#define VID_PLAY_IMMEDIATE_NORMAL      7
+#define VID_PLAY_SWITCH_CHANNELS       8
+#define VID_PLAY_FREEZE_FRAME          9
+#define VID_PLAY_STILL_MODE            10
+#define VID_PLAY_MASTER_MODE           11
+       /* p1: see below */
+#define                VID_PLAY_MASTER_NONE    1
+#define                VID_PLAY_MASTER_VIDEO   2
+#define                VID_PLAY_MASTER_AUDIO   3
+#define VID_PLAY_ACTIVE_SCANLINES      12
+       /* p1 = first active; p2 = last active */
+#define VID_PLAY_RESET                 13
+#define VID_PLAY_END_MARK              14
+
+
+#endif /* __LINUX_VIDEODEV_H */
+
+/*
+ * Local variables:
+ * c-basic-offset: 8
+ * End:
+ */
index 29c6514c54ef39c333579daa7252e149a77a6f8f..59f7dedc15d898f8c1f3d2b1878e739202c5665d 100644 (file)
@@ -1,14 +1,15 @@
 #
-# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.32.45
-# Sat Oct 15 08:52:52 2011
+# Automatically generated file; DO NOT EDIT.
+# Linux/arm 3.2.35 Kernel Configuration
 #
 CONFIG_ARM=y
 CONFIG_SYS_SUPPORTS_APM_EMULATION=y
+CONFIG_HAVE_SCHED_CLOCK=y
 CONFIG_GENERIC_GPIO=y
-CONFIG_GENERIC_TIME=y
+# CONFIG_ARCH_USES_GETTIMEOFFSET is not set
 CONFIG_GENERIC_CLOCKEVENTS=y
-CONFIG_GENERIC_HARDIRQS=y
+CONFIG_KTIME_SCALAR=y
+CONFIG_HAVE_PROC_CPU=y
 CONFIG_STACKTRACE_SUPPORT=y
 CONFIG_HAVE_LATENCYTOP_SUPPORT=y
 CONFIG_LOCKDEP_SUPPORT=y
@@ -16,12 +17,17 @@ CONFIG_TRACE_IRQFLAGS_SUPPORT=y
 CONFIG_HARDIRQS_SW_RESEND=y
 CONFIG_GENERIC_IRQ_PROBE=y
 CONFIG_RWSEM_GENERIC_SPINLOCK=y
+CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
 CONFIG_GENERIC_HWEIGHT=y
 CONFIG_GENERIC_CALIBRATE_DELAY=y
-CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
+CONFIG_NEED_DMA_MAP_STATE=y
 CONFIG_VECTORS_BASE=0xffff0000
+# CONFIG_ARM_PATCH_PHYS_VIRT is not set
+CONFIG_PHYS_OFFSET=0x0
+CONFIG_GENERIC_BUG=y
 CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
-CONFIG_CONSTRUCTORS=y
+CONFIG_HAVE_IRQ_WORK=y
+CONFIG_IRQ_WORK=y
 
 #
 # General setup
@@ -29,8 +35,16 @@ CONFIG_CONSTRUCTORS=y
 CONFIG_EXPERIMENTAL=y
 CONFIG_BROKEN_ON_SMP=y
 CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_CROSS_COMPILE=""
 CONFIG_LOCALVERSION=""
 # CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_HAVE_KERNEL_GZIP=y
+CONFIG_HAVE_KERNEL_LZMA=y
+CONFIG_HAVE_KERNEL_LZO=y
+# CONFIG_KERNEL_GZIP is not set
+CONFIG_KERNEL_LZMA=y
+# CONFIG_KERNEL_LZO is not set
+CONFIG_DEFAULT_HOSTNAME="(none)"
 CONFIG_SWAP=y
 CONFIG_SYSVIPC=y
 CONFIG_SYSVIPC_SYSCTL=y
@@ -38,44 +52,56 @@ CONFIG_POSIX_MQUEUE=y
 CONFIG_POSIX_MQUEUE_SYSCTL=y
 CONFIG_BSD_PROCESS_ACCT=y
 CONFIG_BSD_PROCESS_ACCT_V3=y
+# CONFIG_FHANDLE is not set
 # CONFIG_TASKSTATS is not set
 CONFIG_AUDIT=y
+CONFIG_HAVE_GENERIC_HARDIRQS=y
+
+#
+# IRQ subsystem
+#
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_HAVE_SPARSE_IRQ=y
+CONFIG_GENERIC_IRQ_SHOW=y
+CONFIG_GENERIC_IRQ_CHIP=y
+CONFIG_IRQ_DOMAIN=y
+CONFIG_SPARSE_IRQ=y
 
 #
 # RCU Subsystem
 #
-CONFIG_TREE_RCU=y
-# CONFIG_TREE_PREEMPT_RCU is not set
+CONFIG_TINY_RCU=y
+# CONFIG_PREEMPT_RCU is not set
 # CONFIG_RCU_TRACE is not set
-CONFIG_RCU_FANOUT=32
-# CONFIG_RCU_FANOUT_EXACT is not set
 # CONFIG_TREE_RCU_TRACE is not set
 # CONFIG_IKCONFIG is not set
 CONFIG_LOG_BUF_SHIFT=19
 # CONFIG_CGROUPS is not set
-CONFIG_SYSFS_DEPRECATED=y
-CONFIG_SYSFS_DEPRECATED_V2=y
-# CONFIG_RELAY is not set
 CONFIG_NAMESPACES=y
 CONFIG_UTS_NS=y
 CONFIG_IPC_NS=y
 # CONFIG_USER_NS is not set
 # CONFIG_PID_NS is not set
 # CONFIG_NET_NS is not set
+# CONFIG_SCHED_AUTOGROUP is not set
+CONFIG_SYSFS_DEPRECATED=y
+CONFIG_SYSFS_DEPRECATED_V2=y
+# CONFIG_RELAY is not set
 CONFIG_BLK_DEV_INITRD=y
 CONFIG_INITRAMFS_SOURCE=""
 CONFIG_RD_GZIP=y
 CONFIG_RD_BZIP2=y
 CONFIG_RD_LZMA=y
-CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+CONFIG_RD_XZ=y
+CONFIG_RD_LZO=y
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
 CONFIG_SYSCTL=y
 CONFIG_ANON_INODES=y
-# CONFIG_EMBEDDED is not set
+# CONFIG_EXPERT is not set
 CONFIG_UID16=y
-CONFIG_SYSCTL_SYSCALL=y
+# CONFIG_SYSCTL_SYSCALL is not set
 CONFIG_KALLSYMS=y
 # CONFIG_KALLSYMS_ALL is not set
-# CONFIG_KALLSYMS_EXTRA_PASS is not set
 CONFIG_HOTPLUG=y
 CONFIG_PRINTK=y
 CONFIG_BUG=y
@@ -88,27 +114,33 @@ CONFIG_TIMERFD=y
 CONFIG_EVENTFD=y
 CONFIG_SHMEM=y
 CONFIG_AIO=y
+# CONFIG_EMBEDDED is not set
+CONFIG_HAVE_PERF_EVENTS=y
+CONFIG_PERF_USE_VMALLOC=y
 
 #
 # Kernel Performance Events And Counters
 #
+CONFIG_PERF_EVENTS=y
+# CONFIG_PERF_COUNTERS is not set
+# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
 CONFIG_VM_EVENT_COUNTERS=y
 CONFIG_PCI_QUIRKS=y
 CONFIG_SLUB_DEBUG=y
 # CONFIG_COMPAT_BRK is not set
 # CONFIG_SLAB is not set
 CONFIG_SLUB=y
-# CONFIG_SLOB is not set
 # CONFIG_PROFILING is not set
 CONFIG_HAVE_OPROFILE=y
 # CONFIG_KPROBES is not set
 CONFIG_HAVE_KPROBES=y
 CONFIG_HAVE_KRETPROBES=y
+CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
+CONFIG_HAVE_DMA_API_DEBUG=y
 
 #
 # GCOV-based kernel profiling
 #
-CONFIG_SLOW_WORK=y
 CONFIG_HAVE_GENERIC_DMA_COHERENT=y
 CONFIG_SLABINFO=y
 CONFIG_RT_MUTEXES=y
@@ -121,71 +153,113 @@ CONFIG_MODULE_FORCE_UNLOAD=y
 # CONFIG_MODULE_SRCVERSION_ALL is not set
 CONFIG_BLOCK=y
 CONFIG_LBDAF=y
-# CONFIG_BLK_DEV_BSG is not set
+CONFIG_BLK_DEV_BSG=y
+CONFIG_BLK_DEV_BSGLIB=y
 # CONFIG_BLK_DEV_INTEGRITY is not set
 
 #
 # IO Schedulers
 #
 CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
 CONFIG_IOSCHED_DEADLINE=y
 CONFIG_IOSCHED_CFQ=y
-# CONFIG_DEFAULT_AS is not set
 # CONFIG_DEFAULT_DEADLINE is not set
 CONFIG_DEFAULT_CFQ=y
 # CONFIG_DEFAULT_NOOP is not set
 CONFIG_DEFAULT_IOSCHED="cfq"
-CONFIG_FREEZER=y
+# CONFIG_INLINE_SPIN_TRYLOCK is not set
+# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
+# CONFIG_INLINE_SPIN_LOCK is not set
+# CONFIG_INLINE_SPIN_LOCK_BH is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
+CONFIG_INLINE_SPIN_UNLOCK=y
+# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
+CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
+# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_READ_TRYLOCK is not set
+# CONFIG_INLINE_READ_LOCK is not set
+# CONFIG_INLINE_READ_LOCK_BH is not set
+# CONFIG_INLINE_READ_LOCK_IRQ is not set
+# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
+CONFIG_INLINE_READ_UNLOCK=y
+# CONFIG_INLINE_READ_UNLOCK_BH is not set
+CONFIG_INLINE_READ_UNLOCK_IRQ=y
+# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_WRITE_TRYLOCK is not set
+# CONFIG_INLINE_WRITE_LOCK is not set
+# CONFIG_INLINE_WRITE_LOCK_BH is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
+CONFIG_INLINE_WRITE_UNLOCK=y
+# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
+CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
+# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
+# CONFIG_MUTEX_SPIN_ON_OWNER is not set
+# CONFIG_FREEZER is not set
 
 #
 # System Type
 #
 CONFIG_MMU=y
-# CONFIG_ARCH_AAEC2000 is not set
 # CONFIG_ARCH_INTEGRATOR is not set
 # CONFIG_ARCH_REALVIEW is not set
 # CONFIG_ARCH_VERSATILE is not set
+# CONFIG_ARCH_VEXPRESS is not set
 # CONFIG_ARCH_AT91 is not set
+# CONFIG_ARCH_BCMRING is not set
+# CONFIG_ARCH_HIGHBANK is not set
 # CONFIG_ARCH_CLPS711X is not set
+# CONFIG_ARCH_CNS3XXX is not set
 # CONFIG_ARCH_GEMINI is not set
+# CONFIG_ARCH_PRIMA2 is not set
 # CONFIG_ARCH_EBSA110 is not set
 # CONFIG_ARCH_EP93XX is not set
 # CONFIG_ARCH_FOOTBRIDGE is not set
 # CONFIG_ARCH_MXC is not set
-# CONFIG_ARCH_STMP3XXX is not set
+# CONFIG_ARCH_MXS is not set
 # CONFIG_ARCH_NETX is not set
 # CONFIG_ARCH_H720X is not set
-# CONFIG_ARCH_NOMADIK is not set
 # CONFIG_ARCH_IOP13XX is not set
 # CONFIG_ARCH_IOP32X is not set
 # CONFIG_ARCH_IOP33X is not set
 # CONFIG_ARCH_IXP23XX is not set
 # CONFIG_ARCH_IXP2000 is not set
 # CONFIG_ARCH_IXP4XX is not set
-# CONFIG_ARCH_L7200 is not set
+# CONFIG_ARCH_DOVE is not set
 CONFIG_ARCH_KIRKWOOD=y
-# CONFIG_ARCH_LOKI is not set
+# CONFIG_ARCH_LPC32XX is not set
 # CONFIG_ARCH_MV78XX0 is not set
 # CONFIG_ARCH_ORION5X is not set
 # CONFIG_ARCH_MMP is not set
 # CONFIG_ARCH_KS8695 is not set
-# CONFIG_ARCH_NS9XXX is not set
 # CONFIG_ARCH_W90X900 is not set
+# CONFIG_ARCH_TEGRA is not set
+# CONFIG_ARCH_PICOXCELL is not set
 # CONFIG_ARCH_PNX4008 is not set
 # CONFIG_ARCH_PXA is not set
 # CONFIG_ARCH_MSM is not set
+# CONFIG_ARCH_SHMOBILE is not set
 # CONFIG_ARCH_RPC is not set
 # CONFIG_ARCH_SA1100 is not set
 # CONFIG_ARCH_S3C2410 is not set
 # CONFIG_ARCH_S3C64XX is not set
-# CONFIG_ARCH_S5PC1XX is not set
+# CONFIG_ARCH_S5P64X0 is not set
+# CONFIG_ARCH_S5PC100 is not set
+# CONFIG_ARCH_S5PV210 is not set
+# CONFIG_ARCH_EXYNOS is not set
 # CONFIG_ARCH_SHARK is not set
-# CONFIG_ARCH_LH7A40X is not set
+# CONFIG_ARCH_TCC_926 is not set
 # CONFIG_ARCH_U300 is not set
+# CONFIG_ARCH_U8500 is not set
+# CONFIG_ARCH_NOMADIK is not set
 # CONFIG_ARCH_DAVINCI is not set
 # CONFIG_ARCH_OMAP is not set
-# CONFIG_ARCH_BCMRING is not set
+# CONFIG_PLAT_SPEAR is not set
+# CONFIG_ARCH_VT8500 is not set
+# CONFIG_ARCH_ZYNQ is not set
+CONFIG_GPIO_PCA953X=m
+CONFIG_KEYBOARD_GPIO_POLLED=m
 
 #
 # Marvell Kirkwood Implementations
@@ -195,17 +269,34 @@ CONFIG_MACH_RD88F6192_NAS=y
 CONFIG_MACH_RD88F6281=y
 CONFIG_MACH_MV88F6281GTW_GE=y
 CONFIG_MACH_SHEEVAPLUG=y
-CONFIG_MACH_DREAMPLUG=y
+CONFIG_MACH_ESATA_SHEEVAPLUG=y
 CONFIG_MACH_GURUPLUG=y
+CONFIG_MACH_DREAMPLUG=y
 CONFIG_MACH_TS219=y
+CONFIG_MACH_TS41X=y
+CONFIG_MACH_DOCKSTAR=y
+CONFIG_MACH_OPENRD=y
 CONFIG_MACH_OPENRD_BASE=y
+CONFIG_MACH_OPENRD_CLIENT=y
+CONFIG_MACH_OPENRD_ULTIMATE=y
+CONFIG_MACH_NETSPACE_V2=y
+CONFIG_MACH_INETSPACE_V2=y
+CONFIG_MACH_NETSPACE_MAX_V2=y
+CONFIG_MACH_D2NET_V2=y
+CONFIG_MACH_NET2BIG_V2=y
+CONFIG_MACH_NET5BIG_V2=y
+CONFIG_MACH_T5325=y
+CONFIG_MACH_ICONNECT=y
 CONFIG_MACH_NAS6210=y
+
+#
+# System MMU
+#
 CONFIG_PLAT_ORION=y
 
 #
 # Processor Type
 #
-CONFIG_CPU_32=y
 CONFIG_CPU_FEROCEON=y
 # CONFIG_CPU_FEROCEON_OLD_ID is not set
 CONFIG_CPU_32v5=y
@@ -216,6 +307,7 @@ CONFIG_CPU_COPY_FEROCEON=y
 CONFIG_CPU_TLB_FEROCEON=y
 CONFIG_CPU_CP15=y
 CONFIG_CPU_CP15_MMU=y
+CONFIG_CPU_USE_DOMAINS=y
 
 #
 # Processor Features
@@ -234,15 +326,15 @@ CONFIG_ARM_L1_CACHE_SHIFT=5
 CONFIG_PCI=y
 CONFIG_PCI_SYSCALL=y
 # CONFIG_ARCH_SUPPORTS_MSI is not set
-CONFIG_PCI_LEGACY=y
 # CONFIG_PCI_DEBUG is not set
 CONFIG_PCI_STUB=m
+CONFIG_PCI_ATS=y
 CONFIG_PCI_IOV=y
+CONFIG_PCI_PRI=y
+# CONFIG_PCI_PASID is not set
 CONFIG_PCCARD=m
-# CONFIG_PCMCIA_DEBUG is not set
 CONFIG_PCMCIA=m
 CONFIG_PCMCIA_LOAD_CIS=y
-CONFIG_PCMCIA_IOCTL=y
 CONFIG_CARDBUS=y
 
 #
@@ -256,7 +348,7 @@ CONFIG_YENTA_ENE_TUNE=y
 CONFIG_YENTA_TOSHIBA=y
 CONFIG_PD6729=m
 CONFIG_I82092=m
-CONFIG_PCCARD_NONSTATIC=m
+CONFIG_PCCARD_NONSTATIC=y
 
 #
 # Kernel Features
@@ -277,34 +369,44 @@ CONFIG_AEABI=y
 # CONFIG_OABI_COMPAT is not set
 # CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
 # CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
+CONFIG_HAVE_ARCH_PFN_VALID=y
 CONFIG_HIGHMEM=y
+# CONFIG_HIGHPTE is not set
 CONFIG_SELECT_MEMORY_MODEL=y
 CONFIG_FLATMEM_MANUAL=y
-# CONFIG_DISCONTIGMEM_MANUAL is not set
-# CONFIG_SPARSEMEM_MANUAL is not set
 CONFIG_FLATMEM=y
 CONFIG_FLAT_NODE_MEM_MAP=y
+CONFIG_HAVE_MEMBLOCK=y
 CONFIG_PAGEFLAGS_EXTENDED=y
-CONFIG_SPLIT_PTLOCK_CPUS=4096
+CONFIG_SPLIT_PTLOCK_CPUS=999999
+# CONFIG_COMPACTION is not set
 # CONFIG_PHYS_ADDR_T_64BIT is not set
 CONFIG_ZONE_DMA_FLAG=0
 CONFIG_BOUNCE=y
 CONFIG_VIRT_TO_BUS=y
-CONFIG_HAVE_MLOCK=y
-CONFIG_HAVE_MLOCKED_PAGE_BIT=y
 CONFIG_KSM=y
 CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+CONFIG_NEED_PER_CPU_KM=y
+# CONFIG_CLEANCACHE is not set
+CONFIG_FORCE_MAX_ZONEORDER=11
 CONFIG_ALIGNMENT_TRAP=y
 CONFIG_UACCESS_WITH_MEMCPY=y
+CONFIG_SECCOMP=y
+CONFIG_CC_STACKPROTECTOR=y
+# CONFIG_DEPRECATED_PARAM_STRUCT is not set
 
 #
 # Boot options
 #
+CONFIG_USE_OF=y
 CONFIG_ZBOOT_ROM_TEXT=0x0
 CONFIG_ZBOOT_ROM_BSS=0x0
+# CONFIG_ARM_APPENDED_DTB is not set
 CONFIG_CMDLINE=""
 # CONFIG_XIP_KERNEL is not set
 # CONFIG_KEXEC is not set
+# CONFIG_CRASH_DUMP is not set
+CONFIG_AUTO_ZRELADDR=y
 
 #
 # CPU Power Management
@@ -334,21 +436,18 @@ CONFIG_HAVE_AOUT=y
 #
 # Power management options
 #
+CONFIG_PM_RUNTIME=y
 CONFIG_PM=y
 # CONFIG_PM_DEBUG is not set
-CONFIG_PM_SLEEP=y
-CONFIG_SUSPEND=y
-CONFIG_SUSPEND_FREEZER=y
 # CONFIG_APM_EMULATION is not set
-CONFIG_PM_RUNTIME=y
-CONFIG_ARCH_SUSPEND_POSSIBLE=y
+CONFIG_CPU_PM=y
+# CONFIG_ARM_CPU_SUSPEND is not set
 CONFIG_NET=y
 
 #
 # Networking options
 #
 CONFIG_PACKET=y
-CONFIG_PACKET_MMAP=y
 CONFIG_UNIX=y
 CONFIG_XFRM=y
 CONFIG_XFRM_USER=m
@@ -361,17 +460,18 @@ CONFIG_NET_KEY_MIGRATE=y
 CONFIG_INET=y
 CONFIG_IP_MULTICAST=y
 CONFIG_IP_ADVANCED_ROUTER=y
-CONFIG_ASK_IP_FIB_HASH=y
-# CONFIG_IP_FIB_TRIE is not set
-CONFIG_IP_FIB_HASH=y
+# CONFIG_IP_FIB_TRIE_STATS is not set
 CONFIG_IP_MULTIPLE_TABLES=y
 CONFIG_IP_ROUTE_MULTIPATH=y
 CONFIG_IP_ROUTE_VERBOSE=y
+CONFIG_IP_ROUTE_CLASSID=y
 # CONFIG_IP_PNP is not set
 CONFIG_NET_IPIP=m
+CONFIG_NET_IPGRE_DEMUX=m
 CONFIG_NET_IPGRE=m
 CONFIG_NET_IPGRE_BROADCAST=y
 CONFIG_IP_MROUTE=y
+# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set
 CONFIG_IP_PIMSM_V1=y
 CONFIG_IP_PIMSM_V2=y
 CONFIG_ARPD=y
@@ -400,15 +500,10 @@ CONFIG_TCP_CONG_LP=m
 CONFIG_TCP_CONG_VENO=m
 CONFIG_TCP_CONG_YEAH=m
 CONFIG_TCP_CONG_ILLINOIS=m
-# CONFIG_DEFAULT_BIC is not set
-# CONFIG_DEFAULT_CUBIC is not set
-# CONFIG_DEFAULT_HTCP is not set
-# CONFIG_DEFAULT_VEGAS is not set
-# CONFIG_DEFAULT_WESTWOOD is not set
 CONFIG_DEFAULT_RENO=y
 CONFIG_DEFAULT_TCP_CONG="reno"
 # CONFIG_TCP_MD5SIG is not set
-CONFIG_IPV6=m
+CONFIG_IPV6=y
 # CONFIG_IPV6_PRIVACY is not set
 # CONFIG_IPV6_ROUTER_PREF is not set
 # CONFIG_IPV6_OPTIMISTIC_DAD is not set
@@ -423,12 +518,14 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=m
 CONFIG_INET6_XFRM_MODE_BEET=m
 CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
 CONFIG_IPV6_SIT=m
+# CONFIG_IPV6_SIT_6RD is not set
 CONFIG_IPV6_NDISC_NODETYPE=y
 CONFIG_IPV6_TUNNEL=m
 CONFIG_IPV6_MULTIPLE_TABLES=y
 # CONFIG_IPV6_SUBTREES is not set
 # CONFIG_IPV6_MROUTE is not set
 # CONFIG_NETWORK_SECMARK is not set
+CONFIG_NETWORK_PHY_TIMESTAMPING=y
 CONFIG_NETFILTER=y
 # CONFIG_NETFILTER_DEBUG is not set
 CONFIG_NETFILTER_ADVANCED=y
@@ -441,9 +538,10 @@ CONFIG_NETFILTER_NETLINK=m
 CONFIG_NETFILTER_NETLINK_QUEUE=m
 CONFIG_NETFILTER_NETLINK_LOG=m
 CONFIG_NF_CONNTRACK=m
-CONFIG_NF_CT_ACCT=y
 CONFIG_NF_CONNTRACK_MARK=y
+# CONFIG_NF_CONNTRACK_ZONES is not set
 CONFIG_NF_CONNTRACK_EVENTS=y
+CONFIG_NF_CONNTRACK_TIMESTAMP=y
 CONFIG_NF_CT_PROTO_DCCP=m
 CONFIG_NF_CT_PROTO_GRE=m
 CONFIG_NF_CT_PROTO_SCTP=m
@@ -452,7 +550,9 @@ CONFIG_NF_CONNTRACK_AMANDA=m
 CONFIG_NF_CONNTRACK_FTP=m
 CONFIG_NF_CONNTRACK_H323=m
 CONFIG_NF_CONNTRACK_IRC=m
+CONFIG_NF_CONNTRACK_BROADCAST=m
 CONFIG_NF_CONNTRACK_NETBIOS_NS=m
+CONFIG_NF_CONNTRACK_SNMP=m
 CONFIG_NF_CONNTRACK_PPTP=m
 CONFIG_NF_CONNTRACK_SANE=m
 CONFIG_NF_CONNTRACK_SIP=m
@@ -460,10 +560,24 @@ CONFIG_NF_CONNTRACK_TFTP=m
 CONFIG_NF_CT_NETLINK=m
 CONFIG_NETFILTER_TPROXY=m
 CONFIG_NETFILTER_XTABLES=m
+
+#
+# Xtables combined modules
+#
+CONFIG_NETFILTER_XT_MARK=m
+CONFIG_NETFILTER_XT_CONNMARK=m
+
+#
+# Xtables targets
+#
+CONFIG_NETFILTER_XT_TARGET_AUDIT=m
+CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
 CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
 CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
+CONFIG_NETFILTER_XT_TARGET_CT=m
 CONFIG_NETFILTER_XT_TARGET_DSCP=m
 CONFIG_NETFILTER_XT_TARGET_HL=m
+CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
 CONFIG_NETFILTER_XT_TARGET_LED=m
 CONFIG_NETFILTER_XT_TARGET_IMQ=m
 CONFIG_NETFILTER_XT_TARGET_MARK=m
@@ -471,28 +585,38 @@ CONFIG_NETFILTER_XT_TARGET_NFLOG=m
 CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
 CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
 CONFIG_NETFILTER_XT_TARGET_RATEEST=m
+CONFIG_NETFILTER_XT_TARGET_TEE=m
 CONFIG_NETFILTER_XT_TARGET_TPROXY=m
 CONFIG_NETFILTER_XT_TARGET_TRACE=m
 CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
 CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
+
+#
+# Xtables matches
+#
+CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
 CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
 CONFIG_NETFILTER_XT_MATCH_COMMENT=m
 CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
 CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
 CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
 CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
+CONFIG_NETFILTER_XT_MATCH_CPU=m
 CONFIG_NETFILTER_XT_MATCH_DCCP=m
+CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
 CONFIG_NETFILTER_XT_MATCH_DSCP=m
 CONFIG_NETFILTER_XT_MATCH_ESP=m
 CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
 CONFIG_NETFILTER_XT_MATCH_HELPER=m
 CONFIG_NETFILTER_XT_MATCH_HL=m
 CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
+CONFIG_NETFILTER_XT_MATCH_IPVS=m
 CONFIG_NETFILTER_XT_MATCH_LENGTH=m
 CONFIG_NETFILTER_XT_MATCH_LIMIT=m
 CONFIG_NETFILTER_XT_MATCH_MAC=m
 CONFIG_NETFILTER_XT_MATCH_MARK=m
 CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
+CONFIG_NETFILTER_XT_MATCH_OSF=m
 CONFIG_NETFILTER_XT_MATCH_OWNER=m
 CONFIG_NETFILTER_XT_MATCH_POLICY=m
 CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
@@ -501,7 +625,6 @@ CONFIG_NETFILTER_XT_MATCH_QUOTA=m
 CONFIG_NETFILTER_XT_MATCH_RATEEST=m
 CONFIG_NETFILTER_XT_MATCH_REALM=m
 CONFIG_NETFILTER_XT_MATCH_RECENT=m
-CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT=y
 CONFIG_NETFILTER_XT_MATCH_SCTP=m
 CONFIG_NETFILTER_XT_MATCH_SOCKET=m
 CONFIG_NETFILTER_XT_MATCH_STATE=m
@@ -512,7 +635,7 @@ CONFIG_NETFILTER_XT_MATCH_STRING=m
 CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
 CONFIG_NETFILTER_XT_MATCH_TIME=m
 CONFIG_NETFILTER_XT_MATCH_U32=m
-CONFIG_NETFILTER_XT_MATCH_OSF=m
+# CONFIG_IP_SET is not set
 CONFIG_IP_VS=m
 CONFIG_IP_VS_IPV6=y
 # CONFIG_IP_VS_DEBUG is not set
@@ -523,8 +646,10 @@ CONFIG_IP_VS_TAB_BITS=12
 #
 # CONFIG_IP_VS_PROTO_TCP is not set
 # CONFIG_IP_VS_PROTO_UDP is not set
+# CONFIG_IP_VS_PROTO_AH_ESP is not set
 # CONFIG_IP_VS_PROTO_ESP is not set
 # CONFIG_IP_VS_PROTO_AH is not set
+# CONFIG_IP_VS_PROTO_SCTP is not set
 
 #
 # IPVS scheduler
@@ -543,6 +668,7 @@ CONFIG_IP_VS_TAB_BITS=12
 #
 # IPVS application helper
 #
+# CONFIG_IP_VS_NFCT is not set
 
 #
 # IP: Netfilter Configuration
@@ -552,7 +678,6 @@ CONFIG_NF_CONNTRACK_IPV4=m
 CONFIG_NF_CONNTRACK_PROC_COMPAT=y
 CONFIG_IP_NF_QUEUE=m
 CONFIG_IP_NF_IPTABLES=m
-CONFIG_IP_NF_MATCH_ADDRTYPE=m
 CONFIG_IP_NF_MATCH_AH=m
 CONFIG_IP_NF_MATCH_ECN=m
 CONFIG_IP_NF_MATCH_TTL=m
@@ -590,6 +715,7 @@ CONFIG_IP_NF_MATCH_IPP2P=m
 #
 # IPv6: Netfilter Configuration
 #
+CONFIG_NF_DEFRAG_IPV6=m
 CONFIG_NF_CONNTRACK_IPV6=m
 CONFIG_IP6_NF_QUEUE=m
 CONFIG_IP6_NF_IPTABLES=m
@@ -639,9 +765,14 @@ CONFIG_ATM_CLIP_NO_ICMP=y
 # CONFIG_ATM_LANE is not set
 CONFIG_ATM_BR2684=m
 # CONFIG_ATM_BR2684_IPFILTER is not set
+CONFIG_L2TP=m
+CONFIG_L2TP_V3=y
+CONFIG_L2TP_IP=m
+CONFIG_L2TP_ETH=m
 CONFIG_STP=m
 CONFIG_GARP=m
 CONFIG_BRIDGE=m
+CONFIG_BRIDGE_IGMP_SNOOPING=y
 CONFIG_NET_DSA=y
 CONFIG_NET_DSA_TAG_DSA=y
 CONFIG_NET_DSA_TAG_EDSA=y
@@ -664,6 +795,7 @@ CONFIG_LLC=m
 # CONFIG_WAN_ROUTER is not set
 # CONFIG_PHONET is not set
 CONFIG_IEEE802154=m
+CONFIG_IEEE802154_6LOWPAN=m
 CONFIG_NET_SCHED=y
 
 #
@@ -676,6 +808,7 @@ CONFIG_NET_SCH_ATM=m
 CONFIG_NET_SCH_PRIO=m
 CONFIG_NET_SCH_MULTIQ=m
 CONFIG_NET_SCH_RED=m
+CONFIG_NET_SCH_SFB=m
 CONFIG_NET_SCH_SFQ=m
 CONFIG_NET_SCH_TEQL=m
 CONFIG_NET_SCH_TBF=m
@@ -683,6 +816,9 @@ CONFIG_NET_SCH_GRED=m
 CONFIG_NET_SCH_DSMARK=m
 CONFIG_NET_SCH_NETEM=m
 CONFIG_NET_SCH_DRR=m
+CONFIG_NET_SCH_MQPRIO=m
+CONFIG_NET_SCH_CHOKE=m
+CONFIG_NET_SCH_QFQ=m
 CONFIG_NET_SCH_INGRESS=m
 
 #
@@ -692,7 +828,6 @@ CONFIG_NET_CLS=y
 CONFIG_NET_CLS_BASIC=m
 CONFIG_NET_CLS_TCINDEX=m
 CONFIG_NET_CLS_ROUTE4=m
-CONFIG_NET_CLS_ROUTE=y
 CONFIG_NET_CLS_FW=m
 CONFIG_NET_CLS_U32=m
 CONFIG_CLS_U32_PERF=y
@@ -715,11 +850,15 @@ CONFIG_NET_ACT_MIRRED=m
 CONFIG_NET_ACT_IPT=m
 CONFIG_NET_ACT_NAT=m
 CONFIG_NET_ACT_PEDIT=m
-# CONFIG_NET_ACT_SIMP is not set
+CONFIG_NET_ACT_SIMP=m
 CONFIG_NET_ACT_SKBEDIT=m
+CONFIG_NET_ACT_CSUM=m
 CONFIG_NET_CLS_IND=y
 CONFIG_NET_SCH_FIFO=y
 # CONFIG_DCB is not set
+CONFIG_DNS_RESOLVER=y
+CONFIG_BATMAN_ADV=m
+# CONFIG_BATMAN_ADV_DEBUG is not set
 
 #
 # Network testing
@@ -770,8 +909,8 @@ CONFIG_SIGMATEL_FIR=m
 CONFIG_VLSI_FIR=m
 CONFIG_MCS_FIR=m
 CONFIG_BT=m
-CONFIG_BT_L2CAP=m
-CONFIG_BT_SCO=m
+CONFIG_BT_L2CAP=y
+CONFIG_BT_SCO=y
 CONFIG_BT_RFCOMM=m
 CONFIG_BT_RFCOMM_TTY=y
 CONFIG_BT_BNEP=m
@@ -788,6 +927,7 @@ CONFIG_BT_HCIBTSDIO=m
 CONFIG_BT_HCIUART=m
 CONFIG_BT_HCIUART_H4=y
 CONFIG_BT_HCIUART_BCSP=y
+CONFIG_BT_HCIUART_ATH3K=y
 CONFIG_BT_HCIUART_LL=y
 CONFIG_BT_HCIBCM203X=m
 CONFIG_BT_HCIBPA10X=m
@@ -799,19 +939,25 @@ CONFIG_BT_HCIBTUART=m
 CONFIG_BT_HCIVHCI=m
 CONFIG_BT_MRVL=m
 CONFIG_BT_MRVL_SDIO=m
+CONFIG_BT_ATH3K=m
+CONFIG_BT_WILINK=m
 CONFIG_AF_RXRPC=m
 # CONFIG_AF_RXRPC_DEBUG is not set
 CONFIG_RXKAD=m
 CONFIG_FIB_RULES=y
 CONFIG_WIRELESS=y
+CONFIG_WIRELESS_EXT=y
+CONFIG_WEXT_CORE=y
+CONFIG_WEXT_PROC=y
+CONFIG_WEXT_SPY=y
+CONFIG_WEXT_PRIV=y
 CONFIG_CFG80211=m
 # CONFIG_NL80211_TESTMODE is not set
 # CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
 # CONFIG_CFG80211_REG_DEBUG is not set
 # CONFIG_CFG80211_DEFAULT_PS is not set
-CONFIG_CFG80211_DEFAULT_PS_VALUE=0
-CONFIG_WIRELESS_OLD_REGULATORY=y
-CONFIG_WIRELESS_EXT=y
+# CONFIG_CFG80211_INTERNAL_REGDB is not set
+CONFIG_CFG80211_WEXT=y
 CONFIG_WIRELESS_EXT_SYSFS=y
 CONFIG_LIB80211=m
 CONFIG_LIB80211_CRYPT_WEP=m
@@ -821,9 +967,9 @@ CONFIG_LIB80211_CRYPT_TKIP=m
 CONFIG_MAC80211=m
 CONFIG_MAC80211_HAS_RC=y
 CONFIG_MAC80211_RC_MINSTREL=y
-# CONFIG_MAC80211_RC_DEFAULT_PID is not set
+CONFIG_MAC80211_RC_MINSTREL_HT=y
 CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
-CONFIG_MAC80211_RC_DEFAULT="minstrel"
+CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
 CONFIG_MAC80211_MESH=y
 CONFIG_MAC80211_LEDS=y
 # CONFIG_MAC80211_DEBUG_MENU is not set
@@ -831,7 +977,13 @@ CONFIG_MAC80211_LEDS=y
 CONFIG_RFKILL=m
 CONFIG_RFKILL_LEDS=y
 CONFIG_RFKILL_INPUT=y
+CONFIG_RFKILL_REGULATOR=m
 # CONFIG_NET_9P is not set
+# CONFIG_CAIF is not set
+CONFIG_CEPH_LIB=m
+# CONFIG_CEPH_LIB_PRETTYDEBUG is not set
+# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set
+# CONFIG_NFC is not set
 
 #
 # Device Drivers
@@ -850,14 +1002,14 @@ CONFIG_EXTRA_FIRMWARE=""
 # CONFIG_DEBUG_DRIVER is not set
 # CONFIG_DEBUG_DEVRES is not set
 # CONFIG_SYS_HYPERVISOR is not set
+CONFIG_REGMAP=y
+CONFIG_REGMAP_I2C=m
 CONFIG_CONNECTOR=m
 CONFIG_MTD=m
-# CONFIG_MTD_DEBUG is not set
 CONFIG_MTD_TESTS=m
-CONFIG_MTD_CONCAT=m
-CONFIG_MTD_PARTITIONS=y
 # CONFIG_MTD_REDBOOT_PARTS is not set
 # CONFIG_MTD_AFS_PARTS is not set
+CONFIG_MTD_OF_PARTS=m
 CONFIG_MTD_AR7_PARTS=m
 
 #
@@ -872,7 +1024,9 @@ CONFIG_MTD_BLOCK=m
 # CONFIG_INFTL is not set
 # CONFIG_RFD_FTL is not set
 # CONFIG_SSFDC is not set
+CONFIG_SM_FTL=m
 # CONFIG_MTD_OOPS is not set
+# CONFIG_MTD_SWAP is not set
 
 #
 # RAM/ROM/Flash chip drivers
@@ -917,12 +1071,18 @@ CONFIG_MTD_PHYSMAP=m
 # CONFIG_MTD_DOC2000 is not set
 # CONFIG_MTD_DOC2001 is not set
 # CONFIG_MTD_DOC2001PLUS is not set
+# CONFIG_MTD_DOCG3 is not set
+CONFIG_MTD_NAND_ECC=m
+# CONFIG_MTD_NAND_ECC_SMC is not set
 CONFIG_MTD_NAND=m
 # CONFIG_MTD_NAND_VERIFY_WRITE is not set
-# CONFIG_MTD_NAND_ECC_SMC is not set
+# CONFIG_MTD_NAND_ECC_BCH is not set
+# CONFIG_MTD_SM_COMMON is not set
 # CONFIG_MTD_NAND_MUSEUM_IDS is not set
+# CONFIG_MTD_NAND_DENALI is not set
 # CONFIG_MTD_NAND_GPIO is not set
 CONFIG_MTD_NAND_IDS=m
+# CONFIG_MTD_NAND_RICOH is not set
 # CONFIG_MTD_NAND_DISKONCHIP is not set
 # CONFIG_MTD_NAND_CAFE is not set
 # CONFIG_MTD_NAND_NANDSIM is not set
@@ -936,19 +1096,29 @@ CONFIG_MTD_NAND_ORION=m
 #
 CONFIG_MTD_LPDDR=m
 CONFIG_MTD_QINFO_PROBE=m
-
-#
-# UBI - Unsorted block images
-#
 CONFIG_MTD_UBI=m
 CONFIG_MTD_UBI_WL_THRESHOLD=4096
 CONFIG_MTD_UBI_BEB_RESERVE=1
 # CONFIG_MTD_UBI_GLUEBI is not set
-
-#
-# UBI debugging options
-#
 # CONFIG_MTD_UBI_DEBUG is not set
+CONFIG_DTC=y
+CONFIG_OF=y
+
+#
+# Device Tree and Open Firmware support
+#
+CONFIG_PROC_DEVICETREE=y
+CONFIG_OF_FLATTREE=y
+CONFIG_OF_EARLY_FLATTREE=y
+CONFIG_OF_ADDRESS=y
+CONFIG_OF_IRQ=y
+CONFIG_OF_DEVICE=y
+CONFIG_OF_GPIO=y
+CONFIG_OF_I2C=y
+CONFIG_OF_NET=y
+CONFIG_OF_MDIO=y
+CONFIG_OF_PCI=y
+CONFIG_OF_PCI_IRQ=y
 CONFIG_PARPORT=m
 # CONFIG_PARPORT_PC is not set
 # CONFIG_PARPORT_GSC is not set
@@ -956,14 +1126,18 @@ CONFIG_PARPORT_AX88796=m
 CONFIG_PARPORT_1284=y
 CONFIG_PARPORT_NOT_PC=y
 CONFIG_BLK_DEV=y
-# CONFIG_BLK_CPQ_DA is not set
-# CONFIG_BLK_CPQ_CISS_DA is not set
-# CONFIG_BLK_DEV_DAC960 is not set
+CONFIG_BLK_CPQ_DA=m
+CONFIG_BLK_CPQ_CISS_DA=m
+# CONFIG_CISS_SCSI_TAPE is not set
+CONFIG_BLK_DEV_DAC960=m
 # CONFIG_BLK_DEV_UMEM is not set
 # CONFIG_BLK_DEV_COW_COMMON is not set
 CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
 CONFIG_BLK_DEV_CRYPTOLOOP=m
+# CONFIG_BLK_DEV_DRBD is not set
 CONFIG_BLK_DEV_NBD=m
+CONFIG_BLK_DEV_OSD=m
 CONFIG_BLK_DEV_SX8=m
 # CONFIG_BLK_DEV_UB is not set
 CONFIG_BLK_DEV_RAM=y
@@ -974,15 +1148,30 @@ CONFIG_BLK_DEV_RAM_SIZE=16384
 CONFIG_ATA_OVER_ETH=m
 CONFIG_MG_DISK=m
 CONFIG_MG_DISK_RES=0
+CONFIG_BLK_DEV_RBD=m
+CONFIG_SENSORS_LIS3LV02D=m
 CONFIG_MISC_DEVICES=y
+# CONFIG_AD525X_DPOT is not set
 # CONFIG_PHANTOM is not set
+# CONFIG_INTEL_MID_PTI is not set
 # CONFIG_SGI_IOC4 is not set
 CONFIG_TIFM_CORE=m
 CONFIG_TIFM_7XX1=m
 CONFIG_ICS932S401=m
 CONFIG_ENCLOSURE_SERVICES=m
 CONFIG_HP_ILO=m
+CONFIG_APDS9802ALS=m
 CONFIG_ISL29003=m
+CONFIG_ISL29020=m
+CONFIG_SENSORS_TSL2550=m
+CONFIG_SENSORS_BH1780=m
+CONFIG_SENSORS_BH1770=m
+CONFIG_SENSORS_APDS990X=m
+CONFIG_HMC6352=m
+CONFIG_DS1682=m
+CONFIG_BMP085=m
+CONFIG_PCH_PHUB=m
+CONFIG_USB_SWITCH_FSA9480=m
 CONFIG_C2PORT=m
 
 #
@@ -995,13 +1184,28 @@ CONFIG_EEPROM_93CX6=m
 CONFIG_CB710_CORE=m
 # CONFIG_CB710_DEBUG is not set
 CONFIG_CB710_DEBUG_ASSUMPTIONS=y
+CONFIG_IWMC3200TOP=m
+# CONFIG_IWMC3200TOP_DEBUG is not set
+# CONFIG_IWMC3200TOP_DEBUGFS is not set
+
+#
+# Texas Instruments shared transport line discipline
+#
+CONFIG_TI_ST=m
+CONFIG_SENSORS_LIS3_I2C=m
+
+#
+# Altera FPGA firmware download module
+#
+# CONFIG_ALTERA_STAPL is not set
 CONFIG_HAVE_IDE=y
 # CONFIG_IDE is not set
 
 #
 # SCSI device support
 #
-CONFIG_RAID_ATTRS=y
+CONFIG_SCSI_MOD=m
+CONFIG_RAID_ATTRS=m
 CONFIG_SCSI=m
 CONFIG_SCSI_DMA=y
 # CONFIG_SCSI_TGT is not set
@@ -1035,15 +1239,19 @@ CONFIG_SCSI_SAS_ATTRS=m
 CONFIG_SCSI_SAS_LIBSAS=m
 CONFIG_SCSI_SAS_ATA=y
 CONFIG_SCSI_SAS_HOST_SMP=y
-CONFIG_SCSI_SAS_LIBSAS_DEBUG=y
 CONFIG_SCSI_SRP_ATTRS=m
 CONFIG_SCSI_LOWLEVEL=y
 CONFIG_ISCSI_TCP=m
+CONFIG_ISCSI_BOOT_SYSFS=m
 CONFIG_SCSI_CXGB3_ISCSI=m
+CONFIG_SCSI_CXGB4_ISCSI=m
 CONFIG_SCSI_BNX2_ISCSI=m
+CONFIG_SCSI_BNX2X_FCOE=m
 CONFIG_BE2ISCSI=m
 CONFIG_BLK_DEV_3W_XXXX_RAID=m
+CONFIG_SCSI_HPSA=m
 CONFIG_SCSI_3W_9XXX=m
+CONFIG_SCSI_3W_SAS=m
 # CONFIG_SCSI_ACARD is not set
 CONFIG_SCSI_AACRAID=m
 CONFIG_SCSI_AIC7XXX=m
@@ -1065,6 +1273,8 @@ CONFIG_SCSI_AIC94XX=m
 # CONFIG_AIC94XX_DEBUG is not set
 CONFIG_SCSI_MVSAS=m
 CONFIG_SCSI_MVSAS_DEBUG=y
+# CONFIG_SCSI_MVSAS_TASKLET is not set
+CONFIG_SCSI_MVUMI=m
 CONFIG_SCSI_DPT_I2O=m
 # CONFIG_SCSI_ADVANSYS is not set
 CONFIG_SCSI_ARCMSR=m
@@ -1103,6 +1313,7 @@ CONFIG_SCSI_DC390T=m
 # CONFIG_SCSI_NSP32 is not set
 # CONFIG_SCSI_DEBUG is not set
 CONFIG_SCSI_PMCRAID=m
+CONFIG_SCSI_PM8001=m
 # CONFIG_SCSI_SRP is not set
 CONFIG_SCSI_BFA_FC=m
 CONFIG_SCSI_LOWLEVEL_PCMCIA=y
@@ -1116,71 +1327,105 @@ CONFIG_SCSI_DH_RDAC=m
 CONFIG_SCSI_DH_HP_SW=m
 CONFIG_SCSI_DH_EMC=m
 CONFIG_SCSI_DH_ALUA=m
-# CONFIG_SCSI_OSD_INITIATOR is not set
+CONFIG_SCSI_OSD_INITIATOR=m
+CONFIG_SCSI_OSD_ULD=m
+CONFIG_SCSI_OSD_DPRINT_SENSE=1
+# CONFIG_SCSI_OSD_DEBUG is not set
 CONFIG_ATA=m
 # CONFIG_ATA_NONSTANDARD is not set
 CONFIG_ATA_VERBOSE_ERROR=y
 CONFIG_SATA_PMP=y
+
+#
+# Controllers with non-SFF native interface
+#
 CONFIG_SATA_AHCI=m
+CONFIG_SATA_AHCI_PLATFORM=m
+CONFIG_SATA_INIC162X=m
+CONFIG_SATA_ACARD_AHCI=m
 CONFIG_SATA_SIL24=m
 CONFIG_ATA_SFF=y
-CONFIG_SATA_SVW=m
+
+#
+# SFF controllers with custom DMA interface
+#
+CONFIG_PDC_ADMA=m
+CONFIG_SATA_QSTOR=m
+CONFIG_SATA_SX4=m
+CONFIG_ATA_BMDMA=y
+
+#
+# SATA SFF controllers with BMDMA
+#
 CONFIG_ATA_PIIX=m
 CONFIG_SATA_MV=m
 CONFIG_SATA_NV=m
-CONFIG_PDC_ADMA=m
-CONFIG_SATA_QSTOR=m
 CONFIG_SATA_PROMISE=m
-CONFIG_SATA_SX4=m
 CONFIG_SATA_SIL=m
 CONFIG_SATA_SIS=m
+CONFIG_SATA_SVW=m
 CONFIG_SATA_ULI=m
 CONFIG_SATA_VIA=m
 CONFIG_SATA_VITESSE=m
-CONFIG_SATA_INIC162X=m
+
+#
+# PATA SFF controllers with BMDMA
+#
 CONFIG_PATA_ALI=m
 CONFIG_PATA_AMD=m
+CONFIG_PATA_ARASAN_CF=m
 CONFIG_PATA_ARTOP=m
-CONFIG_PATA_ATP867X=m
 CONFIG_PATA_ATIIXP=m
-CONFIG_PATA_CMD640_PCI=m
+CONFIG_PATA_ATP867X=m
 CONFIG_PATA_CMD64X=m
 CONFIG_PATA_CS5520=m
 CONFIG_PATA_CS5530=m
+CONFIG_PATA_CS5536=m
 CONFIG_PATA_CYPRESS=m
 CONFIG_PATA_EFAR=m
-CONFIG_ATA_GENERIC=m
 CONFIG_PATA_HPT366=m
 CONFIG_PATA_HPT37X=m
 CONFIG_PATA_HPT3X2N=m
 CONFIG_PATA_HPT3X3=m
 CONFIG_PATA_HPT3X3_DMA=y
-CONFIG_PATA_IT821X=m
 CONFIG_PATA_IT8213=m
+CONFIG_PATA_IT821X=m
 CONFIG_PATA_JMICRON=m
-CONFIG_PATA_TRIFLEX=m
 CONFIG_PATA_MARVELL=m
-CONFIG_PATA_MPIIX=m
-CONFIG_PATA_OLDPIIX=m
 CONFIG_PATA_NETCELL=m
 CONFIG_PATA_NINJA32=m
-CONFIG_PATA_NS87410=m
 CONFIG_PATA_NS87415=m
-CONFIG_PATA_OPTI=m
+CONFIG_PATA_OLDPIIX=m
 CONFIG_PATA_OPTIDMA=m
-CONFIG_PATA_PCMCIA=m
+CONFIG_PATA_PDC2027X=m
 CONFIG_PATA_PDC_OLD=m
 CONFIG_PATA_RADISYS=m
 CONFIG_PATA_RDC=m
-CONFIG_PATA_RZ1000=m
 CONFIG_PATA_SC1200=m
+CONFIG_PATA_SCH=m
 CONFIG_PATA_SERVERWORKS=m
-CONFIG_PATA_PDC2027X=m
 CONFIG_PATA_SIL680=m
 CONFIG_PATA_SIS=m
+CONFIG_PATA_TOSHIBA=m
+CONFIG_PATA_TRIFLEX=m
 CONFIG_PATA_VIA=m
 CONFIG_PATA_WINBOND=m
-CONFIG_PATA_SCH=m
+
+#
+# PIO-only SFF controllers
+#
+CONFIG_PATA_CMD640_PCI=m
+CONFIG_PATA_MPIIX=m
+CONFIG_PATA_NS87410=m
+CONFIG_PATA_OPTI=m
+CONFIG_PATA_PCMCIA=m
+CONFIG_PATA_RZ1000=m
+
+#
+# Generic fallback / legacy drivers
+#
+CONFIG_ATA_GENERIC=m
+CONFIG_PATA_LEGACY=m
 CONFIG_MD=y
 CONFIG_BLK_DEV_MD=m
 CONFIG_MD_LINEAR=m
@@ -1188,15 +1433,19 @@ CONFIG_MD_RAID0=m
 CONFIG_MD_RAID1=m
 CONFIG_MD_RAID10=m
 CONFIG_MD_RAID456=m
-CONFIG_MD_RAID6_PQ=m
-CONFIG_ASYNC_RAID6_TEST=m
 CONFIG_MD_MULTIPATH=m
 # CONFIG_MD_FAULTY is not set
 CONFIG_BLK_DEV_DM=m
 # CONFIG_DM_DEBUG is not set
+CONFIG_DM_BUFIO=m
+CONFIG_DM_PERSISTENT_DATA=m
 CONFIG_DM_CRYPT=m
 CONFIG_DM_SNAPSHOT=m
+CONFIG_DM_THIN_PROVISIONING=m
+# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set
+# CONFIG_DM_DEBUG_SPACE_MAPS is not set
 CONFIG_DM_MIRROR=m
+CONFIG_DM_RAID=m
 CONFIG_DM_LOG_USERSPACE=m
 CONFIG_DM_ZERO=m
 CONFIG_DM_MULTIPATH=m
@@ -1204,6 +1453,8 @@ CONFIG_DM_MULTIPATH_QL=m
 CONFIG_DM_MULTIPATH_ST=m
 CONFIG_DM_DELAY=m
 CONFIG_DM_UEVENT=y
+CONFIG_DM_FLAKEY=m
+# CONFIG_TARGET_CORE is not set
 CONFIG_FUSION=y
 CONFIG_FUSION_SPI=m
 CONFIG_FUSION_FC=m
@@ -1215,26 +1466,17 @@ CONFIG_FUSION_CTL=m
 #
 # IEEE 1394 (FireWire) support
 #
-
-#
-# You can enable one or both FireWire driver stacks.
-#
-
-#
-# See the help texts for more information.
-#
 CONFIG_FIREWIRE=m
 CONFIG_FIREWIRE_OHCI=m
 CONFIG_FIREWIRE_OHCI_DEBUG=y
 CONFIG_FIREWIRE_SBP2=m
 CONFIG_FIREWIRE_NET=m
-# CONFIG_IEEE1394 is not set
+# CONFIG_FIREWIRE_NOSY is not set
 # CONFIG_I2O is not set
 CONFIG_NETDEVICES=y
-CONFIG_IFB=m
-CONFIG_DUMMY=m
+CONFIG_NET_CORE=y
 CONFIG_BONDING=m
-CONFIG_MACVLAN=m
+CONFIG_DUMMY=m
 CONFIG_EQUALIZER=m
 CONFIG_IMQ=m
 # CONFIG_IMQ_BEHAVIOR_AA is not set
@@ -1242,48 +1484,104 @@ CONFIG_IMQ_BEHAVIOR_AB=y
 # CONFIG_IMQ_BEHAVIOR_BA is not set
 # CONFIG_IMQ_BEHAVIOR_BB is not set
 CONFIG_IMQ_NUM_DEVS=2
+# CONFIG_NET_FC is not set
+CONFIG_MII=m
+CONFIG_IEEE802154_DRIVERS=m
+CONFIG_IEEE802154_FAKEHARD=m
+CONFIG_IFB=m
+CONFIG_MACVLAN=m
+CONFIG_MACVTAP=m
+# CONFIG_NETCONSOLE is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
 CONFIG_TUN=m
 CONFIG_VETH=m
 # CONFIG_ARCNET is not set
-CONFIG_PHYLIB=y
+CONFIG_ATM_DRIVERS=y
+# CONFIG_ATM_DUMMY is not set
+CONFIG_ATM_TCP=m
+CONFIG_ATM_LANAI=m
+CONFIG_ATM_ENI=m
+CONFIG_ATM_ENI_DEBUG=y
+CONFIG_ATM_ENI_TUNE_BURST=y
+CONFIG_ATM_ENI_BURST_TX_16W=y
+CONFIG_ATM_ENI_BURST_TX_8W=y
+CONFIG_ATM_ENI_BURST_TX_4W=y
+CONFIG_ATM_ENI_BURST_TX_2W=y
+CONFIG_ATM_ENI_BURST_RX_16W=y
+CONFIG_ATM_ENI_BURST_RX_8W=y
+CONFIG_ATM_ENI_BURST_RX_4W=y
+CONFIG_ATM_ENI_BURST_RX_2W=y
+CONFIG_ATM_FIRESTREAM=m
+CONFIG_ATM_ZATM=m
+# CONFIG_ATM_ZATM_DEBUG is not set
+CONFIG_ATM_NICSTAR=m
+CONFIG_ATM_NICSTAR_USE_SUNI=y
+CONFIG_ATM_NICSTAR_USE_IDT77105=y
+CONFIG_ATM_IDT77252=m
+# CONFIG_ATM_IDT77252_DEBUG is not set
+# CONFIG_ATM_IDT77252_RCV_ALL is not set
+CONFIG_ATM_IDT77252_USE_SUNI=y
+CONFIG_ATM_AMBASSADOR=m
+# CONFIG_ATM_AMBASSADOR_DEBUG is not set
+CONFIG_ATM_HORIZON=m
+# CONFIG_ATM_HORIZON_DEBUG is not set
+CONFIG_ATM_IA=m
+# CONFIG_ATM_IA_DEBUG is not set
+CONFIG_ATM_FORE200E=m
+CONFIG_ATM_FORE200E_USE_TASKLET=y
+CONFIG_ATM_FORE200E_TX_RETRY=16
+CONFIG_ATM_FORE200E_DEBUG=0
+# CONFIG_ATM_HE is not set
+CONFIG_ATM_SOLOS=m
 
 #
-# MII PHY device drivers
+# CAIF transport drivers
 #
-CONFIG_MARVELL_PHY=m
-CONFIG_DAVICOM_PHY=m
-CONFIG_QSEMI_PHY=m
-CONFIG_LXT_PHY=m
-CONFIG_CICADA_PHY=m
-CONFIG_VITESSE_PHY=m
-CONFIG_SMSC_PHY=m
-CONFIG_BROADCOM_PHY=m
-CONFIG_ICPLUS_PHY=m
-CONFIG_REALTEK_PHY=m
-CONFIG_NATIONAL_PHY=m
-CONFIG_STE10XP=m
-CONFIG_LSI_ET1011C_PHY=m
-# CONFIG_FIXED_PHY is not set
-CONFIG_MDIO_BITBANG=m
-CONFIG_MDIO_GPIO=m
-CONFIG_NET_ETHERNET=y
-CONFIG_MII=m
-CONFIG_AX88796=m
-CONFIG_AX88796_93CX6=y
-CONFIG_HAPPYMEAL=m
-# CONFIG_SUNGEM is not set
-CONFIG_CASSINI=m
+CONFIG_ETHERNET=y
+CONFIG_MDIO=m
 CONFIG_NET_VENDOR_3COM=y
+CONFIG_PCMCIA_3C574=m
+CONFIG_PCMCIA_3C589=m
 CONFIG_VORTEX=m
 CONFIG_TYPHOON=m
-CONFIG_SMC91X=m
+CONFIG_NET_VENDOR_ADAPTEC=y
+CONFIG_ADAPTEC_STARFIRE=m
+CONFIG_NET_VENDOR_ALTEON=y
+CONFIG_ACENIC=m
+# CONFIG_ACENIC_OMIT_TIGON_I is not set
+CONFIG_NET_VENDOR_AMD=y
+CONFIG_AMD8111_ETH=m
+CONFIG_PCNET32=m
+CONFIG_PCMCIA_NMCLAN=m
+CONFIG_NET_VENDOR_ATHEROS=y
+CONFIG_ATL2=m
+CONFIG_ATL1=m
+CONFIG_ATL1E=m
+CONFIG_ATL1C=m
+CONFIG_NET_VENDOR_BROADCOM=y
+CONFIG_B44=m
+CONFIG_B44_PCI_AUTOSELECT=y
+CONFIG_B44_PCICORE_AUTOSELECT=y
+CONFIG_B44_PCI=y
+CONFIG_BNX2=m
+CONFIG_CNIC=m
+CONFIG_TIGON3=m
+CONFIG_BNX2X=m
+CONFIG_NET_VENDOR_BROCADE=y
+CONFIG_BNA=m
+CONFIG_NET_VENDOR_CHELSIO=y
+CONFIG_CHELSIO_T1=m
+CONFIG_CHELSIO_T1_1G=y
+CONFIG_CHELSIO_T3=m
+CONFIG_CHELSIO_T4=m
+CONFIG_CHELSIO_T4VF=m
+CONFIG_NET_VENDOR_CISCO=y
+CONFIG_ENIC=m
 CONFIG_DM9000=m
-CONFIG_DM9000_DEBUGLEVEL=4
 # CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL is not set
-CONFIG_ETHOC=m
-CONFIG_SMC911X=m
-CONFIG_SMSC911X=m
 CONFIG_DNET=m
+CONFIG_NET_VENDOR_DEC=y
 CONFIG_NET_TULIP=y
 CONFIG_DE2104X=m
 CONFIG_DE2104X_DSL=0
@@ -1296,141 +1594,164 @@ CONFIG_WINBOND_840=m
 CONFIG_DM9102=m
 CONFIG_ULI526X=m
 CONFIG_PCMCIA_XIRCOM=m
+CONFIG_NET_VENDOR_DLINK=y
+CONFIG_DE600=m
+CONFIG_DE620=m
+CONFIG_DL2K=m
+CONFIG_SUNDANCE=m
+# CONFIG_SUNDANCE_MMIO is not set
+CONFIG_NET_VENDOR_EMULEX=y
+CONFIG_BE2NET=m
+CONFIG_NET_VENDOR_EXAR=y
+CONFIG_S2IO=m
+CONFIG_VXGE=m
+# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
+CONFIG_NET_VENDOR_FARADAY=y
+# CONFIG_FTMAC100 is not set
+# CONFIG_FTGMAC100 is not set
+CONFIG_NET_VENDOR_FUJITSU=y
+CONFIG_PCMCIA_FMVJ18X=m
+CONFIG_NET_VENDOR_HP=y
 CONFIG_HP100=m
-# CONFIG_IBM_NEW_EMAC_ZMII is not set
-# CONFIG_IBM_NEW_EMAC_RGMII is not set
-# CONFIG_IBM_NEW_EMAC_TAH is not set
-# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
-# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
-# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
-# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
-CONFIG_NET_PCI=y
-CONFIG_PCNET32=m
-CONFIG_AMD8111_ETH=m
-CONFIG_ADAPTEC_STARFIRE=m
-CONFIG_B44=m
-CONFIG_FORCEDETH=m
-# CONFIG_FORCEDETH_NAPI is not set
+CONFIG_NET_VENDOR_INTEL=y
 CONFIG_E100=m
+CONFIG_E1000=m
+CONFIG_E1000E=m
+CONFIG_IGB=m
+CONFIG_IGBVF=m
+CONFIG_IXGB=m
+CONFIG_IXGBE=m
+CONFIG_NET_VENDOR_I825XX=y
+CONFIG_IP1000=m
+CONFIG_JME=m
+CONFIG_NET_VENDOR_MARVELL=y
+CONFIG_MV643XX_ETH=m
+CONFIG_SKGE=m
+CONFIG_SKGE_GENESIS=y
+CONFIG_SKY2=m
+CONFIG_NET_VENDOR_MELLANOX=y
+CONFIG_MLX4_EN=m
+CONFIG_MLX4_CORE=m
+CONFIG_MLX4_DEBUG=y
+CONFIG_NET_VENDOR_MICREL=y
+CONFIG_KS8842=m
+CONFIG_KS8851_MLL=m
+CONFIG_KSZ884X_PCI=m
+CONFIG_NET_VENDOR_MYRI=y
+CONFIG_MYRI10GE=m
 CONFIG_FEALNX=m
+CONFIG_NET_VENDOR_NATSEMI=y
 CONFIG_NATSEMI=m
+CONFIG_NS83820=m
+CONFIG_NET_VENDOR_8390=y
+CONFIG_PCMCIA_AXNET=m
+CONFIG_AX88796=m
+CONFIG_AX88796_93CX6=y
 CONFIG_NE2K_PCI=m
+CONFIG_PCMCIA_PCNET=m
+CONFIG_NET_VENDOR_NVIDIA=y
+CONFIG_FORCEDETH=m
+CONFIG_NET_VENDOR_OKI=y
+CONFIG_PCH_GBE=m
+CONFIG_ETHOC=m
+CONFIG_NET_PACKET_ENGINE=y
+CONFIG_HAMACHI=m
+CONFIG_YELLOWFIN=m
+CONFIG_NET_VENDOR_QLOGIC=y
+CONFIG_QLA3XXX=m
+CONFIG_QLCNIC=m
+CONFIG_QLGE=m
+CONFIG_NETXEN_NIC=m
+CONFIG_NET_VENDOR_REALTEK=y
 CONFIG_8139CP=m
 CONFIG_8139TOO=m
 # CONFIG_8139TOO_PIO is not set
 CONFIG_8139TOO_TUNE_TWISTER=y
 CONFIG_8139TOO_8129=y
 # CONFIG_8139_OLD_RX_RESET is not set
+CONFIG_R8169=m
+CONFIG_NET_VENDOR_RDC=y
 CONFIG_R6040=m
+CONFIG_NET_VENDOR_SEEQ=y
+CONFIG_SEEQ8005=m
+CONFIG_NET_VENDOR_SILAN=y
+CONFIG_SC92031=m
+CONFIG_NET_VENDOR_SIS=y
 CONFIG_SIS900=m
+CONFIG_SIS190=m
+CONFIG_SFC=m
+CONFIG_SFC_MTD=y
+CONFIG_NET_VENDOR_SMSC=y
+CONFIG_SMC91X=m
+CONFIG_PCMCIA_SMC91C92=m
 CONFIG_EPIC100=m
+CONFIG_SMC911X=m
+CONFIG_SMSC911X=m
+# CONFIG_SMSC911X_ARCH_HOOKS is not set
 CONFIG_SMSC9420=m
-CONFIG_SUNDANCE=m
-# CONFIG_SUNDANCE_MMIO is not set
+CONFIG_NET_VENDOR_STMICRO=y
+CONFIG_STMMAC_ETH=m
+# CONFIG_STMMAC_DA is not set
+CONFIG_STMMAC_RING=y
+# CONFIG_STMMAC_CHAINED is not set
+CONFIG_NET_VENDOR_SUN=y
+CONFIG_HAPPYMEAL=m
+# CONFIG_SUNGEM is not set
+CONFIG_CASSINI=m
+CONFIG_NIU=m
+CONFIG_NET_VENDOR_TEHUTI=y
+CONFIG_TEHUTI=m
+CONFIG_NET_VENDOR_TI=y
 CONFIG_TLAN=m
-CONFIG_KS8842=m
-CONFIG_KS8851_MLL=m
+CONFIG_NET_VENDOR_VIA=y
 CONFIG_VIA_RHINE=m
 CONFIG_VIA_RHINE_MMIO=y
-CONFIG_SC92031=m
-CONFIG_NET_POCKET=y
-CONFIG_DE600=m
-CONFIG_DE620=m
-CONFIG_ATL2=m
-CONFIG_NETDEV_1000=y
-CONFIG_ACENIC=m
-# CONFIG_ACENIC_OMIT_TIGON_I is not set
-CONFIG_DL2K=m
-CONFIG_E1000=m
-CONFIG_E1000E=m
-CONFIG_IP1000=m
-CONFIG_IGB=m
-CONFIG_IGBVF=m
-CONFIG_NS83820=m
-CONFIG_HAMACHI=m
-CONFIG_YELLOWFIN=m
-CONFIG_R8169=m
-CONFIG_R8169_VLAN=y
-CONFIG_SIS190=m
-CONFIG_SKGE=m
-CONFIG_SKY2=m
 CONFIG_VIA_VELOCITY=m
-CONFIG_TIGON3=m
-CONFIG_BNX2=m
-CONFIG_CNIC=m
-CONFIG_MV643XX_ETH=m
-CONFIG_QLA3XXX=m
-CONFIG_ATL1=m
-CONFIG_ATL1E=m
-CONFIG_ATL1C=m
-CONFIG_JME=m
-CONFIG_NETDEV_10000=y
-CONFIG_MDIO=m
-CONFIG_CHELSIO_T1=m
-CONFIG_CHELSIO_T1_1G=y
-CONFIG_CHELSIO_T3_DEPENDS=y
-CONFIG_CHELSIO_T3=m
-CONFIG_ENIC=m
-CONFIG_IXGBE=m
-CONFIG_IXGB=m
-CONFIG_S2IO=m
-CONFIG_VXGE=m
-# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
-CONFIG_MYRI10GE=m
-CONFIG_NETXEN_NIC=m
-CONFIG_NIU=m
-CONFIG_MLX4_EN=m
-CONFIG_MLX4_CORE=m
-CONFIG_MLX4_DEBUG=y
-CONFIG_TEHUTI=m
-CONFIG_BNX2X=m
-CONFIG_QLGE=m
-CONFIG_SFC=m
-CONFIG_SFC_MTD=y
-CONFIG_BE2NET=m
-# CONFIG_TR is not set
-CONFIG_WLAN=y
-# CONFIG_WLAN_PRE80211 is not set
-CONFIG_WLAN_80211=y
-CONFIG_PCMCIA_RAYCS=m
-# CONFIG_LIBERTAS is not set
-# CONFIG_LIBERTAS_THINFIRM is not set
-CONFIG_ATMEL=m
-CONFIG_PCI_ATMEL=m
-CONFIG_PCMCIA_ATMEL=m
-CONFIG_AT76C50X_USB=m
-CONFIG_AIRO_CS=m
-CONFIG_PCMCIA_WL3501=m
-# CONFIG_PRISM54 is not set
-CONFIG_USB_ZD1201=m
-CONFIG_USB_NET_RNDIS_WLAN=m
-# CONFIG_RTL8180 is not set
-# CONFIG_RTL8187 is not set
-# CONFIG_ADM8211 is not set
-# CONFIG_MAC80211_HWSIM is not set
-# CONFIG_MWL8K is not set
-# CONFIG_P54_COMMON is not set
-# CONFIG_ATH_COMMON is not set
-# CONFIG_IPW2100 is not set
-# CONFIG_IPW2200 is not set
-# CONFIG_IWLWIFI is not set
-CONFIG_HOSTAP=m
-CONFIG_HOSTAP_FIRMWARE=y
-# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set
-CONFIG_HOSTAP_PLX=m
-CONFIG_HOSTAP_PCI=m
-CONFIG_HOSTAP_CS=m
-# CONFIG_B43 is not set
-# CONFIG_B43LEGACY is not set
-# CONFIG_ZD1211RW is not set
-# CONFIG_RT2X00 is not set
-# CONFIG_HERMES is not set
-# CONFIG_WL12XX is not set
-# CONFIG_IWM is not set
+CONFIG_NET_VENDOR_XIRCOM=y
+CONFIG_PCMCIA_XIRC2PS=m
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+CONFIG_PHYLIB=y
 
 #
-# Enable WiMAX (Networking options) to see the WiMAX drivers
+# MII PHY device drivers
 #
+CONFIG_MARVELL_PHY=m
+CONFIG_DAVICOM_PHY=m
+CONFIG_QSEMI_PHY=m
+CONFIG_LXT_PHY=m
+CONFIG_CICADA_PHY=m
+CONFIG_VITESSE_PHY=m
+CONFIG_SMSC_PHY=m
+CONFIG_BROADCOM_PHY=m
+CONFIG_ICPLUS_PHY=m
+CONFIG_REALTEK_PHY=m
+CONFIG_NATIONAL_PHY=m
+CONFIG_STE10XP=m
+CONFIG_LSI_ET1011C_PHY=m
+CONFIG_MICREL_PHY=m
+# CONFIG_FIXED_PHY is not set
+CONFIG_MDIO_BITBANG=m
+CONFIG_MDIO_GPIO=m
+# CONFIG_PLIP is not set
+CONFIG_PPP=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_MPPE=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPPOATM=m
+CONFIG_PPPOE=m
+CONFIG_PPTP=m
+CONFIG_PPPOL2TP=m
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_SLIP=m
+CONFIG_SLHC=m
+CONFIG_SLIP_COMPRESSED=y
+CONFIG_SLIP_SMART=y
+CONFIG_SLIP_MODE_SLIP6=y
+# CONFIG_TR is not set
 
 #
 # USB Network Adapters
@@ -1443,7 +1764,9 @@ CONFIG_USB_USBNET=m
 CONFIG_USB_NET_AX8817X=m
 CONFIG_USB_NET_CDCETHER=m
 CONFIG_USB_NET_CDC_EEM=m
+CONFIG_USB_NET_CDC_NCM=m
 CONFIG_USB_NET_DM9601=m
+CONFIG_USB_NET_SMSC75XX=m
 CONFIG_USB_NET_SMSC95XX=m
 CONFIG_USB_NET_GL620A=m
 CONFIG_USB_NET_NET1080=m
@@ -1458,17 +1781,62 @@ CONFIG_USB_ARMLINUX=y
 CONFIG_USB_EPSON2888=y
 CONFIG_USB_KC2190=y
 CONFIG_USB_NET_ZAURUS=m
+CONFIG_USB_NET_CX82310_ETH=m
+CONFIG_USB_NET_KALMIA=m
 CONFIG_USB_HSO=m
 CONFIG_USB_NET_INT51X1=m
-CONFIG_NET_PCMCIA=y
-CONFIG_PCMCIA_3C589=m
-CONFIG_PCMCIA_3C574=m
-CONFIG_PCMCIA_FMVJ18X=m
-CONFIG_PCMCIA_PCNET=m
-CONFIG_PCMCIA_NMCLAN=m
-CONFIG_PCMCIA_SMC91C92=m
-CONFIG_PCMCIA_XIRC2PS=m
-CONFIG_PCMCIA_AXNET=m
+# CONFIG_USB_IPHETH is not set
+CONFIG_USB_SIERRA_NET=m
+CONFIG_USB_VL600=m
+CONFIG_WLAN=y
+CONFIG_PCMCIA_RAYCS=m
+# CONFIG_LIBERTAS_THINFIRM is not set
+CONFIG_ATMEL=m
+CONFIG_PCI_ATMEL=m
+CONFIG_PCMCIA_ATMEL=m
+CONFIG_AT76C50X_USB=m
+CONFIG_AIRO_CS=m
+CONFIG_PCMCIA_WL3501=m
+# CONFIG_PRISM54 is not set
+CONFIG_USB_ZD1201=m
+CONFIG_USB_NET_RNDIS_WLAN=m
+# CONFIG_RTL8180 is not set
+# CONFIG_RTL8187 is not set
+# CONFIG_ADM8211 is not set
+# CONFIG_MAC80211_HWSIM is not set
+# CONFIG_MWL8K is not set
+# CONFIG_ATH_COMMON is not set
+# CONFIG_B43 is not set
+# CONFIG_B43LEGACY is not set
+# CONFIG_BRCMFMAC is not set
+CONFIG_HOSTAP=m
+CONFIG_HOSTAP_FIRMWARE=y
+# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set
+CONFIG_HOSTAP_PLX=m
+CONFIG_HOSTAP_PCI=m
+CONFIG_HOSTAP_CS=m
+# CONFIG_IPW2100 is not set
+# CONFIG_IPW2200 is not set
+# CONFIG_IWLWIFI is not set
+# CONFIG_IWL4965 is not set
+# CONFIG_IWL3945 is not set
+# CONFIG_IWM is not set
+# CONFIG_LIBERTAS is not set
+# CONFIG_HERMES is not set
+# CONFIG_P54_COMMON is not set
+# CONFIG_RT2X00 is not set
+# CONFIG_RTL8192CE is not set
+# CONFIG_RTL8192SE is not set
+# CONFIG_RTL8192DE is not set
+# CONFIG_RTL8192CU is not set
+# CONFIG_WL1251 is not set
+# CONFIG_WL12XX_MENU is not set
+# CONFIG_ZD1211RW is not set
+# CONFIG_MWIFIEX is not set
+
+#
+# Enable WiMAX (Networking options) to see the WiMAX drivers
+#
 CONFIG_WAN=y
 CONFIG_LANMEDIA=m
 CONFIG_HDLC=m
@@ -1491,87 +1859,9 @@ CONFIG_DSCC4_PCISYNC=y
 CONFIG_DSCC4_PCI_RST=y
 CONFIG_DLCI=m
 CONFIG_DLCI_MAX=8
-CONFIG_ATM_DRIVERS=y
-# CONFIG_ATM_DUMMY is not set
-CONFIG_ATM_TCP=m
-CONFIG_ATM_LANAI=m
-CONFIG_ATM_ENI=m
-CONFIG_ATM_ENI_DEBUG=y
-CONFIG_ATM_ENI_TUNE_BURST=y
-CONFIG_ATM_ENI_BURST_TX_16W=y
-CONFIG_ATM_ENI_BURST_TX_8W=y
-CONFIG_ATM_ENI_BURST_TX_4W=y
-CONFIG_ATM_ENI_BURST_TX_2W=y
-CONFIG_ATM_ENI_BURST_RX_16W=y
-CONFIG_ATM_ENI_BURST_RX_8W=y
-CONFIG_ATM_ENI_BURST_RX_4W=y
-CONFIG_ATM_ENI_BURST_RX_2W=y
-CONFIG_ATM_FIRESTREAM=m
-CONFIG_ATM_ZATM=m
-# CONFIG_ATM_ZATM_DEBUG is not set
-CONFIG_ATM_NICSTAR=m
-CONFIG_ATM_NICSTAR_USE_SUNI=y
-CONFIG_ATM_NICSTAR_USE_IDT77105=y
-CONFIG_ATM_IDT77252=m
-# CONFIG_ATM_IDT77252_DEBUG is not set
-# CONFIG_ATM_IDT77252_RCV_ALL is not set
-CONFIG_ATM_IDT77252_USE_SUNI=y
-CONFIG_ATM_AMBASSADOR=m
-# CONFIG_ATM_AMBASSADOR_DEBUG is not set
-CONFIG_ATM_HORIZON=m
-# CONFIG_ATM_HORIZON_DEBUG is not set
-CONFIG_ATM_IA=m
-# CONFIG_ATM_IA_DEBUG is not set
-CONFIG_ATM_FORE200E=m
-CONFIG_ATM_FORE200E_USE_TASKLET=y
-CONFIG_ATM_FORE200E_TX_RETRY=16
-CONFIG_ATM_FORE200E_DEBUG=0
-# CONFIG_ATM_HE is not set
-CONFIG_ATM_SOLOS=m
-CONFIG_IEEE802154_DRIVERS=m
-CONFIG_IEEE802154_FAKEHARD=m
-# CONFIG_FDDI is not set
-# CONFIG_HIPPI is not set
-# CONFIG_PLIP is not set
-CONFIG_PPP=m
-CONFIG_PPP_MULTILINK=y
-CONFIG_PPP_FILTER=y
-CONFIG_PPP_ASYNC=m
-CONFIG_PPP_SYNC_TTY=m
-CONFIG_PPP_DEFLATE=m
-CONFIG_PPP_BSDCOMP=m
-CONFIG_PPP_MPPE=m
-CONFIG_PPPOE=m
-CONFIG_PPPOATM=m
-CONFIG_PPPOL2TP=m
-CONFIG_SLIP=m
-CONFIG_SLIP_COMPRESSED=y
-CONFIG_SLHC=m
-CONFIG_SLIP_SMART=y
-CONFIG_SLIP_MODE_SLIP6=y
-# CONFIG_NET_FC is not set
-# CONFIG_NETCONSOLE is not set
-# CONFIG_NETPOLL is not set
-# CONFIG_NET_POLL_CONTROLLER is not set
+CONFIG_VMXNET3=m
 CONFIG_ISDN=y
 CONFIG_ISDN_I4L=m
-CONFIG_MISDN=m
-CONFIG_MISDN_DSP=m
-CONFIG_MISDN_L1OIP=m
-
-#
-# mISDN hardware drivers
-#
-CONFIG_MISDN_HFCPCI=m
-CONFIG_MISDN_HFCMULTI=m
-CONFIG_MISDN_HFCUSB=m
-CONFIG_MISDN_AVMFRITZ=m
-CONFIG_MISDN_SPEEDFAX=m
-CONFIG_MISDN_INFINEON=m
-CONFIG_MISDN_W6692=m
-CONFIG_MISDN_NETJET=m
-CONFIG_MISDN_IPAC=m
-CONFIG_MISDN_ISAR=m
 CONFIG_ISDN_PPP=y
 CONFIG_ISDN_PPP_VJ=y
 CONFIG_ISDN_MPP=y
@@ -1649,16 +1939,11 @@ CONFIG_HISAX_FRITZ_PCIPNP=m
 #
 # Active cards
 #
-CONFIG_HYSDN=m
-CONFIG_HYSDN_CAPI=y
-CONFIG_ISDN_HDLC=m
 CONFIG_ISDN_CAPI=m
 CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y
 CONFIG_CAPI_TRACE=y
 CONFIG_ISDN_CAPI_MIDDLEWARE=y
 CONFIG_ISDN_CAPI_CAPI20=m
-CONFIG_ISDN_CAPI_CAPIFS_BOOL=y
-CONFIG_ISDN_CAPI_CAPIFS=m
 CONFIG_ISDN_CAPI_CAPIDRV=m
 
 #
@@ -1679,10 +1964,33 @@ CONFIG_ISDN_DIVAS_DIVACAPI=m
 CONFIG_ISDN_DIVAS_USERIDI=m
 CONFIG_ISDN_DIVAS_MAINT=m
 CONFIG_ISDN_DRV_GIGASET=m
+CONFIG_GIGASET_CAPI=y
+# CONFIG_GIGASET_I4L is not set
+# CONFIG_GIGASET_DUMMYLL is not set
 CONFIG_GIGASET_BASE=m
 CONFIG_GIGASET_M105=m
 CONFIG_GIGASET_M101=m
 # CONFIG_GIGASET_DEBUG is not set
+CONFIG_HYSDN=m
+CONFIG_HYSDN_CAPI=y
+CONFIG_MISDN=m
+CONFIG_MISDN_DSP=m
+CONFIG_MISDN_L1OIP=m
+
+#
+# mISDN hardware drivers
+#
+CONFIG_MISDN_HFCPCI=m
+CONFIG_MISDN_HFCMULTI=m
+CONFIG_MISDN_HFCUSB=m
+CONFIG_MISDN_AVMFRITZ=m
+CONFIG_MISDN_SPEEDFAX=m
+CONFIG_MISDN_INFINEON=m
+CONFIG_MISDN_W6692=m
+CONFIG_MISDN_NETJET=m
+CONFIG_MISDN_IPAC=m
+CONFIG_MISDN_ISAR=m
+CONFIG_ISDN_HDLC=m
 # CONFIG_PHONE is not set
 
 #
@@ -1691,6 +1999,7 @@ CONFIG_GIGASET_M101=m
 CONFIG_INPUT=y
 CONFIG_INPUT_FF_MEMLESS=m
 CONFIG_INPUT_POLLDEV=m
+CONFIG_INPUT_SPARSEKMAP=m
 
 #
 # Userland interfaces
@@ -1700,7 +2009,7 @@ CONFIG_INPUT_MOUSEDEV=y
 CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
 CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
 # CONFIG_INPUT_JOYDEV is not set
-CONFIG_INPUT_EVDEV=y
+# CONFIG_INPUT_EVDEV is not set
 # CONFIG_INPUT_EVBUG is not set
 
 #
@@ -1708,13 +2017,18 @@ CONFIG_INPUT_EVDEV=y
 #
 CONFIG_INPUT_KEYBOARD=y
 CONFIG_KEYBOARD_ADP5588=m
+CONFIG_KEYBOARD_ADP5589=m
 CONFIG_KEYBOARD_ATKBD=y
-CONFIG_QT2160=m
+CONFIG_KEYBOARD_QT1070=m
+CONFIG_KEYBOARD_QT2160=m
 CONFIG_KEYBOARD_LKKBD=m
 CONFIG_KEYBOARD_GPIO=m
+CONFIG_KEYBOARD_TCA6416=m
 CONFIG_KEYBOARD_MATRIX=m
 CONFIG_KEYBOARD_LM8323=m
 CONFIG_KEYBOARD_MAX7359=m
+CONFIG_KEYBOARD_MCS=m
+CONFIG_KEYBOARD_MPR121=m
 CONFIG_KEYBOARD_NEWTON=m
 CONFIG_KEYBOARD_OPENCORES=m
 CONFIG_KEYBOARD_STOWAWAY=m
@@ -1725,16 +2039,24 @@ CONFIG_KEYBOARD_XTKBD=m
 # CONFIG_INPUT_TABLET is not set
 # CONFIG_INPUT_TOUCHSCREEN is not set
 CONFIG_INPUT_MISC=y
-CONFIG_INPUT_ATI_REMOTE=m
+CONFIG_INPUT_88PM860X_ONKEY=m
+CONFIG_INPUT_AD714X=m
+CONFIG_INPUT_AD714X_I2C=m
+CONFIG_INPUT_BMA150=m
+# CONFIG_INPUT_MMA8450 is not set
+# CONFIG_INPUT_MPU3050 is not set
 CONFIG_INPUT_ATI_REMOTE2=m
 CONFIG_INPUT_KEYSPAN_REMOTE=m
+# CONFIG_INPUT_KXTJ9 is not set
 CONFIG_INPUT_POWERMATE=m
 CONFIG_INPUT_YEALINK=m
 CONFIG_INPUT_CM109=m
 # CONFIG_INPUT_UINPUT is not set
 CONFIG_INPUT_PCF50633_PMU=m
+CONFIG_INPUT_PCF8574=m
 CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
-CONFIG_INPUT_WM831X_ON=m
+# CONFIG_INPUT_ADXL34X is not set
+# CONFIG_INPUT_CMA3000 is not set
 
 #
 # Hardware I/O ports
@@ -1745,6 +2067,8 @@ CONFIG_SERIO_SERPORT=y
 # CONFIG_SERIO_PCIPS2 is not set
 CONFIG_SERIO_LIBPS2=y
 # CONFIG_SERIO_RAW is not set
+CONFIG_SERIO_ALTERA_PS2=m
+CONFIG_SERIO_PS2MULT=m
 # CONFIG_GAMEPORT is not set
 
 #
@@ -1755,9 +2079,14 @@ CONFIG_CONSOLE_TRANSLATIONS=y
 CONFIG_VT_CONSOLE=y
 CONFIG_HW_CONSOLE=y
 # CONFIG_VT_HW_CONSOLE_BINDING is not set
-CONFIG_DEVKMEM=y
+CONFIG_UNIX98_PTYS=y
+# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
+# CONFIG_LEGACY_PTYS is not set
 # CONFIG_SERIAL_NONSTANDARD is not set
 CONFIG_NOZOMI=m
+CONFIG_N_GSM=m
+# CONFIG_TRACE_SINK is not set
+CONFIG_DEVKMEM=y
 
 #
 # Serial drivers
@@ -1773,19 +2102,28 @@ CONFIG_SERIAL_8250_MANY_PORTS=y
 CONFIG_SERIAL_8250_SHARE_IRQ=y
 CONFIG_SERIAL_8250_DETECT_IRQ=y
 CONFIG_SERIAL_8250_RSA=y
+CONFIG_SERIAL_8250_DW=m
 
 #
 # Non-8250 serial port support
 #
+CONFIG_SERIAL_MFD_HSU=m
+CONFIG_SERIAL_UARTLITE=m
 CONFIG_SERIAL_CORE=y
 CONFIG_SERIAL_CORE_CONSOLE=y
 # CONFIG_SERIAL_JSM is not set
-CONFIG_UNIX98_PTYS=y
-# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
-# CONFIG_LEGACY_PTYS is not set
+CONFIG_SERIAL_OF_PLATFORM=y
+CONFIG_SERIAL_TIMBERDALE=m
+CONFIG_SERIAL_ALTERA_JTAGUART=m
+CONFIG_SERIAL_ALTERA_UART=m
+CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4
+CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200
+CONFIG_SERIAL_PCH_UART=m
+CONFIG_SERIAL_XILINX_PS_UART=m
 CONFIG_PRINTER=m
 # CONFIG_LP_CONSOLE is not set
 CONFIG_PPDEV=m
+# CONFIG_HVC_DCC is not set
 CONFIG_IPMI_HANDLER=m
 CONFIG_IPMI_PANIC_EVENT=y
 # CONFIG_IPMI_PANIC_STRING is not set
@@ -1809,11 +2147,21 @@ CONFIG_IPWIRELESS=m
 # CONFIG_RAW_DRIVER is not set
 # CONFIG_TCG_TPM is not set
 CONFIG_DEVPORT=y
-CONFIG_I2C=m
+# CONFIG_RAMOOPS is not set
+CONFIG_I2C=y
 CONFIG_I2C_BOARDINFO=y
 CONFIG_I2C_COMPAT=y
 CONFIG_I2C_CHARDEV=m
+CONFIG_I2C_MUX=m
+
+#
+# Multiplexer I2C Chip support
+#
+CONFIG_I2C_MUX_GPIO=m
+CONFIG_I2C_MUX_PCA9541=m
+CONFIG_I2C_MUX_PCA954x=m
 CONFIG_I2C_HELPER_AUTO=y
+CONFIG_I2C_SMBUS=m
 CONFIG_I2C_ALGOBIT=m
 CONFIG_I2C_ALGOPCA=m
 
@@ -1842,39 +2190,34 @@ CONFIG_I2C_VIAPRO=m
 #
 # I2C system bus drivers (mostly embedded / system-on-chip)
 #
+CONFIG_I2C_DESIGNWARE_CORE=m
+CONFIG_I2C_DESIGNWARE_PCI=m
 CONFIG_I2C_GPIO=m
-CONFIG_I2C_MV64XXX=m
+CONFIG_I2C_INTEL_MID=m
+CONFIG_I2C_MV64XXX=y
 CONFIG_I2C_OCORES=m
+CONFIG_I2C_PCA_PLATFORM=m
+# CONFIG_I2C_PXA_PCI is not set
 CONFIG_I2C_SIMTEC=m
+CONFIG_I2C_XILINX=m
+CONFIG_I2C_EG20T=m
 
 #
 # External I2C/SMBus adapter drivers
 #
+CONFIG_I2C_DIOLAN_U2C=m
 CONFIG_I2C_PARPORT=m
 CONFIG_I2C_PARPORT_LIGHT=m
-# CONFIG_I2C_TAOS_EVM is not set
+CONFIG_I2C_TAOS_EVM=m
 CONFIG_I2C_TINY_USB=m
 
-#
-# Graphics adapter I2C/DDC channel drivers
-#
-CONFIG_I2C_VOODOO3=m
-
 #
 # Other I2C/SMBus bus drivers
 #
-CONFIG_I2C_PCA_PLATFORM=m
 CONFIG_I2C_STUB=m
-
-#
-# Miscellaneous I2C Chip support
-#
-CONFIG_DS1682=m
-CONFIG_SENSORS_TSL2550=m
 # CONFIG_I2C_DEBUG_CORE is not set
 # CONFIG_I2C_DEBUG_ALGO is not set
 # CONFIG_I2C_DEBUG_BUS is not set
-# CONFIG_I2C_DEBUG_CHIP is not set
 # CONFIG_SPI is not set
 
 #
@@ -1882,36 +2225,69 @@ CONFIG_SENSORS_TSL2550=m
 #
 CONFIG_PPS=m
 # CONFIG_PPS_DEBUG is not set
+
+#
+# PPS clients support
+#
+# CONFIG_PPS_CLIENT_KTIMER is not set
+# CONFIG_PPS_CLIENT_LDISC is not set
+# CONFIG_PPS_CLIENT_PARPORT is not set
+# CONFIG_PPS_CLIENT_GPIO is not set
+
+#
+# PPS generators support
+#
+
+#
+# PTP clock support
+#
+CONFIG_PTP_1588_CLOCK=m
+CONFIG_DP83640_PHY=m
 CONFIG_ARCH_REQUIRE_GPIOLIB=y
 CONFIG_GPIOLIB=y
 # CONFIG_DEBUG_GPIO is not set
-# CONFIG_GPIO_SYSFS is not set
+CONFIG_GPIO_SYSFS=y
+CONFIG_GPIO_GENERIC=m
+CONFIG_GPIO_MAX730X=m
 
 #
-# Memory mapped GPIO expanders:
+# Memory mapped GPIO drivers:
 #
+CONFIG_GPIO_GENERIC_PLATFORM=m
+CONFIG_GPIO_IT8761E=m
+CONFIG_GPIO_VX855=m
 
 #
 # I2C GPIO expanders:
 #
+CONFIG_GPIO_MAX7300=m
 CONFIG_GPIO_MAX732X=m
-CONFIG_GPIO_PCA953X=m
 CONFIG_GPIO_PCF857X=m
-CONFIG_GPIO_WM831X=m
+# CONFIG_GPIO_SX150X is not set
+CONFIG_GPIO_ADP5588=m
 
 #
 # PCI GPIO expanders:
 #
 # CONFIG_GPIO_BT8XX is not set
-# CONFIG_GPIO_LANGWELL is not set
+CONFIG_GPIO_ML_IOH=m
+# CONFIG_GPIO_TIMBERDALE is not set
+CONFIG_GPIO_RDC321X=m
 
 #
 # SPI GPIO expanders:
 #
+CONFIG_GPIO_MCP23S08=m
 
 #
 # AC97 GPIO expanders:
 #
+# CONFIG_GPIO_UCB1400 is not set
+
+#
+# MODULbus GPIO expanders:
+#
+CONFIG_GPIO_JANZ_TTL=m
 CONFIG_W1=m
 CONFIG_W1_CON=y
 
@@ -1921,6 +2297,7 @@ CONFIG_W1_CON=y
 CONFIG_W1_MASTER_MATROX=m
 CONFIG_W1_MASTER_DS2490=m
 CONFIG_W1_MASTER_DS2482=m
+CONFIG_W1_MASTER_DS1WM=m
 CONFIG_W1_MASTER_GPIO=m
 
 #
@@ -1928,21 +2305,29 @@ CONFIG_W1_MASTER_GPIO=m
 #
 CONFIG_W1_SLAVE_THERM=m
 CONFIG_W1_SLAVE_SMEM=m
+CONFIG_W1_SLAVE_DS2408=m
+CONFIG_W1_SLAVE_DS2423=m
 CONFIG_W1_SLAVE_DS2431=m
 CONFIG_W1_SLAVE_DS2433=m
 CONFIG_W1_SLAVE_DS2433_CRC=y
 CONFIG_W1_SLAVE_DS2760=m
+CONFIG_W1_SLAVE_DS2780=m
 CONFIG_W1_SLAVE_BQ27000=m
 CONFIG_POWER_SUPPLY=y
 # CONFIG_POWER_SUPPLY_DEBUG is not set
 # CONFIG_PDA_POWER is not set
-CONFIG_WM831X_POWER=m
-CONFIG_WM8350_POWER=m
+# CONFIG_TEST_POWER is not set
 # CONFIG_BATTERY_DS2760 is not set
-CONFIG_BATTERY_DS2782=m
-CONFIG_BATTERY_BQ27x00=m
-CONFIG_BATTERY_MAX17040=m
-CONFIG_CHARGER_PCF50633=m
+# CONFIG_BATTERY_DS2780 is not set
+# CONFIG_BATTERY_DS2782 is not set
+# CONFIG_BATTERY_BQ20Z75 is not set
+# CONFIG_BATTERY_BQ27x00 is not set
+# CONFIG_BATTERY_MAX17040 is not set
+# CONFIG_BATTERY_MAX17042 is not set
+# CONFIG_CHARGER_PCF50633 is not set
+# CONFIG_CHARGER_ISP1704 is not set
+# CONFIG_CHARGER_MAX8903 is not set
+# CONFIG_CHARGER_GPIO is not set
 CONFIG_HWMON=m
 CONFIG_HWMON_VID=m
 # CONFIG_HWMON_DEBUG_CHIP is not set
@@ -1958,11 +2343,13 @@ CONFIG_SENSORS_ADM1026=m
 CONFIG_SENSORS_ADM1029=m
 CONFIG_SENSORS_ADM1031=m
 CONFIG_SENSORS_ADM9240=m
+CONFIG_SENSORS_ADT7411=m
 CONFIG_SENSORS_ADT7462=m
 CONFIG_SENSORS_ADT7470=m
-CONFIG_SENSORS_ADT7473=m
 CONFIG_SENSORS_ADT7475=m
+CONFIG_SENSORS_ASC7621=m
 CONFIG_SENSORS_ATXP1=m
+CONFIG_SENSORS_DS620=m
 CONFIG_SENSORS_DS1621=m
 CONFIG_SENSORS_I5K_AMB=m
 CONFIG_SENSORS_F71805F=m
@@ -1971,10 +2358,14 @@ CONFIG_SENSORS_F75375S=m
 CONFIG_SENSORS_G760A=m
 CONFIG_SENSORS_GL518SM=m
 CONFIG_SENSORS_GL520SM=m
+CONFIG_SENSORS_GPIO_FAN=m
 CONFIG_SENSORS_IBMAEM=m
 CONFIG_SENSORS_IBMPEX=m
 CONFIG_SENSORS_IT87=m
+CONFIG_SENSORS_JC42=m
+CONFIG_SENSORS_LINEAGE=m
 CONFIG_SENSORS_LM63=m
+CONFIG_SENSORS_LM73=m
 CONFIG_SENSORS_LM75=m
 CONFIG_SENSORS_LM77=m
 CONFIG_SENSORS_LM78=m
@@ -1985,22 +2376,52 @@ CONFIG_SENSORS_LM87=m
 CONFIG_SENSORS_LM90=m
 CONFIG_SENSORS_LM92=m
 CONFIG_SENSORS_LM93=m
+CONFIG_SENSORS_LTC4151=m
 CONFIG_SENSORS_LTC4215=m
 CONFIG_SENSORS_LTC4245=m
+CONFIG_SENSORS_LTC4261=m
 CONFIG_SENSORS_LM95241=m
+CONFIG_SENSORS_LM95245=m
+CONFIG_SENSORS_MAX16065=m
 CONFIG_SENSORS_MAX1619=m
+CONFIG_SENSORS_MAX1668=m
+CONFIG_SENSORS_MAX6639=m
+CONFIG_SENSORS_MAX6642=m
 CONFIG_SENSORS_MAX6650=m
+CONFIG_SENSORS_NTC_THERMISTOR=m
 CONFIG_SENSORS_PC87360=m
 CONFIG_SENSORS_PC87427=m
 CONFIG_SENSORS_PCF8591=m
+CONFIG_PMBUS=m
+CONFIG_SENSORS_PMBUS=m
+CONFIG_SENSORS_ADM1275=m
+CONFIG_SENSORS_LM25066=m
+CONFIG_SENSORS_LTC2978=m
+CONFIG_SENSORS_MAX16064=m
+CONFIG_SENSORS_MAX34440=m
+CONFIG_SENSORS_MAX8688=m
+CONFIG_SENSORS_UCD9000=m
+CONFIG_SENSORS_UCD9200=m
+CONFIG_SENSORS_ZL6100=m
 CONFIG_SENSORS_SHT15=m
+CONFIG_SENSORS_SHT21=m
 CONFIG_SENSORS_SIS5595=m
+CONFIG_SENSORS_SMM665=m
 CONFIG_SENSORS_DME1737=m
+CONFIG_SENSORS_EMC1403=m
+CONFIG_SENSORS_EMC2103=m
+CONFIG_SENSORS_EMC6W201=m
 CONFIG_SENSORS_SMSC47M1=m
 CONFIG_SENSORS_SMSC47M192=m
 CONFIG_SENSORS_SMSC47B397=m
+CONFIG_SENSORS_SCH56XX_COMMON=m
+CONFIG_SENSORS_SCH5627=m
+CONFIG_SENSORS_SCH5636=m
+CONFIG_SENSORS_ADS1015=m
 CONFIG_SENSORS_ADS7828=m
+CONFIG_SENSORS_AMC6821=m
 CONFIG_SENSORS_THMC50=m
+CONFIG_SENSORS_TMP102=m
 CONFIG_SENSORS_TMP401=m
 CONFIG_SENSORS_TMP421=m
 CONFIG_SENSORS_VIA686A=m
@@ -2010,23 +2431,23 @@ CONFIG_SENSORS_W83781D=m
 CONFIG_SENSORS_W83791D=m
 CONFIG_SENSORS_W83792D=m
 CONFIG_SENSORS_W83793=m
+CONFIG_SENSORS_W83795=m
+# CONFIG_SENSORS_W83795_FANCTRL is not set
 CONFIG_SENSORS_W83L785TS=m
 CONFIG_SENSORS_W83L786NG=m
 CONFIG_SENSORS_W83627HF=m
 CONFIG_SENSORS_W83627EHF=m
-CONFIG_SENSORS_WM831X=m
-CONFIG_SENSORS_WM8350=m
 CONFIG_THERMAL=y
 CONFIG_WATCHDOG=y
+CONFIG_WATCHDOG_CORE=y
 # CONFIG_WATCHDOG_NOWAYOUT is not set
 
 #
 # Watchdog Device Drivers
 #
 CONFIG_SOFT_WATCHDOG=m
-CONFIG_WM831X_WATCHDOG=m
-CONFIG_WM8350_WATCHDOG=m
 CONFIG_ORION_WATCHDOG=m
+CONFIG_MAX63XX_WATCHDOG=m
 CONFIG_ALIM7101_WDT=m
 
 #
@@ -2056,80 +2477,151 @@ CONFIG_SSB_SDIOHOST=y
 # CONFIG_SSB_DEBUG is not set
 CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
 CONFIG_SSB_DRIVER_PCICORE=y
+CONFIG_BCMA_POSSIBLE=y
+
+#
+# Broadcom specific AMBA
+#
+CONFIG_BCMA=m
+CONFIG_BCMA_HOST_PCI_POSSIBLE=y
+# CONFIG_BCMA_HOST_PCI is not set
+# CONFIG_BCMA_DEBUG is not set
 
 #
 # Multifunction device drivers
 #
-CONFIG_MFD_CORE=m
+CONFIG_MFD_CORE=y
+CONFIG_MFD_88PM860X=y
 CONFIG_MFD_SM501=m
 # CONFIG_MFD_SM501_GPIO is not set
 # CONFIG_MFD_ASIC3 is not set
 # CONFIG_HTC_EGPIO is not set
 CONFIG_HTC_PASIC3=m
-# CONFIG_UCB1400_CORE is not set
+# CONFIG_HTC_I2CPLD is not set
+CONFIG_UCB1400_CORE=m
+CONFIG_TPS6105X=m
 CONFIG_TPS65010=m
+CONFIG_TPS6507X=m
+# CONFIG_MFD_TPS6586X is not set
+# CONFIG_MFD_TPS65910 is not set
+# CONFIG_MFD_TPS65912_I2C is not set
+# CONFIG_TWL4030_CORE is not set
+# CONFIG_MFD_STMPE is not set
+# CONFIG_MFD_TC3589X is not set
 # CONFIG_MFD_TMIO is not set
 # CONFIG_MFD_TC6393XB is not set
+# CONFIG_PMIC_DA903X is not set
+# CONFIG_PMIC_ADP5520 is not set
+# CONFIG_MFD_MAX8925 is not set
+# CONFIG_MFD_MAX8997 is not set
+# CONFIG_MFD_MAX8998 is not set
 CONFIG_MFD_WM8400=m
-CONFIG_MFD_WM831X=m
-CONFIG_MFD_WM8350=m
-CONFIG_MFD_WM8350_I2C=m
+# CONFIG_MFD_WM831X_I2C is not set
+# CONFIG_MFD_WM8350_I2C is not set
+# CONFIG_MFD_WM8994 is not set
 CONFIG_MFD_PCF50633=m
 CONFIG_PCF50633_ADC=m
 CONFIG_PCF50633_GPIO=m
-CONFIG_AB3100_CORE=m
-CONFIG_AB3100_OTP=m
-# CONFIG_REGULATOR is not set
+# CONFIG_ABX500_CORE is not set
+CONFIG_MFD_TIMBERDALE=m
+CONFIG_LPC_SCH=m
+CONFIG_MFD_RDC321X=m
+CONFIG_MFD_JANZ_CMODIO=m
+CONFIG_MFD_VX855=m
+CONFIG_MFD_WL1273_CORE=m
+# CONFIG_MFD_AAT2870_CORE is not set
+CONFIG_REGULATOR=y
+# CONFIG_REGULATOR_DEBUG is not set
+# CONFIG_REGULATOR_DUMMY is not set
+CONFIG_REGULATOR_FIXED_VOLTAGE=m
+# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
+# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
+CONFIG_REGULATOR_GPIO=m
+# CONFIG_REGULATOR_BQ24022 is not set
+# CONFIG_REGULATOR_MAX1586 is not set
+# CONFIG_REGULATOR_MAX8649 is not set
+# CONFIG_REGULATOR_MAX8660 is not set
+# CONFIG_REGULATOR_MAX8952 is not set
+# CONFIG_REGULATOR_WM8400 is not set
+# CONFIG_REGULATOR_PCF50633 is not set
+# CONFIG_REGULATOR_LP3971 is not set
+# CONFIG_REGULATOR_LP3972 is not set
+# CONFIG_REGULATOR_TPS6105X is not set
+# CONFIG_REGULATOR_TPS65023 is not set
+# CONFIG_REGULATOR_TPS6507X is not set
+# CONFIG_REGULATOR_88PM8607 is not set
+# CONFIG_REGULATOR_ISL6271A is not set
+# CONFIG_REGULATOR_AD5398 is not set
 CONFIG_MEDIA_SUPPORT=m
 
 #
 # Multimedia core support
 #
+CONFIG_MEDIA_CONTROLLER=y
 CONFIG_VIDEO_DEV=m
 CONFIG_VIDEO_V4L2_COMMON=m
-# CONFIG_VIDEO_ALLOW_V4L1 is not set
-CONFIG_VIDEO_V4L1_COMPAT=y
+CONFIG_VIDEO_V4L2_SUBDEV_API=y
 CONFIG_DVB_CORE=m
+CONFIG_DVB_NET=y
 CONFIG_VIDEO_MEDIA=m
 
 #
 # Multimedia drivers
 #
-# CONFIG_MEDIA_ATTACH is not set
+CONFIG_RC_CORE=m
+CONFIG_LIRC=m
+CONFIG_RC_MAP=m
+# CONFIG_IR_NEC_DECODER is not set
+# CONFIG_IR_RC5_DECODER is not set
+# CONFIG_IR_RC6_DECODER is not set
+# CONFIG_IR_JVC_DECODER is not set
+# CONFIG_IR_SONY_DECODER is not set
+# CONFIG_IR_RC5_SZ_DECODER is not set
+# CONFIG_IR_MCE_KBD_DECODER is not set
+# CONFIG_IR_LIRC_CODEC is not set
+# CONFIG_RC_ATI_REMOTE is not set
+# CONFIG_IR_IMON is not set
+# CONFIG_IR_MCEUSB is not set
+# CONFIG_IR_REDRAT3 is not set
+# CONFIG_IR_STREAMZAP is not set
+# CONFIG_RC_LOOPBACK is not set
+CONFIG_MEDIA_ATTACH=y
 CONFIG_MEDIA_TUNER=m
 # CONFIG_MEDIA_TUNER_CUSTOMISE is not set
 CONFIG_MEDIA_TUNER_SIMPLE=m
 CONFIG_MEDIA_TUNER_TDA8290=m
+CONFIG_MEDIA_TUNER_TDA827X=m
+CONFIG_MEDIA_TUNER_TDA18271=m
 CONFIG_MEDIA_TUNER_TDA9887=m
 CONFIG_MEDIA_TUNER_TEA5761=m
 CONFIG_MEDIA_TUNER_TEA5767=m
 CONFIG_MEDIA_TUNER_MT20XX=m
 CONFIG_MEDIA_TUNER_XC2028=m
 CONFIG_MEDIA_TUNER_XC5000=m
+CONFIG_MEDIA_TUNER_XC4000=m
 CONFIG_MEDIA_TUNER_MC44S803=m
 CONFIG_VIDEO_V4L2=m
 CONFIG_VIDEO_CAPTURE_DRIVERS=y
 # CONFIG_VIDEO_ADV_DEBUG is not set
 # CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
 # CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set
+CONFIG_VIDEO_IR_I2C=m
 
 #
-# Encoders/decoders and other helper chips
+# Encoders, decoders, sensors and other helper chips
 #
 
 #
-# Audio decoders
+# Audio decoders, processors and mixers
 #
 # CONFIG_VIDEO_TVAUDIO is not set
 # CONFIG_VIDEO_TDA7432 is not set
 # CONFIG_VIDEO_TDA9840 is not set
-# CONFIG_VIDEO_TDA9875 is not set
 # CONFIG_VIDEO_TEA6415C is not set
 # CONFIG_VIDEO_TEA6420 is not set
 # CONFIG_VIDEO_MSP3400 is not set
 # CONFIG_VIDEO_CS5345 is not set
 # CONFIG_VIDEO_CS53L32A is not set
-# CONFIG_VIDEO_M52790 is not set
 # CONFIG_VIDEO_TLV320AIC23B is not set
 # CONFIG_VIDEO_WM8775 is not set
 # CONFIG_VIDEO_WM8739 is not set
@@ -2148,19 +2640,18 @@ CONFIG_VIDEO_CAPTURE_DRIVERS=y
 # CONFIG_VIDEO_BT856 is not set
 # CONFIG_VIDEO_BT866 is not set
 # CONFIG_VIDEO_KS0127 is not set
-# CONFIG_VIDEO_OV7670 is not set
-# CONFIG_VIDEO_MT9V011 is not set
-# CONFIG_VIDEO_TCM825X is not set
 # CONFIG_VIDEO_SAA7110 is not set
 # CONFIG_VIDEO_SAA711X is not set
-# CONFIG_VIDEO_SAA717X is not set
+# CONFIG_VIDEO_SAA7191 is not set
 # CONFIG_VIDEO_TVP514X is not set
 # CONFIG_VIDEO_TVP5150 is not set
+# CONFIG_VIDEO_TVP7002 is not set
 # CONFIG_VIDEO_VPX3220 is not set
 
 #
 # Video and audio decoders
 #
+# CONFIG_VIDEO_SAA717X is not set
 # CONFIG_VIDEO_CX25840 is not set
 
 #
@@ -2175,24 +2666,54 @@ CONFIG_VIDEO_CAPTURE_DRIVERS=y
 # CONFIG_VIDEO_SAA7185 is not set
 # CONFIG_VIDEO_ADV7170 is not set
 # CONFIG_VIDEO_ADV7175 is not set
-# CONFIG_VIDEO_THS7303 is not set
 # CONFIG_VIDEO_ADV7343 is not set
+# CONFIG_VIDEO_AK881X is not set
+
+#
+# Camera sensor devices
+#
+# CONFIG_VIDEO_OV7670 is not set
+# CONFIG_VIDEO_MT9P031 is not set
+# CONFIG_VIDEO_MT9T001 is not set
+# CONFIG_VIDEO_MT9V011 is not set
+# CONFIG_VIDEO_MT9V032 is not set
+# CONFIG_VIDEO_TCM825X is not set
+# CONFIG_VIDEO_SR030PC30 is not set
+# CONFIG_VIDEO_NOON010PC30 is not set
+# CONFIG_VIDEO_M5MOLS is not set
+# CONFIG_VIDEO_S5K6AA is not set
+
+#
+# Flash devices
+#
+# CONFIG_VIDEO_ADP1653 is not set
 
 #
 # Video improvement chips
 #
 # CONFIG_VIDEO_UPD64031A is not set
 # CONFIG_VIDEO_UPD64083 is not set
+
+#
+# Miscelaneous helper chips
+#
+# CONFIG_VIDEO_THS7303 is not set
+# CONFIG_VIDEO_M52790 is not set
 # CONFIG_VIDEO_VIVI is not set
 # CONFIG_VIDEO_BT848 is not set
-# CONFIG_VIDEO_SAA5246A is not set
-# CONFIG_VIDEO_SAA5249 is not set
+# CONFIG_VIDEO_BWQCAM is not set
+# CONFIG_VIDEO_CQCAM is not set
+# CONFIG_VIDEO_W9966 is not set
+# CONFIG_VIDEO_CPIA2 is not set
 # CONFIG_VIDEO_ZORAN is not set
 # CONFIG_VIDEO_SAA7134 is not set
+# CONFIG_VIDEO_MXB is not set
 # CONFIG_VIDEO_HEXIUM_ORION is not set
 # CONFIG_VIDEO_HEXIUM_GEMINI is not set
+# CONFIG_VIDEO_TIMBERDALE is not set
 # CONFIG_VIDEO_CX88 is not set
 # CONFIG_VIDEO_CX23885 is not set
+# CONFIG_VIDEO_CX25821 is not set
 # CONFIG_VIDEO_AU0828 is not set
 # CONFIG_VIDEO_IVTV is not set
 # CONFIG_VIDEO_CX18 is not set
@@ -2206,25 +2727,34 @@ CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
 # CONFIG_VIDEO_PVRUSB2 is not set
 # CONFIG_VIDEO_HDPVR is not set
 # CONFIG_VIDEO_EM28XX is not set
+# CONFIG_VIDEO_TLG2300 is not set
 # CONFIG_VIDEO_CX231XX is not set
+# CONFIG_VIDEO_TM6000 is not set
 # CONFIG_VIDEO_USBVISION is not set
 # CONFIG_USB_ET61X251 is not set
 # CONFIG_USB_SN9C102 is not set
-# CONFIG_USB_ZC0301 is not set
-# CONFIG_USB_PWC_INPUT_EVDEV is not set
+# CONFIG_USB_PWC is not set
 # CONFIG_USB_ZR364XX is not set
 # CONFIG_USB_STKWEBCAM is not set
 # CONFIG_USB_S2255 is not set
+# CONFIG_V4L_MEM2MEM_DRIVERS is not set
 CONFIG_RADIO_ADAPTERS=y
-# CONFIG_RADIO_GEMTEK_PCI is not set
 # CONFIG_RADIO_MAXIRADIO is not set
-# CONFIG_RADIO_MAESTRO is not set
 # CONFIG_I2C_SI4713 is not set
 # CONFIG_RADIO_SI4713 is not set
 # CONFIG_USB_DSBR is not set
 # CONFIG_RADIO_SI470X is not set
 # CONFIG_USB_MR800 is not set
 # CONFIG_RADIO_TEA5764 is not set
+# CONFIG_RADIO_SAA7706H is not set
+# CONFIG_RADIO_TEF6862 is not set
+# CONFIG_RADIO_TIMBERDALE is not set
+# CONFIG_RADIO_WL1273 is not set
+
+#
+# Texas Instruments WL128x FM driver (ST based)
+#
+# CONFIG_RADIO_WL128X is not set
 CONFIG_DVB_MAX_ADAPTERS=8
 # CONFIG_DVB_DYNAMIC_MINORS is not set
 CONFIG_DVB_CAPTURE_DRIVERS=y
@@ -2263,29 +2793,92 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
 #
 # CONFIG_DVB_DM1105 is not set
 
+#
+# Supported FireWire (IEEE 1394) Adapters
+#
+# CONFIG_DVB_FIREDTV is not set
+
 #
 # Supported Earthsoft PT1 Adapters
 #
 # CONFIG_DVB_PT1 is not set
 
+#
+# Supported Mantis Adapters
+#
+# CONFIG_MANTIS_CORE is not set
+
+#
+# Supported nGene Adapters
+#
+# CONFIG_DVB_NGENE is not set
+
+#
+# Supported ddbridge ('Octopus') Adapters
+#
+# CONFIG_DVB_DDBRIDGE is not set
+
 #
 # Supported DVB Frontends
 #
 # CONFIG_DVB_FE_CUSTOMISE is not set
-CONFIG_DAB=y
-# CONFIG_USB_DABUSB is not set
+
+#
+# Multistandard (satellite) frontends
+#
+
+#
+# Multistandard (cable + terrestrial) frontends
+#
+
+#
+# DVB-S (satellite) frontends
+#
+
+#
+# DVB-T (terrestrial) frontends
+#
+
+#
+# DVB-C (cable) frontends
+#
+
+#
+# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
+#
+
+#
+# ISDB-T (terrestrial) frontends
+#
+
+#
+# Digital terrestrial only tuners/PLL
+#
+
+#
+# SEC control devices for DVB-S
+#
+
+#
+# Tools to develop new frontends
+#
+# CONFIG_DVB_DUMMY_FE is not set
 
 #
 # Graphics support
 #
 CONFIG_VGA_ARB=y
+CONFIG_VGA_ARB_MAX_GPUS=16
 CONFIG_DRM=m
+CONFIG_DRM_TTM=m
 CONFIG_DRM_TDFX=m
 CONFIG_DRM_R128=m
 # CONFIG_DRM_RADEON is not set
 CONFIG_DRM_MGA=m
 CONFIG_DRM_VIA=m
 CONFIG_DRM_SAVAGE=m
+CONFIG_DRM_VMWGFX=m
+CONFIG_STUB_POULSBO=m
 CONFIG_VGASTATE=m
 CONFIG_VIDEO_OUTPUT_CONTROL=m
 CONFIG_FB=y
@@ -2301,6 +2894,7 @@ CONFIG_FB_SYS_COPYAREA=m
 CONFIG_FB_SYS_IMAGEBLIT=m
 # CONFIG_FB_FOREIGN_ENDIAN is not set
 CONFIG_FB_SYS_FOPS=m
+# CONFIG_FB_WMT_GE_ROPS is not set
 CONFIG_FB_DEFERRED_IO=y
 CONFIG_FB_SVGALIB=m
 # CONFIG_FB_MACMODES is not set
@@ -2315,6 +2909,7 @@ CONFIG_FB_CIRRUS=m
 CONFIG_FB_PM2=m
 CONFIG_FB_PM2_FIFO_DISCONNECT=y
 CONFIG_FB_CYBER2000=m
+CONFIG_FB_CYBER2000_DDC=y
 CONFIG_FB_ASILIANT=y
 # CONFIG_FB_IMSTT is not set
 CONFIG_FB_UVESA=m
@@ -2345,11 +2940,11 @@ CONFIG_FB_ATY_CT=y
 CONFIG_FB_ATY_GX=y
 CONFIG_FB_ATY_BACKLIGHT=y
 CONFIG_FB_S3=m
+CONFIG_FB_S3_DDC=y
 # CONFIG_FB_SAVAGE is not set
 CONFIG_FB_SIS=m
 CONFIG_FB_SIS_300=y
 CONFIG_FB_SIS_315=y
-CONFIG_FB_VIA=m
 CONFIG_FB_NEOMAGIC=m
 CONFIG_FB_KYRO=m
 CONFIG_FB_3DFX=m
@@ -2364,17 +2959,21 @@ CONFIG_FB_PM3=m
 CONFIG_FB_TMIO=m
 CONFIG_FB_TMIO_ACCELL=y
 CONFIG_FB_SM501=m
+CONFIG_FB_SMSCUFX=m
+# CONFIG_FB_UDL is not set
 # CONFIG_FB_VIRTUAL is not set
 CONFIG_FB_METRONOME=m
 # CONFIG_FB_MB862XX is not set
 # CONFIG_FB_BROADSHEET is not set
 CONFIG_BACKLIGHT_LCD_SUPPORT=y
 CONFIG_LCD_CLASS_DEVICE=m
-# CONFIG_LCD_ILI9320 is not set
 CONFIG_LCD_PLATFORM=m
 CONFIG_BACKLIGHT_CLASS_DEVICE=y
 CONFIG_BACKLIGHT_GENERIC=m
-CONFIG_BACKLIGHT_WM831X=m
+CONFIG_BACKLIGHT_ADP8860=m
+CONFIG_BACKLIGHT_ADP8870=m
+CONFIG_BACKLIGHT_88PM860X=m
+CONFIG_BACKLIGHT_PCF50633=m
 
 #
 # Display device support
@@ -2388,10 +2987,9 @@ CONFIG_DISPLAY_SUPPORT=m
 #
 # Console display driver support
 #
-# CONFIG_VGA_CONSOLE is not set
 CONFIG_DUMMY_CONSOLE=y
 CONFIG_FRAMEBUFFER_CONSOLE=y
-# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
+CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
 # CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
 # CONFIG_FONTS is not set
 CONFIG_FONT_8x8=y
@@ -2416,8 +3014,9 @@ CONFIG_SND_MIXER_OSS=m
 CONFIG_SND_PCM_OSS=m
 CONFIG_SND_PCM_OSS_PLUGINS=y
 CONFIG_SND_SEQUENCER_OSS=y
-# CONFIG_SND_HRTIMER is not set
-# CONFIG_SND_DYNAMIC_MINORS is not set
+CONFIG_SND_HRTIMER=m
+CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
+CONFIG_SND_DYNAMIC_MINORS=y
 # CONFIG_SND_SUPPORT_OLD_API is not set
 CONFIG_SND_VERBOSE_PROCFS=y
 # CONFIG_SND_VERBOSE_PRINTK is not set
@@ -2434,13 +3033,16 @@ CONFIG_SND_VX_LIB=m
 CONFIG_SND_AC97_CODEC=m
 CONFIG_SND_DRIVERS=y
 CONFIG_SND_DUMMY=m
+CONFIG_SND_ALOOP=m
 CONFIG_SND_VIRMIDI=m
 CONFIG_SND_MTPAV=m
 CONFIG_SND_MTS64=m
 CONFIG_SND_SERIAL_U16550=m
 CONFIG_SND_MPU401=m
 CONFIG_SND_PORTMAN2X4=m
-# CONFIG_SND_AC97_POWER_SAVE is not set
+CONFIG_SND_AC97_POWER_SAVE=y
+CONFIG_SND_AC97_POWER_SAVE_DEFAULT=60
+CONFIG_SND_TEA575X=m
 CONFIG_SND_PCI=y
 CONFIG_SND_AD1889=m
 CONFIG_SND_ALS300=m
@@ -2483,38 +3085,44 @@ CONFIG_SND_ENS1370=m
 CONFIG_SND_ENS1371=m
 CONFIG_SND_ES1938=m
 CONFIG_SND_ES1968=m
+CONFIG_SND_ES1968_INPUT=y
+CONFIG_SND_ES1968_RADIO=y
 CONFIG_SND_FM801=m
-# CONFIG_SND_FM801_TEA575X_BOOL is not set
+CONFIG_SND_FM801_TEA575X_BOOL=y
 CONFIG_SND_HDA_INTEL=m
-# CONFIG_SND_HDA_HWDEP is not set
-# CONFIG_SND_HDA_INPUT_BEEP is not set
-# CONFIG_SND_HDA_INPUT_JACK is not set
-# CONFIG_SND_HDA_PATCH_LOADER is not set
+CONFIG_SND_HDA_PREALLOC_SIZE=64
+CONFIG_SND_HDA_HWDEP=y
+CONFIG_SND_HDA_RECONFIG=y
+CONFIG_SND_HDA_INPUT_BEEP=y
+CONFIG_SND_HDA_INPUT_BEEP_MODE=2
+CONFIG_SND_HDA_INPUT_JACK=y
+CONFIG_SND_HDA_PATCH_LOADER=y
 CONFIG_SND_HDA_CODEC_REALTEK=y
+CONFIG_SND_HDA_ENABLE_REALTEK_QUIRKS=y
 CONFIG_SND_HDA_CODEC_ANALOG=y
 CONFIG_SND_HDA_CODEC_SIGMATEL=y
 CONFIG_SND_HDA_CODEC_VIA=y
-CONFIG_SND_HDA_CODEC_ATIHDMI=y
-CONFIG_SND_HDA_CODEC_NVHDMI=y
-CONFIG_SND_HDA_CODEC_INTELHDMI=y
-CONFIG_SND_HDA_ELD=y
+CONFIG_SND_HDA_CODEC_HDMI=y
 CONFIG_SND_HDA_CODEC_CIRRUS=y
 CONFIG_SND_HDA_CODEC_CONEXANT=y
 CONFIG_SND_HDA_CODEC_CA0110=y
+CONFIG_SND_HDA_CODEC_CA0132=y
 CONFIG_SND_HDA_CODEC_CMEDIA=y
 CONFIG_SND_HDA_CODEC_SI3054=y
 CONFIG_SND_HDA_GENERIC=y
-# CONFIG_SND_HDA_POWER_SAVE is not set
+CONFIG_SND_HDA_POWER_SAVE=y
+CONFIG_SND_HDA_POWER_SAVE_DEFAULT=60
 CONFIG_SND_HDSP=m
 CONFIG_SND_HDSPM=m
-CONFIG_SND_HIFIER=m
 CONFIG_SND_ICE1712=m
 CONFIG_SND_ICE1724=m
 CONFIG_SND_INTEL8X0=m
 CONFIG_SND_INTEL8X0M=m
 CONFIG_SND_KORG1212=m
+CONFIG_SND_LOLA=m
 CONFIG_SND_LX6464ES=m
 CONFIG_SND_MAESTRO3=m
+CONFIG_SND_MAESTRO3_INPUT=y
 CONFIG_SND_MIXART=m
 CONFIG_SND_NM256=m
 CONFIG_SND_PCXHR=m
@@ -2532,49 +3140,27 @@ CONFIG_SND_YMFPCI=m
 CONFIG_SND_ARM=y
 CONFIG_SND_USB=y
 CONFIG_SND_USB_AUDIO=m
+CONFIG_SND_USB_UA101=m
 CONFIG_SND_USB_CAIAQ=m
-# CONFIG_SND_USB_CAIAQ_INPUT is not set
+CONFIG_SND_USB_CAIAQ_INPUT=y
+CONFIG_SND_USB_6FIRE=m
+CONFIG_SND_FIREWIRE=y
+CONFIG_SND_FIREWIRE_LIB=m
+CONFIG_SND_FIREWIRE_SPEAKERS=m
+CONFIG_SND_ISIGHT=m
 CONFIG_SND_PCMCIA=y
 CONFIG_SND_VXPOCKET=m
 CONFIG_SND_PDAUDIOCF=m
 CONFIG_SND_SOC=m
+CONFIG_SND_SOC_CACHE_LZO=y
+CONFIG_SND_KIRKWOOD_SOC=m
+CONFIG_SND_KIRKWOOD_SOC_I2S=m
+CONFIG_SND_KIRKWOOD_SOC_OPENRD=m
+CONFIG_SND_KIRKWOOD_SOC_T5325=m
 CONFIG_SND_SOC_I2C_AND_SPI=m
-CONFIG_SND_SOC_ALL_CODECS=m
-CONFIG_SND_SOC_WM_HUBS=m
-CONFIG_SND_SOC_AD73311=m
-CONFIG_SND_SOC_AK4535=m
-CONFIG_SND_SOC_AK4642=m
-CONFIG_SND_SOC_CS4270=m
-CONFIG_SND_SOC_L3=m
-CONFIG_SND_SOC_PCM3008=m
-CONFIG_SND_SOC_SPDIF=m
-CONFIG_SND_SOC_SSM2602=m
-CONFIG_SND_SOC_TLV320AIC23=m
-CONFIG_SND_SOC_TLV320AIC3X=m
-CONFIG_SND_SOC_UDA134X=m
-CONFIG_SND_SOC_UDA1380=m
-CONFIG_SND_SOC_WM8350=m
-CONFIG_SND_SOC_WM8400=m
-CONFIG_SND_SOC_WM8510=m
-CONFIG_SND_SOC_WM8523=m
-CONFIG_SND_SOC_WM8580=m
-CONFIG_SND_SOC_WM8728=m
-CONFIG_SND_SOC_WM8731=m
-CONFIG_SND_SOC_WM8750=m
-CONFIG_SND_SOC_WM8753=m
-CONFIG_SND_SOC_WM8776=m
-CONFIG_SND_SOC_WM8900=m
-CONFIG_SND_SOC_WM8903=m
-CONFIG_SND_SOC_WM8940=m
-CONFIG_SND_SOC_WM8960=m
-CONFIG_SND_SOC_WM8961=m
-CONFIG_SND_SOC_WM8971=m
-CONFIG_SND_SOC_WM8974=m
-CONFIG_SND_SOC_WM8988=m
-CONFIG_SND_SOC_WM8990=m
-CONFIG_SND_SOC_WM8993=m
-CONFIG_SND_SOC_WM9081=m
-CONFIG_SND_SOC_MAX9877=m
+# CONFIG_SND_SOC_ALL_CODECS is not set
+CONFIG_SND_SOC_ALC5623=m
+CONFIG_SND_SOC_CS42L51=m
 # CONFIG_SOUND_PRIME is not set
 CONFIG_AC97_BUS=m
 CONFIG_HID_SUPPORT=y
@@ -2592,45 +3178,82 @@ CONFIG_USB_HIDDEV=y
 # Special HID drivers
 #
 CONFIG_HID_A4TECH=m
+CONFIG_HID_ACRUX=m
+# CONFIG_HID_ACRUX_FF is not set
 CONFIG_HID_APPLE=m
 CONFIG_HID_BELKIN=m
 CONFIG_HID_CHERRY=m
 CONFIG_HID_CHICONY=m
+CONFIG_HID_PRODIKEYS=m
 CONFIG_HID_CYPRESS=m
 CONFIG_HID_DRAGONRISE=m
-CONFIG_DRAGONRISE_FF=y
+# CONFIG_DRAGONRISE_FF is not set
+# CONFIG_HID_EMS_FF is not set
+CONFIG_HID_ELECOM=m
 CONFIG_HID_EZKEY=m
+CONFIG_HID_HOLTEK=m
+# CONFIG_HOLTEK_FF is not set
+CONFIG_HID_KEYTOUCH=m
 CONFIG_HID_KYE=m
+CONFIG_HID_UCLOGIC=m
+CONFIG_HID_WALTOP=m
 CONFIG_HID_GYRATION=m
 CONFIG_HID_TWINHAN=m
 CONFIG_HID_KENSINGTON=m
+CONFIG_HID_LCPOWER=m
 CONFIG_HID_LOGITECH=m
-CONFIG_LOGITECH_FF=y
-CONFIG_LOGIRUMBLEPAD2_FF=y
+CONFIG_HID_LOGITECH_DJ=m
+# CONFIG_LOGITECH_FF is not set
+# CONFIG_LOGIRUMBLEPAD2_FF is not set
+# CONFIG_LOGIG940_FF is not set
+# CONFIG_LOGIWHEELS_FF is not set
+CONFIG_HID_MAGICMOUSE=m
 CONFIG_HID_MICROSOFT=m
 CONFIG_HID_MONTEREY=m
+CONFIG_HID_MULTITOUCH=m
 CONFIG_HID_NTRIG=m
+CONFIG_HID_ORTEK=m
 CONFIG_HID_PANTHERLORD=m
-CONFIG_PANTHERLORD_FF=y
+# CONFIG_PANTHERLORD_FF is not set
 CONFIG_HID_PETALYNX=m
+CONFIG_HID_PICOLCD=m
+CONFIG_HID_PICOLCD_FB=y
+CONFIG_HID_PICOLCD_BACKLIGHT=y
+CONFIG_HID_PICOLCD_LCD=y
+CONFIG_HID_PICOLCD_LEDS=y
+CONFIG_HID_PRIMAX=m
+CONFIG_HID_QUANTA=m
+CONFIG_HID_ROCCAT=m
+CONFIG_HID_ROCCAT_COMMON=m
+CONFIG_HID_ROCCAT_ARVO=m
+CONFIG_HID_ROCCAT_KONE=m
+CONFIG_HID_ROCCAT_KONEPLUS=m
+CONFIG_HID_ROCCAT_KOVAPLUS=m
+CONFIG_HID_ROCCAT_PYRA=m
 CONFIG_HID_SAMSUNG=m
 CONFIG_HID_SONY=m
+CONFIG_HID_SPEEDLINK=m
 CONFIG_HID_SUNPLUS=m
 CONFIG_HID_GREENASIA=m
-CONFIG_GREENASIA_FF=y
+# CONFIG_GREENASIA_FF is not set
 CONFIG_HID_SMARTJOYPLUS=m
-CONFIG_SMARTJOYPLUS_FF=y
+# CONFIG_SMARTJOYPLUS_FF is not set
 CONFIG_HID_TOPSEED=m
 CONFIG_HID_THRUSTMASTER=m
-CONFIG_THRUSTMASTER_FF=y
+# CONFIG_THRUSTMASTER_FF is not set
 CONFIG_HID_WACOM=m
+# CONFIG_HID_WACOM_POWER_SUPPLY is not set
+CONFIG_HID_WIIMOTE=m
 CONFIG_HID_ZEROPLUS=m
-CONFIG_ZEROPLUS_FF=y
+# CONFIG_ZEROPLUS_FF is not set
+CONFIG_HID_ZYDACRON=m
 CONFIG_USB_SUPPORT=y
+CONFIG_USB_COMMON=y
 CONFIG_USB_ARCH_HAS_HCD=y
 CONFIG_USB_ARCH_HAS_OHCI=y
 CONFIG_USB_ARCH_HAS_EHCI=y
-CONFIG_USB=m
+CONFIG_USB_ARCH_HAS_XHCI=y
+CONFIG_USB=y
 # CONFIG_USB_DEBUG is not set
 CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
 
@@ -2642,6 +3265,8 @@ CONFIG_USB_DEVICE_CLASS=y
 CONFIG_USB_DYNAMIC_MINORS=y
 CONFIG_USB_SUSPEND=y
 # CONFIG_USB_OTG is not set
+CONFIG_USB_DWC3=m
+# CONFIG_USB_DWC3_DEBUG is not set
 # CONFIG_USB_MON is not set
 CONFIG_USB_WUSB=m
 CONFIG_USB_WUSB_CBAF=m
@@ -2653,31 +3278,26 @@ CONFIG_USB_WUSB_CBAF=m
 # CONFIG_USB_C67X00_HCD is not set
 CONFIG_USB_XHCI_HCD=m
 # CONFIG_USB_XHCI_HCD_DEBUGGING is not set
-CONFIG_USB_EHCI_HCD=m
+CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_EHCI_ROOT_HUB_TT=y
-# CONFIG_USB_EHCI_TT_NEWSCHED is not set
+CONFIG_USB_EHCI_TT_NEWSCHED=y
 CONFIG_USB_OXU210HP_HCD=m
 CONFIG_USB_ISP116X_HCD=m
 # CONFIG_USB_ISP1760_HCD is not set
-# CONFIG_USB_ISP1362_HCD is not set
-CONFIG_USB_OHCI_HCD=m
-CONFIG_USB_OHCI_HCD_SSB=y
+CONFIG_USB_ISP1362_HCD=m
+CONFIG_USB_OHCI_HCD=y
 # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
 # CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
 CONFIG_USB_OHCI_LITTLE_ENDIAN=y
-CONFIG_USB_UHCI_HCD=m
+CONFIG_USB_UHCI_HCD=y
 CONFIG_USB_U132_HCD=m
 CONFIG_USB_SL811_HCD=m
+# CONFIG_USB_SL811_HCD_ISO is not set
 # CONFIG_USB_SL811_CS is not set
 CONFIG_USB_R8A66597_HCD=m
 CONFIG_USB_WHCI_HCD=m
 CONFIG_USB_HWA_HCD=m
 
-#
-# Enable Host or Gadget support to see Inventra options
-#
-# CONFIG_USB_MUSB_HDRC is not set
-
 #
 # USB Device Class drivers
 #
@@ -2695,7 +3315,9 @@ CONFIG_USB_TMC=m
 #
 CONFIG_USB_STORAGE=m
 # CONFIG_USB_STORAGE_DEBUG is not set
-# CONFIG_USB_STORAGE_DATAFAB is not set
+CONFIG_USB_STORAGE_REALTEK=m
+CONFIG_REALTEK_AUTOPM=y
+CONFIG_USB_STORAGE_DATAFAB=m
 CONFIG_USB_STORAGE_FREECOM=m
 CONFIG_USB_STORAGE_ISD200=m
 CONFIG_USB_STORAGE_USBAT=m
@@ -2706,6 +3328,8 @@ CONFIG_USB_STORAGE_ALAUDA=m
 CONFIG_USB_STORAGE_ONETOUCH=m
 CONFIG_USB_STORAGE_KARMA=m
 CONFIG_USB_STORAGE_CYPRESS_ATACB=m
+CONFIG_USB_STORAGE_ENE_UB6250=m
+CONFIG_USB_UAS=m
 # CONFIG_USB_LIBUSUAL is not set
 
 #
@@ -2731,12 +3355,12 @@ CONFIG_USB_SERIAL_CP210X=m
 CONFIG_USB_SERIAL_CYPRESS_M8=m
 CONFIG_USB_SERIAL_EMPEG=m
 CONFIG_USB_SERIAL_FTDI_SIO=m
-# CONFIG_USB_SERIAL_FUNSOFT is not set
-# CONFIG_USB_SERIAL_VISOR is not set
-# CONFIG_USB_SERIAL_IPAQ is not set
-# CONFIG_USB_SERIAL_IR is not set
+CONFIG_USB_SERIAL_FUNSOFT=m
+CONFIG_USB_SERIAL_VISOR=m
+CONFIG_USB_SERIAL_IPAQ=m
+CONFIG_USB_SERIAL_IR=m
 CONFIG_USB_SERIAL_EDGEPORT=m
-# CONFIG_USB_SERIAL_EDGEPORT_TI is not set
+CONFIG_USB_SERIAL_EDGEPORT_TI=m
 CONFIG_USB_SERIAL_GARMIN=m
 CONFIG_USB_SERIAL_IPW=m
 CONFIG_USB_SERIAL_IUU=m
@@ -2746,11 +3370,13 @@ CONFIG_USB_SERIAL_IUU=m
 # CONFIG_USB_SERIAL_KOBIL_SCT is not set
 CONFIG_USB_SERIAL_MCT_U232=m
 CONFIG_USB_SERIAL_MOS7720=m
+# CONFIG_USB_SERIAL_MOS7715_PARPORT is not set
 CONFIG_USB_SERIAL_MOS7840=m
 CONFIG_USB_SERIAL_MOTOROLA=m
 # CONFIG_USB_SERIAL_NAVMAN is not set
 CONFIG_USB_SERIAL_PL2303=m
 CONFIG_USB_SERIAL_OTI6858=m
+CONFIG_USB_SERIAL_QCAUX=m
 CONFIG_USB_SERIAL_QUALCOMM=m
 CONFIG_USB_SERIAL_SPCP8X5=m
 CONFIG_USB_SERIAL_HP4X=m
@@ -2762,9 +3388,13 @@ CONFIG_USB_SERIAL_SYMBOL=m
 CONFIG_USB_SERIAL_TI=m
 # CONFIG_USB_SERIAL_CYBERJACK is not set
 CONFIG_USB_SERIAL_XIRCOM=m
+CONFIG_USB_SERIAL_WWAN=m
 CONFIG_USB_SERIAL_OPTION=m
 # CONFIG_USB_SERIAL_OMNINET is not set
 CONFIG_USB_SERIAL_OPTICON=m
+CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m
+CONFIG_USB_SERIAL_ZIO=m
+CONFIG_USB_SERIAL_SSU100=m
 # CONFIG_USB_SERIAL_DEBUG is not set
 
 #
@@ -2777,7 +3407,6 @@ CONFIG_USB_SEVSEG=m
 # CONFIG_USB_RIO500 is not set
 # CONFIG_USB_LEGOTOWER is not set
 CONFIG_USB_LCD=m
-CONFIG_USB_BERRY_CHARGE=m
 CONFIG_USB_LED=m
 CONFIG_USB_CYPRESS_CY7C63=m
 CONFIG_USB_CYTHERM=m
@@ -2791,7 +3420,7 @@ CONFIG_USB_SISUSBVGA_CON=y
 CONFIG_USB_IOWARRIOR=m
 # CONFIG_USB_TEST is not set
 CONFIG_USB_ISIGHTFW=m
-CONFIG_USB_VST=m
+CONFIG_USB_YUREX=m
 CONFIG_USB_ATM=m
 CONFIG_USB_SPEEDTOUCH=m
 CONFIG_USB_CXACRU=m
@@ -2804,21 +3433,22 @@ CONFIG_USB_XUSBATM=m
 #
 CONFIG_USB_OTG_UTILS=y
 CONFIG_USB_GPIO_VBUS=m
+# CONFIG_USB_ULPI is not set
 CONFIG_NOP_USB_XCEIV=m
 CONFIG_UWB=m
 CONFIG_UWB_HWA=m
 CONFIG_UWB_WHCI=m
-CONFIG_UWB_WLP=m
 CONFIG_UWB_I1480U=m
-CONFIG_UWB_I1480U_WLP=m
 CONFIG_MMC=m
 # CONFIG_MMC_DEBUG is not set
 # CONFIG_MMC_UNSAFE_RESUME is not set
+# CONFIG_MMC_CLKGATE is not set
 
 #
 # MMC/SD/SDIO Card Drivers
 #
 CONFIG_MMC_BLOCK=m
+CONFIG_MMC_BLOCK_MINORS=8
 CONFIG_MMC_BLOCK_BOUNCE=y
 CONFIG_SDIO_UART=m
 CONFIG_MMC_TEST=m
@@ -2828,15 +3458,17 @@ CONFIG_MMC_TEST=m
 #
 CONFIG_MMC_SDHCI=m
 CONFIG_MMC_SDHCI_PCI=m
-CONFIG_MMC_RICOH_MMC=m
+# CONFIG_MMC_RICOH_MMC is not set
 CONFIG_MMC_SDHCI_PLTFM=m
-# CONFIG_MMC_AT91 is not set
-# CONFIG_MMC_ATMELMCI is not set
 CONFIG_MMC_TIFM_SD=m
 CONFIG_MMC_MVSDIO=m
 CONFIG_MMC_SDRICOH_CS=m
 CONFIG_MMC_CB710=m
 CONFIG_MMC_VIA_SDMMC=m
+CONFIG_MMC_DW=m
+# CONFIG_MMC_DW_IDMAC is not set
+CONFIG_MMC_VUB300=m
+CONFIG_MMC_USHC=m
 CONFIG_MEMSTICK=m
 # CONFIG_MEMSTICK_DEBUG is not set
 
@@ -2851,30 +3483,37 @@ CONFIG_MSPRO_BLOCK=m
 #
 CONFIG_MEMSTICK_TIFM_MS=m
 CONFIG_MEMSTICK_JMICRON_38X=m
+CONFIG_MEMSTICK_R592=m
 CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=m
+CONFIG_LEDS_CLASS=y
 
 #
 # LED drivers
 #
+CONFIG_LEDS_88PM860X=m
+CONFIG_LEDS_LM3530=m
 CONFIG_LEDS_PCA9532=m
+CONFIG_LEDS_PCA9532_GPIO=y
 CONFIG_LEDS_GPIO=m
-CONFIG_LEDS_GPIO_PLATFORM=y
 CONFIG_LEDS_LP3944=m
+CONFIG_LEDS_LP5521=m
+CONFIG_LEDS_LP5523=m
 CONFIG_LEDS_PCA955X=m
-CONFIG_LEDS_WM831X_STATUS=m
-CONFIG_LEDS_WM8350=m
+CONFIG_LEDS_REGULATOR=m
 CONFIG_LEDS_BD2802=m
+CONFIG_LEDS_LT3593=m
+CONFIG_LEDS_NS2=y
+CONFIG_LEDS_NETXBIG=y
+CONFIG_LEDS_TRIGGERS=y
 
 #
 # LED Triggers
 #
-CONFIG_LEDS_TRIGGERS=y
 CONFIG_LEDS_TRIGGER_TIMER=m
 CONFIG_LEDS_TRIGGER_HEARTBEAT=m
 CONFIG_LEDS_TRIGGER_BACKLIGHT=m
 CONFIG_LEDS_TRIGGER_GPIO=m
-CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
+CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
 
 #
 # iptables trigger is under Netfilter config (LED target)
@@ -2883,7 +3522,10 @@ CONFIG_LEDS_TRIGGER_NETDEV=m
 # CONFIG_ACCESSIBILITY is not set
 # CONFIG_INFINIBAND is not set
 CONFIG_RTC_LIB=y
-CONFIG_RTC_CLASS=m
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
 
 #
 # RTC interfaces
@@ -2892,26 +3534,32 @@ CONFIG_RTC_INTF_SYSFS=y
 CONFIG_RTC_INTF_PROC=y
 CONFIG_RTC_INTF_DEV=y
 # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
-CONFIG_RTC_DRV_TEST=m
+# CONFIG_RTC_DRV_TEST is not set
 
 #
 # I2C RTC drivers
 #
+CONFIG_RTC_DRV_88PM860X=y
 CONFIG_RTC_DRV_DS1307=m
 CONFIG_RTC_DRV_DS1374=m
 CONFIG_RTC_DRV_DS1672=m
+CONFIG_RTC_DRV_DS3232=m
 CONFIG_RTC_DRV_MAX6900=m
 CONFIG_RTC_DRV_RS5C372=m
 CONFIG_RTC_DRV_ISL1208=m
+CONFIG_RTC_DRV_ISL12022=m
 CONFIG_RTC_DRV_X1205=m
 CONFIG_RTC_DRV_PCF8563=m
 CONFIG_RTC_DRV_PCF8583=m
 CONFIG_RTC_DRV_M41T80=m
-# CONFIG_RTC_DRV_M41T80_WDT is not set
+CONFIG_RTC_DRV_M41T80_WDT=y
+CONFIG_RTC_DRV_BQ32K=m
 CONFIG_RTC_DRV_S35390A=m
 CONFIG_RTC_DRV_FM3130=m
 CONFIG_RTC_DRV_RX8581=m
 CONFIG_RTC_DRV_RX8025=m
+CONFIG_RTC_DRV_EM3027=m
+CONFIG_RTC_DRV_RV3029C2=m
 
 #
 # SPI RTC drivers
@@ -2929,119 +3577,120 @@ CONFIG_RTC_DRV_STK17TA8=m
 CONFIG_RTC_DRV_M48T86=m
 CONFIG_RTC_DRV_M48T35=m
 CONFIG_RTC_DRV_M48T59=m
+CONFIG_RTC_DRV_MSM6242=m
 CONFIG_RTC_DRV_BQ4802=m
+CONFIG_RTC_DRV_RP5C01=m
 CONFIG_RTC_DRV_V3020=m
-CONFIG_RTC_DRV_WM831X=m
-CONFIG_RTC_DRV_WM8350=m
 CONFIG_RTC_DRV_PCF50633=m
-CONFIG_RTC_DRV_AB3100=m
 
 #
 # on-CPU RTC drivers
 #
-CONFIG_RTC_DRV_MV=m
+CONFIG_RTC_DRV_MV=y
 CONFIG_DMADEVICES=y
+# CONFIG_DMADEVICES_DEBUG is not set
 
 #
 # DMA Devices
 #
+CONFIG_ASYNC_TX_ENABLE_CHANNEL_SWITCH=y
 CONFIG_MV_XOR=y
+# CONFIG_TIMB_DMA is not set
 CONFIG_DMA_ENGINE=y
 
 #
 # DMA Clients
 #
 # CONFIG_NET_DMA is not set
-# CONFIG_ASYNC_TX_DMA is not set
+CONFIG_ASYNC_TX_DMA=y
 CONFIG_DMATEST=m
 # CONFIG_AUXDISPLAY is not set
 CONFIG_UIO=m
 CONFIG_UIO_CIF=m
 CONFIG_UIO_PDRV=m
 CONFIG_UIO_PDRV_GENIRQ=m
-CONFIG_UIO_SMX=m
 CONFIG_UIO_AEC=m
 CONFIG_UIO_SERCOS3=m
 CONFIG_UIO_PCI_GENERIC=m
+CONFIG_UIO_NETX=m
 
 #
-# TI VLYNQ
+# Virtio drivers
 #
+# CONFIG_VIRTIO_PCI is not set
+# CONFIG_VIRTIO_BALLOON is not set
+# CONFIG_VIRTIO_MMIO is not set
 CONFIG_STAGING=y
-# CONFIG_STAGING_EXCLUDE_BUILD is not set
 CONFIG_ET131X=m
-# CONFIG_ET131X_DEBUG is not set
-# CONFIG_VIDEO_GO7007 is not set
-# CONFIG_VIDEO_CX25821 is not set
-# CONFIG_USB_IP_COMMON is not set
+CONFIG_USBIP_CORE=m
+CONFIG_USBIP_VHCI_HCD=m
+CONFIG_USBIP_HOST=m
+# CONFIG_USBIP_DEBUG is not set
 # CONFIG_W35UND is not set
 # CONFIG_PRISM2_USB is not set
 # CONFIG_ECHO is not set
-# CONFIG_POCH is not set
-# CONFIG_OTUS is not set
-# CONFIG_COMEDI is not set
 # CONFIG_ASUS_OLED is not set
 # CONFIG_PANEL is not set
-# CONFIG_ALTERA_PCIE_CHDMA is not set
-# CONFIG_RTL8187SE is not set
-# CONFIG_RTL8192SU is not set
+# CONFIG_R8187SE is not set
+# CONFIG_RTL8192U is not set
 # CONFIG_RTL8192E is not set
+# CONFIG_R8712U is not set
+# CONFIG_RTS_PSTOR is not set
+# CONFIG_RTS5139 is not set
 # CONFIG_TRANZPORT is not set
-
-#
-# Android
-#
-
-#
-# Qualcomm MSM Camera And Video
-#
-
-#
-# Camera Sensor Selection
-#
-# CONFIG_INPUT_GPIO is not set
-# CONFIG_DST is not set
 # CONFIG_POHMELFS is not set
-# CONFIG_B3DFG is not set
 CONFIG_IDE_PHISON=m
-# CONFIG_PLAN9AUTH is not set
 # CONFIG_LINE6_USB is not set
+# CONFIG_DRM_NOUVEAU is not set
 # CONFIG_USB_SERIAL_QUATECH2 is not set
 # CONFIG_USB_SERIAL_QUATECH_USB2 is not set
 # CONFIG_VT6655 is not set
 # CONFIG_VT6656 is not set
-# CONFIG_FB_UDL is not set
 # CONFIG_VME_BUS is not set
+# CONFIG_DX_SEP is not set
+# CONFIG_IIO is not set
+# CONFIG_XVMALLOC is not set
+# CONFIG_ZRAM is not set
+# CONFIG_WLAGS49_H2 is not set
+# CONFIG_WLAGS49_H25 is not set
+# CONFIG_FB_SM7XX is not set
+# CONFIG_CRYSTALHD is not set
+# CONFIG_CXT1E1 is not set
+# CONFIG_FB_XGI is not set
+# CONFIG_SBE_2T3E3 is not set
+# CONFIG_USB_ENESTORAGE is not set
+# CONFIG_BCM_WIMAX is not set
+# CONFIG_FT1000 is not set
 
 #
-# RAR Register Driver
+# Speakup console speech
 #
-# CONFIG_RAR_REGISTER is not set
-# CONFIG_IIO is not set
+# CONFIG_SPEAKUP is not set
+# CONFIG_TOUCHSCREEN_CLEARPAD_TM1217 is not set
+# CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4 is not set
+# CONFIG_STAGING_MEDIA is not set
+
+#
+# Hardware Spinlock drivers
+#
+CONFIG_CLKSRC_MMIO=y
+CONFIG_IOMMU_SUPPORT=y
+# CONFIG_VIRT_DRIVERS is not set
+# CONFIG_PM_DEVFREQ is not set
 
 #
 # File systems
 #
-CONFIG_EXT2_FS=m
-CONFIG_EXT2_FS_XATTR=y
-CONFIG_EXT2_FS_POSIX_ACL=y
-CONFIG_EXT2_FS_SECURITY=y
-# CONFIG_EXT2_FS_XIP is not set
-CONFIG_EXT3_FS=m
-# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
-CONFIG_EXT3_FS_XATTR=y
-CONFIG_EXT3_FS_POSIX_ACL=y
-CONFIG_EXT3_FS_SECURITY=y
-CONFIG_EXT4_FS=m
+# CONFIG_EXT2_FS is not set
+# CONFIG_EXT3_FS is not set
+CONFIG_EXT4_FS=y
+CONFIG_EXT4_USE_FOR_EXT23=y
 CONFIG_EXT4_FS_XATTR=y
 CONFIG_EXT4_FS_POSIX_ACL=y
 CONFIG_EXT4_FS_SECURITY=y
 # CONFIG_EXT4_DEBUG is not set
-CONFIG_JBD=m
-CONFIG_JBD2=m
-CONFIG_FS_MBCACHE=m
-CONFIG_REISER4_FS=m
-# CONFIG_REISER4_DEBUG is not set
+CONFIG_JBD2=y
+CONFIG_FS_MBCACHE=y
 CONFIG_REISERFS_FS=m
 # CONFIG_REISERFS_CHECK is not set
 CONFIG_REISERFS_PROC_INFO=y
@@ -3053,29 +3702,29 @@ CONFIG_JFS_POSIX_ACL=y
 CONFIG_JFS_SECURITY=y
 # CONFIG_JFS_DEBUG is not set
 CONFIG_JFS_STATISTICS=y
-CONFIG_FS_POSIX_ACL=y
 CONFIG_XFS_FS=m
 CONFIG_XFS_QUOTA=y
 CONFIG_XFS_POSIX_ACL=y
 # CONFIG_XFS_RT is not set
 # CONFIG_XFS_DEBUG is not set
 # CONFIG_GFS2_FS is not set
-# CONFIG_OCFS2_FS is not set
 # CONFIG_BTRFS_FS is not set
 # CONFIG_NILFS2_FS is not set
+CONFIG_FS_POSIX_ACL=y
+CONFIG_EXPORTFS=m
 CONFIG_FILE_LOCKING=y
 CONFIG_FSNOTIFY=y
 CONFIG_DNOTIFY=y
-CONFIG_INOTIFY=y
 CONFIG_INOTIFY_USER=y
+CONFIG_FANOTIFY=y
 CONFIG_QUOTA=y
 CONFIG_QUOTA_NETLINK_INTERFACE=y
 CONFIG_PRINT_QUOTA_WARNING=y
+# CONFIG_QUOTA_DEBUG is not set
 CONFIG_QUOTA_TREE=m
 CONFIG_QFMT_V1=m
 CONFIG_QFMT_V2=m
 CONFIG_QUOTACTL=y
-CONFIG_AUTOFS_FS=m
 CONFIG_AUTOFS4_FS=m
 CONFIG_FUSE_FS=m
 CONFIG_CUSE=m
@@ -3120,6 +3769,7 @@ CONFIG_PROC_PAGE_MONITOR=y
 CONFIG_SYSFS=y
 CONFIG_TMPFS=y
 # CONFIG_TMPFS_POSIX_ACL is not set
+CONFIG_TMPFS_XATTR=y
 # CONFIG_HUGETLB_PAGE is not set
 # CONFIG_CONFIGFS_FS is not set
 CONFIG_MISC_FILESYSTEMS=y
@@ -3147,6 +3797,7 @@ CONFIG_JFFS2_CMODE_PRIORITY=y
 # CONFIG_JFFS2_CMODE_SIZE is not set
 # CONFIG_JFFS2_CMODE_FAVOURLZO is not set
 # CONFIG_UBIFS_FS is not set
+# CONFIG_LOGFS is not set
 # CONFIG_CRAMFS is not set
 # CONFIG_SQUASHFS is not set
 # CONFIG_VXFS_FS is not set
@@ -3155,8 +3806,12 @@ CONFIG_JFFS2_CMODE_PRIORITY=y
 # CONFIG_HPFS_FS is not set
 # CONFIG_QNX4FS_FS is not set
 # CONFIG_ROMFS_FS is not set
+# CONFIG_PSTORE is not set
 # CONFIG_SYSV_FS is not set
-# CONFIG_UFS_FS is not set
+CONFIG_UFS_FS=m
+# CONFIG_UFS_FS_WRITE is not set
+# CONFIG_UFS_DEBUG is not set
+# CONFIG_EXOFS_FS is not set
 CONFIG_NETWORK_FILESYSTEMS=y
 CONFIG_NFS_FS=m
 CONFIG_NFS_V3=y
@@ -3164,6 +3819,9 @@ CONFIG_NFS_V3_ACL=y
 CONFIG_NFS_V4=y
 # CONFIG_NFS_V4_1 is not set
 # CONFIG_NFS_FSCACHE is not set
+# CONFIG_NFS_USE_LEGACY_DNS is not set
+CONFIG_NFS_USE_KERNEL_DNS=y
+# CONFIG_NFS_USE_NEW_IDMAPPER is not set
 CONFIG_NFSD=m
 CONFIG_NFSD_V2_ACL=y
 CONFIG_NFSD_V3=y
@@ -3171,15 +3829,12 @@ CONFIG_NFSD_V3_ACL=y
 CONFIG_NFSD_V4=y
 CONFIG_LOCKD=m
 CONFIG_LOCKD_V4=y
-CONFIG_EXPORTFS=m
 CONFIG_NFS_ACL_SUPPORT=m
 CONFIG_NFS_COMMON=y
 CONFIG_SUNRPC=m
 CONFIG_SUNRPC_GSS=m
 CONFIG_RPCSEC_GSS_KRB5=m
-# CONFIG_RPCSEC_GSS_SPKM3 is not set
-CONFIG_SMB_FS=m
-# CONFIG_SMB_NLS_DEFAULT is not set
+# CONFIG_CEPH_FS is not set
 CONFIG_CIFS=m
 CONFIG_CIFS_STATS=y
 CONFIG_CIFS_STATS2=y
@@ -3189,7 +3844,8 @@ CONFIG_CIFS_XATTR=y
 CONFIG_CIFS_POSIX=y
 # CONFIG_CIFS_DEBUG2 is not set
 # CONFIG_CIFS_DFS_UPCALL is not set
-# CONFIG_CIFS_EXPERIMENTAL is not set
+# CONFIG_CIFS_FSCACHE is not set
+CONFIG_CIFS_ACL=y
 # CONFIG_NCP_FS is not set
 # CONFIG_CODA_FS is not set
 # CONFIG_AFS_FS is not set
@@ -3204,7 +3860,7 @@ CONFIG_PARTITION_ADVANCED=y
 # CONFIG_ATARI_PARTITION is not set
 # CONFIG_MAC_PARTITION is not set
 CONFIG_MSDOS_PARTITION=y
-# CONFIG_BSD_DISKLABEL is not set
+CONFIG_BSD_DISKLABEL=y
 # CONFIG_MINIX_SUBPARTITION is not set
 # CONFIG_SOLARIS_X86_PARTITION is not set
 # CONFIG_UNIXWARE_DISKLABEL is not set
@@ -3256,12 +3912,12 @@ CONFIG_NLS_ISO8859_1=y
 # CONFIG_NLS_KOI8_R is not set
 # CONFIG_NLS_KOI8_U is not set
 CONFIG_NLS_UTF8=y
-# CONFIG_DLM is not set
 
 #
 # Kernel hacking
 #
 # CONFIG_PRINTK_TIME is not set
+CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4
 # CONFIG_ENABLE_WARN_DEPRECATED is not set
 CONFIG_ENABLE_MUST_CHECK=y
 CONFIG_FRAME_WARN=1024
@@ -3270,12 +3926,13 @@ CONFIG_STRIP_ASM_SYMS=y
 # CONFIG_UNUSED_SYMBOLS is not set
 # CONFIG_DEBUG_FS is not set
 # CONFIG_HEADERS_CHECK is not set
+# CONFIG_DEBUG_SECTION_MISMATCH is not set
 CONFIG_DEBUG_KERNEL=y
 # CONFIG_DEBUG_SHIRQ is not set
-CONFIG_DETECT_SOFTLOCKUP=y
-# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
-CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
+# CONFIG_LOCKUP_DETECTOR is not set
+# CONFIG_HARDLOCKUP_DETECTOR is not set
 CONFIG_DETECT_HUNG_TASK=y
+CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
 # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
 CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
 CONFIG_SCHED_DEBUG=y
@@ -3291,9 +3948,11 @@ CONFIG_TIMER_STATS=y
 # CONFIG_DEBUG_MUTEXES is not set
 # CONFIG_DEBUG_LOCK_ALLOC is not set
 # CONFIG_PROVE_LOCKING is not set
+# CONFIG_SPARSE_RCU_POINTER is not set
 # CONFIG_LOCK_STAT is not set
-# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+# CONFIG_DEBUG_ATOMIC_SLEEP is not set
 # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+# CONFIG_DEBUG_STACK_USAGE is not set
 # CONFIG_DEBUG_KOBJECT is not set
 # CONFIG_DEBUG_HIGHMEM is not set
 CONFIG_DEBUG_BUGVERBOSE=y
@@ -3302,41 +3961,54 @@ CONFIG_DEBUG_BUGVERBOSE=y
 # CONFIG_DEBUG_WRITECOUNT is not set
 CONFIG_DEBUG_MEMORY_INIT=y
 # CONFIG_DEBUG_LIST is not set
+# CONFIG_TEST_LIST_SORT is not set
 # CONFIG_DEBUG_SG is not set
 # CONFIG_DEBUG_NOTIFIERS is not set
 # CONFIG_DEBUG_CREDENTIALS is not set
 CONFIG_FRAME_POINTER=y
 # CONFIG_BOOT_PRINTK_DELAY is not set
 # CONFIG_RCU_TORTURE_TEST is not set
-# CONFIG_RCU_CPU_STALL_DETECTOR is not set
 # CONFIG_BACKTRACE_SELF_TEST is not set
 # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
 # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
 # CONFIG_FAULT_INJECTION is not set
 # CONFIG_LATENCYTOP is not set
 # CONFIG_SYSCTL_SYSCALL_CHECK is not set
-# CONFIG_PAGE_POISONING is not set
+# CONFIG_DEBUG_PAGEALLOC is not set
 CONFIG_HAVE_FUNCTION_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
+CONFIG_HAVE_C_RECORDMCOUNT=y
 CONFIG_TRACING_SUPPORT=y
 # CONFIG_FTRACE is not set
 # CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set
+# CONFIG_DMA_API_DEBUG is not set
+# CONFIG_ATOMIC64_SELFTEST is not set
+CONFIG_ASYNC_RAID6_TEST=m
 # CONFIG_SAMPLES is not set
 CONFIG_HAVE_ARCH_KGDB=y
 # CONFIG_KGDB is not set
+# CONFIG_TEST_KSTRTOX is not set
+# CONFIG_STRICT_DEVMEM is not set
 # CONFIG_ARM_UNWIND is not set
 # CONFIG_DEBUG_USER is not set
-# CONFIG_DEBUG_ERRORS is not set
-# CONFIG_DEBUG_STACK_USAGE is not set
-# CONFIG_DEBUG_LL is not set
+CONFIG_DEBUG_LL=y
+CONFIG_DEBUG_LL_UART_NONE=y
+# CONFIG_DEBUG_ICEDCC is not set
+CONFIG_EARLY_PRINTK=y
 
 #
 # Security options
 #
 CONFIG_KEYS=y
+# CONFIG_ENCRYPTED_KEYS is not set
 # CONFIG_KEYS_DEBUG_PROC_KEYS is not set
+# CONFIG_SECURITY_DMESG_RESTRICT is not set
 # CONFIG_SECURITY is not set
 # CONFIG_SECURITYFS is not set
-# CONFIG_SECURITY_FILE_CAPABILITIES is not set
+CONFIG_DEFAULT_SECURITY_DAC=y
+CONFIG_DEFAULT_SECURITY=""
 CONFIG_XOR_BLOCKS=m
 CONFIG_ASYNC_CORE=m
 CONFIG_ASYNC_MEMCPY=m
@@ -3348,7 +4020,6 @@ CONFIG_CRYPTO=y
 #
 # Crypto core or helper
 #
-CONFIG_CRYPTO_FIPS=y
 CONFIG_CRYPTO_ALGAPI=y
 CONFIG_CRYPTO_ALGAPI2=y
 CONFIG_CRYPTO_AEAD=m
@@ -3359,9 +4030,12 @@ CONFIG_CRYPTO_HASH=y
 CONFIG_CRYPTO_HASH2=y
 CONFIG_CRYPTO_RNG=m
 CONFIG_CRYPTO_RNG2=y
-CONFIG_CRYPTO_PCOMP=y
+CONFIG_CRYPTO_PCOMP=m
+CONFIG_CRYPTO_PCOMP2=y
 CONFIG_CRYPTO_MANAGER=y
 CONFIG_CRYPTO_MANAGER2=y
+CONFIG_CRYPTO_USER=m
+CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
 CONFIG_CRYPTO_GF128MUL=m
 # CONFIG_CRYPTO_NULL is not set
 CONFIG_CRYPTO_WORKQUEUE=y
@@ -3399,7 +4073,7 @@ CONFIG_CRYPTO_VMAC=m
 #
 CONFIG_CRYPTO_CRC32C=m
 CONFIG_CRYPTO_GHASH=m
-# CONFIG_CRYPTO_MD4 is not set
+CONFIG_CRYPTO_MD4=m
 CONFIG_CRYPTO_MD5=m
 CONFIG_CRYPTO_MICHAEL_MIC=m
 CONFIG_CRYPTO_RMD128=m
@@ -3419,6 +4093,7 @@ CONFIG_CRYPTO_AES=m
 CONFIG_CRYPTO_ANUBIS=m
 CONFIG_CRYPTO_ARC4=m
 CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_BLOWFISH_COMMON=m
 CONFIG_CRYPTO_CAMELLIA=m
 CONFIG_CRYPTO_CAST5=m
 CONFIG_CRYPTO_CAST6=m
@@ -3443,8 +4118,11 @@ CONFIG_CRYPTO_LZO=m
 # Random Number Generation
 #
 CONFIG_CRYPTO_ANSI_CPRNG=m
+CONFIG_CRYPTO_USER_API=m
+CONFIG_CRYPTO_USER_API_HASH=m
+CONFIG_CRYPTO_USER_API_SKCIPHER=m
 CONFIG_CRYPTO_HW=y
-# CONFIG_CRYPTO_DEV_MV_CESA is not set
+CONFIG_CRYPTO_DEV_MV_CESA=m
 CONFIG_CRYPTO_DEV_HIFN_795X=m
 CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y
 # CONFIG_BINARY_PRINTF is not set
@@ -3452,23 +4130,35 @@ CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y
 #
 # Library routines
 #
+CONFIG_RAID6_PQ=m
 CONFIG_BITREVERSE=y
-CONFIG_GENERIC_FIND_LAST_BIT=y
 CONFIG_CRC_CCITT=m
-CONFIG_CRC16=m
+CONFIG_CRC16=y
 CONFIG_CRC_T10DIF=m
 CONFIG_CRC_ITU_T=m
 CONFIG_CRC32=y
 CONFIG_CRC7=m
 CONFIG_LIBCRC32C=m
+CONFIG_CRC8=m
 CONFIG_AUDIT_GENERIC=y
 CONFIG_ZLIB_INFLATE=y
 CONFIG_ZLIB_DEFLATE=y
-CONFIG_LZO_COMPRESS=m
-CONFIG_LZO_DECOMPRESS=m
+CONFIG_LZO_COMPRESS=y
+CONFIG_LZO_DECOMPRESS=y
+CONFIG_XZ_DEC=y
+CONFIG_XZ_DEC_X86=y
+CONFIG_XZ_DEC_POWERPC=y
+CONFIG_XZ_DEC_IA64=y
+CONFIG_XZ_DEC_ARM=y
+CONFIG_XZ_DEC_ARMTHUMB=y
+CONFIG_XZ_DEC_SPARC=y
+CONFIG_XZ_DEC_BCJ=y
+# CONFIG_XZ_DEC_TEST is not set
 CONFIG_DECOMPRESS_GZIP=y
 CONFIG_DECOMPRESS_BZIP2=y
 CONFIG_DECOMPRESS_LZMA=y
+CONFIG_DECOMPRESS_XZ=y
+CONFIG_DECOMPRESS_LZO=y
 CONFIG_TEXTSEARCH=y
 CONFIG_TEXTSEARCH_KMP=m
 CONFIG_TEXTSEARCH_BM=m
@@ -3478,3 +4168,6 @@ CONFIG_HAS_IOPORT=y
 CONFIG_HAS_DMA=y
 CONFIG_CHECK_SIGNATURE=y
 CONFIG_NLATTR=y
+CONFIG_GENERIC_ATOMIC64=y
+CONFIG_AVERAGE=y
+CONFIG_CORDIC=m
diff --git a/config/kernel/kernel.config.armv5tel-ipfire-omap b/config/kernel/kernel.config.armv5tel-ipfire-omap
new file mode 100644 (file)
index 0000000..a517782
--- /dev/null
@@ -0,0 +1,3577 @@
+#
+# Automatically generated file; DO NOT EDIT.
+# Linux/arm 3.2.35 Kernel Configuration
+#
+CONFIG_ARM=y
+CONFIG_HAVE_PWM=y
+CONFIG_SYS_SUPPORTS_APM_EMULATION=y
+CONFIG_HAVE_SCHED_CLOCK=y
+CONFIG_GENERIC_GPIO=y
+# CONFIG_ARCH_USES_GETTIMEOFFSET is not set
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
+CONFIG_KTIME_SCALAR=y
+CONFIG_HAVE_PROC_CPU=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_HARDIRQS_SW_RESEND=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+CONFIG_ARCH_HAS_CPUFREQ=y
+CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_NEED_DMA_MAP_STATE=y
+CONFIG_VECTORS_BASE=0xffff0000
+CONFIG_ARM_PATCH_PHYS_VIRT=y
+CONFIG_GENERIC_BUG=y
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+CONFIG_HAVE_IRQ_WORK=y
+CONFIG_IRQ_WORK=y
+
+#
+# General setup
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_CROSS_COMPILE=""
+CONFIG_LOCALVERSION=""
+# CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_HAVE_KERNEL_GZIP=y
+CONFIG_HAVE_KERNEL_LZMA=y
+CONFIG_HAVE_KERNEL_LZO=y
+# CONFIG_KERNEL_GZIP is not set
+CONFIG_KERNEL_LZMA=y
+# CONFIG_KERNEL_LZO is not set
+CONFIG_DEFAULT_HOSTNAME="(none)"
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_POSIX_MQUEUE_SYSCTL=y
+CONFIG_BSD_PROCESS_ACCT=y
+CONFIG_BSD_PROCESS_ACCT_V3=y
+# CONFIG_FHANDLE is not set
+# CONFIG_TASKSTATS is not set
+CONFIG_AUDIT=y
+CONFIG_HAVE_GENERIC_HARDIRQS=y
+
+#
+# IRQ subsystem
+#
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_HAVE_SPARSE_IRQ=y
+CONFIG_GENERIC_IRQ_SHOW=y
+CONFIG_GENERIC_IRQ_CHIP=y
+CONFIG_IRQ_DOMAIN=y
+CONFIG_SPARSE_IRQ=y
+
+#
+# RCU Subsystem
+#
+CONFIG_TREE_RCU=y
+# CONFIG_PREEMPT_RCU is not set
+# CONFIG_RCU_TRACE is not set
+CONFIG_RCU_FANOUT=32
+# CONFIG_RCU_FANOUT_EXACT is not set
+CONFIG_RCU_FAST_NO_HZ=y
+# CONFIG_TREE_RCU_TRACE is not set
+# CONFIG_IKCONFIG is not set
+CONFIG_LOG_BUF_SHIFT=19
+# CONFIG_CGROUPS is not set
+CONFIG_NAMESPACES=y
+CONFIG_UTS_NS=y
+CONFIG_IPC_NS=y
+# CONFIG_USER_NS is not set
+# CONFIG_PID_NS is not set
+# CONFIG_NET_NS is not set
+# CONFIG_SCHED_AUTOGROUP is not set
+CONFIG_SYSFS_DEPRECATED=y
+CONFIG_SYSFS_DEPRECATED_V2=y
+# CONFIG_RELAY is not set
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_RD_GZIP=y
+CONFIG_RD_BZIP2=y
+CONFIG_RD_LZMA=y
+CONFIG_RD_XZ=y
+CONFIG_RD_LZO=y
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SYSCTL=y
+CONFIG_ANON_INODES=y
+CONFIG_EXPERT=y
+CONFIG_UID16=y
+CONFIG_SYSCTL_SYSCALL=y
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_SHMEM=y
+CONFIG_AIO=y
+# CONFIG_EMBEDDED is not set
+CONFIG_HAVE_PERF_EVENTS=y
+CONFIG_PERF_USE_VMALLOC=y
+
+#
+# Kernel Performance Events And Counters
+#
+CONFIG_PERF_EVENTS=y
+# CONFIG_PERF_COUNTERS is not set
+# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_SLUB_DEBUG=y
+# CONFIG_COMPAT_BRK is not set
+# CONFIG_SLAB is not set
+CONFIG_SLUB=y
+# CONFIG_SLOB is not set
+# CONFIG_PROFILING is not set
+CONFIG_HAVE_OPROFILE=y
+# CONFIG_KPROBES is not set
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_USE_GENERIC_SMP_HELPERS=y
+CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
+CONFIG_HAVE_CLK=y
+CONFIG_HAVE_DMA_API_DEBUG=y
+CONFIG_HAVE_HW_BREAKPOINT=y
+
+#
+# GCOV-based kernel profiling
+#
+CONFIG_HAVE_GENERIC_DMA_COHERENT=y
+CONFIG_SLABINFO=y
+CONFIG_RT_MUTEXES=y
+CONFIG_BASE_SMALL=0
+CONFIG_MODULES=y
+# CONFIG_MODULE_FORCE_LOAD is not set
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+# CONFIG_MODVERSIONS is not set
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_STOP_MACHINE=y
+CONFIG_BLOCK=y
+CONFIG_LBDAF=y
+CONFIG_BLK_DEV_BSG=y
+CONFIG_BLK_DEV_BSGLIB=y
+# CONFIG_BLK_DEV_INTEGRITY is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+# CONFIG_DEFAULT_DEADLINE is not set
+CONFIG_DEFAULT_CFQ=y
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="cfq"
+CONFIG_PADATA=y
+# CONFIG_INLINE_SPIN_TRYLOCK is not set
+# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
+# CONFIG_INLINE_SPIN_LOCK is not set
+# CONFIG_INLINE_SPIN_LOCK_BH is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
+CONFIG_INLINE_SPIN_UNLOCK=y
+# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
+CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
+# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_READ_TRYLOCK is not set
+# CONFIG_INLINE_READ_LOCK is not set
+# CONFIG_INLINE_READ_LOCK_BH is not set
+# CONFIG_INLINE_READ_LOCK_IRQ is not set
+# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
+CONFIG_INLINE_READ_UNLOCK=y
+# CONFIG_INLINE_READ_UNLOCK_BH is not set
+CONFIG_INLINE_READ_UNLOCK_IRQ=y
+# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_WRITE_TRYLOCK is not set
+# CONFIG_INLINE_WRITE_LOCK is not set
+# CONFIG_INLINE_WRITE_LOCK_BH is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
+CONFIG_INLINE_WRITE_UNLOCK=y
+# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
+CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
+# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
+CONFIG_MUTEX_SPIN_ON_OWNER=y
+CONFIG_FREEZER=y
+
+#
+# System Type
+#
+CONFIG_MMU=y
+# CONFIG_ARCH_INTEGRATOR is not set
+# CONFIG_ARCH_REALVIEW is not set
+# CONFIG_ARCH_VERSATILE is not set
+# CONFIG_ARCH_VEXPRESS is not set
+# CONFIG_ARCH_AT91 is not set
+# CONFIG_ARCH_BCMRING is not set
+# CONFIG_ARCH_HIGHBANK is not set
+# CONFIG_ARCH_CLPS711X is not set
+# CONFIG_ARCH_CNS3XXX is not set
+# CONFIG_ARCH_GEMINI is not set
+# CONFIG_ARCH_PRIMA2 is not set
+# CONFIG_ARCH_EBSA110 is not set
+# CONFIG_ARCH_EP93XX is not set
+# CONFIG_ARCH_FOOTBRIDGE is not set
+# CONFIG_ARCH_MXC is not set
+# CONFIG_ARCH_MXS is not set
+# CONFIG_ARCH_NETX is not set
+# CONFIG_ARCH_H720X is not set
+# CONFIG_ARCH_IOP13XX is not set
+# CONFIG_ARCH_IOP32X is not set
+# CONFIG_ARCH_IOP33X is not set
+# CONFIG_ARCH_IXP23XX is not set
+# CONFIG_ARCH_IXP2000 is not set
+# CONFIG_ARCH_IXP4XX is not set
+# CONFIG_ARCH_DOVE is not set
+# CONFIG_ARCH_KIRKWOOD is not set
+# CONFIG_ARCH_LPC32XX is not set
+# CONFIG_ARCH_MV78XX0 is not set
+# CONFIG_ARCH_ORION5X is not set
+# CONFIG_ARCH_MMP is not set
+# CONFIG_ARCH_KS8695 is not set
+# CONFIG_ARCH_W90X900 is not set
+# CONFIG_ARCH_TEGRA is not set
+# CONFIG_ARCH_PICOXCELL is not set
+# CONFIG_ARCH_PNX4008 is not set
+# CONFIG_ARCH_PXA is not set
+# CONFIG_ARCH_MSM is not set
+# CONFIG_ARCH_SHMOBILE is not set
+# CONFIG_ARCH_RPC is not set
+# CONFIG_ARCH_SA1100 is not set
+# CONFIG_ARCH_S3C2410 is not set
+# CONFIG_ARCH_S3C64XX is not set
+# CONFIG_ARCH_S5P64X0 is not set
+# CONFIG_ARCH_S5PC100 is not set
+# CONFIG_ARCH_S5PV210 is not set
+# CONFIG_ARCH_EXYNOS is not set
+# CONFIG_ARCH_SHARK is not set
+# CONFIG_ARCH_TCC_926 is not set
+# CONFIG_ARCH_U300 is not set
+# CONFIG_ARCH_U8500 is not set
+# CONFIG_ARCH_NOMADIK is not set
+# CONFIG_ARCH_DAVINCI is not set
+CONFIG_ARCH_OMAP=y
+# CONFIG_PLAT_SPEAR is not set
+# CONFIG_ARCH_VT8500 is not set
+# CONFIG_ARCH_ZYNQ is not set
+CONFIG_GPIO_PCA953X=m
+CONFIG_KEYBOARD_GPIO_POLLED=m
+
+#
+# TI OMAP Common Features
+#
+CONFIG_ARCH_OMAP_OTG=y
+# CONFIG_ARCH_OMAP1 is not set
+CONFIG_ARCH_OMAP2PLUS=y
+
+#
+# OMAP Feature Selections
+#
+CONFIG_OMAP_DEBUG_DEVICES=y
+CONFIG_OMAP_DEBUG_LEDS=y
+# CONFIG_OMAP_SMARTREFLEX is not set
+CONFIG_OMAP_RESET_CLOCKS=y
+CONFIG_OMAP_MUX=y
+# CONFIG_OMAP_MUX_DEBUG is not set
+CONFIG_OMAP_MUX_WARNINGS=y
+CONFIG_OMAP_MCBSP=y
+# CONFIG_OMAP_MBOX_FWK is not set
+CONFIG_OMAP_32K_TIMER=y
+# CONFIG_OMAP3_L2_AUX_SECURE_SAVE_RESTORE is not set
+CONFIG_OMAP_32K_TIMER_HZ=128
+CONFIG_OMAP_DM_TIMER=y
+CONFIG_OMAP_PM_NOOP=y
+CONFIG_MACH_OMAP_GENERIC=y
+
+#
+# TI OMAP2/3/4 Specific Features
+#
+CONFIG_ARCH_OMAP2PLUS_TYPICAL=y
+CONFIG_ARCH_OMAP2=y
+CONFIG_ARCH_OMAP3=y
+CONFIG_ARCH_OMAP4=y
+
+#
+# OMAP Core Type
+#
+CONFIG_SOC_OMAP2420=y
+CONFIG_SOC_OMAP2430=y
+CONFIG_SOC_OMAP3430=y
+CONFIG_SOC_OMAPTI816X=y
+CONFIG_OMAP_PACKAGE_ZAF=y
+CONFIG_OMAP_PACKAGE_ZAC=y
+CONFIG_OMAP_PACKAGE_CBB=y
+CONFIG_OMAP_PACKAGE_CUS=y
+CONFIG_OMAP_PACKAGE_CBP=y
+CONFIG_OMAP_PACKAGE_CBL=y
+CONFIG_OMAP_PACKAGE_CBS=y
+
+#
+# OMAP Board Type
+#
+CONFIG_MACH_OMAP_H4=y
+CONFIG_MACH_OMAP_APOLLON=y
+CONFIG_MACH_OMAP_2430SDP=y
+CONFIG_MACH_OMAP3_BEAGLE=y
+CONFIG_MACH_DEVKIT8000=y
+CONFIG_MACH_OMAP_LDP=y
+CONFIG_MACH_OMAP3530_LV_SOM=y
+CONFIG_MACH_OMAP3_TORPEDO=y
+CONFIG_MACH_OVERO=y
+CONFIG_MACH_OMAP3EVM=y
+CONFIG_MACH_OMAP3517EVM=y
+# CONFIG_MACH_CRANEBOARD is not set
+CONFIG_MACH_OMAP3_PANDORA=y
+CONFIG_MACH_OMAP3_TOUCHBOOK=y
+CONFIG_MACH_OMAP_3430SDP=y
+# CONFIG_MACH_NOKIA_N8X0 is not set
+CONFIG_MACH_NOKIA_RM680=y
+CONFIG_MACH_NOKIA_RX51=y
+CONFIG_MACH_OMAP_ZOOM2=y
+CONFIG_MACH_OMAP_ZOOM3=y
+CONFIG_MACH_CM_T35=y
+CONFIG_MACH_CM_T3517=y
+CONFIG_MACH_CM_T3730=y
+CONFIG_MACH_IGEP0020=y
+CONFIG_MACH_IGEP0030=y
+CONFIG_MACH_SBC3530=y
+CONFIG_MACH_OMAP_3630SDP=y
+CONFIG_MACH_TI8168EVM=y
+CONFIG_MACH_OMAP_4430SDP=y
+CONFIG_MACH_OMAP4_PANDA=y
+# CONFIG_OMAP3_EMU is not set
+# CONFIG_OMAP3_SDRC_AC_TIMING is not set
+
+#
+# System MMU
+#
+
+#
+# Processor Type
+#
+CONFIG_CPU_V6=y
+CONFIG_CPU_V7=y
+CONFIG_CPU_32v6=y
+CONFIG_CPU_32v6K=y
+CONFIG_CPU_32v7=y
+CONFIG_CPU_ABRT_EV6=y
+CONFIG_CPU_ABRT_EV7=y
+CONFIG_CPU_PABRT_V6=y
+CONFIG_CPU_PABRT_V7=y
+CONFIG_CPU_CACHE_V6=y
+CONFIG_CPU_CACHE_V7=y
+CONFIG_CPU_CACHE_VIPT=y
+CONFIG_CPU_COPY_V6=y
+CONFIG_CPU_TLB_V6=y
+CONFIG_CPU_TLB_V7=y
+CONFIG_CPU_HAS_ASID=y
+CONFIG_CPU_CP15=y
+CONFIG_CPU_CP15_MMU=y
+CONFIG_CPU_USE_DOMAINS=y
+
+#
+# Processor Features
+#
+CONFIG_ARM_THUMB=y
+# CONFIG_ARM_THUMBEE is not set
+# CONFIG_CPU_ICACHE_DISABLE is not set
+# CONFIG_CPU_DCACHE_DISABLE is not set
+# CONFIG_CPU_BPREDICT_DISABLE is not set
+CONFIG_OUTER_CACHE=y
+CONFIG_OUTER_CACHE_SYNC=y
+CONFIG_CACHE_L2X0=y
+CONFIG_ARM_L1_CACHE_SHIFT=5
+CONFIG_ARM_DMA_MEM_BUFFERABLE=y
+# CONFIG_ARM_ERRATA_326103 is not set
+CONFIG_ARM_ERRATA_411920=y
+CONFIG_ARM_ERRATA_430973=y
+CONFIG_ARM_ERRATA_458693=y
+CONFIG_ARM_ERRATA_460075=y
+# CONFIG_ARM_ERRATA_742230 is not set
+CONFIG_ARM_ERRATA_742231=y
+CONFIG_PL310_ERRATA_588369=y
+CONFIG_ARM_ERRATA_720789=y
+CONFIG_PL310_ERRATA_727915=y
+CONFIG_ARM_ERRATA_743622=y
+# CONFIG_ARM_ERRATA_751472 is not set
+CONFIG_ARM_ERRATA_754322=y
+CONFIG_ARM_ERRATA_754327=y
+CONFIG_ARM_ERRATA_764369=y
+CONFIG_PL310_ERRATA_769419=y
+CONFIG_ARM_GIC=y
+
+#
+# Bus support
+#
+# CONFIG_PCI_SYSCALL is not set
+# CONFIG_ARCH_SUPPORTS_MSI is not set
+# CONFIG_PCCARD is not set
+
+#
+# Kernel Features
+#
+CONFIG_TICK_ONESHOT=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+CONFIG_SMP=y
+CONFIG_SMP_ON_UP=y
+CONFIG_ARM_CPU_TOPOLOGY=y
+CONFIG_SCHED_MC=y
+CONFIG_SCHED_SMT=y
+CONFIG_HAVE_ARM_SCU=y
+CONFIG_HAVE_ARM_TWD=y
+CONFIG_VMSPLIT_3G=y
+# CONFIG_VMSPLIT_2G is not set
+# CONFIG_VMSPLIT_1G is not set
+CONFIG_PAGE_OFFSET=0xC0000000
+CONFIG_NR_CPUS=8
+CONFIG_HOTPLUG_CPU=y
+CONFIG_LOCAL_TIMERS=y
+CONFIG_PREEMPT_NONE=y
+# CONFIG_PREEMPT_VOLUNTARY is not set
+# CONFIG_PREEMPT is not set
+CONFIG_HZ=128
+CONFIG_AEABI=y
+# CONFIG_OABI_COMPAT is not set
+CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y
+# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
+# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
+CONFIG_HAVE_ARCH_PFN_VALID=y
+CONFIG_HIGHMEM=y
+CONFIG_HIGHPTE=y
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_FLATMEM_MANUAL=y
+CONFIG_FLATMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+CONFIG_HAVE_MEMBLOCK=y
+CONFIG_PAGEFLAGS_EXTENDED=y
+CONFIG_SPLIT_PTLOCK_CPUS=4
+# CONFIG_COMPACTION is not set
+# CONFIG_PHYS_ADDR_T_64BIT is not set
+CONFIG_ZONE_DMA_FLAG=0
+CONFIG_BOUNCE=y
+CONFIG_VIRT_TO_BUS=y
+CONFIG_KSM=y
+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+# CONFIG_CLEANCACHE is not set
+CONFIG_FORCE_MAX_ZONEORDER=11
+# CONFIG_LEDS is not set
+CONFIG_ALIGNMENT_TRAP=y
+CONFIG_UACCESS_WITH_MEMCPY=y
+CONFIG_SECCOMP=y
+CONFIG_CC_STACKPROTECTOR=y
+# CONFIG_DEPRECATED_PARAM_STRUCT is not set
+
+#
+# Boot options
+#
+CONFIG_USE_OF=y
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZBOOT_ROM_BSS=0x0
+# CONFIG_ARM_APPENDED_DTB is not set
+CONFIG_CMDLINE=""
+# CONFIG_XIP_KERNEL is not set
+# CONFIG_KEXEC is not set
+# CONFIG_CRASH_DUMP is not set
+# CONFIG_AUTO_ZRELADDR is not set
+
+#
+# CPU Power Management
+#
+
+#
+# CPU Frequency scaling
+#
+# CONFIG_CPU_FREQ is not set
+CONFIG_CPU_IDLE=y
+CONFIG_CPU_IDLE_GOV_LADDER=y
+CONFIG_CPU_IDLE_GOV_MENU=y
+
+#
+# Floating point emulation
+#
+
+#
+# At least one emulation must be selected
+#
+CONFIG_VFP=y
+CONFIG_VFPv3=y
+CONFIG_NEON=y
+
+#
+# Userspace binary formats
+#
+CONFIG_BINFMT_ELF=y
+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
+CONFIG_HAVE_AOUT=y
+# CONFIG_BINFMT_AOUT is not set
+# CONFIG_BINFMT_MISC is not set
+
+#
+# Power management options
+#
+CONFIG_SUSPEND=y
+CONFIG_SUSPEND_FREEZER=y
+CONFIG_PM_SLEEP=y
+CONFIG_PM_SLEEP_SMP=y
+CONFIG_PM_RUNTIME=y
+CONFIG_PM=y
+# CONFIG_PM_DEBUG is not set
+# CONFIG_APM_EMULATION is not set
+CONFIG_ARCH_HAS_OPP=y
+CONFIG_PM_OPP=y
+CONFIG_PM_CLK=y
+CONFIG_CPU_PM=y
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+CONFIG_ARM_CPU_SUSPEND=y
+CONFIG_NET=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_XFRM=y
+CONFIG_XFRM_USER=m
+# CONFIG_XFRM_SUB_POLICY is not set
+CONFIG_XFRM_MIGRATE=y
+CONFIG_XFRM_STATISTICS=y
+CONFIG_XFRM_IPCOMP=m
+CONFIG_NET_KEY=m
+CONFIG_NET_KEY_MIGRATE=y
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+CONFIG_IP_ADVANCED_ROUTER=y
+# CONFIG_IP_FIB_TRIE_STATS is not set
+CONFIG_IP_MULTIPLE_TABLES=y
+CONFIG_IP_ROUTE_MULTIPATH=y
+CONFIG_IP_ROUTE_VERBOSE=y
+CONFIG_IP_ROUTE_CLASSID=y
+# CONFIG_IP_PNP is not set
+CONFIG_NET_IPIP=m
+CONFIG_NET_IPGRE_DEMUX=m
+CONFIG_NET_IPGRE=m
+CONFIG_NET_IPGRE_BROADCAST=y
+CONFIG_IP_MROUTE=y
+# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set
+CONFIG_IP_PIMSM_V1=y
+CONFIG_IP_PIMSM_V2=y
+CONFIG_ARPD=y
+CONFIG_SYN_COOKIES=y
+CONFIG_INET_AH=m
+CONFIG_INET_ESP=m
+CONFIG_INET_IPCOMP=m
+CONFIG_INET_XFRM_TUNNEL=m
+CONFIG_INET_TUNNEL=m
+CONFIG_INET_XFRM_MODE_TRANSPORT=y
+CONFIG_INET_XFRM_MODE_TUNNEL=y
+CONFIG_INET_XFRM_MODE_BEET=y
+CONFIG_INET_LRO=y
+CONFIG_INET_DIAG=m
+CONFIG_INET_TCP_DIAG=m
+CONFIG_TCP_CONG_ADVANCED=y
+CONFIG_TCP_CONG_BIC=m
+CONFIG_TCP_CONG_CUBIC=m
+CONFIG_TCP_CONG_WESTWOOD=m
+CONFIG_TCP_CONG_HTCP=m
+CONFIG_TCP_CONG_HSTCP=m
+CONFIG_TCP_CONG_HYBLA=m
+CONFIG_TCP_CONG_VEGAS=m
+CONFIG_TCP_CONG_SCALABLE=m
+CONFIG_TCP_CONG_LP=m
+CONFIG_TCP_CONG_VENO=m
+CONFIG_TCP_CONG_YEAH=m
+CONFIG_TCP_CONG_ILLINOIS=m
+CONFIG_DEFAULT_RENO=y
+CONFIG_DEFAULT_TCP_CONG="reno"
+# CONFIG_TCP_MD5SIG is not set
+CONFIG_IPV6=y
+# CONFIG_IPV6_PRIVACY is not set
+# CONFIG_IPV6_ROUTER_PREF is not set
+# CONFIG_IPV6_OPTIMISTIC_DAD is not set
+CONFIG_INET6_AH=m
+CONFIG_INET6_ESP=m
+CONFIG_INET6_IPCOMP=m
+CONFIG_IPV6_MIP6=m
+CONFIG_INET6_XFRM_TUNNEL=m
+CONFIG_INET6_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_TRANSPORT=m
+CONFIG_INET6_XFRM_MODE_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_BEET=m
+CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
+CONFIG_IPV6_SIT=m
+# CONFIG_IPV6_SIT_6RD is not set
+CONFIG_IPV6_NDISC_NODETYPE=y
+CONFIG_IPV6_TUNNEL=m
+CONFIG_IPV6_MULTIPLE_TABLES=y
+# CONFIG_IPV6_SUBTREES is not set
+# CONFIG_IPV6_MROUTE is not set
+# CONFIG_NETWORK_SECMARK is not set
+CONFIG_NETWORK_PHY_TIMESTAMPING=y
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+CONFIG_NETFILTER_ADVANCED=y
+CONFIG_BRIDGE_NETFILTER=y
+
+#
+# Core Netfilter Configuration
+#
+CONFIG_NETFILTER_NETLINK=m
+CONFIG_NETFILTER_NETLINK_QUEUE=m
+CONFIG_NETFILTER_NETLINK_LOG=m
+CONFIG_NF_CONNTRACK=m
+CONFIG_NF_CONNTRACK_MARK=y
+# CONFIG_NF_CONNTRACK_ZONES is not set
+CONFIG_NF_CONNTRACK_EVENTS=y
+CONFIG_NF_CONNTRACK_TIMESTAMP=y
+CONFIG_NF_CT_PROTO_DCCP=m
+CONFIG_NF_CT_PROTO_GRE=m
+CONFIG_NF_CT_PROTO_SCTP=m
+CONFIG_NF_CT_PROTO_UDPLITE=m
+CONFIG_NF_CONNTRACK_AMANDA=m
+CONFIG_NF_CONNTRACK_FTP=m
+CONFIG_NF_CONNTRACK_H323=m
+CONFIG_NF_CONNTRACK_IRC=m
+CONFIG_NF_CONNTRACK_BROADCAST=m
+CONFIG_NF_CONNTRACK_NETBIOS_NS=m
+CONFIG_NF_CONNTRACK_SNMP=m
+CONFIG_NF_CONNTRACK_PPTP=m
+CONFIG_NF_CONNTRACK_SANE=m
+CONFIG_NF_CONNTRACK_SIP=m
+CONFIG_NF_CONNTRACK_TFTP=m
+CONFIG_NF_CT_NETLINK=m
+CONFIG_NETFILTER_TPROXY=m
+CONFIG_NETFILTER_XTABLES=m
+
+#
+# Xtables combined modules
+#
+CONFIG_NETFILTER_XT_MARK=m
+CONFIG_NETFILTER_XT_CONNMARK=m
+
+#
+# Xtables targets
+#
+CONFIG_NETFILTER_XT_TARGET_AUDIT=m
+CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
+CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
+CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
+CONFIG_NETFILTER_XT_TARGET_CT=m
+CONFIG_NETFILTER_XT_TARGET_DSCP=m
+CONFIG_NETFILTER_XT_TARGET_HL=m
+CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
+CONFIG_NETFILTER_XT_TARGET_LED=m
+CONFIG_NETFILTER_XT_TARGET_IMQ=m
+CONFIG_NETFILTER_XT_TARGET_MARK=m
+CONFIG_NETFILTER_XT_TARGET_NFLOG=m
+CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
+CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
+CONFIG_NETFILTER_XT_TARGET_RATEEST=m
+CONFIG_NETFILTER_XT_TARGET_TEE=m
+CONFIG_NETFILTER_XT_TARGET_TPROXY=m
+CONFIG_NETFILTER_XT_TARGET_TRACE=m
+CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
+CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
+
+#
+# Xtables matches
+#
+CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
+CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
+CONFIG_NETFILTER_XT_MATCH_COMMENT=m
+CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
+CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
+CONFIG_NETFILTER_XT_MATCH_CPU=m
+CONFIG_NETFILTER_XT_MATCH_DCCP=m
+CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
+CONFIG_NETFILTER_XT_MATCH_DSCP=m
+CONFIG_NETFILTER_XT_MATCH_ESP=m
+CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_HELPER=m
+CONFIG_NETFILTER_XT_MATCH_HL=m
+CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
+CONFIG_NETFILTER_XT_MATCH_IPVS=m
+CONFIG_NETFILTER_XT_MATCH_LENGTH=m
+CONFIG_NETFILTER_XT_MATCH_LIMIT=m
+CONFIG_NETFILTER_XT_MATCH_MAC=m
+CONFIG_NETFILTER_XT_MATCH_MARK=m
+CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
+CONFIG_NETFILTER_XT_MATCH_OSF=m
+CONFIG_NETFILTER_XT_MATCH_OWNER=m
+CONFIG_NETFILTER_XT_MATCH_POLICY=m
+CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
+CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
+CONFIG_NETFILTER_XT_MATCH_QUOTA=m
+CONFIG_NETFILTER_XT_MATCH_RATEEST=m
+CONFIG_NETFILTER_XT_MATCH_REALM=m
+CONFIG_NETFILTER_XT_MATCH_RECENT=m
+CONFIG_NETFILTER_XT_MATCH_SCTP=m
+CONFIG_NETFILTER_XT_MATCH_SOCKET=m
+CONFIG_NETFILTER_XT_MATCH_STATE=m
+CONFIG_NETFILTER_XT_MATCH_LAYER7=m
+# CONFIG_NETFILTER_XT_MATCH_LAYER7_DEBUG is not set
+CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
+CONFIG_NETFILTER_XT_MATCH_STRING=m
+CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
+CONFIG_NETFILTER_XT_MATCH_TIME=m
+CONFIG_NETFILTER_XT_MATCH_U32=m
+# CONFIG_IP_SET is not set
+CONFIG_IP_VS=m
+CONFIG_IP_VS_IPV6=y
+# CONFIG_IP_VS_DEBUG is not set
+CONFIG_IP_VS_TAB_BITS=12
+
+#
+# IPVS transport protocol load balancing support
+#
+# CONFIG_IP_VS_PROTO_TCP is not set
+# CONFIG_IP_VS_PROTO_UDP is not set
+# CONFIG_IP_VS_PROTO_AH_ESP is not set
+# CONFIG_IP_VS_PROTO_ESP is not set
+# CONFIG_IP_VS_PROTO_AH is not set
+# CONFIG_IP_VS_PROTO_SCTP is not set
+
+#
+# IPVS scheduler
+#
+# CONFIG_IP_VS_RR is not set
+# CONFIG_IP_VS_WRR is not set
+# CONFIG_IP_VS_LC is not set
+# CONFIG_IP_VS_WLC is not set
+# CONFIG_IP_VS_LBLC is not set
+# CONFIG_IP_VS_LBLCR is not set
+# CONFIG_IP_VS_DH is not set
+# CONFIG_IP_VS_SH is not set
+# CONFIG_IP_VS_SED is not set
+# CONFIG_IP_VS_NQ is not set
+
+#
+# IPVS application helper
+#
+# CONFIG_IP_VS_NFCT is not set
+
+#
+# IP: Netfilter Configuration
+#
+CONFIG_NF_DEFRAG_IPV4=m
+CONFIG_NF_CONNTRACK_IPV4=m
+CONFIG_NF_CONNTRACK_PROC_COMPAT=y
+CONFIG_IP_NF_QUEUE=m
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_MATCH_AH=m
+CONFIG_IP_NF_MATCH_ECN=m
+CONFIG_IP_NF_MATCH_TTL=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_TARGET_LOG=m
+CONFIG_IP_NF_TARGET_ULOG=m
+CONFIG_NF_NAT=m
+CONFIG_NF_NAT_NEEDED=y
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_TARGET_NETMAP=m
+CONFIG_IP_NF_TARGET_REDIRECT=m
+CONFIG_NF_NAT_SNMP_BASIC=m
+CONFIG_NF_NAT_PROTO_DCCP=m
+CONFIG_NF_NAT_PROTO_GRE=m
+CONFIG_NF_NAT_PROTO_UDPLITE=m
+CONFIG_NF_NAT_PROTO_SCTP=m
+CONFIG_NF_NAT_FTP=m
+CONFIG_NF_NAT_IRC=m
+CONFIG_NF_NAT_TFTP=m
+CONFIG_NF_NAT_AMANDA=m
+CONFIG_NF_NAT_PPTP=m
+CONFIG_NF_NAT_H323=m
+CONFIG_NF_NAT_SIP=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_IP_NF_TARGET_CLUSTERIP=m
+CONFIG_IP_NF_TARGET_ECN=m
+CONFIG_IP_NF_TARGET_TTL=m
+CONFIG_IP_NF_RAW=m
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARP_MANGLE=m
+CONFIG_IP_NF_MATCH_IPP2P=m
+
+#
+# IPv6: Netfilter Configuration
+#
+CONFIG_NF_DEFRAG_IPV6=m
+CONFIG_NF_CONNTRACK_IPV6=m
+CONFIG_IP6_NF_QUEUE=m
+CONFIG_IP6_NF_IPTABLES=m
+CONFIG_IP6_NF_MATCH_AH=m
+CONFIG_IP6_NF_MATCH_EUI64=m
+CONFIG_IP6_NF_MATCH_FRAG=m
+CONFIG_IP6_NF_MATCH_OPTS=m
+CONFIG_IP6_NF_MATCH_HL=m
+CONFIG_IP6_NF_MATCH_IPV6HEADER=m
+CONFIG_IP6_NF_MATCH_MH=m
+CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_TARGET_HL=m
+CONFIG_IP6_NF_TARGET_LOG=m
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_TARGET_REJECT=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_RAW=m
+CONFIG_BRIDGE_NF_EBTABLES=m
+CONFIG_BRIDGE_EBT_BROUTE=m
+CONFIG_BRIDGE_EBT_T_FILTER=m
+CONFIG_BRIDGE_EBT_T_NAT=m
+CONFIG_BRIDGE_EBT_802_3=m
+CONFIG_BRIDGE_EBT_AMONG=m
+CONFIG_BRIDGE_EBT_ARP=m
+CONFIG_BRIDGE_EBT_IP=m
+CONFIG_BRIDGE_EBT_IP6=m
+CONFIG_BRIDGE_EBT_LIMIT=m
+CONFIG_BRIDGE_EBT_MARK=m
+CONFIG_BRIDGE_EBT_PKTTYPE=m
+CONFIG_BRIDGE_EBT_STP=m
+CONFIG_BRIDGE_EBT_VLAN=m
+CONFIG_BRIDGE_EBT_ARPREPLY=m
+CONFIG_BRIDGE_EBT_DNAT=m
+CONFIG_BRIDGE_EBT_MARK_T=m
+CONFIG_BRIDGE_EBT_REDIRECT=m
+CONFIG_BRIDGE_EBT_SNAT=m
+CONFIG_BRIDGE_EBT_LOG=m
+CONFIG_BRIDGE_EBT_ULOG=m
+CONFIG_BRIDGE_EBT_NFLOG=m
+# CONFIG_IP_DCCP is not set
+# CONFIG_IP_SCTP is not set
+# CONFIG_RDS is not set
+# CONFIG_TIPC is not set
+CONFIG_ATM=m
+CONFIG_ATM_CLIP=m
+CONFIG_ATM_CLIP_NO_ICMP=y
+# CONFIG_ATM_LANE is not set
+CONFIG_ATM_BR2684=m
+# CONFIG_ATM_BR2684_IPFILTER is not set
+CONFIG_L2TP=m
+CONFIG_L2TP_V3=y
+CONFIG_L2TP_IP=m
+CONFIG_L2TP_ETH=m
+CONFIG_STP=m
+CONFIG_GARP=m
+CONFIG_BRIDGE=m
+CONFIG_BRIDGE_IGMP_SNOOPING=y
+CONFIG_NET_DSA=y
+CONFIG_NET_DSA_TAG_DSA=y
+CONFIG_NET_DSA_TAG_EDSA=y
+CONFIG_NET_DSA_TAG_TRAILER=y
+CONFIG_NET_DSA_MV88E6XXX=y
+CONFIG_NET_DSA_MV88E6060=y
+CONFIG_NET_DSA_MV88E6XXX_NEED_PPU=y
+CONFIG_NET_DSA_MV88E6131=y
+CONFIG_NET_DSA_MV88E6123_61_65=y
+CONFIG_VLAN_8021Q=m
+CONFIG_VLAN_8021Q_GVRP=y
+# CONFIG_DECNET is not set
+CONFIG_LLC=m
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+# CONFIG_PHONET is not set
+CONFIG_IEEE802154=m
+CONFIG_IEEE802154_6LOWPAN=m
+CONFIG_NET_SCHED=y
+
+#
+# Queueing/Scheduling
+#
+CONFIG_NET_SCH_CBQ=m
+CONFIG_NET_SCH_HTB=m
+CONFIG_NET_SCH_HFSC=m
+CONFIG_NET_SCH_ATM=m
+CONFIG_NET_SCH_PRIO=m
+CONFIG_NET_SCH_MULTIQ=m
+CONFIG_NET_SCH_RED=m
+CONFIG_NET_SCH_SFB=m
+CONFIG_NET_SCH_SFQ=m
+CONFIG_NET_SCH_TEQL=m
+CONFIG_NET_SCH_TBF=m
+CONFIG_NET_SCH_GRED=m
+CONFIG_NET_SCH_DSMARK=m
+CONFIG_NET_SCH_NETEM=m
+CONFIG_NET_SCH_DRR=m
+CONFIG_NET_SCH_MQPRIO=m
+CONFIG_NET_SCH_CHOKE=m
+CONFIG_NET_SCH_QFQ=m
+CONFIG_NET_SCH_INGRESS=m
+
+#
+# Classification
+#
+CONFIG_NET_CLS=y
+CONFIG_NET_CLS_BASIC=m
+CONFIG_NET_CLS_TCINDEX=m
+CONFIG_NET_CLS_ROUTE4=m
+CONFIG_NET_CLS_FW=m
+CONFIG_NET_CLS_U32=m
+CONFIG_CLS_U32_PERF=y
+CONFIG_CLS_U32_MARK=y
+CONFIG_NET_CLS_RSVP=m
+CONFIG_NET_CLS_RSVP6=m
+CONFIG_NET_CLS_FLOW=m
+CONFIG_NET_EMATCH=y
+CONFIG_NET_EMATCH_STACK=32
+CONFIG_NET_EMATCH_CMP=m
+CONFIG_NET_EMATCH_NBYTE=m
+CONFIG_NET_EMATCH_U32=m
+CONFIG_NET_EMATCH_META=m
+CONFIG_NET_EMATCH_TEXT=m
+CONFIG_NET_CLS_ACT=y
+CONFIG_NET_ACT_POLICE=m
+CONFIG_NET_ACT_GACT=m
+CONFIG_GACT_PROB=y
+CONFIG_NET_ACT_MIRRED=m
+CONFIG_NET_ACT_IPT=m
+CONFIG_NET_ACT_NAT=m
+CONFIG_NET_ACT_PEDIT=m
+CONFIG_NET_ACT_SIMP=m
+CONFIG_NET_ACT_SKBEDIT=m
+CONFIG_NET_ACT_CSUM=m
+CONFIG_NET_CLS_IND=y
+CONFIG_NET_SCH_FIFO=y
+# CONFIG_DCB is not set
+CONFIG_DNS_RESOLVER=y
+CONFIG_BATMAN_ADV=m
+# CONFIG_BATMAN_ADV_DEBUG is not set
+CONFIG_RPS=y
+CONFIG_RFS_ACCEL=y
+CONFIG_XPS=y
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# CONFIG_HAMRADIO is not set
+# CONFIG_CAN is not set
+CONFIG_IRDA=m
+
+#
+# IrDA protocols
+#
+CONFIG_IRLAN=m
+CONFIG_IRNET=m
+CONFIG_IRCOMM=m
+# CONFIG_IRDA_ULTRA is not set
+
+#
+# IrDA options
+#
+# CONFIG_IRDA_CACHE_LAST_LSAP is not set
+# CONFIG_IRDA_FAST_RR is not set
+# CONFIG_IRDA_DEBUG is not set
+
+#
+# Infrared-port device drivers
+#
+
+#
+# SIR device drivers
+#
+CONFIG_IRTTY_SIR=m
+
+#
+# Dongle support
+#
+# CONFIG_DONGLE is not set
+CONFIG_KINGSUN_DONGLE=m
+CONFIG_KSDAZZLE_DONGLE=m
+CONFIG_KS959_DONGLE=m
+
+#
+# FIR device drivers
+#
+CONFIG_USB_IRDA=m
+CONFIG_SIGMATEL_FIR=m
+CONFIG_MCS_FIR=m
+CONFIG_BT=m
+CONFIG_BT_L2CAP=y
+CONFIG_BT_SCO=y
+CONFIG_BT_RFCOMM=m
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_BNEP=m
+CONFIG_BT_BNEP_MC_FILTER=y
+CONFIG_BT_BNEP_PROTO_FILTER=y
+CONFIG_BT_CMTP=m
+CONFIG_BT_HIDP=m
+
+#
+# Bluetooth device drivers
+#
+CONFIG_BT_HCIBTUSB=m
+CONFIG_BT_HCIBTSDIO=m
+CONFIG_BT_HCIUART=m
+CONFIG_BT_HCIUART_H4=y
+CONFIG_BT_HCIUART_BCSP=y
+CONFIG_BT_HCIUART_ATH3K=y
+CONFIG_BT_HCIUART_LL=y
+CONFIG_BT_HCIBCM203X=m
+CONFIG_BT_HCIBPA10X=m
+CONFIG_BT_HCIBFUSB=m
+CONFIG_BT_HCIVHCI=m
+CONFIG_BT_MRVL=m
+CONFIG_BT_MRVL_SDIO=m
+CONFIG_BT_ATH3K=m
+CONFIG_BT_WILINK=m
+CONFIG_AF_RXRPC=m
+# CONFIG_AF_RXRPC_DEBUG is not set
+CONFIG_RXKAD=m
+CONFIG_FIB_RULES=y
+CONFIG_WIRELESS=y
+CONFIG_WIRELESS_EXT=y
+CONFIG_WEXT_CORE=y
+CONFIG_WEXT_PROC=y
+CONFIG_WEXT_SPY=y
+CONFIG_WEXT_PRIV=y
+CONFIG_CFG80211=m
+# CONFIG_NL80211_TESTMODE is not set
+# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
+# CONFIG_CFG80211_REG_DEBUG is not set
+# CONFIG_CFG80211_DEFAULT_PS is not set
+# CONFIG_CFG80211_INTERNAL_REGDB is not set
+CONFIG_CFG80211_WEXT=y
+CONFIG_WIRELESS_EXT_SYSFS=y
+CONFIG_LIB80211=m
+CONFIG_LIB80211_CRYPT_WEP=m
+CONFIG_LIB80211_CRYPT_CCMP=m
+CONFIG_LIB80211_CRYPT_TKIP=m
+# CONFIG_LIB80211_DEBUG is not set
+CONFIG_MAC80211=m
+CONFIG_MAC80211_HAS_RC=y
+# CONFIG_MAC80211_RC_PID is not set
+CONFIG_MAC80211_RC_MINSTREL=y
+CONFIG_MAC80211_RC_MINSTREL_HT=y
+CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
+CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
+CONFIG_MAC80211_MESH=y
+CONFIG_MAC80211_LEDS=y
+# CONFIG_MAC80211_DEBUG_MENU is not set
+# CONFIG_WIMAX is not set
+CONFIG_RFKILL=m
+CONFIG_RFKILL_LEDS=y
+CONFIG_RFKILL_INPUT=y
+CONFIG_RFKILL_REGULATOR=m
+CONFIG_RFKILL_GPIO=m
+# CONFIG_NET_9P is not set
+# CONFIG_CAIF is not set
+CONFIG_CEPH_LIB=m
+# CONFIG_CEPH_LIB_PRETTYDEBUG is not set
+# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set
+# CONFIG_NFC is not set
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+# CONFIG_DEVTMPFS is not set
+# CONFIG_STANDALONE is not set
+# CONFIG_PREVENT_FIRMWARE_BUILD is not set
+CONFIG_FW_LOADER=y
+# CONFIG_FIRMWARE_IN_KERNEL is not set
+CONFIG_EXTRA_FIRMWARE=""
+# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_DEBUG_DEVRES is not set
+# CONFIG_SYS_HYPERVISOR is not set
+CONFIG_REGMAP=y
+CONFIG_REGMAP_I2C=m
+CONFIG_CONNECTOR=m
+CONFIG_MTD=m
+CONFIG_MTD_TESTS=m
+# CONFIG_MTD_REDBOOT_PARTS is not set
+# CONFIG_MTD_AFS_PARTS is not set
+CONFIG_MTD_OF_PARTS=m
+CONFIG_MTD_AR7_PARTS=m
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_CHAR=m
+CONFIG_MTD_BLKDEVS=m
+CONFIG_MTD_BLOCK=m
+# CONFIG_MTD_BLOCK_RO is not set
+# CONFIG_FTL is not set
+# CONFIG_NFTL is not set
+# CONFIG_INFTL is not set
+# CONFIG_RFD_FTL is not set
+# CONFIG_SSFDC is not set
+CONFIG_SM_FTL=m
+# CONFIG_MTD_OOPS is not set
+# CONFIG_MTD_SWAP is not set
+
+#
+# RAM/ROM/Flash chip drivers
+#
+# CONFIG_MTD_CFI is not set
+# CONFIG_MTD_JEDECPROBE is not set
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+# CONFIG_MTD_CFI_I4 is not set
+# CONFIG_MTD_CFI_I8 is not set
+# CONFIG_MTD_RAM is not set
+# CONFIG_MTD_ROM is not set
+# CONFIG_MTD_ABSENT is not set
+
+#
+# Mapping drivers for chip access
+#
+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
+CONFIG_MTD_PHYSMAP=m
+# CONFIG_MTD_PHYSMAP_COMPAT is not set
+# CONFIG_MTD_PLATRAM is not set
+
+#
+# Self-contained MTD device drivers
+#
+# CONFIG_MTD_SLRAM is not set
+# CONFIG_MTD_PHRAM is not set
+# CONFIG_MTD_MTDRAM is not set
+# CONFIG_MTD_BLOCK2MTD is not set
+
+#
+# Disk-On-Chip Device Drivers
+#
+# CONFIG_MTD_DOC2000 is not set
+# CONFIG_MTD_DOC2001 is not set
+# CONFIG_MTD_DOC2001PLUS is not set
+# CONFIG_MTD_DOCG3 is not set
+CONFIG_MTD_NAND_ECC=m
+# CONFIG_MTD_NAND_ECC_SMC is not set
+# CONFIG_MTD_NAND is not set
+# CONFIG_MTD_ONENAND is not set
+
+#
+# LPDDR flash memory drivers
+#
+CONFIG_MTD_LPDDR=m
+CONFIG_MTD_QINFO_PROBE=m
+CONFIG_MTD_UBI=m
+CONFIG_MTD_UBI_WL_THRESHOLD=4096
+CONFIG_MTD_UBI_BEB_RESERVE=1
+# CONFIG_MTD_UBI_GLUEBI is not set
+# CONFIG_MTD_UBI_DEBUG is not set
+CONFIG_DTC=y
+CONFIG_OF=y
+
+#
+# Device Tree and Open Firmware support
+#
+CONFIG_PROC_DEVICETREE=y
+CONFIG_OF_FLATTREE=y
+CONFIG_OF_EARLY_FLATTREE=y
+CONFIG_OF_ADDRESS=y
+CONFIG_OF_IRQ=y
+CONFIG_OF_DEVICE=y
+CONFIG_OF_GPIO=y
+CONFIG_OF_I2C=y
+CONFIG_OF_NET=y
+CONFIG_OF_MDIO=y
+CONFIG_PARPORT=m
+# CONFIG_PARPORT_PC is not set
+# CONFIG_PARPORT_GSC is not set
+CONFIG_PARPORT_AX88796=m
+CONFIG_PARPORT_1284=y
+CONFIG_PARPORT_NOT_PC=y
+CONFIG_BLK_DEV=y
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
+CONFIG_BLK_DEV_CRYPTOLOOP=m
+# CONFIG_BLK_DEV_DRBD is not set
+CONFIG_BLK_DEV_NBD=m
+CONFIG_BLK_DEV_OSD=m
+# CONFIG_BLK_DEV_UB is not set
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_COUNT=8
+CONFIG_BLK_DEV_RAM_SIZE=16384
+# CONFIG_BLK_DEV_XIP is not set
+# CONFIG_CDROM_PKTCDVD is not set
+CONFIG_ATA_OVER_ETH=m
+CONFIG_MG_DISK=m
+CONFIG_MG_DISK_RES=0
+CONFIG_BLK_DEV_RBD=m
+CONFIG_SENSORS_LIS3LV02D=m
+CONFIG_MISC_DEVICES=y
+# CONFIG_AD525X_DPOT is not set
+# CONFIG_ATMEL_PWM is not set
+CONFIG_ICS932S401=m
+CONFIG_ENCLOSURE_SERVICES=m
+CONFIG_APDS9802ALS=m
+CONFIG_ISL29003=m
+CONFIG_ISL29020=m
+CONFIG_SENSORS_TSL2550=m
+CONFIG_SENSORS_BH1780=m
+CONFIG_SENSORS_BH1770=m
+CONFIG_SENSORS_APDS990X=m
+CONFIG_HMC6352=m
+CONFIG_DS1682=m
+CONFIG_BMP085=m
+CONFIG_USB_SWITCH_FSA9480=m
+CONFIG_C2PORT=m
+
+#
+# EEPROM support
+#
+CONFIG_EEPROM_AT24=m
+CONFIG_EEPROM_LEGACY=m
+CONFIG_EEPROM_MAX6875=m
+CONFIG_EEPROM_93CX6=m
+CONFIG_IWMC3200TOP=m
+# CONFIG_IWMC3200TOP_DEBUG is not set
+# CONFIG_IWMC3200TOP_DEBUGFS is not set
+
+#
+# Texas Instruments shared transport line discipline
+#
+CONFIG_TI_ST=m
+CONFIG_SENSORS_LIS3_I2C=m
+
+#
+# Altera FPGA firmware download module
+#
+# CONFIG_ALTERA_STAPL is not set
+
+#
+# SCSI device support
+#
+CONFIG_SCSI_MOD=m
+CONFIG_RAID_ATTRS=m
+CONFIG_SCSI=m
+CONFIG_SCSI_DMA=y
+# CONFIG_SCSI_TGT is not set
+CONFIG_SCSI_NETLINK=y
+CONFIG_SCSI_PROC_FS=y
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=m
+# CONFIG_CHR_DEV_ST is not set
+# CONFIG_CHR_DEV_OSST is not set
+CONFIG_BLK_DEV_SR=m
+CONFIG_BLK_DEV_SR_VENDOR=y
+CONFIG_CHR_DEV_SG=m
+CONFIG_CHR_DEV_SCH=m
+CONFIG_SCSI_ENCLOSURE=m
+CONFIG_SCSI_MULTI_LUN=y
+# CONFIG_SCSI_CONSTANTS is not set
+# CONFIG_SCSI_LOGGING is not set
+# CONFIG_SCSI_SCAN_ASYNC is not set
+CONFIG_SCSI_WAIT_SCAN=m
+
+#
+# SCSI Transports
+#
+CONFIG_SCSI_SPI_ATTRS=m
+CONFIG_SCSI_FC_ATTRS=m
+CONFIG_SCSI_ISCSI_ATTRS=m
+CONFIG_SCSI_SAS_ATTRS=m
+CONFIG_SCSI_SAS_LIBSAS=m
+CONFIG_SCSI_SAS_ATA=y
+CONFIG_SCSI_SAS_HOST_SMP=y
+CONFIG_SCSI_SRP_ATTRS=m
+CONFIG_SCSI_LOWLEVEL=y
+CONFIG_ISCSI_TCP=m
+CONFIG_ISCSI_BOOT_SYSFS=m
+CONFIG_LIBFC=m
+CONFIG_LIBFCOE=m
+# CONFIG_SCSI_DEBUG is not set
+CONFIG_SCSI_DH=m
+CONFIG_SCSI_DH_RDAC=m
+CONFIG_SCSI_DH_HP_SW=m
+CONFIG_SCSI_DH_EMC=m
+CONFIG_SCSI_DH_ALUA=m
+CONFIG_SCSI_OSD_INITIATOR=m
+CONFIG_SCSI_OSD_ULD=m
+CONFIG_SCSI_OSD_DPRINT_SENSE=1
+# CONFIG_SCSI_OSD_DEBUG is not set
+CONFIG_ATA=m
+# CONFIG_ATA_NONSTANDARD is not set
+CONFIG_ATA_VERBOSE_ERROR=y
+CONFIG_SATA_PMP=y
+
+#
+# Controllers with non-SFF native interface
+#
+CONFIG_SATA_AHCI_PLATFORM=m
+CONFIG_ATA_SFF=y
+
+#
+# SFF controllers with custom DMA interface
+#
+CONFIG_ATA_BMDMA=y
+
+#
+# SATA SFF controllers with BMDMA
+#
+CONFIG_SATA_MV=m
+
+#
+# PATA SFF controllers with BMDMA
+#
+CONFIG_PATA_ARASAN_CF=m
+
+#
+# PIO-only SFF controllers
+#
+CONFIG_PATA_PLATFORM=m
+CONFIG_PATA_OF_PLATFORM=m
+
+#
+# Generic fallback / legacy drivers
+#
+CONFIG_MD=y
+CONFIG_BLK_DEV_MD=m
+CONFIG_MD_LINEAR=m
+CONFIG_MD_RAID0=m
+CONFIG_MD_RAID1=m
+CONFIG_MD_RAID10=m
+CONFIG_MD_RAID456=m
+# CONFIG_MULTICORE_RAID456 is not set
+CONFIG_MD_MULTIPATH=m
+# CONFIG_MD_FAULTY is not set
+CONFIG_BLK_DEV_DM=m
+# CONFIG_DM_DEBUG is not set
+CONFIG_DM_BUFIO=m
+CONFIG_DM_PERSISTENT_DATA=m
+CONFIG_DM_CRYPT=m
+CONFIG_DM_SNAPSHOT=m
+CONFIG_DM_THIN_PROVISIONING=m
+# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set
+# CONFIG_DM_DEBUG_SPACE_MAPS is not set
+CONFIG_DM_MIRROR=m
+CONFIG_DM_RAID=m
+CONFIG_DM_LOG_USERSPACE=m
+CONFIG_DM_ZERO=m
+CONFIG_DM_MULTIPATH=m
+CONFIG_DM_MULTIPATH_QL=m
+CONFIG_DM_MULTIPATH_ST=m
+CONFIG_DM_DELAY=m
+CONFIG_DM_UEVENT=y
+CONFIG_DM_FLAKEY=m
+# CONFIG_TARGET_CORE is not set
+CONFIG_NETDEVICES=y
+CONFIG_NET_CORE=y
+CONFIG_BONDING=m
+CONFIG_DUMMY=m
+CONFIG_EQUALIZER=m
+CONFIG_IMQ=m
+# CONFIG_IMQ_BEHAVIOR_AA is not set
+CONFIG_IMQ_BEHAVIOR_AB=y
+# CONFIG_IMQ_BEHAVIOR_BA is not set
+# CONFIG_IMQ_BEHAVIOR_BB is not set
+CONFIG_IMQ_NUM_DEVS=2
+CONFIG_MII=m
+CONFIG_IEEE802154_DRIVERS=m
+CONFIG_IEEE802154_FAKEHARD=m
+CONFIG_IFB=m
+CONFIG_MACVLAN=m
+CONFIG_MACVTAP=m
+# CONFIG_NETCONSOLE is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
+CONFIG_TUN=m
+CONFIG_VETH=m
+CONFIG_ATM_DRIVERS=y
+# CONFIG_ATM_DUMMY is not set
+CONFIG_ATM_TCP=m
+
+#
+# CAIF transport drivers
+#
+CONFIG_ETHERNET=y
+CONFIG_NET_VENDOR_BROADCOM=y
+CONFIG_B44=m
+CONFIG_NET_VENDOR_CHELSIO=y
+CONFIG_DM9000=m
+# CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL is not set
+CONFIG_DNET=m
+CONFIG_NET_VENDOR_DLINK=y
+CONFIG_DE600=m
+CONFIG_DE620=m
+CONFIG_NET_VENDOR_FARADAY=y
+# CONFIG_FTMAC100 is not set
+# CONFIG_FTGMAC100 is not set
+CONFIG_NET_VENDOR_INTEL=y
+CONFIG_NET_VENDOR_I825XX=y
+CONFIG_NET_VENDOR_MARVELL=y
+CONFIG_NET_VENDOR_MICREL=y
+CONFIG_KS8842=m
+CONFIG_KS8851_MLL=m
+CONFIG_NET_VENDOR_NATSEMI=y
+CONFIG_NET_VENDOR_8390=y
+CONFIG_AX88796=m
+CONFIG_AX88796_93CX6=y
+CONFIG_ETHOC=m
+CONFIG_NET_VENDOR_SEEQ=y
+CONFIG_SEEQ8005=m
+CONFIG_NET_VENDOR_SMSC=y
+CONFIG_SMC91X=m
+CONFIG_SMC911X=m
+CONFIG_SMSC911X=m
+# CONFIG_SMSC911X_ARCH_HOOKS is not set
+CONFIG_NET_VENDOR_STMICRO=y
+CONFIG_STMMAC_ETH=m
+# CONFIG_STMMAC_DA is not set
+CONFIG_STMMAC_RING=y
+# CONFIG_STMMAC_CHAINED is not set
+CONFIG_NET_VENDOR_TI=y
+# CONFIG_TI_DAVINCI_EMAC is not set
+# CONFIG_TI_DAVINCI_MDIO is not set
+# CONFIG_TI_DAVINCI_CPDMA is not set
+CONFIG_PHYLIB=y
+
+#
+# MII PHY device drivers
+#
+CONFIG_MARVELL_PHY=m
+CONFIG_DAVICOM_PHY=m
+CONFIG_QSEMI_PHY=m
+CONFIG_LXT_PHY=m
+CONFIG_CICADA_PHY=m
+CONFIG_VITESSE_PHY=m
+CONFIG_SMSC_PHY=m
+CONFIG_BROADCOM_PHY=m
+CONFIG_ICPLUS_PHY=m
+CONFIG_REALTEK_PHY=m
+CONFIG_NATIONAL_PHY=m
+CONFIG_STE10XP=m
+CONFIG_LSI_ET1011C_PHY=m
+CONFIG_MICREL_PHY=m
+# CONFIG_FIXED_PHY is not set
+CONFIG_MDIO_BITBANG=m
+CONFIG_MDIO_GPIO=m
+# CONFIG_PLIP is not set
+CONFIG_PPP=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_MPPE=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPPOATM=m
+CONFIG_PPPOE=m
+CONFIG_PPTP=m
+CONFIG_PPPOL2TP=m
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_SLIP=m
+CONFIG_SLHC=m
+CONFIG_SLIP_COMPRESSED=y
+CONFIG_SLIP_SMART=y
+CONFIG_SLIP_MODE_SLIP6=y
+
+#
+# USB Network Adapters
+#
+CONFIG_USB_CATC=m
+CONFIG_USB_KAWETH=m
+CONFIG_USB_PEGASUS=m
+CONFIG_USB_RTL8150=m
+CONFIG_USB_USBNET=m
+CONFIG_USB_NET_AX8817X=m
+CONFIG_USB_NET_CDCETHER=m
+CONFIG_USB_NET_CDC_EEM=m
+CONFIG_USB_NET_CDC_NCM=m
+CONFIG_USB_NET_DM9601=m
+CONFIG_USB_NET_SMSC75XX=m
+CONFIG_USB_NET_SMSC95XX=m
+CONFIG_USB_NET_GL620A=m
+CONFIG_USB_NET_NET1080=m
+CONFIG_USB_NET_PLUSB=m
+CONFIG_USB_NET_MCS7830=m
+CONFIG_USB_NET_RNDIS_HOST=m
+CONFIG_USB_NET_CDC_SUBSET=m
+CONFIG_USB_ALI_M5632=y
+CONFIG_USB_AN2720=y
+CONFIG_USB_BELKIN=y
+CONFIG_USB_ARMLINUX=y
+CONFIG_USB_EPSON2888=y
+CONFIG_USB_KC2190=y
+CONFIG_USB_NET_ZAURUS=m
+CONFIG_USB_NET_CX82310_ETH=m
+CONFIG_USB_NET_KALMIA=m
+CONFIG_USB_HSO=m
+CONFIG_USB_NET_INT51X1=m
+# CONFIG_USB_IPHETH is not set
+CONFIG_USB_SIERRA_NET=m
+CONFIG_USB_VL600=m
+CONFIG_WLAN=y
+# CONFIG_LIBERTAS_THINFIRM is not set
+CONFIG_AT76C50X_USB=m
+CONFIG_USB_ZD1201=m
+CONFIG_USB_NET_RNDIS_WLAN=m
+# CONFIG_RTL8187 is not set
+# CONFIG_MAC80211_HWSIM is not set
+# CONFIG_ATH_COMMON is not set
+# CONFIG_B43 is not set
+# CONFIG_B43LEGACY is not set
+# CONFIG_BRCMFMAC is not set
+CONFIG_HOSTAP=m
+CONFIG_HOSTAP_FIRMWARE=y
+# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set
+# CONFIG_IWM is not set
+# CONFIG_LIBERTAS is not set
+# CONFIG_P54_COMMON is not set
+# CONFIG_RT2X00 is not set
+# CONFIG_RTL8192CU is not set
+# CONFIG_WL1251 is not set
+# CONFIG_WL12XX_MENU is not set
+# CONFIG_ZD1211RW is not set
+# CONFIG_MWIFIEX is not set
+
+#
+# Enable WiMAX (Networking options) to see the WiMAX drivers
+#
+CONFIG_WAN=y
+CONFIG_HDLC=m
+CONFIG_HDLC_RAW=m
+CONFIG_HDLC_RAW_ETH=m
+CONFIG_HDLC_CISCO=m
+CONFIG_HDLC_FR=m
+CONFIG_HDLC_PPP=m
+
+#
+# X.25/LAPB support is disabled
+#
+CONFIG_DLCI=m
+CONFIG_DLCI_MAX=8
+CONFIG_ISDN=y
+CONFIG_ISDN_I4L=m
+CONFIG_ISDN_PPP=y
+CONFIG_ISDN_PPP_VJ=y
+CONFIG_ISDN_MPP=y
+CONFIG_IPPP_FILTER=y
+CONFIG_ISDN_PPP_BSDCOMP=m
+CONFIG_ISDN_AUDIO=y
+CONFIG_ISDN_TTY_FAX=y
+
+#
+# ISDN feature submodules
+#
+CONFIG_ISDN_DIVERSION=m
+
+#
+# ISDN4Linux hardware drivers
+#
+
+#
+# Passive cards
+#
+CONFIG_ISDN_DRV_HISAX=m
+
+#
+# D-channel protocol features
+#
+CONFIG_HISAX_EURO=y
+CONFIG_DE_AOC=y
+# CONFIG_HISAX_NO_SENDCOMPLETE is not set
+# CONFIG_HISAX_NO_LLC is not set
+# CONFIG_HISAX_NO_KEYPAD is not set
+CONFIG_HISAX_1TR6=y
+CONFIG_HISAX_NI1=y
+CONFIG_HISAX_MAX_CARDS=8
+
+#
+# HiSax supported cards
+#
+CONFIG_HISAX_16_3=y
+CONFIG_HISAX_S0BOX=y
+CONFIG_HISAX_FRITZPCI=y
+CONFIG_HISAX_AVM_A1_PCMCIA=y
+CONFIG_HISAX_ELSA=y
+CONFIG_HISAX_DIEHLDIVA=y
+CONFIG_HISAX_SEDLBAUER=y
+CONFIG_HISAX_NICCY=y
+CONFIG_HISAX_GAZEL=y
+CONFIG_HISAX_HFC_SX=y
+CONFIG_HISAX_DEBUG=y
+
+#
+# HiSax PCMCIA card service modules
+#
+
+#
+# HiSax sub driver modules
+#
+CONFIG_HISAX_ST5481=m
+CONFIG_HISAX_HFCUSB=m
+CONFIG_HISAX_HFC4S8S=m
+
+#
+# Active cards
+#
+CONFIG_ISDN_CAPI=m
+CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y
+CONFIG_CAPI_TRACE=y
+CONFIG_ISDN_CAPI_MIDDLEWARE=y
+CONFIG_ISDN_CAPI_CAPI20=m
+CONFIG_ISDN_CAPI_CAPIDRV=m
+
+#
+# CAPI hardware drivers
+#
+CONFIG_CAPI_AVM=y
+CONFIG_CAPI_EICON=y
+CONFIG_ISDN_DRV_GIGASET=m
+CONFIG_GIGASET_CAPI=y
+# CONFIG_GIGASET_I4L is not set
+# CONFIG_GIGASET_DUMMYLL is not set
+CONFIG_GIGASET_BASE=m
+CONFIG_GIGASET_M105=m
+CONFIG_GIGASET_M101=m
+# CONFIG_GIGASET_DEBUG is not set
+CONFIG_MISDN=m
+CONFIG_MISDN_DSP=m
+CONFIG_MISDN_L1OIP=m
+
+#
+# mISDN hardware drivers
+#
+CONFIG_MISDN_HFCUSB=m
+CONFIG_ISDN_HDLC=m
+# CONFIG_PHONE is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+CONFIG_INPUT_FF_MEMLESS=m
+CONFIG_INPUT_POLLDEV=m
+CONFIG_INPUT_SPARSEKMAP=m
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=y
+# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+# CONFIG_INPUT_JOYDEV is not set
+# CONFIG_INPUT_EVDEV is not set
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+CONFIG_KEYBOARD_ADP5588=m
+CONFIG_KEYBOARD_ADP5589=m
+CONFIG_KEYBOARD_ATKBD=y
+CONFIG_KEYBOARD_QT1070=m
+CONFIG_KEYBOARD_QT2160=m
+CONFIG_KEYBOARD_LKKBD=m
+CONFIG_KEYBOARD_GPIO=m
+CONFIG_KEYBOARD_TCA6416=m
+CONFIG_KEYBOARD_MATRIX=m
+CONFIG_KEYBOARD_LM8323=m
+CONFIG_KEYBOARD_MAX7359=m
+CONFIG_KEYBOARD_MCS=m
+CONFIG_KEYBOARD_MPR121=m
+CONFIG_KEYBOARD_NEWTON=m
+CONFIG_KEYBOARD_OPENCORES=m
+CONFIG_KEYBOARD_STOWAWAY=m
+CONFIG_KEYBOARD_SUNKBD=m
+CONFIG_KEYBOARD_OMAP=m
+CONFIG_KEYBOARD_OMAP4=m
+CONFIG_KEYBOARD_TWL4030=m
+CONFIG_KEYBOARD_XTKBD=m
+# CONFIG_INPUT_MOUSE is not set
+# CONFIG_INPUT_JOYSTICK is not set
+# CONFIG_INPUT_TABLET is not set
+# CONFIG_INPUT_TOUCHSCREEN is not set
+CONFIG_INPUT_MISC=y
+CONFIG_INPUT_AD714X=m
+CONFIG_INPUT_AD714X_I2C=m
+CONFIG_INPUT_BMA150=m
+# CONFIG_INPUT_MMA8450 is not set
+# CONFIG_INPUT_MPU3050 is not set
+CONFIG_INPUT_ATI_REMOTE2=m
+CONFIG_INPUT_KEYSPAN_REMOTE=m
+# CONFIG_INPUT_KXTJ9 is not set
+CONFIG_INPUT_POWERMATE=m
+CONFIG_INPUT_YEALINK=m
+CONFIG_INPUT_CM109=m
+CONFIG_INPUT_TWL4030_PWRBUTTON=m
+CONFIG_INPUT_TWL4030_VIBRA=m
+CONFIG_INPUT_TWL6040_VIBRA=m
+# CONFIG_INPUT_UINPUT is not set
+CONFIG_INPUT_PCF50633_PMU=m
+CONFIG_INPUT_PCF8574=m
+CONFIG_INPUT_PWM_BEEPER=m
+CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
+# CONFIG_INPUT_ADXL34X is not set
+# CONFIG_INPUT_CMA3000 is not set
+
+#
+# Hardware I/O ports
+#
+CONFIG_SERIO=y
+CONFIG_SERIO_SERPORT=y
+# CONFIG_SERIO_PARKBD is not set
+CONFIG_SERIO_LIBPS2=y
+# CONFIG_SERIO_RAW is not set
+CONFIG_SERIO_ALTERA_PS2=m
+CONFIG_SERIO_PS2MULT=m
+# CONFIG_GAMEPORT is not set
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_CONSOLE_TRANSLATIONS=y
+CONFIG_VT_CONSOLE=y
+CONFIG_VT_CONSOLE_SLEEP=y
+CONFIG_HW_CONSOLE=y
+# CONFIG_VT_HW_CONSOLE_BINDING is not set
+CONFIG_UNIX98_PTYS=y
+# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
+# CONFIG_LEGACY_PTYS is not set
+# CONFIG_SERIAL_NONSTANDARD is not set
+CONFIG_N_GSM=m
+# CONFIG_TRACE_SINK is not set
+CONFIG_DEVKMEM=y
+
+#
+# Serial drivers
+#
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_NR_UARTS=4
+CONFIG_SERIAL_8250_RUNTIME_UARTS=4
+CONFIG_SERIAL_8250_EXTENDED=y
+CONFIG_SERIAL_8250_MANY_PORTS=y
+CONFIG_SERIAL_8250_SHARE_IRQ=y
+CONFIG_SERIAL_8250_DETECT_IRQ=y
+CONFIG_SERIAL_8250_RSA=y
+CONFIG_SERIAL_8250_DW=m
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_SERIAL_OF_PLATFORM=y
+CONFIG_SERIAL_OMAP=y
+CONFIG_SERIAL_OMAP_CONSOLE=y
+CONFIG_SERIAL_TIMBERDALE=m
+CONFIG_SERIAL_ALTERA_JTAGUART=m
+CONFIG_SERIAL_ALTERA_UART=m
+CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4
+CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200
+CONFIG_SERIAL_XILINX_PS_UART=m
+# CONFIG_TTY_PRINTK is not set
+CONFIG_PRINTER=m
+# CONFIG_LP_CONSOLE is not set
+CONFIG_PPDEV=m
+# CONFIG_HVC_DCC is not set
+CONFIG_IPMI_HANDLER=m
+CONFIG_IPMI_PANIC_EVENT=y
+# CONFIG_IPMI_PANIC_STRING is not set
+CONFIG_IPMI_DEVICE_INTERFACE=m
+CONFIG_IPMI_SI=m
+CONFIG_IPMI_WATCHDOG=m
+CONFIG_IPMI_POWEROFF=m
+CONFIG_HW_RANDOM=m
+CONFIG_HW_RANDOM_TIMERIOMEM=m
+CONFIG_HW_RANDOM_OMAP=m
+CONFIG_NVRAM=m
+# CONFIG_R3964 is not set
+# CONFIG_RAW_DRIVER is not set
+# CONFIG_TCG_TPM is not set
+# CONFIG_RAMOOPS is not set
+CONFIG_I2C=y
+CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_COMPAT=y
+CONFIG_I2C_CHARDEV=m
+CONFIG_I2C_MUX=m
+
+#
+# Multiplexer I2C Chip support
+#
+CONFIG_I2C_MUX_GPIO=m
+CONFIG_I2C_MUX_PCA9541=m
+CONFIG_I2C_MUX_PCA954x=m
+CONFIG_I2C_HELPER_AUTO=y
+CONFIG_I2C_SMBUS=m
+CONFIG_I2C_ALGOBIT=m
+CONFIG_I2C_ALGOPCA=m
+
+#
+# I2C Hardware Bus support
+#
+
+#
+# I2C system bus drivers (mostly embedded / system-on-chip)
+#
+# CONFIG_I2C_DESIGNWARE_PLATFORM is not set
+CONFIG_I2C_GPIO=m
+CONFIG_I2C_OCORES=m
+CONFIG_I2C_OMAP=y
+CONFIG_I2C_PCA_PLATFORM=m
+# CONFIG_I2C_PXA_PCI is not set
+CONFIG_I2C_SIMTEC=m
+CONFIG_I2C_XILINX=m
+
+#
+# External I2C/SMBus adapter drivers
+#
+CONFIG_I2C_DIOLAN_U2C=m
+CONFIG_I2C_PARPORT=m
+CONFIG_I2C_PARPORT_LIGHT=m
+CONFIG_I2C_TAOS_EVM=m
+CONFIG_I2C_TINY_USB=m
+
+#
+# Other I2C/SMBus bus drivers
+#
+CONFIG_I2C_STUB=m
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+# CONFIG_SPI is not set
+
+#
+# PPS support
+#
+CONFIG_PPS=m
+# CONFIG_PPS_DEBUG is not set
+
+#
+# PPS clients support
+#
+# CONFIG_PPS_CLIENT_KTIMER is not set
+# CONFIG_PPS_CLIENT_LDISC is not set
+# CONFIG_PPS_CLIENT_PARPORT is not set
+# CONFIG_PPS_CLIENT_GPIO is not set
+
+#
+# PPS generators support
+#
+
+#
+# PTP clock support
+#
+CONFIG_PTP_1588_CLOCK=m
+CONFIG_DP83640_PHY=m
+CONFIG_ARCH_REQUIRE_GPIOLIB=y
+CONFIG_GPIOLIB=y
+# CONFIG_DEBUG_GPIO is not set
+CONFIG_GPIO_SYSFS=y
+CONFIG_GPIO_GENERIC=m
+CONFIG_GPIO_MAX730X=m
+
+#
+# Memory mapped GPIO drivers:
+#
+CONFIG_GPIO_GENERIC_PLATFORM=m
+CONFIG_GPIO_IT8761E=m
+
+#
+# I2C GPIO expanders:
+#
+CONFIG_GPIO_MAX7300=m
+CONFIG_GPIO_MAX732X=m
+CONFIG_GPIO_PCF857X=m
+# CONFIG_GPIO_SX150X is not set
+CONFIG_GPIO_TWL4030=m
+CONFIG_GPIO_ADP5588=m
+
+#
+# PCI GPIO expanders:
+#
+
+#
+# SPI GPIO expanders:
+#
+CONFIG_GPIO_MCP23S08=m
+
+#
+# AC97 GPIO expanders:
+#
+
+#
+# MODULbus GPIO expanders:
+#
+CONFIG_W1=m
+CONFIG_W1_CON=y
+
+#
+# 1-wire Bus Masters
+#
+CONFIG_W1_MASTER_DS2490=m
+CONFIG_W1_MASTER_DS2482=m
+CONFIG_W1_MASTER_DS1WM=m
+CONFIG_W1_MASTER_GPIO=m
+CONFIG_HDQ_MASTER_OMAP=m
+
+#
+# 1-wire Slaves
+#
+CONFIG_W1_SLAVE_THERM=m
+CONFIG_W1_SLAVE_SMEM=m
+CONFIG_W1_SLAVE_DS2408=m
+CONFIG_W1_SLAVE_DS2423=m
+CONFIG_W1_SLAVE_DS2431=m
+CONFIG_W1_SLAVE_DS2433=m
+CONFIG_W1_SLAVE_DS2433_CRC=y
+CONFIG_W1_SLAVE_DS2760=m
+CONFIG_W1_SLAVE_DS2780=m
+CONFIG_W1_SLAVE_BQ27000=m
+CONFIG_POWER_SUPPLY=y
+# CONFIG_POWER_SUPPLY_DEBUG is not set
+# CONFIG_PDA_POWER is not set
+# CONFIG_TEST_POWER is not set
+# CONFIG_BATTERY_DS2760 is not set
+# CONFIG_BATTERY_DS2780 is not set
+# CONFIG_BATTERY_DS2782 is not set
+# CONFIG_BATTERY_BQ20Z75 is not set
+# CONFIG_BATTERY_BQ27x00 is not set
+# CONFIG_BATTERY_MAX17040 is not set
+# CONFIG_BATTERY_MAX17042 is not set
+# CONFIG_CHARGER_PCF50633 is not set
+# CONFIG_CHARGER_ISP1704 is not set
+# CONFIG_CHARGER_MAX8903 is not set
+CONFIG_CHARGER_TWL4030=m
+CONFIG_CHARGER_GPIO=m
+CONFIG_HWMON=m
+CONFIG_HWMON_VID=m
+# CONFIG_HWMON_DEBUG_CHIP is not set
+
+#
+# Native drivers
+#
+CONFIG_SENSORS_AD7414=m
+CONFIG_SENSORS_AD7418=m
+CONFIG_SENSORS_ADM1021=m
+CONFIG_SENSORS_ADM1025=m
+CONFIG_SENSORS_ADM1026=m
+CONFIG_SENSORS_ADM1029=m
+CONFIG_SENSORS_ADM1031=m
+CONFIG_SENSORS_ADM9240=m
+CONFIG_SENSORS_ADT7411=m
+CONFIG_SENSORS_ADT7462=m
+CONFIG_SENSORS_ADT7470=m
+CONFIG_SENSORS_ADT7475=m
+CONFIG_SENSORS_ASC7621=m
+CONFIG_SENSORS_ATXP1=m
+CONFIG_SENSORS_DS620=m
+CONFIG_SENSORS_DS1621=m
+CONFIG_SENSORS_F71805F=m
+CONFIG_SENSORS_F71882FG=m
+CONFIG_SENSORS_F75375S=m
+CONFIG_SENSORS_G760A=m
+CONFIG_SENSORS_GL518SM=m
+CONFIG_SENSORS_GL520SM=m
+CONFIG_SENSORS_GPIO_FAN=m
+CONFIG_SENSORS_IBMAEM=m
+CONFIG_SENSORS_IBMPEX=m
+CONFIG_SENSORS_IT87=m
+CONFIG_SENSORS_JC42=m
+CONFIG_SENSORS_LINEAGE=m
+CONFIG_SENSORS_LM63=m
+CONFIG_SENSORS_LM73=m
+CONFIG_SENSORS_LM75=m
+CONFIG_SENSORS_LM77=m
+CONFIG_SENSORS_LM78=m
+CONFIG_SENSORS_LM80=m
+CONFIG_SENSORS_LM83=m
+CONFIG_SENSORS_LM85=m
+CONFIG_SENSORS_LM87=m
+CONFIG_SENSORS_LM90=m
+CONFIG_SENSORS_LM92=m
+CONFIG_SENSORS_LM93=m
+CONFIG_SENSORS_LTC4151=m
+CONFIG_SENSORS_LTC4215=m
+CONFIG_SENSORS_LTC4245=m
+CONFIG_SENSORS_LTC4261=m
+CONFIG_SENSORS_LM95241=m
+CONFIG_SENSORS_LM95245=m
+CONFIG_SENSORS_MAX16065=m
+CONFIG_SENSORS_MAX1619=m
+CONFIG_SENSORS_MAX1668=m
+CONFIG_SENSORS_MAX6639=m
+CONFIG_SENSORS_MAX6642=m
+CONFIG_SENSORS_MAX6650=m
+CONFIG_SENSORS_NTC_THERMISTOR=m
+CONFIG_SENSORS_PC87360=m
+CONFIG_SENSORS_PC87427=m
+CONFIG_SENSORS_PCF8591=m
+CONFIG_PMBUS=m
+CONFIG_SENSORS_PMBUS=m
+CONFIG_SENSORS_ADM1275=m
+CONFIG_SENSORS_LM25066=m
+CONFIG_SENSORS_LTC2978=m
+CONFIG_SENSORS_MAX16064=m
+CONFIG_SENSORS_MAX34440=m
+CONFIG_SENSORS_MAX8688=m
+CONFIG_SENSORS_UCD9000=m
+CONFIG_SENSORS_UCD9200=m
+CONFIG_SENSORS_ZL6100=m
+CONFIG_SENSORS_SHT15=m
+CONFIG_SENSORS_SHT21=m
+CONFIG_SENSORS_SMM665=m
+CONFIG_SENSORS_DME1737=m
+CONFIG_SENSORS_EMC1403=m
+CONFIG_SENSORS_EMC2103=m
+CONFIG_SENSORS_EMC6W201=m
+CONFIG_SENSORS_SMSC47M1=m
+CONFIG_SENSORS_SMSC47M192=m
+CONFIG_SENSORS_SMSC47B397=m
+CONFIG_SENSORS_SCH56XX_COMMON=m
+CONFIG_SENSORS_SCH5627=m
+CONFIG_SENSORS_SCH5636=m
+CONFIG_SENSORS_ADS1015=m
+CONFIG_SENSORS_ADS7828=m
+CONFIG_SENSORS_AMC6821=m
+CONFIG_SENSORS_THMC50=m
+CONFIG_SENSORS_TMP102=m
+CONFIG_SENSORS_TMP401=m
+CONFIG_SENSORS_TMP421=m
+CONFIG_SENSORS_TWL4030_MADC=m
+CONFIG_SENSORS_VT1211=m
+CONFIG_SENSORS_W83781D=m
+CONFIG_SENSORS_W83791D=m
+CONFIG_SENSORS_W83792D=m
+CONFIG_SENSORS_W83793=m
+CONFIG_SENSORS_W83795=m
+# CONFIG_SENSORS_W83795_FANCTRL is not set
+CONFIG_SENSORS_W83L785TS=m
+CONFIG_SENSORS_W83L786NG=m
+CONFIG_SENSORS_W83627HF=m
+CONFIG_SENSORS_W83627EHF=m
+CONFIG_THERMAL=y
+CONFIG_WATCHDOG=y
+CONFIG_WATCHDOG_CORE=y
+# CONFIG_WATCHDOG_NOWAYOUT is not set
+
+#
+# Watchdog Device Drivers
+#
+CONFIG_SOFT_WATCHDOG=m
+CONFIG_DW_WATCHDOG=m
+CONFIG_MPCORE_WATCHDOG=m
+CONFIG_OMAP_WATCHDOG=m
+CONFIG_TWL4030_WATCHDOG=m
+CONFIG_MAX63XX_WATCHDOG=m
+
+#
+# USB-based Watchdog Cards
+#
+CONFIG_USBPCWATCHDOG=m
+CONFIG_SSB_POSSIBLE=y
+
+#
+# Sonics Silicon Backplane
+#
+CONFIG_SSB=m
+CONFIG_SSB_SDIOHOST_POSSIBLE=y
+CONFIG_SSB_SDIOHOST=y
+# CONFIG_SSB_SILENT is not set
+# CONFIG_SSB_DEBUG is not set
+CONFIG_BCMA_POSSIBLE=y
+
+#
+# Broadcom specific AMBA
+#
+CONFIG_BCMA=m
+# CONFIG_BCMA_DEBUG is not set
+
+#
+# Multifunction device drivers
+#
+CONFIG_MFD_CORE=y
+# CONFIG_MFD_88PM860X is not set
+CONFIG_MFD_SM501=m
+# CONFIG_MFD_SM501_GPIO is not set
+# CONFIG_MFD_ASIC3 is not set
+# CONFIG_HTC_EGPIO is not set
+CONFIG_HTC_PASIC3=m
+# CONFIG_HTC_I2CPLD is not set
+CONFIG_TPS6105X=m
+CONFIG_TPS65010=m
+CONFIG_TPS6507X=m
+# CONFIG_MFD_TPS6586X is not set
+# CONFIG_MFD_TPS65910 is not set
+# CONFIG_MFD_TPS65912_I2C is not set
+CONFIG_MENELAUS=y
+CONFIG_TWL4030_CORE=y
+CONFIG_TWL4030_MADC=m
+CONFIG_TWL4030_POWER=y
+CONFIG_MFD_TWL4030_AUDIO=y
+CONFIG_TWL6030_PWM=m
+CONFIG_TWL6040_CORE=y
+# CONFIG_MFD_STMPE is not set
+# CONFIG_MFD_TC3589X is not set
+# CONFIG_MFD_TMIO is not set
+# CONFIG_MFD_T7L66XB is not set
+# CONFIG_MFD_TC6387XB is not set
+# CONFIG_MFD_TC6393XB is not set
+# CONFIG_PMIC_DA903X is not set
+# CONFIG_PMIC_ADP5520 is not set
+# CONFIG_MFD_MAX8925 is not set
+# CONFIG_MFD_MAX8997 is not set
+# CONFIG_MFD_MAX8998 is not set
+CONFIG_MFD_WM8400=m
+# CONFIG_MFD_WM831X_I2C is not set
+# CONFIG_MFD_WM8350_I2C is not set
+# CONFIG_MFD_WM8994 is not set
+CONFIG_MFD_PCF50633=m
+CONFIG_PCF50633_ADC=m
+CONFIG_PCF50633_GPIO=m
+# CONFIG_ABX500_CORE is not set
+CONFIG_MFD_WL1273_CORE=m
+CONFIG_MFD_OMAP_USB_HOST=y
+# CONFIG_MFD_AAT2870_CORE is not set
+CONFIG_REGULATOR=y
+# CONFIG_REGULATOR_DEBUG is not set
+# CONFIG_REGULATOR_DUMMY is not set
+CONFIG_REGULATOR_FIXED_VOLTAGE=y
+# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
+# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
+CONFIG_REGULATOR_GPIO=m
+# CONFIG_REGULATOR_BQ24022 is not set
+# CONFIG_REGULATOR_MAX1586 is not set
+# CONFIG_REGULATOR_MAX8649 is not set
+# CONFIG_REGULATOR_MAX8660 is not set
+# CONFIG_REGULATOR_MAX8952 is not set
+CONFIG_REGULATOR_TWL4030=y
+# CONFIG_REGULATOR_WM8400 is not set
+# CONFIG_REGULATOR_PCF50633 is not set
+# CONFIG_REGULATOR_LP3971 is not set
+# CONFIG_REGULATOR_LP3972 is not set
+# CONFIG_REGULATOR_TPS6105X is not set
+# CONFIG_REGULATOR_TPS65023 is not set
+# CONFIG_REGULATOR_TPS6507X is not set
+# CONFIG_REGULATOR_ISL6271A is not set
+# CONFIG_REGULATOR_AD5398 is not set
+CONFIG_MEDIA_SUPPORT=m
+
+#
+# Multimedia core support
+#
+CONFIG_MEDIA_CONTROLLER=y
+CONFIG_VIDEO_DEV=m
+CONFIG_VIDEO_V4L2_COMMON=m
+CONFIG_VIDEO_V4L2_SUBDEV_API=y
+CONFIG_DVB_CORE=m
+CONFIG_DVB_NET=y
+CONFIG_VIDEO_MEDIA=m
+
+#
+# Multimedia drivers
+#
+CONFIG_RC_CORE=m
+CONFIG_LIRC=m
+CONFIG_RC_MAP=m
+# CONFIG_IR_NEC_DECODER is not set
+# CONFIG_IR_RC5_DECODER is not set
+# CONFIG_IR_RC6_DECODER is not set
+# CONFIG_IR_JVC_DECODER is not set
+# CONFIG_IR_SONY_DECODER is not set
+# CONFIG_IR_RC5_SZ_DECODER is not set
+# CONFIG_IR_MCE_KBD_DECODER is not set
+# CONFIG_IR_LIRC_CODEC is not set
+# CONFIG_RC_ATI_REMOTE is not set
+# CONFIG_IR_IMON is not set
+# CONFIG_IR_MCEUSB is not set
+# CONFIG_IR_REDRAT3 is not set
+# CONFIG_IR_STREAMZAP is not set
+# CONFIG_RC_LOOPBACK is not set
+CONFIG_MEDIA_ATTACH=y
+CONFIG_MEDIA_TUNER=m
+# CONFIG_MEDIA_TUNER_CUSTOMISE is not set
+CONFIG_MEDIA_TUNER_SIMPLE=m
+CONFIG_MEDIA_TUNER_TDA8290=m
+CONFIG_MEDIA_TUNER_TDA827X=m
+CONFIG_MEDIA_TUNER_TDA18271=m
+CONFIG_MEDIA_TUNER_TDA9887=m
+CONFIG_MEDIA_TUNER_TEA5761=m
+CONFIG_MEDIA_TUNER_TEA5767=m
+CONFIG_MEDIA_TUNER_MT20XX=m
+CONFIG_MEDIA_TUNER_XC2028=m
+CONFIG_MEDIA_TUNER_XC5000=m
+CONFIG_MEDIA_TUNER_XC4000=m
+CONFIG_MEDIA_TUNER_MC44S803=m
+CONFIG_VIDEO_V4L2=m
+CONFIG_VIDEO_CAPTURE_DRIVERS=y
+# CONFIG_VIDEO_ADV_DEBUG is not set
+# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
+# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set
+CONFIG_VIDEO_IR_I2C=m
+
+#
+# Encoders, decoders, sensors and other helper chips
+#
+
+#
+# Audio decoders, processors and mixers
+#
+# CONFIG_VIDEO_TVAUDIO is not set
+# CONFIG_VIDEO_TDA7432 is not set
+# CONFIG_VIDEO_TDA9840 is not set
+# CONFIG_VIDEO_TEA6415C is not set
+# CONFIG_VIDEO_TEA6420 is not set
+# CONFIG_VIDEO_MSP3400 is not set
+# CONFIG_VIDEO_CS5345 is not set
+# CONFIG_VIDEO_CS53L32A is not set
+# CONFIG_VIDEO_TLV320AIC23B is not set
+# CONFIG_VIDEO_WM8775 is not set
+# CONFIG_VIDEO_WM8739 is not set
+# CONFIG_VIDEO_VP27SMPX is not set
+
+#
+# RDS decoders
+#
+# CONFIG_VIDEO_SAA6588 is not set
+
+#
+# Video decoders
+#
+# CONFIG_VIDEO_ADV7180 is not set
+# CONFIG_VIDEO_BT819 is not set
+# CONFIG_VIDEO_BT856 is not set
+# CONFIG_VIDEO_BT866 is not set
+# CONFIG_VIDEO_KS0127 is not set
+# CONFIG_VIDEO_SAA7110 is not set
+# CONFIG_VIDEO_SAA711X is not set
+# CONFIG_VIDEO_SAA7191 is not set
+# CONFIG_VIDEO_TVP514X is not set
+# CONFIG_VIDEO_TVP5150 is not set
+# CONFIG_VIDEO_TVP7002 is not set
+# CONFIG_VIDEO_VPX3220 is not set
+
+#
+# Video and audio decoders
+#
+# CONFIG_VIDEO_SAA717X is not set
+# CONFIG_VIDEO_CX25840 is not set
+
+#
+# MPEG video encoders
+#
+# CONFIG_VIDEO_CX2341X is not set
+
+#
+# Video encoders
+#
+# CONFIG_VIDEO_SAA7127 is not set
+# CONFIG_VIDEO_SAA7185 is not set
+# CONFIG_VIDEO_ADV7170 is not set
+# CONFIG_VIDEO_ADV7175 is not set
+# CONFIG_VIDEO_ADV7343 is not set
+# CONFIG_VIDEO_AK881X is not set
+
+#
+# Camera sensor devices
+#
+# CONFIG_VIDEO_OV7670 is not set
+# CONFIG_VIDEO_MT9P031 is not set
+# CONFIG_VIDEO_MT9T001 is not set
+# CONFIG_VIDEO_MT9V011 is not set
+# CONFIG_VIDEO_MT9V032 is not set
+# CONFIG_VIDEO_TCM825X is not set
+# CONFIG_VIDEO_SR030PC30 is not set
+# CONFIG_VIDEO_NOON010PC30 is not set
+# CONFIG_VIDEO_M5MOLS is not set
+# CONFIG_VIDEO_S5K6AA is not set
+
+#
+# Flash devices
+#
+# CONFIG_VIDEO_ADP1653 is not set
+
+#
+# Video improvement chips
+#
+# CONFIG_VIDEO_UPD64031A is not set
+# CONFIG_VIDEO_UPD64083 is not set
+
+#
+# Miscelaneous helper chips
+#
+# CONFIG_VIDEO_THS7303 is not set
+# CONFIG_VIDEO_M52790 is not set
+# CONFIG_VIDEO_VIVI is not set
+# CONFIG_VIDEO_VPFE_CAPTURE is not set
+# CONFIG_VIDEO_OMAP2_VOUT is not set
+# CONFIG_VIDEO_BWQCAM is not set
+# CONFIG_VIDEO_CQCAM is not set
+# CONFIG_VIDEO_W9966 is not set
+# CONFIG_VIDEO_CPIA2 is not set
+# CONFIG_VIDEO_TIMBERDALE is not set
+# CONFIG_VIDEO_AU0828 is not set
+# CONFIG_SOC_CAMERA is not set
+# CONFIG_VIDEO_OMAP2 is not set
+# CONFIG_V4L_USB_DRIVERS is not set
+# CONFIG_V4L_MEM2MEM_DRIVERS is not set
+CONFIG_RADIO_ADAPTERS=y
+# CONFIG_I2C_SI4713 is not set
+# CONFIG_RADIO_SI4713 is not set
+# CONFIG_USB_DSBR is not set
+# CONFIG_RADIO_SI470X is not set
+# CONFIG_USB_MR800 is not set
+# CONFIG_RADIO_TEA5764 is not set
+# CONFIG_RADIO_SAA7706H is not set
+# CONFIG_RADIO_TEF6862 is not set
+# CONFIG_RADIO_WL1273 is not set
+
+#
+# Texas Instruments WL128x FM driver (ST based)
+#
+CONFIG_RADIO_WL128X=m
+CONFIG_DVB_MAX_ADAPTERS=8
+# CONFIG_DVB_DYNAMIC_MINORS is not set
+CONFIG_DVB_CAPTURE_DRIVERS=y
+# CONFIG_TTPCI_EEPROM is not set
+
+#
+# Supported USB Adapters
+#
+# CONFIG_DVB_USB is not set
+# CONFIG_SMS_SIANO_MDTV is not set
+
+#
+# Supported FlexCopII (B2C2) Adapters
+#
+# CONFIG_DVB_B2C2_FLEXCOP is not set
+
+#
+# Supported DVB Frontends
+#
+# CONFIG_DVB_FE_CUSTOMISE is not set
+
+#
+# Multistandard (satellite) frontends
+#
+
+#
+# Multistandard (cable + terrestrial) frontends
+#
+
+#
+# DVB-S (satellite) frontends
+#
+
+#
+# DVB-T (terrestrial) frontends
+#
+
+#
+# DVB-C (cable) frontends
+#
+
+#
+# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
+#
+
+#
+# ISDB-T (terrestrial) frontends
+#
+
+#
+# Digital terrestrial only tuners/PLL
+#
+
+#
+# SEC control devices for DVB-S
+#
+
+#
+# Tools to develop new frontends
+#
+# CONFIG_DVB_DUMMY_FE is not set
+
+#
+# Graphics support
+#
+CONFIG_DRM=m
+# CONFIG_VGASTATE is not set
+CONFIG_VIDEO_OUTPUT_CONTROL=m
+CONFIG_FB=y
+CONFIG_FIRMWARE_EDID=y
+# CONFIG_FB_DDC is not set
+# CONFIG_FB_BOOT_VESA_SUPPORT is not set
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
+CONFIG_FB_SYS_FILLRECT=m
+CONFIG_FB_SYS_COPYAREA=m
+CONFIG_FB_SYS_IMAGEBLIT=m
+# CONFIG_FB_FOREIGN_ENDIAN is not set
+CONFIG_FB_SYS_FOPS=m
+# CONFIG_FB_WMT_GE_ROPS is not set
+CONFIG_FB_DEFERRED_IO=y
+# CONFIG_FB_SVGALIB is not set
+# CONFIG_FB_MACMODES is not set
+# CONFIG_FB_BACKLIGHT is not set
+CONFIG_FB_MODE_HELPERS=y
+CONFIG_FB_TILEBLITTING=y
+
+#
+# Frame buffer hardware drivers
+#
+CONFIG_FB_UVESA=m
+# CONFIG_FB_S1D13XXX is not set
+CONFIG_FB_TMIO=m
+CONFIG_FB_TMIO_ACCELL=y
+CONFIG_FB_SM501=m
+CONFIG_FB_SMSCUFX=m
+# CONFIG_FB_UDL is not set
+# CONFIG_FB_VIRTUAL is not set
+CONFIG_FB_METRONOME=m
+# CONFIG_FB_BROADSHEET is not set
+# CONFIG_FB_OMAP_BOOTLOADER_INIT is not set
+CONFIG_OMAP2_VRAM=y
+CONFIG_OMAP2_VRFB=y
+CONFIG_OMAP2_DSS=y
+CONFIG_OMAP2_VRAM_SIZE=32
+CONFIG_OMAP2_DSS_DEBUG_SUPPORT=y
+# CONFIG_OMAP2_DSS_COLLECT_IRQ_STATS is not set
+CONFIG_OMAP2_DSS_DPI=y
+# CONFIG_OMAP2_DSS_RFBI is not set
+# CONFIG_OMAP2_DSS_VENC is not set
+CONFIG_OMAP4_DSS_HDMI=y
+# CONFIG_OMAP2_DSS_SDI is not set
+CONFIG_OMAP2_DSS_DSI=y
+# CONFIG_OMAP2_DSS_FAKE_VSYNC is not set
+CONFIG_OMAP2_DSS_MIN_FCK_PER_PCK=0
+CONFIG_OMAP2_DSS_SLEEP_AFTER_VENC_RESET=y
+CONFIG_FB_OMAP2=y
+CONFIG_FB_OMAP2_DEBUG_SUPPORT=y
+CONFIG_FB_OMAP2_NUM_FBS=3
+
+#
+# OMAP2/3 Display Device Drivers
+#
+CONFIG_PANEL_GENERIC_DPI=y
+CONFIG_PANEL_DVI=y
+CONFIG_PANEL_SHARP_LS037V7DW01=y
+# CONFIG_PANEL_PICODLP is not set
+CONFIG_PANEL_TAAL=y
+CONFIG_BACKLIGHT_LCD_SUPPORT=y
+CONFIG_LCD_CLASS_DEVICE=m
+CONFIG_LCD_PLATFORM=m
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+CONFIG_BACKLIGHT_GENERIC=y
+CONFIG_BACKLIGHT_PWM=m
+CONFIG_BACKLIGHT_ADP8860=m
+CONFIG_BACKLIGHT_ADP8870=m
+CONFIG_BACKLIGHT_PCF50633=m
+
+#
+# Display device support
+#
+CONFIG_DISPLAY_SUPPORT=y
+
+#
+# Display hardware drivers
+#
+
+#
+# Console display driver support
+#
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
+# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
+CONFIG_FONTS=y
+CONFIG_FONT_8x8=y
+CONFIG_FONT_8x16=y
+# CONFIG_FONT_6x11 is not set
+# CONFIG_FONT_7x14 is not set
+# CONFIG_FONT_PEARL_8x8 is not set
+# CONFIG_FONT_ACORN_8x8 is not set
+# CONFIG_FONT_MINI_4x6 is not set
+# CONFIG_FONT_SUN8x16 is not set
+# CONFIG_FONT_SUN12x22 is not set
+# CONFIG_FONT_10x18 is not set
+CONFIG_LOGO=y
+CONFIG_LOGO_LINUX_MONO=y
+CONFIG_LOGO_LINUX_VGA16=y
+CONFIG_LOGO_LINUX_CLUT224=y
+CONFIG_SOUND=m
+CONFIG_SOUND_OSS_CORE=y
+CONFIG_SOUND_OSS_CORE_PRECLAIM=y
+CONFIG_SND=m
+CONFIG_SND_TIMER=m
+CONFIG_SND_PCM=m
+CONFIG_SND_HWDEP=m
+CONFIG_SND_RAWMIDI=m
+CONFIG_SND_JACK=y
+CONFIG_SND_SEQUENCER=m
+CONFIG_SND_SEQ_DUMMY=m
+CONFIG_SND_OSSEMUL=y
+CONFIG_SND_MIXER_OSS=m
+CONFIG_SND_PCM_OSS=m
+CONFIG_SND_PCM_OSS_PLUGINS=y
+CONFIG_SND_SEQUENCER_OSS=y
+CONFIG_SND_HRTIMER=m
+CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
+CONFIG_SND_DYNAMIC_MINORS=y
+# CONFIG_SND_SUPPORT_OLD_API is not set
+CONFIG_SND_VERBOSE_PROCFS=y
+# CONFIG_SND_VERBOSE_PRINTK is not set
+# CONFIG_SND_DEBUG is not set
+CONFIG_SND_RAWMIDI_SEQ=m
+# CONFIG_SND_OPL3_LIB_SEQ is not set
+# CONFIG_SND_OPL4_LIB_SEQ is not set
+# CONFIG_SND_SBAWE_SEQ is not set
+# CONFIG_SND_EMU10K1_SEQ is not set
+CONFIG_SND_MPU401_UART=m
+CONFIG_SND_DRIVERS=y
+CONFIG_SND_DUMMY=m
+CONFIG_SND_ALOOP=m
+CONFIG_SND_VIRMIDI=m
+CONFIG_SND_MTPAV=m
+CONFIG_SND_MTS64=m
+CONFIG_SND_SERIAL_U16550=m
+CONFIG_SND_MPU401=m
+CONFIG_SND_PORTMAN2X4=m
+CONFIG_SND_ARM=y
+CONFIG_SND_USB=y
+CONFIG_SND_USB_AUDIO=m
+CONFIG_SND_USB_UA101=m
+CONFIG_SND_USB_CAIAQ=m
+CONFIG_SND_USB_CAIAQ_INPUT=y
+CONFIG_SND_USB_6FIRE=m
+CONFIG_SND_SOC=m
+CONFIG_SND_SOC_CACHE_LZO=y
+CONFIG_SND_OMAP_SOC=m
+CONFIG_SND_OMAP_SOC_MCBSP=m
+CONFIG_SND_OMAP_SOC_MCPDM=m
+CONFIG_SND_OMAP_SOC_RX51=m
+CONFIG_SND_OMAP_SOC_OVERO=m
+CONFIG_SND_OMAP_SOC_OMAP3EVM=m
+CONFIG_SND_OMAP_SOC_AM3517EVM=m
+CONFIG_SND_OMAP_SOC_SDP3430=m
+CONFIG_SND_OMAP_SOC_SDP4430=m
+# CONFIG_SND_OMAP_SOC_OMAP4_HDMI is not set
+CONFIG_SND_OMAP_SOC_OMAP3_PANDORA=m
+CONFIG_SND_OMAP_SOC_OMAP3_BEAGLE=m
+CONFIG_SND_OMAP_SOC_ZOOM2=m
+CONFIG_SND_OMAP_SOC_IGEP0020=m
+CONFIG_SND_SOC_I2C_AND_SPI=m
+# CONFIG_SND_SOC_ALL_CODECS is not set
+CONFIG_SND_SOC_TLV320AIC23=m
+CONFIG_SND_SOC_TLV320AIC3X=m
+CONFIG_SND_SOC_TWL4030=m
+CONFIG_SND_SOC_TWL6040=m
+CONFIG_SND_SOC_TPA6130A2=m
+# CONFIG_SOUND_PRIME is not set
+CONFIG_HID_SUPPORT=y
+CONFIG_HID=y
+# CONFIG_HIDRAW is not set
+
+#
+# USB Input Devices
+#
+CONFIG_USB_HID=m
+# CONFIG_HID_PID is not set
+CONFIG_USB_HIDDEV=y
+
+#
+# USB HID Boot Protocol drivers
+#
+CONFIG_USB_KBD=m
+CONFIG_USB_MOUSE=m
+
+#
+# Special HID drivers
+#
+CONFIG_HID_A4TECH=m
+CONFIG_HID_ACRUX=m
+# CONFIG_HID_ACRUX_FF is not set
+CONFIG_HID_APPLE=m
+CONFIG_HID_BELKIN=m
+CONFIG_HID_CHERRY=m
+CONFIG_HID_CHICONY=m
+CONFIG_HID_PRODIKEYS=m
+CONFIG_HID_CYPRESS=m
+CONFIG_HID_DRAGONRISE=m
+# CONFIG_DRAGONRISE_FF is not set
+# CONFIG_HID_EMS_FF is not set
+CONFIG_HID_ELECOM=m
+CONFIG_HID_EZKEY=m
+CONFIG_HID_HOLTEK=m
+# CONFIG_HOLTEK_FF is not set
+CONFIG_HID_KEYTOUCH=m
+CONFIG_HID_KYE=m
+CONFIG_HID_UCLOGIC=m
+CONFIG_HID_WALTOP=m
+CONFIG_HID_GYRATION=m
+CONFIG_HID_TWINHAN=m
+CONFIG_HID_KENSINGTON=m
+CONFIG_HID_LCPOWER=m
+CONFIG_HID_LOGITECH=m
+CONFIG_HID_LOGITECH_DJ=m
+# CONFIG_LOGITECH_FF is not set
+# CONFIG_LOGIRUMBLEPAD2_FF is not set
+# CONFIG_LOGIG940_FF is not set
+# CONFIG_LOGIWHEELS_FF is not set
+CONFIG_HID_MAGICMOUSE=m
+CONFIG_HID_MICROSOFT=m
+CONFIG_HID_MONTEREY=m
+CONFIG_HID_MULTITOUCH=m
+CONFIG_HID_NTRIG=m
+CONFIG_HID_ORTEK=m
+CONFIG_HID_PANTHERLORD=m
+# CONFIG_PANTHERLORD_FF is not set
+CONFIG_HID_PETALYNX=m
+CONFIG_HID_PICOLCD=m
+CONFIG_HID_PICOLCD_FB=y
+CONFIG_HID_PICOLCD_BACKLIGHT=y
+CONFIG_HID_PICOLCD_LCD=y
+CONFIG_HID_PICOLCD_LEDS=y
+CONFIG_HID_PRIMAX=m
+CONFIG_HID_QUANTA=m
+CONFIG_HID_ROCCAT=m
+CONFIG_HID_ROCCAT_COMMON=m
+CONFIG_HID_ROCCAT_ARVO=m
+CONFIG_HID_ROCCAT_KONE=m
+CONFIG_HID_ROCCAT_KONEPLUS=m
+CONFIG_HID_ROCCAT_KOVAPLUS=m
+CONFIG_HID_ROCCAT_PYRA=m
+CONFIG_HID_SAMSUNG=m
+CONFIG_HID_SONY=m
+CONFIG_HID_SPEEDLINK=m
+CONFIG_HID_SUNPLUS=m
+CONFIG_HID_GREENASIA=m
+# CONFIG_GREENASIA_FF is not set
+CONFIG_HID_SMARTJOYPLUS=m
+# CONFIG_SMARTJOYPLUS_FF is not set
+CONFIG_HID_TOPSEED=m
+CONFIG_HID_THRUSTMASTER=m
+# CONFIG_THRUSTMASTER_FF is not set
+CONFIG_HID_WACOM=m
+# CONFIG_HID_WACOM_POWER_SUPPLY is not set
+CONFIG_HID_WIIMOTE=m
+CONFIG_HID_ZEROPLUS=m
+# CONFIG_ZEROPLUS_FF is not set
+CONFIG_HID_ZYDACRON=m
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_COMMON=y
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
+CONFIG_USB_ARCH_HAS_EHCI=y
+# CONFIG_USB_ARCH_HAS_XHCI is not set
+CONFIG_USB=y
+# CONFIG_USB_DEBUG is not set
+CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
+
+#
+# Miscellaneous USB options
+#
+CONFIG_USB_DEVICEFS=y
+CONFIG_USB_DEVICE_CLASS=y
+CONFIG_USB_DYNAMIC_MINORS=y
+CONFIG_USB_SUSPEND=y
+# CONFIG_USB_OTG is not set
+# CONFIG_USB_OTG_WHITELIST is not set
+# CONFIG_USB_OTG_BLACKLIST_HUB is not set
+CONFIG_USB_DWC3=m
+# CONFIG_USB_DWC3_DEBUG is not set
+# CONFIG_USB_MON is not set
+# CONFIG_USB_WUSB is not set
+# CONFIG_USB_WUSB_CBAF is not set
+
+#
+# USB Host Controller Drivers
+#
+# CONFIG_USB_C67X00_HCD is not set
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_EHCI_ROOT_HUB_TT=y
+CONFIG_USB_EHCI_TT_NEWSCHED=y
+CONFIG_USB_EHCI_HCD_OMAP=y
+CONFIG_USB_OXU210HP_HCD=m
+CONFIG_USB_ISP116X_HCD=m
+# CONFIG_USB_ISP1760_HCD is not set
+CONFIG_USB_ISP1362_HCD=m
+CONFIG_USB_OHCI_HCD=y
+CONFIG_USB_OHCI_HCD_OMAP1=y
+CONFIG_USB_OHCI_HCD_OMAP3=y
+# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
+# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+CONFIG_USB_U132_HCD=m
+CONFIG_USB_SL811_HCD=m
+# CONFIG_USB_SL811_HCD_ISO is not set
+CONFIG_USB_R8A66597_HCD=m
+# CONFIG_USB_HWA_HCD is not set
+
+#
+# USB Device Class drivers
+#
+CONFIG_USB_ACM=m
+CONFIG_USB_PRINTER=m
+CONFIG_USB_WDM=m
+CONFIG_USB_TMC=m
+
+#
+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
+#
+
+#
+# also be needed; see USB_STORAGE Help for more info
+#
+CONFIG_USB_STORAGE=m
+# CONFIG_USB_STORAGE_DEBUG is not set
+CONFIG_USB_STORAGE_REALTEK=m
+CONFIG_REALTEK_AUTOPM=y
+CONFIG_USB_STORAGE_DATAFAB=m
+CONFIG_USB_STORAGE_FREECOM=m
+CONFIG_USB_STORAGE_ISD200=m
+CONFIG_USB_STORAGE_USBAT=m
+CONFIG_USB_STORAGE_SDDR09=m
+CONFIG_USB_STORAGE_SDDR55=m
+CONFIG_USB_STORAGE_JUMPSHOT=m
+CONFIG_USB_STORAGE_ALAUDA=m
+CONFIG_USB_STORAGE_ONETOUCH=m
+CONFIG_USB_STORAGE_KARMA=m
+CONFIG_USB_STORAGE_CYPRESS_ATACB=m
+CONFIG_USB_STORAGE_ENE_UB6250=m
+CONFIG_USB_UAS=m
+# CONFIG_USB_LIBUSUAL is not set
+
+#
+# USB Imaging devices
+#
+# CONFIG_USB_MDC800 is not set
+# CONFIG_USB_MICROTEK is not set
+
+#
+# USB port drivers
+#
+CONFIG_USB_USS720=m
+CONFIG_USB_SERIAL=m
+CONFIG_USB_EZUSB=y
+CONFIG_USB_SERIAL_GENERIC=y
+CONFIG_USB_SERIAL_AIRCABLE=m
+CONFIG_USB_SERIAL_ARK3116=m
+CONFIG_USB_SERIAL_BELKIN=m
+CONFIG_USB_SERIAL_CH341=m
+CONFIG_USB_SERIAL_WHITEHEAT=m
+CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
+CONFIG_USB_SERIAL_CP210X=m
+CONFIG_USB_SERIAL_CYPRESS_M8=m
+CONFIG_USB_SERIAL_EMPEG=m
+CONFIG_USB_SERIAL_FTDI_SIO=m
+CONFIG_USB_SERIAL_FUNSOFT=m
+CONFIG_USB_SERIAL_VISOR=m
+CONFIG_USB_SERIAL_IPAQ=m
+CONFIG_USB_SERIAL_IR=m
+CONFIG_USB_SERIAL_EDGEPORT=m
+CONFIG_USB_SERIAL_EDGEPORT_TI=m
+CONFIG_USB_SERIAL_GARMIN=m
+CONFIG_USB_SERIAL_IPW=m
+CONFIG_USB_SERIAL_IUU=m
+# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set
+# CONFIG_USB_SERIAL_KEYSPAN is not set
+# CONFIG_USB_SERIAL_KLSI is not set
+# CONFIG_USB_SERIAL_KOBIL_SCT is not set
+CONFIG_USB_SERIAL_MCT_U232=m
+CONFIG_USB_SERIAL_MOS7720=m
+# CONFIG_USB_SERIAL_MOS7715_PARPORT is not set
+CONFIG_USB_SERIAL_MOS7840=m
+CONFIG_USB_SERIAL_MOTOROLA=m
+# CONFIG_USB_SERIAL_NAVMAN is not set
+CONFIG_USB_SERIAL_PL2303=m
+CONFIG_USB_SERIAL_OTI6858=m
+CONFIG_USB_SERIAL_QCAUX=m
+CONFIG_USB_SERIAL_QUALCOMM=m
+CONFIG_USB_SERIAL_SPCP8X5=m
+CONFIG_USB_SERIAL_HP4X=m
+CONFIG_USB_SERIAL_SAFE=m
+# CONFIG_USB_SERIAL_SAFE_PADDED is not set
+CONFIG_USB_SERIAL_SIEMENS_MPI=m
+CONFIG_USB_SERIAL_SIERRAWIRELESS=m
+CONFIG_USB_SERIAL_SYMBOL=m
+CONFIG_USB_SERIAL_TI=m
+# CONFIG_USB_SERIAL_CYBERJACK is not set
+CONFIG_USB_SERIAL_XIRCOM=m
+CONFIG_USB_SERIAL_WWAN=m
+CONFIG_USB_SERIAL_OPTION=m
+# CONFIG_USB_SERIAL_OMNINET is not set
+CONFIG_USB_SERIAL_OPTICON=m
+CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m
+CONFIG_USB_SERIAL_ZIO=m
+CONFIG_USB_SERIAL_SSU100=m
+# CONFIG_USB_SERIAL_DEBUG is not set
+
+#
+# USB Miscellaneous drivers
+#
+CONFIG_USB_EMI62=m
+CONFIG_USB_EMI26=m
+# CONFIG_USB_ADUTUX is not set
+CONFIG_USB_SEVSEG=m
+# CONFIG_USB_RIO500 is not set
+# CONFIG_USB_LEGOTOWER is not set
+CONFIG_USB_LCD=m
+CONFIG_USB_LED=m
+CONFIG_USB_CYPRESS_CY7C63=m
+CONFIG_USB_CYTHERM=m
+# CONFIG_USB_IDMOUSE is not set
+CONFIG_USB_FTDI_ELAN=m
+# CONFIG_USB_APPLEDISPLAY is not set
+CONFIG_USB_SISUSBVGA=m
+CONFIG_USB_SISUSBVGA_CON=y
+# CONFIG_USB_LD is not set
+# CONFIG_USB_TRANCEVIBRATOR is not set
+CONFIG_USB_IOWARRIOR=m
+# CONFIG_USB_TEST is not set
+CONFIG_USB_ISIGHTFW=m
+CONFIG_USB_YUREX=m
+CONFIG_USB_ATM=m
+CONFIG_USB_SPEEDTOUCH=m
+CONFIG_USB_CXACRU=m
+CONFIG_USB_UEAGLEATM=m
+CONFIG_USB_XUSBATM=m
+# CONFIG_USB_GADGET is not set
+
+#
+# OTG and related infrastructure
+#
+CONFIG_USB_OTG_UTILS=y
+CONFIG_USB_GPIO_VBUS=m
+# CONFIG_ISP1301_OMAP is not set
+# CONFIG_USB_ULPI is not set
+CONFIG_TWL4030_USB=m
+CONFIG_TWL6030_USB=m
+# CONFIG_NOP_USB_XCEIV is not set
+CONFIG_MMC=y
+# CONFIG_MMC_DEBUG is not set
+# CONFIG_MMC_UNSAFE_RESUME is not set
+# CONFIG_MMC_CLKGATE is not set
+
+#
+# MMC/SD/SDIO Card Drivers
+#
+CONFIG_MMC_BLOCK=m
+CONFIG_MMC_BLOCK_MINORS=8
+CONFIG_MMC_BLOCK_BOUNCE=y
+CONFIG_SDIO_UART=m
+CONFIG_MMC_TEST=m
+
+#
+# MMC/SD/SDIO Host Controller Drivers
+#
+CONFIG_MMC_SDHCI=m
+CONFIG_MMC_SDHCI_PLTFM=m
+# CONFIG_MMC_SDHCI_PXAV3 is not set
+# CONFIG_MMC_SDHCI_PXAV2 is not set
+CONFIG_MMC_OMAP=y
+CONFIG_MMC_OMAP_HS=y
+CONFIG_MMC_DW=m
+# CONFIG_MMC_DW_IDMAC is not set
+CONFIG_MMC_VUB300=m
+CONFIG_MMC_USHC=m
+CONFIG_MEMSTICK=m
+# CONFIG_MEMSTICK_DEBUG is not set
+
+#
+# MemoryStick drivers
+#
+# CONFIG_MEMSTICK_UNSAFE_RESUME is not set
+CONFIG_MSPRO_BLOCK=m
+
+#
+# MemoryStick Host Controller Drivers
+#
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+
+#
+# LED drivers
+#
+CONFIG_LEDS_LM3530=m
+CONFIG_LEDS_PCA9532=m
+CONFIG_LEDS_PCA9532_GPIO=y
+CONFIG_LEDS_GPIO=m
+CONFIG_LEDS_LP3944=m
+CONFIG_LEDS_LP5521=m
+CONFIG_LEDS_LP5523=m
+CONFIG_LEDS_PCA955X=m
+# CONFIG_LEDS_PWM is not set
+CONFIG_LEDS_REGULATOR=m
+CONFIG_LEDS_BD2802=m
+CONFIG_LEDS_LT3593=m
+# CONFIG_LEDS_RENESAS_TPU is not set
+CONFIG_LEDS_TRIGGERS=y
+
+#
+# LED Triggers
+#
+CONFIG_LEDS_TRIGGER_TIMER=m
+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
+CONFIG_LEDS_TRIGGER_BACKLIGHT=m
+CONFIG_LEDS_TRIGGER_GPIO=m
+CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
+
+#
+# iptables trigger is under Netfilter config (LED target)
+#
+CONFIG_LEDS_TRIGGER_NETDEV=m
+# CONFIG_ACCESSIBILITY is not set
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
+
+#
+# RTC interfaces
+#
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_DEV=y
+# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
+# CONFIG_RTC_DRV_TEST is not set
+
+#
+# I2C RTC drivers
+#
+CONFIG_RTC_DRV_DS1307=m
+CONFIG_RTC_DRV_DS1374=m
+CONFIG_RTC_DRV_DS1672=m
+CONFIG_RTC_DRV_DS3232=m
+CONFIG_RTC_DRV_MAX6900=m
+CONFIG_RTC_DRV_RS5C372=m
+CONFIG_RTC_DRV_ISL1208=m
+CONFIG_RTC_DRV_ISL12022=m
+CONFIG_RTC_DRV_X1205=m
+CONFIG_RTC_DRV_PCF8563=m
+CONFIG_RTC_DRV_PCF8583=m
+CONFIG_RTC_DRV_M41T80=m
+CONFIG_RTC_DRV_M41T80_WDT=y
+CONFIG_RTC_DRV_BQ32K=y
+CONFIG_RTC_DRV_TWL92330=y
+CONFIG_RTC_DRV_TWL4030=y
+CONFIG_RTC_DRV_S35390A=m
+CONFIG_RTC_DRV_FM3130=m
+CONFIG_RTC_DRV_RX8581=m
+CONFIG_RTC_DRV_RX8025=m
+CONFIG_RTC_DRV_EM3027=m
+CONFIG_RTC_DRV_RV3029C2=m
+
+#
+# SPI RTC drivers
+#
+
+#
+# Platform RTC drivers
+#
+CONFIG_RTC_DRV_CMOS=m
+CONFIG_RTC_DRV_DS1286=m
+CONFIG_RTC_DRV_DS1511=m
+CONFIG_RTC_DRV_DS1553=m
+CONFIG_RTC_DRV_DS1742=m
+CONFIG_RTC_DRV_STK17TA8=m
+CONFIG_RTC_DRV_M48T86=m
+CONFIG_RTC_DRV_M48T35=m
+CONFIG_RTC_DRV_M48T59=m
+CONFIG_RTC_DRV_MSM6242=m
+CONFIG_RTC_DRV_BQ4802=y
+CONFIG_RTC_DRV_RP5C01=m
+CONFIG_RTC_DRV_V3020=m
+CONFIG_RTC_DRV_PCF50633=m
+
+#
+# on-CPU RTC drivers
+#
+CONFIG_DMADEVICES=y
+# CONFIG_DMADEVICES_DEBUG is not set
+
+#
+# DMA Devices
+#
+CONFIG_DW_DMAC=m
+CONFIG_TIMB_DMA=m
+CONFIG_DMA_ENGINE=y
+
+#
+# DMA Clients
+#
+CONFIG_NET_DMA=y
+CONFIG_ASYNC_TX_DMA=y
+CONFIG_DMATEST=m
+# CONFIG_AUXDISPLAY is not set
+CONFIG_UIO=m
+CONFIG_UIO_PDRV=m
+CONFIG_UIO_PDRV_GENIRQ=m
+
+#
+# Virtio drivers
+#
+# CONFIG_VIRTIO_BALLOON is not set
+# CONFIG_VIRTIO_MMIO is not set
+CONFIG_STAGING=y
+CONFIG_USBIP_CORE=m
+CONFIG_USBIP_VHCI_HCD=m
+CONFIG_USBIP_HOST=m
+# CONFIG_USBIP_DEBUG is not set
+# CONFIG_W35UND is not set
+# CONFIG_PRISM2_USB is not set
+# CONFIG_ECHO is not set
+# CONFIG_ASUS_OLED is not set
+# CONFIG_PANEL is not set
+# CONFIG_R8712U is not set
+# CONFIG_RTS5139 is not set
+# CONFIG_TRANZPORT is not set
+# CONFIG_POHMELFS is not set
+# CONFIG_LINE6_USB is not set
+# CONFIG_USB_SERIAL_QUATECH2 is not set
+# CONFIG_USB_SERIAL_QUATECH_USB2 is not set
+# CONFIG_VT6656 is not set
+# CONFIG_IIO is not set
+# CONFIG_XVMALLOC is not set
+# CONFIG_ZRAM is not set
+# CONFIG_FB_SM7XX is not set
+# CONFIG_TIDSPBRIDGE is not set
+# CONFIG_USB_ENESTORAGE is not set
+# CONFIG_BCM_WIMAX is not set
+# CONFIG_FT1000 is not set
+
+#
+# Speakup console speech
+#
+# CONFIG_SPEAKUP is not set
+# CONFIG_TOUCHSCREEN_CLEARPAD_TM1217 is not set
+# CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4 is not set
+# CONFIG_STAGING_MEDIA is not set
+CONFIG_CLKDEV_LOOKUP=y
+CONFIG_HWSPINLOCK=m
+
+#
+# Hardware Spinlock drivers
+#
+CONFIG_HWSPINLOCK_OMAP=m
+CONFIG_CLKSRC_MMIO=y
+CONFIG_IOMMU_SUPPORT=y
+# CONFIG_OMAP_IOMMU is not set
+# CONFIG_VIRT_DRIVERS is not set
+# CONFIG_PM_DEVFREQ is not set
+
+#
+# File systems
+#
+# CONFIG_EXT2_FS is not set
+# CONFIG_EXT3_FS is not set
+CONFIG_EXT4_FS=y
+CONFIG_EXT4_USE_FOR_EXT23=y
+CONFIG_EXT4_FS_XATTR=y
+CONFIG_EXT4_FS_POSIX_ACL=y
+CONFIG_EXT4_FS_SECURITY=y
+# CONFIG_EXT4_DEBUG is not set
+CONFIG_JBD2=y
+CONFIG_FS_MBCACHE=y
+CONFIG_REISERFS_FS=m
+# CONFIG_REISERFS_CHECK is not set
+CONFIG_REISERFS_PROC_INFO=y
+CONFIG_REISERFS_FS_XATTR=y
+CONFIG_REISERFS_FS_POSIX_ACL=y
+CONFIG_REISERFS_FS_SECURITY=y
+CONFIG_JFS_FS=m
+CONFIG_JFS_POSIX_ACL=y
+CONFIG_JFS_SECURITY=y
+# CONFIG_JFS_DEBUG is not set
+CONFIG_JFS_STATISTICS=y
+CONFIG_XFS_FS=m
+CONFIG_XFS_QUOTA=y
+CONFIG_XFS_POSIX_ACL=y
+# CONFIG_XFS_RT is not set
+# CONFIG_XFS_DEBUG is not set
+# CONFIG_GFS2_FS is not set
+# CONFIG_BTRFS_FS is not set
+# CONFIG_NILFS2_FS is not set
+CONFIG_FS_POSIX_ACL=y
+CONFIG_EXPORTFS=m
+CONFIG_FILE_LOCKING=y
+CONFIG_FSNOTIFY=y
+CONFIG_DNOTIFY=y
+CONFIG_INOTIFY_USER=y
+CONFIG_FANOTIFY=y
+CONFIG_QUOTA=y
+CONFIG_QUOTA_NETLINK_INTERFACE=y
+CONFIG_PRINT_QUOTA_WARNING=y
+# CONFIG_QUOTA_DEBUG is not set
+CONFIG_QUOTA_TREE=m
+CONFIG_QFMT_V1=m
+CONFIG_QFMT_V2=m
+CONFIG_QUOTACTL=y
+CONFIG_AUTOFS4_FS=m
+CONFIG_FUSE_FS=m
+CONFIG_CUSE=m
+
+#
+# Caches
+#
+CONFIG_FSCACHE=m
+# CONFIG_FSCACHE_STATS is not set
+# CONFIG_FSCACHE_HISTOGRAM is not set
+# CONFIG_FSCACHE_DEBUG is not set
+# CONFIG_FSCACHE_OBJECT_LIST is not set
+CONFIG_CACHEFILES=m
+# CONFIG_CACHEFILES_DEBUG is not set
+# CONFIG_CACHEFILES_HISTOGRAM is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+CONFIG_ISO9660_FS=m
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+CONFIG_UDF_FS=m
+CONFIG_UDF_NLS=y
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=m
+# CONFIG_MSDOS_FS is not set
+CONFIG_VFAT_FS=m
+CONFIG_FAT_DEFAULT_CODEPAGE=850
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+# CONFIG_NTFS_FS is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+# CONFIG_TMPFS_POSIX_ACL is not set
+CONFIG_TMPFS_XATTR=y
+# CONFIG_HUGETLB_PAGE is not set
+# CONFIG_CONFIGFS_FS is not set
+CONFIG_MISC_FILESYSTEMS=y
+# CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+CONFIG_ECRYPT_FS=m
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+CONFIG_JFFS2_FS=m
+CONFIG_JFFS2_FS_DEBUG=0
+CONFIG_JFFS2_FS_WRITEBUFFER=y
+# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
+# CONFIG_JFFS2_SUMMARY is not set
+# CONFIG_JFFS2_FS_XATTR is not set
+CONFIG_JFFS2_COMPRESSION_OPTIONS=y
+CONFIG_JFFS2_ZLIB=y
+# CONFIG_JFFS2_LZO is not set
+CONFIG_JFFS2_RTIME=y
+CONFIG_JFFS2_RUBIN=y
+# CONFIG_JFFS2_CMODE_NONE is not set
+CONFIG_JFFS2_CMODE_PRIORITY=y
+# CONFIG_JFFS2_CMODE_SIZE is not set
+# CONFIG_JFFS2_CMODE_FAVOURLZO is not set
+# CONFIG_UBIFS_FS is not set
+# CONFIG_LOGFS is not set
+# CONFIG_CRAMFS is not set
+# CONFIG_SQUASHFS is not set
+# CONFIG_VXFS_FS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_OMFS_FS is not set
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_ROMFS_FS is not set
+# CONFIG_PSTORE is not set
+# CONFIG_SYSV_FS is not set
+CONFIG_UFS_FS=m
+# CONFIG_UFS_FS_WRITE is not set
+# CONFIG_UFS_DEBUG is not set
+# CONFIG_EXOFS_FS is not set
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_NFS_FS=m
+CONFIG_NFS_V3=y
+CONFIG_NFS_V3_ACL=y
+CONFIG_NFS_V4=y
+# CONFIG_NFS_V4_1 is not set
+# CONFIG_NFS_FSCACHE is not set
+# CONFIG_NFS_USE_LEGACY_DNS is not set
+CONFIG_NFS_USE_KERNEL_DNS=y
+# CONFIG_NFS_USE_NEW_IDMAPPER is not set
+CONFIG_NFSD=m
+CONFIG_NFSD_V2_ACL=y
+CONFIG_NFSD_V3=y
+CONFIG_NFSD_V3_ACL=y
+CONFIG_NFSD_V4=y
+CONFIG_LOCKD=m
+CONFIG_LOCKD_V4=y
+CONFIG_NFS_ACL_SUPPORT=m
+CONFIG_NFS_COMMON=y
+CONFIG_SUNRPC=m
+CONFIG_SUNRPC_GSS=m
+CONFIG_RPCSEC_GSS_KRB5=m
+# CONFIG_CEPH_FS is not set
+CONFIG_CIFS=m
+CONFIG_CIFS_STATS=y
+CONFIG_CIFS_STATS2=y
+# CONFIG_CIFS_WEAK_PW_HASH is not set
+# CONFIG_CIFS_UPCALL is not set
+CONFIG_CIFS_XATTR=y
+CONFIG_CIFS_POSIX=y
+# CONFIG_CIFS_DEBUG2 is not set
+# CONFIG_CIFS_DFS_UPCALL is not set
+# CONFIG_CIFS_FSCACHE is not set
+CONFIG_CIFS_ACL=y
+# CONFIG_NCP_FS is not set
+# CONFIG_CODA_FS is not set
+# CONFIG_AFS_FS is not set
+
+#
+# Partition Types
+#
+CONFIG_PARTITION_ADVANCED=y
+# CONFIG_ACORN_PARTITION is not set
+# CONFIG_OSF_PARTITION is not set
+# CONFIG_AMIGA_PARTITION is not set
+# CONFIG_ATARI_PARTITION is not set
+# CONFIG_MAC_PARTITION is not set
+CONFIG_MSDOS_PARTITION=y
+CONFIG_BSD_DISKLABEL=y
+# CONFIG_MINIX_SUBPARTITION is not set
+# CONFIG_SOLARIS_X86_PARTITION is not set
+# CONFIG_UNIXWARE_DISKLABEL is not set
+CONFIG_LDM_PARTITION=y
+# CONFIG_LDM_DEBUG is not set
+# CONFIG_SGI_PARTITION is not set
+# CONFIG_ULTRIX_PARTITION is not set
+# CONFIG_SUN_PARTITION is not set
+# CONFIG_KARMA_PARTITION is not set
+CONFIG_EFI_PARTITION=y
+# CONFIG_SYSV68_PARTITION is not set
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="cp850"
+# CONFIG_NLS_CODEPAGE_437 is not set
+# CONFIG_NLS_CODEPAGE_737 is not set
+# CONFIG_NLS_CODEPAGE_775 is not set
+CONFIG_NLS_CODEPAGE_850=y
+# CONFIG_NLS_CODEPAGE_852 is not set
+# CONFIG_NLS_CODEPAGE_855 is not set
+# CONFIG_NLS_CODEPAGE_857 is not set
+# CONFIG_NLS_CODEPAGE_860 is not set
+# CONFIG_NLS_CODEPAGE_861 is not set
+# CONFIG_NLS_CODEPAGE_862 is not set
+# CONFIG_NLS_CODEPAGE_863 is not set
+# CONFIG_NLS_CODEPAGE_864 is not set
+# CONFIG_NLS_CODEPAGE_865 is not set
+# CONFIG_NLS_CODEPAGE_866 is not set
+# CONFIG_NLS_CODEPAGE_869 is not set
+# CONFIG_NLS_CODEPAGE_936 is not set
+# CONFIG_NLS_CODEPAGE_950 is not set
+# CONFIG_NLS_CODEPAGE_932 is not set
+# CONFIG_NLS_CODEPAGE_949 is not set
+# CONFIG_NLS_CODEPAGE_874 is not set
+# CONFIG_NLS_ISO8859_8 is not set
+# CONFIG_NLS_CODEPAGE_1250 is not set
+# CONFIG_NLS_CODEPAGE_1251 is not set
+# CONFIG_NLS_ASCII is not set
+CONFIG_NLS_ISO8859_1=y
+# CONFIG_NLS_ISO8859_2 is not set
+# CONFIG_NLS_ISO8859_3 is not set
+# CONFIG_NLS_ISO8859_4 is not set
+# CONFIG_NLS_ISO8859_5 is not set
+# CONFIG_NLS_ISO8859_6 is not set
+# CONFIG_NLS_ISO8859_7 is not set
+# CONFIG_NLS_ISO8859_9 is not set
+# CONFIG_NLS_ISO8859_13 is not set
+# CONFIG_NLS_ISO8859_14 is not set
+# CONFIG_NLS_ISO8859_15 is not set
+# CONFIG_NLS_KOI8_R is not set
+# CONFIG_NLS_KOI8_U is not set
+CONFIG_NLS_UTF8=y
+
+#
+# Kernel hacking
+#
+# CONFIG_PRINTK_TIME is not set
+CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4
+# CONFIG_ENABLE_WARN_DEPRECATED is not set
+CONFIG_ENABLE_MUST_CHECK=y
+CONFIG_FRAME_WARN=1024
+# CONFIG_MAGIC_SYSRQ is not set
+CONFIG_STRIP_ASM_SYMS=y
+# CONFIG_UNUSED_SYMBOLS is not set
+# CONFIG_DEBUG_FS is not set
+# CONFIG_HEADERS_CHECK is not set
+# CONFIG_DEBUG_SECTION_MISMATCH is not set
+CONFIG_DEBUG_KERNEL=y
+# CONFIG_DEBUG_SHIRQ is not set
+# CONFIG_LOCKUP_DETECTOR is not set
+# CONFIG_HARDLOCKUP_DETECTOR is not set
+CONFIG_DETECT_HUNG_TASK=y
+CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
+# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
+CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
+CONFIG_SCHED_DEBUG=y
+# CONFIG_SCHEDSTATS is not set
+CONFIG_TIMER_STATS=y
+# CONFIG_DEBUG_OBJECTS is not set
+# CONFIG_SLUB_DEBUG_ON is not set
+# CONFIG_SLUB_STATS is not set
+# CONFIG_DEBUG_KMEMLEAK is not set
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_RT_MUTEX_TESTER is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+# CONFIG_DEBUG_MUTEXES is not set
+# CONFIG_DEBUG_LOCK_ALLOC is not set
+# CONFIG_PROVE_LOCKING is not set
+# CONFIG_SPARSE_RCU_POINTER is not set
+# CONFIG_LOCK_STAT is not set
+# CONFIG_DEBUG_ATOMIC_SLEEP is not set
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+# CONFIG_DEBUG_STACK_USAGE is not set
+# CONFIG_DEBUG_KOBJECT is not set
+# CONFIG_DEBUG_HIGHMEM is not set
+CONFIG_DEBUG_BUGVERBOSE=y
+# CONFIG_DEBUG_INFO is not set
+# CONFIG_DEBUG_VM is not set
+# CONFIG_DEBUG_WRITECOUNT is not set
+CONFIG_DEBUG_MEMORY_INIT=y
+# CONFIG_DEBUG_LIST is not set
+# CONFIG_TEST_LIST_SORT is not set
+# CONFIG_DEBUG_SG is not set
+# CONFIG_DEBUG_NOTIFIERS is not set
+# CONFIG_DEBUG_CREDENTIALS is not set
+CONFIG_FRAME_POINTER=y
+# CONFIG_BOOT_PRINTK_DELAY is not set
+# CONFIG_RCU_TORTURE_TEST is not set
+CONFIG_RCU_CPU_STALL_TIMEOUT=60
+# CONFIG_BACKTRACE_SELF_TEST is not set
+# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
+# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
+# CONFIG_DEBUG_PER_CPU_MAPS is not set
+# CONFIG_CPU_NOTIFIER_ERROR_INJECT is not set
+# CONFIG_FAULT_INJECTION is not set
+# CONFIG_SYSCTL_SYSCALL_CHECK is not set
+# CONFIG_DEBUG_PAGEALLOC is not set
+CONFIG_HAVE_FUNCTION_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
+CONFIG_HAVE_C_RECORDMCOUNT=y
+CONFIG_TRACING_SUPPORT=y
+# CONFIG_FTRACE is not set
+# CONFIG_DMA_API_DEBUG is not set
+# CONFIG_ATOMIC64_SELFTEST is not set
+CONFIG_ASYNC_RAID6_TEST=m
+# CONFIG_SAMPLES is not set
+CONFIG_HAVE_ARCH_KGDB=y
+# CONFIG_KGDB is not set
+# CONFIG_TEST_KSTRTOX is not set
+# CONFIG_STRICT_DEVMEM is not set
+# CONFIG_ARM_UNWIND is not set
+# CONFIG_DEBUG_USER is not set
+CONFIG_DEBUG_LL=y
+CONFIG_DEBUG_LL_UART_NONE=y
+# CONFIG_DEBUG_ICEDCC is not set
+CONFIG_EARLY_PRINTK=y
+
+#
+# Security options
+#
+CONFIG_KEYS=y
+# CONFIG_ENCRYPTED_KEYS is not set
+# CONFIG_KEYS_DEBUG_PROC_KEYS is not set
+# CONFIG_SECURITY_DMESG_RESTRICT is not set
+# CONFIG_SECURITY is not set
+# CONFIG_SECURITYFS is not set
+CONFIG_DEFAULT_SECURITY_DAC=y
+CONFIG_DEFAULT_SECURITY=""
+CONFIG_XOR_BLOCKS=m
+CONFIG_ASYNC_CORE=m
+CONFIG_ASYNC_MEMCPY=m
+CONFIG_ASYNC_XOR=m
+CONFIG_ASYNC_PQ=m
+CONFIG_ASYNC_RAID6_RECOV=m
+CONFIG_CRYPTO=y
+
+#
+# Crypto core or helper
+#
+CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_ALGAPI2=y
+CONFIG_CRYPTO_AEAD=m
+CONFIG_CRYPTO_AEAD2=y
+CONFIG_CRYPTO_BLKCIPHER=m
+CONFIG_CRYPTO_BLKCIPHER2=y
+CONFIG_CRYPTO_HASH=y
+CONFIG_CRYPTO_HASH2=y
+CONFIG_CRYPTO_RNG=m
+CONFIG_CRYPTO_RNG2=y
+CONFIG_CRYPTO_PCOMP=m
+CONFIG_CRYPTO_PCOMP2=y
+CONFIG_CRYPTO_MANAGER=y
+CONFIG_CRYPTO_MANAGER2=y
+CONFIG_CRYPTO_USER=m
+CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
+CONFIG_CRYPTO_GF128MUL=m
+# CONFIG_CRYPTO_NULL is not set
+CONFIG_CRYPTO_PCRYPT=m
+CONFIG_CRYPTO_WORKQUEUE=y
+CONFIG_CRYPTO_CRYPTD=m
+CONFIG_CRYPTO_AUTHENC=m
+# CONFIG_CRYPTO_TEST is not set
+
+#
+# Authenticated Encryption with Associated Data
+#
+CONFIG_CRYPTO_CCM=m
+CONFIG_CRYPTO_GCM=m
+CONFIG_CRYPTO_SEQIV=m
+
+#
+# Block modes
+#
+CONFIG_CRYPTO_CBC=m
+CONFIG_CRYPTO_CTR=m
+CONFIG_CRYPTO_CTS=m
+CONFIG_CRYPTO_ECB=m
+CONFIG_CRYPTO_LRW=m
+CONFIG_CRYPTO_PCBC=m
+CONFIG_CRYPTO_XTS=m
+
+#
+# Hash modes
+#
+CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_XCBC=m
+CONFIG_CRYPTO_VMAC=m
+
+#
+# Digest
+#
+CONFIG_CRYPTO_CRC32C=m
+CONFIG_CRYPTO_GHASH=m
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MD5=m
+CONFIG_CRYPTO_MICHAEL_MIC=m
+CONFIG_CRYPTO_RMD128=m
+CONFIG_CRYPTO_RMD160=m
+CONFIG_CRYPTO_RMD256=m
+CONFIG_CRYPTO_RMD320=m
+CONFIG_CRYPTO_SHA1=m
+CONFIG_CRYPTO_SHA256=m
+CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_TGR192=m
+CONFIG_CRYPTO_WP512=m
+
+#
+# Ciphers
+#
+CONFIG_CRYPTO_AES=m
+CONFIG_CRYPTO_ANUBIS=m
+CONFIG_CRYPTO_ARC4=m
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_BLOWFISH_COMMON=m
+CONFIG_CRYPTO_CAMELLIA=m
+CONFIG_CRYPTO_CAST5=m
+CONFIG_CRYPTO_CAST6=m
+CONFIG_CRYPTO_DES=m
+CONFIG_CRYPTO_FCRYPT=m
+CONFIG_CRYPTO_KHAZAD=m
+CONFIG_CRYPTO_SALSA20=m
+CONFIG_CRYPTO_SEED=m
+CONFIG_CRYPTO_SERPENT=m
+CONFIG_CRYPTO_TEA=m
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_TWOFISH_COMMON=m
+
+#
+# Compression
+#
+CONFIG_CRYPTO_DEFLATE=y
+CONFIG_CRYPTO_ZLIB=m
+CONFIG_CRYPTO_LZO=m
+
+#
+# Random Number Generation
+#
+CONFIG_CRYPTO_ANSI_CPRNG=m
+CONFIG_CRYPTO_USER_API=m
+CONFIG_CRYPTO_USER_API_HASH=m
+CONFIG_CRYPTO_USER_API_SKCIPHER=m
+CONFIG_CRYPTO_HW=y
+CONFIG_CRYPTO_DEV_OMAP_SHAM=m
+CONFIG_CRYPTO_DEV_OMAP_AES=m
+# CONFIG_BINARY_PRINTF is not set
+
+#
+# Library routines
+#
+CONFIG_RAID6_PQ=m
+CONFIG_BITREVERSE=y
+CONFIG_CRC_CCITT=m
+CONFIG_CRC16=y
+CONFIG_CRC_T10DIF=m
+CONFIG_CRC_ITU_T=m
+CONFIG_CRC32=y
+CONFIG_CRC7=m
+CONFIG_LIBCRC32C=m
+CONFIG_CRC8=m
+CONFIG_AUDIT_GENERIC=y
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_LZO_COMPRESS=y
+CONFIG_LZO_DECOMPRESS=y
+CONFIG_XZ_DEC=y
+CONFIG_XZ_DEC_X86=y
+CONFIG_XZ_DEC_POWERPC=y
+CONFIG_XZ_DEC_IA64=y
+CONFIG_XZ_DEC_ARM=y
+CONFIG_XZ_DEC_ARMTHUMB=y
+CONFIG_XZ_DEC_SPARC=y
+CONFIG_XZ_DEC_BCJ=y
+# CONFIG_XZ_DEC_TEST is not set
+CONFIG_DECOMPRESS_GZIP=y
+CONFIG_DECOMPRESS_BZIP2=y
+CONFIG_DECOMPRESS_LZMA=y
+CONFIG_DECOMPRESS_XZ=y
+CONFIG_DECOMPRESS_LZO=y
+CONFIG_TEXTSEARCH=y
+CONFIG_TEXTSEARCH_KMP=m
+CONFIG_TEXTSEARCH_BM=m
+CONFIG_TEXTSEARCH_FSM=m
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
+CONFIG_HAS_DMA=y
+CONFIG_CPU_RMAP=y
+CONFIG_NLATTR=y
+CONFIG_GENERIC_ATOMIC64=y
+CONFIG_AVERAGE=y
+CONFIG_CORDIC=m
similarity index 68%
rename from config/kernel/kernel.config.armv5tel-ipfire-versatile
rename to config/kernel/kernel.config.armv5tel-ipfire-rpi
index 6bdf4c5d3d199373d06ff46385f01687bb7a552e..a149d03b34137eb10e88d461be074ddf5edd0adb 100644 (file)
@@ -1,14 +1,15 @@
 #
-# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.32.45
-# Sat Oct 15 16:59:52 2011
+# Automatically generated file; DO NOT EDIT.
+# Linux/arm 3.2.35 Kernel Configuration
 #
 CONFIG_ARM=y
 CONFIG_SYS_SUPPORTS_APM_EMULATION=y
+CONFIG_HAVE_SCHED_CLOCK=y
 CONFIG_GENERIC_GPIO=y
-CONFIG_GENERIC_TIME=y
+# CONFIG_ARCH_USES_GETTIMEOFFSET is not set
 CONFIG_GENERIC_CLOCKEVENTS=y
-CONFIG_GENERIC_HARDIRQS=y
+CONFIG_KTIME_SCALAR=y
+CONFIG_HAVE_PROC_CPU=y
 CONFIG_STACKTRACE_SUPPORT=y
 CONFIG_HAVE_LATENCYTOP_SUPPORT=y
 CONFIG_LOCKDEP_SUPPORT=y
@@ -16,12 +17,19 @@ CONFIG_TRACE_IRQFLAGS_SUPPORT=y
 CONFIG_HARDIRQS_SW_RESEND=y
 CONFIG_GENERIC_IRQ_PROBE=y
 CONFIG_RWSEM_GENERIC_SPINLOCK=y
+CONFIG_ARCH_HAS_CPUFREQ=y
+CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
 CONFIG_GENERIC_HWEIGHT=y
 CONFIG_GENERIC_CALIBRATE_DELAY=y
-CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
+CONFIG_NEED_DMA_MAP_STATE=y
+CONFIG_FIQ=y
 CONFIG_VECTORS_BASE=0xffff0000
+CONFIG_ARM_PATCH_PHYS_VIRT=y
+CONFIG_NEED_MACH_MEMORY_H=y
+CONFIG_GENERIC_BUG=y
 CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
-CONFIG_CONSTRUCTORS=y
+CONFIG_HAVE_IRQ_WORK=y
+CONFIG_IRQ_WORK=y
 
 #
 # General setup
@@ -29,8 +37,16 @@ CONFIG_CONSTRUCTORS=y
 CONFIG_EXPERIMENTAL=y
 CONFIG_BROKEN_ON_SMP=y
 CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_CROSS_COMPILE=""
 CONFIG_LOCALVERSION=""
 # CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_HAVE_KERNEL_GZIP=y
+CONFIG_HAVE_KERNEL_LZMA=y
+CONFIG_HAVE_KERNEL_LZO=y
+# CONFIG_KERNEL_GZIP is not set
+CONFIG_KERNEL_LZMA=y
+# CONFIG_KERNEL_LZO is not set
+CONFIG_DEFAULT_HOSTNAME="(none)"
 CONFIG_SWAP=y
 CONFIG_SYSVIPC=y
 CONFIG_SYSVIPC_SYSCTL=y
@@ -38,44 +54,55 @@ CONFIG_POSIX_MQUEUE=y
 CONFIG_POSIX_MQUEUE_SYSCTL=y
 CONFIG_BSD_PROCESS_ACCT=y
 CONFIG_BSD_PROCESS_ACCT_V3=y
+# CONFIG_FHANDLE is not set
 # CONFIG_TASKSTATS is not set
 CONFIG_AUDIT=y
+CONFIG_HAVE_GENERIC_HARDIRQS=y
+
+#
+# IRQ subsystem
+#
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_HAVE_SPARSE_IRQ=y
+CONFIG_GENERIC_IRQ_SHOW=y
+CONFIG_IRQ_DOMAIN=y
+CONFIG_SPARSE_IRQ=y
 
 #
 # RCU Subsystem
 #
-CONFIG_TREE_RCU=y
-# CONFIG_TREE_PREEMPT_RCU is not set
+CONFIG_TINY_RCU=y
+# CONFIG_PREEMPT_RCU is not set
 # CONFIG_RCU_TRACE is not set
-CONFIG_RCU_FANOUT=32
-# CONFIG_RCU_FANOUT_EXACT is not set
 # CONFIG_TREE_RCU_TRACE is not set
 # CONFIG_IKCONFIG is not set
 CONFIG_LOG_BUF_SHIFT=19
 # CONFIG_CGROUPS is not set
-CONFIG_SYSFS_DEPRECATED=y
-CONFIG_SYSFS_DEPRECATED_V2=y
-# CONFIG_RELAY is not set
 CONFIG_NAMESPACES=y
 CONFIG_UTS_NS=y
 CONFIG_IPC_NS=y
 # CONFIG_USER_NS is not set
 # CONFIG_PID_NS is not set
 # CONFIG_NET_NS is not set
+# CONFIG_SCHED_AUTOGROUP is not set
+CONFIG_SYSFS_DEPRECATED=y
+CONFIG_SYSFS_DEPRECATED_V2=y
+# CONFIG_RELAY is not set
 CONFIG_BLK_DEV_INITRD=y
 CONFIG_INITRAMFS_SOURCE=""
 CONFIG_RD_GZIP=y
 CONFIG_RD_BZIP2=y
 CONFIG_RD_LZMA=y
-CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+CONFIG_RD_XZ=y
+CONFIG_RD_LZO=y
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
 CONFIG_SYSCTL=y
 CONFIG_ANON_INODES=y
-# CONFIG_EMBEDDED is not set
+# CONFIG_EXPERT is not set
 CONFIG_UID16=y
-CONFIG_SYSCTL_SYSCALL=y
+# CONFIG_SYSCTL_SYSCALL is not set
 CONFIG_KALLSYMS=y
 # CONFIG_KALLSYMS_ALL is not set
-# CONFIG_KALLSYMS_EXTRA_PASS is not set
 CONFIG_HOTPLUG=y
 CONFIG_PRINTK=y
 CONFIG_BUG=y
@@ -88,28 +115,34 @@ CONFIG_TIMERFD=y
 CONFIG_EVENTFD=y
 CONFIG_SHMEM=y
 CONFIG_AIO=y
+# CONFIG_EMBEDDED is not set
+CONFIG_HAVE_PERF_EVENTS=y
+CONFIG_PERF_USE_VMALLOC=y
 
 #
 # Kernel Performance Events And Counters
 #
+CONFIG_PERF_EVENTS=y
+# CONFIG_PERF_COUNTERS is not set
+# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
 CONFIG_VM_EVENT_COUNTERS=y
-CONFIG_PCI_QUIRKS=y
 CONFIG_SLUB_DEBUG=y
 # CONFIG_COMPAT_BRK is not set
 # CONFIG_SLAB is not set
 CONFIG_SLUB=y
-# CONFIG_SLOB is not set
 # CONFIG_PROFILING is not set
 CONFIG_HAVE_OPROFILE=y
 # CONFIG_KPROBES is not set
 CONFIG_HAVE_KPROBES=y
 CONFIG_HAVE_KRETPROBES=y
+CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
 CONFIG_HAVE_CLK=y
+CONFIG_HAVE_DMA_API_DEBUG=y
+CONFIG_HAVE_HW_BREAKPOINT=y
 
 #
 # GCOV-based kernel profiling
 #
-CONFIG_SLOW_WORK=y
 CONFIG_HAVE_GENERIC_DMA_COHERENT=y
 CONFIG_SLABINFO=y
 CONFIG_RT_MUTEXES=y
@@ -122,91 +155,143 @@ CONFIG_MODULE_FORCE_UNLOAD=y
 # CONFIG_MODULE_SRCVERSION_ALL is not set
 CONFIG_BLOCK=y
 CONFIG_LBDAF=y
-# CONFIG_BLK_DEV_BSG is not set
+CONFIG_BLK_DEV_BSG=y
+CONFIG_BLK_DEV_BSGLIB=y
 # CONFIG_BLK_DEV_INTEGRITY is not set
 
 #
 # IO Schedulers
 #
 CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
 CONFIG_IOSCHED_DEADLINE=y
 CONFIG_IOSCHED_CFQ=y
-# CONFIG_DEFAULT_AS is not set
 # CONFIG_DEFAULT_DEADLINE is not set
 CONFIG_DEFAULT_CFQ=y
 # CONFIG_DEFAULT_NOOP is not set
 CONFIG_DEFAULT_IOSCHED="cfq"
+# CONFIG_INLINE_SPIN_TRYLOCK is not set
+# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
+# CONFIG_INLINE_SPIN_LOCK is not set
+# CONFIG_INLINE_SPIN_LOCK_BH is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
+CONFIG_INLINE_SPIN_UNLOCK=y
+# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
+CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
+# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_READ_TRYLOCK is not set
+# CONFIG_INLINE_READ_LOCK is not set
+# CONFIG_INLINE_READ_LOCK_BH is not set
+# CONFIG_INLINE_READ_LOCK_IRQ is not set
+# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
+CONFIG_INLINE_READ_UNLOCK=y
+# CONFIG_INLINE_READ_UNLOCK_BH is not set
+CONFIG_INLINE_READ_UNLOCK_IRQ=y
+# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_WRITE_TRYLOCK is not set
+# CONFIG_INLINE_WRITE_LOCK is not set
+# CONFIG_INLINE_WRITE_LOCK_BH is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
+CONFIG_INLINE_WRITE_UNLOCK=y
+# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
+CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
+# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
+# CONFIG_MUTEX_SPIN_ON_OWNER is not set
 CONFIG_FREEZER=y
 
 #
 # System Type
 #
 CONFIG_MMU=y
-# CONFIG_ARCH_AAEC2000 is not set
 # CONFIG_ARCH_INTEGRATOR is not set
 # CONFIG_ARCH_REALVIEW is not set
-CONFIG_ARCH_VERSATILE=y
+# CONFIG_ARCH_VERSATILE is not set
+# CONFIG_ARCH_VEXPRESS is not set
 # CONFIG_ARCH_AT91 is not set
+# CONFIG_ARCH_BCMRING is not set
+# CONFIG_ARCH_HIGHBANK is not set
 # CONFIG_ARCH_CLPS711X is not set
+# CONFIG_ARCH_CNS3XXX is not set
 # CONFIG_ARCH_GEMINI is not set
+# CONFIG_ARCH_PRIMA2 is not set
 # CONFIG_ARCH_EBSA110 is not set
 # CONFIG_ARCH_EP93XX is not set
 # CONFIG_ARCH_FOOTBRIDGE is not set
 # CONFIG_ARCH_MXC is not set
-# CONFIG_ARCH_STMP3XXX is not set
+# CONFIG_ARCH_MXS is not set
 # CONFIG_ARCH_NETX is not set
 # CONFIG_ARCH_H720X is not set
-# CONFIG_ARCH_NOMADIK is not set
 # CONFIG_ARCH_IOP13XX is not set
 # CONFIG_ARCH_IOP32X is not set
 # CONFIG_ARCH_IOP33X is not set
 # CONFIG_ARCH_IXP23XX is not set
 # CONFIG_ARCH_IXP2000 is not set
 # CONFIG_ARCH_IXP4XX is not set
-# CONFIG_ARCH_L7200 is not set
+# CONFIG_ARCH_DOVE is not set
 # CONFIG_ARCH_KIRKWOOD is not set
-# CONFIG_ARCH_LOKI is not set
+# CONFIG_ARCH_LPC32XX is not set
 # CONFIG_ARCH_MV78XX0 is not set
 # CONFIG_ARCH_ORION5X is not set
 # CONFIG_ARCH_MMP is not set
 # CONFIG_ARCH_KS8695 is not set
-# CONFIG_ARCH_NS9XXX is not set
 # CONFIG_ARCH_W90X900 is not set
+# CONFIG_ARCH_TEGRA is not set
+# CONFIG_ARCH_PICOXCELL is not set
 # CONFIG_ARCH_PNX4008 is not set
 # CONFIG_ARCH_PXA is not set
 # CONFIG_ARCH_MSM is not set
+# CONFIG_ARCH_SHMOBILE is not set
 # CONFIG_ARCH_RPC is not set
 # CONFIG_ARCH_SA1100 is not set
 # CONFIG_ARCH_S3C2410 is not set
 # CONFIG_ARCH_S3C64XX is not set
-# CONFIG_ARCH_S5PC1XX is not set
+# CONFIG_ARCH_S5P64X0 is not set
+# CONFIG_ARCH_S5PC100 is not set
+# CONFIG_ARCH_S5PV210 is not set
+# CONFIG_ARCH_EXYNOS is not set
 # CONFIG_ARCH_SHARK is not set
-# CONFIG_ARCH_LH7A40X is not set
+# CONFIG_ARCH_TCC_926 is not set
 # CONFIG_ARCH_U300 is not set
+# CONFIG_ARCH_U8500 is not set
+# CONFIG_ARCH_NOMADIK is not set
 # CONFIG_ARCH_DAVINCI is not set
 # CONFIG_ARCH_OMAP is not set
-# CONFIG_ARCH_BCMRING is not set
+# CONFIG_PLAT_SPEAR is not set
+CONFIG_ARCH_BCM2708=y
+# CONFIG_ARCH_VT8500 is not set
+# CONFIG_ARCH_ZYNQ is not set
+CONFIG_GPIO_PCA953X=m
+CONFIG_KEYBOARD_GPIO_POLLED=m
 
 #
-# Versatile platform type
+# System MMU
 #
-CONFIG_ARCH_VERSATILE_PB=y
-CONFIG_MACH_VERSATILE_AB=y
+
+#
+# Broadcom BCM2708 Implementations
+#
+CONFIG_MACH_BCM2708=y
+CONFIG_BCM2708_GPIO=y
+CONFIG_BCM2708_VCMEM=y
+# CONFIG_BCM2708_NOL2CACHE is not set
+CONFIG_BCM2708_DMAER=m
 
 #
 # Processor Type
 #
-CONFIG_CPU_32=y
-CONFIG_CPU_ARM926T=y
-CONFIG_CPU_32v5=y
-CONFIG_CPU_ABRT_EV5TJ=y
-CONFIG_CPU_PABRT_LEGACY=y
-CONFIG_CPU_CACHE_VIVT=y
-CONFIG_CPU_COPY_V4WB=y
-CONFIG_CPU_TLB_V4WBI=y
+CONFIG_CPU_V6=y
+CONFIG_CPU_32v6=y
+CONFIG_CPU_ABRT_EV6=y
+CONFIG_CPU_PABRT_V6=y
+CONFIG_CPU_CACHE_V6=y
+CONFIG_CPU_CACHE_VIPT=y
+CONFIG_CPU_COPY_V6=y
+CONFIG_CPU_TLB_V6=y
+CONFIG_CPU_HAS_ASID=y
 CONFIG_CPU_CP15=y
 CONFIG_CPU_CP15_MMU=y
+CONFIG_CPU_USE_DOMAINS=y
 
 #
 # Processor Features
@@ -214,44 +299,22 @@ CONFIG_CPU_CP15_MMU=y
 CONFIG_ARM_THUMB=y
 # CONFIG_CPU_ICACHE_DISABLE is not set
 # CONFIG_CPU_DCACHE_DISABLE is not set
-# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
-# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
+# CONFIG_CPU_BPREDICT_DISABLE is not set
 CONFIG_ARM_L1_CACHE_SHIFT=5
-CONFIG_ARM_VIC=y
-CONFIG_ARM_VIC_NR=2
-CONFIG_ICST307=y
-CONFIG_COMMON_CLKDEV=y
+CONFIG_ARM_DMA_MEM_BUFFERABLE=y
+CONFIG_CPU_HAS_PMU=y
+# CONFIG_ARM_ERRATA_326103 is not set
+CONFIG_ARM_ERRATA_411920=y
+# CONFIG_ARM_ERRATA_364296 is not set
+CONFIG_PL330=y
 
 #
 # Bus support
 #
 CONFIG_ARM_AMBA=y
-CONFIG_PCI=y
-CONFIG_PCI_SYSCALL=y
+# CONFIG_PCI_SYSCALL is not set
 # CONFIG_ARCH_SUPPORTS_MSI is not set
-CONFIG_PCI_LEGACY=y
-# CONFIG_PCI_DEBUG is not set
-CONFIG_PCI_STUB=m
-CONFIG_PCI_IOV=y
-CONFIG_PCCARD=m
-# CONFIG_PCMCIA_DEBUG is not set
-CONFIG_PCMCIA=m
-CONFIG_PCMCIA_LOAD_CIS=y
-CONFIG_PCMCIA_IOCTL=y
-CONFIG_CARDBUS=y
-
-#
-# PC-card bridges
-#
-CONFIG_YENTA=m
-CONFIG_YENTA_O2=y
-CONFIG_YENTA_RICOH=y
-CONFIG_YENTA_TI=y
-CONFIG_YENTA_ENE_TUNE=y
-CONFIG_YENTA_TOSHIBA=y
-CONFIG_PD6729=m
-CONFIG_I82092=m
-CONFIG_PCCARD_NONSTATIC=m
+# CONFIG_PCCARD is not set
 
 #
 # Kernel Features
@@ -272,40 +335,72 @@ CONFIG_AEABI=y
 # CONFIG_OABI_COMPAT is not set
 # CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
 # CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
-CONFIG_HIGHMEM=y
-# CONFIG_HIGHPTE is not set
+CONFIG_HAVE_ARCH_PFN_VALID=y
+# CONFIG_HIGHMEM is not set
+CONFIG_HW_PERF_EVENTS=y
 CONFIG_SELECT_MEMORY_MODEL=y
 CONFIG_FLATMEM_MANUAL=y
-# CONFIG_DISCONTIGMEM_MANUAL is not set
-# CONFIG_SPARSEMEM_MANUAL is not set
 CONFIG_FLATMEM=y
 CONFIG_FLAT_NODE_MEM_MAP=y
+CONFIG_HAVE_MEMBLOCK=y
 CONFIG_PAGEFLAGS_EXTENDED=y
-CONFIG_SPLIT_PTLOCK_CPUS=4096
+CONFIG_SPLIT_PTLOCK_CPUS=4
+# CONFIG_COMPACTION is not set
 # CONFIG_PHYS_ADDR_T_64BIT is not set
 CONFIG_ZONE_DMA_FLAG=0
-CONFIG_BOUNCE=y
 CONFIG_VIRT_TO_BUS=y
-CONFIG_HAVE_MLOCK=y
-CONFIG_HAVE_MLOCKED_PAGE_BIT=y
 CONFIG_KSM=y
 CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
-# CONFIG_LEDS is not set
+CONFIG_NEED_PER_CPU_KM=y
+# CONFIG_CLEANCACHE is not set
+CONFIG_FORCE_MAX_ZONEORDER=11
 CONFIG_ALIGNMENT_TRAP=y
 CONFIG_UACCESS_WITH_MEMCPY=y
+CONFIG_SECCOMP=y
+CONFIG_CC_STACKPROTECTOR=y
+# CONFIG_DEPRECATED_PARAM_STRUCT is not set
 
 #
 # Boot options
 #
+CONFIG_USE_OF=y
 CONFIG_ZBOOT_ROM_TEXT=0x0
 CONFIG_ZBOOT_ROM_BSS=0x0
-CONFIG_CMDLINE=""
+# CONFIG_ARM_APPENDED_DTB is not set
+CONFIG_CMDLINE="dwc_otg.lpm_enable=0 console=ttyAMA0,115200 root=/dev/mmcblk0p3 rootwait"
+CONFIG_CMDLINE_FROM_BOOTLOADER=y
+# CONFIG_CMDLINE_EXTEND is not set
+# CONFIG_CMDLINE_FORCE is not set
 # CONFIG_XIP_KERNEL is not set
 # CONFIG_KEXEC is not set
+# CONFIG_CRASH_DUMP is not set
+# CONFIG_AUTO_ZRELADDR is not set
 
 #
 # CPU Power Management
 #
+
+#
+# CPU Frequency scaling
+#
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_TABLE=y
+CONFIG_CPU_FREQ_STAT=m
+# CONFIG_CPU_FREQ_STAT_DETAILS is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
+CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+CONFIG_CPU_FREQ_GOV_POWERSAVE=y
+CONFIG_CPU_FREQ_GOV_USERSPACE=y
+CONFIG_CPU_FREQ_GOV_ONDEMAND=y
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
+
+#
+# ARM CPU frequency scaling drivers
+#
+CONFIG_ARM_BCM2835_CPUFREQ=y
 CONFIG_CPU_IDLE=y
 CONFIG_CPU_IDLE_GOV_LADDER=y
 CONFIG_CPU_IDLE_GOV_MENU=y
@@ -317,7 +412,7 @@ CONFIG_CPU_IDLE_GOV_MENU=y
 #
 # At least one emulation must be selected
 #
-# CONFIG_VFP is not set
+CONFIG_VFP=y
 
 #
 # Userspace binary formats
@@ -331,21 +426,23 @@ CONFIG_HAVE_AOUT=y
 #
 # Power management options
 #
-CONFIG_PM=y
-# CONFIG_PM_DEBUG is not set
-CONFIG_PM_SLEEP=y
 CONFIG_SUSPEND=y
 CONFIG_SUSPEND_FREEZER=y
-# CONFIG_APM_EMULATION is not set
+CONFIG_PM_SLEEP=y
 CONFIG_PM_RUNTIME=y
+CONFIG_PM=y
+# CONFIG_PM_DEBUG is not set
+# CONFIG_APM_EMULATION is not set
+CONFIG_PM_CLK=y
+CONFIG_CPU_PM=y
 CONFIG_ARCH_SUSPEND_POSSIBLE=y
+CONFIG_ARM_CPU_SUSPEND=y
 CONFIG_NET=y
 
 #
 # Networking options
 #
 CONFIG_PACKET=y
-CONFIG_PACKET_MMAP=y
 CONFIG_UNIX=y
 CONFIG_XFRM=y
 CONFIG_XFRM_USER=m
@@ -358,17 +455,18 @@ CONFIG_NET_KEY_MIGRATE=y
 CONFIG_INET=y
 CONFIG_IP_MULTICAST=y
 CONFIG_IP_ADVANCED_ROUTER=y
-CONFIG_ASK_IP_FIB_HASH=y
-# CONFIG_IP_FIB_TRIE is not set
-CONFIG_IP_FIB_HASH=y
+# CONFIG_IP_FIB_TRIE_STATS is not set
 CONFIG_IP_MULTIPLE_TABLES=y
 CONFIG_IP_ROUTE_MULTIPATH=y
 CONFIG_IP_ROUTE_VERBOSE=y
+CONFIG_IP_ROUTE_CLASSID=y
 # CONFIG_IP_PNP is not set
 CONFIG_NET_IPIP=m
+CONFIG_NET_IPGRE_DEMUX=m
 CONFIG_NET_IPGRE=m
 CONFIG_NET_IPGRE_BROADCAST=y
 CONFIG_IP_MROUTE=y
+# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set
 CONFIG_IP_PIMSM_V1=y
 CONFIG_IP_PIMSM_V2=y
 CONFIG_ARPD=y
@@ -397,15 +495,10 @@ CONFIG_TCP_CONG_LP=m
 CONFIG_TCP_CONG_VENO=m
 CONFIG_TCP_CONG_YEAH=m
 CONFIG_TCP_CONG_ILLINOIS=m
-# CONFIG_DEFAULT_BIC is not set
-# CONFIG_DEFAULT_CUBIC is not set
-# CONFIG_DEFAULT_HTCP is not set
-# CONFIG_DEFAULT_VEGAS is not set
-# CONFIG_DEFAULT_WESTWOOD is not set
 CONFIG_DEFAULT_RENO=y
 CONFIG_DEFAULT_TCP_CONG="reno"
 # CONFIG_TCP_MD5SIG is not set
-CONFIG_IPV6=m
+CONFIG_IPV6=y
 # CONFIG_IPV6_PRIVACY is not set
 # CONFIG_IPV6_ROUTER_PREF is not set
 # CONFIG_IPV6_OPTIMISTIC_DAD is not set
@@ -420,12 +513,14 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=m
 CONFIG_INET6_XFRM_MODE_BEET=m
 CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
 CONFIG_IPV6_SIT=m
+# CONFIG_IPV6_SIT_6RD is not set
 CONFIG_IPV6_NDISC_NODETYPE=y
 CONFIG_IPV6_TUNNEL=m
 CONFIG_IPV6_MULTIPLE_TABLES=y
 # CONFIG_IPV6_SUBTREES is not set
 # CONFIG_IPV6_MROUTE is not set
 # CONFIG_NETWORK_SECMARK is not set
+CONFIG_NETWORK_PHY_TIMESTAMPING=y
 CONFIG_NETFILTER=y
 # CONFIG_NETFILTER_DEBUG is not set
 CONFIG_NETFILTER_ADVANCED=y
@@ -438,9 +533,10 @@ CONFIG_NETFILTER_NETLINK=m
 CONFIG_NETFILTER_NETLINK_QUEUE=m
 CONFIG_NETFILTER_NETLINK_LOG=m
 CONFIG_NF_CONNTRACK=m
-CONFIG_NF_CT_ACCT=y
 CONFIG_NF_CONNTRACK_MARK=y
+# CONFIG_NF_CONNTRACK_ZONES is not set
 CONFIG_NF_CONNTRACK_EVENTS=y
+CONFIG_NF_CONNTRACK_TIMESTAMP=y
 CONFIG_NF_CT_PROTO_DCCP=m
 CONFIG_NF_CT_PROTO_GRE=m
 CONFIG_NF_CT_PROTO_SCTP=m
@@ -449,7 +545,9 @@ CONFIG_NF_CONNTRACK_AMANDA=m
 CONFIG_NF_CONNTRACK_FTP=m
 CONFIG_NF_CONNTRACK_H323=m
 CONFIG_NF_CONNTRACK_IRC=m
+CONFIG_NF_CONNTRACK_BROADCAST=m
 CONFIG_NF_CONNTRACK_NETBIOS_NS=m
+CONFIG_NF_CONNTRACK_SNMP=m
 CONFIG_NF_CONNTRACK_PPTP=m
 CONFIG_NF_CONNTRACK_SANE=m
 CONFIG_NF_CONNTRACK_SIP=m
@@ -457,10 +555,24 @@ CONFIG_NF_CONNTRACK_TFTP=m
 CONFIG_NF_CT_NETLINK=m
 CONFIG_NETFILTER_TPROXY=m
 CONFIG_NETFILTER_XTABLES=m
+
+#
+# Xtables combined modules
+#
+CONFIG_NETFILTER_XT_MARK=m
+CONFIG_NETFILTER_XT_CONNMARK=m
+
+#
+# Xtables targets
+#
+CONFIG_NETFILTER_XT_TARGET_AUDIT=m
+CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
 CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
 CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
+CONFIG_NETFILTER_XT_TARGET_CT=m
 CONFIG_NETFILTER_XT_TARGET_DSCP=m
 CONFIG_NETFILTER_XT_TARGET_HL=m
+CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
 CONFIG_NETFILTER_XT_TARGET_LED=m
 CONFIG_NETFILTER_XT_TARGET_IMQ=m
 CONFIG_NETFILTER_XT_TARGET_MARK=m
@@ -468,28 +580,38 @@ CONFIG_NETFILTER_XT_TARGET_NFLOG=m
 CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
 CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
 CONFIG_NETFILTER_XT_TARGET_RATEEST=m
+CONFIG_NETFILTER_XT_TARGET_TEE=m
 CONFIG_NETFILTER_XT_TARGET_TPROXY=m
 CONFIG_NETFILTER_XT_TARGET_TRACE=m
 CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
 CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
+
+#
+# Xtables matches
+#
+CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
 CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
 CONFIG_NETFILTER_XT_MATCH_COMMENT=m
 CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
 CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
 CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
 CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
+CONFIG_NETFILTER_XT_MATCH_CPU=m
 CONFIG_NETFILTER_XT_MATCH_DCCP=m
+CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
 CONFIG_NETFILTER_XT_MATCH_DSCP=m
 CONFIG_NETFILTER_XT_MATCH_ESP=m
 CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
 CONFIG_NETFILTER_XT_MATCH_HELPER=m
 CONFIG_NETFILTER_XT_MATCH_HL=m
 CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
+CONFIG_NETFILTER_XT_MATCH_IPVS=m
 CONFIG_NETFILTER_XT_MATCH_LENGTH=m
 CONFIG_NETFILTER_XT_MATCH_LIMIT=m
 CONFIG_NETFILTER_XT_MATCH_MAC=m
 CONFIG_NETFILTER_XT_MATCH_MARK=m
 CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
+CONFIG_NETFILTER_XT_MATCH_OSF=m
 CONFIG_NETFILTER_XT_MATCH_OWNER=m
 CONFIG_NETFILTER_XT_MATCH_POLICY=m
 CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
@@ -498,7 +620,6 @@ CONFIG_NETFILTER_XT_MATCH_QUOTA=m
 CONFIG_NETFILTER_XT_MATCH_RATEEST=m
 CONFIG_NETFILTER_XT_MATCH_REALM=m
 CONFIG_NETFILTER_XT_MATCH_RECENT=m
-CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT=y
 CONFIG_NETFILTER_XT_MATCH_SCTP=m
 CONFIG_NETFILTER_XT_MATCH_SOCKET=m
 CONFIG_NETFILTER_XT_MATCH_STATE=m
@@ -509,7 +630,7 @@ CONFIG_NETFILTER_XT_MATCH_STRING=m
 CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
 CONFIG_NETFILTER_XT_MATCH_TIME=m
 CONFIG_NETFILTER_XT_MATCH_U32=m
-CONFIG_NETFILTER_XT_MATCH_OSF=m
+# CONFIG_IP_SET is not set
 CONFIG_IP_VS=m
 CONFIG_IP_VS_IPV6=y
 # CONFIG_IP_VS_DEBUG is not set
@@ -520,8 +641,10 @@ CONFIG_IP_VS_TAB_BITS=12
 #
 # CONFIG_IP_VS_PROTO_TCP is not set
 # CONFIG_IP_VS_PROTO_UDP is not set
+# CONFIG_IP_VS_PROTO_AH_ESP is not set
 # CONFIG_IP_VS_PROTO_ESP is not set
 # CONFIG_IP_VS_PROTO_AH is not set
+# CONFIG_IP_VS_PROTO_SCTP is not set
 
 #
 # IPVS scheduler
@@ -540,6 +663,7 @@ CONFIG_IP_VS_TAB_BITS=12
 #
 # IPVS application helper
 #
+# CONFIG_IP_VS_NFCT is not set
 
 #
 # IP: Netfilter Configuration
@@ -549,7 +673,6 @@ CONFIG_NF_CONNTRACK_IPV4=m
 CONFIG_NF_CONNTRACK_PROC_COMPAT=y
 CONFIG_IP_NF_QUEUE=m
 CONFIG_IP_NF_IPTABLES=m
-CONFIG_IP_NF_MATCH_ADDRTYPE=m
 CONFIG_IP_NF_MATCH_AH=m
 CONFIG_IP_NF_MATCH_ECN=m
 CONFIG_IP_NF_MATCH_TTL=m
@@ -587,6 +710,7 @@ CONFIG_IP_NF_MATCH_IPP2P=m
 #
 # IPv6: Netfilter Configuration
 #
+CONFIG_NF_DEFRAG_IPV6=m
 CONFIG_NF_CONNTRACK_IPV6=m
 CONFIG_IP6_NF_QUEUE=m
 CONFIG_IP6_NF_IPTABLES=m
@@ -636,9 +760,14 @@ CONFIG_ATM_CLIP_NO_ICMP=y
 # CONFIG_ATM_LANE is not set
 CONFIG_ATM_BR2684=m
 # CONFIG_ATM_BR2684_IPFILTER is not set
+CONFIG_L2TP=m
+CONFIG_L2TP_V3=y
+CONFIG_L2TP_IP=m
+CONFIG_L2TP_ETH=m
 CONFIG_STP=m
 CONFIG_GARP=m
 CONFIG_BRIDGE=m
+CONFIG_BRIDGE_IGMP_SNOOPING=y
 CONFIG_NET_DSA=y
 CONFIG_NET_DSA_TAG_DSA=y
 CONFIG_NET_DSA_TAG_EDSA=y
@@ -661,6 +790,7 @@ CONFIG_LLC=m
 # CONFIG_WAN_ROUTER is not set
 # CONFIG_PHONET is not set
 CONFIG_IEEE802154=m
+CONFIG_IEEE802154_6LOWPAN=m
 CONFIG_NET_SCHED=y
 
 #
@@ -673,6 +803,7 @@ CONFIG_NET_SCH_ATM=m
 CONFIG_NET_SCH_PRIO=m
 CONFIG_NET_SCH_MULTIQ=m
 CONFIG_NET_SCH_RED=m
+CONFIG_NET_SCH_SFB=m
 CONFIG_NET_SCH_SFQ=m
 CONFIG_NET_SCH_TEQL=m
 CONFIG_NET_SCH_TBF=m
@@ -680,6 +811,9 @@ CONFIG_NET_SCH_GRED=m
 CONFIG_NET_SCH_DSMARK=m
 CONFIG_NET_SCH_NETEM=m
 CONFIG_NET_SCH_DRR=m
+CONFIG_NET_SCH_MQPRIO=m
+CONFIG_NET_SCH_CHOKE=m
+CONFIG_NET_SCH_QFQ=m
 CONFIG_NET_SCH_INGRESS=m
 
 #
@@ -689,7 +823,6 @@ CONFIG_NET_CLS=y
 CONFIG_NET_CLS_BASIC=m
 CONFIG_NET_CLS_TCINDEX=m
 CONFIG_NET_CLS_ROUTE4=m
-CONFIG_NET_CLS_ROUTE=y
 CONFIG_NET_CLS_FW=m
 CONFIG_NET_CLS_U32=m
 CONFIG_CLS_U32_PERF=y
@@ -712,11 +845,15 @@ CONFIG_NET_ACT_MIRRED=m
 CONFIG_NET_ACT_IPT=m
 CONFIG_NET_ACT_NAT=m
 CONFIG_NET_ACT_PEDIT=m
-# CONFIG_NET_ACT_SIMP is not set
+CONFIG_NET_ACT_SIMP=m
 CONFIG_NET_ACT_SKBEDIT=m
+CONFIG_NET_ACT_CSUM=m
 CONFIG_NET_CLS_IND=y
 CONFIG_NET_SCH_FIFO=y
 # CONFIG_DCB is not set
+CONFIG_DNS_RESOLVER=y
+CONFIG_BATMAN_ADV=m
+# CONFIG_BATMAN_ADV_DEBUG is not set
 
 #
 # Network testing
@@ -763,12 +900,10 @@ CONFIG_KS959_DONGLE=m
 #
 CONFIG_USB_IRDA=m
 CONFIG_SIGMATEL_FIR=m
-# CONFIG_TOSHIBA_FIR is not set
-CONFIG_VLSI_FIR=m
 CONFIG_MCS_FIR=m
 CONFIG_BT=m
-CONFIG_BT_L2CAP=m
-CONFIG_BT_SCO=m
+CONFIG_BT_L2CAP=y
+CONFIG_BT_SCO=y
 CONFIG_BT_RFCOMM=m
 CONFIG_BT_RFCOMM_TTY=y
 CONFIG_BT_BNEP=m
@@ -785,30 +920,33 @@ CONFIG_BT_HCIBTSDIO=m
 CONFIG_BT_HCIUART=m
 CONFIG_BT_HCIUART_H4=y
 CONFIG_BT_HCIUART_BCSP=y
+CONFIG_BT_HCIUART_ATH3K=y
 CONFIG_BT_HCIUART_LL=y
 CONFIG_BT_HCIBCM203X=m
 CONFIG_BT_HCIBPA10X=m
 CONFIG_BT_HCIBFUSB=m
-CONFIG_BT_HCIDTL1=m
-CONFIG_BT_HCIBT3C=m
-CONFIG_BT_HCIBLUECARD=m
-CONFIG_BT_HCIBTUART=m
 CONFIG_BT_HCIVHCI=m
 CONFIG_BT_MRVL=m
 CONFIG_BT_MRVL_SDIO=m
+CONFIG_BT_ATH3K=m
+CONFIG_BT_WILINK=m
 CONFIG_AF_RXRPC=m
 # CONFIG_AF_RXRPC_DEBUG is not set
 CONFIG_RXKAD=m
 CONFIG_FIB_RULES=y
 CONFIG_WIRELESS=y
+CONFIG_WIRELESS_EXT=y
+CONFIG_WEXT_CORE=y
+CONFIG_WEXT_PROC=y
+CONFIG_WEXT_SPY=y
+CONFIG_WEXT_PRIV=y
 CONFIG_CFG80211=m
 # CONFIG_NL80211_TESTMODE is not set
 # CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
 # CONFIG_CFG80211_REG_DEBUG is not set
 # CONFIG_CFG80211_DEFAULT_PS is not set
-CONFIG_CFG80211_DEFAULT_PS_VALUE=0
-CONFIG_WIRELESS_OLD_REGULATORY=y
-CONFIG_WIRELESS_EXT=y
+# CONFIG_CFG80211_INTERNAL_REGDB is not set
+CONFIG_CFG80211_WEXT=y
 CONFIG_WIRELESS_EXT_SYSFS=y
 CONFIG_LIB80211=m
 CONFIG_LIB80211_CRYPT_WEP=m
@@ -818,9 +956,9 @@ CONFIG_LIB80211_CRYPT_TKIP=m
 CONFIG_MAC80211=m
 CONFIG_MAC80211_HAS_RC=y
 CONFIG_MAC80211_RC_MINSTREL=y
-# CONFIG_MAC80211_RC_DEFAULT_PID is not set
+CONFIG_MAC80211_RC_MINSTREL_HT=y
 CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
-CONFIG_MAC80211_RC_DEFAULT="minstrel"
+CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
 CONFIG_MAC80211_MESH=y
 CONFIG_MAC80211_LEDS=y
 # CONFIG_MAC80211_DEBUG_MENU is not set
@@ -828,7 +966,14 @@ CONFIG_MAC80211_LEDS=y
 CONFIG_RFKILL=m
 CONFIG_RFKILL_LEDS=y
 CONFIG_RFKILL_INPUT=y
+CONFIG_RFKILL_REGULATOR=m
+CONFIG_RFKILL_GPIO=m
 # CONFIG_NET_9P is not set
+# CONFIG_CAIF is not set
+CONFIG_CEPH_LIB=m
+# CONFIG_CEPH_LIB_PRETTYDEBUG is not set
+# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set
+# CONFIG_NFC is not set
 
 #
 # Device Drivers
@@ -847,14 +992,14 @@ CONFIG_EXTRA_FIRMWARE=""
 # CONFIG_DEBUG_DRIVER is not set
 # CONFIG_DEBUG_DEVRES is not set
 # CONFIG_SYS_HYPERVISOR is not set
+CONFIG_REGMAP=y
+CONFIG_REGMAP_I2C=m
 CONFIG_CONNECTOR=m
 CONFIG_MTD=m
-# CONFIG_MTD_DEBUG is not set
 CONFIG_MTD_TESTS=m
-CONFIG_MTD_CONCAT=m
-CONFIG_MTD_PARTITIONS=y
 # CONFIG_MTD_REDBOOT_PARTS is not set
 # CONFIG_MTD_AFS_PARTS is not set
+CONFIG_MTD_OF_PARTS=m
 CONFIG_MTD_AR7_PARTS=m
 
 #
@@ -869,7 +1014,9 @@ CONFIG_MTD_BLOCK=m
 # CONFIG_INFTL is not set
 # CONFIG_RFD_FTL is not set
 # CONFIG_SSFDC is not set
+CONFIG_SM_FTL=m
 # CONFIG_MTD_OOPS is not set
+# CONFIG_MTD_SWAP is not set
 
 #
 # RAM/ROM/Flash chip drivers
@@ -896,13 +1043,11 @@ CONFIG_MTD_CFI_I2=y
 # CONFIG_MTD_COMPLEX_MAPPINGS is not set
 CONFIG_MTD_PHYSMAP=m
 # CONFIG_MTD_PHYSMAP_COMPAT is not set
-# CONFIG_MTD_INTEL_VR_NOR is not set
 # CONFIG_MTD_PLATRAM is not set
 
 #
 # Self-contained MTD device drivers
 #
-# CONFIG_MTD_PMC551 is not set
 # CONFIG_MTD_SLRAM is not set
 # CONFIG_MTD_PHRAM is not set
 # CONFIG_MTD_MTDRAM is not set
@@ -914,7 +1059,20 @@ CONFIG_MTD_PHYSMAP=m
 # CONFIG_MTD_DOC2000 is not set
 # CONFIG_MTD_DOC2001 is not set
 # CONFIG_MTD_DOC2001PLUS is not set
-# CONFIG_MTD_NAND is not set
+# CONFIG_MTD_DOCG3 is not set
+CONFIG_MTD_NAND_ECC=m
+# CONFIG_MTD_NAND_ECC_SMC is not set
+CONFIG_MTD_NAND=m
+# CONFIG_MTD_NAND_VERIFY_WRITE is not set
+# CONFIG_MTD_NAND_ECC_BCH is not set
+# CONFIG_MTD_SM_COMMON is not set
+# CONFIG_MTD_NAND_MUSEUM_IDS is not set
+# CONFIG_MTD_NAND_GPIO is not set
+CONFIG_MTD_NAND_IDS=m
+# CONFIG_MTD_NAND_DISKONCHIP is not set
+# CONFIG_MTD_NAND_NANDSIM is not set
+CONFIG_MTD_NAND_PLATFORM=m
+# CONFIG_MTD_ALAUDA is not set
 # CONFIG_MTD_ONENAND is not set
 
 #
@@ -922,19 +1080,27 @@ CONFIG_MTD_PHYSMAP=m
 #
 CONFIG_MTD_LPDDR=m
 CONFIG_MTD_QINFO_PROBE=m
-
-#
-# UBI - Unsorted block images
-#
 CONFIG_MTD_UBI=m
 CONFIG_MTD_UBI_WL_THRESHOLD=4096
 CONFIG_MTD_UBI_BEB_RESERVE=1
 # CONFIG_MTD_UBI_GLUEBI is not set
-
-#
-# UBI debugging options
-#
 # CONFIG_MTD_UBI_DEBUG is not set
+CONFIG_DTC=y
+CONFIG_OF=y
+
+#
+# Device Tree and Open Firmware support
+#
+CONFIG_PROC_DEVICETREE=y
+CONFIG_OF_FLATTREE=y
+CONFIG_OF_EARLY_FLATTREE=y
+CONFIG_OF_ADDRESS=y
+CONFIG_OF_IRQ=y
+CONFIG_OF_DEVICE=y
+CONFIG_OF_GPIO=y
+CONFIG_OF_I2C=y
+CONFIG_OF_NET=y
+CONFIG_OF_MDIO=y
 CONFIG_PARPORT=m
 # CONFIG_PARPORT_PC is not set
 # CONFIG_PARPORT_GSC is not set
@@ -942,15 +1108,13 @@ CONFIG_PARPORT_AX88796=m
 CONFIG_PARPORT_1284=y
 CONFIG_PARPORT_NOT_PC=y
 CONFIG_BLK_DEV=y
-# CONFIG_BLK_CPQ_DA is not set
-# CONFIG_BLK_CPQ_CISS_DA is not set
-# CONFIG_BLK_DEV_DAC960 is not set
-# CONFIG_BLK_DEV_UMEM is not set
 # CONFIG_BLK_DEV_COW_COMMON is not set
 CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
 CONFIG_BLK_DEV_CRYPTOLOOP=m
+# CONFIG_BLK_DEV_DRBD is not set
 CONFIG_BLK_DEV_NBD=m
-CONFIG_BLK_DEV_SX8=m
+CONFIG_BLK_DEV_OSD=m
 # CONFIG_BLK_DEV_UB is not set
 CONFIG_BLK_DEV_RAM=y
 CONFIG_BLK_DEV_RAM_COUNT=8
@@ -960,15 +1124,24 @@ CONFIG_BLK_DEV_RAM_SIZE=16384
 CONFIG_ATA_OVER_ETH=m
 CONFIG_MG_DISK=m
 CONFIG_MG_DISK_RES=0
+CONFIG_BLK_DEV_RBD=m
+CONFIG_SENSORS_LIS3LV02D=m
 CONFIG_MISC_DEVICES=y
-# CONFIG_PHANTOM is not set
-# CONFIG_SGI_IOC4 is not set
-CONFIG_TIFM_CORE=m
-CONFIG_TIFM_7XX1=m
+# CONFIG_AD525X_DPOT is not set
+# CONFIG_ATMEL_PWM is not set
 CONFIG_ICS932S401=m
 CONFIG_ENCLOSURE_SERVICES=m
-CONFIG_HP_ILO=m
+CONFIG_APDS9802ALS=m
 CONFIG_ISL29003=m
+CONFIG_ISL29020=m
+CONFIG_SENSORS_TSL2550=m
+CONFIG_SENSORS_BH1780=m
+CONFIG_SENSORS_BH1770=m
+CONFIG_SENSORS_APDS990X=m
+CONFIG_HMC6352=m
+CONFIG_DS1682=m
+CONFIG_BMP085=m
+CONFIG_USB_SWITCH_FSA9480=m
 CONFIG_C2PORT=m
 
 #
@@ -978,17 +1151,28 @@ CONFIG_EEPROM_AT24=m
 CONFIG_EEPROM_LEGACY=m
 CONFIG_EEPROM_MAX6875=m
 CONFIG_EEPROM_93CX6=m
-CONFIG_CB710_CORE=m
-# CONFIG_CB710_DEBUG is not set
-CONFIG_CB710_DEBUG_ASSUMPTIONS=y
-CONFIG_HAVE_IDE=y
-# CONFIG_IDE is not set
+CONFIG_IWMC3200TOP=m
+# CONFIG_IWMC3200TOP_DEBUG is not set
+# CONFIG_IWMC3200TOP_DEBUGFS is not set
+
+#
+# Texas Instruments shared transport line discipline
+#
+CONFIG_TI_ST=m
+CONFIG_SENSORS_LIS3_I2C=m
+
+#
+# Altera FPGA firmware download module
+#
+# CONFIG_ALTERA_STAPL is not set
+CONFIG_BCM2708_VCHIQ=y
 
 #
 # SCSI device support
 #
-CONFIG_RAID_ATTRS=y
-CONFIG_SCSI=m
+CONFIG_SCSI_MOD=y
+CONFIG_RAID_ATTRS=m
+CONFIG_SCSI=y
 CONFIG_SCSI_DMA=y
 # CONFIG_SCSI_TGT is not set
 CONFIG_SCSI_NETLINK=y
@@ -997,7 +1181,7 @@ CONFIG_SCSI_PROC_FS=y
 #
 # SCSI support type (disk, tape, CD-ROM)
 #
-CONFIG_BLK_DEV_SD=m
+CONFIG_BLK_DEV_SD=y
 # CONFIG_CHR_DEV_ST is not set
 # CONFIG_CHR_DEV_OSST is not set
 CONFIG_BLK_DEV_SR=m
@@ -1021,152 +1205,55 @@ CONFIG_SCSI_SAS_ATTRS=m
 CONFIG_SCSI_SAS_LIBSAS=m
 CONFIG_SCSI_SAS_ATA=y
 CONFIG_SCSI_SAS_HOST_SMP=y
-CONFIG_SCSI_SAS_LIBSAS_DEBUG=y
 CONFIG_SCSI_SRP_ATTRS=m
 CONFIG_SCSI_LOWLEVEL=y
 CONFIG_ISCSI_TCP=m
-CONFIG_SCSI_CXGB3_ISCSI=m
-CONFIG_SCSI_BNX2_ISCSI=m
-CONFIG_BE2ISCSI=m
-CONFIG_BLK_DEV_3W_XXXX_RAID=m
-CONFIG_SCSI_3W_9XXX=m
-# CONFIG_SCSI_ACARD is not set
-CONFIG_SCSI_AACRAID=m
-CONFIG_SCSI_AIC7XXX=m
-CONFIG_AIC7XXX_CMDS_PER_DEVICE=253
-CONFIG_AIC7XXX_RESET_DELAY_MS=15000
-# CONFIG_AIC7XXX_BUILD_FIRMWARE is not set
-# CONFIG_AIC7XXX_DEBUG_ENABLE is not set
-CONFIG_AIC7XXX_DEBUG_MASK=0
-# CONFIG_AIC7XXX_REG_PRETTY_PRINT is not set
-# CONFIG_SCSI_AIC7XXX_OLD is not set
-CONFIG_SCSI_AIC79XX=m
-CONFIG_AIC79XX_CMDS_PER_DEVICE=32
-CONFIG_AIC79XX_RESET_DELAY_MS=15000
-# CONFIG_AIC79XX_BUILD_FIRMWARE is not set
-# CONFIG_AIC79XX_DEBUG_ENABLE is not set
-CONFIG_AIC79XX_DEBUG_MASK=0
-# CONFIG_AIC79XX_REG_PRETTY_PRINT is not set
-CONFIG_SCSI_AIC94XX=m
-# CONFIG_AIC94XX_DEBUG is not set
-CONFIG_SCSI_MVSAS=m
-CONFIG_SCSI_MVSAS_DEBUG=y
-CONFIG_SCSI_DPT_I2O=m
-# CONFIG_SCSI_ADVANSYS is not set
-CONFIG_SCSI_ARCMSR=m
-CONFIG_MEGARAID_NEWGEN=y
-CONFIG_MEGARAID_MM=m
-CONFIG_MEGARAID_MAILBOX=m
-CONFIG_MEGARAID_LEGACY=m
-CONFIG_MEGARAID_SAS=m
-CONFIG_SCSI_MPT2SAS=m
-CONFIG_SCSI_MPT2SAS_MAX_SGE=128
-# CONFIG_SCSI_MPT2SAS_LOGGING is not set
-CONFIG_SCSI_HPTIOP=m
+CONFIG_ISCSI_BOOT_SYSFS=m
 CONFIG_LIBFC=m
 CONFIG_LIBFCOE=m
-CONFIG_FCOE=m
-CONFIG_SCSI_DMX3191D=m
-CONFIG_SCSI_FUTURE_DOMAIN=m
-CONFIG_SCSI_IPS=m
-CONFIG_SCSI_INITIO=m
-CONFIG_SCSI_INIA100=m
-CONFIG_SCSI_STEX=m
-CONFIG_SCSI_SYM53C8XX_2=m
-CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
-CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
-CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
-CONFIG_SCSI_SYM53C8XX_MMIO=y
-CONFIG_SCSI_IPR=m
-CONFIG_SCSI_IPR_TRACE=y
-CONFIG_SCSI_IPR_DUMP=y
-CONFIG_SCSI_QLOGIC_1280=m
-CONFIG_SCSI_QLA_FC=m
-CONFIG_SCSI_QLA_ISCSI=m
-CONFIG_SCSI_LPFC=m
-CONFIG_SCSI_DC395x=m
-CONFIG_SCSI_DC390T=m
-# CONFIG_SCSI_NSP32 is not set
 # CONFIG_SCSI_DEBUG is not set
-CONFIG_SCSI_PMCRAID=m
-# CONFIG_SCSI_SRP is not set
-CONFIG_SCSI_BFA_FC=m
-CONFIG_SCSI_LOWLEVEL_PCMCIA=y
-CONFIG_PCMCIA_AHA152X=m
-CONFIG_PCMCIA_FDOMAIN=m
-CONFIG_PCMCIA_NINJA_SCSI=m
-CONFIG_PCMCIA_QLOGIC=m
-CONFIG_PCMCIA_SYM53C500=m
 CONFIG_SCSI_DH=m
 CONFIG_SCSI_DH_RDAC=m
 CONFIG_SCSI_DH_HP_SW=m
 CONFIG_SCSI_DH_EMC=m
 CONFIG_SCSI_DH_ALUA=m
-# CONFIG_SCSI_OSD_INITIATOR is not set
+CONFIG_SCSI_OSD_INITIATOR=m
+CONFIG_SCSI_OSD_ULD=m
+CONFIG_SCSI_OSD_DPRINT_SENSE=1
+# CONFIG_SCSI_OSD_DEBUG is not set
 CONFIG_ATA=m
 # CONFIG_ATA_NONSTANDARD is not set
 CONFIG_ATA_VERBOSE_ERROR=y
 CONFIG_SATA_PMP=y
-CONFIG_SATA_AHCI=m
-CONFIG_SATA_SIL24=m
+
+#
+# Controllers with non-SFF native interface
+#
+CONFIG_SATA_AHCI_PLATFORM=m
 CONFIG_ATA_SFF=y
-CONFIG_SATA_SVW=m
-CONFIG_ATA_PIIX=m
+
+#
+# SFF controllers with custom DMA interface
+#
+CONFIG_ATA_BMDMA=y
+
+#
+# SATA SFF controllers with BMDMA
+#
 CONFIG_SATA_MV=m
-CONFIG_SATA_NV=m
-CONFIG_PDC_ADMA=m
-CONFIG_SATA_QSTOR=m
-CONFIG_SATA_PROMISE=m
-CONFIG_SATA_SX4=m
-CONFIG_SATA_SIL=m
-CONFIG_SATA_SIS=m
-CONFIG_SATA_ULI=m
-CONFIG_SATA_VIA=m
-CONFIG_SATA_VITESSE=m
-CONFIG_SATA_INIC162X=m
-CONFIG_PATA_ALI=m
-CONFIG_PATA_AMD=m
-CONFIG_PATA_ARTOP=m
-CONFIG_PATA_ATP867X=m
-CONFIG_PATA_ATIIXP=m
-CONFIG_PATA_CMD640_PCI=m
-CONFIG_PATA_CMD64X=m
-CONFIG_PATA_CS5520=m
-CONFIG_PATA_CS5530=m
-CONFIG_PATA_CYPRESS=m
-CONFIG_PATA_EFAR=m
-CONFIG_ATA_GENERIC=m
-CONFIG_PATA_HPT366=m
-CONFIG_PATA_HPT37X=m
-CONFIG_PATA_HPT3X2N=m
-CONFIG_PATA_HPT3X3=m
-CONFIG_PATA_HPT3X3_DMA=y
-CONFIG_PATA_IT821X=m
-CONFIG_PATA_IT8213=m
-CONFIG_PATA_JMICRON=m
-CONFIG_PATA_TRIFLEX=m
-CONFIG_PATA_MARVELL=m
-CONFIG_PATA_MPIIX=m
-CONFIG_PATA_OLDPIIX=m
-CONFIG_PATA_NETCELL=m
-CONFIG_PATA_NINJA32=m
-CONFIG_PATA_NS87410=m
-CONFIG_PATA_NS87415=m
-CONFIG_PATA_OPTI=m
-CONFIG_PATA_OPTIDMA=m
-CONFIG_PATA_PCMCIA=m
-CONFIG_PATA_PDC_OLD=m
-CONFIG_PATA_RADISYS=m
-CONFIG_PATA_RDC=m
-CONFIG_PATA_RZ1000=m
-CONFIG_PATA_SC1200=m
-CONFIG_PATA_SERVERWORKS=m
-CONFIG_PATA_PDC2027X=m
-CONFIG_PATA_SIL680=m
-CONFIG_PATA_SIS=m
-CONFIG_PATA_VIA=m
-CONFIG_PATA_WINBOND=m
-CONFIG_PATA_SCH=m
+
+#
+# PATA SFF controllers with BMDMA
+#
+CONFIG_PATA_ARASAN_CF=m
+
+#
+# PIO-only SFF controllers
+#
+
+#
+# Generic fallback / legacy drivers
+#
 CONFIG_MD=y
 CONFIG_BLK_DEV_MD=m
 CONFIG_MD_LINEAR=m
@@ -1174,15 +1261,19 @@ CONFIG_MD_RAID0=m
 CONFIG_MD_RAID1=m
 CONFIG_MD_RAID10=m
 CONFIG_MD_RAID456=m
-CONFIG_MD_RAID6_PQ=m
-CONFIG_ASYNC_RAID6_TEST=m
 CONFIG_MD_MULTIPATH=m
 # CONFIG_MD_FAULTY is not set
 CONFIG_BLK_DEV_DM=m
 # CONFIG_DM_DEBUG is not set
+CONFIG_DM_BUFIO=m
+CONFIG_DM_PERSISTENT_DATA=m
 CONFIG_DM_CRYPT=m
 CONFIG_DM_SNAPSHOT=m
+CONFIG_DM_THIN_PROVISIONING=m
+# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set
+# CONFIG_DM_DEBUG_SPACE_MAPS is not set
 CONFIG_DM_MIRROR=m
+CONFIG_DM_RAID=m
 CONFIG_DM_LOG_USERSPACE=m
 CONFIG_DM_ZERO=m
 CONFIG_DM_MULTIPATH=m
@@ -1190,37 +1281,12 @@ CONFIG_DM_MULTIPATH_QL=m
 CONFIG_DM_MULTIPATH_ST=m
 CONFIG_DM_DELAY=m
 CONFIG_DM_UEVENT=y
-CONFIG_FUSION=y
-CONFIG_FUSION_SPI=m
-CONFIG_FUSION_FC=m
-CONFIG_FUSION_SAS=m
-CONFIG_FUSION_MAX_SGE=128
-CONFIG_FUSION_CTL=m
-# CONFIG_FUSION_LOGGING is not set
-
-#
-# IEEE 1394 (FireWire) support
-#
-
-#
-# You can enable one or both FireWire driver stacks.
-#
-
-#
-# See the help texts for more information.
-#
-CONFIG_FIREWIRE=m
-CONFIG_FIREWIRE_OHCI=m
-CONFIG_FIREWIRE_OHCI_DEBUG=y
-CONFIG_FIREWIRE_SBP2=m
-CONFIG_FIREWIRE_NET=m
-# CONFIG_IEEE1394 is not set
-# CONFIG_I2O is not set
+CONFIG_DM_FLAKEY=m
+# CONFIG_TARGET_CORE is not set
 CONFIG_NETDEVICES=y
-CONFIG_IFB=m
-CONFIG_DUMMY=m
+CONFIG_NET_CORE=y
 CONFIG_BONDING=m
-CONFIG_MACVLAN=m
+CONFIG_DUMMY=m
 CONFIG_EQUALIZER=m
 CONFIG_IMQ=m
 # CONFIG_IMQ_BEHAVIOR_AA is not set
@@ -1228,9 +1294,60 @@ CONFIG_IMQ_BEHAVIOR_AB=y
 # CONFIG_IMQ_BEHAVIOR_BA is not set
 # CONFIG_IMQ_BEHAVIOR_BB is not set
 CONFIG_IMQ_NUM_DEVS=2
+CONFIG_MII=m
+CONFIG_IEEE802154_DRIVERS=m
+CONFIG_IEEE802154_FAKEHARD=m
+CONFIG_IFB=m
+CONFIG_MACVLAN=m
+CONFIG_MACVTAP=m
+# CONFIG_NETCONSOLE is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
 CONFIG_TUN=m
 CONFIG_VETH=m
-# CONFIG_ARCNET is not set
+CONFIG_ATM_DRIVERS=y
+# CONFIG_ATM_DUMMY is not set
+CONFIG_ATM_TCP=m
+
+#
+# CAIF transport drivers
+#
+CONFIG_ETHERNET=y
+CONFIG_NET_VENDOR_BROADCOM=y
+CONFIG_B44=m
+CONFIG_NET_VENDOR_CHELSIO=y
+CONFIG_DM9000=m
+# CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL is not set
+CONFIG_DNET=m
+CONFIG_NET_VENDOR_DLINK=y
+CONFIG_DE600=m
+CONFIG_DE620=m
+CONFIG_NET_VENDOR_FARADAY=y
+# CONFIG_FTMAC100 is not set
+# CONFIG_FTGMAC100 is not set
+CONFIG_NET_VENDOR_INTEL=y
+CONFIG_NET_VENDOR_I825XX=y
+CONFIG_NET_VENDOR_MARVELL=y
+CONFIG_NET_VENDOR_MICREL=y
+CONFIG_KS8842=m
+CONFIG_KS8851_MLL=m
+CONFIG_NET_VENDOR_NATSEMI=y
+CONFIG_NET_VENDOR_8390=y
+CONFIG_AX88796=m
+CONFIG_AX88796_93CX6=y
+CONFIG_ETHOC=m
+CONFIG_NET_VENDOR_SEEQ=y
+CONFIG_SEEQ8005=m
+CONFIG_NET_VENDOR_SMSC=y
+CONFIG_SMC91X=m
+CONFIG_SMC911X=m
+CONFIG_SMSC911X=m
+# CONFIG_SMSC911X_ARCH_HOOKS is not set
+CONFIG_NET_VENDOR_STMICRO=y
+CONFIG_STMMAC_ETH=m
+# CONFIG_STMMAC_DA is not set
+CONFIG_STMMAC_RING=y
+# CONFIG_STMMAC_CHAINED is not set
 CONFIG_PHYLIB=y
 
 #
@@ -1249,173 +1366,28 @@ CONFIG_REALTEK_PHY=m
 CONFIG_NATIONAL_PHY=m
 CONFIG_STE10XP=m
 CONFIG_LSI_ET1011C_PHY=m
+CONFIG_MICREL_PHY=m
 # CONFIG_FIXED_PHY is not set
 CONFIG_MDIO_BITBANG=m
 CONFIG_MDIO_GPIO=m
-CONFIG_NET_ETHERNET=y
-CONFIG_MII=m
-CONFIG_AX88796=m
-# CONFIG_AX88796_93CX6 is not set
-CONFIG_HAPPYMEAL=m
-# CONFIG_SUNGEM is not set
-CONFIG_CASSINI=m
-CONFIG_NET_VENDOR_3COM=y
-CONFIG_VORTEX=m
-CONFIG_TYPHOON=m
-CONFIG_SMC91X=m
-CONFIG_DM9000=m
-CONFIG_DM9000_DEBUGLEVEL=4
-# CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL is not set
-CONFIG_ETHOC=m
-CONFIG_SMC911X=m
-CONFIG_SMSC911X=m
-CONFIG_DNET=m
-CONFIG_NET_TULIP=y
-CONFIG_DE2104X=m
-CONFIG_DE2104X_DSL=0
-CONFIG_TULIP=m
-# CONFIG_TULIP_MWI is not set
-# CONFIG_TULIP_MMIO is not set
-# CONFIG_TULIP_NAPI is not set
-CONFIG_DE4X5=m
-CONFIG_WINBOND_840=m
-CONFIG_DM9102=m
-CONFIG_ULI526X=m
-CONFIG_PCMCIA_XIRCOM=m
-CONFIG_HP100=m
-# CONFIG_IBM_NEW_EMAC_ZMII is not set
-# CONFIG_IBM_NEW_EMAC_RGMII is not set
-# CONFIG_IBM_NEW_EMAC_TAH is not set
-# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
-# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
-# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
-# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
-CONFIG_NET_PCI=y
-CONFIG_PCNET32=m
-CONFIG_AMD8111_ETH=m
-CONFIG_ADAPTEC_STARFIRE=m
-CONFIG_B44=m
-CONFIG_FORCEDETH=m
-# CONFIG_FORCEDETH_NAPI is not set
-CONFIG_E100=m
-CONFIG_FEALNX=m
-CONFIG_NATSEMI=m
-CONFIG_NE2K_PCI=m
-CONFIG_8139CP=m
-CONFIG_8139TOO=m
-# CONFIG_8139TOO_PIO is not set
-CONFIG_8139TOO_TUNE_TWISTER=y
-CONFIG_8139TOO_8129=y
-# CONFIG_8139_OLD_RX_RESET is not set
-CONFIG_R6040=m
-CONFIG_SIS900=m
-CONFIG_EPIC100=m
-CONFIG_SMSC9420=m
-CONFIG_SUNDANCE=m
-# CONFIG_SUNDANCE_MMIO is not set
-CONFIG_TLAN=m
-CONFIG_KS8842=m
-CONFIG_KS8851_MLL=m
-CONFIG_VIA_RHINE=m
-CONFIG_VIA_RHINE_MMIO=y
-CONFIG_SC92031=m
-CONFIG_NET_POCKET=y
-CONFIG_DE600=m
-CONFIG_DE620=m
-CONFIG_ATL2=m
-CONFIG_NETDEV_1000=y
-CONFIG_ACENIC=m
-# CONFIG_ACENIC_OMIT_TIGON_I is not set
-CONFIG_DL2K=m
-CONFIG_E1000=m
-CONFIG_E1000E=m
-CONFIG_IP1000=m
-CONFIG_IGB=m
-CONFIG_IGBVF=m
-CONFIG_NS83820=m
-CONFIG_HAMACHI=m
-CONFIG_YELLOWFIN=m
-CONFIG_R8169=m
-CONFIG_R8169_VLAN=y
-CONFIG_SIS190=m
-CONFIG_SKGE=m
-CONFIG_SKY2=m
-CONFIG_VIA_VELOCITY=m
-CONFIG_TIGON3=m
-CONFIG_BNX2=m
-CONFIG_CNIC=m
-CONFIG_QLA3XXX=m
-CONFIG_ATL1=m
-CONFIG_ATL1E=m
-CONFIG_ATL1C=m
-CONFIG_JME=m
-CONFIG_NETDEV_10000=y
-CONFIG_MDIO=m
-CONFIG_CHELSIO_T1=m
-CONFIG_CHELSIO_T1_1G=y
-CONFIG_CHELSIO_T3_DEPENDS=y
-CONFIG_CHELSIO_T3=m
-CONFIG_ENIC=m
-CONFIG_IXGBE=m
-CONFIG_IXGB=m
-CONFIG_S2IO=m
-CONFIG_VXGE=m
-# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
-CONFIG_MYRI10GE=m
-CONFIG_NETXEN_NIC=m
-CONFIG_NIU=m
-CONFIG_MLX4_EN=m
-CONFIG_MLX4_CORE=m
-CONFIG_MLX4_DEBUG=y
-CONFIG_TEHUTI=m
-CONFIG_BNX2X=m
-CONFIG_QLGE=m
-CONFIG_SFC=m
-CONFIG_SFC_MTD=y
-CONFIG_BE2NET=m
-# CONFIG_TR is not set
-CONFIG_WLAN=y
-# CONFIG_WLAN_PRE80211 is not set
-CONFIG_WLAN_80211=y
-CONFIG_PCMCIA_RAYCS=m
-# CONFIG_LIBERTAS is not set
-# CONFIG_LIBERTAS_THINFIRM is not set
-CONFIG_ATMEL=m
-CONFIG_PCI_ATMEL=m
-CONFIG_PCMCIA_ATMEL=m
-CONFIG_AT76C50X_USB=m
-CONFIG_AIRO_CS=m
-CONFIG_PCMCIA_WL3501=m
-# CONFIG_PRISM54 is not set
-CONFIG_USB_ZD1201=m
-CONFIG_USB_NET_RNDIS_WLAN=m
-# CONFIG_RTL8180 is not set
-# CONFIG_RTL8187 is not set
-# CONFIG_ADM8211 is not set
-# CONFIG_MAC80211_HWSIM is not set
-# CONFIG_MWL8K is not set
-# CONFIG_P54_COMMON is not set
-# CONFIG_ATH_COMMON is not set
-# CONFIG_IPW2100 is not set
-# CONFIG_IPW2200 is not set
-# CONFIG_IWLWIFI is not set
-CONFIG_HOSTAP=m
-CONFIG_HOSTAP_FIRMWARE=y
-# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set
-CONFIG_HOSTAP_PLX=m
-CONFIG_HOSTAP_PCI=m
-CONFIG_HOSTAP_CS=m
-# CONFIG_B43 is not set
-# CONFIG_B43LEGACY is not set
-# CONFIG_ZD1211RW is not set
-# CONFIG_RT2X00 is not set
-# CONFIG_HERMES is not set
-# CONFIG_WL12XX is not set
-# CONFIG_IWM is not set
-
-#
-# Enable WiMAX (Networking options) to see the WiMAX drivers
-#
+# CONFIG_PLIP is not set
+CONFIG_PPP=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_MPPE=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPPOATM=m
+CONFIG_PPPOE=m
+CONFIG_PPTP=m
+CONFIG_PPPOL2TP=m
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_SLIP=m
+CONFIG_SLHC=m
+CONFIG_SLIP_COMPRESSED=y
+CONFIG_SLIP_SMART=y
+CONFIG_SLIP_MODE_SLIP6=y
 
 #
 # USB Network Adapters
@@ -1428,7 +1400,9 @@ CONFIG_USB_USBNET=m
 CONFIG_USB_NET_AX8817X=m
 CONFIG_USB_NET_CDCETHER=m
 CONFIG_USB_NET_CDC_EEM=m
+CONFIG_USB_NET_CDC_NCM=m
 CONFIG_USB_NET_DM9601=m
+CONFIG_USB_NET_SMSC75XX=m
 CONFIG_USB_NET_SMSC95XX=m
 CONFIG_USB_NET_GL620A=m
 CONFIG_USB_NET_NET1080=m
@@ -1443,19 +1417,41 @@ CONFIG_USB_ARMLINUX=y
 CONFIG_USB_EPSON2888=y
 CONFIG_USB_KC2190=y
 CONFIG_USB_NET_ZAURUS=m
+CONFIG_USB_NET_CX82310_ETH=m
+CONFIG_USB_NET_KALMIA=m
 CONFIG_USB_HSO=m
 CONFIG_USB_NET_INT51X1=m
-CONFIG_NET_PCMCIA=y
-CONFIG_PCMCIA_3C589=m
-CONFIG_PCMCIA_3C574=m
-CONFIG_PCMCIA_FMVJ18X=m
-CONFIG_PCMCIA_PCNET=m
-CONFIG_PCMCIA_NMCLAN=m
-CONFIG_PCMCIA_SMC91C92=m
-CONFIG_PCMCIA_XIRC2PS=m
-CONFIG_PCMCIA_AXNET=m
+# CONFIG_USB_IPHETH is not set
+CONFIG_USB_SIERRA_NET=m
+CONFIG_USB_VL600=m
+CONFIG_WLAN=y
+# CONFIG_LIBERTAS_THINFIRM is not set
+CONFIG_AT76C50X_USB=m
+CONFIG_USB_ZD1201=m
+CONFIG_USB_NET_RNDIS_WLAN=m
+# CONFIG_RTL8187 is not set
+# CONFIG_MAC80211_HWSIM is not set
+# CONFIG_ATH_COMMON is not set
+# CONFIG_B43 is not set
+# CONFIG_B43LEGACY is not set
+# CONFIG_BRCMFMAC is not set
+CONFIG_HOSTAP=m
+CONFIG_HOSTAP_FIRMWARE=y
+# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set
+# CONFIG_IWM is not set
+# CONFIG_LIBERTAS is not set
+# CONFIG_P54_COMMON is not set
+# CONFIG_RT2X00 is not set
+# CONFIG_WL1251 is not set
+# CONFIG_WL12XX_MENU is not set
+# CONFIG_ZD1211RW is not set
+# CONFIG_MWIFIEX is not set
+# CONFIG_RTL8192CU is not set
+
+#
+# Enable WiMAX (Networking options) to see the WiMAX drivers
+#
 CONFIG_WAN=y
-CONFIG_LANMEDIA=m
 CONFIG_HDLC=m
 CONFIG_HDLC_RAW=m
 CONFIG_HDLC_RAW_ETH=m
@@ -1466,97 +1462,10 @@ CONFIG_HDLC_PPP=m
 #
 # X.25/LAPB support is disabled
 #
-CONFIG_PCI200SYN=m
-CONFIG_WANXL=m
-# CONFIG_WANXL_BUILD_FIRMWARE is not set
-CONFIG_PC300TOO=m
-CONFIG_FARSYNC=m
-CONFIG_DSCC4=m
-CONFIG_DSCC4_PCISYNC=y
-CONFIG_DSCC4_PCI_RST=y
 CONFIG_DLCI=m
 CONFIG_DLCI_MAX=8
-CONFIG_ATM_DRIVERS=y
-# CONFIG_ATM_DUMMY is not set
-CONFIG_ATM_TCP=m
-CONFIG_ATM_LANAI=m
-CONFIG_ATM_ENI=m
-CONFIG_ATM_ENI_DEBUG=y
-CONFIG_ATM_ENI_TUNE_BURST=y
-CONFIG_ATM_ENI_BURST_TX_16W=y
-CONFIG_ATM_ENI_BURST_TX_8W=y
-CONFIG_ATM_ENI_BURST_TX_4W=y
-CONFIG_ATM_ENI_BURST_TX_2W=y
-CONFIG_ATM_ENI_BURST_RX_16W=y
-CONFIG_ATM_ENI_BURST_RX_8W=y
-CONFIG_ATM_ENI_BURST_RX_4W=y
-CONFIG_ATM_ENI_BURST_RX_2W=y
-CONFIG_ATM_FIRESTREAM=m
-CONFIG_ATM_ZATM=m
-# CONFIG_ATM_ZATM_DEBUG is not set
-CONFIG_ATM_NICSTAR=m
-CONFIG_ATM_NICSTAR_USE_SUNI=y
-CONFIG_ATM_NICSTAR_USE_IDT77105=y
-CONFIG_ATM_IDT77252=m
-# CONFIG_ATM_IDT77252_DEBUG is not set
-# CONFIG_ATM_IDT77252_RCV_ALL is not set
-CONFIG_ATM_IDT77252_USE_SUNI=y
-CONFIG_ATM_AMBASSADOR=m
-# CONFIG_ATM_AMBASSADOR_DEBUG is not set
-CONFIG_ATM_HORIZON=m
-# CONFIG_ATM_HORIZON_DEBUG is not set
-CONFIG_ATM_IA=m
-# CONFIG_ATM_IA_DEBUG is not set
-CONFIG_ATM_FORE200E=m
-CONFIG_ATM_FORE200E_USE_TASKLET=y
-CONFIG_ATM_FORE200E_TX_RETRY=16
-CONFIG_ATM_FORE200E_DEBUG=0
-# CONFIG_ATM_HE is not set
-CONFIG_ATM_SOLOS=m
-CONFIG_IEEE802154_DRIVERS=m
-CONFIG_IEEE802154_FAKEHARD=m
-# CONFIG_FDDI is not set
-# CONFIG_HIPPI is not set
-# CONFIG_PLIP is not set
-CONFIG_PPP=m
-CONFIG_PPP_MULTILINK=y
-CONFIG_PPP_FILTER=y
-CONFIG_PPP_ASYNC=m
-CONFIG_PPP_SYNC_TTY=m
-CONFIG_PPP_DEFLATE=m
-CONFIG_PPP_BSDCOMP=m
-CONFIG_PPP_MPPE=m
-CONFIG_PPPOE=m
-CONFIG_PPPOATM=m
-CONFIG_PPPOL2TP=m
-CONFIG_SLIP=m
-CONFIG_SLIP_COMPRESSED=y
-CONFIG_SLHC=m
-CONFIG_SLIP_SMART=y
-CONFIG_SLIP_MODE_SLIP6=y
-# CONFIG_NET_FC is not set
-# CONFIG_NETCONSOLE is not set
-# CONFIG_NETPOLL is not set
-# CONFIG_NET_POLL_CONTROLLER is not set
 CONFIG_ISDN=y
 CONFIG_ISDN_I4L=m
-CONFIG_MISDN=m
-CONFIG_MISDN_DSP=m
-CONFIG_MISDN_L1OIP=m
-
-#
-# mISDN hardware drivers
-#
-CONFIG_MISDN_HFCPCI=m
-CONFIG_MISDN_HFCMULTI=m
-CONFIG_MISDN_HFCUSB=m
-CONFIG_MISDN_AVMFRITZ=m
-CONFIG_MISDN_SPEEDFAX=m
-CONFIG_MISDN_INFINEON=m
-CONFIG_MISDN_W6692=m
-CONFIG_MISDN_NETJET=m
-CONFIG_MISDN_IPAC=m
-CONFIG_MISDN_ISAR=m
 CONFIG_ISDN_PPP=y
 CONFIG_ISDN_PPP_VJ=y
 CONFIG_ISDN_MPP=y
@@ -1596,32 +1505,20 @@ CONFIG_HISAX_MAX_CARDS=8
 # HiSax supported cards
 #
 CONFIG_HISAX_16_3=y
-CONFIG_HISAX_TELESPCI=y
 CONFIG_HISAX_S0BOX=y
 CONFIG_HISAX_FRITZPCI=y
 CONFIG_HISAX_AVM_A1_PCMCIA=y
 CONFIG_HISAX_ELSA=y
 CONFIG_HISAX_DIEHLDIVA=y
 CONFIG_HISAX_SEDLBAUER=y
-CONFIG_HISAX_NETJET=y
-CONFIG_HISAX_NETJET_U=y
 CONFIG_HISAX_NICCY=y
-CONFIG_HISAX_BKM_A4T=y
-CONFIG_HISAX_SCT_QUADRO=y
 CONFIG_HISAX_GAZEL=y
-CONFIG_HISAX_HFC_PCI=y
-CONFIG_HISAX_W6692=y
 CONFIG_HISAX_HFC_SX=y
-CONFIG_HISAX_ENTERNOW_PCI=y
 CONFIG_HISAX_DEBUG=y
 
 #
 # HiSax PCMCIA card service modules
 #
-CONFIG_HISAX_SEDLBAUER_CS=m
-CONFIG_HISAX_ELSA_CS=m
-CONFIG_HISAX_AVM_A1_CS=m
-CONFIG_HISAX_TELES_CS=m
 
 #
 # HiSax sub driver modules
@@ -1629,45 +1526,39 @@ CONFIG_HISAX_TELES_CS=m
 CONFIG_HISAX_ST5481=m
 CONFIG_HISAX_HFCUSB=m
 CONFIG_HISAX_HFC4S8S=m
-CONFIG_HISAX_FRITZ_PCIPNP=m
 
 #
 # Active cards
 #
-CONFIG_HYSDN=m
-CONFIG_HYSDN_CAPI=y
-CONFIG_ISDN_HDLC=m
 CONFIG_ISDN_CAPI=m
 CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y
 CONFIG_CAPI_TRACE=y
 CONFIG_ISDN_CAPI_MIDDLEWARE=y
 CONFIG_ISDN_CAPI_CAPI20=m
-CONFIG_ISDN_CAPI_CAPIFS_BOOL=y
-CONFIG_ISDN_CAPI_CAPIFS=m
 CONFIG_ISDN_CAPI_CAPIDRV=m
 
 #
 # CAPI hardware drivers
 #
 CONFIG_CAPI_AVM=y
-CONFIG_ISDN_DRV_AVMB1_B1PCI=m
-CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y
-CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m
-CONFIG_ISDN_DRV_AVMB1_AVM_CS=m
-CONFIG_ISDN_DRV_AVMB1_T1PCI=m
-CONFIG_ISDN_DRV_AVMB1_C4=m
 CONFIG_CAPI_EICON=y
-CONFIG_ISDN_DIVAS=m
-CONFIG_ISDN_DIVAS_BRIPCI=y
-CONFIG_ISDN_DIVAS_PRIPCI=y
-CONFIG_ISDN_DIVAS_DIVACAPI=m
-CONFIG_ISDN_DIVAS_USERIDI=m
-CONFIG_ISDN_DIVAS_MAINT=m
 CONFIG_ISDN_DRV_GIGASET=m
+CONFIG_GIGASET_CAPI=y
+# CONFIG_GIGASET_I4L is not set
+# CONFIG_GIGASET_DUMMYLL is not set
 CONFIG_GIGASET_BASE=m
 CONFIG_GIGASET_M105=m
 CONFIG_GIGASET_M101=m
 # CONFIG_GIGASET_DEBUG is not set
+CONFIG_MISDN=m
+CONFIG_MISDN_DSP=m
+CONFIG_MISDN_L1OIP=m
+
+#
+# mISDN hardware drivers
+#
+CONFIG_MISDN_HFCUSB=m
+CONFIG_ISDN_HDLC=m
 # CONFIG_PHONE is not set
 
 #
@@ -1676,6 +1567,7 @@ CONFIG_GIGASET_M101=m
 CONFIG_INPUT=y
 CONFIG_INPUT_FF_MEMLESS=m
 CONFIG_INPUT_POLLDEV=m
+CONFIG_INPUT_SPARSEKMAP=m
 
 #
 # Userland interfaces
@@ -1693,13 +1585,18 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
 #
 CONFIG_INPUT_KEYBOARD=y
 CONFIG_KEYBOARD_ADP5588=m
+CONFIG_KEYBOARD_ADP5589=m
 CONFIG_KEYBOARD_ATKBD=y
-CONFIG_QT2160=m
+CONFIG_KEYBOARD_QT1070=m
+CONFIG_KEYBOARD_QT2160=m
 CONFIG_KEYBOARD_LKKBD=m
 CONFIG_KEYBOARD_GPIO=m
+CONFIG_KEYBOARD_TCA6416=m
 CONFIG_KEYBOARD_MATRIX=m
 CONFIG_KEYBOARD_LM8323=m
 CONFIG_KEYBOARD_MAX7359=m
+CONFIG_KEYBOARD_MCS=m
+CONFIG_KEYBOARD_MPR121=m
 CONFIG_KEYBOARD_NEWTON=m
 CONFIG_KEYBOARD_OPENCORES=m
 CONFIG_KEYBOARD_STOWAWAY=m
@@ -1710,16 +1607,24 @@ CONFIG_KEYBOARD_XTKBD=m
 # CONFIG_INPUT_TABLET is not set
 # CONFIG_INPUT_TOUCHSCREEN is not set
 CONFIG_INPUT_MISC=y
-CONFIG_INPUT_ATI_REMOTE=m
+CONFIG_INPUT_88PM860X_ONKEY=m
+CONFIG_INPUT_AD714X=m
+CONFIG_INPUT_AD714X_I2C=m
+CONFIG_INPUT_BMA150=m
+# CONFIG_INPUT_MMA8450 is not set
+# CONFIG_INPUT_MPU3050 is not set
 CONFIG_INPUT_ATI_REMOTE2=m
 CONFIG_INPUT_KEYSPAN_REMOTE=m
+# CONFIG_INPUT_KXTJ9 is not set
 CONFIG_INPUT_POWERMATE=m
 CONFIG_INPUT_YEALINK=m
 CONFIG_INPUT_CM109=m
 # CONFIG_INPUT_UINPUT is not set
 CONFIG_INPUT_PCF50633_PMU=m
+CONFIG_INPUT_PCF8574=m
 CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
-CONFIG_INPUT_WM831X_ON=m
+# CONFIG_INPUT_ADXL34X is not set
+# CONFIG_INPUT_CMA3000 is not set
 
 #
 # Hardware I/O ports
@@ -1727,10 +1632,11 @@ CONFIG_INPUT_WM831X_ON=m
 CONFIG_SERIO=y
 CONFIG_SERIO_SERPORT=y
 # CONFIG_SERIO_PARKBD is not set
-CONFIG_SERIO_AMBAKMI=y
-# CONFIG_SERIO_PCIPS2 is not set
+CONFIG_SERIO_AMBAKMI=m
 CONFIG_SERIO_LIBPS2=y
 # CONFIG_SERIO_RAW is not set
+CONFIG_SERIO_ALTERA_PS2=m
+CONFIG_SERIO_PS2MULT=m
 # CONFIG_GAMEPORT is not set
 
 #
@@ -1739,19 +1645,22 @@ CONFIG_SERIO_LIBPS2=y
 CONFIG_VT=y
 CONFIG_CONSOLE_TRANSLATIONS=y
 CONFIG_VT_CONSOLE=y
+CONFIG_VT_CONSOLE_SLEEP=y
 CONFIG_HW_CONSOLE=y
 # CONFIG_VT_HW_CONSOLE_BINDING is not set
-CONFIG_DEVKMEM=y
+CONFIG_UNIX98_PTYS=y
+# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
+# CONFIG_LEGACY_PTYS is not set
 # CONFIG_SERIAL_NONSTANDARD is not set
-CONFIG_NOZOMI=m
+CONFIG_N_GSM=m
+# CONFIG_TRACE_SINK is not set
+CONFIG_DEVKMEM=y
 
 #
 # Serial drivers
 #
 CONFIG_SERIAL_8250=y
 CONFIG_SERIAL_8250_CONSOLE=y
-CONFIG_SERIAL_8250_PCI=y
-CONFIG_SERIAL_8250_CS=m
 CONFIG_SERIAL_8250_NR_UARTS=4
 CONFIG_SERIAL_8250_RUNTIME_UARTS=4
 CONFIG_SERIAL_8250_EXTENDED=y
@@ -1759,21 +1668,28 @@ CONFIG_SERIAL_8250_MANY_PORTS=y
 CONFIG_SERIAL_8250_SHARE_IRQ=y
 CONFIG_SERIAL_8250_DETECT_IRQ=y
 CONFIG_SERIAL_8250_RSA=y
+CONFIG_SERIAL_8250_DW=m
 
 #
 # Non-8250 serial port support
 #
+CONFIG_SERIAL_AMBA_PL010=y
+CONFIG_SERIAL_AMBA_PL010_CONSOLE=y
 CONFIG_SERIAL_AMBA_PL011=y
 CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
 CONFIG_SERIAL_CORE=y
 CONFIG_SERIAL_CORE_CONSOLE=y
-# CONFIG_SERIAL_JSM is not set
-CONFIG_UNIX98_PTYS=y
-# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
-# CONFIG_LEGACY_PTYS is not set
+CONFIG_SERIAL_OF_PLATFORM=y
+CONFIG_SERIAL_TIMBERDALE=m
+CONFIG_SERIAL_ALTERA_JTAGUART=m
+CONFIG_SERIAL_ALTERA_UART=m
+CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4
+CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200
+CONFIG_SERIAL_XILINX_PS_UART=m
 CONFIG_PRINTER=m
 # CONFIG_LP_CONSOLE is not set
 CONFIG_PPDEV=m
+# CONFIG_HVC_DCC is not set
 CONFIG_IPMI_HANDLER=m
 CONFIG_IPMI_PANIC_EVENT=y
 # CONFIG_IPMI_PANIC_STRING is not set
@@ -1785,23 +1701,23 @@ CONFIG_HW_RANDOM=m
 CONFIG_HW_RANDOM_TIMERIOMEM=m
 CONFIG_NVRAM=m
 # CONFIG_R3964 is not set
-# CONFIG_APPLICOM is not set
-
-#
-# PCMCIA character devices
-#
-CONFIG_SYNCLINK_CS=m
-# CONFIG_CARDMAN_4000 is not set
-# CONFIG_CARDMAN_4040 is not set
-CONFIG_IPWIRELESS=m
 # CONFIG_RAW_DRIVER is not set
 # CONFIG_TCG_TPM is not set
-CONFIG_DEVPORT=y
-CONFIG_I2C=m
+# CONFIG_RAMOOPS is not set
+CONFIG_I2C=y
 CONFIG_I2C_BOARDINFO=y
 CONFIG_I2C_COMPAT=y
 CONFIG_I2C_CHARDEV=m
+CONFIG_I2C_MUX=m
+
+#
+# Multiplexer I2C Chip support
+#
+CONFIG_I2C_MUX_GPIO=m
+CONFIG_I2C_MUX_PCA9541=m
+CONFIG_I2C_MUX_PCA954x=m
 CONFIG_I2C_HELPER_AUTO=y
+CONFIG_I2C_SMBUS=m
 CONFIG_I2C_ALGOBIT=m
 CONFIG_I2C_ALGOPCA=m
 
@@ -1809,61 +1725,36 @@ CONFIG_I2C_ALGOPCA=m
 # I2C Hardware Bus support
 #
 
-#
-# PC SMBus host controller drivers
-#
-CONFIG_I2C_ALI1535=m
-CONFIG_I2C_ALI1563=m
-CONFIG_I2C_ALI15X3=m
-CONFIG_I2C_AMD756=m
-CONFIG_I2C_AMD8111=m
-CONFIG_I2C_I801=m
-CONFIG_I2C_ISCH=m
-CONFIG_I2C_PIIX4=m
-CONFIG_I2C_NFORCE2=m
-CONFIG_I2C_SIS5595=m
-CONFIG_I2C_SIS630=m
-CONFIG_I2C_SIS96X=m
-CONFIG_I2C_VIA=m
-CONFIG_I2C_VIAPRO=m
-
 #
 # I2C system bus drivers (mostly embedded / system-on-chip)
 #
-CONFIG_I2C_DESIGNWARE=m
+CONFIG_I2C_BCM2708=m
+CONFIG_I2C_BCM2708_BAUDRATE=100000
+CONFIG_I2C_DESIGNWARE_CORE=m
+CONFIG_I2C_DESIGNWARE_PLATFORM=m
 CONFIG_I2C_GPIO=m
 CONFIG_I2C_OCORES=m
+CONFIG_I2C_PCA_PLATFORM=m
+# CONFIG_I2C_PXA_PCI is not set
 CONFIG_I2C_SIMTEC=m
-CONFIG_I2C_VERSATILE=m
+CONFIG_I2C_XILINX=m
 
 #
 # External I2C/SMBus adapter drivers
 #
+CONFIG_I2C_DIOLAN_U2C=m
 CONFIG_I2C_PARPORT=m
 CONFIG_I2C_PARPORT_LIGHT=m
-# CONFIG_I2C_TAOS_EVM is not set
+CONFIG_I2C_TAOS_EVM=m
 CONFIG_I2C_TINY_USB=m
 
-#
-# Graphics adapter I2C/DDC channel drivers
-#
-CONFIG_I2C_VOODOO3=m
-
 #
 # Other I2C/SMBus bus drivers
 #
-CONFIG_I2C_PCA_PLATFORM=m
 CONFIG_I2C_STUB=m
-
-#
-# Miscellaneous I2C Chip support
-#
-CONFIG_DS1682=m
-CONFIG_SENSORS_TSL2550=m
 # CONFIG_I2C_DEBUG_CORE is not set
 # CONFIG_I2C_DEBUG_ALGO is not set
 # CONFIG_I2C_DEBUG_BUS is not set
-# CONFIG_I2C_DEBUG_CHIP is not set
 # CONFIG_SPI is not set
 
 #
@@ -1871,44 +1762,70 @@ CONFIG_SENSORS_TSL2550=m
 #
 CONFIG_PPS=m
 # CONFIG_PPS_DEBUG is not set
-CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
+
+#
+# PPS clients support
+#
+# CONFIG_PPS_CLIENT_KTIMER is not set
+# CONFIG_PPS_CLIENT_LDISC is not set
+# CONFIG_PPS_CLIENT_PARPORT is not set
+# CONFIG_PPS_CLIENT_GPIO is not set
+
+#
+# PPS generators support
+#
+
+#
+# PTP clock support
+#
+CONFIG_PTP_1588_CLOCK=m
+CONFIG_DP83640_PHY=m
+CONFIG_ARCH_REQUIRE_GPIOLIB=y
 CONFIG_GPIOLIB=y
 # CONFIG_DEBUG_GPIO is not set
-# CONFIG_GPIO_SYSFS is not set
+CONFIG_GPIO_SYSFS=y
+CONFIG_GPIO_GENERIC=m
+CONFIG_GPIO_MAX730X=m
 
 #
-# Memory mapped GPIO expanders:
+# Memory mapped GPIO drivers:
 #
-# CONFIG_GPIO_PL061 is not set
+CONFIG_GPIO_GENERIC_PLATFORM=m
+CONFIG_GPIO_IT8761E=m
+CONFIG_GPIO_PL061=y
 
 #
 # I2C GPIO expanders:
 #
+CONFIG_GPIO_MAX7300=m
 CONFIG_GPIO_MAX732X=m
-CONFIG_GPIO_PCA953X=m
 CONFIG_GPIO_PCF857X=m
-CONFIG_GPIO_WM831X=m
+# CONFIG_GPIO_SX150X is not set
+CONFIG_GPIO_ADP5588=m
 
 #
 # PCI GPIO expanders:
 #
-# CONFIG_GPIO_BT8XX is not set
-# CONFIG_GPIO_LANGWELL is not set
 
 #
 # SPI GPIO expanders:
 #
+CONFIG_GPIO_MCP23S08=m
 
 #
 # AC97 GPIO expanders:
 #
+# CONFIG_GPIO_UCB1400 is not set
+
+#
+# MODULbus GPIO expanders:
+#
 CONFIG_W1=m
 CONFIG_W1_CON=y
 
 #
 # 1-wire Bus Masters
 #
-CONFIG_W1_MASTER_MATROX=m
 CONFIG_W1_MASTER_DS2490=m
 CONFIG_W1_MASTER_DS2482=m
 CONFIG_W1_MASTER_DS1WM=m
@@ -1919,21 +1836,29 @@ CONFIG_W1_MASTER_GPIO=m
 #
 CONFIG_W1_SLAVE_THERM=m
 CONFIG_W1_SLAVE_SMEM=m
+CONFIG_W1_SLAVE_DS2408=m
+CONFIG_W1_SLAVE_DS2423=m
 CONFIG_W1_SLAVE_DS2431=m
 CONFIG_W1_SLAVE_DS2433=m
 CONFIG_W1_SLAVE_DS2433_CRC=y
 CONFIG_W1_SLAVE_DS2760=m
+CONFIG_W1_SLAVE_DS2780=m
 CONFIG_W1_SLAVE_BQ27000=m
 CONFIG_POWER_SUPPLY=y
 # CONFIG_POWER_SUPPLY_DEBUG is not set
 # CONFIG_PDA_POWER is not set
-CONFIG_WM831X_POWER=m
-CONFIG_WM8350_POWER=m
+# CONFIG_TEST_POWER is not set
 # CONFIG_BATTERY_DS2760 is not set
-CONFIG_BATTERY_DS2782=m
-CONFIG_BATTERY_BQ27x00=m
-CONFIG_BATTERY_MAX17040=m
-CONFIG_CHARGER_PCF50633=m
+# CONFIG_BATTERY_DS2780 is not set
+# CONFIG_BATTERY_DS2782 is not set
+# CONFIG_BATTERY_BQ20Z75 is not set
+# CONFIG_BATTERY_BQ27x00 is not set
+# CONFIG_BATTERY_MAX17040 is not set
+# CONFIG_BATTERY_MAX17042 is not set
+# CONFIG_CHARGER_PCF50633 is not set
+# CONFIG_CHARGER_ISP1704 is not set
+# CONFIG_CHARGER_MAX8903 is not set
+# CONFIG_CHARGER_GPIO is not set
 CONFIG_HWMON=m
 CONFIG_HWMON_VID=m
 # CONFIG_HWMON_DEBUG_CHIP is not set
@@ -1949,23 +1874,28 @@ CONFIG_SENSORS_ADM1026=m
 CONFIG_SENSORS_ADM1029=m
 CONFIG_SENSORS_ADM1031=m
 CONFIG_SENSORS_ADM9240=m
+CONFIG_SENSORS_ADT7411=m
 CONFIG_SENSORS_ADT7462=m
 CONFIG_SENSORS_ADT7470=m
-CONFIG_SENSORS_ADT7473=m
 CONFIG_SENSORS_ADT7475=m
+CONFIG_SENSORS_ASC7621=m
 CONFIG_SENSORS_ATXP1=m
+CONFIG_SENSORS_DS620=m
 CONFIG_SENSORS_DS1621=m
-CONFIG_SENSORS_I5K_AMB=m
 CONFIG_SENSORS_F71805F=m
 CONFIG_SENSORS_F71882FG=m
 CONFIG_SENSORS_F75375S=m
 CONFIG_SENSORS_G760A=m
 CONFIG_SENSORS_GL518SM=m
 CONFIG_SENSORS_GL520SM=m
+CONFIG_SENSORS_GPIO_FAN=m
 CONFIG_SENSORS_IBMAEM=m
 CONFIG_SENSORS_IBMPEX=m
 CONFIG_SENSORS_IT87=m
+CONFIG_SENSORS_JC42=m
+CONFIG_SENSORS_LINEAGE=m
 CONFIG_SENSORS_LM63=m
+CONFIG_SENSORS_LM73=m
 CONFIG_SENSORS_LM75=m
 CONFIG_SENSORS_LM77=m
 CONFIG_SENSORS_LM78=m
@@ -1976,54 +1906,78 @@ CONFIG_SENSORS_LM87=m
 CONFIG_SENSORS_LM90=m
 CONFIG_SENSORS_LM92=m
 CONFIG_SENSORS_LM93=m
+CONFIG_SENSORS_LTC4151=m
 CONFIG_SENSORS_LTC4215=m
 CONFIG_SENSORS_LTC4245=m
+CONFIG_SENSORS_LTC4261=m
 CONFIG_SENSORS_LM95241=m
+CONFIG_SENSORS_LM95245=m
+CONFIG_SENSORS_MAX16065=m
 CONFIG_SENSORS_MAX1619=m
+CONFIG_SENSORS_MAX1668=m
+CONFIG_SENSORS_MAX6639=m
+CONFIG_SENSORS_MAX6642=m
 CONFIG_SENSORS_MAX6650=m
+CONFIG_SENSORS_NTC_THERMISTOR=m
 CONFIG_SENSORS_PC87360=m
 CONFIG_SENSORS_PC87427=m
 CONFIG_SENSORS_PCF8591=m
+CONFIG_PMBUS=m
+CONFIG_SENSORS_PMBUS=m
+CONFIG_SENSORS_ADM1275=m
+CONFIG_SENSORS_LM25066=m
+CONFIG_SENSORS_LTC2978=m
+CONFIG_SENSORS_MAX16064=m
+CONFIG_SENSORS_MAX34440=m
+CONFIG_SENSORS_MAX8688=m
+CONFIG_SENSORS_UCD9000=m
+CONFIG_SENSORS_UCD9200=m
+CONFIG_SENSORS_ZL6100=m
 CONFIG_SENSORS_SHT15=m
-CONFIG_SENSORS_SIS5595=m
+CONFIG_SENSORS_SHT21=m
+CONFIG_SENSORS_SMM665=m
 CONFIG_SENSORS_DME1737=m
+CONFIG_SENSORS_EMC1403=m
+CONFIG_SENSORS_EMC2103=m
+CONFIG_SENSORS_EMC6W201=m
 CONFIG_SENSORS_SMSC47M1=m
 CONFIG_SENSORS_SMSC47M192=m
 CONFIG_SENSORS_SMSC47B397=m
+CONFIG_SENSORS_SCH56XX_COMMON=m
+CONFIG_SENSORS_SCH5627=m
+CONFIG_SENSORS_SCH5636=m
+CONFIG_SENSORS_ADS1015=m
 CONFIG_SENSORS_ADS7828=m
+CONFIG_SENSORS_AMC6821=m
 CONFIG_SENSORS_THMC50=m
+CONFIG_SENSORS_TMP102=m
 CONFIG_SENSORS_TMP401=m
 CONFIG_SENSORS_TMP421=m
-CONFIG_SENSORS_VIA686A=m
 CONFIG_SENSORS_VT1211=m
-CONFIG_SENSORS_VT8231=m
 CONFIG_SENSORS_W83781D=m
 CONFIG_SENSORS_W83791D=m
 CONFIG_SENSORS_W83792D=m
 CONFIG_SENSORS_W83793=m
+CONFIG_SENSORS_W83795=m
+# CONFIG_SENSORS_W83795_FANCTRL is not set
 CONFIG_SENSORS_W83L785TS=m
 CONFIG_SENSORS_W83L786NG=m
 CONFIG_SENSORS_W83627HF=m
 CONFIG_SENSORS_W83627EHF=m
-CONFIG_SENSORS_WM831X=m
-CONFIG_SENSORS_WM8350=m
 CONFIG_THERMAL=y
+CONFIG_THERMAL_BCM2835=y
 CONFIG_WATCHDOG=y
+CONFIG_WATCHDOG_CORE=y
 # CONFIG_WATCHDOG_NOWAYOUT is not set
 
 #
 # Watchdog Device Drivers
 #
 CONFIG_SOFT_WATCHDOG=m
-CONFIG_WM831X_WATCHDOG=m
-CONFIG_WM8350_WATCHDOG=m
-CONFIG_ALIM7101_WDT=m
-
-#
-# PCI-based Watchdog Cards
-#
-CONFIG_PCIPCWATCHDOG=m
-CONFIG_WDTPCI=m
+CONFIG_ARM_SP805_WATCHDOG=m
+CONFIG_DW_WATCHDOG=m
+CONFIG_MAX63XX_WATCHDOG=m
+CONFIG_BCM2708_WDT=m
 
 #
 # USB-based Watchdog Cards
@@ -2035,93 +1989,149 @@ CONFIG_SSB_POSSIBLE=y
 # Sonics Silicon Backplane
 #
 CONFIG_SSB=m
-CONFIG_SSB_SPROM=y
-CONFIG_SSB_PCIHOST_POSSIBLE=y
-CONFIG_SSB_PCIHOST=y
-# CONFIG_SSB_B43_PCI_BRIDGE is not set
-CONFIG_SSB_PCMCIAHOST_POSSIBLE=y
-CONFIG_SSB_PCMCIAHOST=y
 CONFIG_SSB_SDIOHOST_POSSIBLE=y
 CONFIG_SSB_SDIOHOST=y
 # CONFIG_SSB_DEBUG is not set
-CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
-CONFIG_SSB_DRIVER_PCICORE=y
+CONFIG_BCMA_POSSIBLE=y
+
+#
+# Broadcom specific AMBA
+#
+CONFIG_BCMA=m
+# CONFIG_BCMA_DEBUG is not set
 
 #
 # Multifunction device drivers
 #
-CONFIG_MFD_CORE=m
+CONFIG_MFD_CORE=y
+CONFIG_MFD_88PM860X=y
 CONFIG_MFD_SM501=m
 # CONFIG_MFD_SM501_GPIO is not set
 # CONFIG_MFD_ASIC3 is not set
 # CONFIG_HTC_EGPIO is not set
 CONFIG_HTC_PASIC3=m
-# CONFIG_UCB1400_CORE is not set
+# CONFIG_HTC_I2CPLD is not set
+CONFIG_UCB1400_CORE=m
+CONFIG_TPS6105X=m
 CONFIG_TPS65010=m
+CONFIG_TPS6507X=m
+# CONFIG_MFD_TPS6586X is not set
+# CONFIG_MFD_TPS65910 is not set
+# CONFIG_MFD_TPS65912_I2C is not set
+# CONFIG_TWL4030_CORE is not set
+# CONFIG_MFD_STMPE is not set
+# CONFIG_MFD_TC3589X is not set
 # CONFIG_MFD_TMIO is not set
 # CONFIG_MFD_T7L66XB is not set
 # CONFIG_MFD_TC6387XB is not set
 # CONFIG_MFD_TC6393XB is not set
+# CONFIG_PMIC_DA903X is not set
+# CONFIG_PMIC_ADP5520 is not set
+# CONFIG_MFD_MAX8925 is not set
+# CONFIG_MFD_MAX8997 is not set
+# CONFIG_MFD_MAX8998 is not set
 CONFIG_MFD_WM8400=m
-CONFIG_MFD_WM831X=m
-CONFIG_MFD_WM8350=m
-CONFIG_MFD_WM8350_I2C=m
+# CONFIG_MFD_WM831X_I2C is not set
+# CONFIG_MFD_WM8350_I2C is not set
+# CONFIG_MFD_WM8994 is not set
 CONFIG_MFD_PCF50633=m
 CONFIG_PCF50633_ADC=m
 CONFIG_PCF50633_GPIO=m
-CONFIG_AB3100_CORE=m
-CONFIG_AB3100_OTP=m
-# CONFIG_REGULATOR is not set
+# CONFIG_ABX500_CORE is not set
+CONFIG_MFD_WL1273_CORE=m
+# CONFIG_MFD_AAT2870_CORE is not set
+CONFIG_REGULATOR=y
+# CONFIG_REGULATOR_DEBUG is not set
+# CONFIG_REGULATOR_DUMMY is not set
+CONFIG_REGULATOR_FIXED_VOLTAGE=m
+# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
+# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
+CONFIG_REGULATOR_GPIO=m
+# CONFIG_REGULATOR_BQ24022 is not set
+# CONFIG_REGULATOR_MAX1586 is not set
+# CONFIG_REGULATOR_MAX8649 is not set
+# CONFIG_REGULATOR_MAX8660 is not set
+# CONFIG_REGULATOR_MAX8952 is not set
+# CONFIG_REGULATOR_WM8400 is not set
+# CONFIG_REGULATOR_PCF50633 is not set
+# CONFIG_REGULATOR_LP3971 is not set
+# CONFIG_REGULATOR_LP3972 is not set
+# CONFIG_REGULATOR_TPS6105X is not set
+# CONFIG_REGULATOR_TPS65023 is not set
+# CONFIG_REGULATOR_TPS6507X is not set
+# CONFIG_REGULATOR_88PM8607 is not set
+# CONFIG_REGULATOR_ISL6271A is not set
+# CONFIG_REGULATOR_AD5398 is not set
 CONFIG_MEDIA_SUPPORT=m
 
 #
 # Multimedia core support
 #
+CONFIG_MEDIA_CONTROLLER=y
 CONFIG_VIDEO_DEV=m
 CONFIG_VIDEO_V4L2_COMMON=m
-# CONFIG_VIDEO_ALLOW_V4L1 is not set
-CONFIG_VIDEO_V4L1_COMPAT=y
+CONFIG_VIDEO_V4L2_SUBDEV_API=y
 CONFIG_DVB_CORE=m
+CONFIG_DVB_NET=y
 CONFIG_VIDEO_MEDIA=m
 
 #
 # Multimedia drivers
 #
-# CONFIG_MEDIA_ATTACH is not set
+CONFIG_RC_CORE=m
+CONFIG_LIRC=m
+CONFIG_RC_MAP=m
+# CONFIG_IR_NEC_DECODER is not set
+# CONFIG_IR_RC5_DECODER is not set
+# CONFIG_IR_RC6_DECODER is not set
+# CONFIG_IR_JVC_DECODER is not set
+# CONFIG_IR_SONY_DECODER is not set
+# CONFIG_IR_RC5_SZ_DECODER is not set
+# CONFIG_IR_MCE_KBD_DECODER is not set
+# CONFIG_IR_LIRC_CODEC is not set
+# CONFIG_RC_ATI_REMOTE is not set
+# CONFIG_IR_IMON is not set
+# CONFIG_IR_MCEUSB is not set
+# CONFIG_IR_REDRAT3 is not set
+# CONFIG_IR_STREAMZAP is not set
+# CONFIG_RC_LOOPBACK is not set
+CONFIG_MEDIA_ATTACH=y
 CONFIG_MEDIA_TUNER=m
 # CONFIG_MEDIA_TUNER_CUSTOMISE is not set
 CONFIG_MEDIA_TUNER_SIMPLE=m
 CONFIG_MEDIA_TUNER_TDA8290=m
+CONFIG_MEDIA_TUNER_TDA827X=m
+CONFIG_MEDIA_TUNER_TDA18271=m
 CONFIG_MEDIA_TUNER_TDA9887=m
 CONFIG_MEDIA_TUNER_TEA5761=m
 CONFIG_MEDIA_TUNER_TEA5767=m
 CONFIG_MEDIA_TUNER_MT20XX=m
 CONFIG_MEDIA_TUNER_XC2028=m
 CONFIG_MEDIA_TUNER_XC5000=m
+CONFIG_MEDIA_TUNER_XC4000=m
 CONFIG_MEDIA_TUNER_MC44S803=m
 CONFIG_VIDEO_V4L2=m
 CONFIG_VIDEO_CAPTURE_DRIVERS=y
 # CONFIG_VIDEO_ADV_DEBUG is not set
 # CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
 # CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set
+CONFIG_VIDEO_IR_I2C=m
 
 #
-# Encoders/decoders and other helper chips
+# Encoders, decoders, sensors and other helper chips
 #
 
 #
-# Audio decoders
+# Audio decoders, processors and mixers
 #
 # CONFIG_VIDEO_TVAUDIO is not set
 # CONFIG_VIDEO_TDA7432 is not set
 # CONFIG_VIDEO_TDA9840 is not set
-# CONFIG_VIDEO_TDA9875 is not set
 # CONFIG_VIDEO_TEA6415C is not set
 # CONFIG_VIDEO_TEA6420 is not set
 # CONFIG_VIDEO_MSP3400 is not set
 # CONFIG_VIDEO_CS5345 is not set
 # CONFIG_VIDEO_CS53L32A is not set
-# CONFIG_VIDEO_M52790 is not set
 # CONFIG_VIDEO_TLV320AIC23B is not set
 # CONFIG_VIDEO_WM8775 is not set
 # CONFIG_VIDEO_WM8739 is not set
@@ -2140,19 +2150,18 @@ CONFIG_VIDEO_CAPTURE_DRIVERS=y
 # CONFIG_VIDEO_BT856 is not set
 # CONFIG_VIDEO_BT866 is not set
 # CONFIG_VIDEO_KS0127 is not set
-# CONFIG_VIDEO_OV7670 is not set
-# CONFIG_VIDEO_MT9V011 is not set
-# CONFIG_VIDEO_TCM825X is not set
 # CONFIG_VIDEO_SAA7110 is not set
 # CONFIG_VIDEO_SAA711X is not set
-# CONFIG_VIDEO_SAA717X is not set
+# CONFIG_VIDEO_SAA7191 is not set
 # CONFIG_VIDEO_TVP514X is not set
 # CONFIG_VIDEO_TVP5150 is not set
+# CONFIG_VIDEO_TVP7002 is not set
 # CONFIG_VIDEO_VPX3220 is not set
 
 #
 # Video and audio decoders
 #
+# CONFIG_VIDEO_SAA717X is not set
 # CONFIG_VIDEO_CX25840 is not set
 
 #
@@ -2167,29 +2176,46 @@ CONFIG_VIDEO_CAPTURE_DRIVERS=y
 # CONFIG_VIDEO_SAA7185 is not set
 # CONFIG_VIDEO_ADV7170 is not set
 # CONFIG_VIDEO_ADV7175 is not set
-# CONFIG_VIDEO_THS7303 is not set
 # CONFIG_VIDEO_ADV7343 is not set
+# CONFIG_VIDEO_AK881X is not set
+
+#
+# Camera sensor devices
+#
+# CONFIG_VIDEO_OV7670 is not set
+# CONFIG_VIDEO_MT9P031 is not set
+# CONFIG_VIDEO_MT9T001 is not set
+# CONFIG_VIDEO_MT9V011 is not set
+# CONFIG_VIDEO_MT9V032 is not set
+# CONFIG_VIDEO_TCM825X is not set
+# CONFIG_VIDEO_SR030PC30 is not set
+# CONFIG_VIDEO_NOON010PC30 is not set
+# CONFIG_VIDEO_M5MOLS is not set
+# CONFIG_VIDEO_S5K6AA is not set
+
+#
+# Flash devices
+#
+# CONFIG_VIDEO_ADP1653 is not set
 
 #
 # Video improvement chips
 #
 # CONFIG_VIDEO_UPD64031A is not set
 # CONFIG_VIDEO_UPD64083 is not set
+
+#
+# Miscelaneous helper chips
+#
+# CONFIG_VIDEO_THS7303 is not set
+# CONFIG_VIDEO_M52790 is not set
 # CONFIG_VIDEO_VIVI is not set
-# CONFIG_VIDEO_BT848 is not set
-# CONFIG_VIDEO_SAA5246A is not set
-# CONFIG_VIDEO_SAA5249 is not set
-# CONFIG_VIDEO_ZORAN is not set
-# CONFIG_VIDEO_SAA7134 is not set
-# CONFIG_VIDEO_HEXIUM_ORION is not set
-# CONFIG_VIDEO_HEXIUM_GEMINI is not set
-# CONFIG_VIDEO_CX88 is not set
-# CONFIG_VIDEO_CX23885 is not set
+# CONFIG_VIDEO_BWQCAM is not set
+# CONFIG_VIDEO_CQCAM is not set
+# CONFIG_VIDEO_W9966 is not set
+# CONFIG_VIDEO_CPIA2 is not set
+# CONFIG_VIDEO_TIMBERDALE is not set
 # CONFIG_VIDEO_AU0828 is not set
-# CONFIG_VIDEO_IVTV is not set
-# CONFIG_VIDEO_CX18 is not set
-# CONFIG_VIDEO_SAA7164 is not set
-# CONFIG_VIDEO_CAFE_CCIC is not set
 # CONFIG_SOC_CAMERA is not set
 CONFIG_V4L_USB_DRIVERS=y
 # CONFIG_USB_VIDEO_CLASS is not set
@@ -2198,42 +2224,41 @@ CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
 # CONFIG_VIDEO_PVRUSB2 is not set
 # CONFIG_VIDEO_HDPVR is not set
 # CONFIG_VIDEO_EM28XX is not set
+# CONFIG_VIDEO_TLG2300 is not set
 # CONFIG_VIDEO_CX231XX is not set
+# CONFIG_VIDEO_TM6000 is not set
 # CONFIG_VIDEO_USBVISION is not set
 # CONFIG_USB_ET61X251 is not set
 # CONFIG_USB_SN9C102 is not set
-# CONFIG_USB_ZC0301 is not set
-# CONFIG_USB_PWC_INPUT_EVDEV is not set
+# CONFIG_USB_PWC is not set
 # CONFIG_USB_ZR364XX is not set
 # CONFIG_USB_STKWEBCAM is not set
 # CONFIG_USB_S2255 is not set
+# CONFIG_V4L_MEM2MEM_DRIVERS is not set
 CONFIG_RADIO_ADAPTERS=y
-# CONFIG_RADIO_GEMTEK_PCI is not set
-# CONFIG_RADIO_MAXIRADIO is not set
-# CONFIG_RADIO_MAESTRO is not set
 # CONFIG_I2C_SI4713 is not set
 # CONFIG_RADIO_SI4713 is not set
 # CONFIG_USB_DSBR is not set
 # CONFIG_RADIO_SI470X is not set
 # CONFIG_USB_MR800 is not set
 # CONFIG_RADIO_TEA5764 is not set
-CONFIG_DVB_MAX_ADAPTERS=8
-# CONFIG_DVB_DYNAMIC_MINORS is not set
-CONFIG_DVB_CAPTURE_DRIVERS=y
+# CONFIG_RADIO_SAA7706H is not set
+# CONFIG_RADIO_TEF6862 is not set
+# CONFIG_RADIO_WL1273 is not set
 
 #
-# Supported SAA7146 based PCI Adapters
+# Texas Instruments WL128x FM driver (ST based)
 #
+# CONFIG_RADIO_WL128X is not set
+CONFIG_DVB_MAX_ADAPTERS=8
+# CONFIG_DVB_DYNAMIC_MINORS is not set
+CONFIG_DVB_CAPTURE_DRIVERS=y
 # CONFIG_TTPCI_EEPROM is not set
-# CONFIG_DVB_AV7110 is not set
-# CONFIG_DVB_BUDGET_CORE is not set
 
 #
 # Supported USB Adapters
 #
 # CONFIG_DVB_USB is not set
-# CONFIG_DVB_TTUSB_BUDGET is not set
-# CONFIG_DVB_TTUSB_DEC is not set
 # CONFIG_SMS_SIANO_MDTV is not set
 
 #
@@ -2242,47 +2267,60 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
 # CONFIG_DVB_B2C2_FLEXCOP is not set
 
 #
-# Supported BT878 Adapters
+# Supported DVB Frontends
 #
+# CONFIG_DVB_FE_CUSTOMISE is not set
 
 #
-# Supported Pluto2 Adapters
+# Multistandard (satellite) frontends
 #
-# CONFIG_DVB_PLUTO2 is not set
 
 #
-# Supported SDMC DM1105 Adapters
+# Multistandard (cable + terrestrial) frontends
 #
-# CONFIG_DVB_DM1105 is not set
 
 #
-# Supported Earthsoft PT1 Adapters
+# DVB-S (satellite) frontends
 #
-# CONFIG_DVB_PT1 is not set
 
 #
-# Supported DVB Frontends
+# DVB-T (terrestrial) frontends
 #
-# CONFIG_DVB_FE_CUSTOMISE is not set
-CONFIG_DAB=y
-# CONFIG_USB_DABUSB is not set
+
+#
+# DVB-C (cable) frontends
+#
+
+#
+# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
+#
+
+#
+# ISDB-T (terrestrial) frontends
+#
+
+#
+# Digital terrestrial only tuners/PLL
+#
+
+#
+# SEC control devices for DVB-S
+#
+
+#
+# Tools to develop new frontends
+#
+# CONFIG_DVB_DUMMY_FE is not set
 
 #
 # Graphics support
 #
-CONFIG_VGA_ARB=y
 CONFIG_DRM=m
-CONFIG_DRM_TDFX=m
-CONFIG_DRM_R128=m
-# CONFIG_DRM_RADEON is not set
-CONFIG_DRM_MGA=m
-CONFIG_DRM_VIA=m
-CONFIG_DRM_SAVAGE=m
-CONFIG_VGASTATE=m
+# CONFIG_VGASTATE is not set
 CONFIG_VIDEO_OUTPUT_CONTROL=m
 CONFIG_FB=y
 CONFIG_FIRMWARE_EDID=y
-CONFIG_FB_DDC=m
+# CONFIG_FB_DDC is not set
 # CONFIG_FB_BOOT_VESA_SUPPORT is not set
 CONFIG_FB_CFB_FILLRECT=y
 CONFIG_FB_CFB_COPYAREA=y
@@ -2293,86 +2331,43 @@ CONFIG_FB_SYS_COPYAREA=m
 CONFIG_FB_SYS_IMAGEBLIT=m
 # CONFIG_FB_FOREIGN_ENDIAN is not set
 CONFIG_FB_SYS_FOPS=m
+# CONFIG_FB_WMT_GE_ROPS is not set
 CONFIG_FB_DEFERRED_IO=y
-CONFIG_FB_SVGALIB=m
+# CONFIG_FB_SVGALIB is not set
 # CONFIG_FB_MACMODES is not set
-CONFIG_FB_BACKLIGHT=y
+# CONFIG_FB_BACKLIGHT is not set
 CONFIG_FB_MODE_HELPERS=y
 CONFIG_FB_TILEBLITTING=y
 
 #
 # Frame buffer hardware drivers
 #
-CONFIG_FB_CIRRUS=m
-CONFIG_FB_PM2=m
-CONFIG_FB_PM2_FIFO_DISCONNECT=y
-CONFIG_FB_ARMCLCD=m
-CONFIG_FB_CYBER2000=m
-CONFIG_FB_ASILIANT=y
-# CONFIG_FB_IMSTT is not set
+CONFIG_FB_BCM2708=y
+CONFIG_FB_ARMCLCD=y
 CONFIG_FB_UVESA=m
 # CONFIG_FB_S1D13XXX is not set
-CONFIG_FB_NVIDIA=m
-CONFIG_FB_NVIDIA_I2C=y
-# CONFIG_FB_NVIDIA_DEBUG is not set
-CONFIG_FB_NVIDIA_BACKLIGHT=y
-CONFIG_FB_RIVA=m
-CONFIG_FB_RIVA_I2C=y
-# CONFIG_FB_RIVA_DEBUG is not set
-CONFIG_FB_RIVA_BACKLIGHT=y
-CONFIG_FB_MATROX=m
-CONFIG_FB_MATROX_MILLENIUM=y
-CONFIG_FB_MATROX_MYSTIQUE=y
-CONFIG_FB_MATROX_G=y
-CONFIG_FB_MATROX_I2C=m
-CONFIG_FB_MATROX_MAVEN=m
-CONFIG_FB_RADEON=m
-CONFIG_FB_RADEON_I2C=y
-CONFIG_FB_RADEON_BACKLIGHT=y
-# CONFIG_FB_RADEON_DEBUG is not set
-CONFIG_FB_ATY128=m
-CONFIG_FB_ATY128_BACKLIGHT=y
-CONFIG_FB_ATY=m
-CONFIG_FB_ATY_CT=y
-# CONFIG_FB_ATY_GENERIC_LCD is not set
-CONFIG_FB_ATY_GX=y
-CONFIG_FB_ATY_BACKLIGHT=y
-CONFIG_FB_S3=m
-# CONFIG_FB_SAVAGE is not set
-CONFIG_FB_SIS=m
-CONFIG_FB_SIS_300=y
-CONFIG_FB_SIS_315=y
-CONFIG_FB_VIA=m
-CONFIG_FB_NEOMAGIC=m
-CONFIG_FB_KYRO=m
-CONFIG_FB_3DFX=m
-CONFIG_FB_3DFX_ACCEL=y
-CONFIG_FB_3DFX_I2C=y
-CONFIG_FB_VOODOO1=m
-CONFIG_FB_VT8623=m
-CONFIG_FB_TRIDENT=m
-CONFIG_FB_ARK=m
-CONFIG_FB_PM3=m
-# CONFIG_FB_CARMINE is not set
 CONFIG_FB_TMIO=m
 CONFIG_FB_TMIO_ACCELL=y
 CONFIG_FB_SM501=m
+CONFIG_FB_SMSCUFX=m
+# CONFIG_FB_UDL is not set
 # CONFIG_FB_VIRTUAL is not set
 CONFIG_FB_METRONOME=m
-# CONFIG_FB_MB862XX is not set
 # CONFIG_FB_BROADSHEET is not set
 CONFIG_BACKLIGHT_LCD_SUPPORT=y
 CONFIG_LCD_CLASS_DEVICE=m
-# CONFIG_LCD_ILI9320 is not set
 CONFIG_LCD_PLATFORM=m
 CONFIG_BACKLIGHT_CLASS_DEVICE=y
 CONFIG_BACKLIGHT_GENERIC=m
-CONFIG_BACKLIGHT_WM831X=m
+CONFIG_BACKLIGHT_ADP8860=m
+CONFIG_BACKLIGHT_ADP8870=m
+CONFIG_BACKLIGHT_88PM860X=m
+CONFIG_BACKLIGHT_PCF50633=m
 
 #
 # Display device support
 #
-CONFIG_DISPLAY_SUPPORT=m
+CONFIG_DISPLAY_SUPPORT=y
 
 #
 # Display hardware drivers
@@ -2383,7 +2378,7 @@ CONFIG_DISPLAY_SUPPORT=m
 #
 CONFIG_DUMMY_CONSOLE=y
 CONFIG_FRAMEBUFFER_CONSOLE=y
-# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
+CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
 # CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
 # CONFIG_FONTS is not set
 CONFIG_FONT_8x8=y
@@ -2408,166 +2403,45 @@ CONFIG_SND_MIXER_OSS=m
 CONFIG_SND_PCM_OSS=m
 CONFIG_SND_PCM_OSS_PLUGINS=y
 CONFIG_SND_SEQUENCER_OSS=y
-# CONFIG_SND_HRTIMER is not set
-# CONFIG_SND_DYNAMIC_MINORS is not set
+CONFIG_SND_HRTIMER=m
+CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
+CONFIG_SND_DYNAMIC_MINORS=y
 # CONFIG_SND_SUPPORT_OLD_API is not set
 CONFIG_SND_VERBOSE_PROCFS=y
 # CONFIG_SND_VERBOSE_PRINTK is not set
 # CONFIG_SND_DEBUG is not set
 CONFIG_SND_VMASTER=y
 CONFIG_SND_RAWMIDI_SEQ=m
-CONFIG_SND_OPL3_LIB_SEQ=m
+# CONFIG_SND_OPL3_LIB_SEQ is not set
 # CONFIG_SND_OPL4_LIB_SEQ is not set
 # CONFIG_SND_SBAWE_SEQ is not set
-CONFIG_SND_EMU10K1_SEQ=m
+# CONFIG_SND_EMU10K1_SEQ is not set
 CONFIG_SND_MPU401_UART=m
-CONFIG_SND_OPL3_LIB=m
-CONFIG_SND_VX_LIB=m
 CONFIG_SND_AC97_CODEC=m
 CONFIG_SND_DRIVERS=y
 CONFIG_SND_DUMMY=m
+CONFIG_SND_ALOOP=m
 CONFIG_SND_VIRMIDI=m
 CONFIG_SND_MTPAV=m
 CONFIG_SND_MTS64=m
 CONFIG_SND_SERIAL_U16550=m
 CONFIG_SND_MPU401=m
 CONFIG_SND_PORTMAN2X4=m
-# CONFIG_SND_AC97_POWER_SAVE is not set
-CONFIG_SND_PCI=y
-CONFIG_SND_AD1889=m
-CONFIG_SND_ALS300=m
-# CONFIG_SND_ALI5451 is not set
-CONFIG_SND_ATIIXP=m
-CONFIG_SND_ATIIXP_MODEM=m
-CONFIG_SND_AU8810=m
-CONFIG_SND_AU8820=m
-CONFIG_SND_AU8830=m
-CONFIG_SND_AW2=m
-CONFIG_SND_AZT3328=m
-CONFIG_SND_BT87X=m
-# CONFIG_SND_BT87X_OVERCLOCK is not set
-CONFIG_SND_CA0106=m
-CONFIG_SND_CMIPCI=m
-CONFIG_SND_OXYGEN_LIB=m
-CONFIG_SND_OXYGEN=m
-CONFIG_SND_CS4281=m
-CONFIG_SND_CS46XX=m
-CONFIG_SND_CS46XX_NEW_DSP=y
-CONFIG_SND_CS5535AUDIO=m
-CONFIG_SND_CTXFI=m
-CONFIG_SND_DARLA20=m
-CONFIG_SND_GINA20=m
-CONFIG_SND_LAYLA20=m
-CONFIG_SND_DARLA24=m
-CONFIG_SND_GINA24=m
-CONFIG_SND_LAYLA24=m
-CONFIG_SND_MONA=m
-CONFIG_SND_MIA=m
-CONFIG_SND_ECHO3G=m
-CONFIG_SND_INDIGO=m
-CONFIG_SND_INDIGOIO=m
-CONFIG_SND_INDIGODJ=m
-CONFIG_SND_INDIGOIOX=m
-CONFIG_SND_INDIGODJX=m
-CONFIG_SND_EMU10K1=m
-CONFIG_SND_EMU10K1X=m
-CONFIG_SND_ENS1370=m
-CONFIG_SND_ENS1371=m
-CONFIG_SND_ES1938=m
-CONFIG_SND_ES1968=m
-CONFIG_SND_FM801=m
-# CONFIG_SND_FM801_TEA575X_BOOL is not set
-CONFIG_SND_HDA_INTEL=m
-# CONFIG_SND_HDA_HWDEP is not set
-# CONFIG_SND_HDA_INPUT_BEEP is not set
-# CONFIG_SND_HDA_INPUT_JACK is not set
-# CONFIG_SND_HDA_PATCH_LOADER is not set
-CONFIG_SND_HDA_CODEC_REALTEK=y
-CONFIG_SND_HDA_CODEC_ANALOG=y
-CONFIG_SND_HDA_CODEC_SIGMATEL=y
-CONFIG_SND_HDA_CODEC_VIA=y
-CONFIG_SND_HDA_CODEC_ATIHDMI=y
-CONFIG_SND_HDA_CODEC_NVHDMI=y
-CONFIG_SND_HDA_CODEC_INTELHDMI=y
-CONFIG_SND_HDA_ELD=y
-CONFIG_SND_HDA_CODEC_CIRRUS=y
-CONFIG_SND_HDA_CODEC_CONEXANT=y
-CONFIG_SND_HDA_CODEC_CA0110=y
-CONFIG_SND_HDA_CODEC_CMEDIA=y
-CONFIG_SND_HDA_CODEC_SI3054=y
-CONFIG_SND_HDA_GENERIC=y
-# CONFIG_SND_HDA_POWER_SAVE is not set
-CONFIG_SND_HDSP=m
-CONFIG_SND_HDSPM=m
-CONFIG_SND_HIFIER=m
-CONFIG_SND_ICE1712=m
-CONFIG_SND_ICE1724=m
-CONFIG_SND_INTEL8X0=m
-CONFIG_SND_INTEL8X0M=m
-CONFIG_SND_KORG1212=m
-CONFIG_SND_LX6464ES=m
-CONFIG_SND_MAESTRO3=m
-CONFIG_SND_MIXART=m
-CONFIG_SND_NM256=m
-CONFIG_SND_PCXHR=m
-CONFIG_SND_RIPTIDE=m
-CONFIG_SND_RME32=m
-CONFIG_SND_RME96=m
-CONFIG_SND_RME9652=m
-CONFIG_SND_SONICVIBES=m
-CONFIG_SND_TRIDENT=m
-CONFIG_SND_VIA82XX=m
-CONFIG_SND_VIA82XX_MODEM=m
-CONFIG_SND_VIRTUOSO=m
-CONFIG_SND_VX222=m
-CONFIG_SND_YMFPCI=m
+CONFIG_SND_AC97_POWER_SAVE=y
+CONFIG_SND_AC97_POWER_SAVE_DEFAULT=60
 CONFIG_SND_ARM=y
 CONFIG_SND_ARMAACI=m
+CONFIG_SND_BCM2835=m
 CONFIG_SND_USB=y
 CONFIG_SND_USB_AUDIO=m
+CONFIG_SND_USB_UA101=m
 CONFIG_SND_USB_CAIAQ=m
-# CONFIG_SND_USB_CAIAQ_INPUT is not set
-CONFIG_SND_PCMCIA=y
-CONFIG_SND_VXPOCKET=m
-CONFIG_SND_PDAUDIOCF=m
+CONFIG_SND_USB_CAIAQ_INPUT=y
+CONFIG_SND_USB_6FIRE=m
 CONFIG_SND_SOC=m
+CONFIG_SND_SOC_CACHE_LZO=y
 CONFIG_SND_SOC_I2C_AND_SPI=m
-CONFIG_SND_SOC_ALL_CODECS=m
-CONFIG_SND_SOC_WM_HUBS=m
-CONFIG_SND_SOC_AD73311=m
-CONFIG_SND_SOC_AK4535=m
-CONFIG_SND_SOC_AK4642=m
-CONFIG_SND_SOC_CS4270=m
-CONFIG_SND_SOC_L3=m
-CONFIG_SND_SOC_PCM3008=m
-CONFIG_SND_SOC_SPDIF=m
-CONFIG_SND_SOC_SSM2602=m
-CONFIG_SND_SOC_TLV320AIC23=m
-CONFIG_SND_SOC_TLV320AIC3X=m
-CONFIG_SND_SOC_UDA134X=m
-CONFIG_SND_SOC_UDA1380=m
-CONFIG_SND_SOC_WM8350=m
-CONFIG_SND_SOC_WM8400=m
-CONFIG_SND_SOC_WM8510=m
-CONFIG_SND_SOC_WM8523=m
-CONFIG_SND_SOC_WM8580=m
-CONFIG_SND_SOC_WM8728=m
-CONFIG_SND_SOC_WM8731=m
-CONFIG_SND_SOC_WM8750=m
-CONFIG_SND_SOC_WM8753=m
-CONFIG_SND_SOC_WM8776=m
-CONFIG_SND_SOC_WM8900=m
-CONFIG_SND_SOC_WM8903=m
-CONFIG_SND_SOC_WM8940=m
-CONFIG_SND_SOC_WM8960=m
-CONFIG_SND_SOC_WM8961=m
-CONFIG_SND_SOC_WM8971=m
-CONFIG_SND_SOC_WM8974=m
-CONFIG_SND_SOC_WM8988=m
-CONFIG_SND_SOC_WM8990=m
-CONFIG_SND_SOC_WM8993=m
-CONFIG_SND_SOC_WM9081=m
-CONFIG_SND_SOC_MAX9877=m
+# CONFIG_SND_SOC_ALL_CODECS is not set
 # CONFIG_SOUND_PRIME is not set
 CONFIG_AC97_BUS=m
 CONFIG_HID_SUPPORT=y
@@ -2585,45 +2459,82 @@ CONFIG_USB_HIDDEV=y
 # Special HID drivers
 #
 CONFIG_HID_A4TECH=m
+CONFIG_HID_ACRUX=m
+# CONFIG_HID_ACRUX_FF is not set
 CONFIG_HID_APPLE=m
 CONFIG_HID_BELKIN=m
 CONFIG_HID_CHERRY=m
 CONFIG_HID_CHICONY=m
+CONFIG_HID_PRODIKEYS=m
 CONFIG_HID_CYPRESS=m
 CONFIG_HID_DRAGONRISE=m
-CONFIG_DRAGONRISE_FF=y
+# CONFIG_DRAGONRISE_FF is not set
+# CONFIG_HID_EMS_FF is not set
+CONFIG_HID_ELECOM=m
 CONFIG_HID_EZKEY=m
+CONFIG_HID_HOLTEK=m
+# CONFIG_HOLTEK_FF is not set
+CONFIG_HID_KEYTOUCH=m
 CONFIG_HID_KYE=m
+CONFIG_HID_UCLOGIC=m
+CONFIG_HID_WALTOP=m
 CONFIG_HID_GYRATION=m
 CONFIG_HID_TWINHAN=m
 CONFIG_HID_KENSINGTON=m
+CONFIG_HID_LCPOWER=m
 CONFIG_HID_LOGITECH=m
-CONFIG_LOGITECH_FF=y
-CONFIG_LOGIRUMBLEPAD2_FF=y
+CONFIG_HID_LOGITECH_DJ=m
+# CONFIG_LOGITECH_FF is not set
+# CONFIG_LOGIRUMBLEPAD2_FF is not set
+# CONFIG_LOGIG940_FF is not set
+# CONFIG_LOGIWHEELS_FF is not set
+CONFIG_HID_MAGICMOUSE=m
 CONFIG_HID_MICROSOFT=m
 CONFIG_HID_MONTEREY=m
+CONFIG_HID_MULTITOUCH=m
 CONFIG_HID_NTRIG=m
+CONFIG_HID_ORTEK=m
 CONFIG_HID_PANTHERLORD=m
-CONFIG_PANTHERLORD_FF=y
+# CONFIG_PANTHERLORD_FF is not set
 CONFIG_HID_PETALYNX=m
+CONFIG_HID_PICOLCD=m
+CONFIG_HID_PICOLCD_FB=y
+CONFIG_HID_PICOLCD_BACKLIGHT=y
+CONFIG_HID_PICOLCD_LCD=y
+CONFIG_HID_PICOLCD_LEDS=y
+CONFIG_HID_PRIMAX=m
+CONFIG_HID_QUANTA=m
+CONFIG_HID_ROCCAT=m
+CONFIG_HID_ROCCAT_COMMON=m
+CONFIG_HID_ROCCAT_ARVO=m
+CONFIG_HID_ROCCAT_KONE=m
+CONFIG_HID_ROCCAT_KONEPLUS=m
+CONFIG_HID_ROCCAT_KOVAPLUS=m
+CONFIG_HID_ROCCAT_PYRA=m
 CONFIG_HID_SAMSUNG=m
 CONFIG_HID_SONY=m
+CONFIG_HID_SPEEDLINK=m
 CONFIG_HID_SUNPLUS=m
 CONFIG_HID_GREENASIA=m
-CONFIG_GREENASIA_FF=y
+# CONFIG_GREENASIA_FF is not set
 CONFIG_HID_SMARTJOYPLUS=m
-CONFIG_SMARTJOYPLUS_FF=y
+# CONFIG_SMARTJOYPLUS_FF is not set
 CONFIG_HID_TOPSEED=m
 CONFIG_HID_THRUSTMASTER=m
-CONFIG_THRUSTMASTER_FF=y
+# CONFIG_THRUSTMASTER_FF is not set
 CONFIG_HID_WACOM=m
+# CONFIG_HID_WACOM_POWER_SUPPLY is not set
+CONFIG_HID_WIIMOTE=m
 CONFIG_HID_ZEROPLUS=m
-CONFIG_ZEROPLUS_FF=y
+# CONFIG_ZEROPLUS_FF is not set
+CONFIG_HID_ZYDACRON=m
 CONFIG_USB_SUPPORT=y
+CONFIG_USB_COMMON=y
 CONFIG_USB_ARCH_HAS_HCD=y
-CONFIG_USB_ARCH_HAS_OHCI=y
-CONFIG_USB_ARCH_HAS_EHCI=y
-CONFIG_USB=m
+# CONFIG_USB_ARCH_HAS_OHCI is not set
+# CONFIG_USB_ARCH_HAS_EHCI is not set
+# CONFIG_USB_ARCH_HAS_XHCI is not set
+CONFIG_USB=y
 # CONFIG_USB_DEBUG is not set
 CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
 
@@ -2635,41 +2546,26 @@ CONFIG_USB_DEVICE_CLASS=y
 CONFIG_USB_DYNAMIC_MINORS=y
 CONFIG_USB_SUSPEND=y
 # CONFIG_USB_OTG is not set
+CONFIG_USB_DWC3=m
+# CONFIG_USB_DWC3_DEBUG is not set
 # CONFIG_USB_MON is not set
-CONFIG_USB_WUSB=m
-CONFIG_USB_WUSB_CBAF=m
-# CONFIG_USB_WUSB_CBAF_DEBUG is not set
+# CONFIG_USB_WUSB is not set
+# CONFIG_USB_WUSB_CBAF is not set
 
 #
 # USB Host Controller Drivers
 #
 # CONFIG_USB_C67X00_HCD is not set
-CONFIG_USB_XHCI_HCD=m
-# CONFIG_USB_XHCI_HCD_DEBUGGING is not set
-CONFIG_USB_EHCI_HCD=m
-CONFIG_USB_EHCI_ROOT_HUB_TT=y
-# CONFIG_USB_EHCI_TT_NEWSCHED is not set
 CONFIG_USB_OXU210HP_HCD=m
 CONFIG_USB_ISP116X_HCD=m
 # CONFIG_USB_ISP1760_HCD is not set
-# CONFIG_USB_ISP1362_HCD is not set
-CONFIG_USB_OHCI_HCD=m
-CONFIG_USB_OHCI_HCD_SSB=y
-# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
-# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
-CONFIG_USB_OHCI_LITTLE_ENDIAN=y
-CONFIG_USB_UHCI_HCD=m
+CONFIG_USB_ISP1362_HCD=m
 CONFIG_USB_U132_HCD=m
 CONFIG_USB_SL811_HCD=m
-# CONFIG_USB_SL811_CS is not set
+# CONFIG_USB_SL811_HCD_ISO is not set
 CONFIG_USB_R8A66597_HCD=m
-CONFIG_USB_WHCI_HCD=m
-CONFIG_USB_HWA_HCD=m
-
-#
-# Enable Host or Gadget support to see Inventra options
-#
-# CONFIG_USB_MUSB_HDRC is not set
+# CONFIG_USB_HWA_HCD is not set
+CONFIG_USB_DWCOTG=y
 
 #
 # USB Device Class drivers
@@ -2688,7 +2584,9 @@ CONFIG_USB_TMC=m
 #
 CONFIG_USB_STORAGE=m
 # CONFIG_USB_STORAGE_DEBUG is not set
-# CONFIG_USB_STORAGE_DATAFAB is not set
+CONFIG_USB_STORAGE_REALTEK=m
+CONFIG_REALTEK_AUTOPM=y
+CONFIG_USB_STORAGE_DATAFAB=m
 CONFIG_USB_STORAGE_FREECOM=m
 CONFIG_USB_STORAGE_ISD200=m
 CONFIG_USB_STORAGE_USBAT=m
@@ -2699,6 +2597,8 @@ CONFIG_USB_STORAGE_ALAUDA=m
 CONFIG_USB_STORAGE_ONETOUCH=m
 CONFIG_USB_STORAGE_KARMA=m
 CONFIG_USB_STORAGE_CYPRESS_ATACB=m
+CONFIG_USB_STORAGE_ENE_UB6250=m
+CONFIG_USB_UAS=m
 # CONFIG_USB_LIBUSUAL is not set
 
 #
@@ -2724,12 +2624,12 @@ CONFIG_USB_SERIAL_CP210X=m
 CONFIG_USB_SERIAL_CYPRESS_M8=m
 CONFIG_USB_SERIAL_EMPEG=m
 CONFIG_USB_SERIAL_FTDI_SIO=m
-# CONFIG_USB_SERIAL_FUNSOFT is not set
-# CONFIG_USB_SERIAL_VISOR is not set
-# CONFIG_USB_SERIAL_IPAQ is not set
-# CONFIG_USB_SERIAL_IR is not set
+CONFIG_USB_SERIAL_FUNSOFT=m
+CONFIG_USB_SERIAL_VISOR=m
+CONFIG_USB_SERIAL_IPAQ=m
+CONFIG_USB_SERIAL_IR=m
 CONFIG_USB_SERIAL_EDGEPORT=m
-# CONFIG_USB_SERIAL_EDGEPORT_TI is not set
+CONFIG_USB_SERIAL_EDGEPORT_TI=m
 CONFIG_USB_SERIAL_GARMIN=m
 CONFIG_USB_SERIAL_IPW=m
 CONFIG_USB_SERIAL_IUU=m
@@ -2739,11 +2639,13 @@ CONFIG_USB_SERIAL_IUU=m
 # CONFIG_USB_SERIAL_KOBIL_SCT is not set
 CONFIG_USB_SERIAL_MCT_U232=m
 CONFIG_USB_SERIAL_MOS7720=m
+# CONFIG_USB_SERIAL_MOS7715_PARPORT is not set
 CONFIG_USB_SERIAL_MOS7840=m
 CONFIG_USB_SERIAL_MOTOROLA=m
 # CONFIG_USB_SERIAL_NAVMAN is not set
 CONFIG_USB_SERIAL_PL2303=m
 CONFIG_USB_SERIAL_OTI6858=m
+CONFIG_USB_SERIAL_QCAUX=m
 CONFIG_USB_SERIAL_QUALCOMM=m
 CONFIG_USB_SERIAL_SPCP8X5=m
 CONFIG_USB_SERIAL_HP4X=m
@@ -2755,9 +2657,13 @@ CONFIG_USB_SERIAL_SYMBOL=m
 CONFIG_USB_SERIAL_TI=m
 # CONFIG_USB_SERIAL_CYBERJACK is not set
 CONFIG_USB_SERIAL_XIRCOM=m
+CONFIG_USB_SERIAL_WWAN=m
 CONFIG_USB_SERIAL_OPTION=m
 # CONFIG_USB_SERIAL_OMNINET is not set
 CONFIG_USB_SERIAL_OPTICON=m
+CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m
+CONFIG_USB_SERIAL_ZIO=m
+CONFIG_USB_SERIAL_SSU100=m
 # CONFIG_USB_SERIAL_DEBUG is not set
 
 #
@@ -2770,21 +2676,18 @@ CONFIG_USB_SEVSEG=m
 # CONFIG_USB_RIO500 is not set
 # CONFIG_USB_LEGOTOWER is not set
 CONFIG_USB_LCD=m
-CONFIG_USB_BERRY_CHARGE=m
 CONFIG_USB_LED=m
 CONFIG_USB_CYPRESS_CY7C63=m
 CONFIG_USB_CYTHERM=m
 # CONFIG_USB_IDMOUSE is not set
 CONFIG_USB_FTDI_ELAN=m
 # CONFIG_USB_APPLEDISPLAY is not set
-CONFIG_USB_SISUSBVGA=m
-CONFIG_USB_SISUSBVGA_CON=y
 # CONFIG_USB_LD is not set
 # CONFIG_USB_TRANCEVIBRATOR is not set
 CONFIG_USB_IOWARRIOR=m
 # CONFIG_USB_TEST is not set
 CONFIG_USB_ISIGHTFW=m
-CONFIG_USB_VST=m
+CONFIG_USB_YUREX=m
 CONFIG_USB_ATM=m
 CONFIG_USB_SPEEDTOUCH=m
 CONFIG_USB_CXACRU=m
@@ -2797,21 +2700,18 @@ CONFIG_USB_XUSBATM=m
 #
 CONFIG_USB_OTG_UTILS=y
 CONFIG_USB_GPIO_VBUS=m
+# CONFIG_USB_ULPI is not set
 CONFIG_NOP_USB_XCEIV=m
-CONFIG_UWB=m
-CONFIG_UWB_HWA=m
-CONFIG_UWB_WHCI=m
-CONFIG_UWB_WLP=m
-CONFIG_UWB_I1480U=m
-CONFIG_UWB_I1480U_WLP=m
-CONFIG_MMC=m
+CONFIG_MMC=y
 # CONFIG_MMC_DEBUG is not set
 # CONFIG_MMC_UNSAFE_RESUME is not set
+# CONFIG_MMC_CLKGATE is not set
 
 #
 # MMC/SD/SDIO Card Drivers
 #
-CONFIG_MMC_BLOCK=m
+CONFIG_MMC_BLOCK=y
+CONFIG_MMC_BLOCK_MINORS=8
 CONFIG_MMC_BLOCK_BOUNCE=y
 CONFIG_SDIO_UART=m
 CONFIG_MMC_TEST=m
@@ -2820,16 +2720,18 @@ CONFIG_MMC_TEST=m
 # MMC/SD/SDIO Host Controller Drivers
 #
 CONFIG_MMC_ARMMMCI=m
-CONFIG_MMC_SDHCI=m
-CONFIG_MMC_SDHCI_PCI=m
-CONFIG_MMC_RICOH_MMC=m
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_IO_ACCESSORS=y
 CONFIG_MMC_SDHCI_PLTFM=m
-# CONFIG_MMC_AT91 is not set
-# CONFIG_MMC_ATMELMCI is not set
-CONFIG_MMC_TIFM_SD=m
-CONFIG_MMC_SDRICOH_CS=m
-CONFIG_MMC_CB710=m
-CONFIG_MMC_VIA_SDMMC=m
+CONFIG_MMC_SDHCI_PXAV3=m
+CONFIG_MMC_SDHCI_PXAV2=m
+CONFIG_MMC_SDHCI_BCM2708=y
+CONFIG_MMC_SDHCI_BCM2708_DMA=y
+# CONFIG_MMC_BCM2708 is not set
+CONFIG_MMC_DW=m
+# CONFIG_MMC_DW_IDMAC is not set
+CONFIG_MMC_VUB300=m
+CONFIG_MMC_USHC=m
 CONFIG_MEMSTICK=m
 # CONFIG_MEMSTICK_DEBUG is not set
 
@@ -2842,41 +2744,46 @@ CONFIG_MSPRO_BLOCK=m
 #
 # MemoryStick Host Controller Drivers
 #
-CONFIG_MEMSTICK_TIFM_MS=m
-CONFIG_MEMSTICK_JMICRON_38X=m
 CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=m
+CONFIG_LEDS_CLASS=y
 
 #
 # LED drivers
 #
+CONFIG_LEDS_88PM860X=m
+CONFIG_LEDS_LM3530=m
 CONFIG_LEDS_PCA9532=m
+CONFIG_LEDS_PCA9532_GPIO=y
 CONFIG_LEDS_GPIO=m
-CONFIG_LEDS_GPIO_PLATFORM=y
 CONFIG_LEDS_LP3944=m
+CONFIG_LEDS_LP5521=m
+CONFIG_LEDS_LP5523=m
 CONFIG_LEDS_PCA955X=m
-CONFIG_LEDS_WM831X_STATUS=m
-CONFIG_LEDS_WM8350=m
+CONFIG_LEDS_REGULATOR=m
 CONFIG_LEDS_BD2802=m
+CONFIG_LEDS_LT3593=m
+# CONFIG_LEDS_RENESAS_TPU is not set
+CONFIG_LEDS_TRIGGERS=y
 
 #
 # LED Triggers
 #
-CONFIG_LEDS_TRIGGERS=y
 CONFIG_LEDS_TRIGGER_TIMER=m
 CONFIG_LEDS_TRIGGER_HEARTBEAT=m
 CONFIG_LEDS_TRIGGER_BACKLIGHT=m
 CONFIG_LEDS_TRIGGER_GPIO=m
-CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
+CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
 
 #
 # iptables trigger is under Netfilter config (LED target)
 #
 CONFIG_LEDS_TRIGGER_NETDEV=m
 # CONFIG_ACCESSIBILITY is not set
-# CONFIG_INFINIBAND is not set
 CONFIG_RTC_LIB=y
-CONFIG_RTC_CLASS=m
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
 
 #
 # RTC interfaces
@@ -2885,26 +2792,32 @@ CONFIG_RTC_INTF_SYSFS=y
 CONFIG_RTC_INTF_PROC=y
 CONFIG_RTC_INTF_DEV=y
 # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
-CONFIG_RTC_DRV_TEST=m
+# CONFIG_RTC_DRV_TEST is not set
 
 #
 # I2C RTC drivers
 #
+CONFIG_RTC_DRV_88PM860X=y
 CONFIG_RTC_DRV_DS1307=m
 CONFIG_RTC_DRV_DS1374=m
 CONFIG_RTC_DRV_DS1672=m
+CONFIG_RTC_DRV_DS3232=m
 CONFIG_RTC_DRV_MAX6900=m
 CONFIG_RTC_DRV_RS5C372=m
 CONFIG_RTC_DRV_ISL1208=m
+CONFIG_RTC_DRV_ISL12022=m
 CONFIG_RTC_DRV_X1205=m
 CONFIG_RTC_DRV_PCF8563=m
 CONFIG_RTC_DRV_PCF8583=m
 CONFIG_RTC_DRV_M41T80=m
-# CONFIG_RTC_DRV_M41T80_WDT is not set
+CONFIG_RTC_DRV_M41T80_WDT=y
+CONFIG_RTC_DRV_BQ32K=m
 CONFIG_RTC_DRV_S35390A=m
 CONFIG_RTC_DRV_FM3130=m
 CONFIG_RTC_DRV_RX8581=m
 CONFIG_RTC_DRV_RX8025=m
+CONFIG_RTC_DRV_EM3027=m
+CONFIG_RTC_DRV_RV3029C2=m
 
 #
 # SPI RTC drivers
@@ -2922,12 +2835,11 @@ CONFIG_RTC_DRV_STK17TA8=m
 CONFIG_RTC_DRV_M48T86=m
 CONFIG_RTC_DRV_M48T35=m
 CONFIG_RTC_DRV_M48T59=m
+CONFIG_RTC_DRV_MSM6242=m
 CONFIG_RTC_DRV_BQ4802=m
+CONFIG_RTC_DRV_RP5C01=m
 CONFIG_RTC_DRV_V3020=m
-CONFIG_RTC_DRV_WM831X=m
-CONFIG_RTC_DRV_WM8350=m
 CONFIG_RTC_DRV_PCF50633=m
-CONFIG_RTC_DRV_AB3100=m
 
 #
 # on-CPU RTC drivers
@@ -2935,98 +2847,88 @@ CONFIG_RTC_DRV_AB3100=m
 CONFIG_RTC_DRV_PL030=m
 CONFIG_RTC_DRV_PL031=m
 CONFIG_DMADEVICES=y
+# CONFIG_DMADEVICES_DEBUG is not set
 
 #
 # DMA Devices
 #
+CONFIG_AMBA_PL08X=y
+CONFIG_DW_DMAC=y
+# CONFIG_TIMB_DMA is not set
+CONFIG_PL330_DMA=y
+CONFIG_DMA_ENGINE=y
+
+#
+# DMA Clients
+#
+CONFIG_NET_DMA=y
+CONFIG_ASYNC_TX_DMA=y
+CONFIG_DMATEST=m
 # CONFIG_AUXDISPLAY is not set
 CONFIG_UIO=m
-CONFIG_UIO_CIF=m
 CONFIG_UIO_PDRV=m
 CONFIG_UIO_PDRV_GENIRQ=m
-CONFIG_UIO_SMX=m
-CONFIG_UIO_AEC=m
-CONFIG_UIO_SERCOS3=m
-CONFIG_UIO_PCI_GENERIC=m
 
 #
-# TI VLYNQ
+# Virtio drivers
 #
+# CONFIG_VIRTIO_BALLOON is not set
+# CONFIG_VIRTIO_MMIO is not set
 CONFIG_STAGING=y
-# CONFIG_STAGING_EXCLUDE_BUILD is not set
-CONFIG_ET131X=m
-# CONFIG_ET131X_DEBUG is not set
-# CONFIG_VIDEO_GO7007 is not set
-# CONFIG_VIDEO_CX25821 is not set
-# CONFIG_USB_IP_COMMON is not set
+CONFIG_USBIP_CORE=m
+CONFIG_USBIP_VHCI_HCD=m
+CONFIG_USBIP_HOST=m
+# CONFIG_USBIP_DEBUG is not set
 # CONFIG_W35UND is not set
 # CONFIG_PRISM2_USB is not set
 # CONFIG_ECHO is not set
-# CONFIG_POCH is not set
-# CONFIG_OTUS is not set
-# CONFIG_COMEDI is not set
 # CONFIG_ASUS_OLED is not set
 # CONFIG_PANEL is not set
-# CONFIG_ALTERA_PCIE_CHDMA is not set
-# CONFIG_RTL8187SE is not set
-# CONFIG_RTL8192SU is not set
-# CONFIG_RTL8192E is not set
+# CONFIG_R8712U is not set
+# CONFIG_RTS5139 is not set
 # CONFIG_TRANZPORT is not set
-
-#
-# Android
-#
-
-#
-# Qualcomm MSM Camera And Video
-#
-
-#
-# Camera Sensor Selection
-#
-# CONFIG_INPUT_GPIO is not set
-# CONFIG_DST is not set
 # CONFIG_POHMELFS is not set
-# CONFIG_B3DFG is not set
-CONFIG_IDE_PHISON=m
-# CONFIG_PLAN9AUTH is not set
 # CONFIG_LINE6_USB is not set
 # CONFIG_USB_SERIAL_QUATECH2 is not set
 # CONFIG_USB_SERIAL_QUATECH_USB2 is not set
-# CONFIG_VT6655 is not set
 # CONFIG_VT6656 is not set
-# CONFIG_FB_UDL is not set
-# CONFIG_VME_BUS is not set
+# CONFIG_IIO is not set
+# CONFIG_XVMALLOC is not set
+# CONFIG_ZRAM is not set
+# CONFIG_FB_SM7XX is not set
+# CONFIG_USB_ENESTORAGE is not set
+# CONFIG_BCM_WIMAX is not set
+# CONFIG_FT1000 is not set
 
 #
-# RAR Register Driver
+# Speakup console speech
 #
-# CONFIG_RAR_REGISTER is not set
-# CONFIG_IIO is not set
+# CONFIG_SPEAKUP is not set
+# CONFIG_TOUCHSCREEN_CLEARPAD_TM1217 is not set
+# CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4 is not set
+# CONFIG_STAGING_MEDIA is not set
+CONFIG_CLKDEV_LOOKUP=y
+
+#
+# Hardware Spinlock drivers
+#
+CONFIG_IOMMU_SUPPORT=y
+# CONFIG_VIRT_DRIVERS is not set
+# CONFIG_PM_DEVFREQ is not set
 
 #
 # File systems
 #
-CONFIG_EXT2_FS=m
-CONFIG_EXT2_FS_XATTR=y
-CONFIG_EXT2_FS_POSIX_ACL=y
-CONFIG_EXT2_FS_SECURITY=y
-# CONFIG_EXT2_FS_XIP is not set
-CONFIG_EXT3_FS=m
-# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
-CONFIG_EXT3_FS_XATTR=y
-CONFIG_EXT3_FS_POSIX_ACL=y
-CONFIG_EXT3_FS_SECURITY=y
-CONFIG_EXT4_FS=m
+# CONFIG_EXT2_FS is not set
+# CONFIG_EXT3_FS is not set
+CONFIG_EXT4_FS=y
+CONFIG_EXT4_USE_FOR_EXT23=y
 CONFIG_EXT4_FS_XATTR=y
 CONFIG_EXT4_FS_POSIX_ACL=y
 CONFIG_EXT4_FS_SECURITY=y
 # CONFIG_EXT4_DEBUG is not set
-CONFIG_JBD=m
-CONFIG_JBD2=m
-CONFIG_FS_MBCACHE=m
-CONFIG_REISER4_FS=m
-# CONFIG_REISER4_DEBUG is not set
+CONFIG_JBD2=y
+CONFIG_FS_MBCACHE=y
 CONFIG_REISERFS_FS=m
 # CONFIG_REISERFS_CHECK is not set
 CONFIG_REISERFS_PROC_INFO=y
@@ -3038,29 +2940,29 @@ CONFIG_JFS_POSIX_ACL=y
 CONFIG_JFS_SECURITY=y
 # CONFIG_JFS_DEBUG is not set
 CONFIG_JFS_STATISTICS=y
-CONFIG_FS_POSIX_ACL=y
 CONFIG_XFS_FS=m
 CONFIG_XFS_QUOTA=y
 CONFIG_XFS_POSIX_ACL=y
 # CONFIG_XFS_RT is not set
 # CONFIG_XFS_DEBUG is not set
 # CONFIG_GFS2_FS is not set
-# CONFIG_OCFS2_FS is not set
 # CONFIG_BTRFS_FS is not set
 # CONFIG_NILFS2_FS is not set
+CONFIG_FS_POSIX_ACL=y
+CONFIG_EXPORTFS=m
 CONFIG_FILE_LOCKING=y
 CONFIG_FSNOTIFY=y
 CONFIG_DNOTIFY=y
-CONFIG_INOTIFY=y
 CONFIG_INOTIFY_USER=y
+CONFIG_FANOTIFY=y
 CONFIG_QUOTA=y
 CONFIG_QUOTA_NETLINK_INTERFACE=y
 CONFIG_PRINT_QUOTA_WARNING=y
+# CONFIG_QUOTA_DEBUG is not set
 CONFIG_QUOTA_TREE=m
 CONFIG_QFMT_V1=m
 CONFIG_QFMT_V2=m
 CONFIG_QUOTACTL=y
-CONFIG_AUTOFS_FS=m
 CONFIG_AUTOFS4_FS=m
 CONFIG_FUSE_FS=m
 CONFIG_CUSE=m
@@ -3105,6 +3007,7 @@ CONFIG_PROC_PAGE_MONITOR=y
 CONFIG_SYSFS=y
 CONFIG_TMPFS=y
 # CONFIG_TMPFS_POSIX_ACL is not set
+CONFIG_TMPFS_XATTR=y
 # CONFIG_HUGETLB_PAGE is not set
 # CONFIG_CONFIGFS_FS is not set
 CONFIG_MISC_FILESYSTEMS=y
@@ -3132,6 +3035,7 @@ CONFIG_JFFS2_CMODE_PRIORITY=y
 # CONFIG_JFFS2_CMODE_SIZE is not set
 # CONFIG_JFFS2_CMODE_FAVOURLZO is not set
 # CONFIG_UBIFS_FS is not set
+# CONFIG_LOGFS is not set
 # CONFIG_CRAMFS is not set
 # CONFIG_SQUASHFS is not set
 # CONFIG_VXFS_FS is not set
@@ -3140,8 +3044,12 @@ CONFIG_JFFS2_CMODE_PRIORITY=y
 # CONFIG_HPFS_FS is not set
 # CONFIG_QNX4FS_FS is not set
 # CONFIG_ROMFS_FS is not set
+# CONFIG_PSTORE is not set
 # CONFIG_SYSV_FS is not set
-# CONFIG_UFS_FS is not set
+CONFIG_UFS_FS=m
+# CONFIG_UFS_FS_WRITE is not set
+# CONFIG_UFS_DEBUG is not set
+# CONFIG_EXOFS_FS is not set
 CONFIG_NETWORK_FILESYSTEMS=y
 CONFIG_NFS_FS=m
 CONFIG_NFS_V3=y
@@ -3149,6 +3057,9 @@ CONFIG_NFS_V3_ACL=y
 CONFIG_NFS_V4=y
 # CONFIG_NFS_V4_1 is not set
 # CONFIG_NFS_FSCACHE is not set
+# CONFIG_NFS_USE_LEGACY_DNS is not set
+CONFIG_NFS_USE_KERNEL_DNS=y
+# CONFIG_NFS_USE_NEW_IDMAPPER is not set
 CONFIG_NFSD=m
 CONFIG_NFSD_V2_ACL=y
 CONFIG_NFSD_V3=y
@@ -3156,15 +3067,12 @@ CONFIG_NFSD_V3_ACL=y
 CONFIG_NFSD_V4=y
 CONFIG_LOCKD=m
 CONFIG_LOCKD_V4=y
-CONFIG_EXPORTFS=m
 CONFIG_NFS_ACL_SUPPORT=m
 CONFIG_NFS_COMMON=y
 CONFIG_SUNRPC=m
 CONFIG_SUNRPC_GSS=m
 CONFIG_RPCSEC_GSS_KRB5=m
-# CONFIG_RPCSEC_GSS_SPKM3 is not set
-CONFIG_SMB_FS=m
-# CONFIG_SMB_NLS_DEFAULT is not set
+# CONFIG_CEPH_FS is not set
 CONFIG_CIFS=m
 CONFIG_CIFS_STATS=y
 CONFIG_CIFS_STATS2=y
@@ -3174,7 +3082,8 @@ CONFIG_CIFS_XATTR=y
 CONFIG_CIFS_POSIX=y
 # CONFIG_CIFS_DEBUG2 is not set
 # CONFIG_CIFS_DFS_UPCALL is not set
-# CONFIG_CIFS_EXPERIMENTAL is not set
+# CONFIG_CIFS_FSCACHE is not set
+CONFIG_CIFS_ACL=y
 # CONFIG_NCP_FS is not set
 # CONFIG_CODA_FS is not set
 # CONFIG_AFS_FS is not set
@@ -3189,7 +3098,7 @@ CONFIG_PARTITION_ADVANCED=y
 # CONFIG_ATARI_PARTITION is not set
 # CONFIG_MAC_PARTITION is not set
 CONFIG_MSDOS_PARTITION=y
-# CONFIG_BSD_DISKLABEL is not set
+CONFIG_BSD_DISKLABEL=y
 # CONFIG_MINIX_SUBPARTITION is not set
 # CONFIG_SOLARIS_X86_PARTITION is not set
 # CONFIG_UNIXWARE_DISKLABEL is not set
@@ -3241,12 +3150,12 @@ CONFIG_NLS_ISO8859_1=y
 # CONFIG_NLS_KOI8_R is not set
 # CONFIG_NLS_KOI8_U is not set
 CONFIG_NLS_UTF8=y
-# CONFIG_DLM is not set
 
 #
 # Kernel hacking
 #
 # CONFIG_PRINTK_TIME is not set
+CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4
 # CONFIG_ENABLE_WARN_DEPRECATED is not set
 CONFIG_ENABLE_MUST_CHECK=y
 CONFIG_FRAME_WARN=1024
@@ -3255,12 +3164,13 @@ CONFIG_STRIP_ASM_SYMS=y
 # CONFIG_UNUSED_SYMBOLS is not set
 # CONFIG_DEBUG_FS is not set
 # CONFIG_HEADERS_CHECK is not set
+# CONFIG_DEBUG_SECTION_MISMATCH is not set
 CONFIG_DEBUG_KERNEL=y
 # CONFIG_DEBUG_SHIRQ is not set
-CONFIG_DETECT_SOFTLOCKUP=y
-# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
-CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
+# CONFIG_LOCKUP_DETECTOR is not set
+# CONFIG_HARDLOCKUP_DETECTOR is not set
 CONFIG_DETECT_HUNG_TASK=y
+CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
 # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
 CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
 CONFIG_SCHED_DEBUG=y
@@ -3276,52 +3186,67 @@ CONFIG_TIMER_STATS=y
 # CONFIG_DEBUG_MUTEXES is not set
 # CONFIG_DEBUG_LOCK_ALLOC is not set
 # CONFIG_PROVE_LOCKING is not set
+# CONFIG_SPARSE_RCU_POINTER is not set
 # CONFIG_LOCK_STAT is not set
-# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+# CONFIG_DEBUG_ATOMIC_SLEEP is not set
 # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+# CONFIG_DEBUG_STACK_USAGE is not set
 # CONFIG_DEBUG_KOBJECT is not set
-# CONFIG_DEBUG_HIGHMEM is not set
 CONFIG_DEBUG_BUGVERBOSE=y
 # CONFIG_DEBUG_INFO is not set
 # CONFIG_DEBUG_VM is not set
 # CONFIG_DEBUG_WRITECOUNT is not set
 CONFIG_DEBUG_MEMORY_INIT=y
 # CONFIG_DEBUG_LIST is not set
+# CONFIG_TEST_LIST_SORT is not set
 # CONFIG_DEBUG_SG is not set
 # CONFIG_DEBUG_NOTIFIERS is not set
 # CONFIG_DEBUG_CREDENTIALS is not set
 CONFIG_FRAME_POINTER=y
 # CONFIG_BOOT_PRINTK_DELAY is not set
 # CONFIG_RCU_TORTURE_TEST is not set
-# CONFIG_RCU_CPU_STALL_DETECTOR is not set
 # CONFIG_BACKTRACE_SELF_TEST is not set
 # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
 # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
 # CONFIG_FAULT_INJECTION is not set
 # CONFIG_LATENCYTOP is not set
 # CONFIG_SYSCTL_SYSCALL_CHECK is not set
-# CONFIG_PAGE_POISONING is not set
+# CONFIG_DEBUG_PAGEALLOC is not set
 CONFIG_HAVE_FUNCTION_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
+CONFIG_HAVE_C_RECORDMCOUNT=y
 CONFIG_TRACING_SUPPORT=y
 # CONFIG_FTRACE is not set
-# CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set
+# CONFIG_DMA_API_DEBUG is not set
+# CONFIG_ATOMIC64_SELFTEST is not set
+CONFIG_ASYNC_RAID6_TEST=m
 # CONFIG_SAMPLES is not set
 CONFIG_HAVE_ARCH_KGDB=y
 # CONFIG_KGDB is not set
+# CONFIG_TEST_KSTRTOX is not set
+# CONFIG_STRICT_DEVMEM is not set
 # CONFIG_ARM_UNWIND is not set
 # CONFIG_DEBUG_USER is not set
-# CONFIG_DEBUG_ERRORS is not set
-# CONFIG_DEBUG_STACK_USAGE is not set
-# CONFIG_DEBUG_LL is not set
+CONFIG_DEBUG_LL=y
+CONFIG_DEBUG_LL_UART_NONE=y
+# CONFIG_DEBUG_ICEDCC is not set
+# CONFIG_DEBUG_BCM2708_UART0 is not set
+CONFIG_EARLY_PRINTK=y
+# CONFIG_OC_ETM is not set
 
 #
 # Security options
 #
 CONFIG_KEYS=y
+# CONFIG_ENCRYPTED_KEYS is not set
 # CONFIG_KEYS_DEBUG_PROC_KEYS is not set
+# CONFIG_SECURITY_DMESG_RESTRICT is not set
 # CONFIG_SECURITY is not set
 # CONFIG_SECURITYFS is not set
-# CONFIG_SECURITY_FILE_CAPABILITIES is not set
+CONFIG_DEFAULT_SECURITY_DAC=y
+CONFIG_DEFAULT_SECURITY=""
 CONFIG_XOR_BLOCKS=m
 CONFIG_ASYNC_CORE=m
 CONFIG_ASYNC_MEMCPY=m
@@ -3333,7 +3258,6 @@ CONFIG_CRYPTO=y
 #
 # Crypto core or helper
 #
-CONFIG_CRYPTO_FIPS=y
 CONFIG_CRYPTO_ALGAPI=y
 CONFIG_CRYPTO_ALGAPI2=y
 CONFIG_CRYPTO_AEAD=m
@@ -3344,9 +3268,12 @@ CONFIG_CRYPTO_HASH=y
 CONFIG_CRYPTO_HASH2=y
 CONFIG_CRYPTO_RNG=m
 CONFIG_CRYPTO_RNG2=y
-CONFIG_CRYPTO_PCOMP=y
+CONFIG_CRYPTO_PCOMP=m
+CONFIG_CRYPTO_PCOMP2=y
 CONFIG_CRYPTO_MANAGER=y
 CONFIG_CRYPTO_MANAGER2=y
+CONFIG_CRYPTO_USER=m
+CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
 CONFIG_CRYPTO_GF128MUL=m
 # CONFIG_CRYPTO_NULL is not set
 CONFIG_CRYPTO_WORKQUEUE=y
@@ -3384,7 +3311,7 @@ CONFIG_CRYPTO_VMAC=m
 #
 CONFIG_CRYPTO_CRC32C=m
 CONFIG_CRYPTO_GHASH=m
-# CONFIG_CRYPTO_MD4 is not set
+CONFIG_CRYPTO_MD4=m
 CONFIG_CRYPTO_MD5=m
 CONFIG_CRYPTO_MICHAEL_MIC=m
 CONFIG_CRYPTO_RMD128=m
@@ -3404,6 +3331,7 @@ CONFIG_CRYPTO_AES=m
 CONFIG_CRYPTO_ANUBIS=m
 CONFIG_CRYPTO_ARC4=m
 CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_BLOWFISH_COMMON=m
 CONFIG_CRYPTO_CAMELLIA=m
 CONFIG_CRYPTO_CAST5=m
 CONFIG_CRYPTO_CAST6=m
@@ -3428,31 +3356,44 @@ CONFIG_CRYPTO_LZO=m
 # Random Number Generation
 #
 CONFIG_CRYPTO_ANSI_CPRNG=m
+CONFIG_CRYPTO_USER_API=m
+CONFIG_CRYPTO_USER_API_HASH=m
+CONFIG_CRYPTO_USER_API_SKCIPHER=m
 CONFIG_CRYPTO_HW=y
-CONFIG_CRYPTO_DEV_HIFN_795X=m
-CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y
 # CONFIG_BINARY_PRINTF is not set
 
 #
 # Library routines
 #
+CONFIG_RAID6_PQ=m
 CONFIG_BITREVERSE=y
-CONFIG_GENERIC_FIND_LAST_BIT=y
 CONFIG_CRC_CCITT=m
-CONFIG_CRC16=m
+CONFIG_CRC16=y
 CONFIG_CRC_T10DIF=m
 CONFIG_CRC_ITU_T=m
 CONFIG_CRC32=y
 CONFIG_CRC7=m
 CONFIG_LIBCRC32C=m
+CONFIG_CRC8=m
 CONFIG_AUDIT_GENERIC=y
 CONFIG_ZLIB_INFLATE=y
 CONFIG_ZLIB_DEFLATE=y
-CONFIG_LZO_COMPRESS=m
-CONFIG_LZO_DECOMPRESS=m
+CONFIG_LZO_COMPRESS=y
+CONFIG_LZO_DECOMPRESS=y
+CONFIG_XZ_DEC=y
+CONFIG_XZ_DEC_X86=y
+CONFIG_XZ_DEC_POWERPC=y
+CONFIG_XZ_DEC_IA64=y
+CONFIG_XZ_DEC_ARM=y
+CONFIG_XZ_DEC_ARMTHUMB=y
+CONFIG_XZ_DEC_SPARC=y
+CONFIG_XZ_DEC_BCJ=y
+# CONFIG_XZ_DEC_TEST is not set
 CONFIG_DECOMPRESS_GZIP=y
 CONFIG_DECOMPRESS_BZIP2=y
 CONFIG_DECOMPRESS_LZMA=y
+CONFIG_DECOMPRESS_XZ=y
+CONFIG_DECOMPRESS_LZO=y
 CONFIG_TEXTSEARCH=y
 CONFIG_TEXTSEARCH_KMP=m
 CONFIG_TEXTSEARCH_BM=m
@@ -3460,5 +3401,7 @@ CONFIG_TEXTSEARCH_FSM=m
 CONFIG_HAS_IOMEM=y
 CONFIG_HAS_IOPORT=y
 CONFIG_HAS_DMA=y
-CONFIG_CHECK_SIGNATURE=y
 CONFIG_NLATTR=y
+CONFIG_GENERIC_ATOMIC64=y
+CONFIG_AVERAGE=y
+CONFIG_CORDIC=m
index 2c08a1bd29af2250398109cc2ff8fd36e1bd812c..85ae5eb48f0606608ea39659c63321fa44233ee0 100644 (file)
@@ -1,15 +1,14 @@
 #
-# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.32.41-ipfire
-# Tue May 31 14:26:02 2011
+# Automatically generated file; DO NOT EDIT.
+# Linux/i386 3.2.35 Kernel Configuration
 #
 # CONFIG_64BIT is not set
 CONFIG_X86_32=y
 # CONFIG_X86_64 is not set
 CONFIG_X86=y
+CONFIG_INSTRUCTION_DECODER=y
 CONFIG_OUTPUT_FORMAT="elf32-i386"
 CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig"
-CONFIG_GENERIC_TIME=y
 CONFIG_GENERIC_CMOS_UPDATE=y
 CONFIG_CLOCKSOURCE_WATCHDOG=y
 CONFIG_GENERIC_CLOCKEVENTS=y
@@ -19,10 +18,13 @@ CONFIG_STACKTRACE_SUPPORT=y
 CONFIG_HAVE_LATENCYTOP_SUPPORT=y
 CONFIG_MMU=y
 CONFIG_ZONE_DMA=y
+CONFIG_NEED_DMA_MAP_STATE=y
+CONFIG_NEED_SG_DMA_LENGTH=y
 CONFIG_GENERIC_ISA_DMA=y
 CONFIG_GENERIC_IOMAP=y
 CONFIG_GENERIC_BUG=y
 CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_GPIO=y
 CONFIG_ARCH_MAY_HAVE_PC_FDC=y
 # CONFIG_RWSEM_GENERIC_SPINLOCK is not set
 CONFIG_RWSEM_XCHGADD_ALGORITHM=y
@@ -35,7 +37,6 @@ CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
 CONFIG_HAVE_SETUP_PER_CPU_AREA=y
 CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
 CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
-# CONFIG_HAVE_CPUMASK_OF_CPU_MAP is not set
 CONFIG_ARCH_HIBERNATION_POSSIBLE=y
 CONFIG_ARCH_SUSPEND_POSSIBLE=y
 # CONFIG_ZONE_DMA32 is not set
@@ -44,34 +45,34 @@ CONFIG_ARCH_POPULATES_NODE_MAP=y
 CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
 CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
 CONFIG_HAVE_INTEL_TXT=y
-CONFIG_GENERIC_HARDIRQS=y
-CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
-CONFIG_GENERIC_IRQ_PROBE=y
-CONFIG_GENERIC_PENDING_IRQ=y
-CONFIG_USE_GENERIC_SMP_HELPERS=y
 CONFIG_X86_32_SMP=y
 CONFIG_X86_HT=y
-CONFIG_X86_TRAMPOLINE=y
-CONFIG_X86_32_LAZY_GS=y
+CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-ecx -fcall-saved-edx"
 CONFIG_KTIME_SCALAR=y
 CONFIG_ARCH_CPU_PROBE_RELEASE=y
 CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
-CONFIG_CONSTRUCTORS=y
+CONFIG_HAVE_IRQ_WORK=y
+CONFIG_IRQ_WORK=y
 
 #
 # General setup
 #
 CONFIG_EXPERIMENTAL=y
-CONFIG_LOCK_KERNEL=y
 CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_CROSS_COMPILE=""
 CONFIG_LOCALVERSION=""
 # CONFIG_LOCALVERSION_AUTO is not set
 CONFIG_HAVE_KERNEL_GZIP=y
 CONFIG_HAVE_KERNEL_BZIP2=y
 CONFIG_HAVE_KERNEL_LZMA=y
+CONFIG_HAVE_KERNEL_XZ=y
+CONFIG_HAVE_KERNEL_LZO=y
 # CONFIG_KERNEL_GZIP is not set
 # CONFIG_KERNEL_BZIP2 is not set
 CONFIG_KERNEL_LZMA=y
+# CONFIG_KERNEL_XZ is not set
+# CONFIG_KERNEL_LZO is not set
+CONFIG_DEFAULT_HOSTNAME="(none)"
 CONFIG_SWAP=y
 CONFIG_SYSVIPC=y
 CONFIG_SYSVIPC_SYSCTL=y
@@ -79,52 +80,73 @@ CONFIG_POSIX_MQUEUE=y
 CONFIG_POSIX_MQUEUE_SYSCTL=y
 CONFIG_BSD_PROCESS_ACCT=y
 CONFIG_BSD_PROCESS_ACCT_V3=y
-# CONFIG_TASKSTATS is not set
+# CONFIG_FHANDLE is not set
+CONFIG_TASKSTATS=y
+CONFIG_TASK_DELAY_ACCT=y
+# CONFIG_TASK_XACCT is not set
 CONFIG_AUDIT=y
 CONFIG_AUDITSYSCALL=y
+CONFIG_AUDIT_WATCH=y
 CONFIG_AUDIT_TREE=y
+CONFIG_HAVE_GENERIC_HARDIRQS=y
+
+#
+# IRQ subsystem
+#
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_HAVE_SPARSE_IRQ=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_GENERIC_IRQ_SHOW=y
+CONFIG_GENERIC_PENDING_IRQ=y
+CONFIG_GENERIC_IRQ_CHIP=y
+CONFIG_IRQ_FORCED_THREADING=y
+CONFIG_SPARSE_IRQ=y
 
 #
 # RCU Subsystem
 #
 CONFIG_TREE_RCU=y
-# CONFIG_TREE_PREEMPT_RCU is not set
+# CONFIG_PREEMPT_RCU is not set
 # CONFIG_RCU_TRACE is not set
 CONFIG_RCU_FANOUT=32
 # CONFIG_RCU_FANOUT_EXACT is not set
+# CONFIG_RCU_FAST_NO_HZ is not set
 # CONFIG_TREE_RCU_TRACE is not set
 # CONFIG_IKCONFIG is not set
 CONFIG_LOG_BUF_SHIFT=17
 CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
 # CONFIG_CGROUPS is not set
-CONFIG_SYSFS_DEPRECATED=y
-CONFIG_SYSFS_DEPRECATED_V2=y
-# CONFIG_RELAY is not set
 CONFIG_NAMESPACES=y
 CONFIG_UTS_NS=y
 CONFIG_IPC_NS=y
 # CONFIG_USER_NS is not set
 # CONFIG_PID_NS is not set
 # CONFIG_NET_NS is not set
+# CONFIG_SCHED_AUTOGROUP is not set
+CONFIG_SYSFS_DEPRECATED=y
+CONFIG_SYSFS_DEPRECATED_V2=y
+# CONFIG_RELAY is not set
 CONFIG_BLK_DEV_INITRD=y
 CONFIG_INITRAMFS_SOURCE=""
 CONFIG_RD_GZIP=y
 CONFIG_RD_BZIP2=y
 CONFIG_RD_LZMA=y
-CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+CONFIG_RD_XZ=y
+CONFIG_RD_LZO=y
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
 CONFIG_SYSCTL=y
 CONFIG_ANON_INODES=y
-# CONFIG_EMBEDDED is not set
+# CONFIG_EXPERT is not set
 CONFIG_UID16=y
-CONFIG_SYSCTL_SYSCALL=y
+# CONFIG_SYSCTL_SYSCALL is not set
 CONFIG_KALLSYMS=y
 # CONFIG_KALLSYMS_ALL is not set
-# CONFIG_KALLSYMS_EXTRA_PASS is not set
 CONFIG_HOTPLUG=y
 CONFIG_PRINTK=y
 CONFIG_BUG=y
 CONFIG_ELF_CORE=y
 CONFIG_PCSPKR_PLATFORM=y
+CONFIG_HAVE_PCSPKR_PLATFORM=y
 CONFIG_BASE_FULL=y
 CONFIG_FUTEX=y
 CONFIG_EPOLL=y
@@ -133,35 +155,46 @@ CONFIG_TIMERFD=y
 CONFIG_EVENTFD=y
 CONFIG_SHMEM=y
 CONFIG_AIO=y
+# CONFIG_EMBEDDED is not set
 CONFIG_HAVE_PERF_EVENTS=y
 
 #
 # Kernel Performance Events And Counters
 #
-# CONFIG_PERF_EVENTS is not set
+CONFIG_PERF_EVENTS=y
 # CONFIG_PERF_COUNTERS is not set
+# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
 CONFIG_VM_EVENT_COUNTERS=y
 CONFIG_PCI_QUIRKS=y
 CONFIG_SLUB_DEBUG=y
 # CONFIG_COMPAT_BRK is not set
 # CONFIG_SLAB is not set
 CONFIG_SLUB=y
-# CONFIG_SLOB is not set
 # CONFIG_PROFILING is not set
 CONFIG_HAVE_OPROFILE=y
 # CONFIG_KPROBES is not set
+# CONFIG_JUMP_LABEL is not set
 CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
+CONFIG_USER_RETURN_NOTIFIER=y
 CONFIG_HAVE_IOREMAP_PROT=y
 CONFIG_HAVE_KPROBES=y
 CONFIG_HAVE_KRETPROBES=y
+CONFIG_HAVE_OPTPROBES=y
 CONFIG_HAVE_ARCH_TRACEHOOK=y
 CONFIG_HAVE_DMA_ATTRS=y
+CONFIG_USE_GENERIC_SMP_HELPERS=y
+CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
 CONFIG_HAVE_DMA_API_DEBUG=y
+CONFIG_HAVE_HW_BREAKPOINT=y
+CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y
+CONFIG_HAVE_USER_RETURN_NOTIFIER=y
+CONFIG_HAVE_PERF_EVENTS_NMI=y
+CONFIG_HAVE_ARCH_JUMP_LABEL=y
+CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
 
 #
 # GCOV-based kernel profiling
 #
-CONFIG_SLOW_WORK=y
 CONFIG_HAVE_GENERIC_DMA_COHERENT=y
 CONFIG_SLABINFO=y
 CONFIG_RT_MUTEXES=y
@@ -175,22 +208,51 @@ CONFIG_MODULE_FORCE_UNLOAD=y
 CONFIG_STOP_MACHINE=y
 CONFIG_BLOCK=y
 CONFIG_LBDAF=y
-# CONFIG_BLK_DEV_BSG is not set
+CONFIG_BLK_DEV_BSG=y
+CONFIG_BLK_DEV_BSGLIB=y
 # CONFIG_BLK_DEV_INTEGRITY is not set
 
 #
 # IO Schedulers
 #
 CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
 CONFIG_IOSCHED_DEADLINE=y
 CONFIG_IOSCHED_CFQ=y
-# CONFIG_DEFAULT_AS is not set
 # CONFIG_DEFAULT_DEADLINE is not set
 CONFIG_DEFAULT_CFQ=y
 # CONFIG_DEFAULT_NOOP is not set
 CONFIG_DEFAULT_IOSCHED="cfq"
 CONFIG_PREEMPT_NOTIFIERS=y
+CONFIG_PADATA=y
+# CONFIG_INLINE_SPIN_TRYLOCK is not set
+# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
+# CONFIG_INLINE_SPIN_LOCK is not set
+# CONFIG_INLINE_SPIN_LOCK_BH is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
+CONFIG_INLINE_SPIN_UNLOCK=y
+# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
+CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
+# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_READ_TRYLOCK is not set
+# CONFIG_INLINE_READ_LOCK is not set
+# CONFIG_INLINE_READ_LOCK_BH is not set
+# CONFIG_INLINE_READ_LOCK_IRQ is not set
+# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
+CONFIG_INLINE_READ_UNLOCK=y
+# CONFIG_INLINE_READ_UNLOCK_BH is not set
+CONFIG_INLINE_READ_UNLOCK_IRQ=y
+# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_WRITE_TRYLOCK is not set
+# CONFIG_INLINE_WRITE_LOCK is not set
+# CONFIG_INLINE_WRITE_LOCK_BH is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
+CONFIG_INLINE_WRITE_UNLOCK=y
+# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
+CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
+# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
+CONFIG_MUTEX_SPIN_ON_OWNER=y
 CONFIG_FREEZER=y
 
 #
@@ -200,19 +262,20 @@ CONFIG_TICK_ONESHOT=y
 CONFIG_NO_HZ=y
 CONFIG_HIGH_RES_TIMERS=y
 CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y
 CONFIG_SMP=y
-CONFIG_SPARSE_IRQ=y
 CONFIG_X86_MPPARSE=y
 # CONFIG_X86_BIGSMP is not set
 CONFIG_X86_EXTENDED_PLATFORM=y
-# CONFIG_X86_ELAN is not set
-# CONFIG_X86_MRST is not set
+# CONFIG_X86_WANT_INTEL_MID is not set
 # CONFIG_X86_RDC321X is not set
 # CONFIG_X86_32_NON_STANDARD is not set
 CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
+# CONFIG_X86_32_IRIS is not set
 CONFIG_SCHED_OMIT_FRAME_POINTER=y
 CONFIG_PARAVIRT_GUEST=y
-CONFIG_VMI=y
+# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
+# CONFIG_XEN_PRIVILEGED_GUEST is not set
 CONFIG_KVM_CLOCK=y
 CONFIG_KVM_GUEST=y
 CONFIG_LGUEST_GUEST=y
@@ -220,6 +283,7 @@ CONFIG_PARAVIRT=y
 CONFIG_PARAVIRT_SPINLOCKS=y
 CONFIG_PARAVIRT_CLOCK=y
 # CONFIG_PARAVIRT_DEBUG is not set
+CONFIG_NO_BOOTMEM=y
 # CONFIG_MEMTEST is not set
 # CONFIG_M386 is not set
 # CONFIG_M486 is not set
@@ -238,21 +302,20 @@ CONFIG_M586TSC=y
 # CONFIG_MEFFICEON is not set
 # CONFIG_MWINCHIPC6 is not set
 # CONFIG_MWINCHIP3D is not set
+# CONFIG_MELAN is not set
 # CONFIG_MGEODEGX1 is not set
 # CONFIG_MGEODE_LX is not set
 # CONFIG_MCYRIXIII is not set
 # CONFIG_MVIAC3_2 is not set
 # CONFIG_MVIAC7 is not set
-# CONFIG_MPSC is not set
 # CONFIG_MCORE2 is not set
 # CONFIG_MATOM is not set
-# CONFIG_GENERIC_CPU is not set
 CONFIG_X86_GENERIC=y
-CONFIG_X86_CPU=y
-CONFIG_X86_L1_CACHE_BYTES=64
-CONFIG_X86_INTERNODE_CACHE_BYTES=64
+CONFIG_X86_INTERNODE_CACHE_SHIFT=6
 CONFIG_X86_CMPXCHG=y
-CONFIG_X86_L1_CACHE_SHIFT=5
+CONFIG_CMPXCHG_LOCAL=y
+CONFIG_CMPXCHG_DOUBLE=y
+CONFIG_X86_L1_CACHE_SHIFT=6
 CONFIG_X86_XADD=y
 CONFIG_X86_PPRO_FENCE=y
 CONFIG_X86_F00F_BUG=y
@@ -274,7 +337,6 @@ CONFIG_HPET_TIMER=y
 CONFIG_HPET_EMULATE_RTC=y
 CONFIG_DMI=y
 # CONFIG_IOMMU_HELPER is not set
-CONFIG_IOMMU_API=y
 CONFIG_NR_CPUS=8
 CONFIG_SCHED_SMT=y
 CONFIG_SCHED_MC=y
@@ -308,40 +370,44 @@ CONFIG_HIGHMEM4G=y
 CONFIG_PAGE_OFFSET=0xC0000000
 CONFIG_HIGHMEM=y
 # CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
+# CONFIG_ARCH_DMA_ADDR_T_64BIT is not set
 CONFIG_ARCH_FLATMEM_ENABLE=y
 CONFIG_ARCH_SPARSEMEM_ENABLE=y
 CONFIG_ARCH_SELECT_MEMORY_MODEL=y
 CONFIG_ILLEGAL_POINTER_VALUE=0
 CONFIG_SELECT_MEMORY_MODEL=y
 CONFIG_FLATMEM_MANUAL=y
-# CONFIG_DISCONTIGMEM_MANUAL is not set
 # CONFIG_SPARSEMEM_MANUAL is not set
 CONFIG_FLATMEM=y
 CONFIG_FLAT_NODE_MEM_MAP=y
 CONFIG_SPARSEMEM_STATIC=y
+CONFIG_HAVE_MEMBLOCK=y
 CONFIG_PAGEFLAGS_EXTENDED=y
 CONFIG_SPLIT_PTLOCK_CPUS=4
+# CONFIG_COMPACTION is not set
 # CONFIG_PHYS_ADDR_T_64BIT is not set
 CONFIG_ZONE_DMA_FLAG=1
 CONFIG_BOUNCE=y
 CONFIG_VIRT_TO_BUS=y
-CONFIG_HAVE_MLOCK=y
-CONFIG_HAVE_MLOCKED_PAGE_BIT=y
 CONFIG_MMU_NOTIFIER=y
 CONFIG_KSM=y
 CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
 CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
 # CONFIG_MEMORY_FAILURE is not set
+# CONFIG_TRANSPARENT_HUGEPAGE is not set
+# CONFIG_CLEANCACHE is not set
 # CONFIG_HIGHPTE is not set
 # CONFIG_X86_CHECK_BIOS_CORRUPTION is not set
-CONFIG_X86_RESERVE_LOW_64K=y
+CONFIG_X86_RESERVE_LOW=64
 CONFIG_MATH_EMULATION=y
 CONFIG_MTRR=y
 # CONFIG_MTRR_SANITIZER is not set
-# CONFIG_X86_PAT is not set
+CONFIG_X86_PAT=y
+CONFIG_ARCH_USES_PG_UNCACHED=y
+CONFIG_ARCH_RANDOM=y
 # CONFIG_EFI is not set
 CONFIG_SECCOMP=y
-# CONFIG_CC_STACKPROTECTOR is not set
+CONFIG_CC_STACKPROTECTOR=y
 # CONFIG_HZ_100 is not set
 # CONFIG_HZ_250 is not set
 CONFIG_HZ_300=y
@@ -361,20 +427,19 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
 #
 # Power management and ACPI options
 #
-CONFIG_PM=y
-# CONFIG_PM_DEBUG is not set
-CONFIG_PM_SLEEP_SMP=y
-CONFIG_PM_SLEEP=y
 CONFIG_SUSPEND=y
 CONFIG_SUSPEND_FREEZER=y
 # CONFIG_HIBERNATION is not set
+CONFIG_PM_SLEEP=y
+CONFIG_PM_SLEEP_SMP=y
 CONFIG_PM_RUNTIME=y
+CONFIG_PM=y
+# CONFIG_PM_DEBUG is not set
 CONFIG_ACPI=y
 CONFIG_ACPI_SLEEP=y
 # CONFIG_ACPI_PROCFS is not set
 CONFIG_ACPI_PROCFS_POWER=y
-CONFIG_ACPI_POWER_METER=m
-CONFIG_ACPI_SYSFS_POWER=y
+CONFIG_ACPI_EC_DEBUGFS=m
 CONFIG_ACPI_PROC_EVENT=y
 CONFIG_ACPI_AC=m
 CONFIG_ACPI_BATTERY=m
@@ -383,6 +448,7 @@ CONFIG_ACPI_VIDEO=m
 CONFIG_ACPI_FAN=m
 CONFIG_ACPI_DOCK=y
 CONFIG_ACPI_PROCESSOR=m
+CONFIG_ACPI_IPMI=m
 CONFIG_ACPI_HOTPLUG_CPU=y
 CONFIG_ACPI_PROCESSOR_AGGREGATOR=m
 CONFIG_ACPI_THERMAL=m
@@ -394,6 +460,8 @@ CONFIG_ACPI_PCI_SLOT=m
 CONFIG_X86_PM_TIMER=y
 CONFIG_ACPI_CONTAINER=m
 CONFIG_ACPI_SBS=m
+# CONFIG_ACPI_HED is not set
+# CONFIG_ACPI_APEI is not set
 # CONFIG_SFI is not set
 CONFIG_X86_APM_BOOT=y
 CONFIG_APM=m
@@ -408,11 +476,9 @@ CONFIG_APM_CPU_IDLE=y
 #
 CONFIG_CPU_FREQ=y
 CONFIG_CPU_FREQ_TABLE=y
-# CONFIG_CPU_FREQ_DEBUG is not set
 CONFIG_CPU_FREQ_STAT=y
 CONFIG_CPU_FREQ_STAT_DETAILS=y
 CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
-# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
 # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
 # CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
 # CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
@@ -423,8 +489,9 @@ CONFIG_CPU_FREQ_GOV_ONDEMAND=m
 CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
 
 #
-# CPUFreq processor drivers
+# x86 CPU frequency scaling drivers
 #
+CONFIG_X86_PCC_CPUFREQ=m
 CONFIG_X86_ACPI_CPUFREQ=m
 CONFIG_X86_POWERNOW_K6=m
 CONFIG_X86_POWERNOW_K7=m
@@ -449,6 +516,7 @@ CONFIG_X86_SPEEDSTEP_LIB=m
 CONFIG_CPU_IDLE=y
 CONFIG_CPU_IDLE_GOV_LADDER=y
 CONFIG_CPU_IDLE_GOV_MENU=y
+CONFIG_INTEL_IDLE=y
 
 #
 # Bus options (PCI etc.)
@@ -457,28 +525,30 @@ CONFIG_PCI=y
 # CONFIG_PCI_GOBIOS is not set
 # CONFIG_PCI_GOMMCONFIG is not set
 # CONFIG_PCI_GODIRECT is not set
-# CONFIG_PCI_GOOLPC is not set
 CONFIG_PCI_GOANY=y
 CONFIG_PCI_BIOS=y
 CONFIG_PCI_DIRECT=y
 CONFIG_PCI_MMCONFIG=y
 CONFIG_PCI_DOMAINS=y
-CONFIG_DMAR=y
-CONFIG_DMAR_DEFAULT_ON=y
-CONFIG_DMAR_FLOPPY_WA=y
+# CONFIG_PCI_CNB20LE_QUIRK is not set
 CONFIG_PCIEPORTBUS=y
 CONFIG_PCIEAER=y
 # CONFIG_PCIE_ECRC is not set
 # CONFIG_PCIEAER_INJECT is not set
 CONFIG_PCIEASPM=y
 # CONFIG_PCIEASPM_DEBUG is not set
+CONFIG_PCIE_PME=y
 CONFIG_ARCH_SUPPORTS_MSI=y
 CONFIG_PCI_MSI=y
-CONFIG_PCI_LEGACY=y
 # CONFIG_PCI_DEBUG is not set
 CONFIG_PCI_STUB=m
 CONFIG_HT_IRQ=y
+CONFIG_PCI_ATS=y
 CONFIG_PCI_IOV=y
+# CONFIG_PCI_PRI is not set
+# CONFIG_PCI_PASID is not set
+CONFIG_PCI_IOAPIC=y
+CONFIG_PCI_LABEL=y
 CONFIG_ISA_DMA_API=y
 CONFIG_ISA=y
 CONFIG_EISA=y
@@ -492,12 +562,11 @@ CONFIG_MCA_LEGACY=y
 CONFIG_SCx200=m
 CONFIG_SCx200HR_TIMER=m
 # CONFIG_OLPC is not set
-CONFIG_K8_NB=y
+CONFIG_ALIX=y
+CONFIG_AMD_NB=y
 CONFIG_PCCARD=m
-# CONFIG_PCMCIA_DEBUG is not set
 CONFIG_PCMCIA=m
 CONFIG_PCMCIA_LOAD_CIS=y
-CONFIG_PCMCIA_IOCTL=y
 CONFIG_CARDBUS=y
 
 #
@@ -514,8 +583,9 @@ CONFIG_I82092=m
 CONFIG_I82365=m
 CONFIG_TCIC=m
 CONFIG_PCMCIA_PROBE=y
-CONFIG_PCCARD_NONSTATIC=m
+CONFIG_PCCARD_NONSTATIC=y
 # CONFIG_HOTPLUG_PCI is not set
+# CONFIG_RAPIDIO is not set
 
 #
 # Executable file formats / Emulations
@@ -526,13 +596,13 @@ CONFIG_HAVE_AOUT=y
 # CONFIG_BINFMT_AOUT is not set
 # CONFIG_BINFMT_MISC is not set
 CONFIG_HAVE_ATOMIC_IOMAP=y
+CONFIG_HAVE_TEXT_POKE_SMP=y
 CONFIG_NET=y
 
 #
 # Networking options
 #
 CONFIG_PACKET=y
-CONFIG_PACKET_MMAP=y
 CONFIG_UNIX=y
 CONFIG_XFRM=y
 CONFIG_XFRM_USER=m
@@ -545,17 +615,18 @@ CONFIG_NET_KEY_MIGRATE=y
 CONFIG_INET=y
 CONFIG_IP_MULTICAST=y
 CONFIG_IP_ADVANCED_ROUTER=y
-CONFIG_ASK_IP_FIB_HASH=y
-# CONFIG_IP_FIB_TRIE is not set
-CONFIG_IP_FIB_HASH=y
+# CONFIG_IP_FIB_TRIE_STATS is not set
 CONFIG_IP_MULTIPLE_TABLES=y
 CONFIG_IP_ROUTE_MULTIPATH=y
 CONFIG_IP_ROUTE_VERBOSE=y
+CONFIG_IP_ROUTE_CLASSID=y
 # CONFIG_IP_PNP is not set
 CONFIG_NET_IPIP=m
+CONFIG_NET_IPGRE_DEMUX=m
 CONFIG_NET_IPGRE=m
 CONFIG_NET_IPGRE_BROADCAST=y
 CONFIG_IP_MROUTE=y
+# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set
 CONFIG_IP_PIMSM_V1=y
 CONFIG_IP_PIMSM_V2=y
 CONFIG_ARPD=y
@@ -584,15 +655,10 @@ CONFIG_TCP_CONG_LP=m
 CONFIG_TCP_CONG_VENO=m
 CONFIG_TCP_CONG_YEAH=m
 CONFIG_TCP_CONG_ILLINOIS=m
-# CONFIG_DEFAULT_BIC is not set
-# CONFIG_DEFAULT_CUBIC is not set
-# CONFIG_DEFAULT_HTCP is not set
-# CONFIG_DEFAULT_VEGAS is not set
-# CONFIG_DEFAULT_WESTWOOD is not set
 CONFIG_DEFAULT_RENO=y
 CONFIG_DEFAULT_TCP_CONG="reno"
 # CONFIG_TCP_MD5SIG is not set
-CONFIG_IPV6=m
+CONFIG_IPV6=y
 # CONFIG_IPV6_PRIVACY is not set
 # CONFIG_IPV6_ROUTER_PREF is not set
 # CONFIG_IPV6_OPTIMISTIC_DAD is not set
@@ -607,12 +673,14 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=m
 CONFIG_INET6_XFRM_MODE_BEET=m
 CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
 CONFIG_IPV6_SIT=m
+# CONFIG_IPV6_SIT_6RD is not set
 CONFIG_IPV6_NDISC_NODETYPE=y
 CONFIG_IPV6_TUNNEL=m
 CONFIG_IPV6_MULTIPLE_TABLES=y
 # CONFIG_IPV6_SUBTREES is not set
 # CONFIG_IPV6_MROUTE is not set
 # CONFIG_NETWORK_SECMARK is not set
+CONFIG_NETWORK_PHY_TIMESTAMPING=y
 CONFIG_NETFILTER=y
 # CONFIG_NETFILTER_DEBUG is not set
 CONFIG_NETFILTER_ADVANCED=y
@@ -625,9 +693,10 @@ CONFIG_NETFILTER_NETLINK=m
 CONFIG_NETFILTER_NETLINK_QUEUE=m
 CONFIG_NETFILTER_NETLINK_LOG=m
 CONFIG_NF_CONNTRACK=m
-CONFIG_NF_CT_ACCT=y
 CONFIG_NF_CONNTRACK_MARK=y
+# CONFIG_NF_CONNTRACK_ZONES is not set
 CONFIG_NF_CONNTRACK_EVENTS=y
+CONFIG_NF_CONNTRACK_TIMESTAMP=y
 CONFIG_NF_CT_PROTO_DCCP=m
 CONFIG_NF_CT_PROTO_GRE=m
 CONFIG_NF_CT_PROTO_SCTP=m
@@ -636,7 +705,9 @@ CONFIG_NF_CONNTRACK_AMANDA=m
 CONFIG_NF_CONNTRACK_FTP=m
 CONFIG_NF_CONNTRACK_H323=m
 CONFIG_NF_CONNTRACK_IRC=m
+CONFIG_NF_CONNTRACK_BROADCAST=m
 CONFIG_NF_CONNTRACK_NETBIOS_NS=m
+CONFIG_NF_CONNTRACK_SNMP=m
 CONFIG_NF_CONNTRACK_PPTP=m
 CONFIG_NF_CONNTRACK_SANE=m
 CONFIG_NF_CONNTRACK_SIP=m
@@ -644,10 +715,24 @@ CONFIG_NF_CONNTRACK_TFTP=m
 CONFIG_NF_CT_NETLINK=m
 CONFIG_NETFILTER_TPROXY=m
 CONFIG_NETFILTER_XTABLES=m
+
+#
+# Xtables combined modules
+#
+CONFIG_NETFILTER_XT_MARK=m
+CONFIG_NETFILTER_XT_CONNMARK=m
+
+#
+# Xtables targets
+#
+CONFIG_NETFILTER_XT_TARGET_AUDIT=m
+CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
 CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
 CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
+CONFIG_NETFILTER_XT_TARGET_CT=m
 CONFIG_NETFILTER_XT_TARGET_DSCP=m
 CONFIG_NETFILTER_XT_TARGET_HL=m
+CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
 CONFIG_NETFILTER_XT_TARGET_LED=m
 CONFIG_NETFILTER_XT_TARGET_IMQ=m
 CONFIG_NETFILTER_XT_TARGET_MARK=m
@@ -655,28 +740,38 @@ CONFIG_NETFILTER_XT_TARGET_NFLOG=m
 CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
 CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
 CONFIG_NETFILTER_XT_TARGET_RATEEST=m
+CONFIG_NETFILTER_XT_TARGET_TEE=m
 CONFIG_NETFILTER_XT_TARGET_TPROXY=m
 CONFIG_NETFILTER_XT_TARGET_TRACE=m
 CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
 CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
+
+#
+# Xtables matches
+#
+CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
 CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
 CONFIG_NETFILTER_XT_MATCH_COMMENT=m
 CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
 CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
 CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
 CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
+CONFIG_NETFILTER_XT_MATCH_CPU=m
 CONFIG_NETFILTER_XT_MATCH_DCCP=m
+CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
 CONFIG_NETFILTER_XT_MATCH_DSCP=m
 CONFIG_NETFILTER_XT_MATCH_ESP=m
 CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
 CONFIG_NETFILTER_XT_MATCH_HELPER=m
 CONFIG_NETFILTER_XT_MATCH_HL=m
 CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
+CONFIG_NETFILTER_XT_MATCH_IPVS=m
 CONFIG_NETFILTER_XT_MATCH_LENGTH=m
 CONFIG_NETFILTER_XT_MATCH_LIMIT=m
 CONFIG_NETFILTER_XT_MATCH_MAC=m
 CONFIG_NETFILTER_XT_MATCH_MARK=m
 CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
+CONFIG_NETFILTER_XT_MATCH_OSF=m
 CONFIG_NETFILTER_XT_MATCH_OWNER=m
 CONFIG_NETFILTER_XT_MATCH_POLICY=m
 CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
@@ -685,7 +780,6 @@ CONFIG_NETFILTER_XT_MATCH_QUOTA=m
 CONFIG_NETFILTER_XT_MATCH_RATEEST=m
 CONFIG_NETFILTER_XT_MATCH_REALM=m
 CONFIG_NETFILTER_XT_MATCH_RECENT=m
-CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT=y
 CONFIG_NETFILTER_XT_MATCH_SCTP=m
 CONFIG_NETFILTER_XT_MATCH_SOCKET=m
 CONFIG_NETFILTER_XT_MATCH_STATE=m
@@ -696,7 +790,7 @@ CONFIG_NETFILTER_XT_MATCH_STRING=m
 CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
 CONFIG_NETFILTER_XT_MATCH_TIME=m
 CONFIG_NETFILTER_XT_MATCH_U32=m
-CONFIG_NETFILTER_XT_MATCH_OSF=m
+# CONFIG_IP_SET is not set
 CONFIG_IP_VS=m
 CONFIG_IP_VS_IPV6=y
 # CONFIG_IP_VS_DEBUG is not set
@@ -707,8 +801,10 @@ CONFIG_IP_VS_TAB_BITS=12
 #
 # CONFIG_IP_VS_PROTO_TCP is not set
 # CONFIG_IP_VS_PROTO_UDP is not set
+# CONFIG_IP_VS_PROTO_AH_ESP is not set
 # CONFIG_IP_VS_PROTO_ESP is not set
 # CONFIG_IP_VS_PROTO_AH is not set
+# CONFIG_IP_VS_PROTO_SCTP is not set
 
 #
 # IPVS scheduler
@@ -727,6 +823,7 @@ CONFIG_IP_VS_TAB_BITS=12
 #
 # IPVS application helper
 #
+# CONFIG_IP_VS_NFCT is not set
 
 #
 # IP: Netfilter Configuration
@@ -736,7 +833,6 @@ CONFIG_NF_CONNTRACK_IPV4=m
 CONFIG_NF_CONNTRACK_PROC_COMPAT=y
 CONFIG_IP_NF_QUEUE=m
 CONFIG_IP_NF_IPTABLES=m
-CONFIG_IP_NF_MATCH_ADDRTYPE=m
 CONFIG_IP_NF_MATCH_AH=m
 CONFIG_IP_NF_MATCH_ECN=m
 CONFIG_IP_NF_MATCH_TTL=m
@@ -774,6 +870,7 @@ CONFIG_IP_NF_MATCH_IPP2P=m
 #
 # IPv6: Netfilter Configuration
 #
+CONFIG_NF_DEFRAG_IPV6=m
 CONFIG_NF_CONNTRACK_IPV6=m
 CONFIG_IP6_NF_QUEUE=m
 CONFIG_IP6_NF_IPTABLES=m
@@ -823,9 +920,14 @@ CONFIG_ATM_CLIP_NO_ICMP=y
 # CONFIG_ATM_LANE is not set
 CONFIG_ATM_BR2684=m
 # CONFIG_ATM_BR2684_IPFILTER is not set
+CONFIG_L2TP=m
+CONFIG_L2TP_V3=y
+CONFIG_L2TP_IP=m
+CONFIG_L2TP_ETH=m
 CONFIG_STP=m
 CONFIG_GARP=m
 CONFIG_BRIDGE=m
+CONFIG_BRIDGE_IGMP_SNOOPING=y
 CONFIG_NET_DSA=y
 CONFIG_NET_DSA_TAG_DSA=y
 CONFIG_NET_DSA_TAG_EDSA=y
@@ -848,6 +950,7 @@ CONFIG_LLC=m
 # CONFIG_WAN_ROUTER is not set
 # CONFIG_PHONET is not set
 CONFIG_IEEE802154=m
+CONFIG_IEEE802154_6LOWPAN=m
 CONFIG_NET_SCHED=y
 
 #
@@ -860,6 +963,7 @@ CONFIG_NET_SCH_ATM=m
 CONFIG_NET_SCH_PRIO=m
 CONFIG_NET_SCH_MULTIQ=m
 CONFIG_NET_SCH_RED=m
+CONFIG_NET_SCH_SFB=m
 CONFIG_NET_SCH_SFQ=m
 CONFIG_NET_SCH_TEQL=m
 CONFIG_NET_SCH_TBF=m
@@ -867,6 +971,9 @@ CONFIG_NET_SCH_GRED=m
 CONFIG_NET_SCH_DSMARK=m
 CONFIG_NET_SCH_NETEM=m
 CONFIG_NET_SCH_DRR=m
+CONFIG_NET_SCH_MQPRIO=m
+CONFIG_NET_SCH_CHOKE=m
+CONFIG_NET_SCH_QFQ=m
 CONFIG_NET_SCH_INGRESS=m
 
 #
@@ -876,7 +983,6 @@ CONFIG_NET_CLS=y
 CONFIG_NET_CLS_BASIC=m
 CONFIG_NET_CLS_TCINDEX=m
 CONFIG_NET_CLS_ROUTE4=m
-CONFIG_NET_CLS_ROUTE=y
 CONFIG_NET_CLS_FW=m
 CONFIG_NET_CLS_U32=m
 CONFIG_CLS_U32_PERF=y
@@ -899,11 +1005,18 @@ CONFIG_NET_ACT_MIRRED=m
 CONFIG_NET_ACT_IPT=m
 CONFIG_NET_ACT_NAT=m
 CONFIG_NET_ACT_PEDIT=m
-# CONFIG_NET_ACT_SIMP is not set
+CONFIG_NET_ACT_SIMP=m
 CONFIG_NET_ACT_SKBEDIT=m
+CONFIG_NET_ACT_CSUM=m
 CONFIG_NET_CLS_IND=y
 CONFIG_NET_SCH_FIFO=y
 # CONFIG_DCB is not set
+CONFIG_DNS_RESOLVER=y
+CONFIG_BATMAN_ADV=m
+# CONFIG_BATMAN_ADV_DEBUG is not set
+CONFIG_RPS=y
+CONFIG_RFS_ACCEL=y
+CONFIG_XPS=y
 
 #
 # Network testing
@@ -959,8 +1072,8 @@ CONFIG_VLSI_FIR=m
 CONFIG_VIA_FIR=m
 CONFIG_MCS_FIR=m
 CONFIG_BT=m
-CONFIG_BT_L2CAP=m
-CONFIG_BT_SCO=m
+CONFIG_BT_L2CAP=y
+CONFIG_BT_SCO=y
 CONFIG_BT_RFCOMM=m
 CONFIG_BT_RFCOMM_TTY=y
 CONFIG_BT_BNEP=m
@@ -977,6 +1090,7 @@ CONFIG_BT_HCIBTSDIO=m
 CONFIG_BT_HCIUART=m
 CONFIG_BT_HCIUART_H4=y
 CONFIG_BT_HCIUART_BCSP=y
+CONFIG_BT_HCIUART_ATH3K=y
 CONFIG_BT_HCIUART_LL=y
 CONFIG_BT_HCIBCM203X=m
 CONFIG_BT_HCIBPA10X=m
@@ -988,19 +1102,25 @@ CONFIG_BT_HCIBTUART=m
 CONFIG_BT_HCIVHCI=m
 CONFIG_BT_MRVL=m
 CONFIG_BT_MRVL_SDIO=m
+CONFIG_BT_ATH3K=m
+CONFIG_BT_WILINK=m
 CONFIG_AF_RXRPC=m
 # CONFIG_AF_RXRPC_DEBUG is not set
 CONFIG_RXKAD=m
 CONFIG_FIB_RULES=y
 CONFIG_WIRELESS=y
+CONFIG_WIRELESS_EXT=y
+CONFIG_WEXT_CORE=y
+CONFIG_WEXT_PROC=y
+CONFIG_WEXT_SPY=y
+CONFIG_WEXT_PRIV=y
 CONFIG_CFG80211=m
 # CONFIG_NL80211_TESTMODE is not set
 # CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
 # CONFIG_CFG80211_REG_DEBUG is not set
 # CONFIG_CFG80211_DEFAULT_PS is not set
-CONFIG_CFG80211_DEFAULT_PS_VALUE=0
-CONFIG_WIRELESS_OLD_REGULATORY=y
-CONFIG_WIRELESS_EXT=y
+# CONFIG_CFG80211_INTERNAL_REGDB is not set
+CONFIG_CFG80211_WEXT=y
 CONFIG_WIRELESS_EXT_SYSFS=y
 CONFIG_LIB80211=m
 CONFIG_LIB80211_CRYPT_WEP=m
@@ -1010,9 +1130,9 @@ CONFIG_LIB80211_CRYPT_TKIP=m
 CONFIG_MAC80211=m
 CONFIG_MAC80211_HAS_RC=y
 CONFIG_MAC80211_RC_MINSTREL=y
-# CONFIG_MAC80211_RC_DEFAULT_PID is not set
+CONFIG_MAC80211_RC_MINSTREL_HT=y
 CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
-CONFIG_MAC80211_RC_DEFAULT="minstrel"
+CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
 CONFIG_MAC80211_MESH=y
 CONFIG_MAC80211_LEDS=y
 # CONFIG_MAC80211_DEBUG_MENU is not set
@@ -1020,7 +1140,13 @@ CONFIG_MAC80211_LEDS=y
 CONFIG_RFKILL=m
 CONFIG_RFKILL_LEDS=y
 CONFIG_RFKILL_INPUT=y
+CONFIG_RFKILL_REGULATOR=m
 # CONFIG_NET_9P is not set
+# CONFIG_CAIF is not set
+CONFIG_CEPH_LIB=m
+# CONFIG_CEPH_LIB_PRETTYDEBUG is not set
+# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set
+# CONFIG_NFC is not set
 
 #
 # Device Drivers
@@ -1039,12 +1165,11 @@ CONFIG_EXTRA_FIRMWARE=""
 # CONFIG_DEBUG_DRIVER is not set
 # CONFIG_DEBUG_DEVRES is not set
 # CONFIG_SYS_HYPERVISOR is not set
+CONFIG_REGMAP=y
+CONFIG_REGMAP_I2C=m
 CONFIG_CONNECTOR=m
 CONFIG_MTD=m
-# CONFIG_MTD_DEBUG is not set
 CONFIG_MTD_TESTS=m
-CONFIG_MTD_CONCAT=m
-CONFIG_MTD_PARTITIONS=y
 # CONFIG_MTD_REDBOOT_PARTS is not set
 CONFIG_MTD_AR7_PARTS=m
 
@@ -1060,7 +1185,9 @@ CONFIG_MTD_BLOCK=m
 # CONFIG_INFTL is not set
 # CONFIG_RFD_FTL is not set
 # CONFIG_SSFDC is not set
+CONFIG_SM_FTL=m
 # CONFIG_MTD_OOPS is not set
+# CONFIG_MTD_SWAP is not set
 
 #
 # RAM/ROM/Flash chip drivers
@@ -1106,6 +1233,9 @@ CONFIG_MTD_PHYSMAP=m
 # CONFIG_MTD_DOC2000 is not set
 # CONFIG_MTD_DOC2001 is not set
 # CONFIG_MTD_DOC2001PLUS is not set
+# CONFIG_MTD_DOCG3 is not set
+CONFIG_MTD_NAND_ECC=m
+# CONFIG_MTD_NAND_ECC_SMC is not set
 # CONFIG_MTD_NAND is not set
 # CONFIG_MTD_ONENAND is not set
 
@@ -1114,18 +1244,10 @@ CONFIG_MTD_PHYSMAP=m
 #
 CONFIG_MTD_LPDDR=m
 CONFIG_MTD_QINFO_PROBE=m
-
-#
-# UBI - Unsorted block images
-#
 CONFIG_MTD_UBI=m
 CONFIG_MTD_UBI_WL_THRESHOLD=4096
 CONFIG_MTD_UBI_BEB_RESERVE=1
 # CONFIG_MTD_UBI_GLUEBI is not set
-
-#
-# UBI debugging options
-#
 # CONFIG_MTD_UBI_DEBUG is not set
 CONFIG_PARPORT=m
 CONFIG_PARPORT_PC=m
@@ -1158,7 +1280,9 @@ CONFIG_BLK_DEV_DAC960=m
 # CONFIG_BLK_DEV_UMEM is not set
 # CONFIG_BLK_DEV_COW_COMMON is not set
 CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
 CONFIG_BLK_DEV_CRYPTOLOOP=m
+# CONFIG_BLK_DEV_DRBD is not set
 CONFIG_BLK_DEV_NBD=m
 CONFIG_BLK_DEV_OSD=m
 CONFIG_BLK_DEV_SX8=m
@@ -1171,16 +1295,35 @@ CONFIG_BLK_DEV_RAM_SIZE=16384
 CONFIG_ATA_OVER_ETH=m
 CONFIG_VIRTIO_BLK=m
 # CONFIG_BLK_DEV_HD is not set
+CONFIG_BLK_DEV_RBD=m
+CONFIG_SENSORS_LIS3LV02D=m
 CONFIG_MISC_DEVICES=y
+# CONFIG_AD525X_DPOT is not set
 # CONFIG_IBM_ASM is not set
 # CONFIG_PHANTOM is not set
+# CONFIG_INTEL_MID_PTI is not set
 # CONFIG_SGI_IOC4 is not set
 CONFIG_TIFM_CORE=m
 CONFIG_TIFM_7XX1=m
 CONFIG_ICS932S401=m
 CONFIG_ENCLOSURE_SERVICES=m
+CONFIG_CS5535_MFGPT=m
+CONFIG_CS5535_MFGPT_DEFAULT_IRQ=7
+CONFIG_CS5535_CLOCK_EVENT_SRC=m
 CONFIG_HP_ILO=m
+CONFIG_APDS9802ALS=m
 CONFIG_ISL29003=m
+CONFIG_ISL29020=m
+CONFIG_SENSORS_TSL2550=m
+CONFIG_SENSORS_BH1780=m
+CONFIG_SENSORS_BH1770=m
+CONFIG_SENSORS_APDS990X=m
+CONFIG_HMC6352=m
+CONFIG_DS1682=m
+CONFIG_VMWARE_BALLOON=m
+CONFIG_BMP085=m
+CONFIG_PCH_PHUB=m
+CONFIG_USB_SWITCH_FSA9480=m
 CONFIG_C2PORT=m
 CONFIG_C2PORT_DURAMAR_2150=m
 
@@ -1194,13 +1337,28 @@ CONFIG_EEPROM_93CX6=m
 CONFIG_CB710_CORE=m
 # CONFIG_CB710_DEBUG is not set
 CONFIG_CB710_DEBUG_ASSUMPTIONS=y
+CONFIG_IWMC3200TOP=m
+# CONFIG_IWMC3200TOP_DEBUG is not set
+# CONFIG_IWMC3200TOP_DEBUGFS is not set
+
+#
+# Texas Instruments shared transport line discipline
+#
+CONFIG_TI_ST=m
+CONFIG_SENSORS_LIS3_I2C=m
+
+#
+# Altera FPGA firmware download module
+#
+# CONFIG_ALTERA_STAPL is not set
 CONFIG_HAVE_IDE=y
 # CONFIG_IDE is not set
 
 #
 # SCSI device support
 #
-CONFIG_RAID_ATTRS=y
+CONFIG_SCSI_MOD=m
+CONFIG_RAID_ATTRS=m
 CONFIG_SCSI=m
 CONFIG_SCSI_DMA=y
 # CONFIG_SCSI_TGT is not set
@@ -1234,15 +1392,19 @@ CONFIG_SCSI_SAS_ATTRS=m
 CONFIG_SCSI_SAS_LIBSAS=m
 CONFIG_SCSI_SAS_ATA=y
 CONFIG_SCSI_SAS_HOST_SMP=y
-CONFIG_SCSI_SAS_LIBSAS_DEBUG=y
 CONFIG_SCSI_SRP_ATTRS=m
 CONFIG_SCSI_LOWLEVEL=y
 CONFIG_ISCSI_TCP=m
+CONFIG_ISCSI_BOOT_SYSFS=m
 CONFIG_SCSI_CXGB3_ISCSI=m
+CONFIG_SCSI_CXGB4_ISCSI=m
 CONFIG_SCSI_BNX2_ISCSI=m
+CONFIG_SCSI_BNX2X_FCOE=m
 CONFIG_BE2ISCSI=m
 CONFIG_BLK_DEV_3W_XXXX_RAID=m
+CONFIG_SCSI_HPSA=m
 CONFIG_SCSI_3W_9XXX=m
+CONFIG_SCSI_3W_SAS=m
 CONFIG_SCSI_7000FASST=m
 CONFIG_SCSI_ACARD=m
 CONFIG_SCSI_AHA152X=m
@@ -1268,11 +1430,12 @@ CONFIG_SCSI_AIC94XX=m
 # CONFIG_AIC94XX_DEBUG is not set
 CONFIG_SCSI_MVSAS=m
 CONFIG_SCSI_MVSAS_DEBUG=y
+# CONFIG_SCSI_MVSAS_TASKLET is not set
+CONFIG_SCSI_MVUMI=m
 CONFIG_SCSI_DPT_I2O=m
 CONFIG_SCSI_ADVANSYS=m
 CONFIG_SCSI_IN2000=m
 CONFIG_SCSI_ARCMSR=m
-# CONFIG_SCSI_ARCMSR_AER is not set
 CONFIG_MEGARAID_NEWGEN=y
 CONFIG_MEGARAID_MM=m
 CONFIG_MEGARAID_MAILBOX=m
@@ -1284,6 +1447,7 @@ CONFIG_SCSI_MPT2SAS_MAX_SGE=128
 CONFIG_SCSI_HPTIOP=m
 CONFIG_SCSI_BUSLOGIC=m
 CONFIG_SCSI_FLASHPOINT=y
+CONFIG_VMWARE_PVSCSI=m
 CONFIG_LIBFC=m
 CONFIG_LIBFCOE=m
 CONFIG_FCOE=m
@@ -1297,6 +1461,7 @@ CONFIG_SCSI_EATA_MAX_TAGS=16
 CONFIG_SCSI_FUTURE_DOMAIN=m
 CONFIG_SCSI_FD_MCS=m
 CONFIG_SCSI_GDTH=m
+CONFIG_SCSI_ISCI=m
 CONFIG_SCSI_GENERIC_NCR5380=m
 CONFIG_SCSI_GENERIC_NCR5380_MMIO=m
 CONFIG_SCSI_GENERIC_NCR53C400=y
@@ -1344,6 +1509,7 @@ CONFIG_SCSI_ULTRASTOR=m
 CONFIG_SCSI_NSP32=m
 # CONFIG_SCSI_DEBUG is not set
 CONFIG_SCSI_PMCRAID=m
+CONFIG_SCSI_PM8001=m
 # CONFIG_SCSI_SRP is not set
 CONFIG_SCSI_BFA_FC=m
 CONFIG_SCSI_LOWLEVEL_PCMCIA=y
@@ -1366,30 +1532,48 @@ CONFIG_ATA=m
 CONFIG_ATA_VERBOSE_ERROR=y
 CONFIG_ATA_ACPI=y
 CONFIG_SATA_PMP=y
+
+#
+# Controllers with non-SFF native interface
+#
 CONFIG_SATA_AHCI=m
+CONFIG_SATA_AHCI_PLATFORM=m
+CONFIG_SATA_INIC162X=m
+CONFIG_SATA_ACARD_AHCI=m
 CONFIG_SATA_SIL24=m
 CONFIG_ATA_SFF=y
-CONFIG_SATA_SVW=m
+
+#
+# SFF controllers with custom DMA interface
+#
+CONFIG_PDC_ADMA=m
+CONFIG_SATA_QSTOR=m
+CONFIG_SATA_SX4=m
+CONFIG_ATA_BMDMA=y
+
+#
+# SATA SFF controllers with BMDMA
+#
 CONFIG_ATA_PIIX=m
 CONFIG_SATA_MV=m
 CONFIG_SATA_NV=m
-CONFIG_PDC_ADMA=m
-CONFIG_SATA_QSTOR=m
 CONFIG_SATA_PROMISE=m
-CONFIG_SATA_SX4=m
 CONFIG_SATA_SIL=m
 CONFIG_SATA_SIS=m
+CONFIG_SATA_SVW=m
 CONFIG_SATA_ULI=m
 CONFIG_SATA_VIA=m
 CONFIG_SATA_VITESSE=m
-CONFIG_SATA_INIC162X=m
-CONFIG_PATA_ACPI=m
+
+#
+# PATA SFF controllers with BMDMA
+#
 CONFIG_PATA_ALI=m
 CONFIG_PATA_AMD=m
+CONFIG_PATA_ARASAN_CF=m
 CONFIG_PATA_ARTOP=m
-CONFIG_PATA_ATP867X=m
 CONFIG_PATA_ATIIXP=m
-CONFIG_PATA_CMD640_PCI=m
+CONFIG_PATA_ATP867X=m
 CONFIG_PATA_CMD64X=m
 CONFIG_PATA_CS5520=m
 CONFIG_PATA_CS5530=m
@@ -1397,42 +1581,53 @@ CONFIG_PATA_CS5535=m
 CONFIG_PATA_CS5536=m
 CONFIG_PATA_CYPRESS=m
 CONFIG_PATA_EFAR=m
-CONFIG_ATA_GENERIC=m
 CONFIG_PATA_HPT366=m
 CONFIG_PATA_HPT37X=m
 CONFIG_PATA_HPT3X2N=m
 CONFIG_PATA_HPT3X3=m
 CONFIG_PATA_HPT3X3_DMA=y
-CONFIG_PATA_ISAPNP=m
-CONFIG_PATA_IT821X=m
 CONFIG_PATA_IT8213=m
+CONFIG_PATA_IT821X=m
 CONFIG_PATA_JMICRON=m
-CONFIG_PATA_LEGACY=m
-CONFIG_PATA_TRIFLEX=m
 CONFIG_PATA_MARVELL=m
-CONFIG_PATA_MPIIX=m
-CONFIG_PATA_OLDPIIX=m
 CONFIG_PATA_NETCELL=m
 CONFIG_PATA_NINJA32=m
-CONFIG_PATA_NS87410=m
 CONFIG_PATA_NS87415=m
-CONFIG_PATA_OPTI=m
+CONFIG_PATA_OLDPIIX=m
 CONFIG_PATA_OPTIDMA=m
-CONFIG_PATA_PCMCIA=m
+CONFIG_PATA_PDC2027X=m
 CONFIG_PATA_PDC_OLD=m
-CONFIG_PATA_QDI=m
 CONFIG_PATA_RADISYS=m
 CONFIG_PATA_RDC=m
-CONFIG_PATA_RZ1000=m
 CONFIG_PATA_SC1200=m
+CONFIG_PATA_SCH=m
 CONFIG_PATA_SERVERWORKS=m
-CONFIG_PATA_PDC2027X=m
 CONFIG_PATA_SIL680=m
 CONFIG_PATA_SIS=m
+CONFIG_PATA_TOSHIBA=m
+CONFIG_PATA_TRIFLEX=m
 CONFIG_PATA_VIA=m
 CONFIG_PATA_WINBOND=m
+
+#
+# PIO-only SFF controllers
+#
+CONFIG_PATA_CMD640_PCI=m
+CONFIG_PATA_ISAPNP=m
+CONFIG_PATA_MPIIX=m
+CONFIG_PATA_NS87410=m
+CONFIG_PATA_OPTI=m
+CONFIG_PATA_PCMCIA=m
+CONFIG_PATA_QDI=m
+CONFIG_PATA_RZ1000=m
 CONFIG_PATA_WINBOND_VLB=m
-CONFIG_PATA_SCH=m
+
+#
+# Generic fallback / legacy drivers
+#
+CONFIG_PATA_ACPI=m
+CONFIG_ATA_GENERIC=m
+CONFIG_PATA_LEGACY=m
 CONFIG_MD=y
 CONFIG_BLK_DEV_MD=m
 CONFIG_MD_LINEAR=m
@@ -1441,15 +1636,19 @@ CONFIG_MD_RAID1=m
 CONFIG_MD_RAID10=m
 CONFIG_MD_RAID456=m
 # CONFIG_MULTICORE_RAID456 is not set
-CONFIG_MD_RAID6_PQ=m
-CONFIG_ASYNC_RAID6_TEST=m
 CONFIG_MD_MULTIPATH=m
 # CONFIG_MD_FAULTY is not set
 CONFIG_BLK_DEV_DM=m
 # CONFIG_DM_DEBUG is not set
+CONFIG_DM_BUFIO=m
+CONFIG_DM_PERSISTENT_DATA=m
 CONFIG_DM_CRYPT=m
 CONFIG_DM_SNAPSHOT=m
+CONFIG_DM_THIN_PROVISIONING=m
+# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set
+# CONFIG_DM_DEBUG_SPACE_MAPS is not set
 CONFIG_DM_MIRROR=m
+CONFIG_DM_RAID=m
 CONFIG_DM_LOG_USERSPACE=m
 CONFIG_DM_ZERO=m
 CONFIG_DM_MULTIPATH=m
@@ -1457,6 +1656,8 @@ CONFIG_DM_MULTIPATH_QL=m
 CONFIG_DM_MULTIPATH_ST=m
 CONFIG_DM_DELAY=m
 CONFIG_DM_UEVENT=y
+CONFIG_DM_FLAKEY=m
+# CONFIG_TARGET_CORE is not set
 CONFIG_FUSION=y
 CONFIG_FUSION_SPI=m
 CONFIG_FUSION_FC=m
@@ -1468,27 +1669,18 @@ CONFIG_FUSION_CTL=m
 #
 # IEEE 1394 (FireWire) support
 #
-
-#
-# You can enable one or both FireWire driver stacks.
-#
-
-#
-# See the help texts for more information.
-#
 CONFIG_FIREWIRE=m
 CONFIG_FIREWIRE_OHCI=m
 CONFIG_FIREWIRE_OHCI_DEBUG=y
 CONFIG_FIREWIRE_SBP2=m
 CONFIG_FIREWIRE_NET=m
-# CONFIG_IEEE1394 is not set
+# CONFIG_FIREWIRE_NOSY is not set
 # CONFIG_I2O is not set
 # CONFIG_MACINTOSH_DRIVERS is not set
 CONFIG_NETDEVICES=y
-CONFIG_IFB=m
-CONFIG_DUMMY=m
+CONFIG_NET_CORE=y
 CONFIG_BONDING=m
-CONFIG_MACVLAN=m
+CONFIG_DUMMY=m
 CONFIG_EQUALIZER=m
 CONFIG_IMQ=m
 # CONFIG_IMQ_BEHAVIOR_AA is not set
@@ -1496,58 +1688,114 @@ CONFIG_IMQ_BEHAVIOR_AB=y
 # CONFIG_IMQ_BEHAVIOR_BA is not set
 # CONFIG_IMQ_BEHAVIOR_BB is not set
 CONFIG_IMQ_NUM_DEVS=2
+# CONFIG_NET_FC is not set
+CONFIG_MII=m
+CONFIG_IEEE802154_DRIVERS=m
+CONFIG_IEEE802154_FAKEHARD=m
+CONFIG_IFB=m
+CONFIG_MACVLAN=m
+CONFIG_MACVTAP=m
+# CONFIG_NETCONSOLE is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
 CONFIG_TUN=m
 CONFIG_VETH=m
-CONFIG_NET_SB1000=m
+CONFIG_VIRTIO_NET=m
+CONFIG_SUNGEM_PHY=m
 # CONFIG_ARCNET is not set
-CONFIG_PHYLIB=y
+CONFIG_ATM_DRIVERS=y
+# CONFIG_ATM_DUMMY is not set
+CONFIG_ATM_TCP=m
+CONFIG_ATM_LANAI=m
+CONFIG_ATM_ENI=m
+CONFIG_ATM_ENI_DEBUG=y
+CONFIG_ATM_ENI_TUNE_BURST=y
+CONFIG_ATM_ENI_BURST_TX_16W=y
+CONFIG_ATM_ENI_BURST_TX_8W=y
+CONFIG_ATM_ENI_BURST_TX_4W=y
+CONFIG_ATM_ENI_BURST_TX_2W=y
+CONFIG_ATM_ENI_BURST_RX_16W=y
+CONFIG_ATM_ENI_BURST_RX_8W=y
+CONFIG_ATM_ENI_BURST_RX_4W=y
+CONFIG_ATM_ENI_BURST_RX_2W=y
+CONFIG_ATM_FIRESTREAM=m
+CONFIG_ATM_ZATM=m
+# CONFIG_ATM_ZATM_DEBUG is not set
+CONFIG_ATM_NICSTAR=m
+CONFIG_ATM_NICSTAR_USE_SUNI=y
+CONFIG_ATM_NICSTAR_USE_IDT77105=y
+CONFIG_ATM_IDT77252=m
+# CONFIG_ATM_IDT77252_DEBUG is not set
+# CONFIG_ATM_IDT77252_RCV_ALL is not set
+CONFIG_ATM_IDT77252_USE_SUNI=y
+CONFIG_ATM_AMBASSADOR=m
+# CONFIG_ATM_AMBASSADOR_DEBUG is not set
+CONFIG_ATM_HORIZON=m
+# CONFIG_ATM_HORIZON_DEBUG is not set
+CONFIG_ATM_IA=m
+# CONFIG_ATM_IA_DEBUG is not set
+CONFIG_ATM_FORE200E=m
+CONFIG_ATM_FORE200E_USE_TASKLET=y
+CONFIG_ATM_FORE200E_TX_RETRY=16
+CONFIG_ATM_FORE200E_DEBUG=0
+CONFIG_ATM_HE=m
+CONFIG_ATM_HE_USE_SUNI=y
+CONFIG_ATM_SOLOS=m
 
 #
-# MII PHY device drivers
+# CAIF transport drivers
 #
-CONFIG_MARVELL_PHY=m
-CONFIG_DAVICOM_PHY=m
-CONFIG_QSEMI_PHY=m
-CONFIG_LXT_PHY=m
-CONFIG_CICADA_PHY=m
-CONFIG_VITESSE_PHY=m
-CONFIG_SMSC_PHY=m
-CONFIG_BROADCOM_PHY=m
-CONFIG_ICPLUS_PHY=m
-CONFIG_REALTEK_PHY=m
-CONFIG_NATIONAL_PHY=m
-CONFIG_STE10XP=m
-CONFIG_LSI_ET1011C_PHY=m
-# CONFIG_FIXED_PHY is not set
-CONFIG_MDIO_BITBANG=m
-CONFIG_NET_ETHERNET=y
-CONFIG_MII=m
-CONFIG_HAPPYMEAL=m
-CONFIG_SUNGEM=m
-CONFIG_CASSINI=m
+CONFIG_ETHERNET=y
+CONFIG_MDIO=m
 CONFIG_NET_VENDOR_3COM=y
 CONFIG_EL1=m
-CONFIG_EL2=m
-CONFIG_ELPLUS=m
-CONFIG_EL16=m
 CONFIG_EL3=m
 CONFIG_3C515=m
-CONFIG_ELMC=m
-CONFIG_ELMC_II=m
+CONFIG_PCMCIA_3C574=m
+CONFIG_PCMCIA_3C589=m
 CONFIG_VORTEX=m
 CONFIG_TYPHOON=m
+CONFIG_NET_VENDOR_ADAPTEC=y
+CONFIG_ADAPTEC_STARFIRE=m
+CONFIG_NET_VENDOR_ALTEON=y
+CONFIG_ACENIC=m
+# CONFIG_ACENIC_OMIT_TIGON_I is not set
+CONFIG_NET_VENDOR_AMD=y
+CONFIG_AMD8111_ETH=m
 CONFIG_LANCE=m
-CONFIG_NET_VENDOR_SMC=y
-CONFIG_WD80x3=m
-CONFIG_ULTRAMCA=m
-CONFIG_ULTRA=m
-CONFIG_ULTRA32=m
-CONFIG_SMC9194=m
-CONFIG_ETHOC=m
-CONFIG_NET_VENDOR_RACAL=y
-CONFIG_NI52=m
+CONFIG_PCNET32=m
+CONFIG_DEPCA=m
+CONFIG_PCMCIA_NMCLAN=m
 CONFIG_NI65=m
+CONFIG_NET_VENDOR_ATHEROS=y
+CONFIG_ATL2=m
+CONFIG_ATL1=m
+CONFIG_ATL1E=m
+CONFIG_ATL1C=m
+CONFIG_NET_VENDOR_BROADCOM=y
+CONFIG_B44=m
+CONFIG_B44_PCI_AUTOSELECT=y
+CONFIG_B44_PCICORE_AUTOSELECT=y
+CONFIG_B44_PCI=y
+CONFIG_BNX2=m
+CONFIG_CNIC=m
+CONFIG_TIGON3=m
+CONFIG_BNX2X=m
+CONFIG_NET_VENDOR_BROCADE=y
+CONFIG_BNA=m
+CONFIG_NET_VENDOR_CHELSIO=y
+CONFIG_CHELSIO_T1=m
+CONFIG_CHELSIO_T1_1G=y
+CONFIG_CHELSIO_T3=m
+CONFIG_CHELSIO_T4=m
+CONFIG_CHELSIO_T4VF=m
+CONFIG_NET_VENDOR_CIRRUS=y
+CONFIG_CS89x0=m
+CONFIG_NET_VENDOR_CISCO=y
+CONFIG_ENIC=m
 CONFIG_DNET=m
+CONFIG_NET_VENDOR_DEC=y
+CONFIG_EWRK3=m
 CONFIG_NET_TULIP=y
 CONFIG_DE2104X=m
 CONFIG_DE2104X_DSL=0
@@ -1560,170 +1808,197 @@ CONFIG_WINBOND_840=m
 CONFIG_DM9102=m
 CONFIG_ULI526X=m
 CONFIG_PCMCIA_XIRCOM=m
+CONFIG_NET_VENDOR_DLINK=y
+CONFIG_DE600=m
+CONFIG_DE620=m
+CONFIG_DL2K=m
+CONFIG_SUNDANCE=m
+# CONFIG_SUNDANCE_MMIO is not set
+CONFIG_NET_VENDOR_EMULEX=y
+CONFIG_BE2NET=m
+CONFIG_NET_VENDOR_EXAR=y
+CONFIG_S2IO=m
+CONFIG_VXGE=m
+# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
+CONFIG_NET_VENDOR_FUJITSU=y
 CONFIG_AT1700=m
-CONFIG_DEPCA=m
+CONFIG_PCMCIA_FMVJ18X=m
+CONFIG_ETH16I=m
+CONFIG_NET_VENDOR_HP=y
 CONFIG_HP100=m
-CONFIG_NET_ISA=y
-CONFIG_E2100=m
-CONFIG_EWRK3=m
+CONFIG_NET_VENDOR_IBM=y
+# CONFIG_IBM_EMAC_ZMII is not set
+# CONFIG_IBM_EMAC_RGMII is not set
+# CONFIG_IBM_EMAC_TAH is not set
+# CONFIG_IBM_EMAC_EMAC4 is not set
+# CONFIG_IBM_EMAC_NO_FLOW_CTRL is not set
+# CONFIG_IBM_EMAC_MAL_CLR_ICINTSTAT is not set
+# CONFIG_IBM_EMAC_MAL_COMMON_ERR is not set
+CONFIG_NET_VENDOR_INTEL=y
+CONFIG_E100=m
+CONFIG_E1000=m
+CONFIG_E1000E=m
+CONFIG_IGB=m
+CONFIG_IGB_DCA=y
+CONFIG_IGBVF=m
+CONFIG_IXGB=m
+CONFIG_IXGBE=m
+CONFIG_IXGBE_DCA=y
+CONFIG_IXGBEVF=m
+CONFIG_NET_VENDOR_I825XX=y
+CONFIG_ELPLUS=m
+CONFIG_EL16=m
+CONFIG_ELMC=m
+CONFIG_ELMC_II=m
+CONFIG_APRICOT=m
 CONFIG_EEXPRESS=m
 CONFIG_EEXPRESS_PRO=m
-CONFIG_HPLAN_PLUS=m
-CONFIG_HPLAN=m
 CONFIG_LP486E=m
-CONFIG_ETH16I=m
-CONFIG_NE2000=m
+CONFIG_NI52=m
 CONFIG_ZNET=m
-CONFIG_SEEQ8005=m
-CONFIG_NE2_MCA=m
+CONFIG_IP1000=m
+CONFIG_JME=m
+CONFIG_NET_VENDOR_MARVELL=y
+CONFIG_SKGE=m
+CONFIG_SKGE_GENESIS=y
+CONFIG_SKY2=m
+CONFIG_NET_VENDOR_MELLANOX=y
+CONFIG_MLX4_EN=m
+CONFIG_MLX4_CORE=m
+CONFIG_MLX4_DEBUG=y
+CONFIG_NET_VENDOR_MICREL=y
+CONFIG_KS8842=m
+CONFIG_KS8851_MLL=m
+CONFIG_KSZ884X_PCI=m
+CONFIG_NET_VENDOR_MYRI=y
+CONFIG_MYRI10GE=m
+CONFIG_MYRI10GE_DCA=y
+CONFIG_FEALNX=m
+CONFIG_NET_VENDOR_NATSEMI=y
 CONFIG_IBMLANA=m
-# CONFIG_IBM_NEW_EMAC_ZMII is not set
-# CONFIG_IBM_NEW_EMAC_RGMII is not set
-# CONFIG_IBM_NEW_EMAC_TAH is not set
-# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
-# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
-# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
-# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
-CONFIG_NET_PCI=y
-CONFIG_PCNET32=m
-CONFIG_AMD8111_ETH=m
-CONFIG_ADAPTEC_STARFIRE=m
+CONFIG_NATSEMI=m
+CONFIG_NS83820=m
+CONFIG_NET_VENDOR_8390=y
+CONFIG_EL2=m
 CONFIG_AC3200=m
-CONFIG_APRICOT=m
-CONFIG_B44=m
-CONFIG_B44_PCI_AUTOSELECT=y
-CONFIG_B44_PCICORE_AUTOSELECT=y
-CONFIG_B44_PCI=y
-CONFIG_FORCEDETH=m
-# CONFIG_FORCEDETH_NAPI is not set
-CONFIG_CS89x0=m
-CONFIG_E100=m
+CONFIG_PCMCIA_AXNET=m
+CONFIG_E2100=m
+CONFIG_ES3210=m
+CONFIG_HPLAN_PLUS=m
+CONFIG_HPLAN=m
 CONFIG_LNE390=m
-CONFIG_FEALNX=m
-CONFIG_NATSEMI=m
+CONFIG_NE2000=m
+CONFIG_NE2_MCA=m
 CONFIG_NE2K_PCI=m
 CONFIG_NE3210=m
-CONFIG_ES3210=m
+CONFIG_PCMCIA_PCNET=m
+CONFIG_ULTRAMCA=m
+CONFIG_ULTRA=m
+CONFIG_ULTRA32=m
+CONFIG_WD80x3=m
+CONFIG_NET_VENDOR_NVIDIA=y
+CONFIG_FORCEDETH=m
+CONFIG_NET_VENDOR_OKI=y
+CONFIG_PCH_GBE=m
+CONFIG_ETHOC=m
+CONFIG_NET_PACKET_ENGINE=y
+CONFIG_HAMACHI=m
+CONFIG_YELLOWFIN=m
+CONFIG_NET_VENDOR_QLOGIC=y
+CONFIG_QLA3XXX=m
+CONFIG_QLCNIC=m
+CONFIG_QLGE=m
+CONFIG_NETXEN_NIC=m
+CONFIG_NET_VENDOR_RACAL=y
+CONFIG_NET_VENDOR_REALTEK=y
+CONFIG_ATP=m
 CONFIG_8139CP=m
 CONFIG_8139TOO=m
 # CONFIG_8139TOO_PIO is not set
 CONFIG_8139TOO_TUNE_TWISTER=y
 CONFIG_8139TOO_8129=y
 # CONFIG_8139_OLD_RX_RESET is not set
+CONFIG_R8169=m
+CONFIG_NET_VENDOR_RDC=y
 CONFIG_R6040=m
+CONFIG_NET_VENDOR_SEEQ=y
+CONFIG_SEEQ8005=m
+CONFIG_NET_VENDOR_SILAN=y
+CONFIG_SC92031=m
+CONFIG_NET_VENDOR_SIS=y
 CONFIG_SIS900=m
+CONFIG_SIS190=m
+CONFIG_SFC=m
+CONFIG_SFC_MTD=y
+CONFIG_NET_VENDOR_SMSC=y
+CONFIG_SMC9194=m
+CONFIG_PCMCIA_SMC91C92=m
 CONFIG_EPIC100=m
 CONFIG_SMSC9420=m
-CONFIG_SUNDANCE=m
-# CONFIG_SUNDANCE_MMIO is not set
+CONFIG_NET_VENDOR_STMICRO=y
+CONFIG_STMMAC_ETH=m
+# CONFIG_STMMAC_DA is not set
+CONFIG_STMMAC_RING=y
+# CONFIG_STMMAC_CHAINED is not set
+CONFIG_NET_VENDOR_SUN=y
+CONFIG_HAPPYMEAL=m
+CONFIG_SUNGEM=m
+CONFIG_CASSINI=m
+CONFIG_NIU=m
+CONFIG_NET_VENDOR_TEHUTI=y
+CONFIG_TEHUTI=m
+CONFIG_NET_VENDOR_TI=y
 CONFIG_TLAN=m
-CONFIG_KS8842=m
-CONFIG_KS8851_MLL=m
+CONFIG_NET_VENDOR_VIA=y
 CONFIG_VIA_RHINE=m
 CONFIG_VIA_RHINE_MMIO=y
-CONFIG_SC92031=m
-CONFIG_NET_POCKET=y
-CONFIG_ATP=m
-CONFIG_DE600=m
-CONFIG_DE620=m
-CONFIG_ATL2=m
-CONFIG_NETDEV_1000=y
-CONFIG_ACENIC=m
-# CONFIG_ACENIC_OMIT_TIGON_I is not set
-CONFIG_DL2K=m
-CONFIG_E1000=m
-CONFIG_E1000E=m
-CONFIG_IP1000=m
-CONFIG_IGB=m
-CONFIG_IGB_DCA=y
-CONFIG_IGBVF=m
-CONFIG_NS83820=m
-CONFIG_HAMACHI=m
-CONFIG_YELLOWFIN=m
-CONFIG_R8169=m
-CONFIG_R8169_VLAN=y
-CONFIG_SIS190=m
-CONFIG_SKGE=m
-CONFIG_SKY2=m
 CONFIG_VIA_VELOCITY=m
-CONFIG_TIGON3=m
-CONFIG_BNX2=m
-CONFIG_CNIC=m
-CONFIG_QLA3XXX=m
-CONFIG_ATL1=m
-CONFIG_ATL1E=m
-CONFIG_ATL1C=m
-CONFIG_JME=m
-CONFIG_NETDEV_10000=y
-CONFIG_MDIO=m
-CONFIG_CHELSIO_T1=m
-CONFIG_CHELSIO_T1_1G=y
-CONFIG_CHELSIO_T3_DEPENDS=y
-CONFIG_CHELSIO_T3=m
-CONFIG_ENIC=m
-CONFIG_IXGBE=m
-CONFIG_IXGBE_DCA=y
-CONFIG_IXGB=m
-CONFIG_S2IO=m
-CONFIG_VXGE=m
-# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
-CONFIG_MYRI10GE=m
-CONFIG_MYRI10GE_DCA=y
-CONFIG_NETXEN_NIC=m
-CONFIG_NIU=m
-CONFIG_MLX4_EN=m
-CONFIG_MLX4_CORE=m
-CONFIG_MLX4_DEBUG=y
-CONFIG_TEHUTI=m
-CONFIG_BNX2X=m
-CONFIG_QLGE=m
-CONFIG_SFC=m
-CONFIG_SFC_MTD=y
-CONFIG_BE2NET=m
-# CONFIG_TR is not set
-CONFIG_WLAN=y
-# CONFIG_WLAN_PRE80211 is not set
-CONFIG_WLAN_80211=y
-CONFIG_PCMCIA_RAYCS=m
-# CONFIG_LIBERTAS is not set
-# CONFIG_LIBERTAS_THINFIRM is not set
-CONFIG_AIRO=m
-CONFIG_ATMEL=m
-CONFIG_PCI_ATMEL=m
-CONFIG_PCMCIA_ATMEL=m
-CONFIG_AT76C50X_USB=m
-CONFIG_AIRO_CS=m
-CONFIG_PCMCIA_WL3501=m
-# CONFIG_PRISM54 is not set
-CONFIG_USB_ZD1201=m
-CONFIG_USB_NET_RNDIS_WLAN=m
-# CONFIG_RTL8180 is not set
-# CONFIG_RTL8187 is not set
-# CONFIG_ADM8211 is not set
-# CONFIG_MAC80211_HWSIM is not set
-# CONFIG_MWL8K is not set
-# CONFIG_P54_COMMON is not set
-# CONFIG_ATH_COMMON is not set
-# CONFIG_IPW2100 is not set
-# CONFIG_IPW2200 is not set
-# CONFIG_IWLWIFI is not set
-CONFIG_HOSTAP=m
-CONFIG_HOSTAP_FIRMWARE=y
-# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set
-CONFIG_HOSTAP_PLX=m
-CONFIG_HOSTAP_PCI=m
-CONFIG_HOSTAP_CS=m
-# CONFIG_B43 is not set
-# CONFIG_B43LEGACY is not set
-# CONFIG_ZD1211RW is not set
-# CONFIG_RT2X00 is not set
-# CONFIG_HERMES is not set
-# CONFIG_WL12XX is not set
-# CONFIG_IWM is not set
+CONFIG_NET_VENDOR_XIRCOM=y
+CONFIG_PCMCIA_XIRC2PS=m
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+CONFIG_NET_SB1000=m
+CONFIG_PHYLIB=y
 
 #
-# Enable WiMAX (Networking options) to see the WiMAX drivers
+# MII PHY device drivers
 #
+CONFIG_MARVELL_PHY=m
+CONFIG_DAVICOM_PHY=m
+CONFIG_QSEMI_PHY=m
+CONFIG_LXT_PHY=m
+CONFIG_CICADA_PHY=m
+CONFIG_VITESSE_PHY=m
+CONFIG_SMSC_PHY=m
+CONFIG_BROADCOM_PHY=m
+CONFIG_ICPLUS_PHY=m
+CONFIG_REALTEK_PHY=m
+CONFIG_NATIONAL_PHY=m
+CONFIG_STE10XP=m
+CONFIG_LSI_ET1011C_PHY=m
+CONFIG_MICREL_PHY=m
+# CONFIG_FIXED_PHY is not set
+CONFIG_MDIO_BITBANG=m
+CONFIG_MDIO_GPIO=m
+# CONFIG_PLIP is not set
+CONFIG_PPP=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_MPPE=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPPOATM=m
+CONFIG_PPPOE=m
+CONFIG_PPTP=m
+CONFIG_PPPOL2TP=m
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_SLIP=m
+CONFIG_SLHC=m
+CONFIG_SLIP_COMPRESSED=y
+CONFIG_SLIP_SMART=y
+CONFIG_SLIP_MODE_SLIP6=y
+# CONFIG_TR is not set
 
 #
 # USB Network Adapters
@@ -1736,7 +2011,9 @@ CONFIG_USB_USBNET=m
 CONFIG_USB_NET_AX8817X=m
 CONFIG_USB_NET_CDCETHER=m
 CONFIG_USB_NET_CDC_EEM=m
+CONFIG_USB_NET_CDC_NCM=m
 CONFIG_USB_NET_DM9601=m
+CONFIG_USB_NET_SMSC75XX=m
 CONFIG_USB_NET_SMSC95XX=m
 CONFIG_USB_NET_GL620A=m
 CONFIG_USB_NET_NET1080=m
@@ -1751,131 +2028,96 @@ CONFIG_USB_ARMLINUX=y
 CONFIG_USB_EPSON2888=y
 CONFIG_USB_KC2190=y
 CONFIG_USB_NET_ZAURUS=m
+CONFIG_USB_NET_CX82310_ETH=m
+CONFIG_USB_NET_KALMIA=m
 CONFIG_USB_HSO=m
 CONFIG_USB_NET_INT51X1=m
-CONFIG_NET_PCMCIA=y
-CONFIG_PCMCIA_3C589=m
-CONFIG_PCMCIA_3C574=m
-CONFIG_PCMCIA_FMVJ18X=m
-CONFIG_PCMCIA_PCNET=m
-CONFIG_PCMCIA_NMCLAN=m
-CONFIG_PCMCIA_SMC91C92=m
-CONFIG_PCMCIA_XIRC2PS=m
-CONFIG_PCMCIA_AXNET=m
-CONFIG_WAN=y
-CONFIG_HOSTESS_SV11=m
-CONFIG_COSA=m
-CONFIG_LANMEDIA=m
-CONFIG_SEALEVEL_4021=m
-CONFIG_HDLC=m
-CONFIG_HDLC_RAW=m
-CONFIG_HDLC_RAW_ETH=m
-CONFIG_HDLC_CISCO=m
-CONFIG_HDLC_FR=m
-CONFIG_HDLC_PPP=m
-
-#
-# X.25/LAPB support is disabled
-#
-CONFIG_PCI200SYN=m
-CONFIG_WANXL=m
-# CONFIG_WANXL_BUILD_FIRMWARE is not set
-CONFIG_PC300TOO=m
-CONFIG_N2=m
-CONFIG_C101=m
-CONFIG_FARSYNC=m
-CONFIG_DSCC4=m
-CONFIG_DSCC4_PCISYNC=y
-CONFIG_DSCC4_PCI_RST=y
-CONFIG_DLCI=m
-CONFIG_DLCI_MAX=8
-CONFIG_SDLA=m
-CONFIG_SBNI=m
-CONFIG_SBNI_MULTILINE=y
-CONFIG_ATM_DRIVERS=y
-# CONFIG_ATM_DUMMY is not set
-CONFIG_ATM_TCP=m
-CONFIG_ATM_LANAI=m
-CONFIG_ATM_ENI=m
-CONFIG_ATM_ENI_DEBUG=y
-CONFIG_ATM_ENI_TUNE_BURST=y
-CONFIG_ATM_ENI_BURST_TX_16W=y
-CONFIG_ATM_ENI_BURST_TX_8W=y
-CONFIG_ATM_ENI_BURST_TX_4W=y
-CONFIG_ATM_ENI_BURST_TX_2W=y
-CONFIG_ATM_ENI_BURST_RX_16W=y
-CONFIG_ATM_ENI_BURST_RX_8W=y
-CONFIG_ATM_ENI_BURST_RX_4W=y
-CONFIG_ATM_ENI_BURST_RX_2W=y
-CONFIG_ATM_FIRESTREAM=m
-CONFIG_ATM_ZATM=m
-# CONFIG_ATM_ZATM_DEBUG is not set
-CONFIG_ATM_NICSTAR=m
-CONFIG_ATM_NICSTAR_USE_SUNI=y
-CONFIG_ATM_NICSTAR_USE_IDT77105=y
-CONFIG_ATM_IDT77252=m
-# CONFIG_ATM_IDT77252_DEBUG is not set
-# CONFIG_ATM_IDT77252_RCV_ALL is not set
-CONFIG_ATM_IDT77252_USE_SUNI=y
-CONFIG_ATM_AMBASSADOR=m
-# CONFIG_ATM_AMBASSADOR_DEBUG is not set
-CONFIG_ATM_HORIZON=m
-# CONFIG_ATM_HORIZON_DEBUG is not set
-CONFIG_ATM_IA=m
-# CONFIG_ATM_IA_DEBUG is not set
-CONFIG_ATM_FORE200E=m
-CONFIG_ATM_FORE200E_USE_TASKLET=y
-CONFIG_ATM_FORE200E_TX_RETRY=16
-CONFIG_ATM_FORE200E_DEBUG=0
-CONFIG_ATM_HE=m
-CONFIG_ATM_HE_USE_SUNI=y
-CONFIG_ATM_SOLOS=m
-CONFIG_IEEE802154_DRIVERS=m
-CONFIG_IEEE802154_FAKEHARD=m
-# CONFIG_FDDI is not set
-# CONFIG_HIPPI is not set
-# CONFIG_PLIP is not set
-CONFIG_PPP=m
-CONFIG_PPP_MULTILINK=y
-CONFIG_PPP_FILTER=y
-CONFIG_PPP_ASYNC=m
-CONFIG_PPP_SYNC_TTY=m
-CONFIG_PPP_DEFLATE=m
-CONFIG_PPP_BSDCOMP=m
-CONFIG_PPP_MPPE=m
-CONFIG_PPPOE=m
-CONFIG_PPPOATM=m
-CONFIG_PPPOL2TP=m
-CONFIG_SLIP=m
-CONFIG_SLIP_COMPRESSED=y
-CONFIG_SLHC=m
-CONFIG_SLIP_SMART=y
-CONFIG_SLIP_MODE_SLIP6=y
-# CONFIG_NET_FC is not set
-# CONFIG_NETCONSOLE is not set
-# CONFIG_NETPOLL is not set
-# CONFIG_NET_POLL_CONTROLLER is not set
-CONFIG_VIRTIO_NET=m
-CONFIG_VMXNET3=m
-CONFIG_ISDN=y
-CONFIG_ISDN_I4L=m
-CONFIG_MISDN=m
-CONFIG_MISDN_DSP=m
-CONFIG_MISDN_L1OIP=m
+# CONFIG_USB_IPHETH is not set
+CONFIG_USB_SIERRA_NET=m
+CONFIG_USB_VL600=m
+CONFIG_WLAN=y
+CONFIG_PCMCIA_RAYCS=m
+# CONFIG_LIBERTAS_THINFIRM is not set
+CONFIG_AIRO=m
+CONFIG_ATMEL=m
+CONFIG_PCI_ATMEL=m
+CONFIG_PCMCIA_ATMEL=m
+CONFIG_AT76C50X_USB=m
+CONFIG_AIRO_CS=m
+CONFIG_PCMCIA_WL3501=m
+# CONFIG_PRISM54 is not set
+CONFIG_USB_ZD1201=m
+CONFIG_USB_NET_RNDIS_WLAN=m
+# CONFIG_RTL8180 is not set
+# CONFIG_RTL8187 is not set
+# CONFIG_ADM8211 is not set
+# CONFIG_MAC80211_HWSIM is not set
+# CONFIG_MWL8K is not set
+# CONFIG_ATH_COMMON is not set
+# CONFIG_B43 is not set
+# CONFIG_B43LEGACY is not set
+# CONFIG_BRCMFMAC is not set
+CONFIG_HOSTAP=m
+CONFIG_HOSTAP_FIRMWARE=y
+# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set
+CONFIG_HOSTAP_PLX=m
+CONFIG_HOSTAP_PCI=m
+CONFIG_HOSTAP_CS=m
+# CONFIG_IPW2100 is not set
+# CONFIG_IPW2200 is not set
+# CONFIG_IWLWIFI is not set
+# CONFIG_IWL4965 is not set
+# CONFIG_IWL3945 is not set
+# CONFIG_IWM is not set
+# CONFIG_LIBERTAS is not set
+# CONFIG_HERMES is not set
+# CONFIG_P54_COMMON is not set
+# CONFIG_RT2X00 is not set
+# CONFIG_RTL8192CE is not set
+# CONFIG_RTL8192SE is not set
+# CONFIG_RTL8192DE is not set
+# CONFIG_RTL8192CU is not set
+# CONFIG_WL1251 is not set
+# CONFIG_WL12XX_MENU is not set
+# CONFIG_ZD1211RW is not set
+# CONFIG_MWIFIEX is not set
 
 #
-# mISDN hardware drivers
+# Enable WiMAX (Networking options) to see the WiMAX drivers
 #
-CONFIG_MISDN_HFCPCI=m
-CONFIG_MISDN_HFCMULTI=m
-CONFIG_MISDN_HFCUSB=m
-CONFIG_MISDN_AVMFRITZ=m
-CONFIG_MISDN_SPEEDFAX=m
-CONFIG_MISDN_INFINEON=m
-CONFIG_MISDN_W6692=m
-CONFIG_MISDN_NETJET=m
-CONFIG_MISDN_IPAC=m
-CONFIG_MISDN_ISAR=m
+CONFIG_WAN=y
+CONFIG_HOSTESS_SV11=m
+CONFIG_COSA=m
+CONFIG_LANMEDIA=m
+CONFIG_SEALEVEL_4021=m
+CONFIG_HDLC=m
+CONFIG_HDLC_RAW=m
+CONFIG_HDLC_RAW_ETH=m
+CONFIG_HDLC_CISCO=m
+CONFIG_HDLC_FR=m
+CONFIG_HDLC_PPP=m
+
+#
+# X.25/LAPB support is disabled
+#
+CONFIG_PCI200SYN=m
+CONFIG_WANXL=m
+# CONFIG_WANXL_BUILD_FIRMWARE is not set
+CONFIG_PC300TOO=m
+CONFIG_N2=m
+CONFIG_C101=m
+CONFIG_FARSYNC=m
+CONFIG_DSCC4=m
+CONFIG_DSCC4_PCISYNC=y
+CONFIG_DSCC4_PCI_RST=y
+CONFIG_DLCI=m
+CONFIG_DLCI_MAX=8
+CONFIG_SDLA=m
+CONFIG_SBNI=m
+CONFIG_SBNI_MULTILINE=y
+CONFIG_VMXNET3=m
+CONFIG_ISDN=y
+CONFIG_ISDN_I4L=m
 CONFIG_ISDN_PPP=y
 CONFIG_ISDN_PPP_VJ=y
 CONFIG_ISDN_MPP=y
@@ -1966,16 +2208,11 @@ CONFIG_ISDN_DRV_ICN=m
 CONFIG_ISDN_DRV_PCBIT=m
 CONFIG_ISDN_DRV_SC=m
 CONFIG_ISDN_DRV_ACT2000=m
-CONFIG_HYSDN=m
-CONFIG_HYSDN_CAPI=y
-CONFIG_ISDN_HDLC=m
 CONFIG_ISDN_CAPI=m
 CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y
 CONFIG_CAPI_TRACE=y
 CONFIG_ISDN_CAPI_MIDDLEWARE=y
 CONFIG_ISDN_CAPI_CAPI20=m
-CONFIG_ISDN_CAPI_CAPIFS_BOOL=y
-CONFIG_ISDN_CAPI_CAPIFS=m
 CONFIG_ISDN_CAPI_CAPIDRV=m
 
 #
@@ -1998,10 +2235,33 @@ CONFIG_ISDN_DIVAS_DIVACAPI=m
 CONFIG_ISDN_DIVAS_USERIDI=m
 CONFIG_ISDN_DIVAS_MAINT=m
 CONFIG_ISDN_DRV_GIGASET=m
+CONFIG_GIGASET_CAPI=y
+# CONFIG_GIGASET_I4L is not set
+# CONFIG_GIGASET_DUMMYLL is not set
 CONFIG_GIGASET_BASE=m
 CONFIG_GIGASET_M105=m
 CONFIG_GIGASET_M101=m
 # CONFIG_GIGASET_DEBUG is not set
+CONFIG_HYSDN=m
+CONFIG_HYSDN_CAPI=y
+CONFIG_MISDN=m
+CONFIG_MISDN_DSP=m
+CONFIG_MISDN_L1OIP=m
+
+#
+# mISDN hardware drivers
+#
+CONFIG_MISDN_HFCPCI=m
+CONFIG_MISDN_HFCMULTI=m
+CONFIG_MISDN_HFCUSB=m
+CONFIG_MISDN_AVMFRITZ=m
+CONFIG_MISDN_SPEEDFAX=m
+CONFIG_MISDN_INFINEON=m
+CONFIG_MISDN_W6692=m
+CONFIG_MISDN_NETJET=m
+CONFIG_MISDN_IPAC=m
+CONFIG_MISDN_ISAR=m
+CONFIG_ISDN_HDLC=m
 # CONFIG_PHONE is not set
 
 #
@@ -2010,6 +2270,7 @@ CONFIG_GIGASET_M101=m
 CONFIG_INPUT=y
 CONFIG_INPUT_FF_MEMLESS=m
 CONFIG_INPUT_POLLDEV=m
+CONFIG_INPUT_SPARSEKMAP=m
 
 #
 # Userland interfaces
@@ -2027,11 +2288,19 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
 #
 CONFIG_INPUT_KEYBOARD=y
 CONFIG_KEYBOARD_ADP5588=m
+CONFIG_KEYBOARD_ADP5589=m
 CONFIG_KEYBOARD_ATKBD=y
-CONFIG_QT2160=m
+CONFIG_KEYBOARD_QT1070=m
+CONFIG_KEYBOARD_QT2160=m
 CONFIG_KEYBOARD_LKKBD=m
+CONFIG_KEYBOARD_GPIO=m
+CONFIG_KEYBOARD_GPIO_POLLED=m
+CONFIG_KEYBOARD_TCA6416=m
+CONFIG_KEYBOARD_MATRIX=m
 CONFIG_KEYBOARD_LM8323=m
 CONFIG_KEYBOARD_MAX7359=m
+CONFIG_KEYBOARD_MCS=m
+CONFIG_KEYBOARD_MPR121=m
 CONFIG_KEYBOARD_NEWTON=m
 CONFIG_KEYBOARD_OPENCORES=m
 CONFIG_KEYBOARD_STOWAWAY=m
@@ -2042,20 +2311,27 @@ CONFIG_KEYBOARD_XTKBD=m
 # CONFIG_INPUT_TABLET is not set
 # CONFIG_INPUT_TOUCHSCREEN is not set
 CONFIG_INPUT_MISC=y
+CONFIG_INPUT_AD714X=m
+CONFIG_INPUT_AD714X_I2C=m
+CONFIG_INPUT_BMA150=m
 CONFIG_INPUT_PCSPKR=m
+# CONFIG_INPUT_MMA8450 is not set
+# CONFIG_INPUT_MPU3050 is not set
 CONFIG_INPUT_APANEL=m
 # CONFIG_INPUT_WISTRON_BTNS is not set
 # CONFIG_INPUT_ATLAS_BTNS is not set
-CONFIG_INPUT_ATI_REMOTE=m
 CONFIG_INPUT_ATI_REMOTE2=m
 CONFIG_INPUT_KEYSPAN_REMOTE=m
+# CONFIG_INPUT_KXTJ9 is not set
 CONFIG_INPUT_POWERMATE=m
 CONFIG_INPUT_YEALINK=m
 CONFIG_INPUT_CM109=m
 # CONFIG_INPUT_UINPUT is not set
-CONFIG_INPUT_WINBOND_CIR=m
 CONFIG_INPUT_PCF50633_PMU=m
-CONFIG_INPUT_WM831X_ON=m
+CONFIG_INPUT_PCF8574=m
+CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
+# CONFIG_INPUT_ADXL34X is not set
+# CONFIG_INPUT_CMA3000 is not set
 
 #
 # Hardware I/O ports
@@ -2068,6 +2344,8 @@ CONFIG_SERIO_SERPORT=y
 # CONFIG_SERIO_PCIPS2 is not set
 CONFIG_SERIO_LIBPS2=y
 # CONFIG_SERIO_RAW is not set
+CONFIG_SERIO_ALTERA_PS2=m
+CONFIG_SERIO_PS2MULT=m
 # CONFIG_GAMEPORT is not set
 
 #
@@ -2076,11 +2354,17 @@ CONFIG_SERIO_LIBPS2=y
 CONFIG_VT=y
 CONFIG_CONSOLE_TRANSLATIONS=y
 CONFIG_VT_CONSOLE=y
+CONFIG_VT_CONSOLE_SLEEP=y
 CONFIG_HW_CONSOLE=y
 # CONFIG_VT_HW_CONSOLE_BINDING is not set
-CONFIG_DEVKMEM=y
+CONFIG_UNIX98_PTYS=y
+# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
+# CONFIG_LEGACY_PTYS is not set
 # CONFIG_SERIAL_NONSTANDARD is not set
 CONFIG_NOZOMI=m
+CONFIG_N_GSM=m
+# CONFIG_TRACE_SINK is not set
+CONFIG_DEVKMEM=y
 
 #
 # Serial drivers
@@ -2108,12 +2392,18 @@ CONFIG_SERIAL_8250_RSA=y
 #
 # Non-8250 serial port support
 #
+CONFIG_SERIAL_MFD_HSU=m
+CONFIG_SERIAL_UARTLITE=m
 CONFIG_SERIAL_CORE=y
 CONFIG_SERIAL_CORE_CONSOLE=y
 # CONFIG_SERIAL_JSM is not set
-CONFIG_UNIX98_PTYS=y
-# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
-# CONFIG_LEGACY_PTYS is not set
+CONFIG_SERIAL_TIMBERDALE=m
+CONFIG_SERIAL_ALTERA_JTAGUART=m
+CONFIG_SERIAL_ALTERA_UART=m
+CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4
+CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200
+CONFIG_SERIAL_PCH_UART=m
+CONFIG_SERIAL_XILINX_PS_UART=m
 CONFIG_PRINTER=m
 # CONFIG_LP_CONSOLE is not set
 CONFIG_PPDEV=m
@@ -2150,7 +2440,6 @@ CONFIG_MWAVE=m
 CONFIG_SCx200_GPIO=m
 CONFIG_PC8736x_GPIO=m
 CONFIG_NSC_GPIO=m
-CONFIG_CS5535_GPIO=m
 # CONFIG_RAW_DRIVER is not set
 CONFIG_HPET=y
 CONFIG_HPET_MMAP=y
@@ -2158,11 +2447,21 @@ CONFIG_HANGCHECK_TIMER=m
 # CONFIG_TCG_TPM is not set
 # CONFIG_TELCLOCK is not set
 CONFIG_DEVPORT=y
+# CONFIG_RAMOOPS is not set
 CONFIG_I2C=m
 CONFIG_I2C_BOARDINFO=y
 CONFIG_I2C_COMPAT=y
 CONFIG_I2C_CHARDEV=m
+CONFIG_I2C_MUX=m
+
+#
+# Multiplexer I2C Chip support
+#
+CONFIG_I2C_MUX_GPIO=m
+CONFIG_I2C_MUX_PCA9541=m
+CONFIG_I2C_MUX_PCA954x=m
 CONFIG_I2C_HELPER_AUTO=y
+CONFIG_I2C_SMBUS=m
 CONFIG_I2C_ALGOBIT=m
 CONFIG_I2C_ALGOPCA=m
 
@@ -2198,40 +2497,36 @@ CONFIG_I2C_SCMI=m
 #
 # I2C system bus drivers (mostly embedded / system-on-chip)
 #
+CONFIG_I2C_DESIGNWARE_CORE=m
+CONFIG_I2C_DESIGNWARE_PCI=m
+CONFIG_I2C_GPIO=m
+CONFIG_I2C_INTEL_MID=m
 CONFIG_I2C_OCORES=m
+CONFIG_I2C_PCA_PLATFORM=m
+# CONFIG_I2C_PXA_PCI is not set
 CONFIG_I2C_SIMTEC=m
+CONFIG_I2C_XILINX=m
+CONFIG_I2C_EG20T=m
 
 #
 # External I2C/SMBus adapter drivers
 #
+CONFIG_I2C_DIOLAN_U2C=m
 CONFIG_I2C_PARPORT=m
 CONFIG_I2C_PARPORT_LIGHT=m
-# CONFIG_I2C_TAOS_EVM is not set
+CONFIG_I2C_TAOS_EVM=m
 CONFIG_I2C_TINY_USB=m
 
-#
-# Graphics adapter I2C/DDC channel drivers
-#
-CONFIG_I2C_VOODOO3=m
-
 #
 # Other I2C/SMBus bus drivers
 #
 CONFIG_I2C_PCA_ISA=m
-CONFIG_I2C_PCA_PLATFORM=m
 CONFIG_I2C_STUB=m
 # CONFIG_SCx200_I2C is not set
 CONFIG_SCx200_ACB=m
-
-#
-# Miscellaneous I2C Chip support
-#
-CONFIG_DS1682=m
-CONFIG_SENSORS_TSL2550=m
 # CONFIG_I2C_DEBUG_CORE is not set
 # CONFIG_I2C_DEBUG_ALGO is not set
 # CONFIG_I2C_DEBUG_BUS is not set
-# CONFIG_I2C_DEBUG_CHIP is not set
 # CONFIG_SPI is not set
 
 #
@@ -2239,8 +2534,73 @@ CONFIG_SENSORS_TSL2550=m
 #
 CONFIG_PPS=m
 # CONFIG_PPS_DEBUG is not set
+
+#
+# PPS clients support
+#
+# CONFIG_PPS_CLIENT_KTIMER is not set
+# CONFIG_PPS_CLIENT_LDISC is not set
+# CONFIG_PPS_CLIENT_PARPORT is not set
+# CONFIG_PPS_CLIENT_GPIO is not set
+
+#
+# PPS generators support
+#
+
+#
+# PTP clock support
+#
+CONFIG_PTP_1588_CLOCK=m
+CONFIG_DP83640_PHY=m
 CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
-# CONFIG_GPIOLIB is not set
+CONFIG_GPIOLIB=y
+# CONFIG_DEBUG_GPIO is not set
+CONFIG_GPIO_SYSFS=y
+CONFIG_GPIO_GENERIC=m
+CONFIG_GPIO_MAX730X=m
+
+#
+# Memory mapped GPIO drivers:
+#
+CONFIG_GPIO_GENERIC_PLATFORM=m
+CONFIG_GPIO_IT8761E=m
+CONFIG_GPIO_SCH=m
+CONFIG_GPIO_VX855=m
+
+#
+# I2C GPIO expanders:
+#
+CONFIG_GPIO_MAX7300=m
+CONFIG_GPIO_MAX732X=m
+CONFIG_GPIO_PCA953X=m
+CONFIG_GPIO_PCF857X=m
+CONFIG_GPIO_ADP5588=m
+
+#
+# PCI GPIO expanders:
+#
+CONFIG_GPIO_CS5535=m
+# CONFIG_GPIO_BT8XX is not set
+# CONFIG_GPIO_LANGWELL is not set
+CONFIG_GPIO_PCH=m
+CONFIG_GPIO_ML_IOH=m
+# CONFIG_GPIO_TIMBERDALE is not set
+CONFIG_GPIO_RDC321X=m
+
+#
+# SPI GPIO expanders:
+#
+CONFIG_GPIO_MCP23S08=m
+
+#
+# AC97 GPIO expanders:
+#
+# CONFIG_GPIO_UCB1400 is not set
+
+#
+# MODULbus GPIO expanders:
+#
+CONFIG_GPIO_JANZ_TTL=m
 CONFIG_W1=m
 CONFIG_W1_CON=y
 
@@ -2250,27 +2610,37 @@ CONFIG_W1_CON=y
 CONFIG_W1_MASTER_MATROX=m
 CONFIG_W1_MASTER_DS2490=m
 CONFIG_W1_MASTER_DS2482=m
+CONFIG_W1_MASTER_DS1WM=m
+CONFIG_W1_MASTER_GPIO=m
 
 #
 # 1-wire Slaves
 #
 CONFIG_W1_SLAVE_THERM=m
 CONFIG_W1_SLAVE_SMEM=m
+CONFIG_W1_SLAVE_DS2408=m
+CONFIG_W1_SLAVE_DS2423=m
 CONFIG_W1_SLAVE_DS2431=m
 CONFIG_W1_SLAVE_DS2433=m
 CONFIG_W1_SLAVE_DS2433_CRC=y
 CONFIG_W1_SLAVE_DS2760=m
+CONFIG_W1_SLAVE_DS2780=m
 CONFIG_W1_SLAVE_BQ27000=m
 CONFIG_POWER_SUPPLY=y
 # CONFIG_POWER_SUPPLY_DEBUG is not set
 # CONFIG_PDA_POWER is not set
-CONFIG_WM831X_POWER=m
-CONFIG_WM8350_POWER=m
+# CONFIG_TEST_POWER is not set
 # CONFIG_BATTERY_DS2760 is not set
-CONFIG_BATTERY_DS2782=m
-CONFIG_BATTERY_BQ27x00=m
-CONFIG_BATTERY_MAX17040=m
-CONFIG_CHARGER_PCF50633=m
+# CONFIG_BATTERY_DS2780 is not set
+# CONFIG_BATTERY_DS2782 is not set
+# CONFIG_BATTERY_BQ20Z75 is not set
+# CONFIG_BATTERY_BQ27x00 is not set
+# CONFIG_BATTERY_MAX17040 is not set
+# CONFIG_BATTERY_MAX17042 is not set
+# CONFIG_CHARGER_PCF50633 is not set
+# CONFIG_CHARGER_ISP1704 is not set
+# CONFIG_CHARGER_MAX8903 is not set
+# CONFIG_CHARGER_GPIO is not set
 CONFIG_HWMON=m
 CONFIG_HWMON_VID=m
 # CONFIG_HWMON_DEBUG_CHIP is not set
@@ -2288,13 +2658,17 @@ CONFIG_SENSORS_ADM1026=m
 CONFIG_SENSORS_ADM1029=m
 CONFIG_SENSORS_ADM1031=m
 CONFIG_SENSORS_ADM9240=m
+CONFIG_SENSORS_ADT7411=m
 CONFIG_SENSORS_ADT7462=m
 CONFIG_SENSORS_ADT7470=m
-CONFIG_SENSORS_ADT7473=m
 CONFIG_SENSORS_ADT7475=m
+CONFIG_SENSORS_ASC7621=m
 CONFIG_SENSORS_K8TEMP=m
+CONFIG_SENSORS_K10TEMP=m
+CONFIG_SENSORS_FAM15H_POWER=m
 CONFIG_SENSORS_ASB100=m
 CONFIG_SENSORS_ATXP1=m
+CONFIG_SENSORS_DS620=m
 CONFIG_SENSORS_DS1621=m
 CONFIG_SENSORS_I5K_AMB=m
 CONFIG_SENSORS_F71805F=m
@@ -2304,11 +2678,15 @@ CONFIG_SENSORS_FSCHMD=m
 CONFIG_SENSORS_G760A=m
 CONFIG_SENSORS_GL518SM=m
 CONFIG_SENSORS_GL520SM=m
+CONFIG_SENSORS_GPIO_FAN=m
 CONFIG_SENSORS_CORETEMP=m
 CONFIG_SENSORS_IBMAEM=m
 CONFIG_SENSORS_IBMPEX=m
 CONFIG_SENSORS_IT87=m
+CONFIG_SENSORS_JC42=m
+CONFIG_SENSORS_LINEAGE=m
 CONFIG_SENSORS_LM63=m
+CONFIG_SENSORS_LM73=m
 CONFIG_SENSORS_LM75=m
 CONFIG_SENSORS_LM77=m
 CONFIG_SENSORS_LM78=m
@@ -2319,23 +2697,55 @@ CONFIG_SENSORS_LM87=m
 CONFIG_SENSORS_LM90=m
 CONFIG_SENSORS_LM92=m
 CONFIG_SENSORS_LM93=m
+CONFIG_SENSORS_LTC4151=m
 CONFIG_SENSORS_LTC4215=m
 CONFIG_SENSORS_LTC4245=m
+CONFIG_SENSORS_LTC4261=m
 CONFIG_SENSORS_LM95241=m
+CONFIG_SENSORS_LM95245=m
+CONFIG_SENSORS_MAX16065=m
 CONFIG_SENSORS_MAX1619=m
+CONFIG_SENSORS_MAX1668=m
+CONFIG_SENSORS_MAX6639=m
+CONFIG_SENSORS_MAX6642=m
 CONFIG_SENSORS_MAX6650=m
+CONFIG_SENSORS_NTC_THERMISTOR=m
 CONFIG_SENSORS_PC87360=m
 CONFIG_SENSORS_PC87427=m
 CONFIG_SENSORS_PCF8591=m
+CONFIG_PMBUS=m
+CONFIG_SENSORS_PMBUS=m
+CONFIG_SENSORS_ADM1275=m
+CONFIG_SENSORS_LM25066=m
+CONFIG_SENSORS_LTC2978=m
+CONFIG_SENSORS_MAX16064=m
+CONFIG_SENSORS_MAX34440=m
+CONFIG_SENSORS_MAX8688=m
+CONFIG_SENSORS_UCD9000=m
+CONFIG_SENSORS_UCD9200=m
+CONFIG_SENSORS_ZL6100=m
+CONFIG_SENSORS_SHT15=m
+CONFIG_SENSORS_SHT21=m
 CONFIG_SENSORS_SIS5595=m
+CONFIG_SENSORS_SMM665=m
 CONFIG_SENSORS_DME1737=m
+CONFIG_SENSORS_EMC1403=m
+CONFIG_SENSORS_EMC2103=m
+CONFIG_SENSORS_EMC6W201=m
 CONFIG_SENSORS_SMSC47M1=m
 CONFIG_SENSORS_SMSC47M192=m
 CONFIG_SENSORS_SMSC47B397=m
+CONFIG_SENSORS_SCH56XX_COMMON=m
+CONFIG_SENSORS_SCH5627=m
+CONFIG_SENSORS_SCH5636=m
+CONFIG_SENSORS_ADS1015=m
 CONFIG_SENSORS_ADS7828=m
+CONFIG_SENSORS_AMC6821=m
 CONFIG_SENSORS_THMC50=m
+CONFIG_SENSORS_TMP102=m
 CONFIG_SENSORS_TMP401=m
 CONFIG_SENSORS_TMP421=m
+CONFIG_SENSORS_VIA_CPUTEMP=m
 CONFIG_SENSORS_VIA686A=m
 CONFIG_SENSORS_VT1211=m
 CONFIG_SENSORS_VT8231=m
@@ -2343,34 +2753,35 @@ CONFIG_SENSORS_W83781D=m
 CONFIG_SENSORS_W83791D=m
 CONFIG_SENSORS_W83792D=m
 CONFIG_SENSORS_W83793=m
+CONFIG_SENSORS_W83795=m
+# CONFIG_SENSORS_W83795_FANCTRL is not set
 CONFIG_SENSORS_W83L785TS=m
 CONFIG_SENSORS_W83L786NG=m
 CONFIG_SENSORS_W83627HF=m
 CONFIG_SENSORS_W83627EHF=m
-CONFIG_SENSORS_WM831X=m
-CONFIG_SENSORS_WM8350=m
-CONFIG_SENSORS_HDAPS=m
 CONFIG_SENSORS_APPLESMC=m
 
 #
 # ACPI drivers
 #
+CONFIG_SENSORS_ACPI_POWER=m
 CONFIG_SENSORS_ATK0110=m
-CONFIG_SENSORS_LIS3LV02D=m
 CONFIG_THERMAL=y
 CONFIG_WATCHDOG=y
+CONFIG_WATCHDOG_CORE=y
 # CONFIG_WATCHDOG_NOWAYOUT is not set
 
 #
 # Watchdog Device Drivers
 #
 CONFIG_SOFT_WATCHDOG=m
-CONFIG_WM831X_WATCHDOG=m
-CONFIG_WM8350_WATCHDOG=m
 CONFIG_ACQUIRE_WDT=m
 CONFIG_ADVANTECH_WDT=m
 CONFIG_ALIM1535_WDT=m
 CONFIG_ALIM7101_WDT=m
+CONFIG_F71808E_WDT=m
+CONFIG_SP5100_TCO=m
+CONFIG_GEODE_WDT=m
 CONFIG_SC520_WDT=m
 CONFIG_SBC_FITPC2_WATCHDOG=m
 CONFIG_EUROTECH_WDT=m
@@ -2383,9 +2794,11 @@ CONFIG_ITCO_WDT=m
 CONFIG_IT8712F_WDT=m
 CONFIG_IT87_WDT=m
 CONFIG_HP_WATCHDOG=m
+CONFIG_HPWDT_NMI_DECODING=y
 CONFIG_SC1200_WDT=m
 CONFIG_SCx200_WDT=m
 CONFIG_PC87413_WDT=m
+CONFIG_NV_TCO=m
 CONFIG_60XX_WDT=m
 CONFIG_SBC8360_WDT=m
 CONFIG_SBC7240_WDT=m
@@ -2434,74 +2847,136 @@ CONFIG_SSB_SDIOHOST=y
 # CONFIG_SSB_DEBUG is not set
 CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
 CONFIG_SSB_DRIVER_PCICORE=y
+CONFIG_BCMA_POSSIBLE=y
+
+#
+# Broadcom specific AMBA
+#
+CONFIG_BCMA=m
+CONFIG_BCMA_HOST_PCI_POSSIBLE=y
+# CONFIG_BCMA_HOST_PCI is not set
+# CONFIG_BCMA_DEBUG is not set
 
 #
 # Multifunction device drivers
 #
 CONFIG_MFD_CORE=m
 CONFIG_MFD_SM501=m
+# CONFIG_MFD_SM501_GPIO is not set
 CONFIG_HTC_PASIC3=m
+CONFIG_UCB1400_CORE=m
+CONFIG_TPS6105X=m
+CONFIG_TPS65010=m
+CONFIG_TPS6507X=m
 # CONFIG_MFD_TMIO is not set
 CONFIG_MFD_WM8400=m
-CONFIG_MFD_WM831X=m
-CONFIG_MFD_WM8350=m
-CONFIG_MFD_WM8350_I2C=m
 CONFIG_MFD_PCF50633=m
 CONFIG_PCF50633_ADC=m
 CONFIG_PCF50633_GPIO=m
-CONFIG_AB3100_CORE=m
-CONFIG_AB3100_OTP=m
-# CONFIG_REGULATOR is not set
+# CONFIG_ABX500_CORE is not set
+CONFIG_MFD_CS5535=m
+CONFIG_MFD_TIMBERDALE=m
+CONFIG_LPC_SCH=m
+CONFIG_MFD_RDC321X=m
+CONFIG_MFD_JANZ_CMODIO=m
+CONFIG_MFD_VX855=m
+CONFIG_MFD_WL1273_CORE=m
+CONFIG_REGULATOR=y
+# CONFIG_REGULATOR_DEBUG is not set
+# CONFIG_REGULATOR_DUMMY is not set
+CONFIG_REGULATOR_FIXED_VOLTAGE=m
+# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
+# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
+CONFIG_REGULATOR_GPIO=m
+# CONFIG_REGULATOR_BQ24022 is not set
+# CONFIG_REGULATOR_MAX1586 is not set
+# CONFIG_REGULATOR_MAX8649 is not set
+# CONFIG_REGULATOR_MAX8660 is not set
+# CONFIG_REGULATOR_MAX8952 is not set
+# CONFIG_REGULATOR_WM8400 is not set
+# CONFIG_REGULATOR_PCF50633 is not set
+# CONFIG_REGULATOR_LP3971 is not set
+# CONFIG_REGULATOR_LP3972 is not set
+# CONFIG_REGULATOR_TPS6105X is not set
+# CONFIG_REGULATOR_TPS65023 is not set
+# CONFIG_REGULATOR_TPS6507X is not set
+# CONFIG_REGULATOR_ISL6271A is not set
+# CONFIG_REGULATOR_AD5398 is not set
 CONFIG_MEDIA_SUPPORT=m
 
 #
 # Multimedia core support
 #
+CONFIG_MEDIA_CONTROLLER=y
 CONFIG_VIDEO_DEV=m
 CONFIG_VIDEO_V4L2_COMMON=m
-# CONFIG_VIDEO_ALLOW_V4L1 is not set
-CONFIG_VIDEO_V4L1_COMPAT=y
+CONFIG_VIDEO_V4L2_SUBDEV_API=y
 CONFIG_DVB_CORE=m
+CONFIG_DVB_NET=y
 CONFIG_VIDEO_MEDIA=m
 
 #
 # Multimedia drivers
 #
-# CONFIG_MEDIA_ATTACH is not set
+CONFIG_RC_CORE=m
+CONFIG_LIRC=m
+CONFIG_RC_MAP=m
+# CONFIG_IR_NEC_DECODER is not set
+# CONFIG_IR_RC5_DECODER is not set
+# CONFIG_IR_RC6_DECODER is not set
+# CONFIG_IR_JVC_DECODER is not set
+# CONFIG_IR_SONY_DECODER is not set
+# CONFIG_IR_RC5_SZ_DECODER is not set
+# CONFIG_IR_MCE_KBD_DECODER is not set
+# CONFIG_IR_LIRC_CODEC is not set
+# CONFIG_RC_ATI_REMOTE is not set
+# CONFIG_IR_ENE is not set
+# CONFIG_IR_IMON is not set
+# CONFIG_IR_MCEUSB is not set
+# CONFIG_IR_ITE_CIR is not set
+# CONFIG_IR_FINTEK is not set
+# CONFIG_IR_NUVOTON is not set
+# CONFIG_IR_REDRAT3 is not set
+# CONFIG_IR_STREAMZAP is not set
+# CONFIG_IR_WINBOND_CIR is not set
+# CONFIG_RC_LOOPBACK is not set
+CONFIG_MEDIA_ATTACH=y
 CONFIG_MEDIA_TUNER=m
 # CONFIG_MEDIA_TUNER_CUSTOMISE is not set
 CONFIG_MEDIA_TUNER_SIMPLE=m
 CONFIG_MEDIA_TUNER_TDA8290=m
+CONFIG_MEDIA_TUNER_TDA827X=m
+CONFIG_MEDIA_TUNER_TDA18271=m
 CONFIG_MEDIA_TUNER_TDA9887=m
 CONFIG_MEDIA_TUNER_TEA5761=m
 CONFIG_MEDIA_TUNER_TEA5767=m
 CONFIG_MEDIA_TUNER_MT20XX=m
 CONFIG_MEDIA_TUNER_XC2028=m
 CONFIG_MEDIA_TUNER_XC5000=m
+CONFIG_MEDIA_TUNER_XC4000=m
 CONFIG_MEDIA_TUNER_MC44S803=m
 CONFIG_VIDEO_V4L2=m
 CONFIG_VIDEO_CAPTURE_DRIVERS=y
 # CONFIG_VIDEO_ADV_DEBUG is not set
 # CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
 # CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set
+CONFIG_VIDEO_IR_I2C=m
 
 #
-# Encoders/decoders and other helper chips
+# Encoders, decoders, sensors and other helper chips
 #
 
 #
-# Audio decoders
+# Audio decoders, processors and mixers
 #
 # CONFIG_VIDEO_TVAUDIO is not set
 # CONFIG_VIDEO_TDA7432 is not set
 # CONFIG_VIDEO_TDA9840 is not set
-# CONFIG_VIDEO_TDA9875 is not set
 # CONFIG_VIDEO_TEA6415C is not set
 # CONFIG_VIDEO_TEA6420 is not set
 # CONFIG_VIDEO_MSP3400 is not set
 # CONFIG_VIDEO_CS5345 is not set
 # CONFIG_VIDEO_CS53L32A is not set
-# CONFIG_VIDEO_M52790 is not set
 # CONFIG_VIDEO_TLV320AIC23B is not set
 # CONFIG_VIDEO_WM8775 is not set
 # CONFIG_VIDEO_WM8739 is not set
@@ -2520,19 +2995,18 @@ CONFIG_VIDEO_CAPTURE_DRIVERS=y
 # CONFIG_VIDEO_BT856 is not set
 # CONFIG_VIDEO_BT866 is not set
 # CONFIG_VIDEO_KS0127 is not set
-# CONFIG_VIDEO_OV7670 is not set
-# CONFIG_VIDEO_MT9V011 is not set
-# CONFIG_VIDEO_TCM825X is not set
 # CONFIG_VIDEO_SAA7110 is not set
 # CONFIG_VIDEO_SAA711X is not set
-# CONFIG_VIDEO_SAA717X is not set
+# CONFIG_VIDEO_SAA7191 is not set
 # CONFIG_VIDEO_TVP514X is not set
 # CONFIG_VIDEO_TVP5150 is not set
+# CONFIG_VIDEO_TVP7002 is not set
 # CONFIG_VIDEO_VPX3220 is not set
 
 #
 # Video and audio decoders
 #
+# CONFIG_VIDEO_SAA717X is not set
 # CONFIG_VIDEO_CX25840 is not set
 
 #
@@ -2547,29 +3021,62 @@ CONFIG_VIDEO_CAPTURE_DRIVERS=y
 # CONFIG_VIDEO_SAA7185 is not set
 # CONFIG_VIDEO_ADV7170 is not set
 # CONFIG_VIDEO_ADV7175 is not set
-# CONFIG_VIDEO_THS7303 is not set
 # CONFIG_VIDEO_ADV7343 is not set
+# CONFIG_VIDEO_AK881X is not set
+
+#
+# Camera sensor devices
+#
+# CONFIG_VIDEO_OV7670 is not set
+# CONFIG_VIDEO_MT9P031 is not set
+# CONFIG_VIDEO_MT9T001 is not set
+# CONFIG_VIDEO_MT9V011 is not set
+# CONFIG_VIDEO_MT9V032 is not set
+# CONFIG_VIDEO_TCM825X is not set
+# CONFIG_VIDEO_SR030PC30 is not set
+# CONFIG_VIDEO_NOON010PC30 is not set
+# CONFIG_VIDEO_M5MOLS is not set
+# CONFIG_VIDEO_S5K6AA is not set
+
+#
+# Flash devices
+#
+# CONFIG_VIDEO_ADP1653 is not set
 
 #
 # Video improvement chips
 #
 # CONFIG_VIDEO_UPD64031A is not set
 # CONFIG_VIDEO_UPD64083 is not set
+
+#
+# Miscelaneous helper chips
+#
+# CONFIG_VIDEO_THS7303 is not set
+# CONFIG_VIDEO_M52790 is not set
 # CONFIG_VIDEO_VIVI is not set
 # CONFIG_VIDEO_BT848 is not set
-# CONFIG_VIDEO_SAA5246A is not set
-# CONFIG_VIDEO_SAA5249 is not set
+# CONFIG_VIDEO_PMS is not set
+# CONFIG_VIDEO_BWQCAM is not set
+# CONFIG_VIDEO_CQCAM is not set
+# CONFIG_VIDEO_W9966 is not set
+# CONFIG_VIDEO_CPIA2 is not set
 # CONFIG_VIDEO_ZORAN is not set
+# CONFIG_VIDEO_MEYE is not set
 # CONFIG_VIDEO_SAA7134 is not set
+# CONFIG_VIDEO_MXB is not set
 # CONFIG_VIDEO_HEXIUM_ORION is not set
 # CONFIG_VIDEO_HEXIUM_GEMINI is not set
+# CONFIG_VIDEO_TIMBERDALE is not set
 # CONFIG_VIDEO_CX88 is not set
 # CONFIG_VIDEO_CX23885 is not set
+# CONFIG_VIDEO_CX25821 is not set
 # CONFIG_VIDEO_AU0828 is not set
 # CONFIG_VIDEO_IVTV is not set
 # CONFIG_VIDEO_CX18 is not set
 # CONFIG_VIDEO_SAA7164 is not set
 # CONFIG_VIDEO_CAFE_CCIC is not set
+# CONFIG_VIDEO_VIA_CAMERA is not set
 # CONFIG_SOC_CAMERA is not set
 CONFIG_V4L_USB_DRIVERS=y
 # CONFIG_USB_VIDEO_CLASS is not set
@@ -2578,24 +3085,25 @@ CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
 # CONFIG_VIDEO_PVRUSB2 is not set
 # CONFIG_VIDEO_HDPVR is not set
 # CONFIG_VIDEO_EM28XX is not set
+# CONFIG_VIDEO_TLG2300 is not set
 # CONFIG_VIDEO_CX231XX is not set
+# CONFIG_VIDEO_TM6000 is not set
 # CONFIG_VIDEO_USBVISION is not set
 # CONFIG_USB_ET61X251 is not set
 # CONFIG_USB_SN9C102 is not set
-# CONFIG_USB_ZC0301 is not set
-# CONFIG_USB_PWC_INPUT_EVDEV is not set
+# CONFIG_USB_PWC is not set
 # CONFIG_USB_ZR364XX is not set
 # CONFIG_USB_STKWEBCAM is not set
 # CONFIG_USB_S2255 is not set
+# CONFIG_V4L_MEM2MEM_DRIVERS is not set
 CONFIG_RADIO_ADAPTERS=y
 # CONFIG_RADIO_CADET is not set
 # CONFIG_RADIO_RTRACK is not set
 # CONFIG_RADIO_RTRACK2 is not set
 # CONFIG_RADIO_AZTECH is not set
 # CONFIG_RADIO_GEMTEK is not set
-# CONFIG_RADIO_GEMTEK_PCI is not set
 # CONFIG_RADIO_MAXIRADIO is not set
-# CONFIG_RADIO_MAESTRO is not set
+# CONFIG_RADIO_MIROPCM20 is not set
 # CONFIG_RADIO_SF16FMI is not set
 # CONFIG_RADIO_SF16FMR2 is not set
 # CONFIG_RADIO_TERRATEC is not set
@@ -2608,6 +3116,15 @@ CONFIG_RADIO_ADAPTERS=y
 # CONFIG_RADIO_SI470X is not set
 # CONFIG_USB_MR800 is not set
 # CONFIG_RADIO_TEA5764 is not set
+# CONFIG_RADIO_SAA7706H is not set
+# CONFIG_RADIO_TEF6862 is not set
+# CONFIG_RADIO_TIMBERDALE is not set
+# CONFIG_RADIO_WL1273 is not set
+
+#
+# Texas Instruments WL128x FM driver (ST based)
+#
+# CONFIG_RADIO_WL128X is not set
 CONFIG_DVB_MAX_ADAPTERS=8
 # CONFIG_DVB_DYNAMIC_MINORS is not set
 CONFIG_DVB_CAPTURE_DRIVERS=y
@@ -2646,17 +3163,76 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
 #
 # CONFIG_DVB_DM1105 is not set
 
+#
+# Supported FireWire (IEEE 1394) Adapters
+#
+# CONFIG_DVB_FIREDTV is not set
+
 #
 # Supported Earthsoft PT1 Adapters
 #
 # CONFIG_DVB_PT1 is not set
 
+#
+# Supported Mantis Adapters
+#
+# CONFIG_MANTIS_CORE is not set
+
+#
+# Supported nGene Adapters
+#
+# CONFIG_DVB_NGENE is not set
+
+#
+# Supported ddbridge ('Octopus') Adapters
+#
+# CONFIG_DVB_DDBRIDGE is not set
+
 #
 # Supported DVB Frontends
 #
 # CONFIG_DVB_FE_CUSTOMISE is not set
-CONFIG_DAB=y
-# CONFIG_USB_DABUSB is not set
+
+#
+# Multistandard (satellite) frontends
+#
+
+#
+# Multistandard (cable + terrestrial) frontends
+#
+
+#
+# DVB-S (satellite) frontends
+#
+
+#
+# DVB-T (terrestrial) frontends
+#
+
+#
+# DVB-C (cable) frontends
+#
+
+#
+# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
+#
+
+#
+# ISDB-T (terrestrial) frontends
+#
+
+#
+# Digital terrestrial only tuners/PLL
+#
+
+#
+# SEC control devices for DVB-S
+#
+
+#
+# Tools to develop new frontends
+#
+# CONFIG_DVB_DUMMY_FE is not set
 
 #
 # Graphics support
@@ -2673,20 +3249,24 @@ CONFIG_AGP_SWORKS=m
 CONFIG_AGP_VIA=m
 CONFIG_AGP_EFFICEON=m
 CONFIG_VGA_ARB=y
+CONFIG_VGA_ARB_MAX_GPUS=16
+# CONFIG_VGA_SWITCHEROO is not set
 CONFIG_DRM=m
 CONFIG_DRM_KMS_HELPER=m
 CONFIG_DRM_TTM=m
 CONFIG_DRM_TDFX=m
 CONFIG_DRM_R128=m
 CONFIG_DRM_RADEON=m
+CONFIG_DRM_RADEON_KMS=y
 CONFIG_DRM_I810=m
-CONFIG_DRM_I830=m
 CONFIG_DRM_I915=m
 CONFIG_DRM_I915_KMS=y
 CONFIG_DRM_MGA=m
 CONFIG_DRM_SIS=m
 CONFIG_DRM_VIA=m
 CONFIG_DRM_SAVAGE=m
+CONFIG_DRM_VMWGFX=m
+CONFIG_STUB_POULSBO=m
 CONFIG_VGASTATE=m
 CONFIG_VIDEO_OUTPUT_CONTROL=m
 CONFIG_FB=y
@@ -2702,6 +3282,7 @@ CONFIG_FB_SYS_COPYAREA=m
 CONFIG_FB_SYS_IMAGEBLIT=m
 # CONFIG_FB_FOREIGN_ENDIAN is not set
 CONFIG_FB_SYS_FOPS=m
+# CONFIG_FB_WMT_GE_ROPS is not set
 CONFIG_FB_DEFERRED_IO=y
 CONFIG_FB_SVGALIB=m
 # CONFIG_FB_MACMODES is not set
@@ -2716,6 +3297,7 @@ CONFIG_FB_CIRRUS=m
 CONFIG_FB_PM2=m
 CONFIG_FB_PM2_FIFO_DISCONNECT=y
 CONFIG_FB_CYBER2000=m
+CONFIG_FB_CYBER2000_DDC=y
 # CONFIG_FB_ARC is not set
 CONFIG_FB_ASILIANT=y
 # CONFIG_FB_IMSTT is not set
@@ -2756,6 +3338,7 @@ CONFIG_FB_ATY_CT=y
 CONFIG_FB_ATY_GX=y
 CONFIG_FB_ATY_BACKLIGHT=y
 CONFIG_FB_S3=m
+CONFIG_FB_S3_DDC=y
 CONFIG_FB_SAVAGE=m
 CONFIG_FB_SAVAGE_I2C=y
 CONFIG_FB_SAVAGE_ACCEL=y
@@ -2763,6 +3346,8 @@ CONFIG_FB_SIS=m
 CONFIG_FB_SIS_300=y
 CONFIG_FB_SIS_315=y
 CONFIG_FB_VIA=m
+# CONFIG_FB_VIA_DIRECT_PROCFS is not set
+# CONFIG_FB_VIA_X_COMPATIBILITY is not set
 CONFIG_FB_NEOMAGIC=m
 CONFIG_FB_KYRO=m
 CONFIG_FB_3DFX=m
@@ -2781,21 +3366,24 @@ CONFIG_FB_GEODE_GX1=m
 CONFIG_FB_TMIO=m
 CONFIG_FB_TMIO_ACCELL=y
 CONFIG_FB_SM501=m
+CONFIG_FB_SMSCUFX=m
+# CONFIG_FB_UDL is not set
 # CONFIG_FB_VIRTUAL is not set
 CONFIG_FB_METRONOME=m
 # CONFIG_FB_MB862XX is not set
 # CONFIG_FB_BROADSHEET is not set
 CONFIG_BACKLIGHT_LCD_SUPPORT=y
 CONFIG_LCD_CLASS_DEVICE=m
-# CONFIG_LCD_ILI9320 is not set
 CONFIG_LCD_PLATFORM=m
 CONFIG_BACKLIGHT_CLASS_DEVICE=y
 CONFIG_BACKLIGHT_GENERIC=m
 CONFIG_BACKLIGHT_PROGEAR=m
 CONFIG_BACKLIGHT_CARILLO_RANCH=m
-CONFIG_BACKLIGHT_MBP_NVIDIA=m
+CONFIG_BACKLIGHT_APPLE=m
 CONFIG_BACKLIGHT_SAHARA=m
-CONFIG_BACKLIGHT_WM831X=m
+CONFIG_BACKLIGHT_ADP8860=m
+CONFIG_BACKLIGHT_ADP8870=m
+CONFIG_BACKLIGHT_PCF50633=m
 
 #
 # Display device support
@@ -2814,7 +3402,7 @@ CONFIG_VGA_CONSOLE=y
 # CONFIG_MDA_CONSOLE is not set
 CONFIG_DUMMY_CONSOLE=y
 CONFIG_FRAMEBUFFER_CONSOLE=y
-# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
+CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
 # CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
 # CONFIG_FONTS is not set
 CONFIG_FONT_8x8=y
@@ -2829,6 +3417,9 @@ CONFIG_SOUND_OSS_CORE_PRECLAIM=y
 CONFIG_SND=m
 CONFIG_SND_TIMER=m
 CONFIG_SND_PCM=m
+CONFIG_SND_HWDEP=m
+CONFIG_SND_RAWMIDI=m
+CONFIG_SND_JACK=y
 CONFIG_SND_SEQUENCER=m
 CONFIG_SND_SEQ_DUMMY=m
 CONFIG_SND_OSSEMUL=y
@@ -2836,137 +3427,191 @@ CONFIG_SND_MIXER_OSS=m
 CONFIG_SND_PCM_OSS=m
 CONFIG_SND_PCM_OSS_PLUGINS=y
 CONFIG_SND_SEQUENCER_OSS=y
-# CONFIG_SND_HRTIMER is not set
-# CONFIG_SND_DYNAMIC_MINORS is not set
+CONFIG_SND_HRTIMER=m
+CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
+CONFIG_SND_DYNAMIC_MINORS=y
 # CONFIG_SND_SUPPORT_OLD_API is not set
 CONFIG_SND_VERBOSE_PROCFS=y
 # CONFIG_SND_VERBOSE_PRINTK is not set
 # CONFIG_SND_DEBUG is not set
+CONFIG_SND_VMASTER=y
 CONFIG_SND_DMA_SGBUF=y
-# CONFIG_SND_RAWMIDI_SEQ is not set
-# CONFIG_SND_OPL3_LIB_SEQ is not set
-# CONFIG_SND_OPL4_LIB_SEQ is not set
-# CONFIG_SND_SBAWE_SEQ is not set
-# CONFIG_SND_EMU10K1_SEQ is not set
+CONFIG_SND_RAWMIDI_SEQ=m
+CONFIG_SND_OPL3_LIB_SEQ=m
+CONFIG_SND_OPL4_LIB_SEQ=m
+CONFIG_SND_SBAWE_SEQ=m
+CONFIG_SND_EMU10K1_SEQ=m
+CONFIG_SND_MPU401_UART=m
+CONFIG_SND_OPL3_LIB=m
+CONFIG_SND_OPL4_LIB=m
+CONFIG_SND_VX_LIB=m
+CONFIG_SND_AC97_CODEC=m
 CONFIG_SND_DRIVERS=y
 # CONFIG_SND_PCSP is not set
 CONFIG_SND_DUMMY=m
-# CONFIG_SND_VIRMIDI is not set
-# CONFIG_SND_MTPAV is not set
-# CONFIG_SND_MTS64 is not set
-# CONFIG_SND_SERIAL_U16550 is not set
-# CONFIG_SND_MPU401 is not set
-# CONFIG_SND_PORTMAN2X4 is not set
+CONFIG_SND_ALOOP=m
+CONFIG_SND_VIRMIDI=m
+CONFIG_SND_MTPAV=m
+CONFIG_SND_MTS64=m
+CONFIG_SND_SERIAL_U16550=m
+CONFIG_SND_MPU401=m
+CONFIG_SND_PORTMAN2X4=m
+CONFIG_SND_AC97_POWER_SAVE=y
+CONFIG_SND_AC97_POWER_SAVE_DEFAULT=60
+CONFIG_SND_WSS_LIB=m
+CONFIG_SND_SB_COMMON=m
+CONFIG_SND_SB8_DSP=m
+CONFIG_SND_SB16_DSP=m
 CONFIG_SND_ISA=y
-# CONFIG_SND_ADLIB is not set
-# CONFIG_SND_AD1816A is not set
-# CONFIG_SND_AD1848 is not set
-# CONFIG_SND_ALS100 is not set
-# CONFIG_SND_AZT2320 is not set
-# CONFIG_SND_CMI8330 is not set
-# CONFIG_SND_CS4231 is not set
-# CONFIG_SND_CS4236 is not set
-# CONFIG_SND_DT019X is not set
-# CONFIG_SND_ES968 is not set
-# CONFIG_SND_ES1688 is not set
-# CONFIG_SND_ES18XX is not set
-# CONFIG_SND_SC6000 is not set
-# CONFIG_SND_GUSCLASSIC is not set
-# CONFIG_SND_GUSEXTREME is not set
-# CONFIG_SND_GUSMAX is not set
-# CONFIG_SND_INTERWAVE is not set
-# CONFIG_SND_INTERWAVE_STB is not set
-# CONFIG_SND_OPL3SA2 is not set
-# CONFIG_SND_OPTI92X_AD1848 is not set
-# CONFIG_SND_OPTI92X_CS4231 is not set
-# CONFIG_SND_OPTI93X is not set
-# CONFIG_SND_MIRO is not set
-# CONFIG_SND_SB8 is not set
-# CONFIG_SND_SB16 is not set
-# CONFIG_SND_SBAWE is not set
-# CONFIG_SND_SGALAXY is not set
-# CONFIG_SND_SSCAPE is not set
-# CONFIG_SND_WAVEFRONT is not set
-# CONFIG_SND_MSND_PINNACLE is not set
-# CONFIG_SND_MSND_CLASSIC is not set
+CONFIG_SND_ADLIB=m
+CONFIG_SND_AD1816A=m
+CONFIG_SND_AD1848=m
+CONFIG_SND_ALS100=m
+CONFIG_SND_AZT1605=m
+CONFIG_SND_AZT2316=m
+CONFIG_SND_AZT2320=m
+CONFIG_SND_CMI8330=m
+CONFIG_SND_CS4231=m
+CONFIG_SND_CS4236=m
+CONFIG_SND_ES1688=m
+CONFIG_SND_ES18XX=m
+CONFIG_SND_SC6000=m
+CONFIG_SND_GUSCLASSIC=m
+CONFIG_SND_GUSEXTREME=m
+CONFIG_SND_GUSMAX=m
+CONFIG_SND_INTERWAVE=m
+CONFIG_SND_INTERWAVE_STB=m
+CONFIG_SND_JAZZ16=m
+CONFIG_SND_OPL3SA2=m
+CONFIG_SND_OPTI92X_AD1848=m
+CONFIG_SND_OPTI92X_CS4231=m
+CONFIG_SND_OPTI93X=m
+CONFIG_SND_MIRO=m
+CONFIG_SND_SB8=m
+CONFIG_SND_SB16=m
+CONFIG_SND_SBAWE=m
+CONFIG_SND_SB16_CSP=y
+CONFIG_SND_SSCAPE=m
+CONFIG_SND_WAVEFRONT=m
+CONFIG_SND_MSND_PINNACLE=m
+CONFIG_SND_MSND_CLASSIC=m
+CONFIG_SND_TEA575X=m
 CONFIG_SND_PCI=y
-# CONFIG_SND_AD1889 is not set
-# CONFIG_SND_ALS300 is not set
-# CONFIG_SND_ALS4000 is not set
-# CONFIG_SND_ALI5451 is not set
-# CONFIG_SND_ATIIXP is not set
-# CONFIG_SND_ATIIXP_MODEM is not set
-# CONFIG_SND_AU8810 is not set
-# CONFIG_SND_AU8820 is not set
-# CONFIG_SND_AU8830 is not set
-# CONFIG_SND_AW2 is not set
-# CONFIG_SND_AZT3328 is not set
-# CONFIG_SND_BT87X is not set
-# CONFIG_SND_CA0106 is not set
-# CONFIG_SND_CMIPCI is not set
-# CONFIG_SND_OXYGEN is not set
-# CONFIG_SND_CS4281 is not set
-# CONFIG_SND_CS46XX is not set
-# CONFIG_SND_CS5530 is not set
-# CONFIG_SND_CS5535AUDIO is not set
-# CONFIG_SND_CTXFI is not set
-# CONFIG_SND_DARLA20 is not set
-# CONFIG_SND_GINA20 is not set
-# CONFIG_SND_LAYLA20 is not set
-# CONFIG_SND_DARLA24 is not set
-# CONFIG_SND_GINA24 is not set
-# CONFIG_SND_LAYLA24 is not set
-# CONFIG_SND_MONA is not set
-# CONFIG_SND_MIA is not set
-# CONFIG_SND_ECHO3G is not set
-# CONFIG_SND_INDIGO is not set
-# CONFIG_SND_INDIGOIO is not set
-# CONFIG_SND_INDIGODJ is not set
-# CONFIG_SND_INDIGOIOX is not set
-# CONFIG_SND_INDIGODJX is not set
-# CONFIG_SND_EMU10K1 is not set
-# CONFIG_SND_EMU10K1X is not set
-# CONFIG_SND_ENS1370 is not set
-# CONFIG_SND_ENS1371 is not set
-# CONFIG_SND_ES1938 is not set
-# CONFIG_SND_ES1968 is not set
-# CONFIG_SND_FM801 is not set
-# CONFIG_SND_HDA_INTEL is not set
-# CONFIG_SND_HDSP is not set
-# CONFIG_SND_HDSPM is not set
-# CONFIG_SND_HIFIER is not set
-# CONFIG_SND_ICE1712 is not set
-# CONFIG_SND_ICE1724 is not set
-# CONFIG_SND_INTEL8X0 is not set
-# CONFIG_SND_INTEL8X0M is not set
-# CONFIG_SND_KORG1212 is not set
-# CONFIG_SND_LX6464ES is not set
-# CONFIG_SND_MAESTRO3 is not set
-# CONFIG_SND_MIXART is not set
-# CONFIG_SND_NM256 is not set
-# CONFIG_SND_PCXHR is not set
-# CONFIG_SND_RIPTIDE is not set
-# CONFIG_SND_RME32 is not set
-# CONFIG_SND_RME96 is not set
-# CONFIG_SND_RME9652 is not set
-# CONFIG_SND_SIS7019 is not set
-# CONFIG_SND_SONICVIBES is not set
-# CONFIG_SND_TRIDENT is not set
-# CONFIG_SND_VIA82XX is not set
-# CONFIG_SND_VIA82XX_MODEM is not set
-# CONFIG_SND_VIRTUOSO is not set
-# CONFIG_SND_VX222 is not set
-# CONFIG_SND_YMFPCI is not set
+CONFIG_SND_AD1889=m
+CONFIG_SND_ALS300=m
+CONFIG_SND_ALS4000=m
+CONFIG_SND_ALI5451=m
+CONFIG_SND_ASIHPI=m
+CONFIG_SND_ATIIXP=m
+CONFIG_SND_ATIIXP_MODEM=m
+CONFIG_SND_AU8810=m
+CONFIG_SND_AU8820=m
+CONFIG_SND_AU8830=m
+CONFIG_SND_AW2=m
+CONFIG_SND_AZT3328=m
+CONFIG_SND_BT87X=m
+# CONFIG_SND_BT87X_OVERCLOCK is not set
+CONFIG_SND_CA0106=m
+CONFIG_SND_CMIPCI=m
+CONFIG_SND_OXYGEN_LIB=m
+CONFIG_SND_OXYGEN=m
+CONFIG_SND_CS4281=m
+CONFIG_SND_CS46XX=m
+CONFIG_SND_CS46XX_NEW_DSP=y
+CONFIG_SND_CS5530=m
+CONFIG_SND_CS5535AUDIO=m
+CONFIG_SND_CTXFI=m
+CONFIG_SND_DARLA20=m
+CONFIG_SND_GINA20=m
+CONFIG_SND_LAYLA20=m
+CONFIG_SND_DARLA24=m
+CONFIG_SND_GINA24=m
+CONFIG_SND_LAYLA24=m
+CONFIG_SND_MONA=m
+CONFIG_SND_MIA=m
+CONFIG_SND_ECHO3G=m
+CONFIG_SND_INDIGO=m
+CONFIG_SND_INDIGOIO=m
+CONFIG_SND_INDIGODJ=m
+CONFIG_SND_INDIGOIOX=m
+CONFIG_SND_INDIGODJX=m
+CONFIG_SND_EMU10K1=m
+CONFIG_SND_EMU10K1X=m
+CONFIG_SND_ENS1370=m
+CONFIG_SND_ENS1371=m
+CONFIG_SND_ES1938=m
+CONFIG_SND_ES1968=m
+CONFIG_SND_ES1968_INPUT=y
+CONFIG_SND_ES1968_RADIO=y
+CONFIG_SND_FM801=m
+CONFIG_SND_FM801_TEA575X_BOOL=y
+CONFIG_SND_HDA_INTEL=m
+CONFIG_SND_HDA_PREALLOC_SIZE=64
+CONFIG_SND_HDA_HWDEP=y
+CONFIG_SND_HDA_RECONFIG=y
+CONFIG_SND_HDA_INPUT_BEEP=y
+CONFIG_SND_HDA_INPUT_BEEP_MODE=2
+CONFIG_SND_HDA_INPUT_JACK=y
+CONFIG_SND_HDA_PATCH_LOADER=y
+CONFIG_SND_HDA_CODEC_REALTEK=y
+CONFIG_SND_HDA_ENABLE_REALTEK_QUIRKS=y
+CONFIG_SND_HDA_CODEC_ANALOG=y
+CONFIG_SND_HDA_CODEC_SIGMATEL=y
+CONFIG_SND_HDA_CODEC_VIA=y
+CONFIG_SND_HDA_CODEC_HDMI=y
+CONFIG_SND_HDA_CODEC_CIRRUS=y
+CONFIG_SND_HDA_CODEC_CONEXANT=y
+CONFIG_SND_HDA_CODEC_CA0110=y
+CONFIG_SND_HDA_CODEC_CA0132=y
+CONFIG_SND_HDA_CODEC_CMEDIA=y
+CONFIG_SND_HDA_CODEC_SI3054=y
+CONFIG_SND_HDA_GENERIC=y
+CONFIG_SND_HDA_POWER_SAVE=y
+CONFIG_SND_HDA_POWER_SAVE_DEFAULT=60
+CONFIG_SND_HDSP=m
+CONFIG_SND_HDSPM=m
+CONFIG_SND_ICE1712=m
+CONFIG_SND_ICE1724=m
+CONFIG_SND_INTEL8X0=m
+CONFIG_SND_INTEL8X0M=m
+CONFIG_SND_KORG1212=m
+CONFIG_SND_LOLA=m
+CONFIG_SND_LX6464ES=m
+CONFIG_SND_MAESTRO3=m
+CONFIG_SND_MAESTRO3_INPUT=y
+CONFIG_SND_MIXART=m
+CONFIG_SND_NM256=m
+CONFIG_SND_PCXHR=m
+CONFIG_SND_RIPTIDE=m
+CONFIG_SND_RME32=m
+CONFIG_SND_RME96=m
+CONFIG_SND_RME9652=m
+CONFIG_SND_SIS7019=m
+CONFIG_SND_SONICVIBES=m
+CONFIG_SND_TRIDENT=m
+CONFIG_SND_VIA82XX=m
+CONFIG_SND_VIA82XX_MODEM=m
+CONFIG_SND_VIRTUOSO=m
+CONFIG_SND_VX222=m
+CONFIG_SND_YMFPCI=m
 CONFIG_SND_USB=y
-# CONFIG_SND_USB_AUDIO is not set
-# CONFIG_SND_USB_USX2Y is not set
-# CONFIG_SND_USB_CAIAQ is not set
-# CONFIG_SND_USB_US122L is not set
+CONFIG_SND_USB_AUDIO=m
+CONFIG_SND_USB_UA101=m
+CONFIG_SND_USB_USX2Y=m
+CONFIG_SND_USB_CAIAQ=m
+CONFIG_SND_USB_CAIAQ_INPUT=y
+CONFIG_SND_USB_US122L=m
+CONFIG_SND_USB_6FIRE=m
+CONFIG_SND_FIREWIRE=y
+CONFIG_SND_FIREWIRE_LIB=m
+CONFIG_SND_FIREWIRE_SPEAKERS=m
+CONFIG_SND_ISIGHT=m
 CONFIG_SND_PCMCIA=y
-# CONFIG_SND_VXPOCKET is not set
-# CONFIG_SND_PDAUDIOCF is not set
+CONFIG_SND_VXPOCKET=m
+CONFIG_SND_PDAUDIOCF=m
 # CONFIG_SND_SOC is not set
 # CONFIG_SOUND_PRIME is not set
+CONFIG_AC97_BUS=m
 CONFIG_HID_SUPPORT=y
 CONFIG_HID=y
 # CONFIG_HIDRAW is not set
@@ -2982,45 +3627,82 @@ CONFIG_USB_HIDDEV=y
 # Special HID drivers
 #
 CONFIG_HID_A4TECH=m
+CONFIG_HID_ACRUX=m
+# CONFIG_HID_ACRUX_FF is not set
 CONFIG_HID_APPLE=m
 CONFIG_HID_BELKIN=m
 CONFIG_HID_CHERRY=m
 CONFIG_HID_CHICONY=m
+CONFIG_HID_PRODIKEYS=m
 CONFIG_HID_CYPRESS=m
 CONFIG_HID_DRAGONRISE=m
-CONFIG_DRAGONRISE_FF=y
+# CONFIG_DRAGONRISE_FF is not set
+# CONFIG_HID_EMS_FF is not set
+CONFIG_HID_ELECOM=m
 CONFIG_HID_EZKEY=m
+CONFIG_HID_HOLTEK=m
+# CONFIG_HOLTEK_FF is not set
+CONFIG_HID_KEYTOUCH=m
 CONFIG_HID_KYE=m
+CONFIG_HID_UCLOGIC=m
+CONFIG_HID_WALTOP=m
 CONFIG_HID_GYRATION=m
 CONFIG_HID_TWINHAN=m
 CONFIG_HID_KENSINGTON=m
+CONFIG_HID_LCPOWER=m
 CONFIG_HID_LOGITECH=m
-CONFIG_LOGITECH_FF=y
-CONFIG_LOGIRUMBLEPAD2_FF=y
+CONFIG_HID_LOGITECH_DJ=m
+# CONFIG_LOGITECH_FF is not set
+# CONFIG_LOGIRUMBLEPAD2_FF is not set
+# CONFIG_LOGIG940_FF is not set
+# CONFIG_LOGIWHEELS_FF is not set
+CONFIG_HID_MAGICMOUSE=m
 CONFIG_HID_MICROSOFT=m
 CONFIG_HID_MONTEREY=m
+CONFIG_HID_MULTITOUCH=m
 CONFIG_HID_NTRIG=m
+CONFIG_HID_ORTEK=m
 CONFIG_HID_PANTHERLORD=m
-CONFIG_PANTHERLORD_FF=y
+# CONFIG_PANTHERLORD_FF is not set
 CONFIG_HID_PETALYNX=m
+CONFIG_HID_PICOLCD=m
+CONFIG_HID_PICOLCD_FB=y
+CONFIG_HID_PICOLCD_BACKLIGHT=y
+CONFIG_HID_PICOLCD_LCD=y
+CONFIG_HID_PICOLCD_LEDS=y
+CONFIG_HID_PRIMAX=m
+CONFIG_HID_QUANTA=m
+CONFIG_HID_ROCCAT=m
+CONFIG_HID_ROCCAT_COMMON=m
+CONFIG_HID_ROCCAT_ARVO=m
+CONFIG_HID_ROCCAT_KONE=m
+CONFIG_HID_ROCCAT_KONEPLUS=m
+CONFIG_HID_ROCCAT_KOVAPLUS=m
+CONFIG_HID_ROCCAT_PYRA=m
 CONFIG_HID_SAMSUNG=m
 CONFIG_HID_SONY=m
+CONFIG_HID_SPEEDLINK=m
 CONFIG_HID_SUNPLUS=m
 CONFIG_HID_GREENASIA=m
-CONFIG_GREENASIA_FF=y
+# CONFIG_GREENASIA_FF is not set
 CONFIG_HID_SMARTJOYPLUS=m
-CONFIG_SMARTJOYPLUS_FF=y
+# CONFIG_SMARTJOYPLUS_FF is not set
 CONFIG_HID_TOPSEED=m
 CONFIG_HID_THRUSTMASTER=m
-CONFIG_THRUSTMASTER_FF=y
+# CONFIG_THRUSTMASTER_FF is not set
 CONFIG_HID_WACOM=m
+# CONFIG_HID_WACOM_POWER_SUPPLY is not set
+CONFIG_HID_WIIMOTE=m
 CONFIG_HID_ZEROPLUS=m
-CONFIG_ZEROPLUS_FF=y
+# CONFIG_ZEROPLUS_FF is not set
+CONFIG_HID_ZYDACRON=m
 CONFIG_USB_SUPPORT=y
+CONFIG_USB_COMMON=y
 CONFIG_USB_ARCH_HAS_HCD=y
 CONFIG_USB_ARCH_HAS_OHCI=y
 CONFIG_USB_ARCH_HAS_EHCI=y
-CONFIG_USB=m
+CONFIG_USB_ARCH_HAS_XHCI=y
+CONFIG_USB=y
 # CONFIG_USB_DEBUG is not set
 CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
 
@@ -3032,6 +3714,8 @@ CONFIG_USB_DEVICE_CLASS=y
 CONFIG_USB_DYNAMIC_MINORS=y
 CONFIG_USB_SUSPEND=y
 # CONFIG_USB_OTG is not set
+CONFIG_USB_DWC3=m
+# CONFIG_USB_DWC3_DEBUG is not set
 # CONFIG_USB_MON is not set
 CONFIG_USB_WUSB=m
 CONFIG_USB_WUSB_CBAF=m
@@ -3043,30 +3727,26 @@ CONFIG_USB_WUSB_CBAF=m
 # CONFIG_USB_C67X00_HCD is not set
 CONFIG_USB_XHCI_HCD=m
 # CONFIG_USB_XHCI_HCD_DEBUGGING is not set
-CONFIG_USB_EHCI_HCD=m
-# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
-# CONFIG_USB_EHCI_TT_NEWSCHED is not set
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_EHCI_ROOT_HUB_TT=y
+CONFIG_USB_EHCI_TT_NEWSCHED=y
 CONFIG_USB_OXU210HP_HCD=m
 CONFIG_USB_ISP116X_HCD=m
 # CONFIG_USB_ISP1760_HCD is not set
 CONFIG_USB_ISP1362_HCD=m
-CONFIG_USB_OHCI_HCD=m
-CONFIG_USB_OHCI_HCD_SSB=y
+CONFIG_USB_OHCI_HCD=y
 # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
 # CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
 CONFIG_USB_OHCI_LITTLE_ENDIAN=y
-CONFIG_USB_UHCI_HCD=m
+CONFIG_USB_UHCI_HCD=y
 CONFIG_USB_U132_HCD=m
 CONFIG_USB_SL811_HCD=m
+# CONFIG_USB_SL811_HCD_ISO is not set
 # CONFIG_USB_SL811_CS is not set
 CONFIG_USB_R8A66597_HCD=m
 CONFIG_USB_WHCI_HCD=m
 CONFIG_USB_HWA_HCD=m
 
-#
-# Enable Host or Gadget support to see Inventra options
-#
-
 #
 # USB Device Class drivers
 #
@@ -3084,7 +3764,9 @@ CONFIG_USB_TMC=m
 #
 CONFIG_USB_STORAGE=m
 # CONFIG_USB_STORAGE_DEBUG is not set
-# CONFIG_USB_STORAGE_DATAFAB is not set
+CONFIG_USB_STORAGE_REALTEK=m
+CONFIG_REALTEK_AUTOPM=y
+CONFIG_USB_STORAGE_DATAFAB=m
 CONFIG_USB_STORAGE_FREECOM=m
 CONFIG_USB_STORAGE_ISD200=m
 CONFIG_USB_STORAGE_USBAT=m
@@ -3095,6 +3777,8 @@ CONFIG_USB_STORAGE_ALAUDA=m
 CONFIG_USB_STORAGE_ONETOUCH=m
 CONFIG_USB_STORAGE_KARMA=m
 CONFIG_USB_STORAGE_CYPRESS_ATACB=m
+CONFIG_USB_STORAGE_ENE_UB6250=m
+CONFIG_USB_UAS=m
 # CONFIG_USB_LIBUSUAL is not set
 
 #
@@ -3120,12 +3804,12 @@ CONFIG_USB_SERIAL_CP210X=m
 CONFIG_USB_SERIAL_CYPRESS_M8=m
 CONFIG_USB_SERIAL_EMPEG=m
 CONFIG_USB_SERIAL_FTDI_SIO=m
-# CONFIG_USB_SERIAL_FUNSOFT is not set
-# CONFIG_USB_SERIAL_VISOR is not set
-# CONFIG_USB_SERIAL_IPAQ is not set
-# CONFIG_USB_SERIAL_IR is not set
+CONFIG_USB_SERIAL_FUNSOFT=m
+CONFIG_USB_SERIAL_VISOR=m
+CONFIG_USB_SERIAL_IPAQ=m
+CONFIG_USB_SERIAL_IR=m
 CONFIG_USB_SERIAL_EDGEPORT=m
-# CONFIG_USB_SERIAL_EDGEPORT_TI is not set
+CONFIG_USB_SERIAL_EDGEPORT_TI=m
 CONFIG_USB_SERIAL_GARMIN=m
 CONFIG_USB_SERIAL_IPW=m
 CONFIG_USB_SERIAL_IUU=m
@@ -3135,11 +3819,13 @@ CONFIG_USB_SERIAL_IUU=m
 # CONFIG_USB_SERIAL_KOBIL_SCT is not set
 CONFIG_USB_SERIAL_MCT_U232=m
 CONFIG_USB_SERIAL_MOS7720=m
+# CONFIG_USB_SERIAL_MOS7715_PARPORT is not set
 CONFIG_USB_SERIAL_MOS7840=m
 CONFIG_USB_SERIAL_MOTOROLA=m
 # CONFIG_USB_SERIAL_NAVMAN is not set
 CONFIG_USB_SERIAL_PL2303=m
 CONFIG_USB_SERIAL_OTI6858=m
+CONFIG_USB_SERIAL_QCAUX=m
 CONFIG_USB_SERIAL_QUALCOMM=m
 CONFIG_USB_SERIAL_SPCP8X5=m
 CONFIG_USB_SERIAL_HP4X=m
@@ -3151,9 +3837,13 @@ CONFIG_USB_SERIAL_SYMBOL=m
 CONFIG_USB_SERIAL_TI=m
 # CONFIG_USB_SERIAL_CYBERJACK is not set
 CONFIG_USB_SERIAL_XIRCOM=m
+CONFIG_USB_SERIAL_WWAN=m
 CONFIG_USB_SERIAL_OPTION=m
 # CONFIG_USB_SERIAL_OMNINET is not set
 CONFIG_USB_SERIAL_OPTICON=m
+CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m
+CONFIG_USB_SERIAL_ZIO=m
+CONFIG_USB_SERIAL_SSU100=m
 # CONFIG_USB_SERIAL_DEBUG is not set
 
 #
@@ -3166,7 +3856,6 @@ CONFIG_USB_SEVSEG=m
 # CONFIG_USB_RIO500 is not set
 # CONFIG_USB_LEGOTOWER is not set
 CONFIG_USB_LCD=m
-CONFIG_USB_BERRY_CHARGE=m
 CONFIG_USB_LED=m
 CONFIG_USB_CYPRESS_CY7C63=m
 CONFIG_USB_CYTHERM=m
@@ -3180,7 +3869,7 @@ CONFIG_USB_SISUSBVGA_CON=y
 CONFIG_USB_IOWARRIOR=m
 # CONFIG_USB_TEST is not set
 CONFIG_USB_ISIGHTFW=m
-CONFIG_USB_VST=m
+CONFIG_USB_YUREX=m
 CONFIG_USB_ATM=m
 CONFIG_USB_SPEEDTOUCH=m
 CONFIG_USB_CXACRU=m
@@ -3192,21 +3881,22 @@ CONFIG_USB_XUSBATM=m
 # OTG and related infrastructure
 #
 CONFIG_USB_OTG_UTILS=y
+CONFIG_USB_GPIO_VBUS=m
 CONFIG_NOP_USB_XCEIV=m
 CONFIG_UWB=m
 CONFIG_UWB_HWA=m
 CONFIG_UWB_WHCI=m
-CONFIG_UWB_WLP=m
 CONFIG_UWB_I1480U=m
-CONFIG_UWB_I1480U_WLP=m
 CONFIG_MMC=m
 # CONFIG_MMC_DEBUG is not set
 # CONFIG_MMC_UNSAFE_RESUME is not set
+# CONFIG_MMC_CLKGATE is not set
 
 #
 # MMC/SD/SDIO Card Drivers
 #
 CONFIG_MMC_BLOCK=m
+CONFIG_MMC_BLOCK_MINORS=8
 CONFIG_MMC_BLOCK_BOUNCE=y
 CONFIG_SDIO_UART=m
 CONFIG_MMC_TEST=m
@@ -3216,15 +3906,15 @@ CONFIG_MMC_TEST=m
 #
 CONFIG_MMC_SDHCI=m
 CONFIG_MMC_SDHCI_PCI=m
-CONFIG_MMC_RICOH_MMC=m
+# CONFIG_MMC_RICOH_MMC is not set
 CONFIG_MMC_SDHCI_PLTFM=m
 CONFIG_MMC_WBSD=m
-# CONFIG_MMC_AT91 is not set
-# CONFIG_MMC_ATMELMCI is not set
 CONFIG_MMC_TIFM_SD=m
 CONFIG_MMC_SDRICOH_CS=m
 CONFIG_MMC_CB710=m
 CONFIG_MMC_VIA_SDMMC=m
+CONFIG_MMC_VUB300=m
+CONFIG_MMC_USHC=m
 CONFIG_MEMSTICK=m
 # CONFIG_MEMSTICK_DEBUG is not set
 
@@ -3239,30 +3929,39 @@ CONFIG_MSPRO_BLOCK=m
 #
 CONFIG_MEMSTICK_TIFM_MS=m
 CONFIG_MEMSTICK_JMICRON_38X=m
+CONFIG_MEMSTICK_R592=m
 CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=m
+CONFIG_LEDS_CLASS=y
 
 #
 # LED drivers
 #
+CONFIG_LEDS_LM3530=m
 CONFIG_LEDS_NET48XX=m
+CONFIG_LEDS_NET5501=m
 CONFIG_LEDS_WRAP=m
-CONFIG_LEDS_ALIX2=m
 CONFIG_LEDS_PCA9532=m
+CONFIG_LEDS_PCA9532_GPIO=y
+CONFIG_LEDS_GPIO=m
 CONFIG_LEDS_LP3944=m
+CONFIG_LEDS_LP5521=m
+CONFIG_LEDS_LP5523=m
 CONFIG_LEDS_CLEVO_MAIL=m
 CONFIG_LEDS_PCA955X=m
-CONFIG_LEDS_WM831X_STATUS=m
-CONFIG_LEDS_WM8350=m
+CONFIG_LEDS_REGULATOR=m
 CONFIG_LEDS_BD2802=m
+CONFIG_LEDS_INTEL_SS4200=m
+CONFIG_LEDS_LT3593=m
+CONFIG_LEDS_DELL_NETBOOKS=m
+CONFIG_LEDS_TRIGGERS=y
 
 #
 # LED Triggers
 #
-CONFIG_LEDS_TRIGGERS=y
 CONFIG_LEDS_TRIGGER_TIMER=m
 CONFIG_LEDS_TRIGGER_HEARTBEAT=m
 CONFIG_LEDS_TRIGGER_BACKLIGHT=m
+CONFIG_LEDS_TRIGGER_GPIO=m
 CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
 
 #
@@ -3272,8 +3971,11 @@ CONFIG_LEDS_TRIGGER_NETDEV=m
 # CONFIG_ACCESSIBILITY is not set
 # CONFIG_INFINIBAND is not set
 # CONFIG_EDAC is not set
-CONFIG_RTC_LIB=m
-CONFIG_RTC_CLASS=m
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
 
 #
 # RTC interfaces
@@ -3282,7 +3984,7 @@ CONFIG_RTC_INTF_SYSFS=y
 CONFIG_RTC_INTF_PROC=y
 CONFIG_RTC_INTF_DEV=y
 # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
-CONFIG_RTC_DRV_TEST=m
+# CONFIG_RTC_DRV_TEST is not set
 
 #
 # I2C RTC drivers
@@ -3290,18 +3992,23 @@ CONFIG_RTC_DRV_TEST=m
 CONFIG_RTC_DRV_DS1307=m
 CONFIG_RTC_DRV_DS1374=m
 CONFIG_RTC_DRV_DS1672=m
+CONFIG_RTC_DRV_DS3232=m
 CONFIG_RTC_DRV_MAX6900=m
 CONFIG_RTC_DRV_RS5C372=m
 CONFIG_RTC_DRV_ISL1208=m
+CONFIG_RTC_DRV_ISL12022=m
 CONFIG_RTC_DRV_X1205=m
 CONFIG_RTC_DRV_PCF8563=m
 CONFIG_RTC_DRV_PCF8583=m
 CONFIG_RTC_DRV_M41T80=m
-# CONFIG_RTC_DRV_M41T80_WDT is not set
+CONFIG_RTC_DRV_M41T80_WDT=y
+CONFIG_RTC_DRV_BQ32K=m
 CONFIG_RTC_DRV_S35390A=m
 CONFIG_RTC_DRV_FM3130=m
 CONFIG_RTC_DRV_RX8581=m
 CONFIG_RTC_DRV_RX8025=m
+CONFIG_RTC_DRV_EM3027=m
+CONFIG_RTC_DRV_RV3029C2=m
 
 #
 # SPI RTC drivers
@@ -3310,7 +4017,7 @@ CONFIG_RTC_DRV_RX8025=m
 #
 # Platform RTC drivers
 #
-CONFIG_RTC_DRV_CMOS=m
+CONFIG_RTC_DRV_CMOS=y
 CONFIG_RTC_DRV_DS1286=m
 CONFIG_RTC_DRV_DS1511=m
 CONFIG_RTC_DRV_DS1553=m
@@ -3319,23 +4026,25 @@ CONFIG_RTC_DRV_STK17TA8=m
 CONFIG_RTC_DRV_M48T86=m
 CONFIG_RTC_DRV_M48T35=m
 CONFIG_RTC_DRV_M48T59=m
+CONFIG_RTC_DRV_MSM6242=m
 CONFIG_RTC_DRV_BQ4802=m
+CONFIG_RTC_DRV_RP5C01=m
 CONFIG_RTC_DRV_V3020=m
-CONFIG_RTC_DRV_WM831X=m
-CONFIG_RTC_DRV_WM8350=m
 CONFIG_RTC_DRV_PCF50633=m
-CONFIG_RTC_DRV_AB3100=m
 
 #
 # on-CPU RTC drivers
 #
 CONFIG_DMADEVICES=y
+# CONFIG_DMADEVICES_DEBUG is not set
 
 #
 # DMA Devices
 #
-CONFIG_ASYNC_TX_DISABLE_CHANNEL_SWITCH=y
+CONFIG_INTEL_MID_DMAC=m
 CONFIG_INTEL_IOATDMA=m
+CONFIG_TIMB_DMA=m
+CONFIG_PCH_DMA=m
 CONFIG_DMA_ENGINE=y
 
 #
@@ -3350,98 +4059,153 @@ CONFIG_UIO=m
 CONFIG_UIO_CIF=m
 CONFIG_UIO_PDRV=m
 CONFIG_UIO_PDRV_GENIRQ=m
-CONFIG_UIO_SMX=m
 CONFIG_UIO_AEC=m
 CONFIG_UIO_SERCOS3=m
 CONFIG_UIO_PCI_GENERIC=m
+CONFIG_UIO_NETX=m
+CONFIG_VIRTIO=y
+CONFIG_VIRTIO_RING=y
 
 #
-# TI VLYNQ
+# Virtio drivers
 #
+CONFIG_VIRTIO_PCI=m
+CONFIG_VIRTIO_BALLOON=m
+CONFIG_VIRTIO_MMIO=m
 CONFIG_STAGING=y
-# CONFIG_STAGING_EXCLUDE_BUILD is not set
 CONFIG_ET131X=m
-# CONFIG_ET131X_DEBUG is not set
 CONFIG_SLICOSS=m
-# CONFIG_VIDEO_GO7007 is not set
-# CONFIG_VIDEO_CX25821 is not set
-# CONFIG_USB_IP_COMMON is not set
+CONFIG_USBIP_CORE=m
+CONFIG_USBIP_VHCI_HCD=m
+CONFIG_USBIP_HOST=m
+# CONFIG_USBIP_DEBUG is not set
 # CONFIG_W35UND is not set
 # CONFIG_PRISM2_USB is not set
 # CONFIG_ECHO is not set
-# CONFIG_POCH is not set
-# CONFIG_OTUS is not set
-# CONFIG_RT2860 is not set
-# CONFIG_RT2870 is not set
-# CONFIG_RT3090 is not set
 # CONFIG_COMEDI is not set
 # CONFIG_ASUS_OLED is not set
 # CONFIG_PANEL is not set
-# CONFIG_ALTERA_PCIE_CHDMA is not set
-# CONFIG_RTL8187SE is not set
-# CONFIG_RTL8192SU is not set
+# CONFIG_R8187SE is not set
+# CONFIG_RTL8192U is not set
 # CONFIG_RTL8192E is not set
+# CONFIG_R8712U is not set
+# CONFIG_RTS_PSTOR is not set
+# CONFIG_RTS5139 is not set
 # CONFIG_TRANZPORT is not set
-
-#
-# Android
-#
-
-#
-# Qualcomm MSM Camera And Video
-#
-
-#
-# Camera Sensor Selection
-#
-# CONFIG_INPUT_GPIO is not set
-# CONFIG_DST is not set
 # CONFIG_POHMELFS is not set
-# CONFIG_B3DFG is not set
 CONFIG_IDE_PHISON=m
-# CONFIG_PLAN9AUTH is not set
 # CONFIG_LINE6_USB is not set
-# CONFIG_DRM_RADEON_KMS is not set
+CONFIG_DRM_NOUVEAU=m
+CONFIG_DRM_NOUVEAU_BACKLIGHT=y
+
+#
+# I2C encoder or helper chips
+#
+# CONFIG_DRM_I2C_CH7006 is not set
+# CONFIG_DRM_I2C_SIL164 is not set
 # CONFIG_USB_SERIAL_QUATECH2 is not set
 # CONFIG_USB_SERIAL_QUATECH_USB2 is not set
 # CONFIG_VT6655 is not set
 # CONFIG_VT6656 is not set
-# CONFIG_FB_UDL is not set
-CONFIG_HYPERV=m
 CONFIG_HYPERV_STORAGE=m
-CONFIG_HYPERV_BLOCK=m
 CONFIG_HYPERV_NET=m
+CONFIG_HYPERV_MOUSE=m
 # CONFIG_VME_BUS is not set
-
-#
-# RAR Register Driver
-#
-# CONFIG_RAR_REGISTER is not set
+# CONFIG_DX_SEP is not set
 # CONFIG_IIO is not set
+# CONFIG_XVMALLOC is not set
+# CONFIG_ZRAM is not set
+# CONFIG_WLAGS49_H2 is not set
+# CONFIG_WLAGS49_H25 is not set
+# CONFIG_FB_SM7XX is not set
+# CONFIG_CRYSTALHD is not set
+# CONFIG_CXT1E1 is not set
+# CONFIG_FB_XGI is not set
+# CONFIG_ACPI_QUICKSTART is not set
+# CONFIG_SBE_2T3E3 is not set
+# CONFIG_USB_ENESTORAGE is not set
+# CONFIG_BCM_WIMAX is not set
+# CONFIG_FT1000 is not set
+
+#
+# Speakup console speech
+#
+# CONFIG_SPEAKUP is not set
+# CONFIG_TOUCHSCREEN_CLEARPAD_TM1217 is not set
+# CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4 is not set
+# CONFIG_DRM_PSB is not set
+CONFIG_INTEL_MEI=m
+# CONFIG_STAGING_MEDIA is not set
 CONFIG_X86_PLATFORM_DEVICES=y
 CONFIG_ACER_WMI=m
+CONFIG_ACERHDF=m
 CONFIG_ASUS_LAPTOP=m
 CONFIG_DELL_WMI=m
+CONFIG_DELL_WMI_AIO=m
 CONFIG_FUJITSU_LAPTOP=m
 CONFIG_FUJITSU_LAPTOP_DEBUG=y
 CONFIG_TC1100_WMI=m
+CONFIG_HP_ACCEL=m
 CONFIG_HP_WMI=m
 CONFIG_MSI_LAPTOP=m
 CONFIG_PANASONIC_LAPTOP=m
 CONFIG_COMPAL_LAPTOP=m
 CONFIG_SONY_LAPTOP=m
 # CONFIG_SONYPI_COMPAT is not set
+CONFIG_IDEAPAD_LAPTOP=m
 CONFIG_THINKPAD_ACPI=m
+CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y
 # CONFIG_THINKPAD_ACPI_DEBUGFACILITIES is not set
 # CONFIG_THINKPAD_ACPI_DEBUG is not set
 # CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set
 CONFIG_THINKPAD_ACPI_VIDEO=y
 CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y
+CONFIG_SENSORS_HDAPS=m
 CONFIG_INTEL_MENLOW=m
 CONFIG_ACPI_WMI=m
+CONFIG_MSI_WMI=m
 CONFIG_ACPI_ASUS=m
 CONFIG_TOPSTAR_LAPTOP=m
 CONFIG_ACPI_TOSHIBA=m
+CONFIG_TOSHIBA_BT_RFKILL=m
+CONFIG_ACPI_CMPC=m
+CONFIG_INTEL_IPS=m
+CONFIG_IBM_RTL=m
+CONFIG_XO15_EBOOK=m
+CONFIG_SAMSUNG_LAPTOP=m
+CONFIG_MXM_WMI=m
+CONFIG_INTEL_OAKTRAIL=m
+CONFIG_SAMSUNG_Q10=m
+
+#
+# Hardware Spinlock drivers
+#
+CONFIG_CLKSRC_I8253=y
+CONFIG_CLKEVT_I8253=y
+CONFIG_I8253_LOCK=y
+CONFIG_CLKBLD_I8253=y
+CONFIG_IOMMU_API=y
+CONFIG_IOMMU_SUPPORT=y
+CONFIG_DMAR_TABLE=y
+CONFIG_INTEL_IOMMU=y
+CONFIG_INTEL_IOMMU_DEFAULT_ON=y
+CONFIG_INTEL_IOMMU_FLOPPY_WA=y
+CONFIG_VIRT_DRIVERS=y
+CONFIG_HYPERV=m
+CONFIG_HYPERV_UTILS=m
+CONFIG_PM_DEVFREQ=y
+
+#
+# DEVFREQ Governors
+#
+CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y
+CONFIG_DEVFREQ_GOV_PERFORMANCE=y
+CONFIG_DEVFREQ_GOV_POWERSAVE=y
+CONFIG_DEVFREQ_GOV_USERSPACE=y
+
+#
+# DEVFREQ Drivers
+#
 
 #
 # Firmware Drivers
@@ -3451,32 +4215,25 @@ CONFIG_FIRMWARE_MEMMAP=y
 # CONFIG_DELL_RBU is not set
 # CONFIG_DCDBAS is not set
 CONFIG_DMIID=y
+CONFIG_DMI_SYSFS=m
 CONFIG_ISCSI_IBFT_FIND=y
 CONFIG_ISCSI_IBFT=m
+CONFIG_SIGMA=m
+# CONFIG_GOOGLE_FIRMWARE is not set
 
 #
 # File systems
 #
-CONFIG_EXT2_FS=m
-CONFIG_EXT2_FS_XATTR=y
-CONFIG_EXT2_FS_POSIX_ACL=y
-CONFIG_EXT2_FS_SECURITY=y
-# CONFIG_EXT2_FS_XIP is not set
-CONFIG_EXT3_FS=m
-# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
-CONFIG_EXT3_FS_XATTR=y
-CONFIG_EXT3_FS_POSIX_ACL=y
-CONFIG_EXT3_FS_SECURITY=y
-CONFIG_EXT4_FS=m
+# CONFIG_EXT2_FS is not set
+# CONFIG_EXT3_FS is not set
+CONFIG_EXT4_FS=y
+CONFIG_EXT4_USE_FOR_EXT23=y
 CONFIG_EXT4_FS_XATTR=y
 CONFIG_EXT4_FS_POSIX_ACL=y
 CONFIG_EXT4_FS_SECURITY=y
 # CONFIG_EXT4_DEBUG is not set
-CONFIG_JBD=m
-CONFIG_JBD2=m
-CONFIG_FS_MBCACHE=m
-CONFIG_REISER4_FS=m
-# CONFIG_REISER4_DEBUG is not set
+CONFIG_JBD2=y
+CONFIG_FS_MBCACHE=y
 CONFIG_REISERFS_FS=m
 # CONFIG_REISERFS_CHECK is not set
 CONFIG_REISERFS_PROC_INFO=y
@@ -3488,29 +4245,29 @@ CONFIG_JFS_POSIX_ACL=y
 CONFIG_JFS_SECURITY=y
 # CONFIG_JFS_DEBUG is not set
 CONFIG_JFS_STATISTICS=y
-CONFIG_FS_POSIX_ACL=y
 CONFIG_XFS_FS=m
 CONFIG_XFS_QUOTA=y
 CONFIG_XFS_POSIX_ACL=y
 # CONFIG_XFS_RT is not set
 # CONFIG_XFS_DEBUG is not set
 # CONFIG_GFS2_FS is not set
-# CONFIG_OCFS2_FS is not set
 # CONFIG_BTRFS_FS is not set
 # CONFIG_NILFS2_FS is not set
+CONFIG_FS_POSIX_ACL=y
+CONFIG_EXPORTFS=m
 CONFIG_FILE_LOCKING=y
 CONFIG_FSNOTIFY=y
 CONFIG_DNOTIFY=y
-CONFIG_INOTIFY=y
 CONFIG_INOTIFY_USER=y
+CONFIG_FANOTIFY=y
 CONFIG_QUOTA=y
 CONFIG_QUOTA_NETLINK_INTERFACE=y
 CONFIG_PRINT_QUOTA_WARNING=y
+# CONFIG_QUOTA_DEBUG is not set
 CONFIG_QUOTA_TREE=m
 CONFIG_QFMT_V1=m
 CONFIG_QFMT_V2=m
 CONFIG_QUOTACTL=y
-CONFIG_AUTOFS_FS=m
 CONFIG_AUTOFS4_FS=m
 CONFIG_FUSE_FS=m
 CONFIG_CUSE=m
@@ -3556,6 +4313,7 @@ CONFIG_PROC_PAGE_MONITOR=y
 CONFIG_SYSFS=y
 CONFIG_TMPFS=y
 # CONFIG_TMPFS_POSIX_ACL is not set
+CONFIG_TMPFS_XATTR=y
 # CONFIG_HUGETLBFS is not set
 # CONFIG_HUGETLB_PAGE is not set
 # CONFIG_CONFIGFS_FS is not set
@@ -3584,6 +4342,7 @@ CONFIG_JFFS2_CMODE_PRIORITY=y
 # CONFIG_JFFS2_CMODE_SIZE is not set
 # CONFIG_JFFS2_CMODE_FAVOURLZO is not set
 # CONFIG_UBIFS_FS is not set
+# CONFIG_LOGFS is not set
 # CONFIG_CRAMFS is not set
 # CONFIG_SQUASHFS is not set
 # CONFIG_VXFS_FS is not set
@@ -3592,8 +4351,11 @@ CONFIG_JFFS2_CMODE_PRIORITY=y
 # CONFIG_HPFS_FS is not set
 # CONFIG_QNX4FS_FS is not set
 # CONFIG_ROMFS_FS is not set
+# CONFIG_PSTORE is not set
 # CONFIG_SYSV_FS is not set
-# CONFIG_UFS_FS is not set
+CONFIG_UFS_FS=m
+# CONFIG_UFS_FS_WRITE is not set
+# CONFIG_UFS_DEBUG is not set
 # CONFIG_EXOFS_FS is not set
 CONFIG_NETWORK_FILESYSTEMS=y
 CONFIG_NFS_FS=m
@@ -3602,6 +4364,9 @@ CONFIG_NFS_V3_ACL=y
 CONFIG_NFS_V4=y
 # CONFIG_NFS_V4_1 is not set
 # CONFIG_NFS_FSCACHE is not set
+# CONFIG_NFS_USE_LEGACY_DNS is not set
+CONFIG_NFS_USE_KERNEL_DNS=y
+# CONFIG_NFS_USE_NEW_IDMAPPER is not set
 CONFIG_NFSD=m
 CONFIG_NFSD_V2_ACL=y
 CONFIG_NFSD_V3=y
@@ -3609,15 +4374,12 @@ CONFIG_NFSD_V3_ACL=y
 CONFIG_NFSD_V4=y
 CONFIG_LOCKD=m
 CONFIG_LOCKD_V4=y
-CONFIG_EXPORTFS=m
 CONFIG_NFS_ACL_SUPPORT=m
 CONFIG_NFS_COMMON=y
 CONFIG_SUNRPC=m
 CONFIG_SUNRPC_GSS=m
 CONFIG_RPCSEC_GSS_KRB5=m
-# CONFIG_RPCSEC_GSS_SPKM3 is not set
-CONFIG_SMB_FS=m
-# CONFIG_SMB_NLS_DEFAULT is not set
+# CONFIG_CEPH_FS is not set
 CONFIG_CIFS=m
 CONFIG_CIFS_STATS=y
 CONFIG_CIFS_STATS2=y
@@ -3627,7 +4389,8 @@ CONFIG_CIFS_XATTR=y
 CONFIG_CIFS_POSIX=y
 # CONFIG_CIFS_DEBUG2 is not set
 # CONFIG_CIFS_DFS_UPCALL is not set
-# CONFIG_CIFS_EXPERIMENTAL is not set
+# CONFIG_CIFS_FSCACHE is not set
+CONFIG_CIFS_ACL=y
 # CONFIG_NCP_FS is not set
 # CONFIG_CODA_FS is not set
 # CONFIG_AFS_FS is not set
@@ -3642,7 +4405,7 @@ CONFIG_PARTITION_ADVANCED=y
 # CONFIG_ATARI_PARTITION is not set
 # CONFIG_MAC_PARTITION is not set
 CONFIG_MSDOS_PARTITION=y
-# CONFIG_BSD_DISKLABEL is not set
+CONFIG_BSD_DISKLABEL=y
 # CONFIG_MINIX_SUBPARTITION is not set
 # CONFIG_SOLARIS_X86_PARTITION is not set
 # CONFIG_UNIXWARE_DISKLABEL is not set
@@ -3694,13 +4457,13 @@ CONFIG_NLS_ISO8859_1=y
 # CONFIG_NLS_KOI8_R is not set
 # CONFIG_NLS_KOI8_U is not set
 CONFIG_NLS_UTF8=y
-# CONFIG_DLM is not set
 
 #
 # Kernel hacking
 #
 CONFIG_TRACE_IRQFLAGS_SUPPORT=y
 # CONFIG_PRINTK_TIME is not set
+CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4
 # CONFIG_ENABLE_WARN_DEPRECATED is not set
 CONFIG_ENABLE_MUST_CHECK=y
 CONFIG_FRAME_WARN=1024
@@ -3709,12 +4472,13 @@ CONFIG_STRIP_ASM_SYMS=y
 # CONFIG_UNUSED_SYMBOLS is not set
 # CONFIG_DEBUG_FS is not set
 # CONFIG_HEADERS_CHECK is not set
+# CONFIG_DEBUG_SECTION_MISMATCH is not set
 CONFIG_DEBUG_KERNEL=y
 # CONFIG_DEBUG_SHIRQ is not set
-CONFIG_DETECT_SOFTLOCKUP=y
-# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
-CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
+# CONFIG_LOCKUP_DETECTOR is not set
+# CONFIG_HARDLOCKUP_DETECTOR is not set
 CONFIG_DETECT_HUNG_TASK=y
+CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
 # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
 CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
 CONFIG_SCHED_DEBUG=y
@@ -3730,9 +4494,11 @@ CONFIG_TIMER_STATS=y
 # CONFIG_DEBUG_MUTEXES is not set
 # CONFIG_DEBUG_LOCK_ALLOC is not set
 # CONFIG_PROVE_LOCKING is not set
+# CONFIG_SPARSE_RCU_POINTER is not set
 # CONFIG_LOCK_STAT is not set
-# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+# CONFIG_DEBUG_ATOMIC_SLEEP is not set
 # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+# CONFIG_DEBUG_STACK_USAGE is not set
 # CONFIG_DEBUG_KOBJECT is not set
 # CONFIG_DEBUG_HIGHMEM is not set
 CONFIG_DEBUG_BUGVERBOSE=y
@@ -3742,6 +4508,7 @@ CONFIG_DEBUG_BUGVERBOSE=y
 # CONFIG_DEBUG_WRITECOUNT is not set
 CONFIG_DEBUG_MEMORY_INIT=y
 # CONFIG_DEBUG_LIST is not set
+# CONFIG_TEST_LIST_SORT is not set
 # CONFIG_DEBUG_SG is not set
 # CONFIG_DEBUG_NOTIFIERS is not set
 # CONFIG_DEBUG_CREDENTIALS is not set
@@ -3749,10 +4516,12 @@ CONFIG_ARCH_WANT_FRAME_POINTERS=y
 # CONFIG_FRAME_POINTER is not set
 # CONFIG_BOOT_PRINTK_DELAY is not set
 # CONFIG_RCU_TORTURE_TEST is not set
-# CONFIG_RCU_CPU_STALL_DETECTOR is not set
+CONFIG_RCU_CPU_STALL_TIMEOUT=60
 # CONFIG_BACKTRACE_SELF_TEST is not set
 # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
 # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
+# CONFIG_DEBUG_PER_CPU_MAPS is not set
+# CONFIG_CPU_NOTIFIER_ERROR_INJECT is not set
 # CONFIG_FAULT_INJECTION is not set
 # CONFIG_LATENCYTOP is not set
 # CONFIG_SYSCTL_SYSCALL_CHECK is not set
@@ -3765,27 +4534,30 @@ CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
 CONFIG_HAVE_DYNAMIC_FTRACE=y
 CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
 CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
+CONFIG_HAVE_C_RECORDMCOUNT=y
 CONFIG_TRACING_SUPPORT=y
 # CONFIG_FTRACE is not set
 # CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
 # CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set
 # CONFIG_DMA_API_DEBUG is not set
+# CONFIG_ATOMIC64_SELFTEST is not set
+CONFIG_ASYNC_RAID6_TEST=m
 # CONFIG_SAMPLES is not set
 CONFIG_HAVE_ARCH_KGDB=y
 # CONFIG_KGDB is not set
 CONFIG_HAVE_ARCH_KMEMCHECK=y
+# CONFIG_KMEMCHECK is not set
+# CONFIG_TEST_KSTRTOX is not set
 # CONFIG_STRICT_DEVMEM is not set
 CONFIG_X86_VERBOSE_BOOTUP=y
 CONFIG_EARLY_PRINTK=y
 # CONFIG_EARLY_PRINTK_DBGP is not set
 # CONFIG_DEBUG_STACKOVERFLOW is not set
-# CONFIG_DEBUG_STACK_USAGE is not set
-# CONFIG_DEBUG_PER_CPU_MAPS is not set
 # CONFIG_X86_PTDUMP is not set
 CONFIG_DEBUG_RODATA=y
 CONFIG_DEBUG_RODATA_TEST=y
+# CONFIG_DEBUG_SET_MODULE_RONX is not set
 # CONFIG_DEBUG_NX_TEST is not set
-# CONFIG_4KSTACKS is not set
 CONFIG_DOUBLEFAULT=y
 # CONFIG_IOMMU_STRESS is not set
 CONFIG_HAVE_MMIOTRACE_SUPPORT=y
@@ -3800,17 +4572,20 @@ CONFIG_IO_DELAY_0X80=y
 CONFIG_DEFAULT_IO_DELAY_TYPE=0
 # CONFIG_CPA_DEBUG is not set
 # CONFIG_OPTIMIZE_INLINING is not set
+# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
 
 #
 # Security options
 #
 CONFIG_KEYS=y
+# CONFIG_ENCRYPTED_KEYS is not set
 # CONFIG_KEYS_DEBUG_PROC_KEYS is not set
+# CONFIG_SECURITY_DMESG_RESTRICT is not set
 # CONFIG_SECURITY is not set
 # CONFIG_SECURITYFS is not set
-# CONFIG_SECURITY_FILE_CAPABILITIES is not set
 # CONFIG_INTEL_TXT is not set
-# CONFIG_IMA is not set
+CONFIG_DEFAULT_SECURITY_DAC=y
+CONFIG_DEFAULT_SECURITY=""
 CONFIG_XOR_BLOCKS=m
 CONFIG_ASYNC_CORE=m
 CONFIG_ASYNC_MEMCPY=m
@@ -3824,7 +4599,6 @@ CONFIG_CRYPTO=y
 #
 # Crypto core or helper
 #
-CONFIG_CRYPTO_FIPS=y
 CONFIG_CRYPTO_ALGAPI=y
 CONFIG_CRYPTO_ALGAPI2=y
 CONFIG_CRYPTO_AEAD=m
@@ -3835,11 +4609,15 @@ CONFIG_CRYPTO_HASH=y
 CONFIG_CRYPTO_HASH2=y
 CONFIG_CRYPTO_RNG=m
 CONFIG_CRYPTO_RNG2=y
-CONFIG_CRYPTO_PCOMP=y
+CONFIG_CRYPTO_PCOMP=m
+CONFIG_CRYPTO_PCOMP2=y
 CONFIG_CRYPTO_MANAGER=y
 CONFIG_CRYPTO_MANAGER2=y
+CONFIG_CRYPTO_USER=m
+CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
 CONFIG_CRYPTO_GF128MUL=m
 # CONFIG_CRYPTO_NULL is not set
+CONFIG_CRYPTO_PCRYPT=m
 CONFIG_CRYPTO_WORKQUEUE=y
 CONFIG_CRYPTO_CRYPTD=m
 CONFIG_CRYPTO_AUTHENC=m
@@ -3876,7 +4654,7 @@ CONFIG_CRYPTO_VMAC=m
 CONFIG_CRYPTO_CRC32C=m
 CONFIG_CRYPTO_CRC32C_INTEL=m
 CONFIG_CRYPTO_GHASH=m
-# CONFIG_CRYPTO_MD4 is not set
+CONFIG_CRYPTO_MD4=m
 CONFIG_CRYPTO_MD5=m
 CONFIG_CRYPTO_MICHAEL_MIC=m
 CONFIG_CRYPTO_RMD128=m
@@ -3894,9 +4672,11 @@ CONFIG_CRYPTO_WP512=m
 #
 CONFIG_CRYPTO_AES=m
 CONFIG_CRYPTO_AES_586=m
+CONFIG_CRYPTO_AES_NI_INTEL=m
 CONFIG_CRYPTO_ANUBIS=m
 CONFIG_CRYPTO_ARC4=m
 CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_BLOWFISH_COMMON=m
 CONFIG_CRYPTO_CAMELLIA=m
 CONFIG_CRYPTO_CAST5=m
 CONFIG_CRYPTO_CAST6=m
@@ -3923,6 +4703,9 @@ CONFIG_CRYPTO_LZO=m
 # Random Number Generation
 #
 CONFIG_CRYPTO_ANSI_CPRNG=m
+CONFIG_CRYPTO_USER_API=m
+CONFIG_CRYPTO_USER_API_HASH=m
+CONFIG_CRYPTO_USER_API_SKCIPHER=m
 CONFIG_CRYPTO_HW=y
 CONFIG_CRYPTO_DEV_PADLOCK=m
 CONFIG_CRYPTO_DEV_PADLOCK_AES=m
@@ -3934,39 +4717,49 @@ CONFIG_HAVE_KVM=y
 CONFIG_HAVE_KVM_IRQCHIP=y
 CONFIG_HAVE_KVM_EVENTFD=y
 CONFIG_KVM_APIC_ARCHITECTURE=y
+CONFIG_KVM_MMIO=y
+CONFIG_KVM_ASYNC_PF=y
 CONFIG_VIRTUALIZATION=y
 CONFIG_KVM=m
 CONFIG_KVM_INTEL=m
 CONFIG_KVM_AMD=m
+CONFIG_VHOST_NET=m
 CONFIG_LGUEST=m
-CONFIG_VIRTIO=y
-CONFIG_VIRTIO_RING=y
-CONFIG_VIRTIO_PCI=m
-CONFIG_VIRTIO_BALLOON=m
 # CONFIG_BINARY_PRINTF is not set
 
 #
 # Library routines
 #
+CONFIG_RAID6_PQ=m
 CONFIG_BITREVERSE=y
 CONFIG_GENERIC_FIND_FIRST_BIT=y
-CONFIG_GENERIC_FIND_NEXT_BIT=y
-CONFIG_GENERIC_FIND_LAST_BIT=y
 CONFIG_CRC_CCITT=m
-CONFIG_CRC16=m
+CONFIG_CRC16=y
 CONFIG_CRC_T10DIF=m
 CONFIG_CRC_ITU_T=m
 CONFIG_CRC32=y
 CONFIG_CRC7=m
 CONFIG_LIBCRC32C=m
+CONFIG_CRC8=m
 CONFIG_AUDIT_GENERIC=y
 CONFIG_ZLIB_INFLATE=y
 CONFIG_ZLIB_DEFLATE=y
-CONFIG_LZO_COMPRESS=m
-CONFIG_LZO_DECOMPRESS=m
+CONFIG_LZO_COMPRESS=y
+CONFIG_LZO_DECOMPRESS=y
+CONFIG_XZ_DEC=y
+CONFIG_XZ_DEC_X86=y
+CONFIG_XZ_DEC_POWERPC=y
+CONFIG_XZ_DEC_IA64=y
+CONFIG_XZ_DEC_ARM=y
+CONFIG_XZ_DEC_ARMTHUMB=y
+CONFIG_XZ_DEC_SPARC=y
+CONFIG_XZ_DEC_BCJ=y
+# CONFIG_XZ_DEC_TEST is not set
 CONFIG_DECOMPRESS_GZIP=y
 CONFIG_DECOMPRESS_BZIP2=y
 CONFIG_DECOMPRESS_LZMA=y
+CONFIG_DECOMPRESS_XZ=y
+CONFIG_DECOMPRESS_LZO=y
 CONFIG_TEXTSEARCH=y
 CONFIG_TEXTSEARCH_KMP=m
 CONFIG_TEXTSEARCH_BM=m
@@ -3975,4 +4768,7 @@ CONFIG_HAS_IOMEM=y
 CONFIG_HAS_IOPORT=y
 CONFIG_HAS_DMA=y
 CONFIG_CHECK_SIGNATURE=y
+CONFIG_CPU_RMAP=y
 CONFIG_NLATTR=y
+CONFIG_AVERAGE=y
+CONFIG_CORDIC=m
index 4b23df337a261c302f4087c9c72862f8a76994f5..038bee5b37bd09866042d92dd365c7fd0dd09a73 100644 (file)
@@ -1,15 +1,14 @@
 #
-# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.32.41-ipfire-pae
-# Sat May 31 15:00:00 2011
+# Automatically generated file; DO NOT EDIT.
+# Linux/i386 3.2.35 Kernel Configuration
 #
 # CONFIG_64BIT is not set
 CONFIG_X86_32=y
 # CONFIG_X86_64 is not set
 CONFIG_X86=y
+CONFIG_INSTRUCTION_DECODER=y
 CONFIG_OUTPUT_FORMAT="elf32-i386"
 CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig"
-CONFIG_GENERIC_TIME=y
 CONFIG_GENERIC_CMOS_UPDATE=y
 CONFIG_CLOCKSOURCE_WATCHDOG=y
 CONFIG_GENERIC_CLOCKEVENTS=y
@@ -19,10 +18,13 @@ CONFIG_STACKTRACE_SUPPORT=y
 CONFIG_HAVE_LATENCYTOP_SUPPORT=y
 CONFIG_MMU=y
 CONFIG_ZONE_DMA=y
+CONFIG_NEED_DMA_MAP_STATE=y
+CONFIG_NEED_SG_DMA_LENGTH=y
 CONFIG_GENERIC_ISA_DMA=y
 CONFIG_GENERIC_IOMAP=y
 CONFIG_GENERIC_BUG=y
 CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_GPIO=y
 CONFIG_ARCH_MAY_HAVE_PC_FDC=y
 # CONFIG_RWSEM_GENERIC_SPINLOCK is not set
 CONFIG_RWSEM_XCHGADD_ALGORITHM=y
@@ -35,7 +37,6 @@ CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
 CONFIG_HAVE_SETUP_PER_CPU_AREA=y
 CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
 CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
-# CONFIG_HAVE_CPUMASK_OF_CPU_MAP is not set
 CONFIG_ARCH_HIBERNATION_POSSIBLE=y
 CONFIG_ARCH_SUSPEND_POSSIBLE=y
 # CONFIG_ZONE_DMA32 is not set
@@ -44,34 +45,34 @@ CONFIG_ARCH_POPULATES_NODE_MAP=y
 CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
 CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
 CONFIG_HAVE_INTEL_TXT=y
-CONFIG_GENERIC_HARDIRQS=y
-CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
-CONFIG_GENERIC_IRQ_PROBE=y
-CONFIG_GENERIC_PENDING_IRQ=y
-CONFIG_USE_GENERIC_SMP_HELPERS=y
 CONFIG_X86_32_SMP=y
 CONFIG_X86_HT=y
-CONFIG_X86_TRAMPOLINE=y
-CONFIG_X86_32_LAZY_GS=y
+CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-ecx -fcall-saved-edx"
 CONFIG_KTIME_SCALAR=y
 CONFIG_ARCH_CPU_PROBE_RELEASE=y
 CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
-CONFIG_CONSTRUCTORS=y
+CONFIG_HAVE_IRQ_WORK=y
+CONFIG_IRQ_WORK=y
 
 #
 # General setup
 #
 CONFIG_EXPERIMENTAL=y
-CONFIG_LOCK_KERNEL=y
 CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_CROSS_COMPILE=""
 CONFIG_LOCALVERSION=""
 # CONFIG_LOCALVERSION_AUTO is not set
 CONFIG_HAVE_KERNEL_GZIP=y
 CONFIG_HAVE_KERNEL_BZIP2=y
 CONFIG_HAVE_KERNEL_LZMA=y
+CONFIG_HAVE_KERNEL_XZ=y
+CONFIG_HAVE_KERNEL_LZO=y
 # CONFIG_KERNEL_GZIP is not set
 # CONFIG_KERNEL_BZIP2 is not set
 CONFIG_KERNEL_LZMA=y
+# CONFIG_KERNEL_XZ is not set
+# CONFIG_KERNEL_LZO is not set
+CONFIG_DEFAULT_HOSTNAME="(none)"
 CONFIG_SWAP=y
 CONFIG_SYSVIPC=y
 CONFIG_SYSVIPC_SYSCTL=y
@@ -79,52 +80,73 @@ CONFIG_POSIX_MQUEUE=y
 CONFIG_POSIX_MQUEUE_SYSCTL=y
 CONFIG_BSD_PROCESS_ACCT=y
 CONFIG_BSD_PROCESS_ACCT_V3=y
-# CONFIG_TASKSTATS is not set
+# CONFIG_FHANDLE is not set
+CONFIG_TASKSTATS=y
+CONFIG_TASK_DELAY_ACCT=y
+# CONFIG_TASK_XACCT is not set
 CONFIG_AUDIT=y
 CONFIG_AUDITSYSCALL=y
+CONFIG_AUDIT_WATCH=y
 CONFIG_AUDIT_TREE=y
+CONFIG_HAVE_GENERIC_HARDIRQS=y
+
+#
+# IRQ subsystem
+#
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_HAVE_SPARSE_IRQ=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_GENERIC_IRQ_SHOW=y
+CONFIG_GENERIC_PENDING_IRQ=y
+CONFIG_GENERIC_IRQ_CHIP=y
+CONFIG_IRQ_FORCED_THREADING=y
+CONFIG_SPARSE_IRQ=y
 
 #
 # RCU Subsystem
 #
 CONFIG_TREE_RCU=y
-# CONFIG_TREE_PREEMPT_RCU is not set
+# CONFIG_PREEMPT_RCU is not set
 # CONFIG_RCU_TRACE is not set
 CONFIG_RCU_FANOUT=32
 # CONFIG_RCU_FANOUT_EXACT is not set
+# CONFIG_RCU_FAST_NO_HZ is not set
 # CONFIG_TREE_RCU_TRACE is not set
 # CONFIG_IKCONFIG is not set
 CONFIG_LOG_BUF_SHIFT=17
 CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
 # CONFIG_CGROUPS is not set
-CONFIG_SYSFS_DEPRECATED=y
-CONFIG_SYSFS_DEPRECATED_V2=y
-# CONFIG_RELAY is not set
 CONFIG_NAMESPACES=y
 CONFIG_UTS_NS=y
 CONFIG_IPC_NS=y
 # CONFIG_USER_NS is not set
 # CONFIG_PID_NS is not set
 # CONFIG_NET_NS is not set
+# CONFIG_SCHED_AUTOGROUP is not set
+CONFIG_SYSFS_DEPRECATED=y
+CONFIG_SYSFS_DEPRECATED_V2=y
+# CONFIG_RELAY is not set
 CONFIG_BLK_DEV_INITRD=y
 CONFIG_INITRAMFS_SOURCE=""
 CONFIG_RD_GZIP=y
 CONFIG_RD_BZIP2=y
 CONFIG_RD_LZMA=y
-CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+CONFIG_RD_XZ=y
+CONFIG_RD_LZO=y
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
 CONFIG_SYSCTL=y
 CONFIG_ANON_INODES=y
-# CONFIG_EMBEDDED is not set
+# CONFIG_EXPERT is not set
 CONFIG_UID16=y
-CONFIG_SYSCTL_SYSCALL=y
+# CONFIG_SYSCTL_SYSCALL is not set
 CONFIG_KALLSYMS=y
 # CONFIG_KALLSYMS_ALL is not set
-# CONFIG_KALLSYMS_EXTRA_PASS is not set
 CONFIG_HOTPLUG=y
 CONFIG_PRINTK=y
 CONFIG_BUG=y
 CONFIG_ELF_CORE=y
 CONFIG_PCSPKR_PLATFORM=y
+CONFIG_HAVE_PCSPKR_PLATFORM=y
 CONFIG_BASE_FULL=y
 CONFIG_FUTEX=y
 CONFIG_EPOLL=y
@@ -133,35 +155,46 @@ CONFIG_TIMERFD=y
 CONFIG_EVENTFD=y
 CONFIG_SHMEM=y
 CONFIG_AIO=y
+# CONFIG_EMBEDDED is not set
 CONFIG_HAVE_PERF_EVENTS=y
 
 #
 # Kernel Performance Events And Counters
 #
-# CONFIG_PERF_EVENTS is not set
+CONFIG_PERF_EVENTS=y
 # CONFIG_PERF_COUNTERS is not set
+# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
 CONFIG_VM_EVENT_COUNTERS=y
 CONFIG_PCI_QUIRKS=y
 CONFIG_SLUB_DEBUG=y
 # CONFIG_COMPAT_BRK is not set
 # CONFIG_SLAB is not set
 CONFIG_SLUB=y
-# CONFIG_SLOB is not set
 # CONFIG_PROFILING is not set
 CONFIG_HAVE_OPROFILE=y
 # CONFIG_KPROBES is not set
+# CONFIG_JUMP_LABEL is not set
 CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
+CONFIG_USER_RETURN_NOTIFIER=y
 CONFIG_HAVE_IOREMAP_PROT=y
 CONFIG_HAVE_KPROBES=y
 CONFIG_HAVE_KRETPROBES=y
+CONFIG_HAVE_OPTPROBES=y
 CONFIG_HAVE_ARCH_TRACEHOOK=y
 CONFIG_HAVE_DMA_ATTRS=y
+CONFIG_USE_GENERIC_SMP_HELPERS=y
+CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
 CONFIG_HAVE_DMA_API_DEBUG=y
+CONFIG_HAVE_HW_BREAKPOINT=y
+CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y
+CONFIG_HAVE_USER_RETURN_NOTIFIER=y
+CONFIG_HAVE_PERF_EVENTS_NMI=y
+CONFIG_HAVE_ARCH_JUMP_LABEL=y
+CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
 
 #
 # GCOV-based kernel profiling
 #
-CONFIG_SLOW_WORK=y
 CONFIG_HAVE_GENERIC_DMA_COHERENT=y
 CONFIG_SLABINFO=y
 CONFIG_RT_MUTEXES=y
@@ -175,22 +208,51 @@ CONFIG_MODULE_FORCE_UNLOAD=y
 CONFIG_STOP_MACHINE=y
 CONFIG_BLOCK=y
 CONFIG_LBDAF=y
-# CONFIG_BLK_DEV_BSG is not set
+CONFIG_BLK_DEV_BSG=y
+CONFIG_BLK_DEV_BSGLIB=y
 # CONFIG_BLK_DEV_INTEGRITY is not set
 
 #
 # IO Schedulers
 #
 CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
 CONFIG_IOSCHED_DEADLINE=y
 CONFIG_IOSCHED_CFQ=y
-# CONFIG_DEFAULT_AS is not set
 # CONFIG_DEFAULT_DEADLINE is not set
 CONFIG_DEFAULT_CFQ=y
 # CONFIG_DEFAULT_NOOP is not set
 CONFIG_DEFAULT_IOSCHED="cfq"
 CONFIG_PREEMPT_NOTIFIERS=y
+CONFIG_PADATA=y
+# CONFIG_INLINE_SPIN_TRYLOCK is not set
+# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
+# CONFIG_INLINE_SPIN_LOCK is not set
+# CONFIG_INLINE_SPIN_LOCK_BH is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
+CONFIG_INLINE_SPIN_UNLOCK=y
+# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
+CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
+# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_READ_TRYLOCK is not set
+# CONFIG_INLINE_READ_LOCK is not set
+# CONFIG_INLINE_READ_LOCK_BH is not set
+# CONFIG_INLINE_READ_LOCK_IRQ is not set
+# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
+CONFIG_INLINE_READ_UNLOCK=y
+# CONFIG_INLINE_READ_UNLOCK_BH is not set
+CONFIG_INLINE_READ_UNLOCK_IRQ=y
+# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_WRITE_TRYLOCK is not set
+# CONFIG_INLINE_WRITE_LOCK is not set
+# CONFIG_INLINE_WRITE_LOCK_BH is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
+CONFIG_INLINE_WRITE_UNLOCK=y
+# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
+CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
+# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
+CONFIG_MUTEX_SPIN_ON_OWNER=y
 CONFIG_FREEZER=y
 
 #
@@ -200,23 +262,25 @@ CONFIG_TICK_ONESHOT=y
 CONFIG_NO_HZ=y
 CONFIG_HIGH_RES_TIMERS=y
 CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y
 CONFIG_SMP=y
-CONFIG_SPARSE_IRQ=y
-CONFIG_NUMA_IRQ_DESC=y
 CONFIG_X86_MPPARSE=y
 CONFIG_X86_BIGSMP=y
 CONFIG_X86_EXTENDED_PLATFORM=y
-# CONFIG_X86_ELAN is not set
-# CONFIG_X86_MRST is not set
+# CONFIG_X86_WANT_INTEL_MID is not set
 # CONFIG_X86_RDC321X is not set
 # CONFIG_X86_32_NON_STANDARD is not set
 CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
+# CONFIG_X86_32_IRIS is not set
 CONFIG_SCHED_OMIT_FRAME_POINTER=y
 CONFIG_PARAVIRT_GUEST=y
+# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
 CONFIG_XEN=y
-CONFIG_XEN_MAX_DOMAIN_MEMORY=8
+CONFIG_XEN_DOM0=y
+CONFIG_XEN_PRIVILEGED_GUEST=y
+CONFIG_XEN_PVHVM=y
+CONFIG_XEN_MAX_DOMAIN_MEMORY=128
 CONFIG_XEN_SAVE_RESTORE=y
-CONFIG_VMI=y
 CONFIG_KVM_CLOCK=y
 CONFIG_KVM_GUEST=y
 CONFIG_LGUEST_GUEST=y
@@ -224,6 +288,7 @@ CONFIG_PARAVIRT=y
 CONFIG_PARAVIRT_SPINLOCKS=y
 CONFIG_PARAVIRT_CLOCK=y
 # CONFIG_PARAVIRT_DEBUG is not set
+CONFIG_NO_BOOTMEM=y
 # CONFIG_MEMTEST is not set
 # CONFIG_M386 is not set
 # CONFIG_M486 is not set
@@ -242,21 +307,20 @@ CONFIG_M586TSC=y
 # CONFIG_MEFFICEON is not set
 # CONFIG_MWINCHIPC6 is not set
 # CONFIG_MWINCHIP3D is not set
+# CONFIG_MELAN is not set
 # CONFIG_MGEODEGX1 is not set
 # CONFIG_MGEODE_LX is not set
 # CONFIG_MCYRIXIII is not set
 # CONFIG_MVIAC3_2 is not set
 # CONFIG_MVIAC7 is not set
-# CONFIG_MPSC is not set
 # CONFIG_MCORE2 is not set
 # CONFIG_MATOM is not set
-# CONFIG_GENERIC_CPU is not set
 CONFIG_X86_GENERIC=y
-CONFIG_X86_CPU=y
-CONFIG_X86_L1_CACHE_BYTES=64
-CONFIG_X86_INTERNODE_CACHE_BYTES=64
+CONFIG_X86_INTERNODE_CACHE_SHIFT=7
 CONFIG_X86_CMPXCHG=y
-CONFIG_X86_L1_CACHE_SHIFT=5
+CONFIG_CMPXCHG_LOCAL=y
+CONFIG_CMPXCHG_DOUBLE=y
+CONFIG_X86_L1_CACHE_SHIFT=6
 CONFIG_X86_XADD=y
 CONFIG_X86_PPRO_FENCE=y
 CONFIG_X86_F00F_BUG=y
@@ -278,8 +342,8 @@ CONFIG_CPU_SUP_UMC_32=y
 CONFIG_HPET_TIMER=y
 CONFIG_HPET_EMULATE_RTC=y
 CONFIG_DMI=y
-# CONFIG_IOMMU_HELPER is not set
-CONFIG_IOMMU_API=y
+CONFIG_SWIOTLB=y
+CONFIG_IOMMU_HELPER=y
 CONFIG_NR_CPUS=256
 CONFIG_SCHED_SMT=y
 CONFIG_SCHED_MC=y
@@ -314,19 +378,20 @@ CONFIG_PAGE_OFFSET=0xC0000000
 CONFIG_HIGHMEM=y
 CONFIG_X86_PAE=y
 CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
+CONFIG_ARCH_DMA_ADDR_T_64BIT=y
 CONFIG_NUMA=y
+# CONFIG_NUMA_EMU is not set
 CONFIG_NODES_SHIFT=3
 CONFIG_HAVE_ARCH_BOOTMEM=y
+CONFIG_HAVE_ARCH_ALLOC_REMAP=y
 CONFIG_ARCH_HAVE_MEMORY_PRESENT=y
 CONFIG_NEED_NODE_MEMMAP_SIZE=y
-CONFIG_HAVE_ARCH_ALLOC_REMAP=y
 CONFIG_ARCH_DISCONTIGMEM_ENABLE=y
 CONFIG_ARCH_DISCONTIGMEM_DEFAULT=y
 CONFIG_ARCH_SPARSEMEM_ENABLE=y
 CONFIG_ARCH_SELECT_MEMORY_MODEL=y
 CONFIG_ILLEGAL_POINTER_VALUE=0
 CONFIG_SELECT_MEMORY_MODEL=y
-# CONFIG_FLATMEM_MANUAL is not set
 CONFIG_DISCONTIGMEM_MANUAL=y
 # CONFIG_SPARSEMEM_MANUAL is not set
 CONFIG_DISCONTIGMEM=y
@@ -334,30 +399,34 @@ CONFIG_FLAT_NODE_MEM_MAP=y
 CONFIG_NEED_MULTIPLE_NODES=y
 CONFIG_HAVE_MEMORY_PRESENT=y
 CONFIG_SPARSEMEM_STATIC=y
+CONFIG_HAVE_MEMBLOCK=y
 CONFIG_PAGEFLAGS_EXTENDED=y
 CONFIG_SPLIT_PTLOCK_CPUS=4
+# CONFIG_COMPACTION is not set
 CONFIG_MIGRATION=y
 CONFIG_PHYS_ADDR_T_64BIT=y
 CONFIG_ZONE_DMA_FLAG=1
 CONFIG_BOUNCE=y
 CONFIG_VIRT_TO_BUS=y
-CONFIG_HAVE_MLOCK=y
-CONFIG_HAVE_MLOCKED_PAGE_BIT=y
 CONFIG_MMU_NOTIFIER=y
 CONFIG_KSM=y
 CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
 CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
 # CONFIG_MEMORY_FAILURE is not set
+# CONFIG_TRANSPARENT_HUGEPAGE is not set
+# CONFIG_CLEANCACHE is not set
 # CONFIG_HIGHPTE is not set
 # CONFIG_X86_CHECK_BIOS_CORRUPTION is not set
-CONFIG_X86_RESERVE_LOW_64K=y
+CONFIG_X86_RESERVE_LOW=64
 CONFIG_MATH_EMULATION=y
 CONFIG_MTRR=y
 # CONFIG_MTRR_SANITIZER is not set
-# CONFIG_X86_PAT is not set
+CONFIG_X86_PAT=y
+CONFIG_ARCH_USES_PG_UNCACHED=y
+CONFIG_ARCH_RANDOM=y
 # CONFIG_EFI is not set
 CONFIG_SECCOMP=y
-# CONFIG_CC_STACKPROTECTOR is not set
+CONFIG_CC_STACKPROTECTOR=y
 # CONFIG_HZ_100 is not set
 # CONFIG_HZ_250 is not set
 CONFIG_HZ_300=y
@@ -373,25 +442,25 @@ CONFIG_HOTPLUG_CPU=y
 CONFIG_COMPAT_VDSO=y
 # CONFIG_CMDLINE_BOOL is not set
 CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
-# CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID is not set
+CONFIG_USE_PERCPU_NUMA_NODE_ID=y
 
 #
 # Power management and ACPI options
 #
-CONFIG_PM=y
-# CONFIG_PM_DEBUG is not set
-CONFIG_PM_SLEEP_SMP=y
-CONFIG_PM_SLEEP=y
 CONFIG_SUSPEND=y
 CONFIG_SUSPEND_FREEZER=y
+CONFIG_HIBERNATE_CALLBACKS=y
 # CONFIG_HIBERNATION is not set
+CONFIG_PM_SLEEP=y
+CONFIG_PM_SLEEP_SMP=y
 CONFIG_PM_RUNTIME=y
+CONFIG_PM=y
+# CONFIG_PM_DEBUG is not set
 CONFIG_ACPI=y
 CONFIG_ACPI_SLEEP=y
 # CONFIG_ACPI_PROCFS is not set
 CONFIG_ACPI_PROCFS_POWER=y
-CONFIG_ACPI_POWER_METER=m
-CONFIG_ACPI_SYSFS_POWER=y
+CONFIG_ACPI_EC_DEBUGFS=m
 CONFIG_ACPI_PROC_EVENT=y
 CONFIG_ACPI_AC=m
 CONFIG_ACPI_BATTERY=m
@@ -400,6 +469,7 @@ CONFIG_ACPI_VIDEO=m
 CONFIG_ACPI_FAN=m
 CONFIG_ACPI_DOCK=y
 CONFIG_ACPI_PROCESSOR=m
+CONFIG_ACPI_IPMI=m
 CONFIG_ACPI_HOTPLUG_CPU=y
 CONFIG_ACPI_PROCESSOR_AGGREGATOR=m
 CONFIG_ACPI_THERMAL=m
@@ -412,6 +482,8 @@ CONFIG_ACPI_PCI_SLOT=m
 CONFIG_X86_PM_TIMER=y
 CONFIG_ACPI_CONTAINER=m
 CONFIG_ACPI_SBS=m
+# CONFIG_ACPI_HED is not set
+# CONFIG_ACPI_APEI is not set
 # CONFIG_SFI is not set
 CONFIG_X86_APM_BOOT=y
 CONFIG_APM=m
@@ -426,11 +498,9 @@ CONFIG_APM_CPU_IDLE=y
 #
 CONFIG_CPU_FREQ=y
 CONFIG_CPU_FREQ_TABLE=y
-# CONFIG_CPU_FREQ_DEBUG is not set
 CONFIG_CPU_FREQ_STAT=y
 CONFIG_CPU_FREQ_STAT_DETAILS=y
 CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
-# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
 # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
 # CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
 # CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
@@ -441,8 +511,9 @@ CONFIG_CPU_FREQ_GOV_ONDEMAND=m
 CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
 
 #
-# CPUFreq processor drivers
+# x86 CPU frequency scaling drivers
 #
+CONFIG_X86_PCC_CPUFREQ=m
 CONFIG_X86_ACPI_CPUFREQ=m
 CONFIG_X86_POWERNOW_K6=m
 CONFIG_X86_POWERNOW_K7=m
@@ -467,6 +538,7 @@ CONFIG_X86_SPEEDSTEP_LIB=m
 CONFIG_CPU_IDLE=y
 CONFIG_CPU_IDLE_GOV_LADDER=y
 CONFIG_CPU_IDLE_GOV_MENU=y
+CONFIG_INTEL_IDLE=y
 
 #
 # Bus options (PCI etc.)
@@ -475,28 +547,32 @@ CONFIG_PCI=y
 # CONFIG_PCI_GOBIOS is not set
 # CONFIG_PCI_GOMMCONFIG is not set
 # CONFIG_PCI_GODIRECT is not set
-# CONFIG_PCI_GOOLPC is not set
 CONFIG_PCI_GOANY=y
 CONFIG_PCI_BIOS=y
 CONFIG_PCI_DIRECT=y
 CONFIG_PCI_MMCONFIG=y
+CONFIG_PCI_XEN=y
 CONFIG_PCI_DOMAINS=y
-CONFIG_DMAR=y
-CONFIG_DMAR_DEFAULT_ON=y
-CONFIG_DMAR_FLOPPY_WA=y
+# CONFIG_PCI_CNB20LE_QUIRK is not set
 CONFIG_PCIEPORTBUS=y
 CONFIG_PCIEAER=y
 # CONFIG_PCIE_ECRC is not set
 # CONFIG_PCIEAER_INJECT is not set
 CONFIG_PCIEASPM=y
 # CONFIG_PCIEASPM_DEBUG is not set
+CONFIG_PCIE_PME=y
 CONFIG_ARCH_SUPPORTS_MSI=y
 CONFIG_PCI_MSI=y
-CONFIG_PCI_LEGACY=y
 # CONFIG_PCI_DEBUG is not set
 CONFIG_PCI_STUB=m
+CONFIG_XEN_PCIDEV_FRONTEND=y
 CONFIG_HT_IRQ=y
+CONFIG_PCI_ATS=y
 CONFIG_PCI_IOV=y
+# CONFIG_PCI_PRI is not set
+# CONFIG_PCI_PASID is not set
+CONFIG_PCI_IOAPIC=y
+CONFIG_PCI_LABEL=y
 CONFIG_ISA_DMA_API=y
 CONFIG_ISA=y
 CONFIG_EISA=y
@@ -509,13 +585,11 @@ CONFIG_MCA_LEGACY=y
 # CONFIG_MCA_PROC_FS is not set
 CONFIG_SCx200=m
 CONFIG_SCx200HR_TIMER=m
-# CONFIG_OLPC is not set
-CONFIG_K8_NB=y
+CONFIG_ALIX=y
+CONFIG_AMD_NB=y
 CONFIG_PCCARD=m
-# CONFIG_PCMCIA_DEBUG is not set
 CONFIG_PCMCIA=m
 CONFIG_PCMCIA_LOAD_CIS=y
-CONFIG_PCMCIA_IOCTL=y
 CONFIG_CARDBUS=y
 
 #
@@ -532,8 +606,9 @@ CONFIG_I82092=m
 CONFIG_I82365=m
 CONFIG_TCIC=m
 CONFIG_PCMCIA_PROBE=y
-CONFIG_PCCARD_NONSTATIC=m
+CONFIG_PCCARD_NONSTATIC=y
 # CONFIG_HOTPLUG_PCI is not set
+# CONFIG_RAPIDIO is not set
 
 #
 # Executable file formats / Emulations
@@ -544,13 +619,13 @@ CONFIG_HAVE_AOUT=y
 # CONFIG_BINFMT_AOUT is not set
 # CONFIG_BINFMT_MISC is not set
 CONFIG_HAVE_ATOMIC_IOMAP=y
+CONFIG_HAVE_TEXT_POKE_SMP=y
 CONFIG_NET=y
 
 #
 # Networking options
 #
 CONFIG_PACKET=y
-CONFIG_PACKET_MMAP=y
 CONFIG_UNIX=y
 CONFIG_XFRM=y
 CONFIG_XFRM_USER=m
@@ -563,17 +638,18 @@ CONFIG_NET_KEY_MIGRATE=y
 CONFIG_INET=y
 CONFIG_IP_MULTICAST=y
 CONFIG_IP_ADVANCED_ROUTER=y
-CONFIG_ASK_IP_FIB_HASH=y
-# CONFIG_IP_FIB_TRIE is not set
-CONFIG_IP_FIB_HASH=y
+# CONFIG_IP_FIB_TRIE_STATS is not set
 CONFIG_IP_MULTIPLE_TABLES=y
 CONFIG_IP_ROUTE_MULTIPATH=y
 CONFIG_IP_ROUTE_VERBOSE=y
+CONFIG_IP_ROUTE_CLASSID=y
 # CONFIG_IP_PNP is not set
 CONFIG_NET_IPIP=m
+CONFIG_NET_IPGRE_DEMUX=m
 CONFIG_NET_IPGRE=m
 CONFIG_NET_IPGRE_BROADCAST=y
 CONFIG_IP_MROUTE=y
+# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set
 CONFIG_IP_PIMSM_V1=y
 CONFIG_IP_PIMSM_V2=y
 CONFIG_ARPD=y
@@ -602,15 +678,10 @@ CONFIG_TCP_CONG_LP=m
 CONFIG_TCP_CONG_VENO=m
 CONFIG_TCP_CONG_YEAH=m
 CONFIG_TCP_CONG_ILLINOIS=m
-# CONFIG_DEFAULT_BIC is not set
-# CONFIG_DEFAULT_CUBIC is not set
-# CONFIG_DEFAULT_HTCP is not set
-# CONFIG_DEFAULT_VEGAS is not set
-# CONFIG_DEFAULT_WESTWOOD is not set
 CONFIG_DEFAULT_RENO=y
 CONFIG_DEFAULT_TCP_CONG="reno"
 # CONFIG_TCP_MD5SIG is not set
-CONFIG_IPV6=m
+CONFIG_IPV6=y
 # CONFIG_IPV6_PRIVACY is not set
 # CONFIG_IPV6_ROUTER_PREF is not set
 # CONFIG_IPV6_OPTIMISTIC_DAD is not set
@@ -625,12 +696,14 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=m
 CONFIG_INET6_XFRM_MODE_BEET=m
 CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
 CONFIG_IPV6_SIT=m
+# CONFIG_IPV6_SIT_6RD is not set
 CONFIG_IPV6_NDISC_NODETYPE=y
 CONFIG_IPV6_TUNNEL=m
 CONFIG_IPV6_MULTIPLE_TABLES=y
 # CONFIG_IPV6_SUBTREES is not set
 # CONFIG_IPV6_MROUTE is not set
 # CONFIG_NETWORK_SECMARK is not set
+CONFIG_NETWORK_PHY_TIMESTAMPING=y
 CONFIG_NETFILTER=y
 # CONFIG_NETFILTER_DEBUG is not set
 CONFIG_NETFILTER_ADVANCED=y
@@ -643,9 +716,10 @@ CONFIG_NETFILTER_NETLINK=m
 CONFIG_NETFILTER_NETLINK_QUEUE=m
 CONFIG_NETFILTER_NETLINK_LOG=m
 CONFIG_NF_CONNTRACK=m
-CONFIG_NF_CT_ACCT=y
 CONFIG_NF_CONNTRACK_MARK=y
+# CONFIG_NF_CONNTRACK_ZONES is not set
 CONFIG_NF_CONNTRACK_EVENTS=y
+CONFIG_NF_CONNTRACK_TIMESTAMP=y
 CONFIG_NF_CT_PROTO_DCCP=m
 CONFIG_NF_CT_PROTO_GRE=m
 CONFIG_NF_CT_PROTO_SCTP=m
@@ -654,7 +728,9 @@ CONFIG_NF_CONNTRACK_AMANDA=m
 CONFIG_NF_CONNTRACK_FTP=m
 CONFIG_NF_CONNTRACK_H323=m
 CONFIG_NF_CONNTRACK_IRC=m
+CONFIG_NF_CONNTRACK_BROADCAST=m
 CONFIG_NF_CONNTRACK_NETBIOS_NS=m
+CONFIG_NF_CONNTRACK_SNMP=m
 CONFIG_NF_CONNTRACK_PPTP=m
 CONFIG_NF_CONNTRACK_SANE=m
 CONFIG_NF_CONNTRACK_SIP=m
@@ -662,10 +738,24 @@ CONFIG_NF_CONNTRACK_TFTP=m
 CONFIG_NF_CT_NETLINK=m
 CONFIG_NETFILTER_TPROXY=m
 CONFIG_NETFILTER_XTABLES=m
+
+#
+# Xtables combined modules
+#
+CONFIG_NETFILTER_XT_MARK=m
+CONFIG_NETFILTER_XT_CONNMARK=m
+
+#
+# Xtables targets
+#
+CONFIG_NETFILTER_XT_TARGET_AUDIT=m
+CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
 CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
 CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
+CONFIG_NETFILTER_XT_TARGET_CT=m
 CONFIG_NETFILTER_XT_TARGET_DSCP=m
 CONFIG_NETFILTER_XT_TARGET_HL=m
+CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
 CONFIG_NETFILTER_XT_TARGET_LED=m
 CONFIG_NETFILTER_XT_TARGET_IMQ=m
 CONFIG_NETFILTER_XT_TARGET_MARK=m
@@ -673,28 +763,38 @@ CONFIG_NETFILTER_XT_TARGET_NFLOG=m
 CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
 CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
 CONFIG_NETFILTER_XT_TARGET_RATEEST=m
+CONFIG_NETFILTER_XT_TARGET_TEE=m
 CONFIG_NETFILTER_XT_TARGET_TPROXY=m
 CONFIG_NETFILTER_XT_TARGET_TRACE=m
 CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
 CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
+
+#
+# Xtables matches
+#
+CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
 CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
 CONFIG_NETFILTER_XT_MATCH_COMMENT=m
 CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
 CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
 CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
 CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
+CONFIG_NETFILTER_XT_MATCH_CPU=m
 CONFIG_NETFILTER_XT_MATCH_DCCP=m
+CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
 CONFIG_NETFILTER_XT_MATCH_DSCP=m
 CONFIG_NETFILTER_XT_MATCH_ESP=m
 CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
 CONFIG_NETFILTER_XT_MATCH_HELPER=m
 CONFIG_NETFILTER_XT_MATCH_HL=m
 CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
+CONFIG_NETFILTER_XT_MATCH_IPVS=m
 CONFIG_NETFILTER_XT_MATCH_LENGTH=m
 CONFIG_NETFILTER_XT_MATCH_LIMIT=m
 CONFIG_NETFILTER_XT_MATCH_MAC=m
 CONFIG_NETFILTER_XT_MATCH_MARK=m
 CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
+CONFIG_NETFILTER_XT_MATCH_OSF=m
 CONFIG_NETFILTER_XT_MATCH_OWNER=m
 CONFIG_NETFILTER_XT_MATCH_POLICY=m
 CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
@@ -703,7 +803,6 @@ CONFIG_NETFILTER_XT_MATCH_QUOTA=m
 CONFIG_NETFILTER_XT_MATCH_RATEEST=m
 CONFIG_NETFILTER_XT_MATCH_REALM=m
 CONFIG_NETFILTER_XT_MATCH_RECENT=m
-CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT=y
 CONFIG_NETFILTER_XT_MATCH_SCTP=m
 CONFIG_NETFILTER_XT_MATCH_SOCKET=m
 CONFIG_NETFILTER_XT_MATCH_STATE=m
@@ -714,7 +813,7 @@ CONFIG_NETFILTER_XT_MATCH_STRING=m
 CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
 CONFIG_NETFILTER_XT_MATCH_TIME=m
 CONFIG_NETFILTER_XT_MATCH_U32=m
-CONFIG_NETFILTER_XT_MATCH_OSF=m
+# CONFIG_IP_SET is not set
 CONFIG_IP_VS=m
 CONFIG_IP_VS_IPV6=y
 # CONFIG_IP_VS_DEBUG is not set
@@ -725,8 +824,10 @@ CONFIG_IP_VS_TAB_BITS=12
 #
 # CONFIG_IP_VS_PROTO_TCP is not set
 # CONFIG_IP_VS_PROTO_UDP is not set
+# CONFIG_IP_VS_PROTO_AH_ESP is not set
 # CONFIG_IP_VS_PROTO_ESP is not set
 # CONFIG_IP_VS_PROTO_AH is not set
+# CONFIG_IP_VS_PROTO_SCTP is not set
 
 #
 # IPVS scheduler
@@ -745,6 +846,7 @@ CONFIG_IP_VS_TAB_BITS=12
 #
 # IPVS application helper
 #
+# CONFIG_IP_VS_NFCT is not set
 
 #
 # IP: Netfilter Configuration
@@ -754,7 +856,6 @@ CONFIG_NF_CONNTRACK_IPV4=m
 CONFIG_NF_CONNTRACK_PROC_COMPAT=y
 CONFIG_IP_NF_QUEUE=m
 CONFIG_IP_NF_IPTABLES=m
-CONFIG_IP_NF_MATCH_ADDRTYPE=m
 CONFIG_IP_NF_MATCH_AH=m
 CONFIG_IP_NF_MATCH_ECN=m
 CONFIG_IP_NF_MATCH_TTL=m
@@ -792,6 +893,7 @@ CONFIG_IP_NF_MATCH_IPP2P=m
 #
 # IPv6: Netfilter Configuration
 #
+CONFIG_NF_DEFRAG_IPV6=m
 CONFIG_NF_CONNTRACK_IPV6=m
 CONFIG_IP6_NF_QUEUE=m
 CONFIG_IP6_NF_IPTABLES=m
@@ -841,9 +943,14 @@ CONFIG_ATM_CLIP_NO_ICMP=y
 # CONFIG_ATM_LANE is not set
 CONFIG_ATM_BR2684=m
 # CONFIG_ATM_BR2684_IPFILTER is not set
+CONFIG_L2TP=m
+CONFIG_L2TP_V3=y
+CONFIG_L2TP_IP=m
+CONFIG_L2TP_ETH=m
 CONFIG_STP=m
 CONFIG_GARP=m
 CONFIG_BRIDGE=m
+CONFIG_BRIDGE_IGMP_SNOOPING=y
 CONFIG_NET_DSA=y
 CONFIG_NET_DSA_TAG_DSA=y
 CONFIG_NET_DSA_TAG_EDSA=y
@@ -866,6 +973,7 @@ CONFIG_LLC=m
 # CONFIG_WAN_ROUTER is not set
 # CONFIG_PHONET is not set
 CONFIG_IEEE802154=m
+CONFIG_IEEE802154_6LOWPAN=m
 CONFIG_NET_SCHED=y
 
 #
@@ -878,6 +986,7 @@ CONFIG_NET_SCH_ATM=m
 CONFIG_NET_SCH_PRIO=m
 CONFIG_NET_SCH_MULTIQ=m
 CONFIG_NET_SCH_RED=m
+CONFIG_NET_SCH_SFB=m
 CONFIG_NET_SCH_SFQ=m
 CONFIG_NET_SCH_TEQL=m
 CONFIG_NET_SCH_TBF=m
@@ -885,6 +994,9 @@ CONFIG_NET_SCH_GRED=m
 CONFIG_NET_SCH_DSMARK=m
 CONFIG_NET_SCH_NETEM=m
 CONFIG_NET_SCH_DRR=m
+CONFIG_NET_SCH_MQPRIO=m
+CONFIG_NET_SCH_CHOKE=m
+CONFIG_NET_SCH_QFQ=m
 CONFIG_NET_SCH_INGRESS=m
 
 #
@@ -894,7 +1006,6 @@ CONFIG_NET_CLS=y
 CONFIG_NET_CLS_BASIC=m
 CONFIG_NET_CLS_TCINDEX=m
 CONFIG_NET_CLS_ROUTE4=m
-CONFIG_NET_CLS_ROUTE=y
 CONFIG_NET_CLS_FW=m
 CONFIG_NET_CLS_U32=m
 CONFIG_CLS_U32_PERF=y
@@ -917,11 +1028,18 @@ CONFIG_NET_ACT_MIRRED=m
 CONFIG_NET_ACT_IPT=m
 CONFIG_NET_ACT_NAT=m
 CONFIG_NET_ACT_PEDIT=m
-# CONFIG_NET_ACT_SIMP is not set
+CONFIG_NET_ACT_SIMP=m
 CONFIG_NET_ACT_SKBEDIT=m
+CONFIG_NET_ACT_CSUM=m
 CONFIG_NET_CLS_IND=y
 CONFIG_NET_SCH_FIFO=y
 # CONFIG_DCB is not set
+CONFIG_DNS_RESOLVER=y
+CONFIG_BATMAN_ADV=m
+# CONFIG_BATMAN_ADV_DEBUG is not set
+CONFIG_RPS=y
+CONFIG_RFS_ACCEL=y
+CONFIG_XPS=y
 
 #
 # Network testing
@@ -977,8 +1095,8 @@ CONFIG_VLSI_FIR=m
 CONFIG_VIA_FIR=m
 CONFIG_MCS_FIR=m
 CONFIG_BT=m
-CONFIG_BT_L2CAP=m
-CONFIG_BT_SCO=m
+CONFIG_BT_L2CAP=y
+CONFIG_BT_SCO=y
 CONFIG_BT_RFCOMM=m
 CONFIG_BT_RFCOMM_TTY=y
 CONFIG_BT_BNEP=m
@@ -995,6 +1113,7 @@ CONFIG_BT_HCIBTSDIO=m
 CONFIG_BT_HCIUART=m
 CONFIG_BT_HCIUART_H4=y
 CONFIG_BT_HCIUART_BCSP=y
+CONFIG_BT_HCIUART_ATH3K=y
 CONFIG_BT_HCIUART_LL=y
 CONFIG_BT_HCIBCM203X=m
 CONFIG_BT_HCIBPA10X=m
@@ -1006,19 +1125,25 @@ CONFIG_BT_HCIBTUART=m
 CONFIG_BT_HCIVHCI=m
 CONFIG_BT_MRVL=m
 CONFIG_BT_MRVL_SDIO=m
+CONFIG_BT_ATH3K=m
+CONFIG_BT_WILINK=m
 CONFIG_AF_RXRPC=m
 # CONFIG_AF_RXRPC_DEBUG is not set
 CONFIG_RXKAD=m
 CONFIG_FIB_RULES=y
 CONFIG_WIRELESS=y
+CONFIG_WIRELESS_EXT=y
+CONFIG_WEXT_CORE=y
+CONFIG_WEXT_PROC=y
+CONFIG_WEXT_SPY=y
+CONFIG_WEXT_PRIV=y
 CONFIG_CFG80211=m
 # CONFIG_NL80211_TESTMODE is not set
 # CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
 # CONFIG_CFG80211_REG_DEBUG is not set
 # CONFIG_CFG80211_DEFAULT_PS is not set
-CONFIG_CFG80211_DEFAULT_PS_VALUE=0
-CONFIG_WIRELESS_OLD_REGULATORY=y
-CONFIG_WIRELESS_EXT=y
+# CONFIG_CFG80211_INTERNAL_REGDB is not set
+CONFIG_CFG80211_WEXT=y
 CONFIG_WIRELESS_EXT_SYSFS=y
 CONFIG_LIB80211=m
 CONFIG_LIB80211_CRYPT_WEP=m
@@ -1028,9 +1153,9 @@ CONFIG_LIB80211_CRYPT_TKIP=m
 CONFIG_MAC80211=m
 CONFIG_MAC80211_HAS_RC=y
 CONFIG_MAC80211_RC_MINSTREL=y
-# CONFIG_MAC80211_RC_DEFAULT_PID is not set
+CONFIG_MAC80211_RC_MINSTREL_HT=y
 CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
-CONFIG_MAC80211_RC_DEFAULT="minstrel"
+CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
 CONFIG_MAC80211_MESH=y
 CONFIG_MAC80211_LEDS=y
 # CONFIG_MAC80211_DEBUG_MENU is not set
@@ -1038,7 +1163,13 @@ CONFIG_MAC80211_LEDS=y
 CONFIG_RFKILL=m
 CONFIG_RFKILL_LEDS=y
 CONFIG_RFKILL_INPUT=y
+CONFIG_RFKILL_REGULATOR=m
 # CONFIG_NET_9P is not set
+# CONFIG_CAIF is not set
+CONFIG_CEPH_LIB=m
+# CONFIG_CEPH_LIB_PRETTYDEBUG is not set
+# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set
+# CONFIG_NFC is not set
 
 #
 # Device Drivers
@@ -1057,12 +1188,11 @@ CONFIG_EXTRA_FIRMWARE=""
 # CONFIG_DEBUG_DRIVER is not set
 # CONFIG_DEBUG_DEVRES is not set
 CONFIG_SYS_HYPERVISOR=y
+CONFIG_REGMAP=y
+CONFIG_REGMAP_I2C=m
 CONFIG_CONNECTOR=m
 CONFIG_MTD=m
-# CONFIG_MTD_DEBUG is not set
 CONFIG_MTD_TESTS=m
-CONFIG_MTD_CONCAT=m
-CONFIG_MTD_PARTITIONS=y
 # CONFIG_MTD_REDBOOT_PARTS is not set
 CONFIG_MTD_AR7_PARTS=m
 
@@ -1078,7 +1208,9 @@ CONFIG_MTD_BLOCK=m
 # CONFIG_INFTL is not set
 # CONFIG_RFD_FTL is not set
 # CONFIG_SSFDC is not set
+CONFIG_SM_FTL=m
 # CONFIG_MTD_OOPS is not set
+# CONFIG_MTD_SWAP is not set
 
 #
 # RAM/ROM/Flash chip drivers
@@ -1124,6 +1256,9 @@ CONFIG_MTD_PHYSMAP=m
 # CONFIG_MTD_DOC2000 is not set
 # CONFIG_MTD_DOC2001 is not set
 # CONFIG_MTD_DOC2001PLUS is not set
+# CONFIG_MTD_DOCG3 is not set
+CONFIG_MTD_NAND_ECC=m
+# CONFIG_MTD_NAND_ECC_SMC is not set
 # CONFIG_MTD_NAND is not set
 # CONFIG_MTD_ONENAND is not set
 
@@ -1132,18 +1267,10 @@ CONFIG_MTD_PHYSMAP=m
 #
 CONFIG_MTD_LPDDR=m
 CONFIG_MTD_QINFO_PROBE=m
-
-#
-# UBI - Unsorted block images
-#
 CONFIG_MTD_UBI=m
 CONFIG_MTD_UBI_WL_THRESHOLD=4096
 CONFIG_MTD_UBI_BEB_RESERVE=1
 # CONFIG_MTD_UBI_GLUEBI is not set
-
-#
-# UBI debugging options
-#
 # CONFIG_MTD_UBI_DEBUG is not set
 CONFIG_PARPORT=m
 CONFIG_PARPORT_PC=m
@@ -1176,7 +1303,9 @@ CONFIG_BLK_DEV_DAC960=m
 # CONFIG_BLK_DEV_UMEM is not set
 # CONFIG_BLK_DEV_COW_COMMON is not set
 CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
 CONFIG_BLK_DEV_CRYPTOLOOP=m
+# CONFIG_BLK_DEV_DRBD is not set
 CONFIG_BLK_DEV_NBD=m
 CONFIG_BLK_DEV_OSD=m
 CONFIG_BLK_DEV_SX8=m
@@ -1188,18 +1317,38 @@ CONFIG_BLK_DEV_RAM_SIZE=16384
 # CONFIG_CDROM_PKTCDVD is not set
 CONFIG_ATA_OVER_ETH=m
 CONFIG_XEN_BLKDEV_FRONTEND=y
+CONFIG_XEN_BLKDEV_BACKEND=y
 CONFIG_VIRTIO_BLK=m
 # CONFIG_BLK_DEV_HD is not set
+CONFIG_BLK_DEV_RBD=m
+CONFIG_SENSORS_LIS3LV02D=m
 CONFIG_MISC_DEVICES=y
+# CONFIG_AD525X_DPOT is not set
 # CONFIG_IBM_ASM is not set
 # CONFIG_PHANTOM is not set
+# CONFIG_INTEL_MID_PTI is not set
 # CONFIG_SGI_IOC4 is not set
 CONFIG_TIFM_CORE=m
 CONFIG_TIFM_7XX1=m
 CONFIG_ICS932S401=m
 CONFIG_ENCLOSURE_SERVICES=m
+CONFIG_CS5535_MFGPT=m
+CONFIG_CS5535_MFGPT_DEFAULT_IRQ=7
+CONFIG_CS5535_CLOCK_EVENT_SRC=m
 CONFIG_HP_ILO=m
+CONFIG_APDS9802ALS=m
 CONFIG_ISL29003=m
+CONFIG_ISL29020=m
+CONFIG_SENSORS_TSL2550=m
+CONFIG_SENSORS_BH1780=m
+CONFIG_SENSORS_BH1770=m
+CONFIG_SENSORS_APDS990X=m
+CONFIG_HMC6352=m
+CONFIG_DS1682=m
+CONFIG_VMWARE_BALLOON=m
+CONFIG_BMP085=m
+CONFIG_PCH_PHUB=m
+CONFIG_USB_SWITCH_FSA9480=m
 CONFIG_C2PORT=m
 CONFIG_C2PORT_DURAMAR_2150=m
 
@@ -1213,13 +1362,28 @@ CONFIG_EEPROM_93CX6=m
 CONFIG_CB710_CORE=m
 # CONFIG_CB710_DEBUG is not set
 CONFIG_CB710_DEBUG_ASSUMPTIONS=y
+CONFIG_IWMC3200TOP=m
+# CONFIG_IWMC3200TOP_DEBUG is not set
+# CONFIG_IWMC3200TOP_DEBUGFS is not set
+
+#
+# Texas Instruments shared transport line discipline
+#
+CONFIG_TI_ST=m
+CONFIG_SENSORS_LIS3_I2C=m
+
+#
+# Altera FPGA firmware download module
+#
+# CONFIG_ALTERA_STAPL is not set
 CONFIG_HAVE_IDE=y
 # CONFIG_IDE is not set
 
 #
 # SCSI device support
 #
-CONFIG_RAID_ATTRS=y
+CONFIG_SCSI_MOD=m
+CONFIG_RAID_ATTRS=m
 CONFIG_SCSI=m
 CONFIG_SCSI_DMA=y
 # CONFIG_SCSI_TGT is not set
@@ -1253,15 +1417,19 @@ CONFIG_SCSI_SAS_ATTRS=m
 CONFIG_SCSI_SAS_LIBSAS=m
 CONFIG_SCSI_SAS_ATA=y
 CONFIG_SCSI_SAS_HOST_SMP=y
-CONFIG_SCSI_SAS_LIBSAS_DEBUG=y
 CONFIG_SCSI_SRP_ATTRS=m
 CONFIG_SCSI_LOWLEVEL=y
 CONFIG_ISCSI_TCP=m
+CONFIG_ISCSI_BOOT_SYSFS=m
 CONFIG_SCSI_CXGB3_ISCSI=m
+CONFIG_SCSI_CXGB4_ISCSI=m
 CONFIG_SCSI_BNX2_ISCSI=m
+CONFIG_SCSI_BNX2X_FCOE=m
 CONFIG_BE2ISCSI=m
 CONFIG_BLK_DEV_3W_XXXX_RAID=m
+CONFIG_SCSI_HPSA=m
 CONFIG_SCSI_3W_9XXX=m
+CONFIG_SCSI_3W_SAS=m
 CONFIG_SCSI_7000FASST=m
 CONFIG_SCSI_ACARD=m
 CONFIG_SCSI_AHA152X=m
@@ -1287,11 +1455,12 @@ CONFIG_SCSI_AIC94XX=m
 # CONFIG_AIC94XX_DEBUG is not set
 CONFIG_SCSI_MVSAS=m
 CONFIG_SCSI_MVSAS_DEBUG=y
+# CONFIG_SCSI_MVSAS_TASKLET is not set
+CONFIG_SCSI_MVUMI=m
 CONFIG_SCSI_DPT_I2O=m
 CONFIG_SCSI_ADVANSYS=m
 CONFIG_SCSI_IN2000=m
 CONFIG_SCSI_ARCMSR=m
-# CONFIG_SCSI_ARCMSR_AER is not set
 CONFIG_MEGARAID_NEWGEN=y
 CONFIG_MEGARAID_MM=m
 CONFIG_MEGARAID_MAILBOX=m
@@ -1303,6 +1472,7 @@ CONFIG_SCSI_MPT2SAS_MAX_SGE=128
 CONFIG_SCSI_HPTIOP=m
 CONFIG_SCSI_BUSLOGIC=m
 CONFIG_SCSI_FLASHPOINT=y
+CONFIG_VMWARE_PVSCSI=m
 CONFIG_LIBFC=m
 CONFIG_LIBFCOE=m
 CONFIG_FCOE=m
@@ -1316,6 +1486,7 @@ CONFIG_SCSI_EATA_MAX_TAGS=16
 CONFIG_SCSI_FUTURE_DOMAIN=m
 CONFIG_SCSI_FD_MCS=m
 CONFIG_SCSI_GDTH=m
+CONFIG_SCSI_ISCI=m
 CONFIG_SCSI_GENERIC_NCR5380=m
 CONFIG_SCSI_GENERIC_NCR5380_MMIO=m
 CONFIG_SCSI_GENERIC_NCR53C400=y
@@ -1363,6 +1534,7 @@ CONFIG_SCSI_ULTRASTOR=m
 CONFIG_SCSI_NSP32=m
 # CONFIG_SCSI_DEBUG is not set
 CONFIG_SCSI_PMCRAID=m
+CONFIG_SCSI_PM8001=m
 # CONFIG_SCSI_SRP is not set
 CONFIG_SCSI_BFA_FC=m
 CONFIG_SCSI_LOWLEVEL_PCMCIA=y
@@ -1385,30 +1557,48 @@ CONFIG_ATA=m
 CONFIG_ATA_VERBOSE_ERROR=y
 CONFIG_ATA_ACPI=y
 CONFIG_SATA_PMP=y
+
+#
+# Controllers with non-SFF native interface
+#
 CONFIG_SATA_AHCI=m
+CONFIG_SATA_AHCI_PLATFORM=m
+CONFIG_SATA_INIC162X=m
+CONFIG_SATA_ACARD_AHCI=m
 CONFIG_SATA_SIL24=m
 CONFIG_ATA_SFF=y
-CONFIG_SATA_SVW=m
+
+#
+# SFF controllers with custom DMA interface
+#
+CONFIG_PDC_ADMA=m
+CONFIG_SATA_QSTOR=m
+CONFIG_SATA_SX4=m
+CONFIG_ATA_BMDMA=y
+
+#
+# SATA SFF controllers with BMDMA
+#
 CONFIG_ATA_PIIX=m
 CONFIG_SATA_MV=m
 CONFIG_SATA_NV=m
-CONFIG_PDC_ADMA=m
-CONFIG_SATA_QSTOR=m
 CONFIG_SATA_PROMISE=m
-CONFIG_SATA_SX4=m
 CONFIG_SATA_SIL=m
 CONFIG_SATA_SIS=m
+CONFIG_SATA_SVW=m
 CONFIG_SATA_ULI=m
 CONFIG_SATA_VIA=m
 CONFIG_SATA_VITESSE=m
-CONFIG_SATA_INIC162X=m
-CONFIG_PATA_ACPI=m
+
+#
+# PATA SFF controllers with BMDMA
+#
 CONFIG_PATA_ALI=m
 CONFIG_PATA_AMD=m
+CONFIG_PATA_ARASAN_CF=m
 CONFIG_PATA_ARTOP=m
-CONFIG_PATA_ATP867X=m
 CONFIG_PATA_ATIIXP=m
-CONFIG_PATA_CMD640_PCI=m
+CONFIG_PATA_ATP867X=m
 CONFIG_PATA_CMD64X=m
 CONFIG_PATA_CS5520=m
 CONFIG_PATA_CS5530=m
@@ -1416,42 +1606,53 @@ CONFIG_PATA_CS5535=m
 CONFIG_PATA_CS5536=m
 CONFIG_PATA_CYPRESS=m
 CONFIG_PATA_EFAR=m
-CONFIG_ATA_GENERIC=m
 CONFIG_PATA_HPT366=m
 CONFIG_PATA_HPT37X=m
 CONFIG_PATA_HPT3X2N=m
 CONFIG_PATA_HPT3X3=m
 CONFIG_PATA_HPT3X3_DMA=y
-CONFIG_PATA_ISAPNP=m
-CONFIG_PATA_IT821X=m
 CONFIG_PATA_IT8213=m
+CONFIG_PATA_IT821X=m
 CONFIG_PATA_JMICRON=m
-CONFIG_PATA_LEGACY=m
-CONFIG_PATA_TRIFLEX=m
 CONFIG_PATA_MARVELL=m
-CONFIG_PATA_MPIIX=m
-CONFIG_PATA_OLDPIIX=m
 CONFIG_PATA_NETCELL=m
 CONFIG_PATA_NINJA32=m
-CONFIG_PATA_NS87410=m
 CONFIG_PATA_NS87415=m
-CONFIG_PATA_OPTI=m
+CONFIG_PATA_OLDPIIX=m
 CONFIG_PATA_OPTIDMA=m
-CONFIG_PATA_PCMCIA=m
+CONFIG_PATA_PDC2027X=m
 CONFIG_PATA_PDC_OLD=m
-CONFIG_PATA_QDI=m
 CONFIG_PATA_RADISYS=m
 CONFIG_PATA_RDC=m
-CONFIG_PATA_RZ1000=m
 CONFIG_PATA_SC1200=m
+CONFIG_PATA_SCH=m
 CONFIG_PATA_SERVERWORKS=m
-CONFIG_PATA_PDC2027X=m
 CONFIG_PATA_SIL680=m
 CONFIG_PATA_SIS=m
+CONFIG_PATA_TOSHIBA=m
+CONFIG_PATA_TRIFLEX=m
 CONFIG_PATA_VIA=m
 CONFIG_PATA_WINBOND=m
+
+#
+# PIO-only SFF controllers
+#
+CONFIG_PATA_CMD640_PCI=m
+CONFIG_PATA_ISAPNP=m
+CONFIG_PATA_MPIIX=m
+CONFIG_PATA_NS87410=m
+CONFIG_PATA_OPTI=m
+CONFIG_PATA_PCMCIA=m
+CONFIG_PATA_QDI=m
+CONFIG_PATA_RZ1000=m
 CONFIG_PATA_WINBOND_VLB=m
-CONFIG_PATA_SCH=m
+
+#
+# Generic fallback / legacy drivers
+#
+CONFIG_PATA_ACPI=m
+CONFIG_ATA_GENERIC=m
+CONFIG_PATA_LEGACY=m
 CONFIG_MD=y
 CONFIG_BLK_DEV_MD=m
 CONFIG_MD_LINEAR=m
@@ -1460,15 +1661,19 @@ CONFIG_MD_RAID1=m
 CONFIG_MD_RAID10=m
 CONFIG_MD_RAID456=m
 # CONFIG_MULTICORE_RAID456 is not set
-CONFIG_MD_RAID6_PQ=m
-CONFIG_ASYNC_RAID6_TEST=m
 CONFIG_MD_MULTIPATH=m
 # CONFIG_MD_FAULTY is not set
 CONFIG_BLK_DEV_DM=m
 # CONFIG_DM_DEBUG is not set
+CONFIG_DM_BUFIO=m
+CONFIG_DM_PERSISTENT_DATA=m
 CONFIG_DM_CRYPT=m
 CONFIG_DM_SNAPSHOT=m
+CONFIG_DM_THIN_PROVISIONING=m
+# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set
+# CONFIG_DM_DEBUG_SPACE_MAPS is not set
 CONFIG_DM_MIRROR=m
+CONFIG_DM_RAID=m
 CONFIG_DM_LOG_USERSPACE=m
 CONFIG_DM_ZERO=m
 CONFIG_DM_MULTIPATH=m
@@ -1476,6 +1681,8 @@ CONFIG_DM_MULTIPATH_QL=m
 CONFIG_DM_MULTIPATH_ST=m
 CONFIG_DM_DELAY=m
 CONFIG_DM_UEVENT=y
+CONFIG_DM_FLAKEY=m
+# CONFIG_TARGET_CORE is not set
 CONFIG_FUSION=y
 CONFIG_FUSION_SPI=m
 CONFIG_FUSION_FC=m
@@ -1487,27 +1694,18 @@ CONFIG_FUSION_CTL=m
 #
 # IEEE 1394 (FireWire) support
 #
-
-#
-# You can enable one or both FireWire driver stacks.
-#
-
-#
-# See the help texts for more information.
-#
 CONFIG_FIREWIRE=m
 CONFIG_FIREWIRE_OHCI=m
 CONFIG_FIREWIRE_OHCI_DEBUG=y
 CONFIG_FIREWIRE_SBP2=m
 CONFIG_FIREWIRE_NET=m
-# CONFIG_IEEE1394 is not set
+# CONFIG_FIREWIRE_NOSY is not set
 # CONFIG_I2O is not set
 # CONFIG_MACINTOSH_DRIVERS is not set
 CONFIG_NETDEVICES=y
-CONFIG_IFB=m
-CONFIG_DUMMY=m
+CONFIG_NET_CORE=y
 CONFIG_BONDING=m
-CONFIG_MACVLAN=m
+CONFIG_DUMMY=m
 CONFIG_EQUALIZER=m
 CONFIG_IMQ=m
 # CONFIG_IMQ_BEHAVIOR_AA is not set
@@ -1515,58 +1713,114 @@ CONFIG_IMQ_BEHAVIOR_AB=y
 # CONFIG_IMQ_BEHAVIOR_BA is not set
 # CONFIG_IMQ_BEHAVIOR_BB is not set
 CONFIG_IMQ_NUM_DEVS=2
+# CONFIG_NET_FC is not set
+CONFIG_MII=m
+CONFIG_IEEE802154_DRIVERS=m
+CONFIG_IEEE802154_FAKEHARD=m
+CONFIG_IFB=m
+CONFIG_MACVLAN=m
+CONFIG_MACVTAP=m
+# CONFIG_NETCONSOLE is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
 CONFIG_TUN=m
 CONFIG_VETH=m
-CONFIG_NET_SB1000=m
+CONFIG_VIRTIO_NET=m
+CONFIG_SUNGEM_PHY=m
 # CONFIG_ARCNET is not set
-CONFIG_PHYLIB=y
+CONFIG_ATM_DRIVERS=y
+# CONFIG_ATM_DUMMY is not set
+CONFIG_ATM_TCP=m
+CONFIG_ATM_LANAI=m
+CONFIG_ATM_ENI=m
+CONFIG_ATM_ENI_DEBUG=y
+CONFIG_ATM_ENI_TUNE_BURST=y
+CONFIG_ATM_ENI_BURST_TX_16W=y
+CONFIG_ATM_ENI_BURST_TX_8W=y
+CONFIG_ATM_ENI_BURST_TX_4W=y
+CONFIG_ATM_ENI_BURST_TX_2W=y
+CONFIG_ATM_ENI_BURST_RX_16W=y
+CONFIG_ATM_ENI_BURST_RX_8W=y
+CONFIG_ATM_ENI_BURST_RX_4W=y
+CONFIG_ATM_ENI_BURST_RX_2W=y
+CONFIG_ATM_FIRESTREAM=m
+CONFIG_ATM_ZATM=m
+# CONFIG_ATM_ZATM_DEBUG is not set
+CONFIG_ATM_NICSTAR=m
+CONFIG_ATM_NICSTAR_USE_SUNI=y
+CONFIG_ATM_NICSTAR_USE_IDT77105=y
+CONFIG_ATM_IDT77252=m
+# CONFIG_ATM_IDT77252_DEBUG is not set
+# CONFIG_ATM_IDT77252_RCV_ALL is not set
+CONFIG_ATM_IDT77252_USE_SUNI=y
+CONFIG_ATM_AMBASSADOR=m
+# CONFIG_ATM_AMBASSADOR_DEBUG is not set
+CONFIG_ATM_HORIZON=m
+# CONFIG_ATM_HORIZON_DEBUG is not set
+CONFIG_ATM_IA=m
+# CONFIG_ATM_IA_DEBUG is not set
+CONFIG_ATM_FORE200E=m
+CONFIG_ATM_FORE200E_USE_TASKLET=y
+CONFIG_ATM_FORE200E_TX_RETRY=16
+CONFIG_ATM_FORE200E_DEBUG=0
+CONFIG_ATM_HE=m
+CONFIG_ATM_HE_USE_SUNI=y
+CONFIG_ATM_SOLOS=m
 
 #
-# MII PHY device drivers
+# CAIF transport drivers
 #
-CONFIG_MARVELL_PHY=m
-CONFIG_DAVICOM_PHY=m
-CONFIG_QSEMI_PHY=m
-CONFIG_LXT_PHY=m
-CONFIG_CICADA_PHY=m
-CONFIG_VITESSE_PHY=m
-CONFIG_SMSC_PHY=m
-CONFIG_BROADCOM_PHY=m
-CONFIG_ICPLUS_PHY=m
-CONFIG_REALTEK_PHY=m
-CONFIG_NATIONAL_PHY=m
-CONFIG_STE10XP=m
-CONFIG_LSI_ET1011C_PHY=m
-# CONFIG_FIXED_PHY is not set
-CONFIG_MDIO_BITBANG=m
-CONFIG_NET_ETHERNET=y
-CONFIG_MII=m
-CONFIG_HAPPYMEAL=m
-CONFIG_SUNGEM=m
-CONFIG_CASSINI=m
+CONFIG_ETHERNET=y
+CONFIG_MDIO=m
 CONFIG_NET_VENDOR_3COM=y
 CONFIG_EL1=m
-CONFIG_EL2=m
-CONFIG_ELPLUS=m
-CONFIG_EL16=m
 CONFIG_EL3=m
 CONFIG_3C515=m
-CONFIG_ELMC=m
-CONFIG_ELMC_II=m
+CONFIG_PCMCIA_3C574=m
+CONFIG_PCMCIA_3C589=m
 CONFIG_VORTEX=m
 CONFIG_TYPHOON=m
+CONFIG_NET_VENDOR_ADAPTEC=y
+CONFIG_ADAPTEC_STARFIRE=m
+CONFIG_NET_VENDOR_ALTEON=y
+CONFIG_ACENIC=m
+# CONFIG_ACENIC_OMIT_TIGON_I is not set
+CONFIG_NET_VENDOR_AMD=y
+CONFIG_AMD8111_ETH=m
 CONFIG_LANCE=m
-CONFIG_NET_VENDOR_SMC=y
-CONFIG_WD80x3=m
-CONFIG_ULTRAMCA=m
-CONFIG_ULTRA=m
-CONFIG_ULTRA32=m
-CONFIG_SMC9194=m
-CONFIG_ETHOC=m
-CONFIG_NET_VENDOR_RACAL=y
-CONFIG_NI52=m
+CONFIG_PCNET32=m
+CONFIG_DEPCA=m
+CONFIG_PCMCIA_NMCLAN=m
 CONFIG_NI65=m
+CONFIG_NET_VENDOR_ATHEROS=y
+CONFIG_ATL2=m
+CONFIG_ATL1=m
+CONFIG_ATL1E=m
+CONFIG_ATL1C=m
+CONFIG_NET_VENDOR_BROADCOM=y
+CONFIG_B44=m
+CONFIG_B44_PCI_AUTOSELECT=y
+CONFIG_B44_PCICORE_AUTOSELECT=y
+CONFIG_B44_PCI=y
+CONFIG_BNX2=m
+CONFIG_CNIC=m
+CONFIG_TIGON3=m
+CONFIG_BNX2X=m
+CONFIG_NET_VENDOR_BROCADE=y
+CONFIG_BNA=m
+CONFIG_NET_VENDOR_CHELSIO=y
+CONFIG_CHELSIO_T1=m
+CONFIG_CHELSIO_T1_1G=y
+CONFIG_CHELSIO_T3=m
+CONFIG_CHELSIO_T4=m
+CONFIG_CHELSIO_T4VF=m
+CONFIG_NET_VENDOR_CIRRUS=y
+CONFIG_CS89x0=m
+CONFIG_NET_VENDOR_CISCO=y
+CONFIG_ENIC=m
 CONFIG_DNET=m
+CONFIG_NET_VENDOR_DEC=y
+CONFIG_EWRK3=m
 CONFIG_NET_TULIP=y
 CONFIG_DE2104X=m
 CONFIG_DE2104X_DSL=0
@@ -1579,170 +1833,197 @@ CONFIG_WINBOND_840=m
 CONFIG_DM9102=m
 CONFIG_ULI526X=m
 CONFIG_PCMCIA_XIRCOM=m
+CONFIG_NET_VENDOR_DLINK=y
+CONFIG_DE600=m
+CONFIG_DE620=m
+CONFIG_DL2K=m
+CONFIG_SUNDANCE=m
+# CONFIG_SUNDANCE_MMIO is not set
+CONFIG_NET_VENDOR_EMULEX=y
+CONFIG_BE2NET=m
+CONFIG_NET_VENDOR_EXAR=y
+CONFIG_S2IO=m
+CONFIG_VXGE=m
+# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
+CONFIG_NET_VENDOR_FUJITSU=y
 CONFIG_AT1700=m
-CONFIG_DEPCA=m
+CONFIG_PCMCIA_FMVJ18X=m
+CONFIG_ETH16I=m
+CONFIG_NET_VENDOR_HP=y
 CONFIG_HP100=m
-CONFIG_NET_ISA=y
-CONFIG_E2100=m
-CONFIG_EWRK3=m
+CONFIG_NET_VENDOR_IBM=y
+# CONFIG_IBM_EMAC_ZMII is not set
+# CONFIG_IBM_EMAC_RGMII is not set
+# CONFIG_IBM_EMAC_TAH is not set
+# CONFIG_IBM_EMAC_EMAC4 is not set
+# CONFIG_IBM_EMAC_NO_FLOW_CTRL is not set
+# CONFIG_IBM_EMAC_MAL_CLR_ICINTSTAT is not set
+# CONFIG_IBM_EMAC_MAL_COMMON_ERR is not set
+CONFIG_NET_VENDOR_INTEL=y
+CONFIG_E100=m
+CONFIG_E1000=m
+CONFIG_E1000E=m
+CONFIG_IGB=m
+CONFIG_IGB_DCA=y
+CONFIG_IGBVF=m
+CONFIG_IXGB=m
+CONFIG_IXGBE=m
+CONFIG_IXGBE_DCA=y
+CONFIG_IXGBEVF=m
+CONFIG_NET_VENDOR_I825XX=y
+CONFIG_ELPLUS=m
+CONFIG_EL16=m
+CONFIG_ELMC=m
+CONFIG_ELMC_II=m
+CONFIG_APRICOT=m
 CONFIG_EEXPRESS=m
 CONFIG_EEXPRESS_PRO=m
-CONFIG_HPLAN_PLUS=m
-CONFIG_HPLAN=m
 CONFIG_LP486E=m
-CONFIG_ETH16I=m
-CONFIG_NE2000=m
+CONFIG_NI52=m
 CONFIG_ZNET=m
-CONFIG_SEEQ8005=m
-CONFIG_NE2_MCA=m
+CONFIG_IP1000=m
+CONFIG_JME=m
+CONFIG_NET_VENDOR_MARVELL=y
+CONFIG_SKGE=m
+CONFIG_SKGE_GENESIS=y
+CONFIG_SKY2=m
+CONFIG_NET_VENDOR_MELLANOX=y
+CONFIG_MLX4_EN=m
+CONFIG_MLX4_CORE=m
+CONFIG_MLX4_DEBUG=y
+CONFIG_NET_VENDOR_MICREL=y
+CONFIG_KS8842=m
+CONFIG_KS8851_MLL=m
+CONFIG_KSZ884X_PCI=m
+CONFIG_NET_VENDOR_MYRI=y
+CONFIG_MYRI10GE=m
+CONFIG_MYRI10GE_DCA=y
+CONFIG_FEALNX=m
+CONFIG_NET_VENDOR_NATSEMI=y
 CONFIG_IBMLANA=m
-# CONFIG_IBM_NEW_EMAC_ZMII is not set
-# CONFIG_IBM_NEW_EMAC_RGMII is not set
-# CONFIG_IBM_NEW_EMAC_TAH is not set
-# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
-# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
-# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
-# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
-CONFIG_NET_PCI=y
-CONFIG_PCNET32=m
-CONFIG_AMD8111_ETH=m
-CONFIG_ADAPTEC_STARFIRE=m
+CONFIG_NATSEMI=m
+CONFIG_NS83820=m
+CONFIG_NET_VENDOR_8390=y
+CONFIG_EL2=m
 CONFIG_AC3200=m
-CONFIG_APRICOT=m
-CONFIG_B44=m
-CONFIG_B44_PCI_AUTOSELECT=y
-CONFIG_B44_PCICORE_AUTOSELECT=y
-CONFIG_B44_PCI=y
-CONFIG_FORCEDETH=m
-# CONFIG_FORCEDETH_NAPI is not set
-CONFIG_CS89x0=m
-CONFIG_E100=m
+CONFIG_PCMCIA_AXNET=m
+CONFIG_E2100=m
+CONFIG_ES3210=m
+CONFIG_HPLAN_PLUS=m
+CONFIG_HPLAN=m
 CONFIG_LNE390=m
-CONFIG_FEALNX=m
-CONFIG_NATSEMI=m
+CONFIG_NE2000=m
+CONFIG_NE2_MCA=m
 CONFIG_NE2K_PCI=m
 CONFIG_NE3210=m
-CONFIG_ES3210=m
+CONFIG_PCMCIA_PCNET=m
+CONFIG_ULTRAMCA=m
+CONFIG_ULTRA=m
+CONFIG_ULTRA32=m
+CONFIG_WD80x3=m
+CONFIG_NET_VENDOR_NVIDIA=y
+CONFIG_FORCEDETH=m
+CONFIG_NET_VENDOR_OKI=y
+CONFIG_PCH_GBE=m
+CONFIG_ETHOC=m
+CONFIG_NET_PACKET_ENGINE=y
+CONFIG_HAMACHI=m
+CONFIG_YELLOWFIN=m
+CONFIG_NET_VENDOR_QLOGIC=y
+CONFIG_QLA3XXX=m
+CONFIG_QLCNIC=m
+CONFIG_QLGE=m
+CONFIG_NETXEN_NIC=m
+CONFIG_NET_VENDOR_RACAL=y
+CONFIG_NET_VENDOR_REALTEK=y
+CONFIG_ATP=m
 CONFIG_8139CP=m
 CONFIG_8139TOO=m
 # CONFIG_8139TOO_PIO is not set
 CONFIG_8139TOO_TUNE_TWISTER=y
 CONFIG_8139TOO_8129=y
 # CONFIG_8139_OLD_RX_RESET is not set
+CONFIG_R8169=m
+CONFIG_NET_VENDOR_RDC=y
 CONFIG_R6040=m
+CONFIG_NET_VENDOR_SEEQ=y
+CONFIG_SEEQ8005=m
+CONFIG_NET_VENDOR_SILAN=y
+CONFIG_SC92031=m
+CONFIG_NET_VENDOR_SIS=y
 CONFIG_SIS900=m
+CONFIG_SIS190=m
+CONFIG_SFC=m
+CONFIG_SFC_MTD=y
+CONFIG_NET_VENDOR_SMSC=y
+CONFIG_SMC9194=m
+CONFIG_PCMCIA_SMC91C92=m
 CONFIG_EPIC100=m
 CONFIG_SMSC9420=m
-CONFIG_SUNDANCE=m
-# CONFIG_SUNDANCE_MMIO is not set
+CONFIG_NET_VENDOR_STMICRO=y
+CONFIG_STMMAC_ETH=m
+# CONFIG_STMMAC_DA is not set
+CONFIG_STMMAC_RING=y
+# CONFIG_STMMAC_CHAINED is not set
+CONFIG_NET_VENDOR_SUN=y
+CONFIG_HAPPYMEAL=m
+CONFIG_SUNGEM=m
+CONFIG_CASSINI=m
+CONFIG_NIU=m
+CONFIG_NET_VENDOR_TEHUTI=y
+CONFIG_TEHUTI=m
+CONFIG_NET_VENDOR_TI=y
 CONFIG_TLAN=m
-CONFIG_KS8842=m
-CONFIG_KS8851_MLL=m
+CONFIG_NET_VENDOR_VIA=y
 CONFIG_VIA_RHINE=m
 CONFIG_VIA_RHINE_MMIO=y
-CONFIG_SC92031=m
-CONFIG_NET_POCKET=y
-CONFIG_ATP=m
-CONFIG_DE600=m
-CONFIG_DE620=m
-CONFIG_ATL2=m
-CONFIG_NETDEV_1000=y
-CONFIG_ACENIC=m
-# CONFIG_ACENIC_OMIT_TIGON_I is not set
-CONFIG_DL2K=m
-CONFIG_E1000=m
-CONFIG_E1000E=m
-CONFIG_IP1000=m
-CONFIG_IGB=m
-CONFIG_IGB_DCA=y
-CONFIG_IGBVF=m
-CONFIG_NS83820=m
-CONFIG_HAMACHI=m
-CONFIG_YELLOWFIN=m
-CONFIG_R8169=m
-CONFIG_R8169_VLAN=y
-CONFIG_SIS190=m
-CONFIG_SKGE=m
-CONFIG_SKY2=m
 CONFIG_VIA_VELOCITY=m
-CONFIG_TIGON3=m
-CONFIG_BNX2=m
-CONFIG_CNIC=m
-CONFIG_QLA3XXX=m
-CONFIG_ATL1=m
-CONFIG_ATL1E=m
-CONFIG_ATL1C=m
-CONFIG_JME=m
-CONFIG_NETDEV_10000=y
-CONFIG_MDIO=m
-CONFIG_CHELSIO_T1=m
-CONFIG_CHELSIO_T1_1G=y
-CONFIG_CHELSIO_T3_DEPENDS=y
-CONFIG_CHELSIO_T3=m
-CONFIG_ENIC=m
-CONFIG_IXGBE=m
-CONFIG_IXGBE_DCA=y
-CONFIG_IXGB=m
-CONFIG_S2IO=m
-CONFIG_VXGE=m
-# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
-CONFIG_MYRI10GE=m
-CONFIG_MYRI10GE_DCA=y
-CONFIG_NETXEN_NIC=m
-CONFIG_NIU=m
-CONFIG_MLX4_EN=m
-CONFIG_MLX4_CORE=m
-CONFIG_MLX4_DEBUG=y
-CONFIG_TEHUTI=m
-CONFIG_BNX2X=m
-CONFIG_QLGE=m
-CONFIG_SFC=m
-CONFIG_SFC_MTD=y
-CONFIG_BE2NET=m
-# CONFIG_TR is not set
-CONFIG_WLAN=y
-# CONFIG_WLAN_PRE80211 is not set
-CONFIG_WLAN_80211=y
-CONFIG_PCMCIA_RAYCS=m
-# CONFIG_LIBERTAS is not set
-# CONFIG_LIBERTAS_THINFIRM is not set
-CONFIG_AIRO=m
-CONFIG_ATMEL=m
-CONFIG_PCI_ATMEL=m
-CONFIG_PCMCIA_ATMEL=m
-CONFIG_AT76C50X_USB=m
-CONFIG_AIRO_CS=m
-CONFIG_PCMCIA_WL3501=m
-# CONFIG_PRISM54 is not set
-CONFIG_USB_ZD1201=m
-CONFIG_USB_NET_RNDIS_WLAN=m
-# CONFIG_RTL8180 is not set
-# CONFIG_RTL8187 is not set
-# CONFIG_ADM8211 is not set
-# CONFIG_MAC80211_HWSIM is not set
-# CONFIG_MWL8K is not set
-# CONFIG_P54_COMMON is not set
-# CONFIG_ATH_COMMON is not set
-# CONFIG_IPW2100 is not set
-# CONFIG_IPW2200 is not set
-# CONFIG_IWLWIFI is not set
-CONFIG_HOSTAP=m
-CONFIG_HOSTAP_FIRMWARE=y
-# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set
-CONFIG_HOSTAP_PLX=m
-CONFIG_HOSTAP_PCI=m
-CONFIG_HOSTAP_CS=m
-# CONFIG_B43 is not set
-# CONFIG_B43LEGACY is not set
-# CONFIG_ZD1211RW is not set
-# CONFIG_RT2X00 is not set
-# CONFIG_HERMES is not set
-# CONFIG_WL12XX is not set
-# CONFIG_IWM is not set
+CONFIG_NET_VENDOR_XIRCOM=y
+CONFIG_PCMCIA_XIRC2PS=m
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+CONFIG_NET_SB1000=m
+CONFIG_PHYLIB=y
 
 #
-# Enable WiMAX (Networking options) to see the WiMAX drivers
+# MII PHY device drivers
 #
+CONFIG_MARVELL_PHY=m
+CONFIG_DAVICOM_PHY=m
+CONFIG_QSEMI_PHY=m
+CONFIG_LXT_PHY=m
+CONFIG_CICADA_PHY=m
+CONFIG_VITESSE_PHY=m
+CONFIG_SMSC_PHY=m
+CONFIG_BROADCOM_PHY=m
+CONFIG_ICPLUS_PHY=m
+CONFIG_REALTEK_PHY=m
+CONFIG_NATIONAL_PHY=m
+CONFIG_STE10XP=m
+CONFIG_LSI_ET1011C_PHY=m
+CONFIG_MICREL_PHY=m
+# CONFIG_FIXED_PHY is not set
+CONFIG_MDIO_BITBANG=m
+CONFIG_MDIO_GPIO=m
+# CONFIG_PLIP is not set
+CONFIG_PPP=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_MPPE=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPPOATM=m
+CONFIG_PPPOE=m
+CONFIG_PPTP=m
+CONFIG_PPPOL2TP=m
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_SLIP=m
+CONFIG_SLHC=m
+CONFIG_SLIP_COMPRESSED=y
+CONFIG_SLIP_SMART=y
+CONFIG_SLIP_MODE_SLIP6=y
+# CONFIG_TR is not set
 
 #
 # USB Network Adapters
@@ -1755,7 +2036,9 @@ CONFIG_USB_USBNET=m
 CONFIG_USB_NET_AX8817X=m
 CONFIG_USB_NET_CDCETHER=m
 CONFIG_USB_NET_CDC_EEM=m
+CONFIG_USB_NET_CDC_NCM=m
 CONFIG_USB_NET_DM9601=m
+CONFIG_USB_NET_SMSC75XX=m
 CONFIG_USB_NET_SMSC95XX=m
 CONFIG_USB_NET_GL620A=m
 CONFIG_USB_NET_NET1080=m
@@ -1770,17 +2053,63 @@ CONFIG_USB_ARMLINUX=y
 CONFIG_USB_EPSON2888=y
 CONFIG_USB_KC2190=y
 CONFIG_USB_NET_ZAURUS=m
+CONFIG_USB_NET_CX82310_ETH=m
+CONFIG_USB_NET_KALMIA=m
 CONFIG_USB_HSO=m
 CONFIG_USB_NET_INT51X1=m
-CONFIG_NET_PCMCIA=y
-CONFIG_PCMCIA_3C589=m
-CONFIG_PCMCIA_3C574=m
-CONFIG_PCMCIA_FMVJ18X=m
-CONFIG_PCMCIA_PCNET=m
-CONFIG_PCMCIA_NMCLAN=m
-CONFIG_PCMCIA_SMC91C92=m
-CONFIG_PCMCIA_XIRC2PS=m
-CONFIG_PCMCIA_AXNET=m
+# CONFIG_USB_IPHETH is not set
+CONFIG_USB_SIERRA_NET=m
+CONFIG_USB_VL600=m
+CONFIG_WLAN=y
+CONFIG_PCMCIA_RAYCS=m
+# CONFIG_LIBERTAS_THINFIRM is not set
+CONFIG_AIRO=m
+CONFIG_ATMEL=m
+CONFIG_PCI_ATMEL=m
+CONFIG_PCMCIA_ATMEL=m
+CONFIG_AT76C50X_USB=m
+CONFIG_AIRO_CS=m
+CONFIG_PCMCIA_WL3501=m
+# CONFIG_PRISM54 is not set
+CONFIG_USB_ZD1201=m
+CONFIG_USB_NET_RNDIS_WLAN=m
+# CONFIG_RTL8180 is not set
+# CONFIG_RTL8187 is not set
+# CONFIG_ADM8211 is not set
+# CONFIG_MAC80211_HWSIM is not set
+# CONFIG_MWL8K is not set
+# CONFIG_ATH_COMMON is not set
+# CONFIG_B43 is not set
+# CONFIG_B43LEGACY is not set
+# CONFIG_BRCMFMAC is not set
+CONFIG_HOSTAP=m
+CONFIG_HOSTAP_FIRMWARE=y
+# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set
+CONFIG_HOSTAP_PLX=m
+CONFIG_HOSTAP_PCI=m
+CONFIG_HOSTAP_CS=m
+# CONFIG_IPW2100 is not set
+# CONFIG_IPW2200 is not set
+# CONFIG_IWLWIFI is not set
+# CONFIG_IWL4965 is not set
+# CONFIG_IWL3945 is not set
+# CONFIG_IWM is not set
+# CONFIG_LIBERTAS is not set
+# CONFIG_HERMES is not set
+# CONFIG_P54_COMMON is not set
+# CONFIG_RT2X00 is not set
+# CONFIG_RTL8192CE is not set
+# CONFIG_RTL8192SE is not set
+# CONFIG_RTL8192DE is not set
+# CONFIG_RTL8192CU is not set
+# CONFIG_WL1251 is not set
+# CONFIG_WL12XX_MENU is not set
+# CONFIG_ZD1211RW is not set
+# CONFIG_MWIFIEX is not set
+
+#
+# Enable WiMAX (Networking options) to see the WiMAX drivers
+#
 CONFIG_WAN=y
 CONFIG_HOSTESS_SV11=m
 CONFIG_COSA=m
@@ -1792,110 +2121,30 @@ CONFIG_HDLC_RAW_ETH=m
 CONFIG_HDLC_CISCO=m
 CONFIG_HDLC_FR=m
 CONFIG_HDLC_PPP=m
-
-#
-# X.25/LAPB support is disabled
-#
-CONFIG_PCI200SYN=m
-CONFIG_WANXL=m
-# CONFIG_WANXL_BUILD_FIRMWARE is not set
-CONFIG_PC300TOO=m
-CONFIG_N2=m
-CONFIG_C101=m
-CONFIG_FARSYNC=m
-CONFIG_DSCC4=m
-CONFIG_DSCC4_PCISYNC=y
-CONFIG_DSCC4_PCI_RST=y
-CONFIG_DLCI=m
-CONFIG_DLCI_MAX=8
-CONFIG_SDLA=m
-CONFIG_SBNI=m
-CONFIG_SBNI_MULTILINE=y
-CONFIG_ATM_DRIVERS=y
-# CONFIG_ATM_DUMMY is not set
-CONFIG_ATM_TCP=m
-CONFIG_ATM_LANAI=m
-CONFIG_ATM_ENI=m
-CONFIG_ATM_ENI_DEBUG=y
-CONFIG_ATM_ENI_TUNE_BURST=y
-CONFIG_ATM_ENI_BURST_TX_16W=y
-CONFIG_ATM_ENI_BURST_TX_8W=y
-CONFIG_ATM_ENI_BURST_TX_4W=y
-CONFIG_ATM_ENI_BURST_TX_2W=y
-CONFIG_ATM_ENI_BURST_RX_16W=y
-CONFIG_ATM_ENI_BURST_RX_8W=y
-CONFIG_ATM_ENI_BURST_RX_4W=y
-CONFIG_ATM_ENI_BURST_RX_2W=y
-CONFIG_ATM_FIRESTREAM=m
-CONFIG_ATM_ZATM=m
-# CONFIG_ATM_ZATM_DEBUG is not set
-CONFIG_ATM_NICSTAR=m
-CONFIG_ATM_NICSTAR_USE_SUNI=y
-CONFIG_ATM_NICSTAR_USE_IDT77105=y
-CONFIG_ATM_IDT77252=m
-# CONFIG_ATM_IDT77252_DEBUG is not set
-# CONFIG_ATM_IDT77252_RCV_ALL is not set
-CONFIG_ATM_IDT77252_USE_SUNI=y
-CONFIG_ATM_AMBASSADOR=m
-# CONFIG_ATM_AMBASSADOR_DEBUG is not set
-CONFIG_ATM_HORIZON=m
-# CONFIG_ATM_HORIZON_DEBUG is not set
-CONFIG_ATM_IA=m
-# CONFIG_ATM_IA_DEBUG is not set
-CONFIG_ATM_FORE200E=m
-CONFIG_ATM_FORE200E_USE_TASKLET=y
-CONFIG_ATM_FORE200E_TX_RETRY=16
-CONFIG_ATM_FORE200E_DEBUG=0
-CONFIG_ATM_HE=m
-CONFIG_ATM_HE_USE_SUNI=y
-CONFIG_ATM_SOLOS=m
-CONFIG_IEEE802154_DRIVERS=m
-CONFIG_IEEE802154_FAKEHARD=m
+
+#
+# X.25/LAPB support is disabled
+#
+CONFIG_PCI200SYN=m
+CONFIG_WANXL=m
+# CONFIG_WANXL_BUILD_FIRMWARE is not set
+CONFIG_PC300TOO=m
+CONFIG_N2=m
+CONFIG_C101=m
+CONFIG_FARSYNC=m
+CONFIG_DSCC4=m
+CONFIG_DSCC4_PCISYNC=y
+CONFIG_DSCC4_PCI_RST=y
+CONFIG_DLCI=m
+CONFIG_DLCI_MAX=8
+CONFIG_SDLA=m
+CONFIG_SBNI=m
+CONFIG_SBNI_MULTILINE=y
 CONFIG_XEN_NETDEV_FRONTEND=m
-# CONFIG_FDDI is not set
-# CONFIG_HIPPI is not set
-# CONFIG_PLIP is not set
-CONFIG_PPP=m
-CONFIG_PPP_MULTILINK=y
-CONFIG_PPP_FILTER=y
-CONFIG_PPP_ASYNC=m
-CONFIG_PPP_SYNC_TTY=m
-CONFIG_PPP_DEFLATE=m
-CONFIG_PPP_BSDCOMP=m
-CONFIG_PPP_MPPE=m
-CONFIG_PPPOE=m
-CONFIG_PPPOATM=m
-CONFIG_PPPOL2TP=m
-CONFIG_SLIP=m
-CONFIG_SLIP_COMPRESSED=y
-CONFIG_SLHC=m
-CONFIG_SLIP_SMART=y
-CONFIG_SLIP_MODE_SLIP6=y
-# CONFIG_NET_FC is not set
-# CONFIG_NETCONSOLE is not set
-# CONFIG_NETPOLL is not set
-# CONFIG_NET_POLL_CONTROLLER is not set
-CONFIG_VIRTIO_NET=m
+CONFIG_XEN_NETDEV_BACKEND=m
 CONFIG_VMXNET3=m
 CONFIG_ISDN=y
 CONFIG_ISDN_I4L=m
-CONFIG_MISDN=m
-CONFIG_MISDN_DSP=m
-CONFIG_MISDN_L1OIP=m
-
-#
-# mISDN hardware drivers
-#
-CONFIG_MISDN_HFCPCI=m
-CONFIG_MISDN_HFCMULTI=m
-CONFIG_MISDN_HFCUSB=m
-CONFIG_MISDN_AVMFRITZ=m
-CONFIG_MISDN_SPEEDFAX=m
-CONFIG_MISDN_INFINEON=m
-CONFIG_MISDN_W6692=m
-CONFIG_MISDN_NETJET=m
-CONFIG_MISDN_IPAC=m
-CONFIG_MISDN_ISAR=m
 CONFIG_ISDN_PPP=y
 CONFIG_ISDN_PPP_VJ=y
 CONFIG_ISDN_MPP=y
@@ -1986,16 +2235,11 @@ CONFIG_ISDN_DRV_ICN=m
 CONFIG_ISDN_DRV_PCBIT=m
 CONFIG_ISDN_DRV_SC=m
 CONFIG_ISDN_DRV_ACT2000=m
-CONFIG_HYSDN=m
-CONFIG_HYSDN_CAPI=y
-CONFIG_ISDN_HDLC=m
 CONFIG_ISDN_CAPI=m
 CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y
 CONFIG_CAPI_TRACE=y
 CONFIG_ISDN_CAPI_MIDDLEWARE=y
 CONFIG_ISDN_CAPI_CAPI20=m
-CONFIG_ISDN_CAPI_CAPIFS_BOOL=y
-CONFIG_ISDN_CAPI_CAPIFS=m
 CONFIG_ISDN_CAPI_CAPIDRV=m
 
 #
@@ -2018,10 +2262,33 @@ CONFIG_ISDN_DIVAS_DIVACAPI=m
 CONFIG_ISDN_DIVAS_USERIDI=m
 CONFIG_ISDN_DIVAS_MAINT=m
 CONFIG_ISDN_DRV_GIGASET=m
+CONFIG_GIGASET_CAPI=y
+# CONFIG_GIGASET_I4L is not set
+# CONFIG_GIGASET_DUMMYLL is not set
 CONFIG_GIGASET_BASE=m
 CONFIG_GIGASET_M105=m
 CONFIG_GIGASET_M101=m
 # CONFIG_GIGASET_DEBUG is not set
+CONFIG_HYSDN=m
+CONFIG_HYSDN_CAPI=y
+CONFIG_MISDN=m
+CONFIG_MISDN_DSP=m
+CONFIG_MISDN_L1OIP=m
+
+#
+# mISDN hardware drivers
+#
+CONFIG_MISDN_HFCPCI=m
+CONFIG_MISDN_HFCMULTI=m
+CONFIG_MISDN_HFCUSB=m
+CONFIG_MISDN_AVMFRITZ=m
+CONFIG_MISDN_SPEEDFAX=m
+CONFIG_MISDN_INFINEON=m
+CONFIG_MISDN_W6692=m
+CONFIG_MISDN_NETJET=m
+CONFIG_MISDN_IPAC=m
+CONFIG_MISDN_ISAR=m
+CONFIG_ISDN_HDLC=m
 # CONFIG_PHONE is not set
 
 #
@@ -2030,6 +2297,7 @@ CONFIG_GIGASET_M101=m
 CONFIG_INPUT=y
 CONFIG_INPUT_FF_MEMLESS=m
 CONFIG_INPUT_POLLDEV=m
+CONFIG_INPUT_SPARSEKMAP=m
 
 #
 # Userland interfaces
@@ -2041,18 +2309,25 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
 # CONFIG_INPUT_JOYDEV is not set
 # CONFIG_INPUT_EVDEV is not set
 # CONFIG_INPUT_EVBUG is not set
-CONFIG_XEN_KBDDEV_FRONTEND=m
 
 #
 # Input Device Drivers
 #
 CONFIG_INPUT_KEYBOARD=y
 CONFIG_KEYBOARD_ADP5588=m
+CONFIG_KEYBOARD_ADP5589=m
 CONFIG_KEYBOARD_ATKBD=y
-CONFIG_QT2160=m
+CONFIG_KEYBOARD_QT1070=m
+CONFIG_KEYBOARD_QT2160=m
 CONFIG_KEYBOARD_LKKBD=m
+CONFIG_KEYBOARD_GPIO=m
+CONFIG_KEYBOARD_GPIO_POLLED=m
+CONFIG_KEYBOARD_TCA6416=m
+CONFIG_KEYBOARD_MATRIX=m
 CONFIG_KEYBOARD_LM8323=m
 CONFIG_KEYBOARD_MAX7359=m
+CONFIG_KEYBOARD_MCS=m
+CONFIG_KEYBOARD_MPR121=m
 CONFIG_KEYBOARD_NEWTON=m
 CONFIG_KEYBOARD_OPENCORES=m
 CONFIG_KEYBOARD_STOWAWAY=m
@@ -2063,20 +2338,28 @@ CONFIG_KEYBOARD_XTKBD=m
 # CONFIG_INPUT_TABLET is not set
 # CONFIG_INPUT_TOUCHSCREEN is not set
 CONFIG_INPUT_MISC=y
+CONFIG_INPUT_AD714X=m
+CONFIG_INPUT_AD714X_I2C=m
+CONFIG_INPUT_BMA150=m
 CONFIG_INPUT_PCSPKR=m
+# CONFIG_INPUT_MMA8450 is not set
+# CONFIG_INPUT_MPU3050 is not set
 CONFIG_INPUT_APANEL=m
 # CONFIG_INPUT_WISTRON_BTNS is not set
 # CONFIG_INPUT_ATLAS_BTNS is not set
-CONFIG_INPUT_ATI_REMOTE=m
 CONFIG_INPUT_ATI_REMOTE2=m
 CONFIG_INPUT_KEYSPAN_REMOTE=m
+# CONFIG_INPUT_KXTJ9 is not set
 CONFIG_INPUT_POWERMATE=m
 CONFIG_INPUT_YEALINK=m
 CONFIG_INPUT_CM109=m
 # CONFIG_INPUT_UINPUT is not set
-CONFIG_INPUT_WINBOND_CIR=m
 CONFIG_INPUT_PCF50633_PMU=m
-CONFIG_INPUT_WM831X_ON=m
+CONFIG_INPUT_PCF8574=m
+CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
+# CONFIG_INPUT_ADXL34X is not set
+# CONFIG_INPUT_CMA3000 is not set
+CONFIG_INPUT_XEN_KBDDEV_FRONTEND=m
 
 #
 # Hardware I/O ports
@@ -2089,6 +2372,8 @@ CONFIG_SERIO_SERPORT=y
 # CONFIG_SERIO_PCIPS2 is not set
 CONFIG_SERIO_LIBPS2=y
 # CONFIG_SERIO_RAW is not set
+CONFIG_SERIO_ALTERA_PS2=m
+CONFIG_SERIO_PS2MULT=m
 # CONFIG_GAMEPORT is not set
 
 #
@@ -2097,11 +2382,17 @@ CONFIG_SERIO_LIBPS2=y
 CONFIG_VT=y
 CONFIG_CONSOLE_TRANSLATIONS=y
 CONFIG_VT_CONSOLE=y
+CONFIG_VT_CONSOLE_SLEEP=y
 CONFIG_HW_CONSOLE=y
 # CONFIG_VT_HW_CONSOLE_BINDING is not set
-CONFIG_DEVKMEM=y
+CONFIG_UNIX98_PTYS=y
+# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
+# CONFIG_LEGACY_PTYS is not set
 # CONFIG_SERIAL_NONSTANDARD is not set
 CONFIG_NOZOMI=m
+CONFIG_N_GSM=m
+# CONFIG_TRACE_SINK is not set
+CONFIG_DEVKMEM=y
 
 #
 # Serial drivers
@@ -2129,12 +2420,18 @@ CONFIG_SERIAL_8250_RSA=y
 #
 # Non-8250 serial port support
 #
+CONFIG_SERIAL_MFD_HSU=m
+CONFIG_SERIAL_UARTLITE=m
 CONFIG_SERIAL_CORE=y
 CONFIG_SERIAL_CORE_CONSOLE=y
 # CONFIG_SERIAL_JSM is not set
-CONFIG_UNIX98_PTYS=y
-# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
-# CONFIG_LEGACY_PTYS is not set
+CONFIG_SERIAL_TIMBERDALE=m
+CONFIG_SERIAL_ALTERA_JTAGUART=m
+CONFIG_SERIAL_ALTERA_UART=m
+CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4
+CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200
+CONFIG_SERIAL_PCH_UART=m
+CONFIG_SERIAL_XILINX_PS_UART=m
 CONFIG_PRINTER=m
 # CONFIG_LP_CONSOLE is not set
 CONFIG_PPDEV=m
@@ -2173,7 +2470,6 @@ CONFIG_MWAVE=m
 CONFIG_SCx200_GPIO=m
 CONFIG_PC8736x_GPIO=m
 CONFIG_NSC_GPIO=m
-CONFIG_CS5535_GPIO=m
 # CONFIG_RAW_DRIVER is not set
 CONFIG_HPET=y
 CONFIG_HPET_MMAP=y
@@ -2181,11 +2477,21 @@ CONFIG_HANGCHECK_TIMER=m
 # CONFIG_TCG_TPM is not set
 # CONFIG_TELCLOCK is not set
 CONFIG_DEVPORT=y
+# CONFIG_RAMOOPS is not set
 CONFIG_I2C=m
 CONFIG_I2C_BOARDINFO=y
 CONFIG_I2C_COMPAT=y
 CONFIG_I2C_CHARDEV=m
+CONFIG_I2C_MUX=m
+
+#
+# Multiplexer I2C Chip support
+#
+CONFIG_I2C_MUX_GPIO=m
+CONFIG_I2C_MUX_PCA9541=m
+CONFIG_I2C_MUX_PCA954x=m
 CONFIG_I2C_HELPER_AUTO=y
+CONFIG_I2C_SMBUS=m
 CONFIG_I2C_ALGOBIT=m
 CONFIG_I2C_ALGOPCA=m
 
@@ -2221,40 +2527,36 @@ CONFIG_I2C_SCMI=m
 #
 # I2C system bus drivers (mostly embedded / system-on-chip)
 #
+CONFIG_I2C_DESIGNWARE_CORE=m
+CONFIG_I2C_DESIGNWARE_PCI=m
+CONFIG_I2C_GPIO=m
+CONFIG_I2C_INTEL_MID=m
 CONFIG_I2C_OCORES=m
+CONFIG_I2C_PCA_PLATFORM=m
+# CONFIG_I2C_PXA_PCI is not set
 CONFIG_I2C_SIMTEC=m
+CONFIG_I2C_XILINX=m
+CONFIG_I2C_EG20T=m
 
 #
 # External I2C/SMBus adapter drivers
 #
+CONFIG_I2C_DIOLAN_U2C=m
 CONFIG_I2C_PARPORT=m
 CONFIG_I2C_PARPORT_LIGHT=m
-# CONFIG_I2C_TAOS_EVM is not set
+CONFIG_I2C_TAOS_EVM=m
 CONFIG_I2C_TINY_USB=m
 
-#
-# Graphics adapter I2C/DDC channel drivers
-#
-CONFIG_I2C_VOODOO3=m
-
 #
 # Other I2C/SMBus bus drivers
 #
 CONFIG_I2C_PCA_ISA=m
-CONFIG_I2C_PCA_PLATFORM=m
 CONFIG_I2C_STUB=m
 # CONFIG_SCx200_I2C is not set
 CONFIG_SCx200_ACB=m
-
-#
-# Miscellaneous I2C Chip support
-#
-CONFIG_DS1682=m
-CONFIG_SENSORS_TSL2550=m
 # CONFIG_I2C_DEBUG_CORE is not set
 # CONFIG_I2C_DEBUG_ALGO is not set
 # CONFIG_I2C_DEBUG_BUS is not set
-# CONFIG_I2C_DEBUG_CHIP is not set
 # CONFIG_SPI is not set
 
 #
@@ -2262,8 +2564,73 @@ CONFIG_SENSORS_TSL2550=m
 #
 CONFIG_PPS=m
 # CONFIG_PPS_DEBUG is not set
+
+#
+# PPS clients support
+#
+# CONFIG_PPS_CLIENT_KTIMER is not set
+# CONFIG_PPS_CLIENT_LDISC is not set
+# CONFIG_PPS_CLIENT_PARPORT is not set
+# CONFIG_PPS_CLIENT_GPIO is not set
+
+#
+# PPS generators support
+#
+
+#
+# PTP clock support
+#
+CONFIG_PTP_1588_CLOCK=m
+CONFIG_DP83640_PHY=m
 CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
-# CONFIG_GPIOLIB is not set
+CONFIG_GPIOLIB=y
+# CONFIG_DEBUG_GPIO is not set
+CONFIG_GPIO_SYSFS=y
+CONFIG_GPIO_GENERIC=m
+CONFIG_GPIO_MAX730X=m
+
+#
+# Memory mapped GPIO drivers:
+#
+CONFIG_GPIO_GENERIC_PLATFORM=m
+CONFIG_GPIO_IT8761E=m
+CONFIG_GPIO_SCH=m
+CONFIG_GPIO_VX855=m
+
+#
+# I2C GPIO expanders:
+#
+CONFIG_GPIO_MAX7300=m
+CONFIG_GPIO_MAX732X=m
+CONFIG_GPIO_PCA953X=m
+CONFIG_GPIO_PCF857X=m
+CONFIG_GPIO_ADP5588=m
+
+#
+# PCI GPIO expanders:
+#
+CONFIG_GPIO_CS5535=m
+# CONFIG_GPIO_BT8XX is not set
+# CONFIG_GPIO_LANGWELL is not set
+CONFIG_GPIO_PCH=m
+CONFIG_GPIO_ML_IOH=m
+# CONFIG_GPIO_TIMBERDALE is not set
+CONFIG_GPIO_RDC321X=m
+
+#
+# SPI GPIO expanders:
+#
+CONFIG_GPIO_MCP23S08=m
+
+#
+# AC97 GPIO expanders:
+#
+# CONFIG_GPIO_UCB1400 is not set
+
+#
+# MODULbus GPIO expanders:
+#
+CONFIG_GPIO_JANZ_TTL=m
 CONFIG_W1=m
 CONFIG_W1_CON=y
 
@@ -2273,27 +2640,37 @@ CONFIG_W1_CON=y
 CONFIG_W1_MASTER_MATROX=m
 CONFIG_W1_MASTER_DS2490=m
 CONFIG_W1_MASTER_DS2482=m
+CONFIG_W1_MASTER_DS1WM=m
+CONFIG_W1_MASTER_GPIO=m
 
 #
 # 1-wire Slaves
 #
 CONFIG_W1_SLAVE_THERM=m
 CONFIG_W1_SLAVE_SMEM=m
+CONFIG_W1_SLAVE_DS2408=m
+CONFIG_W1_SLAVE_DS2423=m
 CONFIG_W1_SLAVE_DS2431=m
 CONFIG_W1_SLAVE_DS2433=m
 CONFIG_W1_SLAVE_DS2433_CRC=y
 CONFIG_W1_SLAVE_DS2760=m
+CONFIG_W1_SLAVE_DS2780=m
 CONFIG_W1_SLAVE_BQ27000=m
 CONFIG_POWER_SUPPLY=y
 # CONFIG_POWER_SUPPLY_DEBUG is not set
 # CONFIG_PDA_POWER is not set
-CONFIG_WM831X_POWER=m
-CONFIG_WM8350_POWER=m
+# CONFIG_TEST_POWER is not set
 # CONFIG_BATTERY_DS2760 is not set
-CONFIG_BATTERY_DS2782=m
-CONFIG_BATTERY_BQ27x00=m
-CONFIG_BATTERY_MAX17040=m
-CONFIG_CHARGER_PCF50633=m
+# CONFIG_BATTERY_DS2780 is not set
+# CONFIG_BATTERY_DS2782 is not set
+# CONFIG_BATTERY_BQ20Z75 is not set
+# CONFIG_BATTERY_BQ27x00 is not set
+# CONFIG_BATTERY_MAX17040 is not set
+# CONFIG_BATTERY_MAX17042 is not set
+# CONFIG_CHARGER_PCF50633 is not set
+# CONFIG_CHARGER_ISP1704 is not set
+# CONFIG_CHARGER_MAX8903 is not set
+# CONFIG_CHARGER_GPIO is not set
 CONFIG_HWMON=m
 CONFIG_HWMON_VID=m
 # CONFIG_HWMON_DEBUG_CHIP is not set
@@ -2311,13 +2688,17 @@ CONFIG_SENSORS_ADM1026=m
 CONFIG_SENSORS_ADM1029=m
 CONFIG_SENSORS_ADM1031=m
 CONFIG_SENSORS_ADM9240=m
+CONFIG_SENSORS_ADT7411=m
 CONFIG_SENSORS_ADT7462=m
 CONFIG_SENSORS_ADT7470=m
-CONFIG_SENSORS_ADT7473=m
 CONFIG_SENSORS_ADT7475=m
+CONFIG_SENSORS_ASC7621=m
 CONFIG_SENSORS_K8TEMP=m
+CONFIG_SENSORS_K10TEMP=m
+CONFIG_SENSORS_FAM15H_POWER=m
 CONFIG_SENSORS_ASB100=m
 CONFIG_SENSORS_ATXP1=m
+CONFIG_SENSORS_DS620=m
 CONFIG_SENSORS_DS1621=m
 CONFIG_SENSORS_I5K_AMB=m
 CONFIG_SENSORS_F71805F=m
@@ -2327,11 +2708,15 @@ CONFIG_SENSORS_FSCHMD=m
 CONFIG_SENSORS_G760A=m
 CONFIG_SENSORS_GL518SM=m
 CONFIG_SENSORS_GL520SM=m
+CONFIG_SENSORS_GPIO_FAN=m
 CONFIG_SENSORS_CORETEMP=m
 CONFIG_SENSORS_IBMAEM=m
 CONFIG_SENSORS_IBMPEX=m
 CONFIG_SENSORS_IT87=m
+CONFIG_SENSORS_JC42=m
+CONFIG_SENSORS_LINEAGE=m
 CONFIG_SENSORS_LM63=m
+CONFIG_SENSORS_LM73=m
 CONFIG_SENSORS_LM75=m
 CONFIG_SENSORS_LM77=m
 CONFIG_SENSORS_LM78=m
@@ -2342,23 +2727,55 @@ CONFIG_SENSORS_LM87=m
 CONFIG_SENSORS_LM90=m
 CONFIG_SENSORS_LM92=m
 CONFIG_SENSORS_LM93=m
+CONFIG_SENSORS_LTC4151=m
 CONFIG_SENSORS_LTC4215=m
 CONFIG_SENSORS_LTC4245=m
+CONFIG_SENSORS_LTC4261=m
 CONFIG_SENSORS_LM95241=m
+CONFIG_SENSORS_LM95245=m
+CONFIG_SENSORS_MAX16065=m
 CONFIG_SENSORS_MAX1619=m
+CONFIG_SENSORS_MAX1668=m
+CONFIG_SENSORS_MAX6639=m
+CONFIG_SENSORS_MAX6642=m
 CONFIG_SENSORS_MAX6650=m
+CONFIG_SENSORS_NTC_THERMISTOR=m
 CONFIG_SENSORS_PC87360=m
 CONFIG_SENSORS_PC87427=m
 CONFIG_SENSORS_PCF8591=m
+CONFIG_PMBUS=m
+CONFIG_SENSORS_PMBUS=m
+CONFIG_SENSORS_ADM1275=m
+CONFIG_SENSORS_LM25066=m
+CONFIG_SENSORS_LTC2978=m
+CONFIG_SENSORS_MAX16064=m
+CONFIG_SENSORS_MAX34440=m
+CONFIG_SENSORS_MAX8688=m
+CONFIG_SENSORS_UCD9000=m
+CONFIG_SENSORS_UCD9200=m
+CONFIG_SENSORS_ZL6100=m
+CONFIG_SENSORS_SHT15=m
+CONFIG_SENSORS_SHT21=m
 CONFIG_SENSORS_SIS5595=m
+CONFIG_SENSORS_SMM665=m
 CONFIG_SENSORS_DME1737=m
+CONFIG_SENSORS_EMC1403=m
+CONFIG_SENSORS_EMC2103=m
+CONFIG_SENSORS_EMC6W201=m
 CONFIG_SENSORS_SMSC47M1=m
 CONFIG_SENSORS_SMSC47M192=m
 CONFIG_SENSORS_SMSC47B397=m
+CONFIG_SENSORS_SCH56XX_COMMON=m
+CONFIG_SENSORS_SCH5627=m
+CONFIG_SENSORS_SCH5636=m
+CONFIG_SENSORS_ADS1015=m
 CONFIG_SENSORS_ADS7828=m
+CONFIG_SENSORS_AMC6821=m
 CONFIG_SENSORS_THMC50=m
+CONFIG_SENSORS_TMP102=m
 CONFIG_SENSORS_TMP401=m
 CONFIG_SENSORS_TMP421=m
+CONFIG_SENSORS_VIA_CPUTEMP=m
 CONFIG_SENSORS_VIA686A=m
 CONFIG_SENSORS_VT1211=m
 CONFIG_SENSORS_VT8231=m
@@ -2366,34 +2783,35 @@ CONFIG_SENSORS_W83781D=m
 CONFIG_SENSORS_W83791D=m
 CONFIG_SENSORS_W83792D=m
 CONFIG_SENSORS_W83793=m
+CONFIG_SENSORS_W83795=m
+# CONFIG_SENSORS_W83795_FANCTRL is not set
 CONFIG_SENSORS_W83L785TS=m
 CONFIG_SENSORS_W83L786NG=m
 CONFIG_SENSORS_W83627HF=m
 CONFIG_SENSORS_W83627EHF=m
-CONFIG_SENSORS_WM831X=m
-CONFIG_SENSORS_WM8350=m
-CONFIG_SENSORS_HDAPS=m
 CONFIG_SENSORS_APPLESMC=m
 
 #
 # ACPI drivers
 #
+CONFIG_SENSORS_ACPI_POWER=m
 CONFIG_SENSORS_ATK0110=m
-CONFIG_SENSORS_LIS3LV02D=m
 CONFIG_THERMAL=y
 CONFIG_WATCHDOG=y
+CONFIG_WATCHDOG_CORE=y
 # CONFIG_WATCHDOG_NOWAYOUT is not set
 
 #
 # Watchdog Device Drivers
 #
 CONFIG_SOFT_WATCHDOG=m
-CONFIG_WM831X_WATCHDOG=m
-CONFIG_WM8350_WATCHDOG=m
 CONFIG_ACQUIRE_WDT=m
 CONFIG_ADVANTECH_WDT=m
 CONFIG_ALIM1535_WDT=m
 CONFIG_ALIM7101_WDT=m
+CONFIG_F71808E_WDT=m
+CONFIG_SP5100_TCO=m
+CONFIG_GEODE_WDT=m
 CONFIG_SC520_WDT=m
 CONFIG_SBC_FITPC2_WATCHDOG=m
 CONFIG_EUROTECH_WDT=m
@@ -2406,9 +2824,11 @@ CONFIG_ITCO_WDT=m
 CONFIG_IT8712F_WDT=m
 CONFIG_IT87_WDT=m
 CONFIG_HP_WATCHDOG=m
+CONFIG_HPWDT_NMI_DECODING=y
 CONFIG_SC1200_WDT=m
 CONFIG_SCx200_WDT=m
 CONFIG_PC87413_WDT=m
+CONFIG_NV_TCO=m
 CONFIG_60XX_WDT=m
 CONFIG_SBC8360_WDT=m
 CONFIG_SBC7240_WDT=m
@@ -2422,6 +2842,7 @@ CONFIG_W83877F_WDT=m
 CONFIG_W83977F_WDT=m
 CONFIG_MACHZ_WDT=m
 CONFIG_SBC_EPX_C3_WATCHDOG=m
+CONFIG_XEN_WDT=m
 
 #
 # ISA-based Watchdog Cards
@@ -2447,10 +2868,9 @@ CONFIG_SSB_POSSIBLE=y
 #
 CONFIG_SSB=m
 CONFIG_SSB_SPROM=y
-CONFIG_SSB_BLOCKIO=y
 CONFIG_SSB_PCIHOST_POSSIBLE=y
 CONFIG_SSB_PCIHOST=y
-CONFIG_SSB_B43_PCI_BRIDGE=y
+# CONFIG_SSB_B43_PCI_BRIDGE is not set
 CONFIG_SSB_PCMCIAHOST_POSSIBLE=y
 CONFIG_SSB_PCMCIAHOST=y
 CONFIG_SSB_SDIOHOST_POSSIBLE=y
@@ -2458,74 +2878,136 @@ CONFIG_SSB_SDIOHOST=y
 # CONFIG_SSB_DEBUG is not set
 CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
 CONFIG_SSB_DRIVER_PCICORE=y
+CONFIG_BCMA_POSSIBLE=y
+
+#
+# Broadcom specific AMBA
+#
+CONFIG_BCMA=m
+CONFIG_BCMA_HOST_PCI_POSSIBLE=y
+# CONFIG_BCMA_HOST_PCI is not set
+# CONFIG_BCMA_DEBUG is not set
 
 #
 # Multifunction device drivers
 #
 CONFIG_MFD_CORE=m
 CONFIG_MFD_SM501=m
+# CONFIG_MFD_SM501_GPIO is not set
 CONFIG_HTC_PASIC3=m
+CONFIG_UCB1400_CORE=m
+CONFIG_TPS6105X=m
+CONFIG_TPS65010=m
+CONFIG_TPS6507X=m
 # CONFIG_MFD_TMIO is not set
 CONFIG_MFD_WM8400=m
-CONFIG_MFD_WM831X=m
-CONFIG_MFD_WM8350=m
-CONFIG_MFD_WM8350_I2C=m
 CONFIG_MFD_PCF50633=m
 CONFIG_PCF50633_ADC=m
 CONFIG_PCF50633_GPIO=m
-CONFIG_AB3100_CORE=m
-CONFIG_AB3100_OTP=m
-# CONFIG_REGULATOR is not set
+# CONFIG_ABX500_CORE is not set
+CONFIG_MFD_CS5535=m
+CONFIG_MFD_TIMBERDALE=m
+CONFIG_LPC_SCH=m
+CONFIG_MFD_RDC321X=m
+CONFIG_MFD_JANZ_CMODIO=m
+CONFIG_MFD_VX855=m
+CONFIG_MFD_WL1273_CORE=m
+CONFIG_REGULATOR=y
+# CONFIG_REGULATOR_DEBUG is not set
+# CONFIG_REGULATOR_DUMMY is not set
+CONFIG_REGULATOR_FIXED_VOLTAGE=m
+# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
+# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
+CONFIG_REGULATOR_GPIO=m
+# CONFIG_REGULATOR_BQ24022 is not set
+# CONFIG_REGULATOR_MAX1586 is not set
+# CONFIG_REGULATOR_MAX8649 is not set
+# CONFIG_REGULATOR_MAX8660 is not set
+# CONFIG_REGULATOR_MAX8952 is not set
+# CONFIG_REGULATOR_WM8400 is not set
+# CONFIG_REGULATOR_PCF50633 is not set
+# CONFIG_REGULATOR_LP3971 is not set
+# CONFIG_REGULATOR_LP3972 is not set
+# CONFIG_REGULATOR_TPS6105X is not set
+# CONFIG_REGULATOR_TPS65023 is not set
+# CONFIG_REGULATOR_TPS6507X is not set
+# CONFIG_REGULATOR_ISL6271A is not set
+# CONFIG_REGULATOR_AD5398 is not set
 CONFIG_MEDIA_SUPPORT=m
 
 #
 # Multimedia core support
 #
+CONFIG_MEDIA_CONTROLLER=y
 CONFIG_VIDEO_DEV=m
 CONFIG_VIDEO_V4L2_COMMON=m
-# CONFIG_VIDEO_ALLOW_V4L1 is not set
-CONFIG_VIDEO_V4L1_COMPAT=y
+CONFIG_VIDEO_V4L2_SUBDEV_API=y
 CONFIG_DVB_CORE=m
+CONFIG_DVB_NET=y
 CONFIG_VIDEO_MEDIA=m
 
 #
 # Multimedia drivers
 #
-# CONFIG_MEDIA_ATTACH is not set
+CONFIG_RC_CORE=m
+CONFIG_LIRC=m
+CONFIG_RC_MAP=m
+# CONFIG_IR_NEC_DECODER is not set
+# CONFIG_IR_RC5_DECODER is not set
+# CONFIG_IR_RC6_DECODER is not set
+# CONFIG_IR_JVC_DECODER is not set
+# CONFIG_IR_SONY_DECODER is not set
+# CONFIG_IR_RC5_SZ_DECODER is not set
+# CONFIG_IR_MCE_KBD_DECODER is not set
+# CONFIG_IR_LIRC_CODEC is not set
+# CONFIG_RC_ATI_REMOTE is not set
+# CONFIG_IR_ENE is not set
+# CONFIG_IR_IMON is not set
+# CONFIG_IR_MCEUSB is not set
+# CONFIG_IR_ITE_CIR is not set
+# CONFIG_IR_FINTEK is not set
+# CONFIG_IR_NUVOTON is not set
+# CONFIG_IR_REDRAT3 is not set
+# CONFIG_IR_STREAMZAP is not set
+# CONFIG_IR_WINBOND_CIR is not set
+# CONFIG_RC_LOOPBACK is not set
+CONFIG_MEDIA_ATTACH=y
 CONFIG_MEDIA_TUNER=m
 # CONFIG_MEDIA_TUNER_CUSTOMISE is not set
 CONFIG_MEDIA_TUNER_SIMPLE=m
 CONFIG_MEDIA_TUNER_TDA8290=m
+CONFIG_MEDIA_TUNER_TDA827X=m
+CONFIG_MEDIA_TUNER_TDA18271=m
 CONFIG_MEDIA_TUNER_TDA9887=m
 CONFIG_MEDIA_TUNER_TEA5761=m
 CONFIG_MEDIA_TUNER_TEA5767=m
 CONFIG_MEDIA_TUNER_MT20XX=m
 CONFIG_MEDIA_TUNER_XC2028=m
 CONFIG_MEDIA_TUNER_XC5000=m
+CONFIG_MEDIA_TUNER_XC4000=m
 CONFIG_MEDIA_TUNER_MC44S803=m
 CONFIG_VIDEO_V4L2=m
 CONFIG_VIDEO_CAPTURE_DRIVERS=y
 # CONFIG_VIDEO_ADV_DEBUG is not set
 # CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
 # CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set
+CONFIG_VIDEO_IR_I2C=m
 
 #
-# Encoders/decoders and other helper chips
+# Encoders, decoders, sensors and other helper chips
 #
 
 #
-# Audio decoders
+# Audio decoders, processors and mixers
 #
 # CONFIG_VIDEO_TVAUDIO is not set
 # CONFIG_VIDEO_TDA7432 is not set
 # CONFIG_VIDEO_TDA9840 is not set
-# CONFIG_VIDEO_TDA9875 is not set
 # CONFIG_VIDEO_TEA6415C is not set
 # CONFIG_VIDEO_TEA6420 is not set
 # CONFIG_VIDEO_MSP3400 is not set
 # CONFIG_VIDEO_CS5345 is not set
 # CONFIG_VIDEO_CS53L32A is not set
-# CONFIG_VIDEO_M52790 is not set
 # CONFIG_VIDEO_TLV320AIC23B is not set
 # CONFIG_VIDEO_WM8775 is not set
 # CONFIG_VIDEO_WM8739 is not set
@@ -2544,19 +3026,18 @@ CONFIG_VIDEO_CAPTURE_DRIVERS=y
 # CONFIG_VIDEO_BT856 is not set
 # CONFIG_VIDEO_BT866 is not set
 # CONFIG_VIDEO_KS0127 is not set
-# CONFIG_VIDEO_OV7670 is not set
-# CONFIG_VIDEO_MT9V011 is not set
-# CONFIG_VIDEO_TCM825X is not set
 # CONFIG_VIDEO_SAA7110 is not set
 # CONFIG_VIDEO_SAA711X is not set
-# CONFIG_VIDEO_SAA717X is not set
+# CONFIG_VIDEO_SAA7191 is not set
 # CONFIG_VIDEO_TVP514X is not set
 # CONFIG_VIDEO_TVP5150 is not set
+# CONFIG_VIDEO_TVP7002 is not set
 # CONFIG_VIDEO_VPX3220 is not set
 
 #
 # Video and audio decoders
 #
+# CONFIG_VIDEO_SAA717X is not set
 # CONFIG_VIDEO_CX25840 is not set
 
 #
@@ -2571,29 +3052,62 @@ CONFIG_VIDEO_CAPTURE_DRIVERS=y
 # CONFIG_VIDEO_SAA7185 is not set
 # CONFIG_VIDEO_ADV7170 is not set
 # CONFIG_VIDEO_ADV7175 is not set
-# CONFIG_VIDEO_THS7303 is not set
 # CONFIG_VIDEO_ADV7343 is not set
+# CONFIG_VIDEO_AK881X is not set
+
+#
+# Camera sensor devices
+#
+# CONFIG_VIDEO_OV7670 is not set
+# CONFIG_VIDEO_MT9P031 is not set
+# CONFIG_VIDEO_MT9T001 is not set
+# CONFIG_VIDEO_MT9V011 is not set
+# CONFIG_VIDEO_MT9V032 is not set
+# CONFIG_VIDEO_TCM825X is not set
+# CONFIG_VIDEO_SR030PC30 is not set
+# CONFIG_VIDEO_NOON010PC30 is not set
+# CONFIG_VIDEO_M5MOLS is not set
+# CONFIG_VIDEO_S5K6AA is not set
+
+#
+# Flash devices
+#
+# CONFIG_VIDEO_ADP1653 is not set
 
 #
 # Video improvement chips
 #
 # CONFIG_VIDEO_UPD64031A is not set
 # CONFIG_VIDEO_UPD64083 is not set
+
+#
+# Miscelaneous helper chips
+#
+# CONFIG_VIDEO_THS7303 is not set
+# CONFIG_VIDEO_M52790 is not set
 # CONFIG_VIDEO_VIVI is not set
 # CONFIG_VIDEO_BT848 is not set
-# CONFIG_VIDEO_SAA5246A is not set
-# CONFIG_VIDEO_SAA5249 is not set
+# CONFIG_VIDEO_PMS is not set
+# CONFIG_VIDEO_BWQCAM is not set
+# CONFIG_VIDEO_CQCAM is not set
+# CONFIG_VIDEO_W9966 is not set
+# CONFIG_VIDEO_CPIA2 is not set
 # CONFIG_VIDEO_ZORAN is not set
+# CONFIG_VIDEO_MEYE is not set
 # CONFIG_VIDEO_SAA7134 is not set
+# CONFIG_VIDEO_MXB is not set
 # CONFIG_VIDEO_HEXIUM_ORION is not set
 # CONFIG_VIDEO_HEXIUM_GEMINI is not set
+# CONFIG_VIDEO_TIMBERDALE is not set
 # CONFIG_VIDEO_CX88 is not set
 # CONFIG_VIDEO_CX23885 is not set
+# CONFIG_VIDEO_CX25821 is not set
 # CONFIG_VIDEO_AU0828 is not set
 # CONFIG_VIDEO_IVTV is not set
 # CONFIG_VIDEO_CX18 is not set
 # CONFIG_VIDEO_SAA7164 is not set
 # CONFIG_VIDEO_CAFE_CCIC is not set
+# CONFIG_VIDEO_VIA_CAMERA is not set
 # CONFIG_SOC_CAMERA is not set
 CONFIG_V4L_USB_DRIVERS=y
 # CONFIG_USB_VIDEO_CLASS is not set
@@ -2602,24 +3116,25 @@ CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
 # CONFIG_VIDEO_PVRUSB2 is not set
 # CONFIG_VIDEO_HDPVR is not set
 # CONFIG_VIDEO_EM28XX is not set
+# CONFIG_VIDEO_TLG2300 is not set
 # CONFIG_VIDEO_CX231XX is not set
+# CONFIG_VIDEO_TM6000 is not set
 # CONFIG_VIDEO_USBVISION is not set
 # CONFIG_USB_ET61X251 is not set
 # CONFIG_USB_SN9C102 is not set
-# CONFIG_USB_ZC0301 is not set
-# CONFIG_USB_PWC_INPUT_EVDEV is not set
+# CONFIG_USB_PWC is not set
 # CONFIG_USB_ZR364XX is not set
 # CONFIG_USB_STKWEBCAM is not set
 # CONFIG_USB_S2255 is not set
+# CONFIG_V4L_MEM2MEM_DRIVERS is not set
 CONFIG_RADIO_ADAPTERS=y
 # CONFIG_RADIO_CADET is not set
 # CONFIG_RADIO_RTRACK is not set
 # CONFIG_RADIO_RTRACK2 is not set
 # CONFIG_RADIO_AZTECH is not set
 # CONFIG_RADIO_GEMTEK is not set
-# CONFIG_RADIO_GEMTEK_PCI is not set
 # CONFIG_RADIO_MAXIRADIO is not set
-# CONFIG_RADIO_MAESTRO is not set
+# CONFIG_RADIO_MIROPCM20 is not set
 # CONFIG_RADIO_SF16FMI is not set
 # CONFIG_RADIO_SF16FMR2 is not set
 # CONFIG_RADIO_TERRATEC is not set
@@ -2632,6 +3147,15 @@ CONFIG_RADIO_ADAPTERS=y
 # CONFIG_RADIO_SI470X is not set
 # CONFIG_USB_MR800 is not set
 # CONFIG_RADIO_TEA5764 is not set
+# CONFIG_RADIO_SAA7706H is not set
+# CONFIG_RADIO_TEF6862 is not set
+# CONFIG_RADIO_TIMBERDALE is not set
+# CONFIG_RADIO_WL1273 is not set
+
+#
+# Texas Instruments WL128x FM driver (ST based)
+#
+# CONFIG_RADIO_WL128X is not set
 CONFIG_DVB_MAX_ADAPTERS=8
 # CONFIG_DVB_DYNAMIC_MINORS is not set
 CONFIG_DVB_CAPTURE_DRIVERS=y
@@ -2670,17 +3194,76 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
 #
 # CONFIG_DVB_DM1105 is not set
 
+#
+# Supported FireWire (IEEE 1394) Adapters
+#
+# CONFIG_DVB_FIREDTV is not set
+
 #
 # Supported Earthsoft PT1 Adapters
 #
 # CONFIG_DVB_PT1 is not set
 
+#
+# Supported Mantis Adapters
+#
+# CONFIG_MANTIS_CORE is not set
+
+#
+# Supported nGene Adapters
+#
+# CONFIG_DVB_NGENE is not set
+
+#
+# Supported ddbridge ('Octopus') Adapters
+#
+# CONFIG_DVB_DDBRIDGE is not set
+
 #
 # Supported DVB Frontends
 #
 # CONFIG_DVB_FE_CUSTOMISE is not set
-CONFIG_DAB=y
-# CONFIG_USB_DABUSB is not set
+
+#
+# Multistandard (satellite) frontends
+#
+
+#
+# Multistandard (cable + terrestrial) frontends
+#
+
+#
+# DVB-S (satellite) frontends
+#
+
+#
+# DVB-T (terrestrial) frontends
+#
+
+#
+# DVB-C (cable) frontends
+#
+
+#
+# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
+#
+
+#
+# ISDB-T (terrestrial) frontends
+#
+
+#
+# Digital terrestrial only tuners/PLL
+#
+
+#
+# SEC control devices for DVB-S
+#
+
+#
+# Tools to develop new frontends
+#
+# CONFIG_DVB_DUMMY_FE is not set
 
 #
 # Graphics support
@@ -2697,20 +3280,24 @@ CONFIG_AGP_SWORKS=m
 CONFIG_AGP_VIA=m
 CONFIG_AGP_EFFICEON=m
 CONFIG_VGA_ARB=y
+CONFIG_VGA_ARB_MAX_GPUS=16
+# CONFIG_VGA_SWITCHEROO is not set
 CONFIG_DRM=m
 CONFIG_DRM_KMS_HELPER=m
 CONFIG_DRM_TTM=m
 CONFIG_DRM_TDFX=m
 CONFIG_DRM_R128=m
 CONFIG_DRM_RADEON=m
+CONFIG_DRM_RADEON_KMS=y
 CONFIG_DRM_I810=m
-CONFIG_DRM_I830=m
 CONFIG_DRM_I915=m
 CONFIG_DRM_I915_KMS=y
 CONFIG_DRM_MGA=m
 CONFIG_DRM_SIS=m
 CONFIG_DRM_VIA=m
 CONFIG_DRM_SAVAGE=m
+CONFIG_DRM_VMWGFX=m
+CONFIG_STUB_POULSBO=m
 CONFIG_VGASTATE=m
 CONFIG_VIDEO_OUTPUT_CONTROL=m
 CONFIG_FB=y
@@ -2726,6 +3313,7 @@ CONFIG_FB_SYS_COPYAREA=m
 CONFIG_FB_SYS_IMAGEBLIT=m
 # CONFIG_FB_FOREIGN_ENDIAN is not set
 CONFIG_FB_SYS_FOPS=m
+# CONFIG_FB_WMT_GE_ROPS is not set
 CONFIG_FB_DEFERRED_IO=y
 CONFIG_FB_SVGALIB=m
 # CONFIG_FB_MACMODES is not set
@@ -2740,6 +3328,7 @@ CONFIG_FB_CIRRUS=m
 CONFIG_FB_PM2=m
 CONFIG_FB_PM2_FIFO_DISCONNECT=y
 CONFIG_FB_CYBER2000=m
+CONFIG_FB_CYBER2000_DDC=y
 # CONFIG_FB_ARC is not set
 CONFIG_FB_ASILIANT=y
 # CONFIG_FB_IMSTT is not set
@@ -2780,6 +3369,7 @@ CONFIG_FB_ATY_CT=y
 CONFIG_FB_ATY_GX=y
 CONFIG_FB_ATY_BACKLIGHT=y
 CONFIG_FB_S3=m
+CONFIG_FB_S3_DDC=y
 CONFIG_FB_SAVAGE=m
 CONFIG_FB_SAVAGE_I2C=y
 CONFIG_FB_SAVAGE_ACCEL=y
@@ -2787,6 +3377,8 @@ CONFIG_FB_SIS=m
 CONFIG_FB_SIS_300=y
 CONFIG_FB_SIS_315=y
 CONFIG_FB_VIA=m
+# CONFIG_FB_VIA_DIRECT_PROCFS is not set
+# CONFIG_FB_VIA_X_COMPATIBILITY is not set
 CONFIG_FB_NEOMAGIC=m
 CONFIG_FB_KYRO=m
 CONFIG_FB_3DFX=m
@@ -2805,6 +3397,8 @@ CONFIG_FB_GEODE_GX1=m
 CONFIG_FB_TMIO=m
 CONFIG_FB_TMIO_ACCELL=y
 CONFIG_FB_SM501=m
+CONFIG_FB_SMSCUFX=m
+# CONFIG_FB_UDL is not set
 # CONFIG_FB_VIRTUAL is not set
 CONFIG_XEN_FBDEV_FRONTEND=m
 CONFIG_FB_METRONOME=m
@@ -2812,15 +3406,16 @@ CONFIG_FB_METRONOME=m
 # CONFIG_FB_BROADSHEET is not set
 CONFIG_BACKLIGHT_LCD_SUPPORT=y
 CONFIG_LCD_CLASS_DEVICE=m
-# CONFIG_LCD_ILI9320 is not set
 CONFIG_LCD_PLATFORM=m
 CONFIG_BACKLIGHT_CLASS_DEVICE=y
 CONFIG_BACKLIGHT_GENERIC=m
 CONFIG_BACKLIGHT_PROGEAR=m
 CONFIG_BACKLIGHT_CARILLO_RANCH=m
-CONFIG_BACKLIGHT_MBP_NVIDIA=m
+CONFIG_BACKLIGHT_APPLE=m
 CONFIG_BACKLIGHT_SAHARA=m
-CONFIG_BACKLIGHT_WM831X=m
+CONFIG_BACKLIGHT_ADP8860=m
+CONFIG_BACKLIGHT_ADP8870=m
+CONFIG_BACKLIGHT_PCF50633=m
 
 #
 # Display device support
@@ -2839,7 +3434,7 @@ CONFIG_VGA_CONSOLE=y
 # CONFIG_MDA_CONSOLE is not set
 CONFIG_DUMMY_CONSOLE=y
 CONFIG_FRAMEBUFFER_CONSOLE=y
-# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
+CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
 # CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
 # CONFIG_FONTS is not set
 CONFIG_FONT_8x8=y
@@ -2854,6 +3449,9 @@ CONFIG_SOUND_OSS_CORE_PRECLAIM=y
 CONFIG_SND=m
 CONFIG_SND_TIMER=m
 CONFIG_SND_PCM=m
+CONFIG_SND_HWDEP=m
+CONFIG_SND_RAWMIDI=m
+CONFIG_SND_JACK=y
 CONFIG_SND_SEQUENCER=m
 CONFIG_SND_SEQ_DUMMY=m
 CONFIG_SND_OSSEMUL=y
@@ -2861,137 +3459,191 @@ CONFIG_SND_MIXER_OSS=m
 CONFIG_SND_PCM_OSS=m
 CONFIG_SND_PCM_OSS_PLUGINS=y
 CONFIG_SND_SEQUENCER_OSS=y
-# CONFIG_SND_HRTIMER is not set
-# CONFIG_SND_DYNAMIC_MINORS is not set
+CONFIG_SND_HRTIMER=m
+CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
+CONFIG_SND_DYNAMIC_MINORS=y
 # CONFIG_SND_SUPPORT_OLD_API is not set
 CONFIG_SND_VERBOSE_PROCFS=y
 # CONFIG_SND_VERBOSE_PRINTK is not set
 # CONFIG_SND_DEBUG is not set
+CONFIG_SND_VMASTER=y
 CONFIG_SND_DMA_SGBUF=y
-# CONFIG_SND_RAWMIDI_SEQ is not set
-# CONFIG_SND_OPL3_LIB_SEQ is not set
-# CONFIG_SND_OPL4_LIB_SEQ is not set
-# CONFIG_SND_SBAWE_SEQ is not set
-# CONFIG_SND_EMU10K1_SEQ is not set
+CONFIG_SND_RAWMIDI_SEQ=m
+CONFIG_SND_OPL3_LIB_SEQ=m
+CONFIG_SND_OPL4_LIB_SEQ=m
+CONFIG_SND_SBAWE_SEQ=m
+CONFIG_SND_EMU10K1_SEQ=m
+CONFIG_SND_MPU401_UART=m
+CONFIG_SND_OPL3_LIB=m
+CONFIG_SND_OPL4_LIB=m
+CONFIG_SND_VX_LIB=m
+CONFIG_SND_AC97_CODEC=m
 CONFIG_SND_DRIVERS=y
 # CONFIG_SND_PCSP is not set
 CONFIG_SND_DUMMY=m
-# CONFIG_SND_VIRMIDI is not set
-# CONFIG_SND_MTPAV is not set
-# CONFIG_SND_MTS64 is not set
-# CONFIG_SND_SERIAL_U16550 is not set
-# CONFIG_SND_MPU401 is not set
-# CONFIG_SND_PORTMAN2X4 is not set
+CONFIG_SND_ALOOP=m
+CONFIG_SND_VIRMIDI=m
+CONFIG_SND_MTPAV=m
+CONFIG_SND_MTS64=m
+CONFIG_SND_SERIAL_U16550=m
+CONFIG_SND_MPU401=m
+CONFIG_SND_PORTMAN2X4=m
+CONFIG_SND_AC97_POWER_SAVE=y
+CONFIG_SND_AC97_POWER_SAVE_DEFAULT=60
+CONFIG_SND_WSS_LIB=m
+CONFIG_SND_SB_COMMON=m
+CONFIG_SND_SB8_DSP=m
+CONFIG_SND_SB16_DSP=m
 CONFIG_SND_ISA=y
-# CONFIG_SND_ADLIB is not set
-# CONFIG_SND_AD1816A is not set
-# CONFIG_SND_AD1848 is not set
-# CONFIG_SND_ALS100 is not set
-# CONFIG_SND_AZT2320 is not set
-# CONFIG_SND_CMI8330 is not set
-# CONFIG_SND_CS4231 is not set
-# CONFIG_SND_CS4236 is not set
-# CONFIG_SND_DT019X is not set
-# CONFIG_SND_ES968 is not set
-# CONFIG_SND_ES1688 is not set
-# CONFIG_SND_ES18XX is not set
-# CONFIG_SND_SC6000 is not set
-# CONFIG_SND_GUSCLASSIC is not set
-# CONFIG_SND_GUSEXTREME is not set
-# CONFIG_SND_GUSMAX is not set
-# CONFIG_SND_INTERWAVE is not set
-# CONFIG_SND_INTERWAVE_STB is not set
-# CONFIG_SND_OPL3SA2 is not set
-# CONFIG_SND_OPTI92X_AD1848 is not set
-# CONFIG_SND_OPTI92X_CS4231 is not set
-# CONFIG_SND_OPTI93X is not set
-# CONFIG_SND_MIRO is not set
-# CONFIG_SND_SB8 is not set
-# CONFIG_SND_SB16 is not set
-# CONFIG_SND_SBAWE is not set
-# CONFIG_SND_SGALAXY is not set
-# CONFIG_SND_SSCAPE is not set
-# CONFIG_SND_WAVEFRONT is not set
-# CONFIG_SND_MSND_PINNACLE is not set
-# CONFIG_SND_MSND_CLASSIC is not set
+CONFIG_SND_ADLIB=m
+CONFIG_SND_AD1816A=m
+CONFIG_SND_AD1848=m
+CONFIG_SND_ALS100=m
+CONFIG_SND_AZT1605=m
+CONFIG_SND_AZT2316=m
+CONFIG_SND_AZT2320=m
+CONFIG_SND_CMI8330=m
+CONFIG_SND_CS4231=m
+CONFIG_SND_CS4236=m
+CONFIG_SND_ES1688=m
+CONFIG_SND_ES18XX=m
+CONFIG_SND_SC6000=m
+CONFIG_SND_GUSCLASSIC=m
+CONFIG_SND_GUSEXTREME=m
+CONFIG_SND_GUSMAX=m
+CONFIG_SND_INTERWAVE=m
+CONFIG_SND_INTERWAVE_STB=m
+CONFIG_SND_JAZZ16=m
+CONFIG_SND_OPL3SA2=m
+CONFIG_SND_OPTI92X_AD1848=m
+CONFIG_SND_OPTI92X_CS4231=m
+CONFIG_SND_OPTI93X=m
+CONFIG_SND_MIRO=m
+CONFIG_SND_SB8=m
+CONFIG_SND_SB16=m
+CONFIG_SND_SBAWE=m
+CONFIG_SND_SB16_CSP=y
+CONFIG_SND_SSCAPE=m
+CONFIG_SND_WAVEFRONT=m
+CONFIG_SND_MSND_PINNACLE=m
+CONFIG_SND_MSND_CLASSIC=m
+CONFIG_SND_TEA575X=m
 CONFIG_SND_PCI=y
-# CONFIG_SND_AD1889 is not set
-# CONFIG_SND_ALS300 is not set
-# CONFIG_SND_ALS4000 is not set
-# CONFIG_SND_ALI5451 is not set
-# CONFIG_SND_ATIIXP is not set
-# CONFIG_SND_ATIIXP_MODEM is not set
-# CONFIG_SND_AU8810 is not set
-# CONFIG_SND_AU8820 is not set
-# CONFIG_SND_AU8830 is not set
-# CONFIG_SND_AW2 is not set
-# CONFIG_SND_AZT3328 is not set
-# CONFIG_SND_BT87X is not set
-# CONFIG_SND_CA0106 is not set
-# CONFIG_SND_CMIPCI is not set
-# CONFIG_SND_OXYGEN is not set
-# CONFIG_SND_CS4281 is not set
-# CONFIG_SND_CS46XX is not set
-# CONFIG_SND_CS5530 is not set
-# CONFIG_SND_CS5535AUDIO is not set
-# CONFIG_SND_CTXFI is not set
-# CONFIG_SND_DARLA20 is not set
-# CONFIG_SND_GINA20 is not set
-# CONFIG_SND_LAYLA20 is not set
-# CONFIG_SND_DARLA24 is not set
-# CONFIG_SND_GINA24 is not set
-# CONFIG_SND_LAYLA24 is not set
-# CONFIG_SND_MONA is not set
-# CONFIG_SND_MIA is not set
-# CONFIG_SND_ECHO3G is not set
-# CONFIG_SND_INDIGO is not set
-# CONFIG_SND_INDIGOIO is not set
-# CONFIG_SND_INDIGODJ is not set
-# CONFIG_SND_INDIGOIOX is not set
-# CONFIG_SND_INDIGODJX is not set
-# CONFIG_SND_EMU10K1 is not set
-# CONFIG_SND_EMU10K1X is not set
-# CONFIG_SND_ENS1370 is not set
-# CONFIG_SND_ENS1371 is not set
-# CONFIG_SND_ES1938 is not set
-# CONFIG_SND_ES1968 is not set
-# CONFIG_SND_FM801 is not set
-# CONFIG_SND_HDA_INTEL is not set
-# CONFIG_SND_HDSP is not set
-# CONFIG_SND_HDSPM is not set
-# CONFIG_SND_HIFIER is not set
-# CONFIG_SND_ICE1712 is not set
-# CONFIG_SND_ICE1724 is not set
-# CONFIG_SND_INTEL8X0 is not set
-# CONFIG_SND_INTEL8X0M is not set
-# CONFIG_SND_KORG1212 is not set
-# CONFIG_SND_LX6464ES is not set
-# CONFIG_SND_MAESTRO3 is not set
-# CONFIG_SND_MIXART is not set
-# CONFIG_SND_NM256 is not set
-# CONFIG_SND_PCXHR is not set
-# CONFIG_SND_RIPTIDE is not set
-# CONFIG_SND_RME32 is not set
-# CONFIG_SND_RME96 is not set
-# CONFIG_SND_RME9652 is not set
-# CONFIG_SND_SIS7019 is not set
-# CONFIG_SND_SONICVIBES is not set
-# CONFIG_SND_TRIDENT is not set
-# CONFIG_SND_VIA82XX is not set
-# CONFIG_SND_VIA82XX_MODEM is not set
-# CONFIG_SND_VIRTUOSO is not set
-# CONFIG_SND_VX222 is not set
-# CONFIG_SND_YMFPCI is not set
+CONFIG_SND_AD1889=m
+CONFIG_SND_ALS300=m
+CONFIG_SND_ALS4000=m
+CONFIG_SND_ALI5451=m
+CONFIG_SND_ASIHPI=m
+CONFIG_SND_ATIIXP=m
+CONFIG_SND_ATIIXP_MODEM=m
+CONFIG_SND_AU8810=m
+CONFIG_SND_AU8820=m
+CONFIG_SND_AU8830=m
+CONFIG_SND_AW2=m
+CONFIG_SND_AZT3328=m
+CONFIG_SND_BT87X=m
+# CONFIG_SND_BT87X_OVERCLOCK is not set
+CONFIG_SND_CA0106=m
+CONFIG_SND_CMIPCI=m
+CONFIG_SND_OXYGEN_LIB=m
+CONFIG_SND_OXYGEN=m
+CONFIG_SND_CS4281=m
+CONFIG_SND_CS46XX=m
+CONFIG_SND_CS46XX_NEW_DSP=y
+CONFIG_SND_CS5530=m
+CONFIG_SND_CS5535AUDIO=m
+CONFIG_SND_CTXFI=m
+CONFIG_SND_DARLA20=m
+CONFIG_SND_GINA20=m
+CONFIG_SND_LAYLA20=m
+CONFIG_SND_DARLA24=m
+CONFIG_SND_GINA24=m
+CONFIG_SND_LAYLA24=m
+CONFIG_SND_MONA=m
+CONFIG_SND_MIA=m
+CONFIG_SND_ECHO3G=m
+CONFIG_SND_INDIGO=m
+CONFIG_SND_INDIGOIO=m
+CONFIG_SND_INDIGODJ=m
+CONFIG_SND_INDIGOIOX=m
+CONFIG_SND_INDIGODJX=m
+CONFIG_SND_EMU10K1=m
+CONFIG_SND_EMU10K1X=m
+CONFIG_SND_ENS1370=m
+CONFIG_SND_ENS1371=m
+CONFIG_SND_ES1938=m
+CONFIG_SND_ES1968=m
+CONFIG_SND_ES1968_INPUT=y
+CONFIG_SND_ES1968_RADIO=y
+CONFIG_SND_FM801=m
+CONFIG_SND_FM801_TEA575X_BOOL=y
+CONFIG_SND_HDA_INTEL=m
+CONFIG_SND_HDA_PREALLOC_SIZE=64
+CONFIG_SND_HDA_HWDEP=y
+CONFIG_SND_HDA_RECONFIG=y
+CONFIG_SND_HDA_INPUT_BEEP=y
+CONFIG_SND_HDA_INPUT_BEEP_MODE=2
+CONFIG_SND_HDA_INPUT_JACK=y
+CONFIG_SND_HDA_PATCH_LOADER=y
+CONFIG_SND_HDA_CODEC_REALTEK=y
+CONFIG_SND_HDA_ENABLE_REALTEK_QUIRKS=y
+CONFIG_SND_HDA_CODEC_ANALOG=y
+CONFIG_SND_HDA_CODEC_SIGMATEL=y
+CONFIG_SND_HDA_CODEC_VIA=y
+CONFIG_SND_HDA_CODEC_HDMI=y
+CONFIG_SND_HDA_CODEC_CIRRUS=y
+CONFIG_SND_HDA_CODEC_CONEXANT=y
+CONFIG_SND_HDA_CODEC_CA0110=y
+CONFIG_SND_HDA_CODEC_CA0132=y
+CONFIG_SND_HDA_CODEC_CMEDIA=y
+CONFIG_SND_HDA_CODEC_SI3054=y
+CONFIG_SND_HDA_GENERIC=y
+CONFIG_SND_HDA_POWER_SAVE=y
+CONFIG_SND_HDA_POWER_SAVE_DEFAULT=60
+CONFIG_SND_HDSP=m
+CONFIG_SND_HDSPM=m
+CONFIG_SND_ICE1712=m
+CONFIG_SND_ICE1724=m
+CONFIG_SND_INTEL8X0=m
+CONFIG_SND_INTEL8X0M=m
+CONFIG_SND_KORG1212=m
+CONFIG_SND_LOLA=m
+CONFIG_SND_LX6464ES=m
+CONFIG_SND_MAESTRO3=m
+CONFIG_SND_MAESTRO3_INPUT=y
+CONFIG_SND_MIXART=m
+CONFIG_SND_NM256=m
+CONFIG_SND_PCXHR=m
+CONFIG_SND_RIPTIDE=m
+CONFIG_SND_RME32=m
+CONFIG_SND_RME96=m
+CONFIG_SND_RME9652=m
+CONFIG_SND_SIS7019=m
+CONFIG_SND_SONICVIBES=m
+CONFIG_SND_TRIDENT=m
+CONFIG_SND_VIA82XX=m
+CONFIG_SND_VIA82XX_MODEM=m
+CONFIG_SND_VIRTUOSO=m
+CONFIG_SND_VX222=m
+CONFIG_SND_YMFPCI=m
 CONFIG_SND_USB=y
-# CONFIG_SND_USB_AUDIO is not set
-# CONFIG_SND_USB_USX2Y is not set
-# CONFIG_SND_USB_CAIAQ is not set
-# CONFIG_SND_USB_US122L is not set
+CONFIG_SND_USB_AUDIO=m
+CONFIG_SND_USB_UA101=m
+CONFIG_SND_USB_USX2Y=m
+CONFIG_SND_USB_CAIAQ=m
+CONFIG_SND_USB_CAIAQ_INPUT=y
+CONFIG_SND_USB_US122L=m
+CONFIG_SND_USB_6FIRE=m
+CONFIG_SND_FIREWIRE=y
+CONFIG_SND_FIREWIRE_LIB=m
+CONFIG_SND_FIREWIRE_SPEAKERS=m
+CONFIG_SND_ISIGHT=m
 CONFIG_SND_PCMCIA=y
-# CONFIG_SND_VXPOCKET is not set
-# CONFIG_SND_PDAUDIOCF is not set
+CONFIG_SND_VXPOCKET=m
+CONFIG_SND_PDAUDIOCF=m
 # CONFIG_SND_SOC is not set
 # CONFIG_SOUND_PRIME is not set
+CONFIG_AC97_BUS=m
 CONFIG_HID_SUPPORT=y
 CONFIG_HID=y
 # CONFIG_HIDRAW is not set
@@ -3007,45 +3659,82 @@ CONFIG_USB_HIDDEV=y
 # Special HID drivers
 #
 CONFIG_HID_A4TECH=m
+CONFIG_HID_ACRUX=m
+# CONFIG_HID_ACRUX_FF is not set
 CONFIG_HID_APPLE=m
 CONFIG_HID_BELKIN=m
 CONFIG_HID_CHERRY=m
 CONFIG_HID_CHICONY=m
+CONFIG_HID_PRODIKEYS=m
 CONFIG_HID_CYPRESS=m
 CONFIG_HID_DRAGONRISE=m
-CONFIG_DRAGONRISE_FF=y
+# CONFIG_DRAGONRISE_FF is not set
+# CONFIG_HID_EMS_FF is not set
+CONFIG_HID_ELECOM=m
 CONFIG_HID_EZKEY=m
+CONFIG_HID_HOLTEK=m
+# CONFIG_HOLTEK_FF is not set
+CONFIG_HID_KEYTOUCH=m
 CONFIG_HID_KYE=m
+CONFIG_HID_UCLOGIC=m
+CONFIG_HID_WALTOP=m
 CONFIG_HID_GYRATION=m
 CONFIG_HID_TWINHAN=m
 CONFIG_HID_KENSINGTON=m
+CONFIG_HID_LCPOWER=m
 CONFIG_HID_LOGITECH=m
-CONFIG_LOGITECH_FF=y
-CONFIG_LOGIRUMBLEPAD2_FF=y
+CONFIG_HID_LOGITECH_DJ=m
+# CONFIG_LOGITECH_FF is not set
+# CONFIG_LOGIRUMBLEPAD2_FF is not set
+# CONFIG_LOGIG940_FF is not set
+# CONFIG_LOGIWHEELS_FF is not set
+CONFIG_HID_MAGICMOUSE=m
 CONFIG_HID_MICROSOFT=m
 CONFIG_HID_MONTEREY=m
+CONFIG_HID_MULTITOUCH=m
 CONFIG_HID_NTRIG=m
+CONFIG_HID_ORTEK=m
 CONFIG_HID_PANTHERLORD=m
-CONFIG_PANTHERLORD_FF=y
+# CONFIG_PANTHERLORD_FF is not set
 CONFIG_HID_PETALYNX=m
+CONFIG_HID_PICOLCD=m
+CONFIG_HID_PICOLCD_FB=y
+CONFIG_HID_PICOLCD_BACKLIGHT=y
+CONFIG_HID_PICOLCD_LCD=y
+CONFIG_HID_PICOLCD_LEDS=y
+CONFIG_HID_PRIMAX=m
+CONFIG_HID_QUANTA=m
+CONFIG_HID_ROCCAT=m
+CONFIG_HID_ROCCAT_COMMON=m
+CONFIG_HID_ROCCAT_ARVO=m
+CONFIG_HID_ROCCAT_KONE=m
+CONFIG_HID_ROCCAT_KONEPLUS=m
+CONFIG_HID_ROCCAT_KOVAPLUS=m
+CONFIG_HID_ROCCAT_PYRA=m
 CONFIG_HID_SAMSUNG=m
 CONFIG_HID_SONY=m
+CONFIG_HID_SPEEDLINK=m
 CONFIG_HID_SUNPLUS=m
 CONFIG_HID_GREENASIA=m
-CONFIG_GREENASIA_FF=y
+# CONFIG_GREENASIA_FF is not set
 CONFIG_HID_SMARTJOYPLUS=m
-CONFIG_SMARTJOYPLUS_FF=y
+# CONFIG_SMARTJOYPLUS_FF is not set
 CONFIG_HID_TOPSEED=m
 CONFIG_HID_THRUSTMASTER=m
-CONFIG_THRUSTMASTER_FF=y
+# CONFIG_THRUSTMASTER_FF is not set
 CONFIG_HID_WACOM=m
+# CONFIG_HID_WACOM_POWER_SUPPLY is not set
+CONFIG_HID_WIIMOTE=m
 CONFIG_HID_ZEROPLUS=m
-CONFIG_ZEROPLUS_FF=y
+# CONFIG_ZEROPLUS_FF is not set
+CONFIG_HID_ZYDACRON=m
 CONFIG_USB_SUPPORT=y
+CONFIG_USB_COMMON=y
 CONFIG_USB_ARCH_HAS_HCD=y
 CONFIG_USB_ARCH_HAS_OHCI=y
 CONFIG_USB_ARCH_HAS_EHCI=y
-CONFIG_USB=m
+CONFIG_USB_ARCH_HAS_XHCI=y
+CONFIG_USB=y
 # CONFIG_USB_DEBUG is not set
 CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
 
@@ -3057,6 +3746,8 @@ CONFIG_USB_DEVICE_CLASS=y
 CONFIG_USB_DYNAMIC_MINORS=y
 CONFIG_USB_SUSPEND=y
 # CONFIG_USB_OTG is not set
+CONFIG_USB_DWC3=m
+# CONFIG_USB_DWC3_DEBUG is not set
 # CONFIG_USB_MON is not set
 CONFIG_USB_WUSB=m
 CONFIG_USB_WUSB_CBAF=m
@@ -3068,30 +3759,26 @@ CONFIG_USB_WUSB_CBAF=m
 # CONFIG_USB_C67X00_HCD is not set
 CONFIG_USB_XHCI_HCD=m
 # CONFIG_USB_XHCI_HCD_DEBUGGING is not set
-CONFIG_USB_EHCI_HCD=m
-# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
-# CONFIG_USB_EHCI_TT_NEWSCHED is not set
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_EHCI_ROOT_HUB_TT=y
+CONFIG_USB_EHCI_TT_NEWSCHED=y
 CONFIG_USB_OXU210HP_HCD=m
 CONFIG_USB_ISP116X_HCD=m
 # CONFIG_USB_ISP1760_HCD is not set
 CONFIG_USB_ISP1362_HCD=m
-CONFIG_USB_OHCI_HCD=m
-CONFIG_USB_OHCI_HCD_SSB=y
+CONFIG_USB_OHCI_HCD=y
 # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
 # CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
 CONFIG_USB_OHCI_LITTLE_ENDIAN=y
-CONFIG_USB_UHCI_HCD=m
+CONFIG_USB_UHCI_HCD=y
 CONFIG_USB_U132_HCD=m
 CONFIG_USB_SL811_HCD=m
+# CONFIG_USB_SL811_HCD_ISO is not set
 # CONFIG_USB_SL811_CS is not set
 CONFIG_USB_R8A66597_HCD=m
 CONFIG_USB_WHCI_HCD=m
 CONFIG_USB_HWA_HCD=m
 
-#
-# Enable Host or Gadget support to see Inventra options
-#
-
 #
 # USB Device Class drivers
 #
@@ -3109,7 +3796,9 @@ CONFIG_USB_TMC=m
 #
 CONFIG_USB_STORAGE=m
 # CONFIG_USB_STORAGE_DEBUG is not set
-# CONFIG_USB_STORAGE_DATAFAB is not set
+CONFIG_USB_STORAGE_REALTEK=m
+CONFIG_REALTEK_AUTOPM=y
+CONFIG_USB_STORAGE_DATAFAB=m
 CONFIG_USB_STORAGE_FREECOM=m
 CONFIG_USB_STORAGE_ISD200=m
 CONFIG_USB_STORAGE_USBAT=m
@@ -3120,6 +3809,8 @@ CONFIG_USB_STORAGE_ALAUDA=m
 CONFIG_USB_STORAGE_ONETOUCH=m
 CONFIG_USB_STORAGE_KARMA=m
 CONFIG_USB_STORAGE_CYPRESS_ATACB=m
+CONFIG_USB_STORAGE_ENE_UB6250=m
+CONFIG_USB_UAS=m
 # CONFIG_USB_LIBUSUAL is not set
 
 #
@@ -3145,12 +3836,12 @@ CONFIG_USB_SERIAL_CP210X=m
 CONFIG_USB_SERIAL_CYPRESS_M8=m
 CONFIG_USB_SERIAL_EMPEG=m
 CONFIG_USB_SERIAL_FTDI_SIO=m
-# CONFIG_USB_SERIAL_FUNSOFT is not set
-# CONFIG_USB_SERIAL_VISOR is not set
-# CONFIG_USB_SERIAL_IPAQ is not set
-# CONFIG_USB_SERIAL_IR is not set
+CONFIG_USB_SERIAL_FUNSOFT=m
+CONFIG_USB_SERIAL_VISOR=m
+CONFIG_USB_SERIAL_IPAQ=m
+CONFIG_USB_SERIAL_IR=m
 CONFIG_USB_SERIAL_EDGEPORT=m
-# CONFIG_USB_SERIAL_EDGEPORT_TI is not set
+CONFIG_USB_SERIAL_EDGEPORT_TI=m
 CONFIG_USB_SERIAL_GARMIN=m
 CONFIG_USB_SERIAL_IPW=m
 CONFIG_USB_SERIAL_IUU=m
@@ -3160,11 +3851,13 @@ CONFIG_USB_SERIAL_IUU=m
 # CONFIG_USB_SERIAL_KOBIL_SCT is not set
 CONFIG_USB_SERIAL_MCT_U232=m
 CONFIG_USB_SERIAL_MOS7720=m
+# CONFIG_USB_SERIAL_MOS7715_PARPORT is not set
 CONFIG_USB_SERIAL_MOS7840=m
 CONFIG_USB_SERIAL_MOTOROLA=m
 # CONFIG_USB_SERIAL_NAVMAN is not set
 CONFIG_USB_SERIAL_PL2303=m
 CONFIG_USB_SERIAL_OTI6858=m
+CONFIG_USB_SERIAL_QCAUX=m
 CONFIG_USB_SERIAL_QUALCOMM=m
 CONFIG_USB_SERIAL_SPCP8X5=m
 CONFIG_USB_SERIAL_HP4X=m
@@ -3176,9 +3869,13 @@ CONFIG_USB_SERIAL_SYMBOL=m
 CONFIG_USB_SERIAL_TI=m
 # CONFIG_USB_SERIAL_CYBERJACK is not set
 CONFIG_USB_SERIAL_XIRCOM=m
+CONFIG_USB_SERIAL_WWAN=m
 CONFIG_USB_SERIAL_OPTION=m
 # CONFIG_USB_SERIAL_OMNINET is not set
 CONFIG_USB_SERIAL_OPTICON=m
+CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m
+CONFIG_USB_SERIAL_ZIO=m
+CONFIG_USB_SERIAL_SSU100=m
 # CONFIG_USB_SERIAL_DEBUG is not set
 
 #
@@ -3191,7 +3888,6 @@ CONFIG_USB_SEVSEG=m
 # CONFIG_USB_RIO500 is not set
 # CONFIG_USB_LEGOTOWER is not set
 CONFIG_USB_LCD=m
-CONFIG_USB_BERRY_CHARGE=m
 CONFIG_USB_LED=m
 CONFIG_USB_CYPRESS_CY7C63=m
 CONFIG_USB_CYTHERM=m
@@ -3205,7 +3901,7 @@ CONFIG_USB_SISUSBVGA_CON=y
 CONFIG_USB_IOWARRIOR=m
 # CONFIG_USB_TEST is not set
 CONFIG_USB_ISIGHTFW=m
-CONFIG_USB_VST=m
+CONFIG_USB_YUREX=m
 CONFIG_USB_ATM=m
 CONFIG_USB_SPEEDTOUCH=m
 CONFIG_USB_CXACRU=m
@@ -3217,21 +3913,22 @@ CONFIG_USB_XUSBATM=m
 # OTG and related infrastructure
 #
 CONFIG_USB_OTG_UTILS=y
+CONFIG_USB_GPIO_VBUS=m
 CONFIG_NOP_USB_XCEIV=m
 CONFIG_UWB=m
 CONFIG_UWB_HWA=m
 CONFIG_UWB_WHCI=m
-CONFIG_UWB_WLP=m
 CONFIG_UWB_I1480U=m
-CONFIG_UWB_I1480U_WLP=m
 CONFIG_MMC=m
 # CONFIG_MMC_DEBUG is not set
 # CONFIG_MMC_UNSAFE_RESUME is not set
+# CONFIG_MMC_CLKGATE is not set
 
 #
 # MMC/SD/SDIO Card Drivers
 #
 CONFIG_MMC_BLOCK=m
+CONFIG_MMC_BLOCK_MINORS=8
 CONFIG_MMC_BLOCK_BOUNCE=y
 CONFIG_SDIO_UART=m
 CONFIG_MMC_TEST=m
@@ -3241,15 +3938,15 @@ CONFIG_MMC_TEST=m
 #
 CONFIG_MMC_SDHCI=m
 CONFIG_MMC_SDHCI_PCI=m
-CONFIG_MMC_RICOH_MMC=m
+# CONFIG_MMC_RICOH_MMC is not set
 CONFIG_MMC_SDHCI_PLTFM=m
 CONFIG_MMC_WBSD=m
-# CONFIG_MMC_AT91 is not set
-# CONFIG_MMC_ATMELMCI is not set
 CONFIG_MMC_TIFM_SD=m
 CONFIG_MMC_SDRICOH_CS=m
 CONFIG_MMC_CB710=m
 CONFIG_MMC_VIA_SDMMC=m
+CONFIG_MMC_VUB300=m
+CONFIG_MMC_USHC=m
 CONFIG_MEMSTICK=m
 # CONFIG_MEMSTICK_DEBUG is not set
 
@@ -3264,30 +3961,39 @@ CONFIG_MSPRO_BLOCK=m
 #
 CONFIG_MEMSTICK_TIFM_MS=m
 CONFIG_MEMSTICK_JMICRON_38X=m
+CONFIG_MEMSTICK_R592=m
 CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=m
+CONFIG_LEDS_CLASS=y
 
 #
 # LED drivers
 #
+CONFIG_LEDS_LM3530=m
 CONFIG_LEDS_NET48XX=m
+CONFIG_LEDS_NET5501=m
 CONFIG_LEDS_WRAP=m
-CONFIG_LEDS_ALIX2=m
 CONFIG_LEDS_PCA9532=m
+CONFIG_LEDS_PCA9532_GPIO=y
+CONFIG_LEDS_GPIO=m
 CONFIG_LEDS_LP3944=m
+CONFIG_LEDS_LP5521=m
+CONFIG_LEDS_LP5523=m
 CONFIG_LEDS_CLEVO_MAIL=m
 CONFIG_LEDS_PCA955X=m
-CONFIG_LEDS_WM831X_STATUS=m
-CONFIG_LEDS_WM8350=m
+CONFIG_LEDS_REGULATOR=m
 CONFIG_LEDS_BD2802=m
+CONFIG_LEDS_INTEL_SS4200=m
+CONFIG_LEDS_LT3593=m
+CONFIG_LEDS_DELL_NETBOOKS=m
+CONFIG_LEDS_TRIGGERS=y
 
 #
 # LED Triggers
 #
-CONFIG_LEDS_TRIGGERS=y
 CONFIG_LEDS_TRIGGER_TIMER=m
 CONFIG_LEDS_TRIGGER_HEARTBEAT=m
 CONFIG_LEDS_TRIGGER_BACKLIGHT=m
+CONFIG_LEDS_TRIGGER_GPIO=m
 CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
 
 #
@@ -3297,8 +4003,11 @@ CONFIG_LEDS_TRIGGER_NETDEV=m
 # CONFIG_ACCESSIBILITY is not set
 # CONFIG_INFINIBAND is not set
 # CONFIG_EDAC is not set
-CONFIG_RTC_LIB=m
-CONFIG_RTC_CLASS=m
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
 
 #
 # RTC interfaces
@@ -3307,7 +4016,7 @@ CONFIG_RTC_INTF_SYSFS=y
 CONFIG_RTC_INTF_PROC=y
 CONFIG_RTC_INTF_DEV=y
 # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
-CONFIG_RTC_DRV_TEST=m
+# CONFIG_RTC_DRV_TEST is not set
 
 #
 # I2C RTC drivers
@@ -3315,18 +4024,23 @@ CONFIG_RTC_DRV_TEST=m
 CONFIG_RTC_DRV_DS1307=m
 CONFIG_RTC_DRV_DS1374=m
 CONFIG_RTC_DRV_DS1672=m
+CONFIG_RTC_DRV_DS3232=m
 CONFIG_RTC_DRV_MAX6900=m
 CONFIG_RTC_DRV_RS5C372=m
 CONFIG_RTC_DRV_ISL1208=m
+CONFIG_RTC_DRV_ISL12022=m
 CONFIG_RTC_DRV_X1205=m
 CONFIG_RTC_DRV_PCF8563=m
 CONFIG_RTC_DRV_PCF8583=m
 CONFIG_RTC_DRV_M41T80=m
-# CONFIG_RTC_DRV_M41T80_WDT is not set
+CONFIG_RTC_DRV_M41T80_WDT=y
+CONFIG_RTC_DRV_BQ32K=m
 CONFIG_RTC_DRV_S35390A=m
 CONFIG_RTC_DRV_FM3130=m
 CONFIG_RTC_DRV_RX8581=m
 CONFIG_RTC_DRV_RX8025=m
+CONFIG_RTC_DRV_EM3027=m
+CONFIG_RTC_DRV_RV3029C2=m
 
 #
 # SPI RTC drivers
@@ -3335,7 +4049,7 @@ CONFIG_RTC_DRV_RX8025=m
 #
 # Platform RTC drivers
 #
-CONFIG_RTC_DRV_CMOS=m
+CONFIG_RTC_DRV_CMOS=y
 CONFIG_RTC_DRV_DS1286=m
 CONFIG_RTC_DRV_DS1511=m
 CONFIG_RTC_DRV_DS1553=m
@@ -3344,23 +4058,25 @@ CONFIG_RTC_DRV_STK17TA8=m
 CONFIG_RTC_DRV_M48T86=m
 CONFIG_RTC_DRV_M48T35=m
 CONFIG_RTC_DRV_M48T59=m
+CONFIG_RTC_DRV_MSM6242=m
 CONFIG_RTC_DRV_BQ4802=m
+CONFIG_RTC_DRV_RP5C01=m
 CONFIG_RTC_DRV_V3020=m
-CONFIG_RTC_DRV_WM831X=m
-CONFIG_RTC_DRV_WM8350=m
 CONFIG_RTC_DRV_PCF50633=m
-CONFIG_RTC_DRV_AB3100=m
 
 #
 # on-CPU RTC drivers
 #
 CONFIG_DMADEVICES=y
+# CONFIG_DMADEVICES_DEBUG is not set
 
 #
 # DMA Devices
 #
-CONFIG_ASYNC_TX_DISABLE_CHANNEL_SWITCH=y
+CONFIG_INTEL_MID_DMAC=m
 CONFIG_INTEL_IOATDMA=m
+CONFIG_TIMB_DMA=m
+CONFIG_PCH_DMA=m
 CONFIG_DMA_ENGINE=y
 
 #
@@ -3375,104 +4091,169 @@ CONFIG_UIO=m
 CONFIG_UIO_CIF=m
 CONFIG_UIO_PDRV=m
 CONFIG_UIO_PDRV_GENIRQ=m
-CONFIG_UIO_SMX=m
 CONFIG_UIO_AEC=m
 CONFIG_UIO_SERCOS3=m
 CONFIG_UIO_PCI_GENERIC=m
+CONFIG_UIO_NETX=m
+CONFIG_VIRTIO=y
+CONFIG_VIRTIO_RING=y
+
+#
+# Virtio drivers
+#
+CONFIG_VIRTIO_PCI=m
+CONFIG_VIRTIO_BALLOON=m
+CONFIG_VIRTIO_MMIO=m
 
 #
-# TI VLYNQ
+# Xen driver support
 #
 CONFIG_XEN_BALLOON=y
 CONFIG_XEN_SCRUB_PAGES=y
 CONFIG_XEN_DEV_EVTCHN=m
+CONFIG_XEN_BACKEND=y
 CONFIG_XENFS=m
 CONFIG_XEN_COMPAT_XENFS=y
 CONFIG_XEN_SYS_HYPERVISOR=y
+CONFIG_XEN_XENBUS_FRONTEND=y
+CONFIG_XEN_GNTDEV=m
+CONFIG_XEN_GRANT_DEV_ALLOC=m
+CONFIG_SWIOTLB_XEN=y
+CONFIG_XEN_PCIDEV_BACKEND=m
 CONFIG_STAGING=y
-# CONFIG_STAGING_EXCLUDE_BUILD is not set
 CONFIG_ET131X=m
-# CONFIG_ET131X_DEBUG is not set
 CONFIG_SLICOSS=m
-# CONFIG_VIDEO_GO7007 is not set
-# CONFIG_VIDEO_CX25821 is not set
-# CONFIG_USB_IP_COMMON is not set
+CONFIG_USBIP_CORE=m
+CONFIG_USBIP_VHCI_HCD=m
+CONFIG_USBIP_HOST=m
+# CONFIG_USBIP_DEBUG is not set
 # CONFIG_W35UND is not set
 # CONFIG_PRISM2_USB is not set
 # CONFIG_ECHO is not set
-# CONFIG_POCH is not set
-# CONFIG_OTUS is not set
-# CONFIG_RT2860 is not set
-# CONFIG_RT2870 is not set
-# CONFIG_RT3090 is not set
 # CONFIG_COMEDI is not set
 # CONFIG_ASUS_OLED is not set
 # CONFIG_PANEL is not set
-# CONFIG_ALTERA_PCIE_CHDMA is not set
-# CONFIG_RTL8187SE is not set
-# CONFIG_RTL8192SU is not set
+# CONFIG_R8187SE is not set
+# CONFIG_RTL8192U is not set
 # CONFIG_RTL8192E is not set
+# CONFIG_R8712U is not set
+# CONFIG_RTS_PSTOR is not set
+# CONFIG_RTS5139 is not set
 # CONFIG_TRANZPORT is not set
-
-#
-# Android
-#
-
-#
-# Qualcomm MSM Camera And Video
-#
-
-#
-# Camera Sensor Selection
-#
-# CONFIG_INPUT_GPIO is not set
-# CONFIG_DST is not set
 # CONFIG_POHMELFS is not set
-# CONFIG_B3DFG is not set
 CONFIG_IDE_PHISON=m
-# CONFIG_PLAN9AUTH is not set
 # CONFIG_LINE6_USB is not set
-# CONFIG_DRM_RADEON_KMS is not set
+CONFIG_DRM_NOUVEAU=m
+CONFIG_DRM_NOUVEAU_BACKLIGHT=y
+
+#
+# I2C encoder or helper chips
+#
+# CONFIG_DRM_I2C_CH7006 is not set
+# CONFIG_DRM_I2C_SIL164 is not set
 # CONFIG_USB_SERIAL_QUATECH2 is not set
 # CONFIG_USB_SERIAL_QUATECH_USB2 is not set
 # CONFIG_VT6655 is not set
 # CONFIG_VT6656 is not set
-# CONFIG_FB_UDL is not set
-CONFIG_HYPERV=m
 CONFIG_HYPERV_STORAGE=m
-CONFIG_HYPERV_BLOCK=m
 CONFIG_HYPERV_NET=m
+CONFIG_HYPERV_MOUSE=m
 # CONFIG_VME_BUS is not set
-
-#
-# RAR Register Driver
-#
-# CONFIG_RAR_REGISTER is not set
+# CONFIG_DX_SEP is not set
 # CONFIG_IIO is not set
+# CONFIG_XVMALLOC is not set
+# CONFIG_ZRAM is not set
+# CONFIG_WLAGS49_H2 is not set
+# CONFIG_WLAGS49_H25 is not set
+# CONFIG_FB_SM7XX is not set
+# CONFIG_CRYSTALHD is not set
+# CONFIG_CXT1E1 is not set
+# CONFIG_FB_XGI is not set
+# CONFIG_ACPI_QUICKSTART is not set
+# CONFIG_SBE_2T3E3 is not set
+# CONFIG_USB_ENESTORAGE is not set
+# CONFIG_BCM_WIMAX is not set
+# CONFIG_FT1000 is not set
+
+#
+# Speakup console speech
+#
+# CONFIG_SPEAKUP is not set
+# CONFIG_TOUCHSCREEN_CLEARPAD_TM1217 is not set
+# CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4 is not set
+# CONFIG_DRM_PSB is not set
+CONFIG_INTEL_MEI=m
+# CONFIG_STAGING_MEDIA is not set
 CONFIG_X86_PLATFORM_DEVICES=y
 CONFIG_ACER_WMI=m
+CONFIG_ACERHDF=m
 CONFIG_ASUS_LAPTOP=m
 CONFIG_DELL_WMI=m
+CONFIG_DELL_WMI_AIO=m
 CONFIG_FUJITSU_LAPTOP=m
 CONFIG_FUJITSU_LAPTOP_DEBUG=y
 CONFIG_TC1100_WMI=m
+CONFIG_HP_ACCEL=m
 CONFIG_HP_WMI=m
 CONFIG_MSI_LAPTOP=m
 CONFIG_PANASONIC_LAPTOP=m
 CONFIG_COMPAL_LAPTOP=m
 CONFIG_SONY_LAPTOP=m
 # CONFIG_SONYPI_COMPAT is not set
+CONFIG_IDEAPAD_LAPTOP=m
 CONFIG_THINKPAD_ACPI=m
+CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y
 # CONFIG_THINKPAD_ACPI_DEBUGFACILITIES is not set
 # CONFIG_THINKPAD_ACPI_DEBUG is not set
 # CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set
 CONFIG_THINKPAD_ACPI_VIDEO=y
 CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y
+CONFIG_SENSORS_HDAPS=m
 CONFIG_INTEL_MENLOW=m
 CONFIG_ACPI_WMI=m
+CONFIG_MSI_WMI=m
 CONFIG_ACPI_ASUS=m
 CONFIG_TOPSTAR_LAPTOP=m
 CONFIG_ACPI_TOSHIBA=m
+CONFIG_TOSHIBA_BT_RFKILL=m
+CONFIG_ACPI_CMPC=m
+CONFIG_INTEL_IPS=m
+CONFIG_IBM_RTL=m
+CONFIG_XO15_EBOOK=m
+CONFIG_SAMSUNG_LAPTOP=m
+CONFIG_MXM_WMI=m
+CONFIG_INTEL_OAKTRAIL=m
+CONFIG_SAMSUNG_Q10=m
+
+#
+# Hardware Spinlock drivers
+#
+CONFIG_CLKSRC_I8253=y
+CONFIG_CLKEVT_I8253=y
+CONFIG_I8253_LOCK=y
+CONFIG_CLKBLD_I8253=y
+CONFIG_IOMMU_API=y
+CONFIG_IOMMU_SUPPORT=y
+CONFIG_DMAR_TABLE=y
+CONFIG_INTEL_IOMMU=y
+CONFIG_INTEL_IOMMU_DEFAULT_ON=y
+CONFIG_INTEL_IOMMU_FLOPPY_WA=y
+CONFIG_VIRT_DRIVERS=y
+CONFIG_HYPERV=m
+CONFIG_HYPERV_UTILS=m
+CONFIG_PM_DEVFREQ=y
+
+#
+# DEVFREQ Governors
+#
+CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y
+CONFIG_DEVFREQ_GOV_PERFORMANCE=y
+CONFIG_DEVFREQ_GOV_POWERSAVE=y
+CONFIG_DEVFREQ_GOV_USERSPACE=y
+
+#
+# DEVFREQ Drivers
+#
 
 #
 # Firmware Drivers
@@ -3482,32 +4263,25 @@ CONFIG_FIRMWARE_MEMMAP=y
 # CONFIG_DELL_RBU is not set
 # CONFIG_DCDBAS is not set
 CONFIG_DMIID=y
+CONFIG_DMI_SYSFS=m
 CONFIG_ISCSI_IBFT_FIND=y
 CONFIG_ISCSI_IBFT=m
+CONFIG_SIGMA=m
+# CONFIG_GOOGLE_FIRMWARE is not set
 
 #
 # File systems
 #
-CONFIG_EXT2_FS=m
-CONFIG_EXT2_FS_XATTR=y
-CONFIG_EXT2_FS_POSIX_ACL=y
-CONFIG_EXT2_FS_SECURITY=y
-# CONFIG_EXT2_FS_XIP is not set
-CONFIG_EXT3_FS=m
-# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
-CONFIG_EXT3_FS_XATTR=y
-CONFIG_EXT3_FS_POSIX_ACL=y
-CONFIG_EXT3_FS_SECURITY=y
-CONFIG_EXT4_FS=m
+# CONFIG_EXT2_FS is not set
+# CONFIG_EXT3_FS is not set
+CONFIG_EXT4_FS=y
+CONFIG_EXT4_USE_FOR_EXT23=y
 CONFIG_EXT4_FS_XATTR=y
 CONFIG_EXT4_FS_POSIX_ACL=y
 CONFIG_EXT4_FS_SECURITY=y
 # CONFIG_EXT4_DEBUG is not set
-CONFIG_JBD=m
-CONFIG_JBD2=m
-CONFIG_FS_MBCACHE=m
-CONFIG_REISER4_FS=m
-# CONFIG_REISER4_DEBUG is not set
+CONFIG_JBD2=y
+CONFIG_FS_MBCACHE=y
 CONFIG_REISERFS_FS=m
 # CONFIG_REISERFS_CHECK is not set
 CONFIG_REISERFS_PROC_INFO=y
@@ -3519,29 +4293,29 @@ CONFIG_JFS_POSIX_ACL=y
 CONFIG_JFS_SECURITY=y
 # CONFIG_JFS_DEBUG is not set
 CONFIG_JFS_STATISTICS=y
-CONFIG_FS_POSIX_ACL=y
 CONFIG_XFS_FS=m
 CONFIG_XFS_QUOTA=y
 CONFIG_XFS_POSIX_ACL=y
 # CONFIG_XFS_RT is not set
 # CONFIG_XFS_DEBUG is not set
 # CONFIG_GFS2_FS is not set
-# CONFIG_OCFS2_FS is not set
 # CONFIG_BTRFS_FS is not set
 # CONFIG_NILFS2_FS is not set
+CONFIG_FS_POSIX_ACL=y
+CONFIG_EXPORTFS=m
 CONFIG_FILE_LOCKING=y
 CONFIG_FSNOTIFY=y
 CONFIG_DNOTIFY=y
-CONFIG_INOTIFY=y
 CONFIG_INOTIFY_USER=y
+CONFIG_FANOTIFY=y
 CONFIG_QUOTA=y
 CONFIG_QUOTA_NETLINK_INTERFACE=y
 CONFIG_PRINT_QUOTA_WARNING=y
+# CONFIG_QUOTA_DEBUG is not set
 CONFIG_QUOTA_TREE=m
 CONFIG_QFMT_V1=m
 CONFIG_QFMT_V2=m
 CONFIG_QUOTACTL=y
-CONFIG_AUTOFS_FS=m
 CONFIG_AUTOFS4_FS=m
 CONFIG_FUSE_FS=m
 CONFIG_CUSE=m
@@ -3587,6 +4361,7 @@ CONFIG_PROC_PAGE_MONITOR=y
 CONFIG_SYSFS=y
 CONFIG_TMPFS=y
 # CONFIG_TMPFS_POSIX_ACL is not set
+CONFIG_TMPFS_XATTR=y
 # CONFIG_HUGETLBFS is not set
 # CONFIG_HUGETLB_PAGE is not set
 # CONFIG_CONFIGFS_FS is not set
@@ -3615,6 +4390,7 @@ CONFIG_JFFS2_CMODE_PRIORITY=y
 # CONFIG_JFFS2_CMODE_SIZE is not set
 # CONFIG_JFFS2_CMODE_FAVOURLZO is not set
 # CONFIG_UBIFS_FS is not set
+# CONFIG_LOGFS is not set
 # CONFIG_CRAMFS is not set
 # CONFIG_SQUASHFS is not set
 # CONFIG_VXFS_FS is not set
@@ -3623,8 +4399,11 @@ CONFIG_JFFS2_CMODE_PRIORITY=y
 # CONFIG_HPFS_FS is not set
 # CONFIG_QNX4FS_FS is not set
 # CONFIG_ROMFS_FS is not set
+# CONFIG_PSTORE is not set
 # CONFIG_SYSV_FS is not set
-# CONFIG_UFS_FS is not set
+CONFIG_UFS_FS=m
+# CONFIG_UFS_FS_WRITE is not set
+# CONFIG_UFS_DEBUG is not set
 # CONFIG_EXOFS_FS is not set
 CONFIG_NETWORK_FILESYSTEMS=y
 CONFIG_NFS_FS=m
@@ -3633,6 +4412,9 @@ CONFIG_NFS_V3_ACL=y
 CONFIG_NFS_V4=y
 # CONFIG_NFS_V4_1 is not set
 # CONFIG_NFS_FSCACHE is not set
+# CONFIG_NFS_USE_LEGACY_DNS is not set
+CONFIG_NFS_USE_KERNEL_DNS=y
+# CONFIG_NFS_USE_NEW_IDMAPPER is not set
 CONFIG_NFSD=m
 CONFIG_NFSD_V2_ACL=y
 CONFIG_NFSD_V3=y
@@ -3640,15 +4422,12 @@ CONFIG_NFSD_V3_ACL=y
 CONFIG_NFSD_V4=y
 CONFIG_LOCKD=m
 CONFIG_LOCKD_V4=y
-CONFIG_EXPORTFS=m
 CONFIG_NFS_ACL_SUPPORT=m
 CONFIG_NFS_COMMON=y
 CONFIG_SUNRPC=m
 CONFIG_SUNRPC_GSS=m
 CONFIG_RPCSEC_GSS_KRB5=m
-# CONFIG_RPCSEC_GSS_SPKM3 is not set
-CONFIG_SMB_FS=m
-# CONFIG_SMB_NLS_DEFAULT is not set
+# CONFIG_CEPH_FS is not set
 CONFIG_CIFS=m
 CONFIG_CIFS_STATS=y
 CONFIG_CIFS_STATS2=y
@@ -3658,7 +4437,8 @@ CONFIG_CIFS_XATTR=y
 CONFIG_CIFS_POSIX=y
 # CONFIG_CIFS_DEBUG2 is not set
 # CONFIG_CIFS_DFS_UPCALL is not set
-# CONFIG_CIFS_EXPERIMENTAL is not set
+# CONFIG_CIFS_FSCACHE is not set
+CONFIG_CIFS_ACL=y
 # CONFIG_NCP_FS is not set
 # CONFIG_CODA_FS is not set
 # CONFIG_AFS_FS is not set
@@ -3673,7 +4453,7 @@ CONFIG_PARTITION_ADVANCED=y
 # CONFIG_ATARI_PARTITION is not set
 # CONFIG_MAC_PARTITION is not set
 CONFIG_MSDOS_PARTITION=y
-# CONFIG_BSD_DISKLABEL is not set
+CONFIG_BSD_DISKLABEL=y
 # CONFIG_MINIX_SUBPARTITION is not set
 # CONFIG_SOLARIS_X86_PARTITION is not set
 # CONFIG_UNIXWARE_DISKLABEL is not set
@@ -3725,13 +4505,13 @@ CONFIG_NLS_ISO8859_1=y
 # CONFIG_NLS_KOI8_R is not set
 # CONFIG_NLS_KOI8_U is not set
 CONFIG_NLS_UTF8=y
-# CONFIG_DLM is not set
 
 #
 # Kernel hacking
 #
 CONFIG_TRACE_IRQFLAGS_SUPPORT=y
 # CONFIG_PRINTK_TIME is not set
+CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4
 # CONFIG_ENABLE_WARN_DEPRECATED is not set
 CONFIG_ENABLE_MUST_CHECK=y
 CONFIG_FRAME_WARN=1024
@@ -3740,12 +4520,13 @@ CONFIG_STRIP_ASM_SYMS=y
 # CONFIG_UNUSED_SYMBOLS is not set
 # CONFIG_DEBUG_FS is not set
 # CONFIG_HEADERS_CHECK is not set
+# CONFIG_DEBUG_SECTION_MISMATCH is not set
 CONFIG_DEBUG_KERNEL=y
 # CONFIG_DEBUG_SHIRQ is not set
-CONFIG_DETECT_SOFTLOCKUP=y
-# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
-CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
+# CONFIG_LOCKUP_DETECTOR is not set
+# CONFIG_HARDLOCKUP_DETECTOR is not set
 CONFIG_DETECT_HUNG_TASK=y
+CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
 # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
 CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
 CONFIG_SCHED_DEBUG=y
@@ -3761,9 +4542,11 @@ CONFIG_TIMER_STATS=y
 # CONFIG_DEBUG_MUTEXES is not set
 # CONFIG_DEBUG_LOCK_ALLOC is not set
 # CONFIG_PROVE_LOCKING is not set
+# CONFIG_SPARSE_RCU_POINTER is not set
 # CONFIG_LOCK_STAT is not set
-# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+# CONFIG_DEBUG_ATOMIC_SLEEP is not set
 # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+# CONFIG_DEBUG_STACK_USAGE is not set
 # CONFIG_DEBUG_KOBJECT is not set
 # CONFIG_DEBUG_HIGHMEM is not set
 CONFIG_DEBUG_BUGVERBOSE=y
@@ -3773,6 +4556,7 @@ CONFIG_DEBUG_BUGVERBOSE=y
 # CONFIG_DEBUG_WRITECOUNT is not set
 CONFIG_DEBUG_MEMORY_INIT=y
 # CONFIG_DEBUG_LIST is not set
+# CONFIG_TEST_LIST_SORT is not set
 # CONFIG_DEBUG_SG is not set
 # CONFIG_DEBUG_NOTIFIERS is not set
 # CONFIG_DEBUG_CREDENTIALS is not set
@@ -3780,10 +4564,12 @@ CONFIG_ARCH_WANT_FRAME_POINTERS=y
 # CONFIG_FRAME_POINTER is not set
 # CONFIG_BOOT_PRINTK_DELAY is not set
 # CONFIG_RCU_TORTURE_TEST is not set
-# CONFIG_RCU_CPU_STALL_DETECTOR is not set
+CONFIG_RCU_CPU_STALL_TIMEOUT=60
 # CONFIG_BACKTRACE_SELF_TEST is not set
 # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
 # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
+# CONFIG_DEBUG_PER_CPU_MAPS is not set
+# CONFIG_CPU_NOTIFIER_ERROR_INJECT is not set
 # CONFIG_FAULT_INJECTION is not set
 # CONFIG_LATENCYTOP is not set
 # CONFIG_SYSCTL_SYSCALL_CHECK is not set
@@ -3796,27 +4582,30 @@ CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
 CONFIG_HAVE_DYNAMIC_FTRACE=y
 CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
 CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
+CONFIG_HAVE_C_RECORDMCOUNT=y
 CONFIG_TRACING_SUPPORT=y
 # CONFIG_FTRACE is not set
 # CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
 # CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set
 # CONFIG_DMA_API_DEBUG is not set
+# CONFIG_ATOMIC64_SELFTEST is not set
+CONFIG_ASYNC_RAID6_TEST=m
 # CONFIG_SAMPLES is not set
 CONFIG_HAVE_ARCH_KGDB=y
 # CONFIG_KGDB is not set
 CONFIG_HAVE_ARCH_KMEMCHECK=y
+# CONFIG_KMEMCHECK is not set
+# CONFIG_TEST_KSTRTOX is not set
 # CONFIG_STRICT_DEVMEM is not set
 CONFIG_X86_VERBOSE_BOOTUP=y
 CONFIG_EARLY_PRINTK=y
 # CONFIG_EARLY_PRINTK_DBGP is not set
 # CONFIG_DEBUG_STACKOVERFLOW is not set
-# CONFIG_DEBUG_STACK_USAGE is not set
-# CONFIG_DEBUG_PER_CPU_MAPS is not set
 # CONFIG_X86_PTDUMP is not set
 CONFIG_DEBUG_RODATA=y
 CONFIG_DEBUG_RODATA_TEST=y
+# CONFIG_DEBUG_SET_MODULE_RONX is not set
 # CONFIG_DEBUG_NX_TEST is not set
-# CONFIG_4KSTACKS is not set
 CONFIG_DOUBLEFAULT=y
 # CONFIG_IOMMU_STRESS is not set
 CONFIG_HAVE_MMIOTRACE_SUPPORT=y
@@ -3831,17 +4620,20 @@ CONFIG_IO_DELAY_0X80=y
 CONFIG_DEFAULT_IO_DELAY_TYPE=0
 # CONFIG_CPA_DEBUG is not set
 # CONFIG_OPTIMIZE_INLINING is not set
+# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
 
 #
 # Security options
 #
 CONFIG_KEYS=y
+# CONFIG_ENCRYPTED_KEYS is not set
 # CONFIG_KEYS_DEBUG_PROC_KEYS is not set
+# CONFIG_SECURITY_DMESG_RESTRICT is not set
 # CONFIG_SECURITY is not set
 # CONFIG_SECURITYFS is not set
-# CONFIG_SECURITY_FILE_CAPABILITIES is not set
 # CONFIG_INTEL_TXT is not set
-# CONFIG_IMA is not set
+CONFIG_DEFAULT_SECURITY_DAC=y
+CONFIG_DEFAULT_SECURITY=""
 CONFIG_XOR_BLOCKS=m
 CONFIG_ASYNC_CORE=m
 CONFIG_ASYNC_MEMCPY=m
@@ -3855,7 +4647,6 @@ CONFIG_CRYPTO=y
 #
 # Crypto core or helper
 #
-CONFIG_CRYPTO_FIPS=y
 CONFIG_CRYPTO_ALGAPI=y
 CONFIG_CRYPTO_ALGAPI2=y
 CONFIG_CRYPTO_AEAD=m
@@ -3866,11 +4657,15 @@ CONFIG_CRYPTO_HASH=y
 CONFIG_CRYPTO_HASH2=y
 CONFIG_CRYPTO_RNG=m
 CONFIG_CRYPTO_RNG2=y
-CONFIG_CRYPTO_PCOMP=y
+CONFIG_CRYPTO_PCOMP=m
+CONFIG_CRYPTO_PCOMP2=y
 CONFIG_CRYPTO_MANAGER=y
 CONFIG_CRYPTO_MANAGER2=y
+CONFIG_CRYPTO_USER=m
+CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
 CONFIG_CRYPTO_GF128MUL=m
 # CONFIG_CRYPTO_NULL is not set
+CONFIG_CRYPTO_PCRYPT=m
 CONFIG_CRYPTO_WORKQUEUE=y
 CONFIG_CRYPTO_CRYPTD=m
 CONFIG_CRYPTO_AUTHENC=m
@@ -3907,7 +4702,7 @@ CONFIG_CRYPTO_VMAC=m
 CONFIG_CRYPTO_CRC32C=m
 CONFIG_CRYPTO_CRC32C_INTEL=m
 CONFIG_CRYPTO_GHASH=m
-# CONFIG_CRYPTO_MD4 is not set
+CONFIG_CRYPTO_MD4=m
 CONFIG_CRYPTO_MD5=m
 CONFIG_CRYPTO_MICHAEL_MIC=m
 CONFIG_CRYPTO_RMD128=m
@@ -3925,9 +4720,11 @@ CONFIG_CRYPTO_WP512=m
 #
 CONFIG_CRYPTO_AES=m
 CONFIG_CRYPTO_AES_586=m
+CONFIG_CRYPTO_AES_NI_INTEL=m
 CONFIG_CRYPTO_ANUBIS=m
 CONFIG_CRYPTO_ARC4=m
 CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_BLOWFISH_COMMON=m
 CONFIG_CRYPTO_CAMELLIA=m
 CONFIG_CRYPTO_CAST5=m
 CONFIG_CRYPTO_CAST6=m
@@ -3954,50 +4751,61 @@ CONFIG_CRYPTO_LZO=m
 # Random Number Generation
 #
 CONFIG_CRYPTO_ANSI_CPRNG=m
+CONFIG_CRYPTO_USER_API=m
+CONFIG_CRYPTO_USER_API_HASH=m
+CONFIG_CRYPTO_USER_API_SKCIPHER=m
 CONFIG_CRYPTO_HW=y
 CONFIG_CRYPTO_DEV_PADLOCK=m
 CONFIG_CRYPTO_DEV_PADLOCK_AES=m
 CONFIG_CRYPTO_DEV_PADLOCK_SHA=m
 CONFIG_CRYPTO_DEV_GEODE=m
-CONFIG_CRYPTO_DEV_HIFN_795X=m
-CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y
 CONFIG_HAVE_KVM=y
 CONFIG_HAVE_KVM_IRQCHIP=y
 CONFIG_HAVE_KVM_EVENTFD=y
 CONFIG_KVM_APIC_ARCHITECTURE=y
+CONFIG_KVM_MMIO=y
+CONFIG_KVM_ASYNC_PF=y
 CONFIG_VIRTUALIZATION=y
 CONFIG_KVM=m
 CONFIG_KVM_INTEL=m
 CONFIG_KVM_AMD=m
+CONFIG_VHOST_NET=m
 CONFIG_LGUEST=m
-CONFIG_VIRTIO=y
-CONFIG_VIRTIO_RING=y
-CONFIG_VIRTIO_PCI=m
-CONFIG_VIRTIO_BALLOON=m
 # CONFIG_BINARY_PRINTF is not set
 
 #
 # Library routines
 #
+CONFIG_RAID6_PQ=m
 CONFIG_BITREVERSE=y
 CONFIG_GENERIC_FIND_FIRST_BIT=y
-CONFIG_GENERIC_FIND_NEXT_BIT=y
-CONFIG_GENERIC_FIND_LAST_BIT=y
 CONFIG_CRC_CCITT=m
-CONFIG_CRC16=m
+CONFIG_CRC16=y
 CONFIG_CRC_T10DIF=m
 CONFIG_CRC_ITU_T=m
 CONFIG_CRC32=y
 CONFIG_CRC7=m
 CONFIG_LIBCRC32C=m
+CONFIG_CRC8=m
 CONFIG_AUDIT_GENERIC=y
 CONFIG_ZLIB_INFLATE=y
 CONFIG_ZLIB_DEFLATE=y
-CONFIG_LZO_COMPRESS=m
-CONFIG_LZO_DECOMPRESS=m
+CONFIG_LZO_COMPRESS=y
+CONFIG_LZO_DECOMPRESS=y
+CONFIG_XZ_DEC=y
+CONFIG_XZ_DEC_X86=y
+CONFIG_XZ_DEC_POWERPC=y
+CONFIG_XZ_DEC_IA64=y
+CONFIG_XZ_DEC_ARM=y
+CONFIG_XZ_DEC_ARMTHUMB=y
+CONFIG_XZ_DEC_SPARC=y
+CONFIG_XZ_DEC_BCJ=y
+# CONFIG_XZ_DEC_TEST is not set
 CONFIG_DECOMPRESS_GZIP=y
 CONFIG_DECOMPRESS_BZIP2=y
 CONFIG_DECOMPRESS_LZMA=y
+CONFIG_DECOMPRESS_XZ=y
+CONFIG_DECOMPRESS_LZO=y
 CONFIG_TEXTSEARCH=y
 CONFIG_TEXTSEARCH_KMP=m
 CONFIG_TEXTSEARCH_BM=m
@@ -4006,4 +4814,7 @@ CONFIG_HAS_IOMEM=y
 CONFIG_HAS_IOPORT=y
 CONFIG_HAS_DMA=y
 CONFIG_CHECK_SIGNATURE=y
+CONFIG_CPU_RMAP=y
 CONFIG_NLATTR=y
+CONFIG_AVERAGE=y
+CONFIG_CORDIC=m
index 72fd49098ce4a9b9a1aecdd8010416d02b88d5f1..8fedba49055875981fd112d537951bc485306f18 100644 (file)
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
-# Linux kernel version: 2.6.32.41-ipfire-xen
-# Mon May 31 15:00:00 2011
+# Linux kernel version: 2.6.32.60
+# Sat Dec  8 11:41:33 2012
 #
 # CONFIG_64BIT is not set
 CONFIG_X86_32=y
@@ -47,7 +47,6 @@ CONFIG_USE_GENERIC_SMP_HELPERS=y
 CONFIG_X86_32_SMP=y
 CONFIG_X86_NO_TSS=y
 CONFIG_X86_NO_IDT=y
-CONFIG_X86_32_LAZY_GS=y
 CONFIG_KTIME_SCALAR=y
 CONFIG_ARCH_CPU_PROBE_RELEASE=y
 CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
@@ -104,7 +103,7 @@ CONFIG_INITRAMFS_SOURCE=""
 CONFIG_RD_GZIP=y
 CONFIG_RD_BZIP2=y
 CONFIG_RD_LZMA=y
-CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
 CONFIG_SYSCTL=y
 CONFIG_ANON_INODES=y
 # CONFIG_EMBEDDED is not set
@@ -283,8 +282,9 @@ CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
 # CONFIG_HIGHPTE is not set
 CONFIG_MTRR=y
 # CONFIG_X86_PAT is not set
+CONFIG_ARCH_RANDOM=y
 CONFIG_SECCOMP=y
-# CONFIG_CC_STACKPROTECTOR is not set
+CONFIG_CC_STACKPROTECTOR=y
 # CONFIG_HZ_100 is not set
 # CONFIG_HZ_250 is not set
 CONFIG_HZ_300=y
@@ -471,7 +471,7 @@ CONFIG_TCP_CONG_ILLINOIS=m
 CONFIG_DEFAULT_RENO=y
 CONFIG_DEFAULT_TCP_CONG="reno"
 # CONFIG_TCP_MD5SIG is not set
-CONFIG_IPV6=m
+CONFIG_IPV6=y
 # CONFIG_IPV6_PRIVACY is not set
 # CONFIG_IPV6_ROUTER_PREF is not set
 # CONFIG_IPV6_OPTIMISTIC_DAD is not set
@@ -2140,10 +2140,9 @@ CONFIG_SSB_POSSIBLE=y
 #
 CONFIG_SSB=m
 CONFIG_SSB_SPROM=y
-CONFIG_SSB_BLOCKIO=y
 CONFIG_SSB_PCIHOST_POSSIBLE=y
 CONFIG_SSB_PCIHOST=y
-CONFIG_SSB_B43_PCI_BRIDGE=y
+# CONFIG_SSB_B43_PCI_BRIDGE is not set
 CONFIG_SSB_PCMCIAHOST_POSSIBLE=y
 CONFIG_SSB_PCMCIAHOST=y
 CONFIG_SSB_SDIOHOST_POSSIBLE=y
@@ -2766,7 +2765,7 @@ CONFIG_USB_SUPPORT=y
 CONFIG_USB_ARCH_HAS_HCD=y
 CONFIG_USB_ARCH_HAS_OHCI=y
 CONFIG_USB_ARCH_HAS_EHCI=y
-CONFIG_USB=m
+CONFIG_USB=y
 # CONFIG_USB_DEBUG is not set
 CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
 
@@ -2789,19 +2788,18 @@ CONFIG_USB_WUSB_CBAF=m
 # CONFIG_USB_C67X00_HCD is not set
 CONFIG_USB_XHCI_HCD=m
 # CONFIG_USB_XHCI_HCD_DEBUGGING is not set
-CONFIG_USB_EHCI_HCD=m
-# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
-# CONFIG_USB_EHCI_TT_NEWSCHED is not set
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_EHCI_ROOT_HUB_TT=y
+CONFIG_USB_EHCI_TT_NEWSCHED=y
 CONFIG_USB_OXU210HP_HCD=m
 CONFIG_USB_ISP116X_HCD=m
 # CONFIG_USB_ISP1760_HCD is not set
 CONFIG_USB_ISP1362_HCD=m
-CONFIG_USB_OHCI_HCD=m
-CONFIG_USB_OHCI_HCD_SSB=y
+CONFIG_USB_OHCI_HCD=y
 # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
 # CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
 CONFIG_USB_OHCI_LITTLE_ENDIAN=y
-CONFIG_USB_UHCI_HCD=m
+CONFIG_USB_UHCI_HCD=y
 CONFIG_USB_U132_HCD=m
 CONFIG_USB_SL811_HCD=m
 # CONFIG_USB_SL811_CS is not set
@@ -2809,10 +2807,6 @@ CONFIG_USB_R8A66597_HCD=m
 CONFIG_USB_WHCI_HCD=m
 CONFIG_USB_HWA_HCD=m
 
-#
-# Enable Host or Gadget support to see Inventra options
-#
-
 #
 # USB Device Class drivers
 #
@@ -3385,7 +3379,9 @@ CONFIG_JFFS2_CMODE_PRIORITY=y
 # CONFIG_QNX4FS_FS is not set
 # CONFIG_ROMFS_FS is not set
 # CONFIG_SYSV_FS is not set
-# CONFIG_UFS_FS is not set
+CONFIG_UFS_FS=m
+# CONFIG_UFS_FS_WRITE is not set
+# CONFIG_UFS_DEBUG is not set
 # CONFIG_EXOFS_FS is not set
 CONFIG_NETWORK_FILESYSTEMS=y
 CONFIG_NFS_FS=m
@@ -3433,7 +3429,7 @@ CONFIG_PARTITION_ADVANCED=y
 # CONFIG_ATARI_PARTITION is not set
 # CONFIG_MAC_PARTITION is not set
 CONFIG_MSDOS_PARTITION=y
-# CONFIG_BSD_DISKLABEL is not set
+CONFIG_BSD_DISKLABEL=y
 # CONFIG_MINIX_SUBPARTITION is not set
 # CONFIG_SOLARIS_X86_PARTITION is not set
 # CONFIG_UNIXWARE_DISKLABEL is not set
@@ -3563,6 +3559,7 @@ CONFIG_TRACING_SUPPORT=y
 # CONFIG_DMA_API_DEBUG is not set
 # CONFIG_SAMPLES is not set
 CONFIG_HAVE_ARCH_KMEMCHECK=y
+# CONFIG_KMEMCHECK is not set
 # CONFIG_STRICT_DEVMEM is not set
 CONFIG_EARLY_PRINTK=y
 # CONFIG_EARLY_PRINTK_DBGP is not set
diff --git a/config/madwifi/madwifi.conf b/config/madwifi/madwifi.conf
deleted file mode 100644 (file)
index a4a234f..0000000
+++ /dev/null
@@ -1,295 +0,0 @@
-##### hostapd configuration file ##############################################
-# Empty lines and lines starting with # are ignored
-
-# AP netdevice name (without 'ap' prefix, i.e., wlan0 uses wlan0ap for
-# management frames)
-interface=ath0
-
-# Driver interface type (hostap/wired/madwifi/prism54; default: hostap)
-driver=madwifi
-
-# hostapd event logger configuration
-#
-# Two output method: syslog and stdout (only usable if not forking to
-# background).
-#
-# Module bitfield (ORed bitfield of modules that will be logged; -1 = all
-# modules):
-# bit 0 (1) = IEEE 802.11
-# bit 1 (2) = IEEE 802.1X
-# bit 2 (4) = RADIUS
-# bit 3 (8) = WPA
-# bit 4 (16) = driver interface
-# bit 5 (32) = IAPP
-#
-# Levels (minimum value for logged events):
-#  0 = verbose debugging
-#  1 = debugging
-#  2 = informational messages
-#  3 = notification
-#  4 = warning
-#
-logger_syslog=-1
-logger_syslog_level=2
-logger_stdout=-1
-logger_stdout_level=1
-
-# Debugging: 0 = no, 1 = minimal, 2 = verbose, 3 = msg dumps, 4 = excessive
-debug=0
-
-# Dump file for state information (on SIGUSR1)
-dump_file=/tmp/hostapd.dump
-
-# Interface for separate control program. If this is specified, hostapd
-# will create this directory and a UNIX domain socket for listening to requests
-# from external programs (CLI/GUI, etc.) for status information and
-# configuration. The socket file will be named based on the interface name, so
-# multiple hostapd processes/interfaces can be run at the same time if more
-# than one interface is used.
-# /var/run/hostapd is the recommended directory for sockets and by default,
-# hostapd_cli will use it when trying to connect with hostapd.
-ctrl_interface=/var/run/hostapd
-
-# Access control for the control interface can be configured by setting the
-# directory to allow only members of a group to use sockets. This way, it is
-# possible to run hostapd as root (since it needs to change network
-# configuration and open raw sockets) and still allow GUI/CLI components to be
-# run as non-root users. However, since the control interface can be used to
-# change the network configuration, this access needs to be protected in many
-# cases. By default, hostapd is configured to use gid 0 (root). If you
-# want to allow non-root users to use the contron interface, add a new group
-# and change this value to match with that group. Add users that should have
-# control interface access to this group.
-#
-# This variable can be a group name or gid.
-#ctrl_interface_group=wheel
-ctrl_interface_group=0
-
-
-##### IEEE 802.11 related configuration #######################################
-
-# SSID to be used in IEEE 802.11 management frames
-ssid=IPFire
-
-# Station MAC address -based authentication
-# 0 = accept unless in deny list
-# 1 = deny unless in accept list
-# 2 = use external RADIUS server (accept/deny lists are searched first)
-macaddr_acl=0
-
-# Accept/deny lists are read from separate files (containing list of
-# MAC addresses, one per line). Use absolute path name to make sure that the
-
-# files can be read on SIGHUP configuration reloads.
-#accept_mac_file=/etc/hostapd/hostapd.accept
-#deny_mac_file=/etc/hostapd/hostapd.deny
-
-# IEEE 802.11 specifies two authentication algorithms. hostapd can be
-# configured to allow both of these or only one. Open system authentication
-# should be used with IEEE 802.1X.
-# Bit fields of allowed authentication algorithms:
-# bit 0 = Open System Authentication
-# bit 1 = Shared Key Authentication (requires WEP)
-auth_algs=1
-
-# Associate as a station to another AP while still acting as an AP on the same
-# channel.
-#assoc_ap_addr=00:12:34:56:78:9a
-
-
-##### IEEE 802.1X (and IEEE 802.1aa/D4) related configuration #################
-
-# Require IEEE 802.1X authorization
-#ieee8021x=0
-
-# Use integrated EAP authenticator instead of external RADIUS authentication
-# server
-#eap_authenticator=0
-
-# Path for EAP authenticator user database
-#eap_user_file=/etc/hostapd/eap_user
-
-# CA certificate (PEM or DER file) for EAP-TLS/PEAP/TTLS
-#ca_cert=/etc/hostapd/ca.pem
-
-# Server certificate (PEM or DER file) for EAP-TLS/PEAP/TTLS
-#server_cert=/etc/hostapd/server.pem
-
-# Private key matching with the server certificate for EAP-TLS/PEAP/TTLS
-# This may point to the same file as server_cert if both certificate and key
-# are included in a single file. PKCS#12 (PFX) file (.p12/.pfx) can also be
-# used by commenting out server_cert and specifying the PFX file as the
-# private_key.
-#private_key=/etc/hostapd/server.prv
-
-# Passphrase for private key
-#private_key_passwd=secret passphrase
-
-# Configuration data for EAP-SIM database/authentication gateway interface.
-# This is a text string in implementation specific format. The example
-# implementation in eap_sim_db.c uses this as the file name for the GSM
-# authentication triplets.
-#eap_sim_db=/etc/hostapd/sim_db
-
-# Optional displayable message sent with EAP Request-Identity
-#eap_message=hello
-
-# WEP rekeying (disabled if key lengths are not set or are set to 0)
-# Key lengths for default/broadcast and individual/unicast keys:
-# 5 = 40-bit WEP (also known as 64-bit WEP with 40 secret bits)
-# 13 = 104-bit WEP (also known as 128-bit WEP with 104 secret bits)
-#wep_key_len_broadcast=5
-#wep_key_len_unicast=5
-# Rekeying period in seconds. 0 = do not rekey (i.e., set keys only once)
-#wep_rekey_period=300
-
-# EAPOL-Key index workaround (set bit7) for WinXP Supplicant (needed only if
-# only broadcast keys are used)
-#eapol_key_index_workaround=0
-
-# EAP reauthentication period in seconds (default: 3600 seconds; 0 = disable
-# reauthentication).
-#eap_reauth_period=3600
-
-
-##### IEEE 802.11f - Inter-Access Point Protocol (IAPP) #######################
-
-# Interface to be used for IAPP broadcast packets
-#iapp_interface=eth0
-
-
-##### RADIUS configuration ####################################################
-# for IEEE 802.1X with external Authentication Server, IEEE 802.11
-# authentication with external ACL for MAC addresses, and accounting
-
-# The own IP address of the access point (used as NAS-IP-Address)
-#own_ip_addr=127.0.0.1
-
-# Optional NAS-Identifier string for RADIUS messages. When used, this should be
-# a unique to the NAS within the scope of the RADIUS server. For example, a
-# fully qualified domain name can be used here.
-#nas_identifier=ap.example.com
-
-# RADIUS authentication server
-#auth_server_addr=127.0.0.1
-#auth_server_port=1812
-#auth_server_shared_secret=secret
-
-# RADIUS accounting server
-#acct_server_addr=127.0.0.1
-#acct_server_port=1813
-#acct_server_shared_secret=secret
-
-# Secondary RADIUS servers; to be used if primary one does not reply to
-# RADIUS packets. These are optional and there can be more than one secondary
-# server listed.
-#auth_server_addr=127.0.0.2
-#auth_server_port=1812
-#auth_server_shared_secret=secret2
-#
-#acct_server_addr=127.0.0.2
-#acct_server_port=1813
-#acct_server_shared_secret=secret2
-
-# Retry interval for trying to return to the primary RADIUS server (in
-# seconds). RADIUS client code will automatically try to use the next server
-# when the current server is not replying to requests. If this interval is set,
-# primary server will be retried after configured amount of time even if the
-# currently used secondary server is still working.
-#radius_retry_primary_interval=600
-
-# Interim accounting update interval
-# If this is set (larger than 0) and acct_server is configured, hostapd will
-# send interim accounting updates every N seconds. Note: if set, this overrides
-# possible Acct-Interim-Interval attribute in Access-Accept message. Thus, this
-# value should not be configured in hostapd.conf, if RADIUS server is used to
-# control the interim interval.
-# This value should not be less 600 (10 minutes) and must not be less than
-# 60 (1 minute).
-#radius_acct_interim_interval=600
-
-# hostapd can be used as a RADIUS authentication server for other hosts. This
-# requires that the integrated EAP authenticator is also enabled and both
-# authentication services are sharing the same configuration.
-
-# File name of the RADIUS clients configuration for the RADIUS server. If this
-# commented out, RADIUS server is disabled.
-#radius_server_clients=/etc/hostapd/radius_clients
-
-# The UDP port number for the RADIUS authentication server
-#radius_server_auth_port=1812
-
-
-##### WPA/IEEE 802.11i configuration ##########################################
-
-# Enable WPA. Setting this variable configures the AP to require WPA (either
-# WPA-PSK or WPA-RADIUS/EAP based on other configuration). For WPA-PSK, either
-# wpa_psk or wpa_passphrase must be set and wpa_key_mgmt must include WPA-PSK.
-# For WPA-RADIUS/EAP, ieee8021x must be set (but without dynamic WEP keys),
-# RADIUS authentication server must be configured, and WPA-EAP must be included
-# in wpa_key_mgmt.
-# This field is a bit field that can be used to enable WPA (IEEE 802.11i/D3.0)
-# and/or WPA2 (full IEEE 802.11i/RSN):
-# bit0 = WPA
-# bit1 = IEEE 802.11i/RSN (WPA2) (dot11RSNAEnabled)
-wpa=1
-
-# WPA pre-shared keys for WPA-PSK. This can be either entered as a 256-bit
-# secret in hex format (64 hex digits), wpa_psk, or as an ASCII passphrase
-# (8..63 characters) that will be converted to PSK. This conversion uses SSID
-# so the PSK changes when ASCII passphrase is used and the SSID is changed.
-# wpa_psk (dot11RSNAConfigPSKValue)
-# wpa_passphrase (dot11RSNAConfigPSKPassPhrase)
-#wpa_psk=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef
-wpa_passphrase=yoursecretpassphrase
-
-# Optionally, WPA PSKs can be read from a separate text file (containing list
-# of (PSK,MAC address) pairs. This allows more than one PSK to be configured.
-# Use absolute path name to make sure that the files can be read on SIGHUP
-# configuration reloads.
-#wpa_psk_file=/etc/hostapd/wpa_psk
-
-# Set of accepted key management algorithms (WPA-PSK, WPA-EAP, or both). The
-# entries are separated with a space.
-# (dot11RSNAConfigAuthenticationSuitesTable)
-#wpa_key_mgmt=WPA-PSK WPA-EAP
-wpa_key_mgmt=WPA-PSK
-
-# Set of accepted cipher suites (encryption algorithms) for pairwise keys
-# (unicast packets). This is a space separated list of algorithms:
-
-# CCMP = AES in Counter mode with CBC-MAC [RFC 3610, IEEE 802.11i/D7.0]
-# TKIP = Temporal Key Integrity Protocol [IEEE 802.11i/D7.0]
-# Group cipher suite (encryption algorithm for broadcast and multicast frames)
-# is automatically selected based on this configuration. If only CCMP is
-# allowed as the pairwise cipher, group cipher will also be CCMP. Otherwise,
-# TKIP will be used as the group cipher.
-# (dot11RSNAConfigPairwiseCiphersTable)
-wpa_pairwise=TKIP CCMP
-
-# Time interval for rekeying GTK (broadcast/multicast encryption keys) in
-# seconds. (dot11RSNAConfigGroupRekeyTime)
-#wpa_group_rekey=600
-
-# Rekey GTK when any STA that possesses the current GTK is leaving the BSS.
-# (dot11RSNAConfigGroupRekeyStrict)
-#wpa_strict_rekey=1
-
-# Time interval for rekeying GMK (master key used internally to generate GTKs
-# (in seconds).
-#wpa_gmk_rekey=86400
-
-# Enable IEEE 802.11i/RSN/WPA2 pre-authentication. This is used to speed up
-# roaming be pre-authenticating IEEE 802.1X/EAP part of the full RSN
-# authentication and key handshake before actually associating with a new AP.
-# (dot11RSNAPreauthenticationEnabled)
-#rsn_preauth=1
-#
-# Space separated list of interfaces from which pre-authentication frames are
-# accepted (e.g., 'eth0' or 'eth0 wlan0wds0'. This list should include all
-# interface that are used for connections to other APs. This could include
-# wired interfaces and WDS links. The normal wireless data interface towards
-# associated stations (e.g., wlan0) should not be added, since
-# pre-authentication is only used with APs other than the currently associated
-# one.
-#rsn_preauth_interfaces=eth0
diff --git a/config/profile.d/colorls.sh b/config/profile.d/colorls.sh
new file mode 100644 (file)
index 0000000..dc5c223
--- /dev/null
@@ -0,0 +1,40 @@
+# color-ls initialization
+
+#when USER_LS_COLORS defined do not override user LS_COLORS, but use them.
+if [ -z "$USER_LS_COLORS" ]; then
+
+  alias ll='ls -l' 2>/dev/null
+  alias l.='ls -d .*' 2>/dev/null
+
+
+  # Skip the rest for noninteractive shells.
+  [ -z "$PS1" ] && return
+
+  COLORS=
+
+  for colors in "$HOME/.dir_colors.$TERM" "$HOME/.dircolors.$TERM" \
+      "$HOME/.dir_colors" "$HOME/.dircolors"; do
+    [ -e "$colors" ] && COLORS="$colors" && break
+  done
+
+  [ -z "$COLORS" ] && [ -e "/etc/DIR_COLORS.256color" ] && \
+      [ "x`tty -s && tput colors 2>/dev/null`" = "x256" ] && \
+      COLORS="/etc/DIR_COLORS.256color"
+
+  if [ -z "$COLORS" ]; then
+    for colors in "/etc/DIR_COLORS.$TERM" "/etc/DIR_COLORS" ; do
+      [ -e "$colors" ] && COLORS="$colors" && break
+    done
+  fi
+
+  # Existence of $COLORS already checked above.
+  [ -n "$COLORS" ] || return
+
+  eval "`dircolors --sh "$COLORS" 2>/dev/null`"
+  [ -z "$LS_COLORS" ] && return
+  grep -qi "^COLOR.*none" $COLORS >/dev/null 2>/dev/null && return
+fi
+
+alias ll='ls -l --color=auto' 2>/dev/null
+alias l.='ls -d .* --color=auto' 2>/dev/null
+alias ls='ls --color=auto' 2>/dev/null
diff --git a/config/profile.d/dircolors.sh b/config/profile.d/dircolors.sh
deleted file mode 100644 (file)
index 873d91b..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-# Setup for /bin/ls to support color, the alias is in /etc/bashrc.
-if [ -f "/etc/dircolors" ] ; then
-        eval $(dircolors -b /etc/dircolors)
-
-        if [ -f "$HOME/.dircolors" ] ; then
-                eval $(dircolors -b $HOME/.dircolors)
-        fi
-fi
-alias ls='ls --color=auto'
index bb8f7209358f05776aa16056e71e38f357f098d1..d712736bd3f7ed5cb9f67e3414505cef9d9d99d0 100644 (file)
@@ -1,15 +1,11 @@
-if [ -d /usr/local/bin ]; then
-        pathprepend /usr/local/bin
-fi
-if [ -d /usr/local/sbin -a $EUID -eq 0 ]; then
-        pathprepend /usr/local/sbin
-fi
-for directory in $(find /opt/*/bin -type d 2>/dev/null); do
-        pathappend $directory
+# Make sure the basic paths are always available.
+
+pathmunge /bin
+pathmunge /usr/bin
+pathmunge /usr/local/bin
+
+for directory in $(find /opt/*/bin -maxdepth 1 -type d 2>/dev/null); do
+        pathmunge ${directory} after
 done
-if [ -d ~/bin ]; then
-        pathprepend ~/bin
-fi
-#if [ $EUID -gt 99 ]; then
-#        pathappend .
-#fi
+
+unset directory
diff --git a/config/profile.d/glib2-locale.sh b/config/profile.d/glib2-locale.sh
new file mode 100644 (file)
index 0000000..8dd50d5
--- /dev/null
@@ -0,0 +1,3 @@
+# Use the current locale charset for filenames
+# in applications using GLib
+export G_FILENAME_ENCODING=@locale
index ac68d67820231e17ec94006fcb773a3375f237da..2f66e89c3b673a5fb7c1095caf4a7407e77ce9ca 100644 (file)
@@ -1,2 +1,10 @@
 # Set up i18n variables
-export LANG=en_US.utf8
+
+if [ -f "/etc/sysconfig/console" ]; then
+       . /etc/sysconfig/console
+else
+       LANG=en_US.UTF-8
+fi
+
+unset KEYMAP FONT UNICODE KEYMAP_CORRECTIONS LEGACY_CHARSET
+export LANG
diff --git a/config/profile.d/lang.sh b/config/profile.d/lang.sh
new file mode 100644 (file)
index 0000000..5be62ad
--- /dev/null
@@ -0,0 +1,90 @@
+# /etc/profile.d/lang.sh - set i18n stuff
+
+sourced=0
+
+if [ -n "$LANG" ]; then
+    saved_lang="$LANG"
+    [ -f "$HOME/.i18n" ] && . "$HOME/.i18n" && sourced=1
+    LANG="$saved_lang"
+    unset saved_lang
+else
+    for langfile in /etc/sysconfig/i18n "$HOME/.i18n" ; do
+        [ -f $langfile ] && . $langfile && sourced=1
+    done
+fi
+
+if [ "$sourced" = 1 ]; then
+    [ -n "$LANG" ] && export LANG || unset LANG
+    [ -n "$LC_ADDRESS" ] && export LC_ADDRESS || unset LC_ADDRESS
+    [ -n "$LC_CTYPE" ] && export LC_CTYPE || unset LC_CTYPE
+    [ -n "$LC_COLLATE" ] && export LC_COLLATE || unset LC_COLLATE
+    [ -n "$LC_IDENTIFICATION" ] && export LC_IDENTIFICATION || unset LC_IDENTIFICATION
+    [ -n "$LC_MEASUREMENT" ] && export LC_MEASUREMENT || unset LC_MEASUREMENT
+    [ -n "$LC_MESSAGES" ] && export LC_MESSAGES || unset LC_MESSAGES
+    [ -n "$LC_MONETARY" ] && export LC_MONETARY || unset LC_MONETARY
+    [ -n "$LC_NAME" ] && export LC_NAME || unset LC_NAME
+    [ -n "$LC_NUMERIC" ] && export LC_NUMERIC || unset LC_NUMERIC
+    [ -n "$LC_PAPER" ] && export LC_PAPER || unset LC_PAPER
+    [ -n "$LC_TELEPHONE" ] && export LC_TELEPHONE || unset LC_TELEPHONE
+    [ -n "$LC_TIME" ] && export LC_TIME || unset LC_TIME
+    if [ -n "$LC_ALL" ]; then
+       if [ "$LC_ALL" != "$LANG" ]; then
+         export LC_ALL
+       else
+         unset LC_ALL
+       fi
+    else
+       unset LC_ALL
+    fi
+    [ -n "$LANGUAGE" ] && export LANGUAGE || unset LANGUAGE
+    [ -n "$LINGUAS" ] && export LINGUAS || unset LINGUAS
+    [ -n "$_XKB_CHARSET" ] && export _XKB_CHARSET || unset _XKB_CHARSET
+    
+    consoletype=$CONSOLETYPE
+    if [ -z "$consoletype" ]; then
+      consoletype=$(/sbin/consoletype stdout)
+    fi
+
+    if [ -n "$LANG" ]; then
+      case $LANG in
+       *.utf8*|*.UTF-8*)
+       if [ "$TERM" = "linux" ]; then
+           if [ "$consoletype" = "vt" ]; then
+               case $LANG in 
+                       ja*) LANG=en_US.UTF-8 ;;
+                       ko*) LANG=en_US.UTF-8 ;;
+                       si*) LANG=en_US.UTF-8 ;;
+                       zh*) LANG=en_US.UTF-8 ;;
+                       ar*) LANG=en_US.UTF-8 ;;
+                       fa*) LANG=en_US.UTF-8 ;;
+                       he*) LANG=en_US.UTF-8 ;;
+                       en_IN*) ;;
+                       *_IN*) LANG=en_US.UTF-8 ;;
+               esac
+            fi
+        fi
+       ;;
+       *)
+       if [ "$TERM" = "linux" ]; then
+           if [ "$consoletype" = "vt" ]; then
+               case $LANG in 
+                       ja*) LANG=en_US ;;
+                       ko*) LANG=en_US ;;
+                       si*) LANG=en_US ;;
+                       zh*) LANG=en_US ;;
+                       ar*) LANG=en_US ;;
+                       fa*) LANG=en_US ;;
+                       he*) LANG=en_US ;;
+                       en_IN*) ;;
+                       *_IN*) LANG=en_US ;;
+               esac
+           fi
+       fi
+       ;;
+      esac
+    fi
+
+    unset SYSFONTACM SYSFONT consoletype
+fi
+unset sourced
+unset langfile
diff --git a/config/profile.d/term256.sh b/config/profile.d/term256.sh
new file mode 100644 (file)
index 0000000..546f67b
--- /dev/null
@@ -0,0 +1,26 @@
+# Enable 256 color capabilities for appropriate terminals
+
+# Set this variable in your local shell config (such as ~/.bashrc)
+# if you want remote xterms connecting to this system, to be sent 256 colors.
+# This must be set before reading global initialization such as /etc/bashrc.
+#   SEND_256_COLORS_TO_REMOTE=1
+
+# Terminals with any of the following set, support 256 colors (and are local)
+local256="$COLORTERM$XTERM_VERSION$ROXTERM_ID$KONSOLE_DBUS_SESSION"
+
+if [ -n "$local256" ] || [ -n "$SEND_256_COLORS_TO_REMOTE" ]; then
+
+  case "$TERM" in
+    'xterm') TERM=xterm-256color;;
+    'screen') TERM=screen-256color;;
+    'Eterm') TERM=Eterm-256color;;
+  esac
+  export TERM
+
+  if [ -n "$TERMCAP" ] && [ "$TERM" = "screen-256color" ]; then
+    TERMCAP=$(echo "$TERMCAP" | sed -e 's/Co#8/Co#256/g')
+    export TERMCAP
+  fi
+fi
+
+unset local256
index 0b97b85a6c18db626f76997d89ca5ebab6be593e..122e6b97e031e800769fb7ba163eafbe0c65fd09 100644 (file)
@@ -76,6 +76,7 @@ $qossettings{'IMQ_DEV'} = 'imq0';
 $qossettings{'TOS'} = '';
 $qossettings{'VALID'} = 'yes';
 $qossettings{'IMQ_MODE'} = 'PREROUTING';
+$qossettings{'QLENGTH'} = '1000';
 
 &General::readhash("${General::swroot}/qos/settings", \%qossettings);
 
@@ -480,7 +481,7 @@ foreach $classentry (sort @classes)
        if ($qossettings{'IMQ_DEV'} eq $classline[0]) {
                $qossettings{'DEVICE'} = $classline[0];
                $qossettings{'CLASS'} = $classline[1];
-               print "\ttc qdisc add dev $qossettings{'DEVICE'} parent 2:$qossettings{'CLASS'} handle $qossettings{'CLASS'}: sfq perturb $qossettings{'SFQ_PERTUB'}\n";
+               print "\ttc qdisc add dev $qossettings{'DEVICE'} parent 2:$qossettings{'CLASS'} handle $qossettings{'CLASS'}: fq_codel\n";
        }
 }
 foreach $subclassentry (sort @subclasses) {
@@ -488,7 +489,7 @@ foreach $subclassentry (sort @subclasses) {
        if ($qossettings{'IMQ_DEV'} eq $subclassline[0]) {
                $qossettings{'DEVICE'} = $subclassline[0];
                $qossettings{'SCLASS'} = $subclassline[2];
-               print "\ttc qdisc add dev $qossettings{'DEVICE'} parent 2:$qossettings{'SCLASS'} handle $qossettings{'SCLASS'}: sfq perturb $qossettings{'SFQ_PERTUB'}\n";
+               print "\ttc qdisc add dev $qossettings{'DEVICE'} parent 2:$qossettings{'SCLASS'} handle $qossettings{'SCLASS'}: fq_codel\n";
        }
 }
 print "\n\t### FILTER TRAFFIC INTO CLASSES\n";
index 93df4cbed5f043a65d03eb8f8f88ee610604da8b..82c392df2c0e6e9b7d1d67ecc287f068cec0b838 100644 (file)
@@ -1,6 +1,6 @@
 #usr/lib/perl5/site_perl/5.12.3/Crypt
 usr/lib/perl5/site_perl/5.12.3/Crypt/PasswdMD5.pm
-#usr/lib/perl5/site_perl/5.12.3/i586-linux-thread-multi/auto/Crypt
-#usr/lib/perl5/site_perl/5.12.3/i586-linux-thread-multi/auto/Crypt/PasswdMD5
-#usr/lib/perl5/site_perl/5.12.3/i586-linux-thread-multi/auto/Crypt/PasswdMD5/.packlist
+#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Crypt
+#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Crypt/PasswdMD5
+#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Crypt/PasswdMD5/.packlist
 #usr/share/man/man3/Crypt::PasswdMD5.3
index 7ccfa4fa4f4c257b8af119289ebc3b453848ffb9..b3d281d85d88a428d3abffae35e8d76c7638a61d 100644 (file)
@@ -2,8 +2,10 @@
 #usr/bin/ar
 #usr/bin/as
 #usr/bin/c++filt
+#usr/bin/elfedit
 #usr/bin/gprof
 #usr/bin/ld
+#usr/bin/ld.bfd
 #usr/bin/nm
 #usr/bin/objcopy
 #usr/bin/objdump
 #usr/include/dis-asm.h
 #usr/include/libiberty.h
 #usr/include/symcat.h
-#usr/info/as.info
-#usr/info/bfd.info
-#usr/info/binutils.info
-#usr/info/configure.info
-#usr/info/gprof.info
-#usr/info/ld.info
-#usr/info/standards.info
 #usr/lib/ldscripts
 #usr/lib/ldscripts/armelf_linux_eabi.x
 #usr/lib/ldscripts/armelf_linux_eabi.xbn
 #usr/lib/ldscripts/armelfb_linux_eabi.xsw
 #usr/lib/ldscripts/armelfb_linux_eabi.xu
 #usr/lib/ldscripts/armelfb_linux_eabi.xw
-#usr/lib/libbfd-2.18.so
+usr/lib/libbfd-2.22.so
 #usr/lib/libbfd.a
 #usr/lib/libbfd.la
 #usr/lib/libbfd.so
 #usr/lib/libiberty.a
-#usr/lib/libopcodes-2.18.so
+usr/lib/libopcodes-2.22.so
 #usr/lib/libopcodes.a
 #usr/lib/libopcodes.la
 #usr/lib/libopcodes.so
-#usr/man
-#usr/man/man1
-#usr/man/man1/addr2line.1
-#usr/man/man1/ar.1
-#usr/man/man1/as.1
-#usr/man/man1/c++filt.1
-#usr/man/man1/dlltool.1
-#usr/man/man1/gprof.1
-#usr/man/man1/ld.1
-#usr/man/man1/nlmconv.1
-#usr/man/man1/nm.1
-#usr/man/man1/objcopy.1
-#usr/man/man1/objdump.1
-#usr/man/man1/ranlib.1
-#usr/man/man1/readelf.1
-#usr/man/man1/size.1
-#usr/man/man1/strings.1
-#usr/man/man1/strip.1
-#usr/man/man1/windmc.1
-#usr/man/man1/windres.1
+#usr/share/info/as.info
+#usr/share/info/bfd.info
+#usr/share/info/binutils.info
+#usr/share/info/configure.info
+#usr/share/info/gprof.info
+#usr/share/info/ld.info
+#usr/share/info/standards.info
+#usr/share/man/man1/addr2line.1
+#usr/share/man/man1/ar.1
+#usr/share/man/man1/as.1
+#usr/share/man/man1/c++filt.1
+#usr/share/man/man1/dlltool.1
+#usr/share/man/man1/elfedit.1
+#usr/share/man/man1/gprof.1
+#usr/share/man/man1/ld.1
+#usr/share/man/man1/nlmconv.1
+#usr/share/man/man1/nm.1
+#usr/share/man/man1/objcopy.1
+#usr/share/man/man1/objdump.1
+#usr/share/man/man1/ranlib.1
+#usr/share/man/man1/readelf.1
+#usr/share/man/man1/size.1
+#usr/share/man/man1/strings.1
+#usr/share/man/man1/strip.1
+#usr/share/man/man1/windmc.1
+#usr/share/man/man1/windres.1
diff --git a/config/rootfiles/common/armv5tel/dracut b/config/rootfiles/common/armv5tel/dracut
new file mode 100644 (file)
index 0000000..4d4ed18
--- /dev/null
@@ -0,0 +1,65 @@
+#boot/ipfirerd-KVER-kirkwood.img
+#boot/ipfirerd-KVER-omap.img
+#boot/uInit-ipfire-kirkwood
+#boot/uInit-ipfire-omap
+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
+sbin/switch_root
+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/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
index 2295ae92f45af11504cc7ae8b30e12b5c5794030..ee9d800353e32efe1f72ba660c5760312dbb632d 100644 (file)
@@ -2,7 +2,7 @@
 #usr/bin/armv5tel-unknown-linux-gnueabi-c++
 #usr/bin/armv5tel-unknown-linux-gnueabi-g++
 #usr/bin/armv5tel-unknown-linux-gnueabi-gcc
-#usr/bin/armv5tel-unknown-linux-gnueabi-gcc-4.1.2
+#usr/bin/armv5tel-unknown-linux-gnueabi-gcc-4.4.7
 #usr/bin/c++
 #usr/bin/cc
 #usr/bin/cpp
 #usr/bin/gccbug
 #usr/bin/gcov
 #usr/include/c++
-#usr/include/c++/4.1.2
-#usr/include/c++/4.1.2/algorithm
-#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi
-#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits
-#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/atomic_word.h
-#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/basic_file.h
-#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/c++allocator.h
-#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/c++config.h
-#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/c++io.h
-#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/c++locale.h
-#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/cpu_defines.h
-#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/ctype_base.h
-#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/ctype_inline.h
-#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/ctype_noninline.h
-#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/cxxabi_tweaks.h
-#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/gthr-default.h
-#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/gthr-posix.h
-#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/gthr-single.h
-#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/gthr-tpf.h
-#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/gthr.h
-#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/messages_members.h
-#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/os_defines.h
-#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/stdc++.h.gch
-#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/stdc++.h.gch/O0g.gch
-#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/stdc++.h.gch/O2g.gch
-#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/time_members.h
-#usr/include/c++/4.1.2/backward
-#usr/include/c++/4.1.2/backward/algo.h
-#usr/include/c++/4.1.2/backward/algobase.h
-#usr/include/c++/4.1.2/backward/alloc.h
-#usr/include/c++/4.1.2/backward/backward_warning.h
-#usr/include/c++/4.1.2/backward/bvector.h
-#usr/include/c++/4.1.2/backward/complex.h
-#usr/include/c++/4.1.2/backward/defalloc.h
-#usr/include/c++/4.1.2/backward/deque.h
-#usr/include/c++/4.1.2/backward/fstream.h
-#usr/include/c++/4.1.2/backward/function.h
-#usr/include/c++/4.1.2/backward/hash_map.h
-#usr/include/c++/4.1.2/backward/hash_set.h
-#usr/include/c++/4.1.2/backward/hashtable.h
-#usr/include/c++/4.1.2/backward/heap.h
-#usr/include/c++/4.1.2/backward/iomanip.h
-#usr/include/c++/4.1.2/backward/iostream.h
-#usr/include/c++/4.1.2/backward/istream.h
-#usr/include/c++/4.1.2/backward/iterator.h
-#usr/include/c++/4.1.2/backward/list.h
-#usr/include/c++/4.1.2/backward/map.h
-#usr/include/c++/4.1.2/backward/multimap.h
-#usr/include/c++/4.1.2/backward/multiset.h
-#usr/include/c++/4.1.2/backward/new.h
-#usr/include/c++/4.1.2/backward/ostream.h
-#usr/include/c++/4.1.2/backward/pair.h
-#usr/include/c++/4.1.2/backward/queue.h
-#usr/include/c++/4.1.2/backward/rope.h
-#usr/include/c++/4.1.2/backward/set.h
-#usr/include/c++/4.1.2/backward/slist.h
-#usr/include/c++/4.1.2/backward/stack.h
-#usr/include/c++/4.1.2/backward/stream.h
-#usr/include/c++/4.1.2/backward/streambuf.h
-#usr/include/c++/4.1.2/backward/strstream
-#usr/include/c++/4.1.2/backward/tempbuf.h
-#usr/include/c++/4.1.2/backward/tree.h
-#usr/include/c++/4.1.2/backward/vector.h
-#usr/include/c++/4.1.2/bits
-#usr/include/c++/4.1.2/bits/allocator.h
-#usr/include/c++/4.1.2/bits/atomicity.h
-#usr/include/c++/4.1.2/bits/basic_ios.h
-#usr/include/c++/4.1.2/bits/basic_ios.tcc
-#usr/include/c++/4.1.2/bits/basic_string.h
-#usr/include/c++/4.1.2/bits/basic_string.tcc
-#usr/include/c++/4.1.2/bits/boost_concept_check.h
-#usr/include/c++/4.1.2/bits/char_traits.h
-#usr/include/c++/4.1.2/bits/cmath.tcc
-#usr/include/c++/4.1.2/bits/codecvt.h
-#usr/include/c++/4.1.2/bits/concept_check.h
-#usr/include/c++/4.1.2/bits/concurrence.h
-#usr/include/c++/4.1.2/bits/cpp_type_traits.h
-#usr/include/c++/4.1.2/bits/deque.tcc
-#usr/include/c++/4.1.2/bits/fstream.tcc
-#usr/include/c++/4.1.2/bits/functexcept.h
-#usr/include/c++/4.1.2/bits/gslice.h
-#usr/include/c++/4.1.2/bits/gslice_array.h
-#usr/include/c++/4.1.2/bits/indirect_array.h
-#usr/include/c++/4.1.2/bits/ios_base.h
-#usr/include/c++/4.1.2/bits/istream.tcc
-#usr/include/c++/4.1.2/bits/list.tcc
-#usr/include/c++/4.1.2/bits/locale_classes.h
-#usr/include/c++/4.1.2/bits/locale_facets.h
-#usr/include/c++/4.1.2/bits/locale_facets.tcc
-#usr/include/c++/4.1.2/bits/localefwd.h
-#usr/include/c++/4.1.2/bits/mask_array.h
-#usr/include/c++/4.1.2/bits/ostream.tcc
-#usr/include/c++/4.1.2/bits/postypes.h
-#usr/include/c++/4.1.2/bits/slice_array.h
-#usr/include/c++/4.1.2/bits/sstream.tcc
-#usr/include/c++/4.1.2/bits/stl_algo.h
-#usr/include/c++/4.1.2/bits/stl_algobase.h
-#usr/include/c++/4.1.2/bits/stl_bvector.h
-#usr/include/c++/4.1.2/bits/stl_construct.h
-#usr/include/c++/4.1.2/bits/stl_deque.h
-#usr/include/c++/4.1.2/bits/stl_function.h
-#usr/include/c++/4.1.2/bits/stl_heap.h
-#usr/include/c++/4.1.2/bits/stl_iterator.h
-#usr/include/c++/4.1.2/bits/stl_iterator_base_funcs.h
-#usr/include/c++/4.1.2/bits/stl_iterator_base_types.h
-#usr/include/c++/4.1.2/bits/stl_list.h
-#usr/include/c++/4.1.2/bits/stl_map.h
-#usr/include/c++/4.1.2/bits/stl_multimap.h
-#usr/include/c++/4.1.2/bits/stl_multiset.h
-#usr/include/c++/4.1.2/bits/stl_numeric.h
-#usr/include/c++/4.1.2/bits/stl_pair.h
-#usr/include/c++/4.1.2/bits/stl_queue.h
-#usr/include/c++/4.1.2/bits/stl_raw_storage_iter.h
-#usr/include/c++/4.1.2/bits/stl_relops.h
-#usr/include/c++/4.1.2/bits/stl_set.h
-#usr/include/c++/4.1.2/bits/stl_stack.h
-#usr/include/c++/4.1.2/bits/stl_tempbuf.h
-#usr/include/c++/4.1.2/bits/stl_tree.h
-#usr/include/c++/4.1.2/bits/stl_uninitialized.h
-#usr/include/c++/4.1.2/bits/stl_vector.h
-#usr/include/c++/4.1.2/bits/stream_iterator.h
-#usr/include/c++/4.1.2/bits/streambuf.tcc
-#usr/include/c++/4.1.2/bits/streambuf_iterator.h
-#usr/include/c++/4.1.2/bits/stringfwd.h
-#usr/include/c++/4.1.2/bits/valarray_after.h
-#usr/include/c++/4.1.2/bits/valarray_array.h
-#usr/include/c++/4.1.2/bits/valarray_array.tcc
-#usr/include/c++/4.1.2/bits/valarray_before.h
-#usr/include/c++/4.1.2/bits/vector.tcc
-#usr/include/c++/4.1.2/bitset
-#usr/include/c++/4.1.2/cassert
-#usr/include/c++/4.1.2/cctype
-#usr/include/c++/4.1.2/cerrno
-#usr/include/c++/4.1.2/cfloat
-#usr/include/c++/4.1.2/ciso646
-#usr/include/c++/4.1.2/climits
-#usr/include/c++/4.1.2/clocale
-#usr/include/c++/4.1.2/cmath
-#usr/include/c++/4.1.2/complex
-#usr/include/c++/4.1.2/csetjmp
-#usr/include/c++/4.1.2/csignal
-#usr/include/c++/4.1.2/cstdarg
-#usr/include/c++/4.1.2/cstddef
-#usr/include/c++/4.1.2/cstdio
-#usr/include/c++/4.1.2/cstdlib
-#usr/include/c++/4.1.2/cstring
-#usr/include/c++/4.1.2/ctime
-#usr/include/c++/4.1.2/cwchar
-#usr/include/c++/4.1.2/cwctype
-#usr/include/c++/4.1.2/cxxabi.h
-#usr/include/c++/4.1.2/debug
-#usr/include/c++/4.1.2/debug/bitset
-#usr/include/c++/4.1.2/debug/debug.h
-#usr/include/c++/4.1.2/debug/deque
-#usr/include/c++/4.1.2/debug/formatter.h
-#usr/include/c++/4.1.2/debug/functions.h
-#usr/include/c++/4.1.2/debug/hash_map
-#usr/include/c++/4.1.2/debug/hash_map.h
-#usr/include/c++/4.1.2/debug/hash_multimap.h
-#usr/include/c++/4.1.2/debug/hash_multiset.h
-#usr/include/c++/4.1.2/debug/hash_set
-#usr/include/c++/4.1.2/debug/hash_set.h
-#usr/include/c++/4.1.2/debug/list
-#usr/include/c++/4.1.2/debug/macros.h
-#usr/include/c++/4.1.2/debug/map
-#usr/include/c++/4.1.2/debug/map.h
-#usr/include/c++/4.1.2/debug/multimap.h
-#usr/include/c++/4.1.2/debug/multiset.h
-#usr/include/c++/4.1.2/debug/safe_base.h
-#usr/include/c++/4.1.2/debug/safe_iterator.h
-#usr/include/c++/4.1.2/debug/safe_iterator.tcc
-#usr/include/c++/4.1.2/debug/safe_sequence.h
-#usr/include/c++/4.1.2/debug/set
-#usr/include/c++/4.1.2/debug/set.h
-#usr/include/c++/4.1.2/debug/string
-#usr/include/c++/4.1.2/debug/vector
-#usr/include/c++/4.1.2/deque
-#usr/include/c++/4.1.2/exception
-#usr/include/c++/4.1.2/exception_defines.h
-#usr/include/c++/4.1.2/ext
-#usr/include/c++/4.1.2/ext/algorithm
-#usr/include/c++/4.1.2/ext/array_allocator.h
-#usr/include/c++/4.1.2/ext/bitmap_allocator.h
-#usr/include/c++/4.1.2/ext/codecvt_specializations.h
-#usr/include/c++/4.1.2/ext/debug_allocator.h
-#usr/include/c++/4.1.2/ext/functional
-#usr/include/c++/4.1.2/ext/hash_fun.h
-#usr/include/c++/4.1.2/ext/hash_map
-#usr/include/c++/4.1.2/ext/hash_set
-#usr/include/c++/4.1.2/ext/hashtable.h
-#usr/include/c++/4.1.2/ext/iterator
-#usr/include/c++/4.1.2/ext/malloc_allocator.h
-#usr/include/c++/4.1.2/ext/memory
-#usr/include/c++/4.1.2/ext/mt_allocator.h
-#usr/include/c++/4.1.2/ext/new_allocator.h
-#usr/include/c++/4.1.2/ext/numeric
-#usr/include/c++/4.1.2/ext/pb_assoc
-#usr/include/c++/4.1.2/ext/pb_assoc/assoc_cntnr.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/data_type.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/assoc_cntnr_base.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/constructor_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/d_extract_key.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/d_find_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/d_insert_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/erase_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/extract_key.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/info_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/insert_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/iterators_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_hash_assoc_cntnr
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_hash_assoc_cntnr/constructor_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_hash_assoc_cntnr/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_hash_assoc_cntnr/resize_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/constructor_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/erase_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/node_iteration_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/policy_access_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/r_erase_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/r_range_iteration_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/range_iteration_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/split_join_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/bin_search_tree_.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/cond_dtor_entry_dealtor.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/cond_key_dtor_entry_dealtor.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/debug_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/erase_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/find_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/find_iterators.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/info_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/insert_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/iterators_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/node_iterators.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/r_erase_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/rotate_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/split_join_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_hash_assoc_cntnr
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_hash_assoc_cntnr/constructor_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/cc_ht_map_.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/cmp_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/cond_key_dtor_entry_dealtor.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/constructor_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/constructor_destructor_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/constructor_destructor_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/debug_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/debug_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/debug_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/entry_list_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/erase_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/erase_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/erase_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/find_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/find_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/find_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/info_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/insert_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/insert_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/insert_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/iterators_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/policy_access_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/resize_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/resize_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/resize_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/size_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/standard_policies.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cond_dealtor.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/ds_trait_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/eq_fn
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/eq_fn/eq_by_less.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/eq_fn/hash_eq_fn.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_hash_assoc_cntnr
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_hash_assoc_cntnr/constructor_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/constructor_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/constructor_destructor_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/constructor_destructor_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/debug_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/debug_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/debug_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/erase_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/erase_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/erase_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/find_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/find_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/find_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/gp_ht_map_.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/info_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/insert_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/insert_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/insert_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/iterator_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/policy_access_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/resize_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/resize_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/resize_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/direct_mask_range_hashing_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/direct_mod_range_hashing_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/linear_probe_fn_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/mask_based_range_hashing.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/mod_based_range_hashing.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/probe_fn_base.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/quadratic_probe_fn_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/ranged_hash_fn.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/ranged_probe_fn.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_types_traits.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_assoc_cntnr
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_assoc_cntnr/constructor_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_assoc_cntnr/policy_access_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/constructor_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/debug_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/erase_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/find_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/info_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/insert_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/iterators_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/lu_map_.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/policy_access_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_policy
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_policy/counter_lu_metadata_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_policy/counter_lu_policy_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_policy/mtf_lu_policy_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/map_debug_base.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/mapping_level_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/ms_category_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/ms_trait_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/order_statistics_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/cond_dtor.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/debug_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/erase_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/find_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/info_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/insert_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/iterators_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/node_iterators.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/ov_tree_map_.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/split_join_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/debug_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/erase_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/find_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/info_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/insert_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/node.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/rb_tree_.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/split_join_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy/cc_hash_max_collision_resize_trigger_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy/hash_exponential_size_policy_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy/hash_load_check_resize_trigger_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy/hash_prime_size_policy_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy/hash_standard_resize_policy_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy/ht_prime_size_policy_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy/size_base.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/debug_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/erase_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/find_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/info_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/insert_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/node.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/splay_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/splay_tree_.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/split_join_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/standard_policies.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/standard_sizes.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/tree_assoc_cntnr
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/tree_assoc_cntnr/constructor_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/tree_policy
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/tree_policy/null_node_updator_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/tree_policy/order_statistics_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/type_utils.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist/typelist_append.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist/typelist_apply.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist/typelist_at_index.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist/typelist_contains.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist/typelist_filter.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist/typelist_transform.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist/typelist_typelist_append.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/types_traits.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/unordered_iterator
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/unordered_iterator/const_find_iterator.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/unordered_iterator/const_iterator.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/unordered_iterator/find_iterator.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/unordered_iterator/iterator.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/constructor_destructor_and_related.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/erase_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/erase_if_pred.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/find_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/info_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/insert_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/invalidation_guarantee_selector.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/it_value_type_traits.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/iterator.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/iterator_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/ref_pair.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/value_type_adapter.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/value_type_traits.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/ds_trait.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/exception.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/hash_policy.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/lu_policy.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/ms_trait.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/tree_policy.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/trivial_iterator_def.hpp
-#usr/include/c++/4.1.2/ext/pod_char_traits.h
-#usr/include/c++/4.1.2/ext/pool_allocator.h
-#usr/include/c++/4.1.2/ext/rb_tree
-#usr/include/c++/4.1.2/ext/rc_string_base.h
-#usr/include/c++/4.1.2/ext/rope
-#usr/include/c++/4.1.2/ext/ropeimpl.h
-#usr/include/c++/4.1.2/ext/slist
-#usr/include/c++/4.1.2/ext/sso_string_base.h
-#usr/include/c++/4.1.2/ext/stdio_filebuf.h
-#usr/include/c++/4.1.2/ext/stdio_sync_filebuf.h
-#usr/include/c++/4.1.2/ext/typelist.h
-#usr/include/c++/4.1.2/ext/vstring.h
-#usr/include/c++/4.1.2/ext/vstring.tcc
-#usr/include/c++/4.1.2/ext/vstring_fwd.h
-#usr/include/c++/4.1.2/ext/vstring_util.h
-#usr/include/c++/4.1.2/fstream
-#usr/include/c++/4.1.2/functional
-#usr/include/c++/4.1.2/iomanip
-#usr/include/c++/4.1.2/ios
-#usr/include/c++/4.1.2/iosfwd
-#usr/include/c++/4.1.2/iostream
-#usr/include/c++/4.1.2/istream
-#usr/include/c++/4.1.2/iterator
-#usr/include/c++/4.1.2/limits
-#usr/include/c++/4.1.2/list
-#usr/include/c++/4.1.2/locale
-#usr/include/c++/4.1.2/map
-#usr/include/c++/4.1.2/memory
-#usr/include/c++/4.1.2/new
-#usr/include/c++/4.1.2/numeric
-#usr/include/c++/4.1.2/ostream
-#usr/include/c++/4.1.2/queue
-#usr/include/c++/4.1.2/set
-#usr/include/c++/4.1.2/sstream
-#usr/include/c++/4.1.2/stack
-#usr/include/c++/4.1.2/stdexcept
-#usr/include/c++/4.1.2/streambuf
-#usr/include/c++/4.1.2/string
-#usr/include/c++/4.1.2/tr1
-#usr/include/c++/4.1.2/tr1/array
-#usr/include/c++/4.1.2/tr1/bind_iterate.h
-#usr/include/c++/4.1.2/tr1/bind_repeat.h
-#usr/include/c++/4.1.2/tr1/boost_shared_ptr.h
-#usr/include/c++/4.1.2/tr1/functional
-#usr/include/c++/4.1.2/tr1/functional_iterate.h
-#usr/include/c++/4.1.2/tr1/hashtable
-#usr/include/c++/4.1.2/tr1/memory
-#usr/include/c++/4.1.2/tr1/mu_iterate.h
-#usr/include/c++/4.1.2/tr1/ref_fwd.h
-#usr/include/c++/4.1.2/tr1/ref_wrap_iterate.h
-#usr/include/c++/4.1.2/tr1/repeat.h
-#usr/include/c++/4.1.2/tr1/tuple
-#usr/include/c++/4.1.2/tr1/tuple_iterate.h
-#usr/include/c++/4.1.2/tr1/type_traits
-#usr/include/c++/4.1.2/tr1/type_traits_fwd.h
-#usr/include/c++/4.1.2/tr1/unordered_map
-#usr/include/c++/4.1.2/tr1/unordered_set
-#usr/include/c++/4.1.2/tr1/utility
-#usr/include/c++/4.1.2/typeinfo
-#usr/include/c++/4.1.2/utility
-#usr/include/c++/4.1.2/valarray
-#usr/include/c++/4.1.2/vector
+#usr/include/c++/4.4.7
+#usr/include/c++/4.4.7/algorithm
+#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi
+#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits
+#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/atomic_word.h
+#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/basic_file.h
+#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/c++allocator.h
+#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/c++config.h
+#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/c++io.h
+#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/c++locale.h
+#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/cpu_defines.h
+#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/ctype_base.h
+#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/ctype_inline.h
+#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/ctype_noninline.h
+#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/cxxabi_tweaks.h
+#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/error_constants.h
+#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/extc++.h
+#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/gthr-default.h
+#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/gthr-posix.h
+#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/gthr-single.h
+#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/gthr-tpf.h
+#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/gthr.h
+#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/messages_members.h
+#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/os_defines.h
+#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/stdc++.h
+#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/stdtr1c++.h
+#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/time_members.h
+#usr/include/c++/4.4.7/array
+#usr/include/c++/4.4.7/backward
+#usr/include/c++/4.4.7/backward/auto_ptr.h
+#usr/include/c++/4.4.7/backward/backward_warning.h
+#usr/include/c++/4.4.7/backward/binders.h
+#usr/include/c++/4.4.7/backward/hash_fun.h
+#usr/include/c++/4.4.7/backward/hash_map
+#usr/include/c++/4.4.7/backward/hash_set
+#usr/include/c++/4.4.7/backward/hashtable.h
+#usr/include/c++/4.4.7/backward/strstream
+#usr/include/c++/4.4.7/bits
+#usr/include/c++/4.4.7/bits/algorithmfwd.h
+#usr/include/c++/4.4.7/bits/allocator.h
+#usr/include/c++/4.4.7/bits/atomic_0.h
+#usr/include/c++/4.4.7/bits/atomic_2.h
+#usr/include/c++/4.4.7/bits/atomicfwd_c.h
+#usr/include/c++/4.4.7/bits/atomicfwd_cxx.h
+#usr/include/c++/4.4.7/bits/basic_ios.h
+#usr/include/c++/4.4.7/bits/basic_ios.tcc
+#usr/include/c++/4.4.7/bits/basic_string.h
+#usr/include/c++/4.4.7/bits/basic_string.tcc
+#usr/include/c++/4.4.7/bits/boost_concept_check.h
+#usr/include/c++/4.4.7/bits/char_traits.h
+#usr/include/c++/4.4.7/bits/cmath.tcc
+#usr/include/c++/4.4.7/bits/codecvt.h
+#usr/include/c++/4.4.7/bits/concept_check.h
+#usr/include/c++/4.4.7/bits/cpp_type_traits.h
+#usr/include/c++/4.4.7/bits/deque.tcc
+#usr/include/c++/4.4.7/bits/forward_list.h
+#usr/include/c++/4.4.7/bits/forward_list.tcc
+#usr/include/c++/4.4.7/bits/fstream.tcc
+#usr/include/c++/4.4.7/bits/functexcept.h
+#usr/include/c++/4.4.7/bits/functional_hash.h
+#usr/include/c++/4.4.7/bits/gslice.h
+#usr/include/c++/4.4.7/bits/gslice_array.h
+#usr/include/c++/4.4.7/bits/hashtable.h
+#usr/include/c++/4.4.7/bits/indirect_array.h
+#usr/include/c++/4.4.7/bits/ios_base.h
+#usr/include/c++/4.4.7/bits/istream.tcc
+#usr/include/c++/4.4.7/bits/list.tcc
+#usr/include/c++/4.4.7/bits/locale_classes.h
+#usr/include/c++/4.4.7/bits/locale_classes.tcc
+#usr/include/c++/4.4.7/bits/locale_facets.h
+#usr/include/c++/4.4.7/bits/locale_facets.tcc
+#usr/include/c++/4.4.7/bits/locale_facets_nonio.h
+#usr/include/c++/4.4.7/bits/locale_facets_nonio.tcc
+#usr/include/c++/4.4.7/bits/localefwd.h
+#usr/include/c++/4.4.7/bits/mask_array.h
+#usr/include/c++/4.4.7/bits/move.h
+#usr/include/c++/4.4.7/bits/ostream.tcc
+#usr/include/c++/4.4.7/bits/ostream_insert.h
+#usr/include/c++/4.4.7/bits/postypes.h
+#usr/include/c++/4.4.7/bits/shared_ptr.h
+#usr/include/c++/4.4.7/bits/slice_array.h
+#usr/include/c++/4.4.7/bits/sstream.tcc
+#usr/include/c++/4.4.7/bits/stl_algo.h
+#usr/include/c++/4.4.7/bits/stl_algobase.h
+#usr/include/c++/4.4.7/bits/stl_bvector.h
+#usr/include/c++/4.4.7/bits/stl_construct.h
+#usr/include/c++/4.4.7/bits/stl_deque.h
+#usr/include/c++/4.4.7/bits/stl_function.h
+#usr/include/c++/4.4.7/bits/stl_heap.h
+#usr/include/c++/4.4.7/bits/stl_iterator.h
+#usr/include/c++/4.4.7/bits/stl_iterator_base_funcs.h
+#usr/include/c++/4.4.7/bits/stl_iterator_base_types.h
+#usr/include/c++/4.4.7/bits/stl_list.h
+#usr/include/c++/4.4.7/bits/stl_map.h
+#usr/include/c++/4.4.7/bits/stl_multimap.h
+#usr/include/c++/4.4.7/bits/stl_multiset.h
+#usr/include/c++/4.4.7/bits/stl_numeric.h
+#usr/include/c++/4.4.7/bits/stl_pair.h
+#usr/include/c++/4.4.7/bits/stl_queue.h
+#usr/include/c++/4.4.7/bits/stl_raw_storage_iter.h
+#usr/include/c++/4.4.7/bits/stl_relops.h
+#usr/include/c++/4.4.7/bits/stl_set.h
+#usr/include/c++/4.4.7/bits/stl_stack.h
+#usr/include/c++/4.4.7/bits/stl_tempbuf.h
+#usr/include/c++/4.4.7/bits/stl_tree.h
+#usr/include/c++/4.4.7/bits/stl_uninitialized.h
+#usr/include/c++/4.4.7/bits/stl_vector.h
+#usr/include/c++/4.4.7/bits/stream_iterator.h
+#usr/include/c++/4.4.7/bits/streambuf.tcc
+#usr/include/c++/4.4.7/bits/streambuf_iterator.h
+#usr/include/c++/4.4.7/bits/stringfwd.h
+#usr/include/c++/4.4.7/bits/unique_ptr.h
+#usr/include/c++/4.4.7/bits/valarray_after.h
+#usr/include/c++/4.4.7/bits/valarray_array.h
+#usr/include/c++/4.4.7/bits/valarray_array.tcc
+#usr/include/c++/4.4.7/bits/valarray_before.h
+#usr/include/c++/4.4.7/bits/vector.tcc
+#usr/include/c++/4.4.7/bitset
+#usr/include/c++/4.4.7/c++0x_warning.h
+#usr/include/c++/4.4.7/cassert
+#usr/include/c++/4.4.7/ccomplex
+#usr/include/c++/4.4.7/cctype
+#usr/include/c++/4.4.7/cerrno
+#usr/include/c++/4.4.7/cfenv
+#usr/include/c++/4.4.7/cfloat
+#usr/include/c++/4.4.7/chrono
+#usr/include/c++/4.4.7/cinttypes
+#usr/include/c++/4.4.7/ciso646
+#usr/include/c++/4.4.7/climits
+#usr/include/c++/4.4.7/clocale
+#usr/include/c++/4.4.7/cmath
+#usr/include/c++/4.4.7/complex
+#usr/include/c++/4.4.7/complex.h
+#usr/include/c++/4.4.7/condition_variable
+#usr/include/c++/4.4.7/csetjmp
+#usr/include/c++/4.4.7/csignal
+#usr/include/c++/4.4.7/cstdarg
+#usr/include/c++/4.4.7/cstdatomic
+#usr/include/c++/4.4.7/cstdbool
+#usr/include/c++/4.4.7/cstddef
+#usr/include/c++/4.4.7/cstdint
+#usr/include/c++/4.4.7/cstdio
+#usr/include/c++/4.4.7/cstdlib
+#usr/include/c++/4.4.7/cstring
+#usr/include/c++/4.4.7/ctgmath
+#usr/include/c++/4.4.7/ctime
+#usr/include/c++/4.4.7/cwchar
+#usr/include/c++/4.4.7/cwctype
+#usr/include/c++/4.4.7/cxxabi-forced.h
+#usr/include/c++/4.4.7/cxxabi.h
+#usr/include/c++/4.4.7/debug
+#usr/include/c++/4.4.7/debug/bitset
+#usr/include/c++/4.4.7/debug/debug.h
+#usr/include/c++/4.4.7/debug/deque
+#usr/include/c++/4.4.7/debug/formatter.h
+#usr/include/c++/4.4.7/debug/functions.h
+#usr/include/c++/4.4.7/debug/list
+#usr/include/c++/4.4.7/debug/macros.h
+#usr/include/c++/4.4.7/debug/map
+#usr/include/c++/4.4.7/debug/map.h
+#usr/include/c++/4.4.7/debug/multimap.h
+#usr/include/c++/4.4.7/debug/multiset.h
+#usr/include/c++/4.4.7/debug/safe_base.h
+#usr/include/c++/4.4.7/debug/safe_iterator.h
+#usr/include/c++/4.4.7/debug/safe_iterator.tcc
+#usr/include/c++/4.4.7/debug/safe_sequence.h
+#usr/include/c++/4.4.7/debug/set
+#usr/include/c++/4.4.7/debug/set.h
+#usr/include/c++/4.4.7/debug/string
+#usr/include/c++/4.4.7/debug/unordered_map
+#usr/include/c++/4.4.7/debug/unordered_set
+#usr/include/c++/4.4.7/debug/vector
+#usr/include/c++/4.4.7/deque
+#usr/include/c++/4.4.7/exception
+#usr/include/c++/4.4.7/exception_defines.h
+#usr/include/c++/4.4.7/exception_ptr.h
+#usr/include/c++/4.4.7/ext
+#usr/include/c++/4.4.7/ext/algorithm
+#usr/include/c++/4.4.7/ext/array_allocator.h
+#usr/include/c++/4.4.7/ext/atomicity.h
+#usr/include/c++/4.4.7/ext/bitmap_allocator.h
+#usr/include/c++/4.4.7/ext/cast.h
+#usr/include/c++/4.4.7/ext/codecvt_specializations.h
+#usr/include/c++/4.4.7/ext/concurrence.h
+#usr/include/c++/4.4.7/ext/debug_allocator.h
+#usr/include/c++/4.4.7/ext/enc_filebuf.h
+#usr/include/c++/4.4.7/ext/extptr_allocator.h
+#usr/include/c++/4.4.7/ext/functional
+#usr/include/c++/4.4.7/ext/hash_map
+#usr/include/c++/4.4.7/ext/hash_set
+#usr/include/c++/4.4.7/ext/iterator
+#usr/include/c++/4.4.7/ext/malloc_allocator.h
+#usr/include/c++/4.4.7/ext/memory
+#usr/include/c++/4.4.7/ext/mt_allocator.h
+#usr/include/c++/4.4.7/ext/new_allocator.h
+#usr/include/c++/4.4.7/ext/numeric
+#usr/include/c++/4.4.7/ext/numeric_traits.h
+#usr/include/c++/4.4.7/ext/pb_ds
+#usr/include/c++/4.4.7/ext/pb_ds/assoc_container.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail
+#usr/include/c++/4.4.7/ext/pb_ds/detail/basic_tree_policy
+#usr/include/c++/4.4.7/ext/pb_ds/detail/basic_tree_policy/basic_tree_policy_base.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/basic_tree_policy/null_node_metadata.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/basic_tree_policy/traits.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/basic_types.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/bin_search_tree_.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/cond_dtor_entry_dealtor.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/cond_key_dtor_entry_dealtor.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/debug_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/erase_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/find_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/info_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/insert_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/iterators_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/node_iterators.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/point_iterators.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/policy_access_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/r_erase_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/rotate_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/split_join_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/traits.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/const_iterator.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/const_point_iterator.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/debug_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/entry_cmp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/entry_pred.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/erase_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/find_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/info_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/iterators_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/policy_access_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/resize_policy.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/split_join_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/trace_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_/binomial_heap_.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_/debug_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_base_
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_base_/binomial_heap_base_.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_base_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_base_/debug_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_base_/erase_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_base_/find_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_base_/insert_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_base_/split_join_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/cmp_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/cond_key_dtor_entry_dealtor.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/debug_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/debug_no_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/debug_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/entry_list_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/erase_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/erase_no_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/erase_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/find_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/find_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/info_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/insert_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/insert_no_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/insert_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/iterators_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/policy_access_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/resize_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/resize_no_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/resize_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/size_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/standard_policies.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/trace_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cond_dealtor.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/constructors_destructor_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/container_base_dispatch.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/debug_map_base.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/eq_fn
+#usr/include/c++/4.4.7/ext/pb_ds/detail/eq_fn/eq_by_less.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/eq_fn/hash_eq_fn.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/debug_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/debug_no_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/debug_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/erase_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/erase_no_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/erase_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/find_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/find_no_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/find_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/gp_ht_map_.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/info_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/insert_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/insert_no_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/insert_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/iterator_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/policy_access_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/resize_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/resize_no_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/resize_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/standard_policies.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/trace_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn
+#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/direct_mask_range_hashing_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/direct_mod_range_hashing_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/linear_probe_fn_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/mask_based_range_hashing.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/mod_based_range_hashing.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/probe_fn_base.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/quadratic_probe_fn_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/ranged_hash_fn.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/ranged_probe_fn.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/sample_probe_fn.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/sample_range_hashing.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/sample_ranged_hash_fn.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/sample_ranged_probe_fn.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_
+#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/const_iterator.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/const_point_iterator.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/debug_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/erase_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/info_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/insert_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/iterators_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/left_child_next_sibling_heap_.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/node.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/null_metadata.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/policy_access_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/trace_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_
+#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/constructor_destructor_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/debug_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/entry_metadata_base.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/erase_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/find_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/info_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/insert_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/iterators_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/lu_map_.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/trace_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_policy
+#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_policy/counter_lu_metadata.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_policy/counter_lu_policy_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_policy/mtf_lu_policy_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_policy/sample_update_policy.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_
+#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/cond_dtor.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/debug_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/erase_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/info_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/insert_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/iterators_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/node_iterators.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/ov_tree_map_.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/policy_access_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/split_join_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/traits.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pairing_heap_
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pairing_heap_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pairing_heap_/debug_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pairing_heap_/erase_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pairing_heap_/find_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pairing_heap_/insert_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pairing_heap_/pairing_heap_.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pairing_heap_/split_join_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/child_iterator.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/cond_dtor_entry_dealtor.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/const_child_iterator.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/debug_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/erase_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/find_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/head.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/info_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/insert_join_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/internal_node.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/iterators_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/leaf.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/node_base.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/node_iterators.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/node_metadata_base.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/pat_trie_.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/point_iterators.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/policy_access_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/r_erase_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/rotate_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/split_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/split_join_branch_bag.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/synth_e_access_traits.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/trace_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/traits.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/update_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/priority_queue_base_dispatch.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/debug_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/erase_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/find_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/info_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/insert_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/node.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/rb_tree_.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/split_join_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/traits.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_/debug_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_/erase_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_/insert_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_/rc.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_/rc_binomial_heap_.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_/split_join_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_/trace_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy
+#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/cc_hash_max_collision_check_resize_trigger_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/hash_exponential_size_policy_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_size_base.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/hash_standard_resize_policy_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/sample_resize_policy.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/sample_resize_trigger.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/sample_size_policy.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_
+#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/debug_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/erase_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/find_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/info_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/insert_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/node.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/splay_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/splay_tree_.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/split_join_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/traits.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/standard_policies.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_
+#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_/debug_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_/erase_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_/find_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_/insert_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_/split_join_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_/thin_heap_.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_/trace_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/tree_policy
+#usr/include/c++/4.4.7/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/tree_policy/null_node_update_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/tree_policy/order_statistics_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/tree_policy/sample_tree_node_update.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/tree_trace_base.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy
+#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy/null_node_update_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy/order_statistics_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy/prefix_search_node_update_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy/sample_trie_e_access_traits.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy/sample_trie_node_update.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy/string_trie_e_access_traits_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy/trie_policy_base.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/type_utils.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/types_traits.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/unordered_iterator
+#usr/include/c++/4.4.7/ext/pb_ds/detail/unordered_iterator/const_iterator.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/unordered_iterator/const_point_iterator.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/unordered_iterator/iterator.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/unordered_iterator/point_iterator.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/exception.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/hash_policy.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/list_update_policy.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/priority_queue.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/tag_and_trait.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/tree_policy.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/trie_policy.hpp
+#usr/include/c++/4.4.7/ext/pod_char_traits.h
+#usr/include/c++/4.4.7/ext/pointer.h
+#usr/include/c++/4.4.7/ext/pool_allocator.h
+#usr/include/c++/4.4.7/ext/rb_tree
+#usr/include/c++/4.4.7/ext/rc_string_base.h
+#usr/include/c++/4.4.7/ext/rope
+#usr/include/c++/4.4.7/ext/ropeimpl.h
+#usr/include/c++/4.4.7/ext/slist
+#usr/include/c++/4.4.7/ext/sso_string_base.h
+#usr/include/c++/4.4.7/ext/stdio_filebuf.h
+#usr/include/c++/4.4.7/ext/stdio_sync_filebuf.h
+#usr/include/c++/4.4.7/ext/string_conversions.h
+#usr/include/c++/4.4.7/ext/throw_allocator.h
+#usr/include/c++/4.4.7/ext/type_traits.h
+#usr/include/c++/4.4.7/ext/typelist.h
+#usr/include/c++/4.4.7/ext/vstring.h
+#usr/include/c++/4.4.7/ext/vstring.tcc
+#usr/include/c++/4.4.7/ext/vstring_fwd.h
+#usr/include/c++/4.4.7/ext/vstring_util.h
+#usr/include/c++/4.4.7/fenv.h
+#usr/include/c++/4.4.7/forward_list
+#usr/include/c++/4.4.7/fstream
+#usr/include/c++/4.4.7/functional
+#usr/include/c++/4.4.7/initializer_list
+#usr/include/c++/4.4.7/iomanip
+#usr/include/c++/4.4.7/ios
+#usr/include/c++/4.4.7/iosfwd
+#usr/include/c++/4.4.7/iostream
+#usr/include/c++/4.4.7/istream
+#usr/include/c++/4.4.7/iterator
+#usr/include/c++/4.4.7/limits
+#usr/include/c++/4.4.7/list
+#usr/include/c++/4.4.7/locale
+#usr/include/c++/4.4.7/map
+#usr/include/c++/4.4.7/memory
+#usr/include/c++/4.4.7/mutex
+#usr/include/c++/4.4.7/new
+#usr/include/c++/4.4.7/numeric
+#usr/include/c++/4.4.7/ostream
+#usr/include/c++/4.4.7/parallel
+#usr/include/c++/4.4.7/parallel/algo.h
+#usr/include/c++/4.4.7/parallel/algobase.h
+#usr/include/c++/4.4.7/parallel/algorithm
+#usr/include/c++/4.4.7/parallel/algorithmfwd.h
+#usr/include/c++/4.4.7/parallel/balanced_quicksort.h
+#usr/include/c++/4.4.7/parallel/base.h
+#usr/include/c++/4.4.7/parallel/basic_iterator.h
+#usr/include/c++/4.4.7/parallel/checkers.h
+#usr/include/c++/4.4.7/parallel/compatibility.h
+#usr/include/c++/4.4.7/parallel/compiletime_settings.h
+#usr/include/c++/4.4.7/parallel/equally_split.h
+#usr/include/c++/4.4.7/parallel/features.h
+#usr/include/c++/4.4.7/parallel/find.h
+#usr/include/c++/4.4.7/parallel/find_selectors.h
+#usr/include/c++/4.4.7/parallel/for_each.h
+#usr/include/c++/4.4.7/parallel/for_each_selectors.h
+#usr/include/c++/4.4.7/parallel/iterator.h
+#usr/include/c++/4.4.7/parallel/list_partition.h
+#usr/include/c++/4.4.7/parallel/losertree.h
+#usr/include/c++/4.4.7/parallel/merge.h
+#usr/include/c++/4.4.7/parallel/multiseq_selection.h
+#usr/include/c++/4.4.7/parallel/multiway_merge.h
+#usr/include/c++/4.4.7/parallel/multiway_mergesort.h
+#usr/include/c++/4.4.7/parallel/numeric
+#usr/include/c++/4.4.7/parallel/numericfwd.h
+#usr/include/c++/4.4.7/parallel/omp_loop.h
+#usr/include/c++/4.4.7/parallel/omp_loop_static.h
+#usr/include/c++/4.4.7/parallel/par_loop.h
+#usr/include/c++/4.4.7/parallel/parallel.h
+#usr/include/c++/4.4.7/parallel/partial_sum.h
+#usr/include/c++/4.4.7/parallel/partition.h
+#usr/include/c++/4.4.7/parallel/queue.h
+#usr/include/c++/4.4.7/parallel/quicksort.h
+#usr/include/c++/4.4.7/parallel/random_number.h
+#usr/include/c++/4.4.7/parallel/random_shuffle.h
+#usr/include/c++/4.4.7/parallel/search.h
+#usr/include/c++/4.4.7/parallel/set_operations.h
+#usr/include/c++/4.4.7/parallel/settings.h
+#usr/include/c++/4.4.7/parallel/sort.h
+#usr/include/c++/4.4.7/parallel/tags.h
+#usr/include/c++/4.4.7/parallel/types.h
+#usr/include/c++/4.4.7/parallel/unique_copy.h
+#usr/include/c++/4.4.7/parallel/workstealing.h
+#usr/include/c++/4.4.7/queue
+#usr/include/c++/4.4.7/random
+#usr/include/c++/4.4.7/ratio
+#usr/include/c++/4.4.7/regex
+#usr/include/c++/4.4.7/set
+#usr/include/c++/4.4.7/sstream
+#usr/include/c++/4.4.7/stack
+#usr/include/c++/4.4.7/stdatomic.h
+#usr/include/c++/4.4.7/stdexcept
+#usr/include/c++/4.4.7/streambuf
+#usr/include/c++/4.4.7/string
+#usr/include/c++/4.4.7/system_error
+#usr/include/c++/4.4.7/tgmath.h
+#usr/include/c++/4.4.7/thread
+#usr/include/c++/4.4.7/tr1
+#usr/include/c++/4.4.7/tr1/array
+#usr/include/c++/4.4.7/tr1/bessel_function.tcc
+#usr/include/c++/4.4.7/tr1/beta_function.tcc
+#usr/include/c++/4.4.7/tr1/ccomplex
+#usr/include/c++/4.4.7/tr1/cctype
+#usr/include/c++/4.4.7/tr1/cfenv
+#usr/include/c++/4.4.7/tr1/cfloat
+#usr/include/c++/4.4.7/tr1/cinttypes
+#usr/include/c++/4.4.7/tr1/climits
+#usr/include/c++/4.4.7/tr1/cmath
+#usr/include/c++/4.4.7/tr1/complex
+#usr/include/c++/4.4.7/tr1/complex.h
+#usr/include/c++/4.4.7/tr1/cstdarg
+#usr/include/c++/4.4.7/tr1/cstdbool
+#usr/include/c++/4.4.7/tr1/cstdint
+#usr/include/c++/4.4.7/tr1/cstdio
+#usr/include/c++/4.4.7/tr1/cstdlib
+#usr/include/c++/4.4.7/tr1/ctgmath
+#usr/include/c++/4.4.7/tr1/ctime
+#usr/include/c++/4.4.7/tr1/ctype.h
+#usr/include/c++/4.4.7/tr1/cwchar
+#usr/include/c++/4.4.7/tr1/cwctype
+#usr/include/c++/4.4.7/tr1/ell_integral.tcc
+#usr/include/c++/4.4.7/tr1/exp_integral.tcc
+#usr/include/c++/4.4.7/tr1/fenv.h
+#usr/include/c++/4.4.7/tr1/float.h
+#usr/include/c++/4.4.7/tr1/functional
+#usr/include/c++/4.4.7/tr1/functional_hash.h
+#usr/include/c++/4.4.7/tr1/gamma.tcc
+#usr/include/c++/4.4.7/tr1/hashtable.h
+#usr/include/c++/4.4.7/tr1/hypergeometric.tcc
+#usr/include/c++/4.4.7/tr1/inttypes.h
+#usr/include/c++/4.4.7/tr1/legendre_function.tcc
+#usr/include/c++/4.4.7/tr1/limits.h
+#usr/include/c++/4.4.7/tr1/math.h
+#usr/include/c++/4.4.7/tr1/memory
+#usr/include/c++/4.4.7/tr1/modified_bessel_func.tcc
+#usr/include/c++/4.4.7/tr1/poly_hermite.tcc
+#usr/include/c++/4.4.7/tr1/poly_laguerre.tcc
+#usr/include/c++/4.4.7/tr1/random
+#usr/include/c++/4.4.7/tr1/regex
+#usr/include/c++/4.4.7/tr1/riemann_zeta.tcc
+#usr/include/c++/4.4.7/tr1/shared_ptr.h
+#usr/include/c++/4.4.7/tr1/special_function_util.h
+#usr/include/c++/4.4.7/tr1/stdarg.h
+#usr/include/c++/4.4.7/tr1/stdbool.h
+#usr/include/c++/4.4.7/tr1/stdint.h
+#usr/include/c++/4.4.7/tr1/stdio.h
+#usr/include/c++/4.4.7/tr1/stdlib.h
+#usr/include/c++/4.4.7/tr1/tgmath.h
+#usr/include/c++/4.4.7/tr1/tuple
+#usr/include/c++/4.4.7/tr1/type_traits
+#usr/include/c++/4.4.7/tr1/unordered_map
+#usr/include/c++/4.4.7/tr1/unordered_set
+#usr/include/c++/4.4.7/tr1/utility
+#usr/include/c++/4.4.7/tr1/wchar.h
+#usr/include/c++/4.4.7/tr1/wctype.h
+#usr/include/c++/4.4.7/tr1_impl
+#usr/include/c++/4.4.7/tr1_impl/array
+#usr/include/c++/4.4.7/tr1_impl/boost_sp_counted_base.h
+#usr/include/c++/4.4.7/tr1_impl/cctype
+#usr/include/c++/4.4.7/tr1_impl/cfenv
+#usr/include/c++/4.4.7/tr1_impl/cinttypes
+#usr/include/c++/4.4.7/tr1_impl/cmath
+#usr/include/c++/4.4.7/tr1_impl/complex
+#usr/include/c++/4.4.7/tr1_impl/cstdint
+#usr/include/c++/4.4.7/tr1_impl/cstdio
+#usr/include/c++/4.4.7/tr1_impl/cstdlib
+#usr/include/c++/4.4.7/tr1_impl/cwchar
+#usr/include/c++/4.4.7/tr1_impl/cwctype
+#usr/include/c++/4.4.7/tr1_impl/functional
+#usr/include/c++/4.4.7/tr1_impl/functional_hash.h
+#usr/include/c++/4.4.7/tr1_impl/hashtable
+#usr/include/c++/4.4.7/tr1_impl/hashtable_policy.h
+#usr/include/c++/4.4.7/tr1_impl/random
+#usr/include/c++/4.4.7/tr1_impl/random.tcc
+#usr/include/c++/4.4.7/tr1_impl/regex
+#usr/include/c++/4.4.7/tr1_impl/type_traits
+#usr/include/c++/4.4.7/tr1_impl/unordered_map
+#usr/include/c++/4.4.7/tr1_impl/unordered_set
+#usr/include/c++/4.4.7/tr1_impl/utility
+#usr/include/c++/4.4.7/tuple
+#usr/include/c++/4.4.7/type_traits
+#usr/include/c++/4.4.7/typeinfo
+#usr/include/c++/4.4.7/unordered_map
+#usr/include/c++/4.4.7/unordered_set
+#usr/include/c++/4.4.7/utility
+#usr/include/c++/4.4.7/valarray
+#usr/include/c++/4.4.7/vector
+#usr/info
 #usr/info/cpp.info
 #usr/info/cppinternals.info
+#usr/info/dir
 #usr/info/gcc.info
 #usr/info/gccinstall.info
 #usr/info/gccint.info
+#usr/info/libgomp.info
 #usr/lib/gcc
 #usr/lib/gcc/armv5tel-unknown-linux-gnueabi
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/cc1
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/cc1plus
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/collect2
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/crtbegin.o
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/crtbeginS.o
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/crtbeginT.o
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/crtend.o
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/crtendS.o
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/include
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/include/README
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/include/float.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/include/iso646.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/include/limits.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/include/mmintrin.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/include/stdarg.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/include/stdbool.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/include/stddef.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/include/syslimits.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/include/unwind.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/include/varargs.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/fixinc.sh
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/fixincl
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/gsyslimits.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/include
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/include/README
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/include/float.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/include/iso646.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/include/limits.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/include/mmintrin.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/include/stdarg.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/include/stdbool.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/include/stddef.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/include/unwind.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/include/varargs.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/macro_list
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/mkheaders
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/mkheaders.conf
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/libgcc.a
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/libgcc_eh.a
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/libgcov.a
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/cc1
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/cc1plus
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/collect2
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/crtbegin.o
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/crtbeginS.o
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/crtbeginT.o
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/crtend.o
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/crtendS.o
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/finclude
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include-fixed
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include-fixed/README
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include-fixed/limits.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include-fixed/syslimits.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/arm_neon.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/float.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/iso646.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/mf-runtime.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/mmintrin.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/omp.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/ssp
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/ssp/ssp.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/ssp/stdio.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/ssp/string.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/ssp/unistd.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/stdarg.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/stdbool.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/stddef.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/stdfix.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/unwind.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/varargs.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/install-tools
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/install-tools/fixinc.sh
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/install-tools/fixinc_list
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/install-tools/fixincl
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/install-tools/gsyslimits.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/install-tools/include
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/install-tools/include/README
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/install-tools/include/limits.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/install-tools/macro_list
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/install-tools/mkheaders
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/install-tools/mkheaders.conf
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/install-tools/mkinstalldirs
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/libgcc.a
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/libgcc_eh.a
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/libgcov.a
+#usr/lib/libgomp.a
+#usr/lib/libgomp.la
+#usr/lib/libgomp.so
+usr/lib/libgomp.so.1
+usr/lib/libgomp.so.1.0.0
+#usr/lib/libgomp.spec
+#usr/lib/libmudflap.a
+#usr/lib/libmudflap.la
+#usr/lib/libmudflap.so
+usr/lib/libmudflap.so.0
+usr/lib/libmudflap.so.0.0.0
+#usr/lib/libmudflapth.a
+#usr/lib/libmudflapth.la
+#usr/lib/libmudflapth.so
+usr/lib/libmudflapth.so.0
+usr/lib/libmudflapth.so.0.0.0
+#usr/lib/libssp.a
+#usr/lib/libssp.la
+#usr/lib/libssp.so
+usr/lib/libssp.so.0
+usr/lib/libssp.so.0.0.0
+#usr/lib/libssp_nonshared.a
+#usr/lib/libssp_nonshared.la
 #usr/lib/libstdc++.a
-#usr/lib/libstdc++.la
-#usr/lib/libstdc++.so
-usr/lib/libstdc++.so.6
-usr/lib/libstdc++.so.6.0.8
+usr/lib/libstdc++.so.6.0.13
 #usr/lib/libsupc++.a
 #usr/lib/libsupc++.la
+#usr/man
+#usr/man/man1
 #usr/man/man1/cpp.1
 #usr/man/man1/g++.1
 #usr/man/man1/gcc.1
index 2393ff2414dc90f8db41c43226c156e84769fd9c..42ae490ce2d696a7dc9a8d6eecdb848c626d3ac5 100644 (file)
@@ -1,44 +1,48 @@
-#etc/rpc
-lib/ld-2.5.so
+#etc/ld.so.cache
+etc/localtime
+etc/rpc
+lib/ld-2.12.so
 lib/ld-linux.so.3
-lib/libBrokenLocale-2.5.so
-#lib/libBrokenLocale.so.1
+lib/libBrokenLocale-2.12.so
+lib/libBrokenLocale.so.1
 #lib/libSegFault.so
-lib/libanl-2.5.so
-#lib/libanl.so.1
-lib/libc-2.5.so
+lib/libanl-2.12.so
+lib/libanl.so.1
+lib/libc-2.12.so
 lib/libc.so.6
-lib/libcrypt-2.5.so
+lib/libcidn-2.12.so
+lib/libcidn.so.1
+lib/libcrypt-2.12.so
 lib/libcrypt.so.1
-lib/libdl-2.5.so
+lib/libdl-2.12.so
 lib/libdl.so.2
-lib/libm-2.5.so
+lib/libm-2.12.so
 lib/libm.so.6
 #lib/libmemusage.so
-lib/libnsl-2.5.so
+lib/libnsl-2.12.so
 lib/libnsl.so.1
-lib/libnss_compat-2.5.so
+lib/libnss_compat-2.12.so
 lib/libnss_compat.so.2
-lib/libnss_dns-2.5.so
+lib/libnss_dns-2.12.so
 lib/libnss_dns.so.2
-lib/libnss_files-2.5.so
+lib/libnss_files-2.12.so
 lib/libnss_files.so.2
-lib/libnss_hesiod-2.5.so
-#lib/libnss_hesiod.so.2
-lib/libnss_nis-2.5.so
-#lib/libnss_nis.so.2
-lib/libnss_nisplus-2.5.so
-#lib/libnss_nisplus.so.2
+lib/libnss_hesiod-2.12.so
+lib/libnss_hesiod.so.2
+lib/libnss_nis-2.12.so
+lib/libnss_nis.so.2
+lib/libnss_nisplus-2.12.so
+lib/libnss_nisplus.so.2
 #lib/libpcprofile.so
-lib/libpthread-2.5.so
+lib/libpthread-2.12.so
 lib/libpthread.so.0
-lib/libresolv-2.5.so
+lib/libresolv-2.12.so
 lib/libresolv.so.2
-lib/librt-2.5.so
+lib/librt-2.12.so
 lib/librt.so.1
-#lib/libthread_db-1.0.so
-#lib/libthread_db.so.1
-lib/libutil-2.5.so
+lib/libthread_db-1.0.so
+lib/libthread_db.so.1
+lib/libutil-2.12.so
 lib/libutil.so.1
 sbin/ldconfig
 #sbin/sln
@@ -83,7 +87,9 @@ usr/bin/ldd
 #usr/include/bits/endian.h
 #usr/include/bits/environments.h
 #usr/include/bits/errno.h
+#usr/include/bits/error.h
 #usr/include/bits/fcntl.h
+#usr/include/bits/fcntl2.h
 #usr/include/bits/fenv.h
 #usr/include/bits/fenvinline.h
 #usr/include/bits/huge_val.h
@@ -107,6 +113,7 @@ usr/bin/ldd
 #usr/include/bits/mman.h
 #usr/include/bits/monetary-ldbl.h
 #usr/include/bits/mqueue.h
+#usr/include/bits/mqueue2.h
 #usr/include/bits/msq.h
 #usr/include/bits/nan.h
 #usr/include/bits/netdb.h
@@ -122,6 +129,7 @@ usr/bin/ldd
 #usr/include/bits/sem.h
 #usr/include/bits/semaphore.h
 #usr/include/bits/setjmp.h
+#usr/include/bits/setjmp2.h
 #usr/include/bits/shm.h
 #usr/include/bits/sigaction.h
 #usr/include/bits/sigcontext.h
@@ -147,7 +155,6 @@ usr/bin/ldd
 #usr/include/bits/string.h
 #usr/include/bits/string2.h
 #usr/include/bits/string3.h
-#usr/include/bits/stropts.h
 #usr/include/bits/sys_errlist.h
 #usr/include/bits/syscall.h
 #usr/include/bits/syslog-ldbl.h
@@ -170,7 +177,6 @@ usr/bin/ldd
 #usr/include/bits/wchar2.h
 #usr/include/bits/wordsize.h
 #usr/include/bits/xopen_lim.h
-#usr/include/bits/xtitypes.h
 #usr/include/byteswap.h
 #usr/include/complex.h
 #usr/include/cpio.h
@@ -203,6 +209,7 @@ usr/bin/ldd
 #usr/include/gnu/libc-version.h
 #usr/include/gnu/stubs.h
 #usr/include/grp.h
+#usr/include/gshadow.h
 #usr/include/iconv.h
 #usr/include/ieee754.h
 #usr/include/ifaddrs.h
@@ -258,6 +265,8 @@ usr/bin/ldd
 #usr/include/netinet/udp.h
 #usr/include/netipx
 #usr/include/netipx/ipx.h
+#usr/include/netiucv
+#usr/include/netiucv/iucv.h
 #usr/include/netpacket
 #usr/include/netpacket/packet.h
 #usr/include/netrom
@@ -304,10 +313,15 @@ usr/bin/ldd
 #usr/include/rpc/xdr.h
 #usr/include/rpcsvc
 #usr/include/rpcsvc/bootparam.h
+#usr/include/rpcsvc/bootparam_prot.h
 #usr/include/rpcsvc/bootparam_prot.x
+#usr/include/rpcsvc/key_prot.h
 #usr/include/rpcsvc/key_prot.x
+#usr/include/rpcsvc/klm_prot.h
 #usr/include/rpcsvc/klm_prot.x
+#usr/include/rpcsvc/mount.h
 #usr/include/rpcsvc/mount.x
+#usr/include/rpcsvc/nfs_prot.h
 #usr/include/rpcsvc/nfs_prot.x
 #usr/include/rpcsvc/nis.h
 #usr/include/rpcsvc/nis.x
@@ -316,20 +330,29 @@ usr/bin/ldd
 #usr/include/rpcsvc/nis_object.x
 #usr/include/rpcsvc/nis_tags.h
 #usr/include/rpcsvc/nislib.h
+#usr/include/rpcsvc/nlm_prot.h
 #usr/include/rpcsvc/nlm_prot.x
+#usr/include/rpcsvc/rex.h
 #usr/include/rpcsvc/rex.x
+#usr/include/rpcsvc/rquota.h
 #usr/include/rpcsvc/rquota.x
+#usr/include/rpcsvc/rstat.h
 #usr/include/rpcsvc/rstat.x
+#usr/include/rpcsvc/rusers.h
 #usr/include/rpcsvc/rusers.x
+#usr/include/rpcsvc/sm_inter.h
 #usr/include/rpcsvc/sm_inter.x
+#usr/include/rpcsvc/spray.h
 #usr/include/rpcsvc/spray.x
 #usr/include/rpcsvc/yp.h
 #usr/include/rpcsvc/yp.x
 #usr/include/rpcsvc/yp_prot.h
 #usr/include/rpcsvc/ypclnt.h
+#usr/include/rpcsvc/yppasswd.h
 #usr/include/rpcsvc/yppasswd.x
 #usr/include/rpcsvc/ypupd.h
 #usr/include/sched.h
+#usr/include/scsi/scsi.h
 #usr/include/scsi/scsi_ioctl.h
 #usr/include/scsi/sg.h
 #usr/include/search.h
@@ -346,7 +369,6 @@ usr/bin/ldd
 #usr/include/stdlib.h
 #usr/include/string.h
 #usr/include/strings.h
-#usr/include/stropts.h
 #usr/include/sys
 #usr/include/sys/acct.h
 #usr/include/sys/bitypes.h
@@ -355,6 +377,7 @@ usr/bin/ldd
 #usr/include/sys/elf.h
 #usr/include/sys/epoll.h
 #usr/include/sys/errno.h
+#usr/include/sys/eventfd.h
 #usr/include/sys/fcntl.h
 #usr/include/sys/file.h
 #usr/include/sys/fsuid.h
@@ -389,13 +412,13 @@ usr/bin/ldd
 #usr/include/sys/sendfile.h
 #usr/include/sys/shm.h
 #usr/include/sys/signal.h
+#usr/include/sys/signalfd.h
 #usr/include/sys/socket.h
 #usr/include/sys/socketvar.h
 #usr/include/sys/soundcard.h
 #usr/include/sys/stat.h
 #usr/include/sys/statfs.h
 #usr/include/sys/statvfs.h
-#usr/include/sys/stropts.h
 #usr/include/sys/swap.h
 #usr/include/sys/syscall.h
 #usr/include/sys/sysctl.h
@@ -405,6 +428,7 @@ usr/bin/ldd
 #usr/include/sys/termios.h
 #usr/include/sys/time.h
 #usr/include/sys/timeb.h
+#usr/include/sys/timerfd.h
 #usr/include/sys/times.h
 #usr/include/sys/timex.h
 #usr/include/sys/ttychars.h
@@ -447,20 +471,6 @@ usr/bin/ldd
 #usr/include/wctype.h
 #usr/include/wordexp.h
 #usr/include/xlocale.h
-#usr/info
-#usr/info/dir
-#usr/info/libc.info
-#usr/info/libc.info-1
-#usr/info/libc.info-10
-#usr/info/libc.info-11
-#usr/info/libc.info-2
-#usr/info/libc.info-3
-#usr/info/libc.info-4
-#usr/info/libc.info-5
-#usr/info/libc.info-6
-#usr/info/libc.info-7
-#usr/info/libc.info-8
-#usr/info/libc.info-9
 #usr/lib/Mcrt1.o
 #usr/lib/Scrt1.o
 #usr/lib/crt1.o
@@ -472,6 +482,7 @@ usr/lib/gconv
 #usr/lib/gconv/ASMO_449.so
 #usr/lib/gconv/BIG5.so
 #usr/lib/gconv/BIG5HKSCS.so
+#usr/lib/gconv/BRF.so
 #usr/lib/gconv/CP10007.so
 #usr/lib/gconv/CP1125.so
 #usr/lib/gconv/CP1250.so
@@ -522,7 +533,11 @@ usr/lib/gconv
 #usr/lib/gconv/GREEK-CCITT.so
 #usr/lib/gconv/GREEK7-OLD.so
 #usr/lib/gconv/GREEK7.so
+#usr/lib/gconv/HP-GREEK8.so
 #usr/lib/gconv/HP-ROMAN8.so
+#usr/lib/gconv/HP-ROMAN9.so
+#usr/lib/gconv/HP-THAI8.so
+#usr/lib/gconv/HP-TURKISH8.so
 #usr/lib/gconv/IBM037.so
 #usr/lib/gconv/IBM038.so
 #usr/lib/gconv/IBM1004.so
@@ -663,6 +678,7 @@ usr/lib/gconv
 #usr/lib/gconv/ISO8859-7.so
 #usr/lib/gconv/ISO8859-8.so
 #usr/lib/gconv/ISO8859-9.so
+#usr/lib/gconv/ISO8859-9E.so
 #usr/lib/gconv/ISO_10367-BOX.so
 #usr/lib/gconv/ISO_11548-1.so
 #usr/lib/gconv/ISO_2033.so
@@ -674,10 +690,12 @@ usr/lib/gconv
 #usr/lib/gconv/JOHAB.so
 #usr/lib/gconv/KOI-8.so
 #usr/lib/gconv/KOI8-R.so
+#usr/lib/gconv/KOI8-RU.so
 #usr/lib/gconv/KOI8-T.so
 #usr/lib/gconv/KOI8-U.so
 #usr/lib/gconv/LATIN-GREEK-1.so
 #usr/lib/gconv/LATIN-GREEK.so
+#usr/lib/gconv/MAC-CENTRALEUROPE.so
 #usr/lib/gconv/MAC-IS.so
 #usr/lib/gconv/MAC-SAMI.so
 #usr/lib/gconv/MAC-UK.so
@@ -712,6 +730,8 @@ usr/lib/gconv
 #usr/lib/glibc/getconf
 #usr/lib/glibc/getconf/POSIX_V6_ILP32_OFF32
 #usr/lib/glibc/getconf/POSIX_V6_ILP32_OFFBIG
+#usr/lib/glibc/getconf/POSIX_V7_ILP32_OFF32
+#usr/lib/glibc/getconf/POSIX_V7_ILP32_OFFBIG
 #usr/lib/glibc/pt_chown
 #usr/lib/libBrokenLocale.a
 #usr/lib/libBrokenLocale.so
@@ -721,6 +741,7 @@ usr/lib/gconv
 #usr/lib/libc.a
 #usr/lib/libc.so
 #usr/lib/libc_nonshared.a
+#usr/lib/libcidn.so
 #usr/lib/libcrypt.a
 #usr/lib/libcrypt.so
 #usr/lib/libdl.a
@@ -743,6 +764,7 @@ usr/lib/gconv
 #usr/lib/libpthread_nonshared.a
 #usr/lib/libresolv.a
 #usr/lib/libresolv.so
+#usr/lib/librpcsvc.a
 #usr/lib/librt.a
 #usr/lib/librt.so
 #usr/lib/libthread_db.so
@@ -763,6 +785,7 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/charmaps/ASMO_449.gz
 #usr/share/i18n/charmaps/BIG5-HKSCS.gz
 #usr/share/i18n/charmaps/BIG5.gz
+#usr/share/i18n/charmaps/BRF.gz
 #usr/share/i18n/charmaps/BS_4730.gz
 #usr/share/i18n/charmaps/BS_VIEWDATA.gz
 #usr/share/i18n/charmaps/CP10007.gz
@@ -821,7 +844,11 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/charmaps/GREEK-CCITT.gz
 #usr/share/i18n/charmaps/GREEK7-OLD.gz
 #usr/share/i18n/charmaps/GREEK7.gz
+#usr/share/i18n/charmaps/HP-GREEK8.gz
 #usr/share/i18n/charmaps/HP-ROMAN8.gz
+#usr/share/i18n/charmaps/HP-ROMAN9.gz
+#usr/share/i18n/charmaps/HP-THAI8.gz
+#usr/share/i18n/charmaps/HP-TURKISH8.gz
 #usr/share/i18n/charmaps/IBM037.gz
 #usr/share/i18n/charmaps/IBM038.gz
 #usr/share/i18n/charmaps/IBM1004.gz
@@ -901,6 +928,7 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/charmaps/ISO-8859-7.gz
 #usr/share/i18n/charmaps/ISO-8859-8.gz
 #usr/share/i18n/charmaps/ISO-8859-9.gz
+#usr/share/i18n/charmaps/ISO-8859-9E.gz
 #usr/share/i18n/charmaps/ISO-IR-197.gz
 #usr/share/i18n/charmaps/ISO-IR-209.gz
 #usr/share/i18n/charmaps/ISO-IR-90.gz
@@ -934,11 +962,13 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/charmaps/JUS_I.B1.003-SERB.gz
 #usr/share/i18n/charmaps/KOI-8.gz
 #usr/share/i18n/charmaps/KOI8-R.gz
+#usr/share/i18n/charmaps/KOI8-RU.gz
 #usr/share/i18n/charmaps/KOI8-T.gz
 #usr/share/i18n/charmaps/KOI8-U.gz
 #usr/share/i18n/charmaps/KSC5636.gz
 #usr/share/i18n/charmaps/LATIN-GREEK-1.gz
 #usr/share/i18n/charmaps/LATIN-GREEK.gz
+#usr/share/i18n/charmaps/MAC-CENTRALEUROPE.gz
 #usr/share/i18n/charmaps/MAC-CYRILLIC.gz
 #usr/share/i18n/charmaps/MAC-IS.gz
 #usr/share/i18n/charmaps/MAC-SAMI.gz
@@ -1004,12 +1034,17 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/locales/ar_TN
 #usr/share/i18n/locales/ar_YE
 #usr/share/i18n/locales/as_IN
+#usr/share/i18n/locales/ast_ES
 #usr/share/i18n/locales/az_AZ
 #usr/share/i18n/locales/be_BY
 #usr/share/i18n/locales/be_BY@latin
+#usr/share/i18n/locales/ber_DZ
+#usr/share/i18n/locales/ber_MA
 #usr/share/i18n/locales/bg_BG
 #usr/share/i18n/locales/bn_BD
 #usr/share/i18n/locales/bn_IN
+#usr/share/i18n/locales/bo_CN
+#usr/share/i18n/locales/bo_IN
 #usr/share/i18n/locales/br_FR
 #usr/share/i18n/locales/br_FR@euro
 #usr/share/i18n/locales/bs_BA
@@ -1019,8 +1054,10 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/locales/ca_ES@euro
 #usr/share/i18n/locales/ca_FR
 #usr/share/i18n/locales/ca_IT
+#usr/share/i18n/locales/crh_UA
 #usr/share/i18n/locales/cs_CZ
 #usr/share/i18n/locales/csb_PL
+#usr/share/i18n/locales/cv_RU
 #usr/share/i18n/locales/cy_GB
 #usr/share/i18n/locales/da_DK
 #usr/share/i18n/locales/de_AT
@@ -1032,10 +1069,12 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/locales/de_DE@euro
 #usr/share/i18n/locales/de_LU
 #usr/share/i18n/locales/de_LU@euro
+#usr/share/i18n/locales/dv_MV
 #usr/share/i18n/locales/dz_BT
 #usr/share/i18n/locales/el_CY
 #usr/share/i18n/locales/el_GR
 #usr/share/i18n/locales/el_GR@euro
+#usr/share/i18n/locales/en_AG
 #usr/share/i18n/locales/en_AU
 #usr/share/i18n/locales/en_BW
 #usr/share/i18n/locales/en_CA
@@ -1045,6 +1084,7 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/locales/en_IE
 #usr/share/i18n/locales/en_IE@euro
 #usr/share/i18n/locales/en_IN
+#usr/share/i18n/locales/en_NG
 #usr/share/i18n/locales/en_NZ
 #usr/share/i18n/locales/en_PH
 #usr/share/i18n/locales/en_SG
@@ -1078,6 +1118,7 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/locales/fa_IR
 #usr/share/i18n/locales/fi_FI
 #usr/share/i18n/locales/fi_FI@euro
+#usr/share/i18n/locales/fil_PH
 #usr/share/i18n/locales/fo_FO
 #usr/share/i18n/locales/fr_BE
 #usr/share/i18n/locales/fr_BE@euro
@@ -1087,6 +1128,8 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/locales/fr_FR@euro
 #usr/share/i18n/locales/fr_LU
 #usr/share/i18n/locales/fr_LU@euro
+#usr/share/i18n/locales/fur_IT
+#usr/share/i18n/locales/fy_DE
 #usr/share/i18n/locales/fy_NL
 #usr/share/i18n/locales/ga_IE
 #usr/share/i18n/locales/ga_IE@euro
@@ -1099,19 +1142,27 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/locales/gl_ES@euro
 #usr/share/i18n/locales/gu_IN
 #usr/share/i18n/locales/gv_GB
+#usr/share/i18n/locales/ha_NG
 #usr/share/i18n/locales/he_IL
 #usr/share/i18n/locales/hi_IN
+#usr/share/i18n/locales/hne_IN
 #usr/share/i18n/locales/hr_HR
 #usr/share/i18n/locales/hsb_DE
+#usr/share/i18n/locales/ht_HT
 #usr/share/i18n/locales/hu_HU
 #usr/share/i18n/locales/hy_AM
 #usr/share/i18n/locales/i18n
 #usr/share/i18n/locales/id_ID
+#usr/share/i18n/locales/ig_NG
+#usr/share/i18n/locales/ik_CA
 #usr/share/i18n/locales/is_IS
 #usr/share/i18n/locales/iso14651_t1
+#usr/share/i18n/locales/iso14651_t1_common
+#usr/share/i18n/locales/iso14651_t1_pinyin
 #usr/share/i18n/locales/it_CH
 #usr/share/i18n/locales/it_IT
 #usr/share/i18n/locales/it_IT@euro
+#usr/share/i18n/locales/iu_CA
 #usr/share/i18n/locales/iw_IL
 #usr/share/i18n/locales/ja_JP
 #usr/share/i18n/locales/ka_GE
@@ -1120,13 +1171,19 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/locales/km_KH
 #usr/share/i18n/locales/kn_IN
 #usr/share/i18n/locales/ko_KR
+#usr/share/i18n/locales/kok_IN
+#usr/share/i18n/locales/ks_IN
+#usr/share/i18n/locales/ks_IN@devanagari
 #usr/share/i18n/locales/ku_TR
 #usr/share/i18n/locales/kw_GB
 #usr/share/i18n/locales/ky_KG
 #usr/share/i18n/locales/lg_UG
+#usr/share/i18n/locales/li_BE
+#usr/share/i18n/locales/li_NL
 #usr/share/i18n/locales/lo_LA
 #usr/share/i18n/locales/lt_LT
 #usr/share/i18n/locales/lv_LV
+#usr/share/i18n/locales/mai_IN
 #usr/share/i18n/locales/mg_MG
 #usr/share/i18n/locales/mi_NZ
 #usr/share/i18n/locales/mk_MK
@@ -1135,13 +1192,19 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/locales/mr_IN
 #usr/share/i18n/locales/ms_MY
 #usr/share/i18n/locales/mt_MT
+#usr/share/i18n/locales/my_MM
+#usr/share/i18n/locales/nan_TW@latin
 #usr/share/i18n/locales/nb_NO
+#usr/share/i18n/locales/nds_DE
+#usr/share/i18n/locales/nds_NL
 #usr/share/i18n/locales/ne_NP
+#usr/share/i18n/locales/nl_AW
 #usr/share/i18n/locales/nl_BE
 #usr/share/i18n/locales/nl_BE@euro
 #usr/share/i18n/locales/nl_NL
 #usr/share/i18n/locales/nl_NL@euro
 #usr/share/i18n/locales/nn_NO
+#usr/share/i18n/locales/no_NO
 #usr/share/i18n/locales/nr_ZA
 #usr/share/i18n/locales/nso_ZA
 #usr/share/i18n/locales/oc_FR
@@ -1150,7 +1213,9 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/locales/or_IN
 #usr/share/i18n/locales/pa_IN
 #usr/share/i18n/locales/pa_PK
+#usr/share/i18n/locales/pap_AN
 #usr/share/i18n/locales/pl_PL
+#usr/share/i18n/locales/ps_AF
 #usr/share/i18n/locales/pt_BR
 #usr/share/i18n/locales/pt_PT
 #usr/share/i18n/locales/pt_PT@euro
@@ -1158,7 +1223,12 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/locales/ru_RU
 #usr/share/i18n/locales/ru_UA
 #usr/share/i18n/locales/rw_RW
+#usr/share/i18n/locales/sa_IN
+#usr/share/i18n/locales/sc_IT
+#usr/share/i18n/locales/sd_IN
+#usr/share/i18n/locales/sd_IN@devanagari
 #usr/share/i18n/locales/se_NO
+#usr/share/i18n/locales/shs_CA
 #usr/share/i18n/locales/si_LK
 #usr/share/i18n/locales/sid_ET
 #usr/share/i18n/locales/sk_SK
@@ -1168,8 +1238,10 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/locales/so_KE
 #usr/share/i18n/locales/so_SO
 #usr/share/i18n/locales/sq_AL
-#usr/share/i18n/locales/sr_CS
+#usr/share/i18n/locales/sq_MK
 #usr/share/i18n/locales/sr_ME
+#usr/share/i18n/locales/sr_RS
+#usr/share/i18n/locales/sr_RS@latin
 #usr/share/i18n/locales/ss_ZA
 #usr/share/i18n/locales/st_ZA
 #usr/share/i18n/locales/sv_FI
@@ -1182,6 +1254,7 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/locales/ti_ER
 #usr/share/i18n/locales/ti_ET
 #usr/share/i18n/locales/tig_ER
+#usr/share/i18n/locales/tk_TM
 #usr/share/i18n/locales/tl_PH
 #usr/share/i18n/locales/tn_ZA
 #usr/share/i18n/locales/tr_CY
@@ -1200,7 +1273,10 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/locales/translit_wide
 #usr/share/i18n/locales/ts_ZA
 #usr/share/i18n/locales/tt_RU
+#usr/share/i18n/locales/tt_RU@iqtelif
+#usr/share/i18n/locales/ug_CN
 #usr/share/i18n/locales/uk_UA
+#usr/share/i18n/locales/ur_IN
 #usr/share/i18n/locales/ur_PK
 #usr/share/i18n/locales/uz_UZ
 #usr/share/i18n/locales/uz_UZ@cyrillic
@@ -1209,16 +1285,34 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/locales/wa_BE
 #usr/share/i18n/locales/wa_BE@euro
 #usr/share/i18n/locales/wal_ET
+#usr/share/i18n/locales/wo_SN
 #usr/share/i18n/locales/xh_ZA
 #usr/share/i18n/locales/yi_US
+#usr/share/i18n/locales/yo_NG
 #usr/share/i18n/locales/zh_CN
 #usr/share/i18n/locales/zh_HK
 #usr/share/i18n/locales/zh_SG
 #usr/share/i18n/locales/zh_TW
 #usr/share/i18n/locales/zu_ZA
+#usr/share/info/dir
+#usr/share/info/libc.info
+#usr/share/info/libc.info-1
+#usr/share/info/libc.info-10
+#usr/share/info/libc.info-11
+#usr/share/info/libc.info-2
+#usr/share/info/libc.info-3
+#usr/share/info/libc.info-4
+#usr/share/info/libc.info-5
+#usr/share/info/libc.info-6
+#usr/share/info/libc.info-7
+#usr/share/info/libc.info-8
+#usr/share/info/libc.info-9
 #usr/share/locale/be
 #usr/share/locale/be/LC_MESSAGES
 #usr/share/locale/be/LC_MESSAGES/libc.mo
+#usr/share/locale/bg
+#usr/share/locale/bg/LC_MESSAGES
+#usr/share/locale/bg/LC_MESSAGES/libc.mo
 #usr/share/locale/ca
 #usr/share/locale/ca/LC_MESSAGES
 #usr/share/locale/ca/LC_MESSAGES/libc.mo
@@ -1255,6 +1349,9 @@ usr/lib/locale/locale-archive
 #usr/share/locale/hu
 #usr/share/locale/hu/LC_MESSAGES
 #usr/share/locale/hu/LC_MESSAGES/libc.mo
+#usr/share/locale/id
+#usr/share/locale/id/LC_MESSAGES
+#usr/share/locale/id/LC_MESSAGES/libc.mo
 #usr/share/locale/it
 #usr/share/locale/it/LC_MESSAGES
 #usr/share/locale/it/LC_MESSAGES/libc.mo
@@ -1265,6 +1362,9 @@ usr/lib/locale/locale-archive
 #usr/share/locale/ko/LC_MESSAGES
 #usr/share/locale/ko/LC_MESSAGES/libc.mo
 #usr/share/locale/locale.alias
+#usr/share/locale/lt
+#usr/share/locale/lt/LC_MESSAGES
+#usr/share/locale/lt/LC_MESSAGES/libc.mo
 #usr/share/locale/nb
 #usr/share/locale/nb/LC_MESSAGES
 #usr/share/locale/nb/LC_MESSAGES/libc.mo
@@ -1292,11 +1392,14 @@ usr/lib/locale/locale-archive
 #usr/share/locale/tr
 #usr/share/locale/tr/LC_MESSAGES
 #usr/share/locale/tr/LC_MESSAGES/libc.mo
+#usr/share/locale/vi
+#usr/share/locale/vi/LC_MESSAGES
+#usr/share/locale/vi/LC_MESSAGES/libc.mo
 #usr/share/locale/zh_CN
 #usr/share/locale/zh_CN/LC_MESSAGES
 #usr/share/locale/zh_CN/LC_MESSAGES/libc.mo
 #usr/share/locale/zh_TW
 #usr/share/locale/zh_TW/LC_MESSAGES
 #usr/share/locale/zh_TW/LC_MESSAGES/libc.mo
-#usr/share/zoneinfo/iso3166.tab
-#usr/share/zoneinfo/zone.tab
+#var/cache/ldconfig
+#var/cache/ldconfig/aux-cache
index ccb7bfb33892b6452fc92150cc1870f08e8d8d61..89e8b2275dd917ae566772c512244133b55420ec 100644 (file)
@@ -36,7 +36,6 @@ etc/rc.d/init.d/halt
 #etc/rc.d/init.d/hostapd
 #etc/rc.d/init.d/icecream
 #etc/rc.d/init.d/imspector
-#etc/rc.d/init.d/ipfireseeder
 etc/rc.d/init.d/ipsec
 #etc/rc.d/init.d/lcd4linux
 #etc/rc.d/init.d/lcr
@@ -141,6 +140,7 @@ etc/rc.d/rc0.d/K28apache
 etc/rc.d/rc0.d/K30sshd
 #etc/rc.d/rc0.d/K34client175
 etc/rc.d/rc0.d/K45random
+etc/rc.d/rc0.d/K47setclock
 etc/rc.d/rc0.d/K49cyrus-sasl
 etc/rc.d/rc0.d/K78snort
 etc/rc.d/rc0.d/K79leds
@@ -186,6 +186,7 @@ etc/rc.d/rc6.d/K28apache
 etc/rc.d/rc6.d/K30sshd
 #etc/rc.d/rc6.d/K34client175
 etc/rc.d/rc6.d/K45random
+etc/rc.d/rc6.d/K47setclock
 etc/rc.d/rc6.d/K49cyrus-sasl
 etc/rc.d/rc6.d/K78snort
 etc/rc.d/rc6.d/K79leds
diff --git a/config/rootfiles/common/armv5tel/installer b/config/rootfiles/common/armv5tel/installer
new file mode 100644 (file)
index 0000000..ef5e901
--- /dev/null
@@ -0,0 +1,3 @@
+#etc/system-release
+#opt/pakfire/db/core/mine
+#var/ipfire/firebuild
diff --git a/config/rootfiles/common/armv5tel/linux-headers b/config/rootfiles/common/armv5tel/linux-headers
new file mode 100644 (file)
index 0000000..3b8dd3a
--- /dev/null
@@ -0,0 +1,678 @@
+#usr/include/asm
+#usr/include/asm-generic
+#usr/include/asm-generic/auxvec.h
+#usr/include/asm-generic/bitsperlong.h
+#usr/include/asm-generic/errno-base.h
+#usr/include/asm-generic/errno.h
+#usr/include/asm-generic/fcntl.h
+#usr/include/asm-generic/int-l64.h
+#usr/include/asm-generic/int-ll64.h
+#usr/include/asm-generic/ioctl.h
+#usr/include/asm-generic/ioctls.h
+#usr/include/asm-generic/ipcbuf.h
+#usr/include/asm-generic/mman-common.h
+#usr/include/asm-generic/mman.h
+#usr/include/asm-generic/msgbuf.h
+#usr/include/asm-generic/param.h
+#usr/include/asm-generic/poll.h
+#usr/include/asm-generic/posix_types.h
+#usr/include/asm-generic/resource.h
+#usr/include/asm-generic/sembuf.h
+#usr/include/asm-generic/setup.h
+#usr/include/asm-generic/shmbuf.h
+#usr/include/asm-generic/shmparam.h
+#usr/include/asm-generic/siginfo.h
+#usr/include/asm-generic/signal-defs.h
+#usr/include/asm-generic/signal.h
+#usr/include/asm-generic/socket.h
+#usr/include/asm-generic/sockios.h
+#usr/include/asm-generic/stat.h
+#usr/include/asm-generic/statfs.h
+#usr/include/asm-generic/swab.h
+#usr/include/asm-generic/termbits.h
+#usr/include/asm-generic/termios.h
+#usr/include/asm-generic/types.h
+#usr/include/asm-generic/ucontext.h
+#usr/include/asm-generic/unistd.h
+#usr/include/asm/a.out.h
+#usr/include/asm/auxvec.h
+#usr/include/asm/bitsperlong.h
+#usr/include/asm/byteorder.h
+#usr/include/asm/errno.h
+#usr/include/asm/fcntl.h
+#usr/include/asm/hwcap.h
+#usr/include/asm/ioctl.h
+#usr/include/asm/ioctls.h
+#usr/include/asm/ipcbuf.h
+#usr/include/asm/mman.h
+#usr/include/asm/msgbuf.h
+#usr/include/asm/param.h
+#usr/include/asm/poll.h
+#usr/include/asm/posix_types.h
+#usr/include/asm/ptrace.h
+#usr/include/asm/resource.h
+#usr/include/asm/sembuf.h
+#usr/include/asm/setup.h
+#usr/include/asm/shmbuf.h
+#usr/include/asm/sigcontext.h
+#usr/include/asm/siginfo.h
+#usr/include/asm/signal.h
+#usr/include/asm/socket.h
+#usr/include/asm/sockios.h
+#usr/include/asm/stat.h
+#usr/include/asm/statfs.h
+#usr/include/asm/swab.h
+#usr/include/asm/termbits.h
+#usr/include/asm/termios.h
+#usr/include/asm/types.h
+#usr/include/asm/unistd.h
+#usr/include/drm
+#usr/include/drm/drm.h
+#usr/include/drm/drm_mode.h
+#usr/include/drm/drm_sarea.h
+#usr/include/drm/i810_drm.h
+#usr/include/drm/i915_drm.h
+#usr/include/drm/mga_drm.h
+#usr/include/drm/nouveau_drm.h
+#usr/include/drm/r128_drm.h
+#usr/include/drm/radeon_drm.h
+#usr/include/drm/savage_drm.h
+#usr/include/drm/sis_drm.h
+#usr/include/drm/via_drm.h
+#usr/include/drm/vmwgfx_drm.h
+#usr/include/linux
+#usr/include/linux/a.out.h
+#usr/include/linux/acct.h
+#usr/include/linux/adb.h
+#usr/include/linux/adfs_fs.h
+#usr/include/linux/affs_hardblocks.h
+#usr/include/linux/agpgart.h
+#usr/include/linux/aio_abi.h
+#usr/include/linux/apm_bios.h
+#usr/include/linux/arcfb.h
+#usr/include/linux/atalk.h
+#usr/include/linux/atm.h
+#usr/include/linux/atm_eni.h
+#usr/include/linux/atm_he.h
+#usr/include/linux/atm_idt77105.h
+#usr/include/linux/atm_nicstar.h
+#usr/include/linux/atm_tcp.h
+#usr/include/linux/atm_zatm.h
+#usr/include/linux/atmapi.h
+#usr/include/linux/atmarp.h
+#usr/include/linux/atmbr2684.h
+#usr/include/linux/atmclip.h
+#usr/include/linux/atmdev.h
+#usr/include/linux/atmioc.h
+#usr/include/linux/atmlec.h
+#usr/include/linux/atmmpc.h
+#usr/include/linux/atmppp.h
+#usr/include/linux/atmsap.h
+#usr/include/linux/atmsvc.h
+#usr/include/linux/audit.h
+#usr/include/linux/auto_fs.h
+#usr/include/linux/auto_fs4.h
+#usr/include/linux/auxvec.h
+#usr/include/linux/ax25.h
+#usr/include/linux/b1lli.h
+#usr/include/linux/baycom.h
+#usr/include/linux/bfs_fs.h
+#usr/include/linux/binfmts.h
+#usr/include/linux/blk_types.h
+#usr/include/linux/blkpg.h
+#usr/include/linux/blktrace_api.h
+#usr/include/linux/bpqether.h
+#usr/include/linux/bsg.h
+#usr/include/linux/byteorder
+#usr/include/linux/byteorder/big_endian.h
+#usr/include/linux/byteorder/little_endian.h
+#usr/include/linux/caif
+#usr/include/linux/caif/caif_socket.h
+#usr/include/linux/caif/if_caif.h
+#usr/include/linux/can
+#usr/include/linux/can.h
+#usr/include/linux/can/bcm.h
+#usr/include/linux/can/error.h
+#usr/include/linux/can/gw.h
+#usr/include/linux/can/netlink.h
+#usr/include/linux/can/raw.h
+#usr/include/linux/capability.h
+#usr/include/linux/capi.h
+#usr/include/linux/cciss_defs.h
+#usr/include/linux/cciss_ioctl.h
+#usr/include/linux/cdk.h
+#usr/include/linux/cdrom.h
+#usr/include/linux/cgroupstats.h
+#usr/include/linux/chio.h
+#usr/include/linux/cm4000_cs.h
+#usr/include/linux/cn_proc.h
+#usr/include/linux/coda.h
+#usr/include/linux/coda_psdev.h
+#usr/include/linux/coff.h
+#usr/include/linux/comstats.h
+#usr/include/linux/connector.h
+#usr/include/linux/const.h
+#usr/include/linux/cramfs_fs.h
+#usr/include/linux/cuda.h
+#usr/include/linux/cyclades.h
+#usr/include/linux/cycx_cfm.h
+#usr/include/linux/dcbnl.h
+#usr/include/linux/dccp.h
+#usr/include/linux/dlm.h
+#usr/include/linux/dlm_device.h
+#usr/include/linux/dlm_netlink.h
+#usr/include/linux/dlm_plock.h
+#usr/include/linux/dlmconstants.h
+#usr/include/linux/dm-ioctl.h
+#usr/include/linux/dm-log-userspace.h
+#usr/include/linux/dn.h
+#usr/include/linux/dqblk_xfs.h
+#usr/include/linux/dvb
+#usr/include/linux/dvb/audio.h
+#usr/include/linux/dvb/ca.h
+#usr/include/linux/dvb/dmx.h
+#usr/include/linux/dvb/frontend.h
+#usr/include/linux/dvb/net.h
+#usr/include/linux/dvb/osd.h
+#usr/include/linux/dvb/version.h
+#usr/include/linux/dvb/video.h
+#usr/include/linux/edd.h
+#usr/include/linux/efs_fs_sb.h
+#usr/include/linux/elf-em.h
+#usr/include/linux/elf-fdpic.h
+#usr/include/linux/elf.h
+#usr/include/linux/elfcore.h
+#usr/include/linux/errno.h
+#usr/include/linux/errqueue.h
+#usr/include/linux/ethtool.h
+#usr/include/linux/eventpoll.h
+#usr/include/linux/ext2_fs.h
+#usr/include/linux/fadvise.h
+#usr/include/linux/falloc.h
+#usr/include/linux/fanotify.h
+#usr/include/linux/fb.h
+#usr/include/linux/fcntl.h
+#usr/include/linux/fd.h
+#usr/include/linux/fdreg.h
+#usr/include/linux/fib_rules.h
+#usr/include/linux/fiemap.h
+#usr/include/linux/filter.h
+#usr/include/linux/firewire-cdev.h
+#usr/include/linux/firewire-constants.h
+#usr/include/linux/flat.h
+#usr/include/linux/fs.h
+#usr/include/linux/fsl_hypervisor.h
+#usr/include/linux/fuse.h
+#usr/include/linux/futex.h
+#usr/include/linux/gameport.h
+#usr/include/linux/gen_stats.h
+#usr/include/linux/generic_serial.h
+#usr/include/linux/genetlink.h
+#usr/include/linux/gfs2_ondisk.h
+#usr/include/linux/gigaset_dev.h
+#usr/include/linux/hdlc
+#usr/include/linux/hdlc.h
+#usr/include/linux/hdlc/ioctl.h
+#usr/include/linux/hdlcdrv.h
+#usr/include/linux/hdreg.h
+#usr/include/linux/hid.h
+#usr/include/linux/hiddev.h
+#usr/include/linux/hidraw.h
+#usr/include/linux/hpet.h
+#usr/include/linux/hysdn_if.h
+#usr/include/linux/i2c-dev.h
+#usr/include/linux/i2c.h
+#usr/include/linux/i2o-dev.h
+#usr/include/linux/i8k.h
+#usr/include/linux/icmp.h
+#usr/include/linux/icmpv6.h
+#usr/include/linux/if.h
+#usr/include/linux/if_addr.h
+#usr/include/linux/if_addrlabel.h
+#usr/include/linux/if_alg.h
+#usr/include/linux/if_arcnet.h
+#usr/include/linux/if_arp.h
+#usr/include/linux/if_bonding.h
+#usr/include/linux/if_bridge.h
+#usr/include/linux/if_cablemodem.h
+#usr/include/linux/if_ec.h
+#usr/include/linux/if_eql.h
+#usr/include/linux/if_ether.h
+#usr/include/linux/if_fc.h
+#usr/include/linux/if_fddi.h
+#usr/include/linux/if_frad.h
+#usr/include/linux/if_hippi.h
+#usr/include/linux/if_infiniband.h
+#usr/include/linux/if_link.h
+#usr/include/linux/if_ltalk.h
+#usr/include/linux/if_packet.h
+#usr/include/linux/if_phonet.h
+#usr/include/linux/if_plip.h
+#usr/include/linux/if_ppp.h
+#usr/include/linux/if_pppol2tp.h
+#usr/include/linux/if_pppox.h
+#usr/include/linux/if_slip.h
+#usr/include/linux/if_strip.h
+#usr/include/linux/if_tr.h
+#usr/include/linux/if_tun.h
+#usr/include/linux/if_tunnel.h
+#usr/include/linux/if_vlan.h
+#usr/include/linux/if_x25.h
+#usr/include/linux/igmp.h
+#usr/include/linux/in.h
+#usr/include/linux/in6.h
+#usr/include/linux/in_route.h
+#usr/include/linux/inet_diag.h
+#usr/include/linux/inotify.h
+#usr/include/linux/input.h
+#usr/include/linux/ioctl.h
+#usr/include/linux/ip.h
+#usr/include/linux/ip6_tunnel.h
+#usr/include/linux/ip_vs.h
+#usr/include/linux/ipc.h
+#usr/include/linux/ipmi.h
+#usr/include/linux/ipmi_msgdefs.h
+#usr/include/linux/ipsec.h
+#usr/include/linux/ipv6.h
+#usr/include/linux/ipv6_route.h
+#usr/include/linux/ipx.h
+#usr/include/linux/irda.h
+#usr/include/linux/irqnr.h
+#usr/include/linux/isdn
+#usr/include/linux/isdn.h
+#usr/include/linux/isdn/capicmd.h
+#usr/include/linux/isdn_divertif.h
+#usr/include/linux/isdn_ppp.h
+#usr/include/linux/isdnif.h
+#usr/include/linux/iso_fs.h
+#usr/include/linux/ivtv.h
+#usr/include/linux/ivtvfb.h
+#usr/include/linux/ixjuser.h
+#usr/include/linux/jffs2.h
+#usr/include/linux/joystick.h
+#usr/include/linux/kd.h
+#usr/include/linux/kdev_t.h
+#usr/include/linux/kernel-page-flags.h
+#usr/include/linux/kernel.h
+#usr/include/linux/kernelcapi.h
+#usr/include/linux/keyboard.h
+#usr/include/linux/keyctl.h
+#usr/include/linux/l2tp.h
+#usr/include/linux/limits.h
+#usr/include/linux/llc.h
+#usr/include/linux/loop.h
+#usr/include/linux/lp.h
+#usr/include/linux/magic.h
+#usr/include/linux/major.h
+#usr/include/linux/map_to_7segment.h
+#usr/include/linux/matroxfb.h
+#usr/include/linux/media.h
+#usr/include/linux/mempolicy.h
+#usr/include/linux/meye.h
+#usr/include/linux/mii.h
+#usr/include/linux/minix_fs.h
+#usr/include/linux/mman.h
+#usr/include/linux/mmc
+#usr/include/linux/mmc/ioctl.h
+#usr/include/linux/mmtimer.h
+#usr/include/linux/mqueue.h
+#usr/include/linux/mroute.h
+#usr/include/linux/mroute6.h
+#usr/include/linux/msdos_fs.h
+#usr/include/linux/msg.h
+#usr/include/linux/mtio.h
+#usr/include/linux/n_r3964.h
+#usr/include/linux/nbd.h
+#usr/include/linux/ncp.h
+#usr/include/linux/ncp_fs.h
+#usr/include/linux/ncp_mount.h
+#usr/include/linux/ncp_no.h
+#usr/include/linux/neighbour.h
+#usr/include/linux/net.h
+#usr/include/linux/net_dropmon.h
+#usr/include/linux/net_tstamp.h
+#usr/include/linux/netdevice.h
+#usr/include/linux/netfilter
+#usr/include/linux/netfilter.h
+#usr/include/linux/netfilter/ipset
+#usr/include/linux/netfilter/ipset/ip_set.h
+#usr/include/linux/netfilter/ipset/ip_set_bitmap.h
+#usr/include/linux/netfilter/ipset/ip_set_hash.h
+#usr/include/linux/netfilter/ipset/ip_set_list.h
+#usr/include/linux/netfilter/nf_conntrack_common.h
+#usr/include/linux/netfilter/nf_conntrack_ftp.h
+#usr/include/linux/netfilter/nf_conntrack_sctp.h
+#usr/include/linux/netfilter/nf_conntrack_tcp.h
+#usr/include/linux/netfilter/nf_conntrack_tuple_common.h
+#usr/include/linux/netfilter/nfnetlink.h
+#usr/include/linux/netfilter/nfnetlink_compat.h
+#usr/include/linux/netfilter/nfnetlink_conntrack.h
+#usr/include/linux/netfilter/nfnetlink_log.h
+#usr/include/linux/netfilter/nfnetlink_queue.h
+#usr/include/linux/netfilter/x_tables.h
+#usr/include/linux/netfilter/xt_AUDIT.h
+#usr/include/linux/netfilter/xt_CHECKSUM.h
+#usr/include/linux/netfilter/xt_CLASSIFY.h
+#usr/include/linux/netfilter/xt_CONNMARK.h
+#usr/include/linux/netfilter/xt_CONNSECMARK.h
+#usr/include/linux/netfilter/xt_CT.h
+#usr/include/linux/netfilter/xt_DSCP.h
+#usr/include/linux/netfilter/xt_IDLETIMER.h
+#usr/include/linux/netfilter/xt_LED.h
+#usr/include/linux/netfilter/xt_MARK.h
+#usr/include/linux/netfilter/xt_NFLOG.h
+#usr/include/linux/netfilter/xt_NFQUEUE.h
+#usr/include/linux/netfilter/xt_RATEEST.h
+#usr/include/linux/netfilter/xt_SECMARK.h
+#usr/include/linux/netfilter/xt_TCPMSS.h
+#usr/include/linux/netfilter/xt_TCPOPTSTRIP.h
+#usr/include/linux/netfilter/xt_TEE.h
+#usr/include/linux/netfilter/xt_TPROXY.h
+#usr/include/linux/netfilter/xt_addrtype.h
+#usr/include/linux/netfilter/xt_cluster.h
+#usr/include/linux/netfilter/xt_comment.h
+#usr/include/linux/netfilter/xt_connbytes.h
+#usr/include/linux/netfilter/xt_connlimit.h
+#usr/include/linux/netfilter/xt_connmark.h
+#usr/include/linux/netfilter/xt_conntrack.h
+#usr/include/linux/netfilter/xt_cpu.h
+#usr/include/linux/netfilter/xt_dccp.h
+#usr/include/linux/netfilter/xt_devgroup.h
+#usr/include/linux/netfilter/xt_dscp.h
+#usr/include/linux/netfilter/xt_esp.h
+#usr/include/linux/netfilter/xt_hashlimit.h
+#usr/include/linux/netfilter/xt_helper.h
+#usr/include/linux/netfilter/xt_iprange.h
+#usr/include/linux/netfilter/xt_ipvs.h
+#usr/include/linux/netfilter/xt_length.h
+#usr/include/linux/netfilter/xt_limit.h
+#usr/include/linux/netfilter/xt_mac.h
+#usr/include/linux/netfilter/xt_mark.h
+#usr/include/linux/netfilter/xt_multiport.h
+#usr/include/linux/netfilter/xt_osf.h
+#usr/include/linux/netfilter/xt_owner.h
+#usr/include/linux/netfilter/xt_physdev.h
+#usr/include/linux/netfilter/xt_pkttype.h
+#usr/include/linux/netfilter/xt_policy.h
+#usr/include/linux/netfilter/xt_quota.h
+#usr/include/linux/netfilter/xt_rateest.h
+#usr/include/linux/netfilter/xt_realm.h
+#usr/include/linux/netfilter/xt_recent.h
+#usr/include/linux/netfilter/xt_sctp.h
+#usr/include/linux/netfilter/xt_set.h
+#usr/include/linux/netfilter/xt_socket.h
+#usr/include/linux/netfilter/xt_state.h
+#usr/include/linux/netfilter/xt_statistic.h
+#usr/include/linux/netfilter/xt_string.h
+#usr/include/linux/netfilter/xt_tcpmss.h
+#usr/include/linux/netfilter/xt_tcpudp.h
+#usr/include/linux/netfilter/xt_time.h
+#usr/include/linux/netfilter/xt_u32.h
+#usr/include/linux/netfilter_arp
+#usr/include/linux/netfilter_arp.h
+#usr/include/linux/netfilter_arp/arp_tables.h
+#usr/include/linux/netfilter_arp/arpt_mangle.h
+#usr/include/linux/netfilter_bridge
+#usr/include/linux/netfilter_bridge.h
+#usr/include/linux/netfilter_bridge/ebt_802_3.h
+#usr/include/linux/netfilter_bridge/ebt_among.h
+#usr/include/linux/netfilter_bridge/ebt_arp.h
+#usr/include/linux/netfilter_bridge/ebt_arpreply.h
+#usr/include/linux/netfilter_bridge/ebt_ip.h
+#usr/include/linux/netfilter_bridge/ebt_ip6.h
+#usr/include/linux/netfilter_bridge/ebt_limit.h
+#usr/include/linux/netfilter_bridge/ebt_log.h
+#usr/include/linux/netfilter_bridge/ebt_mark_m.h
+#usr/include/linux/netfilter_bridge/ebt_mark_t.h
+#usr/include/linux/netfilter_bridge/ebt_nat.h
+#usr/include/linux/netfilter_bridge/ebt_nflog.h
+#usr/include/linux/netfilter_bridge/ebt_pkttype.h
+#usr/include/linux/netfilter_bridge/ebt_redirect.h
+#usr/include/linux/netfilter_bridge/ebt_stp.h
+#usr/include/linux/netfilter_bridge/ebt_ulog.h
+#usr/include/linux/netfilter_bridge/ebt_vlan.h
+#usr/include/linux/netfilter_bridge/ebtables.h
+#usr/include/linux/netfilter_decnet.h
+#usr/include/linux/netfilter_ipv4
+#usr/include/linux/netfilter_ipv4.h
+#usr/include/linux/netfilter_ipv4/ip_queue.h
+#usr/include/linux/netfilter_ipv4/ip_tables.h
+#usr/include/linux/netfilter_ipv4/ipt_CLUSTERIP.h
+#usr/include/linux/netfilter_ipv4/ipt_ECN.h
+#usr/include/linux/netfilter_ipv4/ipt_LOG.h
+#usr/include/linux/netfilter_ipv4/ipt_REJECT.h
+#usr/include/linux/netfilter_ipv4/ipt_SAME.h
+#usr/include/linux/netfilter_ipv4/ipt_TTL.h
+#usr/include/linux/netfilter_ipv4/ipt_ULOG.h
+#usr/include/linux/netfilter_ipv4/ipt_addrtype.h
+#usr/include/linux/netfilter_ipv4/ipt_ah.h
+#usr/include/linux/netfilter_ipv4/ipt_ecn.h
+#usr/include/linux/netfilter_ipv4/ipt_realm.h
+#usr/include/linux/netfilter_ipv4/ipt_ttl.h
+#usr/include/linux/netfilter_ipv4/nf_nat.h
+#usr/include/linux/netfilter_ipv6
+#usr/include/linux/netfilter_ipv6.h
+#usr/include/linux/netfilter_ipv6/ip6_tables.h
+#usr/include/linux/netfilter_ipv6/ip6t_HL.h
+#usr/include/linux/netfilter_ipv6/ip6t_LOG.h
+#usr/include/linux/netfilter_ipv6/ip6t_REJECT.h
+#usr/include/linux/netfilter_ipv6/ip6t_ah.h
+#usr/include/linux/netfilter_ipv6/ip6t_frag.h
+#usr/include/linux/netfilter_ipv6/ip6t_hl.h
+#usr/include/linux/netfilter_ipv6/ip6t_ipv6header.h
+#usr/include/linux/netfilter_ipv6/ip6t_mh.h
+#usr/include/linux/netfilter_ipv6/ip6t_opts.h
+#usr/include/linux/netfilter_ipv6/ip6t_rt.h
+#usr/include/linux/netlink.h
+#usr/include/linux/netrom.h
+#usr/include/linux/nfc.h
+#usr/include/linux/nfs.h
+#usr/include/linux/nfs2.h
+#usr/include/linux/nfs3.h
+#usr/include/linux/nfs4.h
+#usr/include/linux/nfs4_mount.h
+#usr/include/linux/nfs_fs.h
+#usr/include/linux/nfs_idmap.h
+#usr/include/linux/nfs_mount.h
+#usr/include/linux/nfsacl.h
+#usr/include/linux/nfsd
+#usr/include/linux/nfsd/debug.h
+#usr/include/linux/nfsd/export.h
+#usr/include/linux/nfsd/nfsfh.h
+#usr/include/linux/nfsd/stats.h
+#usr/include/linux/nl80211.h
+#usr/include/linux/nubus.h
+#usr/include/linux/nvram.h
+#usr/include/linux/omap3isp.h
+#usr/include/linux/omapfb.h
+#usr/include/linux/oom.h
+#usr/include/linux/param.h
+#usr/include/linux/parport.h
+#usr/include/linux/patchkey.h
+#usr/include/linux/pci.h
+#usr/include/linux/pci_regs.h
+#usr/include/linux/perf_event.h
+#usr/include/linux/personality.h
+#usr/include/linux/pfkeyv2.h
+#usr/include/linux/pg.h
+#usr/include/linux/phantom.h
+#usr/include/linux/phonet.h
+#usr/include/linux/pkt_cls.h
+#usr/include/linux/pkt_sched.h
+#usr/include/linux/pktcdvd.h
+#usr/include/linux/pmu.h
+#usr/include/linux/poll.h
+#usr/include/linux/posix_types.h
+#usr/include/linux/ppdev.h
+#usr/include/linux/ppp-comp.h
+#usr/include/linux/ppp_defs.h
+#usr/include/linux/pps.h
+#usr/include/linux/prctl.h
+#usr/include/linux/ptp_clock.h
+#usr/include/linux/ptrace.h
+#usr/include/linux/qnx4_fs.h
+#usr/include/linux/qnxtypes.h
+#usr/include/linux/quota.h
+#usr/include/linux/radeonfb.h
+#usr/include/linux/raid
+#usr/include/linux/raid/md_p.h
+#usr/include/linux/raid/md_u.h
+#usr/include/linux/random.h
+#usr/include/linux/raw.h
+#usr/include/linux/rds.h
+#usr/include/linux/reboot.h
+#usr/include/linux/reiserfs_fs.h
+#usr/include/linux/reiserfs_xattr.h
+#usr/include/linux/resource.h
+#usr/include/linux/rfkill.h
+#usr/include/linux/romfs_fs.h
+#usr/include/linux/rose.h
+#usr/include/linux/route.h
+#usr/include/linux/rtc.h
+#usr/include/linux/rtnetlink.h
+#usr/include/linux/scc.h
+#usr/include/linux/sched.h
+#usr/include/linux/screen_info.h
+#usr/include/linux/sdla.h
+#usr/include/linux/securebits.h
+#usr/include/linux/selinux_netlink.h
+#usr/include/linux/sem.h
+#usr/include/linux/serial.h
+#usr/include/linux/serial_core.h
+#usr/include/linux/serial_reg.h
+#usr/include/linux/serio.h
+#usr/include/linux/shm.h
+#usr/include/linux/signal.h
+#usr/include/linux/signalfd.h
+#usr/include/linux/snmp.h
+#usr/include/linux/socket.h
+#usr/include/linux/sockios.h
+#usr/include/linux/som.h
+#usr/include/linux/sonet.h
+#usr/include/linux/sonypi.h
+#usr/include/linux/sound.h
+#usr/include/linux/soundcard.h
+#usr/include/linux/spi
+#usr/include/linux/spi/spidev.h
+#usr/include/linux/stat.h
+#usr/include/linux/stddef.h
+#usr/include/linux/string.h
+#usr/include/linux/sunrpc
+#usr/include/linux/sunrpc/debug.h
+#usr/include/linux/suspend_ioctls.h
+#usr/include/linux/swab.h
+#usr/include/linux/synclink.h
+#usr/include/linux/sysctl.h
+#usr/include/linux/taskstats.h
+#usr/include/linux/tc_act
+#usr/include/linux/tc_act/tc_csum.h
+#usr/include/linux/tc_act/tc_gact.h
+#usr/include/linux/tc_act/tc_ipt.h
+#usr/include/linux/tc_act/tc_mirred.h
+#usr/include/linux/tc_act/tc_nat.h
+#usr/include/linux/tc_act/tc_pedit.h
+#usr/include/linux/tc_act/tc_skbedit.h
+#usr/include/linux/tc_ematch
+#usr/include/linux/tc_ematch/tc_em_cmp.h
+#usr/include/linux/tc_ematch/tc_em_meta.h
+#usr/include/linux/tc_ematch/tc_em_nbyte.h
+#usr/include/linux/tc_ematch/tc_em_text.h
+#usr/include/linux/tcp.h
+#usr/include/linux/telephony.h
+#usr/include/linux/termios.h
+#usr/include/linux/time.h
+#usr/include/linux/times.h
+#usr/include/linux/timex.h
+#usr/include/linux/tiocl.h
+#usr/include/linux/tipc.h
+#usr/include/linux/tipc_config.h
+#usr/include/linux/toshiba.h
+#usr/include/linux/tty.h
+#usr/include/linux/types.h
+#usr/include/linux/udf_fs_i.h
+#usr/include/linux/udp.h
+#usr/include/linux/uinput.h
+#usr/include/linux/uio.h
+#usr/include/linux/ultrasound.h
+#usr/include/linux/un.h
+#usr/include/linux/unistd.h
+#usr/include/linux/usb
+#usr/include/linux/usb/audio.h
+#usr/include/linux/usb/cdc.h
+#usr/include/linux/usb/ch11.h
+#usr/include/linux/usb/ch9.h
+#usr/include/linux/usb/functionfs.h
+#usr/include/linux/usb/g_printer.h
+#usr/include/linux/usb/gadgetfs.h
+#usr/include/linux/usb/midi.h
+#usr/include/linux/usb/tmc.h
+#usr/include/linux/usb/video.h
+#usr/include/linux/usbdevice_fs.h
+#usr/include/linux/utime.h
+#usr/include/linux/utsname.h
+#usr/include/linux/uvcvideo.h
+#usr/include/linux/v4l2-mediabus.h
+#usr/include/linux/v4l2-subdev.h
+#usr/include/linux/version.h
+#usr/include/linux/veth.h
+#usr/include/linux/vhost.h
+#usr/include/linux/videodev2.h
+#usr/include/linux/virtio_9p.h
+#usr/include/linux/virtio_balloon.h
+#usr/include/linux/virtio_blk.h
+#usr/include/linux/virtio_config.h
+#usr/include/linux/virtio_console.h
+#usr/include/linux/virtio_ids.h
+#usr/include/linux/virtio_net.h
+#usr/include/linux/virtio_pci.h
+#usr/include/linux/virtio_ring.h
+#usr/include/linux/virtio_rng.h
+#usr/include/linux/vt.h
+#usr/include/linux/wait.h
+#usr/include/linux/wanrouter.h
+#usr/include/linux/watchdog.h
+#usr/include/linux/wimax
+#usr/include/linux/wimax.h
+#usr/include/linux/wimax/i2400m.h
+#usr/include/linux/wireless.h
+#usr/include/linux/x25.h
+#usr/include/linux/xattr.h
+#usr/include/linux/xfrm.h
+#usr/include/mtd
+#usr/include/mtd/inftl-user.h
+#usr/include/mtd/mtd-abi.h
+#usr/include/mtd/mtd-user.h
+#usr/include/mtd/nftl-user.h
+#usr/include/mtd/ubi-user.h
+#usr/include/rdma
+#usr/include/rdma/ib_user_cm.h
+#usr/include/rdma/ib_user_mad.h
+#usr/include/rdma/ib_user_sa.h
+#usr/include/rdma/ib_user_verbs.h
+#usr/include/rdma/rdma_netlink.h
+#usr/include/rdma/rdma_user_cm.h
+#usr/include/scsi
+#usr/include/scsi/fc
+#usr/include/scsi/fc/fc_els.h
+#usr/include/scsi/fc/fc_fs.h
+#usr/include/scsi/fc/fc_gs.h
+#usr/include/scsi/fc/fc_ns.h
+#usr/include/scsi/scsi_bsg_fc.h
+#usr/include/scsi/scsi_netlink.h
+#usr/include/scsi/scsi_netlink_fc.h
+#usr/include/sound
+#usr/include/sound/asequencer.h
+#usr/include/sound/asound.h
+#usr/include/sound/asound_fm.h
+#usr/include/sound/emu10k1.h
+#usr/include/sound/hdsp.h
+#usr/include/sound/hdspm.h
+#usr/include/sound/sb16_csp.h
+#usr/include/sound/sfnt_info.h
+#usr/include/video
+#usr/include/video/edid.h
+#usr/include/video/sisfb.h
+#usr/include/video/uvesafb.h
+#usr/include/xen
+#usr/include/xen/evtchn.h
+#usr/include/xen/privcmd.h
index 3cfb393d315c260c221225bd60d6750a94616574..c24aebeb272f321084bafcfc42c4b5fd355e6e3b 100644 (file)
-boot/uInit-ipfire-kirkwood
-boot/uImage-ipfire-kirkwood
 boot/System.map-KVER-ipfire-kirkwood
+#boot/System.map-ipfire-kirkwood
 boot/config-KVER-ipfire-kirkwood
+boot/uImage-ipfire-kirkwood
+boot/vmlinuz-KVER-ipfire-kirkwood
+etc/modprobe.d/framebuffer
+etc/modprobe.d/ipv6
+etc/modprobe.d/isdn
 lib/modules/KVER-ipfire-kirkwood
+#lib/modules/KVER-ipfire-kirkwood/build
+#lib/modules/KVER-ipfire-kirkwood/kernel
+#lib/modules/KVER-ipfire-kirkwood/kernel/crypto
+#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/aes_generic.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/af_alg.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/algif_hash.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/algif_skcipher.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/ansi_cprng.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/anubis.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/arc4.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/async_tx
+#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/async_tx/async_memcpy.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/async_tx/async_pq.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/async_tx/async_raid6_recov.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/async_tx/async_tx.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/async_tx/async_xor.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/async_tx/raid6test.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/authenc.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/authencesn.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/blowfish_common.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/blowfish_generic.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/camellia.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/cast5.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/cast6.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/cbc.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/ccm.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/crc32c.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/cryptd.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/crypto_user.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/ctr.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/cts.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/des_generic.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/ecb.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/fcrypt.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/gcm.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/gf128mul.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/ghash-generic.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/khazad.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/lrw.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/lzo.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/md4.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/md5.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/michael_mic.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/pcbc.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/rmd128.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/rmd160.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/rmd256.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/rmd320.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/salsa20_generic.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/seed.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/seqiv.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/serpent.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/sha1_generic.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/sha256_generic.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/sha512_generic.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/tea.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/tgr192.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/twofish_common.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/twofish_generic.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/vmac.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/wp512.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/xcbc.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/xor.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/xts.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/zlib.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/acard-ahci.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/ahci.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/ahci_platform.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/ata_generic.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/ata_piix.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/libahci.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/libata.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_ali.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_amd.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_arasan_cf.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_artop.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_atiixp.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_atp867x.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_cmd640.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_cmd64x.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_cs5520.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_cs5530.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_cs5536.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_cypress.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_efar.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_hpt366.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_hpt37x.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_hpt3x2n.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_hpt3x3.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_it8213.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_it821x.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_jmicron.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_legacy.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_marvell.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_mpiix.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_netcell.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_ninja32.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_ns87410.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_ns87415.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_oldpiix.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_opti.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_optidma.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_pcmcia.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_pdc2027x.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_pdc202xx_old.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_piccolo.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_radisys.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_rdc.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_rz1000.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_sc1200.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_sch.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_serverworks.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_sil680.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_sis.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_sl82c105.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_triflex.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_via.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pdc_adma.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/sata_inic162x.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/sata_mv.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/sata_nv.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/sata_promise.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/sata_qstor.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/sata_sil.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/sata_sil24.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/sata_sis.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/sata_svw.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/sata_sx4.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/sata_uli.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/sata_via.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/sata_vsc.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/atm
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/atm/ambassador.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/atm/atmtcp.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/atm/eni.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/atm/firestream.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/atm/fore_200e.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/atm/horizon.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/atm/idt77105.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/atm/idt77252.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/atm/iphase.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/atm/lanai.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/atm/nicstar.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/atm/solos-pci.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/atm/suni.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/atm/uPD98402.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/atm/zatm.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/base
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/base/regmap
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/base/regmap/regmap-i2c.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bcma
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bcma/bcma.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/block
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/block/DAC960.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/block/aoe
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/block/aoe/aoe.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/block/cciss.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/block/cpqarray.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/block/cryptoloop.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/block/mg_disk.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/block/nbd.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/block/osdblk.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/block/rbd.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/block/sx8.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bluetooth
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bluetooth/ath3k.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bluetooth/bcm203x.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bluetooth/bfusb.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bluetooth/bluecard_cs.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bluetooth/bpa10x.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bluetooth/bt3c_cs.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bluetooth/btmrvl.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bluetooth/btmrvl_sdio.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bluetooth/btsdio.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bluetooth/btuart_cs.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bluetooth/btusb.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bluetooth/btwilink.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bluetooth/dtl1_cs.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bluetooth/hci_uart.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bluetooth/hci_vhci.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/cdrom
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/cdrom/cdrom.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/char
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/char/hw_random
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/char/hw_random/rng-core.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/char/hw_random/timeriomem-rng.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/char/ipmi
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/char/ipmi/ipmi_devintf.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/char/ipmi/ipmi_msghandler.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/char/ipmi/ipmi_poweroff.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/char/ipmi/ipmi_si.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/char/ipmi/ipmi_watchdog.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/char/lp.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/char/nvram.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/char/pcmcia
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/char/pcmcia/synclink_cs.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/char/ppdev.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/connector
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/connector/cn.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/crypto
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/crypto/hifn_795x.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/crypto/mv_cesa.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/dma
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/dma/dmatest.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/firewire
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/firewire/firewire-core.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/firewire/firewire-net.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/firewire/firewire-ohci.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/firewire/firewire-sbp2.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpio
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpio/gpio-adp5588.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpio/gpio-generic.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpio/gpio-it8761e.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpio/gpio-janz-ttl.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpio/gpio-max7300.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpio/gpio-max730x.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpio/gpio-max732x.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpio/gpio-mcp23s08.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpio/gpio-ml-ioh.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpio/gpio-pca953x.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpio/gpio-pcf857x.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpio/gpio-rdc321x.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpio/gpio-vx855.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/drm.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/mga
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/mga/mga.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/r128
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/r128/r128.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/savage
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/savage/savage.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/tdfx
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/tdfx/tdfx.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/ttm
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/ttm/ttm.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/via
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/via/via.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/vmwgfx
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/vmwgfx/vmwgfx.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/stub
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/stub/poulsbo.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-a4tech.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-apple.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-axff.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-belkin.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-cherry.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-chicony.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-cypress.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-dr.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-elecom.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-ezkey.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-gaff.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-gyration.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-holtekff.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-kensington.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-keytouch.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-kye.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-lcpower.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-logitech-dj.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-logitech.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-magicmouse.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-microsoft.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-monterey.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-multitouch.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-ntrig.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-ortek.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-petalynx.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-picolcd.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-pl.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-primax.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-prodikeys.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-quanta.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-roccat-arvo.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-roccat-common.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-roccat-kone.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-roccat-koneplus.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-roccat-kovaplus.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-roccat-pyra.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-roccat.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-samsung.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-sjoy.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-sony.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-speedlink.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-sunplus.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-tmff.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-topseed.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-twinhan.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-uclogic.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-wacom.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-waltop.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-wiimote.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-zpff.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-zydacron.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/usbhid
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/usbhid/usbhid.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/ad7414.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/ad7418.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/adm1021.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/adm1025.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/adm1026.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/adm1029.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/adm1031.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/adm9240.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/ads1015.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/ads7828.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/adt7411.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/adt7462.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/adt7470.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/adt7475.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/amc6821.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/asc7621.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/atxp1.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/dme1737.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/ds1621.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/ds620.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/emc1403.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/emc2103.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/emc6w201.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/f71805f.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/f71882fg.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/f75375s.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/g760a.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/gl518sm.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/gl520sm.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/gpio-fan.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/hwmon-vid.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/hwmon.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/i5k_amb.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/ibmaem.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/ibmpex.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/it87.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/jc42.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/lineage-pem.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/lm63.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/lm73.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/lm75.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/lm77.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/lm78.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/lm80.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/lm83.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/lm85.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/lm87.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/lm90.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/lm92.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/lm93.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/lm95241.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/lm95245.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/ltc4151.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/ltc4215.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/ltc4245.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/ltc4261.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/max16065.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/max1619.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/max1668.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/max6639.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/max6642.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/max6650.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/ntc_thermistor.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/pc87360.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/pc87427.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/pcf8591.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/pmbus
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/pmbus/adm1275.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/pmbus/lm25066.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/pmbus/ltc2978.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/pmbus/max16064.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/pmbus/max34440.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/pmbus/max8688.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/pmbus/pmbus.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/pmbus/pmbus_core.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/pmbus/ucd9000.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/pmbus/ucd9200.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/pmbus/zl6100.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/sch5627.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/sch5636.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/sch56xx-common.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/sht15.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/sht21.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/sis5595.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/smm665.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/smsc47b397.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/smsc47m1.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/smsc47m192.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/thmc50.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/tmp102.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/tmp401.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/tmp421.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/via686a.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/vt1211.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/vt8231.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/w83627ehf.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/w83627hf.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/w83781d.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/w83791d.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/w83792d.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/w83793.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/w83795.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/w83l785ts.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/w83l786ng.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/algos
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/algos/i2c-algo-bit.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/algos/i2c-algo-pca.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-ali1535.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-ali1563.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-ali15x3.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-amd756.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-amd8111.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-designware-core.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-designware-pci.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-diolan-u2c.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-eg20t.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-gpio.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-i801.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-intel-mid.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-isch.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-nforce2.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-ocores.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-parport-light.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-parport.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-pca-platform.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-piix4.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-simtec.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-sis5595.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-sis630.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-sis96x.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-stub.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-taos-evm.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-tiny-usb.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-via.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-viapro.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-xiic.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/i2c-dev.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/i2c-mux.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/i2c-smbus.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/muxes
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/muxes/gpio-i2cmux.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/muxes/pca9541.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/muxes/pca954x.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ieee802154
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ieee802154/fakehard.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/ff-memless.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/input-polldev.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/adp5588-keys.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/adp5589-keys.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/gpio_keys.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/gpio_keys_polled.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/lkkbd.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/lm8323.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/matrix_keypad.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/max7359_keypad.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/mcs_touchkey.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/mpr121_touchkey.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/newtonkbd.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/opencores-kbd.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/qt1070.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/qt2160.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/stowaway.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/sunkbd.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/tca6416-keypad.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/xtkbd.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/misc
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/misc/88pm860x_onkey.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/misc/ad714x-i2c.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/misc/ad714x.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/misc/ati_remote2.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/misc/bma150.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/misc/cm109.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/misc/keyspan_remote.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/misc/pcf50633-input.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/misc/pcf8574_keypad.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/misc/powermate.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/misc/rotary_encoder.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/misc/yealink.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/serio
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/serio/altera_ps2.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/serio/ps2mult.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/sparse-keymap.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/capi
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/capi/capi.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/capi/capidrv.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/capi/kernelcapi.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/divert
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/divert/dss1_divert.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/gigaset
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/gigaset/bas_gigaset.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/gigaset/gigaset.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/gigaset/ser_gigaset.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/gigaset/usb_gigaset.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/avm
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/avm/avm_cs.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/avm/b1.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/avm/b1dma.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/avm/b1pci.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/avm/c4.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/avm/t1pci.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/eicon
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/eicon/diva_idi.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/eicon/diva_mnt.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/eicon/divacapi.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/eicon/divadidd.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/eicon/divas.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/mISDN
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/mISDN/avmfritz.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/mISDN/hfcmulti.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/mISDN/hfcpci.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/mISDN/hfcsusb.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/mISDN/mISDNinfineon.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/mISDN/mISDNipac.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/mISDN/mISDNisar.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/mISDN/netjet.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/mISDN/speedfax.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/mISDN/w6692.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hisax
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hisax/avma1_cs.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hisax/elsa_cs.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hisax/hfc4s8s_l1.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hisax/hfc_usb.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hisax/hisax.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hisax/hisax_fcpcipnp.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hisax/hisax_isac.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hisax/hisax_st5481.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hisax/sedlbauer_cs.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hisax/teles_cs.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hysdn
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hysdn/hysdn.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/i4l
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/i4l/isdn.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/i4l/isdn_bsdcomp.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/i4l/isdnhdlc.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/mISDN
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/mISDN/l1oip.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/mISDN/mISDN_core.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/mISDN/mISDN_dsp.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/leds-88pm860x.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/leds-bd2802.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/leds-gpio.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/leds-lm3530.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/leds-lp3944.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/leds-lp5521.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/leds-lp5523.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/leds-lt3593.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/leds-pca9532.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/leds-pca955x.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/leds-regulator.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/ledtrig-backlight.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/ledtrig-gpio.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/ledtrig-heartbeat.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/ledtrig-netdev.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/ledtrig-timer.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-bufio.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-crypt.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-delay.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-flakey.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-log-userspace.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-log.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-mirror.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-mod.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-multipath.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-queue-length.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-raid.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-region-hash.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-round-robin.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-service-time.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-snapshot.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-thin-pool.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-zero.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/linear.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/md-mod.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/multipath.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/persistent-data
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/persistent-data/dm-persistent-data.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/raid0.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/raid1.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/raid10.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/raid456.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/tuners
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/tuners/mc44s803.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/tuners/mt20xx.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/tuners/tda18271.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/tuners/tda827x.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/tuners/tda8290.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/tuners/tda9887.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/tuners/tea5761.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/tuners/tea5767.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/tuners/tuner-simple.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/tuners/tuner-types.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/tuners/tuner-xc2028.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/tuners/xc4000.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/tuners/xc5000.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb/dvb-core
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb/dvb-core/dvb-core.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/media.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-adstech-dvb-t-pci.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-alink-dtu-m.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-anysee.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-apac-viewcomp.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-asus-pc39.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-ati-tv-wonder-hd-600.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-ati-x10.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-avermedia-a16d.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-avermedia-cardbus.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-avermedia-dvbt.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-avermedia-m135a.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-avermedia-m733a-rm-k6.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-avermedia-rm-ks.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-avermedia.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-avertv-303.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-azurewave-ad-tu700.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-behold-columbus.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-behold.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-budget-ci-old.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-cinergy-1400.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-cinergy.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-dib0700-nec.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-dib0700-rc5.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-digitalnow-tinytwin.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-digittrade.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-dm1105-nec.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-dntv-live-dvb-t.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-dntv-live-dvbt-pro.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-em-terratec.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-encore-enltv-fm53.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-encore-enltv.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-encore-enltv2.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-evga-indtube.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-eztv.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-flydvb.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-flyvideo.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-fusionhdtv-mce.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-gadmei-rm008z.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-genius-tvgo-a11mce.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-gotview7135.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-hauppauge.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-imon-mce.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-imon-pad.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-iodata-bctv7e.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-kaiomy.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-kworld-315u.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-kworld-plus-tv-analog.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-leadtek-y04g0051.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-lirc.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-lme2510.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-manli.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-medion-x10.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-msi-digivox-ii.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-msi-digivox-iii.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-msi-tvanywhere-plus.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-msi-tvanywhere.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-nebula.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-nec-terratec-cinergy-xs.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-norwood.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-npgtech.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-pctv-sedna.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-pinnacle-color.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-pinnacle-grey.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-pinnacle-pctv-hd.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-pixelview-002t.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-pixelview-mk12.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-pixelview-new.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-pixelview.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-powercolor-real-angel.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-proteus-2309.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-purpletv.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-pv951.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-rc6-mce.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-real-audio-220-32-keys.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-snapstream-firefly.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-streamzap.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-tbs-nec.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-technisat-usb2.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-terratec-cinergy-xs.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-terratec-slim-2.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-terratec-slim.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-tevii-nec.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-tivo.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-total-media-in-hand.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-trekstor.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-tt-1500.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-twinhan1027.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-videomate-m1f.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-videomate-s350.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-videomate-tv-pvr.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-winfast-usbii-deluxe.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-winfast.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/lirc_dev.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/rc-core.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/video
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/video/ir-kbd-i2c.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/video/v4l2-common.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/video/v4l2-int-device.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/video/videodev.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/memstick
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/memstick/core
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/memstick/core/memstick.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/memstick/core/mspro_block.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/memstick/host
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/memstick/host/jmb38x_ms.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/memstick/host/r592.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/memstick/host/tifm_ms.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/message
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/message/fusion
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/message/fusion/mptbase.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/message/fusion/mptctl.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/message/fusion/mptfc.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/message/fusion/mptsas.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/message/fusion/mptscsih.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/message/fusion/mptspi.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/htc-pasic3.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/janz-cmodio.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/lpc_sch.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/pcf50633-adc.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/pcf50633-gpio.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/pcf50633.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/rdc321x-southbridge.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/sm501.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/timberdale.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/tps6105x.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/tps65010.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/tps6507x.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/ucb1400_core.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/vx855.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/wl1273-core.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/wm8400-core.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/apds9802als.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/apds990x.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/bh1770glc.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/bh1780gli.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/bmp085.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/c2port
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/c2port/core.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/cb710
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/cb710/cb710.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/ds1682.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/eeprom
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/eeprom/at24.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/eeprom/eeprom.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/eeprom/eeprom_93cx6.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/eeprom/max6875.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/enclosure.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/fsa9480.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/hmc6352.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/hpilo.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/ics932s401.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/isl29003.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/isl29020.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/iwmc3200top
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/iwmc3200top/iwmc3200top.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/lis3lv02d
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/lis3lv02d/lis3lv02d.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/lis3lv02d/lis3lv02d_i2c.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/pch_phub.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/ti-st
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/ti-st/st_drv.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/tifm_7xx1.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/tifm_core.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/tsl2550.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/card
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/card/mmc_block.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/card/mmc_test.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/card/sdio_uart.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/core
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/core/mmc_core.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/host
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/host/cb710-mmc.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/host/dw_mmc.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/host/mvsdio.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/host/sdhci-pci.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/host/sdhci-pltfm.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/host/sdhci.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/host/sdricoh_cs.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/host/tifm_sd.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/host/ushc.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/host/via-sdmmc.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/host/vub300.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/ar7part.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/chips
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/chips/chipreg.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/lpddr
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/lpddr/lpddr_cmds.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/lpddr/qinfo_probe.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/maps
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/maps/physmap.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/mtd.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/mtd_blkdevs.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/mtdblock.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/mtdchar.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/nand
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/nand/nand.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/nand/nand_ecc.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/nand/nand_ids.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/nand/orion_nand.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/nand/plat_nand.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/ofpart.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/sm_ftl.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/tests
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/tests/mtd_nandecctest.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/tests/mtd_oobtest.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/tests/mtd_pagetest.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/tests/mtd_readtest.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/tests/mtd_speedtest.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/tests/mtd_stresstest.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/tests/mtd_subpagetest.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/tests/mtd_torturetest.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/ubi
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/ubi/ubi.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/bonding
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/bonding/bonding.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/dummy.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/eql.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/3com
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/3com/3c574_cs.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/3com/3c589_cs.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/3com/3c59x.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/3com/typhoon.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/8390
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/8390/8390.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/8390/ax88796.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/8390/axnet_cs.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/8390/ne2k-pci.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/8390/pcnet_cs.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/adaptec
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/adaptec/starfire.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/alteon
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/alteon/acenic.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/amd
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/amd/amd8111e.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/amd/nmclan_cs.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/amd/pcnet32.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/atheros
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/atheros/atl1c
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/atheros/atl1c/atl1c.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/atheros/atl1e
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/atheros/atl1e/atl1e.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/atheros/atlx
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/atheros/atlx/atl1.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/atheros/atlx/atl2.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/broadcom
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/broadcom/b44.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/broadcom/bnx2.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/broadcom/bnx2x
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/broadcom/bnx2x/bnx2x.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/broadcom/cnic.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/broadcom/tg3.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/brocade
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/brocade/bna
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/brocade/bna/bna.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/chelsio
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/chelsio/cxgb
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/chelsio/cxgb/cxgb.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/chelsio/cxgb3
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/chelsio/cxgb3/cxgb3.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/chelsio/cxgb4
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/chelsio/cxgb4/cxgb4.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/chelsio/cxgb4vf
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/cisco
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/cisco/enic
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/cisco/enic/enic.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/davicom
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/davicom/dm9000.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/dec
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/dec/tulip
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/dec/tulip/de2104x.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/dec/tulip/de4x5.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/dec/tulip/dmfe.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/dec/tulip/tulip.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/dec/tulip/uli526x.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/dec/tulip/winbond-840.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/dec/tulip/xircom_cb.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/dlink
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/dlink/de600.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/dlink/de620.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/dlink/dl2k.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/dlink/sundance.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/dnet.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/emulex
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/emulex/benet
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/emulex/benet/be2net.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/ethoc.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/fealnx.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/fujitsu
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/fujitsu/fmvj18x_cs.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/hp
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/hp/hp100.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/icplus
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/icplus/ipg.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/intel
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/intel/e100.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/intel/e1000
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/intel/e1000/e1000.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/intel/e1000e
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/intel/e1000e/e1000e.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/intel/igb
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/intel/igb/igb.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/intel/igbvf
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/intel/igbvf/igbvf.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/intel/ixgb
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/intel/ixgb/ixgb.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/intel/ixgbe
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/intel/ixgbe/ixgbe.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/jme.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/marvell
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/marvell/mv643xx_eth.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/marvell/skge.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/marvell/sky2.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/mellanox
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/mellanox/mlx4
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/mellanox/mlx4/mlx4_core.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/mellanox/mlx4/mlx4_en.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/micrel
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/micrel/ks8842.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/micrel/ks8851_mll.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/micrel/ksz884x.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/myricom
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/myricom/myri10ge
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/myricom/myri10ge/myri10ge.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/natsemi
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/natsemi/natsemi.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/natsemi/ns83820.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/neterion
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/neterion/s2io.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/neterion/vxge
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/neterion/vxge/vxge.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/nvidia
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/nvidia/forcedeth.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/oki-semi
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/oki-semi/pch_gbe
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/packetengines
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/packetengines/hamachi.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/packetengines/yellowfin.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/qlogic
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/qlogic/netxen
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/qlogic/netxen/netxen_nic.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/qlogic/qla3xxx.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/qlogic/qlcnic
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/qlogic/qlcnic/qlcnic.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/qlogic/qlge
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/qlogic/qlge/qlge.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/rdc
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/rdc/r6040.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/realtek
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/realtek/8139cp.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/realtek/8139too.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/realtek/r8169.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/seeq
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/seeq/seeq8005.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/sfc
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/sfc/sfc.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/silan
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/silan/sc92031.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/sis
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/sis/sis190.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/sis/sis900.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/smsc
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/smsc/epic100.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/smsc/smc911x.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/smsc/smc91c92_cs.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/smsc/smc91x.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/smsc/smsc911x.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/smsc/smsc9420.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/stmicro
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/stmicro/stmmac
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/stmicro/stmmac/stmmac.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/sun
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/sun/cassini.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/sun/niu.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/sun/sunhme.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/tehuti
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/tehuti/tehuti.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/ti
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/ti/tlan.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/via
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/via/via-rhine.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/via/via-velocity.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/xircom
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/xircom/xirc2ps_cs.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ifb.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/imq.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/irda
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/irda/irda-usb.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/irda/irtty-sir.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/irda/kingsun-sir.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/irda/ks959-sir.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/irda/ksdazzle-sir.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/irda/mcs7780.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/irda/sir-dev.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/irda/stir4200.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/irda/vlsi_ir.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/macvlan.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/macvtap.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/mdio.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/mii.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/broadcom.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/cicada.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/davicom.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/dp83640.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/et1011c.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/icplus.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/lxt.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/marvell.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/mdio-bitbang.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/mdio-gpio.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/micrel.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/national.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/qsemi.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/realtek.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/smsc.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/ste10Xp.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/vitesse.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ppp
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ppp/bsd_comp.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ppp/ppp_async.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ppp/ppp_deflate.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ppp/ppp_generic.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ppp/ppp_mppe.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ppp/ppp_synctty.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ppp/pppoe.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ppp/pppox.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ppp/pptp.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/slip
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/slip/slhc.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/slip/slip.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/tun.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/asix.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/catc.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/cdc_eem.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/cdc_ether.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/cdc_ncm.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/cdc_subset.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/cx82310_eth.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/dm9601.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/gl620a.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/hso.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/int51x1.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/kalmia.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/kaweth.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/lg-vl600.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/mcs7830.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/net1080.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/pegasus.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/plusb.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/rndis_host.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/rtl8150.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/sierra_net.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/smsc75xx.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/smsc95xx.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/usbnet.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/zaurus.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/veth.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/vmxnet3
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/vmxnet3/vmxnet3.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wan
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wan/dlci.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wan/dscc4.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wan/farsync.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wan/hdlc.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wan/hdlc_cisco.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wan/hdlc_fr.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wan/hdlc_ppp.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wan/hdlc_raw.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wan/hdlc_raw_eth.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wan/lmc
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wan/lmc/lmc.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wan/pc300too.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wan/pci200syn.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wan/wanxl.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/airo.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/airo_cs.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/at76c50x-usb.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/atmel.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/atmel_cs.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/atmel_pci.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/hostap
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/hostap/hostap.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/hostap/hostap_cs.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/hostap/hostap_pci.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/hostap/hostap_plx.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/ray_cs.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/rndis_wlan.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/wl3501_cs.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/zd1201.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/parport
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/parport/parport.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/parport/parport_ax88796.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/pci
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/pci/pci-stub.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/pcmcia
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/pcmcia/i82092.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/pcmcia/pcmcia.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/pcmcia/pcmcia_core.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/pcmcia/pcmcia_rsrc.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/pcmcia/pd6729.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/pcmcia/yenta_socket.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/pps
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/pps/pps_core.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ptp
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ptp/ptp.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/regulator
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/regulator/fixed.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/regulator/gpio-regulator.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-bq32k.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-bq4802.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-cmos.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-ds1286.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-ds1307.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-ds1374.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-ds1511.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-ds1553.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-ds1672.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-ds1742.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-ds3232.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-em3027.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-fm3130.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-isl12022.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-isl1208.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-m41t80.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-m48t35.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-m48t59.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-m48t86.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-max6900.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-msm6242.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-pcf50633.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-pcf8563.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-pcf8583.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-rp5c01.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-rs5c372.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-rv3029c2.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-rx8025.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-rx8581.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-s35390a.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-stk17ta8.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-v3020.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-x1205.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/3w-9xxx.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/3w-sas.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/3w-xxxx.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/a100u2w.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/aacraid
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/aacraid/aacraid.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/aic7xxx
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/aic7xxx/aic79xx.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/aic7xxx/aic7xxx.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/aic94xx
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/aic94xx/aic94xx.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/arcmsr
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/arcmsr/arcmsr.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/be2iscsi
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/be2iscsi/be2iscsi.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/bfa
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/bfa/bfa.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/bnx2fc
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/bnx2fc/bnx2fc.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/bnx2i
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/bnx2i/bnx2i.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/ch.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/cxgbi
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/cxgbi/cxgb3i
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/cxgbi/cxgb3i/cxgb3i.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/cxgbi/cxgb4i
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/cxgbi/cxgb4i/cxgb4i.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/cxgbi/libcxgbi.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/dc395x.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/device_handler
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/device_handler/scsi_dh.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/device_handler/scsi_dh_alua.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/device_handler/scsi_dh_emc.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/device_handler/scsi_dh_hp_sw.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/device_handler/scsi_dh_rdac.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/dmx3191d.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/dpt_i2o.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/fcoe
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/fcoe/fcoe.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/fcoe/libfcoe.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/fdomain.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/hpsa.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/hptiop.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/initio.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/ipr.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/ips.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/iscsi_boot_sysfs.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/iscsi_tcp.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/libfc
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/libfc/libfc.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/libiscsi.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/libiscsi_tcp.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/libsas
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/libsas/libsas.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/lpfc
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/lpfc/lpfc.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/megaraid
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/megaraid.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/megaraid/megaraid_mbox.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/megaraid/megaraid_mm.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/megaraid/megaraid_sas.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/mpt2sas
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/mpt2sas/mpt2sas.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/mvsas
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/mvsas/mvsas.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/mvumi.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/osd
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/osd/libosd.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/osd/osd.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/pcmcia
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/pcmcia/aha152x_cs.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/pcmcia/fdomain_cs.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/pcmcia/nsp_cs.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/pcmcia/qlogic_cs.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/pcmcia/sym53c500_cs.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/pm8001
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/pm8001/pm8001.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/pmcraid.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/qla1280.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/qla2xxx
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/qla2xxx/qla2xxx.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/qla4xxx
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/qla4xxx/qla4xxx.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/qlogicfas408.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/raid_class.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/scsi_mod.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/scsi_transport_fc.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/scsi_transport_iscsi.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/scsi_transport_sas.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/scsi_transport_spi.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/scsi_transport_srp.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/scsi_wait_scan.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/sd_mod.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/ses.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/sg.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/sr_mod.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/stex.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/sym53c8xx_2
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/sym53c8xx_2/sym53c8xx.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/tmscsim.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ssb
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ssb/ssb.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/staging
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/staging/et131x
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/staging/et131x/et131x.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/staging/phison
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/staging/phison/phison.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/staging/usbip
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/staging/usbip/usbip-core.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/staging/usbip/usbip-host.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/staging/usbip/vhci-hcd.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/ipwireless
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/ipwireless/ipwireless.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/n_gsm.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/nozomi.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/serial
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/serial/8250_dw.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/serial/altera_jtaguart.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/serial/altera_uart.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/serial/mfd.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/serial/pch_uart.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/serial/serial_cs.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/serial/timbuart.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/serial/uartlite.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/serial/xilinx_uartps.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uio
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uio/uio.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uio/uio_aec.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uio/uio_cif.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uio/uio_netx.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uio/uio_pci_generic.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uio/uio_pdrv.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uio/uio_pdrv_genirq.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uio/uio_sercos3.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/atm
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/atm/cxacru.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/atm/speedtch.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/atm/ueagle-atm.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/atm/usbatm.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/atm/xusbatm.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/class
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/class/cdc-acm.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/class/cdc-wdm.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/class/usblp.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/class/usbtmc.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/dwc3
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/dwc3/dwc3-omap.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/dwc3/dwc3-pci.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/dwc3/dwc3.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/host
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/host/hwa-hc.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/host/isp116x-hcd.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/host/isp1362-hcd.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/host/oxu210hp-hcd.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/host/r8a66597-hcd.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/host/sl811-hcd.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/host/u132-hcd.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/host/whci
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/host/whci/whci-hcd.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/host/xhci-hcd.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/misc
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/misc/cypress_cy7c63.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/misc/cytherm.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/misc/emi26.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/misc/emi62.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/misc/ftdi-elan.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/misc/iowarrior.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/misc/isight_firmware.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/misc/sisusbvga
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/misc/sisusbvga/sisusbvga.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/misc/usblcd.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/misc/usbled.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/misc/usbsevseg.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/misc/uss720.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/misc/yurex.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/otg
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/otg/gpio_vbus.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/otg/nop-usb-xceiv.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/aircable.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/ark3116.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/belkin_sa.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/ch341.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/cp210x.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/cypress_m8.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/digi_acceleport.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/empeg.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/ftdi_sio.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/funsoft.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/garmin_gps.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/hp4x.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/io_edgeport.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/io_ti.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/ipaq.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/ipw.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/ir-usb.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/iuu_phoenix.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/keyspan_pda.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/mct_u232.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/mos7720.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/mos7840.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/moto_modem.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/opticon.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/option.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/oti6858.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/pl2303.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/qcaux.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/qcserial.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/safe_serial.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/siemens_mpi.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/sierra.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/spcp8x5.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/ssu100.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/symbolserial.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/ti_usb_3410_5052.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/usb_wwan.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/usbserial.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/visor.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/vivopay-serial.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/whiteheat.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/zio.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/storage
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/storage/uas.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/storage/ums-alauda.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/storage/ums-cypress.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/storage/ums-datafab.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/storage/ums-eneub6250.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/storage/ums-freecom.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/storage/ums-isd200.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/storage/ums-jumpshot.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/storage/ums-karma.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/storage/ums-onetouch.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/storage/ums-realtek.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/storage/ums-sddr09.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/storage/ums-sddr55.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/storage/ums-usbat.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/storage/usb-storage.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/wusbcore
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/wusbcore/wusb-cbaf.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/wusbcore/wusb-wa.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/wusbcore/wusbcore.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uwb
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uwb/hwa-rc.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uwb/i1480
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uwb/i1480/dfu
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uwb/i1480/dfu/i1480-dfu-usb.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uwb/i1480/i1480-est.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uwb/umc.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uwb/uwb.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uwb/whc-rc.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uwb/whci.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/arkfb.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/aty
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/aty/aty128fb.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/aty/atyfb.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/aty/radeonfb.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/backlight
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/backlight/88pm860x_bl.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/backlight/adp8860_bl.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/backlight/adp8870_bl.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/backlight/generic_bl.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/backlight/lcd.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/backlight/pcf50633-backlight.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/backlight/platform_lcd.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/cirrusfb.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/cyber2000fb.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/display
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/display/display.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/fb_ddc.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/fb_sys_fops.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/kyro
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/kyro/kyrofb.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/macmodes.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/matrox
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/matrox/g450_pll.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/matrox/i2c-matroxfb.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/matrox/matroxfb_DAC1064.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/matrox/matroxfb_Ti3026.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/matrox/matroxfb_accel.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/matrox/matroxfb_base.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/matrox/matroxfb_crtc2.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/matrox/matroxfb_g450.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/matrox/matroxfb_maven.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/matrox/matroxfb_misc.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/metronomefb.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/neofb.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/nvidia
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/nvidia/nvidiafb.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/output.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/pm2fb.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/pm3fb.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/riva
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/riva/rivafb.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/s3fb.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/sis
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/sis/sisfb.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/sm501fb.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/smscufx.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/sstfb.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/svgalib.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/syscopyarea.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/sysfillrect.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/sysimgblt.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/tdfxfb.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/tmiofb.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/tridentfb.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/uvesafb.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/vgastate.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/vt8623fb.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/masters
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/masters/ds1wm.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/masters/ds2482.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/masters/ds2490.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/masters/matrox_w1.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/masters/w1-gpio.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/slaves
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/slaves/w1_bq27000.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/slaves/w1_ds2408.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/slaves/w1_ds2423.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/slaves/w1_ds2431.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/slaves/w1_ds2433.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/slaves/w1_ds2760.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/slaves/w1_ds2780.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/slaves/w1_smem.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/slaves/w1_therm.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/wire.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/watchdog
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/watchdog/alim7101_wdt.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/watchdog/max63xx_wdt.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/watchdog/orion_wdt.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/watchdog/pcwd_pci.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/watchdog/pcwd_usb.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/watchdog/softdog.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/watchdog/wdt_pci.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/fs
+#lib/modules/KVER-ipfire-kirkwood/kernel/fs/autofs4
+#lib/modules/KVER-ipfire-kirkwood/kernel/fs/autofs4/autofs4.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/fs/cachefiles
+#lib/modules/KVER-ipfire-kirkwood/kernel/fs/cachefiles/cachefiles.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/fs/cifs
+#lib/modules/KVER-ipfire-kirkwood/kernel/fs/cifs/cifs.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/fs/ecryptfs
+#lib/modules/KVER-ipfire-kirkwood/kernel/fs/ecryptfs/ecryptfs.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/fs/exportfs
+#lib/modules/KVER-ipfire-kirkwood/kernel/fs/exportfs/exportfs.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/fs/fat
+#lib/modules/KVER-ipfire-kirkwood/kernel/fs/fat/fat.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/fs/fat/vfat.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/fs/fscache
+#lib/modules/KVER-ipfire-kirkwood/kernel/fs/fscache/fscache.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/fs/fuse
+#lib/modules/KVER-ipfire-kirkwood/kernel/fs/fuse/cuse.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/fs/fuse/fuse.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/fs/isofs
+#lib/modules/KVER-ipfire-kirkwood/kernel/fs/isofs/isofs.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/fs/jffs2
+#lib/modules/KVER-ipfire-kirkwood/kernel/fs/jffs2/jffs2.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/fs/jfs
+#lib/modules/KVER-ipfire-kirkwood/kernel/fs/jfs/jfs.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/fs/lockd
+#lib/modules/KVER-ipfire-kirkwood/kernel/fs/lockd/lockd.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nfs
+#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nfs/nfs.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nfs_common
+#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nfs_common/nfs_acl.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nfsd
+#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nfsd/nfsd.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/fs/quota
+#lib/modules/KVER-ipfire-kirkwood/kernel/fs/quota/quota_tree.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/fs/quota/quota_v1.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/fs/quota/quota_v2.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/fs/reiserfs
+#lib/modules/KVER-ipfire-kirkwood/kernel/fs/reiserfs/reiserfs.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/fs/udf
+#lib/modules/KVER-ipfire-kirkwood/kernel/fs/udf/udf.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/fs/ufs
+#lib/modules/KVER-ipfire-kirkwood/kernel/fs/ufs/ufs.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/fs/xfs
+#lib/modules/KVER-ipfire-kirkwood/kernel/fs/xfs/xfs.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/lib
+#lib/modules/KVER-ipfire-kirkwood/kernel/lib/cordic.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/lib/crc-ccitt.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/lib/crc-itu-t.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/lib/crc-t10dif.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/lib/crc7.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/lib/crc8.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/lib/libcrc32c.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/lib/raid6
+#lib/modules/KVER-ipfire-kirkwood/kernel/lib/raid6/raid6_pq.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/lib/ts_bm.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/lib/ts_fsm.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/lib/ts_kmp.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/802
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/802/garp.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/802/p8022.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/802/psnap.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/802/stp.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/8021q
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/8021q/8021q.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/atm
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/atm/atm.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/atm/br2684.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/atm/clip.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/atm/pppoatm.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/batman-adv
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/batman-adv/batman-adv.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/bluetooth
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/bluetooth/bluetooth.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/bluetooth/bnep
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/bluetooth/bnep/bnep.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/bluetooth/cmtp
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/bluetooth/cmtp/cmtp.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/bluetooth/hidp
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/bluetooth/hidp/hidp.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/bluetooth/rfcomm
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/bluetooth/rfcomm/rfcomm.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/bridge.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebt_802_3.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebt_among.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebt_arp.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebt_arpreply.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebt_dnat.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebt_ip.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebt_ip6.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebt_limit.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebt_log.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebt_mark.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebt_mark_m.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebt_nflog.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebt_pkttype.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebt_redirect.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebt_snat.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebt_stp.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebt_ulog.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebt_vlan.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebtable_broute.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebtable_filter.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebtable_nat.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebtables.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ceph
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ceph/libceph.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ieee802154
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ieee802154/6lowpan.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ieee802154/af_802154.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ieee802154/ieee802154.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/ah4.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/esp4.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/gre.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/inet_diag.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/ip_gre.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/ipcomp.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/ipip.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/arp_tables.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/arpt_mangle.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/arptable_filter.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/ip_queue.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/ip_tables.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/ipt_CLUSTERIP.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/ipt_ECN.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/ipt_LOG.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/ipt_MASQUERADE.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/ipt_NETMAP.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/ipt_REDIRECT.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/ipt_REJECT.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/ipt_ULOG.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/ipt_ah.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/ipt_ecn.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/ipt_ipp2p.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/iptable_filter.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/iptable_mangle.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/iptable_nat.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/iptable_raw.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/nf_conntrack_ipv4.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/nf_defrag_ipv4.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/nf_nat.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/nf_nat_amanda.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/nf_nat_ftp.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/nf_nat_h323.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/nf_nat_irc.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/nf_nat_pptp.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/nf_nat_proto_dccp.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/nf_nat_proto_gre.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/nf_nat_proto_sctp.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/nf_nat_proto_udplite.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/nf_nat_sip.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/nf_nat_snmp_basic.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/nf_nat_tftp.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/tcp_bic.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/tcp_cubic.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/tcp_diag.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/tcp_highspeed.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/tcp_htcp.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/tcp_hybla.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/tcp_illinois.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/tcp_lp.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/tcp_scalable.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/tcp_vegas.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/tcp_veno.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/tcp_westwood.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/tcp_yeah.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/tunnel4.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/xfrm4_tunnel.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/ah6.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/esp6.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/ip6_tunnel.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/ipcomp6.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/mip6.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/ip6_queue.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/ip6_tables.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/ip6t_LOG.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/ip6t_REJECT.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/ip6t_ah.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/ip6t_eui64.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/ip6t_frag.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/ip6t_hbh.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/ip6t_ipv6header.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/ip6t_mh.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/ip6t_rt.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/ip6table_filter.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/ip6table_mangle.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/ip6table_raw.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/nf_conntrack_ipv6.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/nf_defrag_ipv6.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/sit.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/tunnel6.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/xfrm6_mode_beet.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/xfrm6_mode_ro.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/xfrm6_mode_transport.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/xfrm6_mode_tunnel.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/xfrm6_tunnel.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/irda
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/irda/ircomm
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/irda/ircomm/ircomm-tty.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/irda/ircomm/ircomm.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/irda/irda.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/irda/irlan
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/irda/irlan/irlan.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/irda/irnet
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/irda/irnet/irnet.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/key
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/key/af_key.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/l2tp
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/l2tp/l2tp_core.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/l2tp/l2tp_eth.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/l2tp/l2tp_ip.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/l2tp/l2tp_netlink.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/l2tp/l2tp_ppp.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/llc
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/llc/llc.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/mac80211
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/mac80211/mac80211.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/ipvs
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/ipvs/ip_vs.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_conntrack.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_conntrack_amanda.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_conntrack_broadcast.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_conntrack_ftp.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_conntrack_h323.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_conntrack_irc.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_conntrack_netbios_ns.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_conntrack_netlink.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_conntrack_pptp.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_conntrack_proto_dccp.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_conntrack_proto_gre.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_conntrack_proto_sctp.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_conntrack_proto_udplite.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_conntrack_sane.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_conntrack_sip.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_conntrack_snmp.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_conntrack_tftp.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_tproxy_core.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nfnetlink.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nfnetlink_log.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nfnetlink_queue.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/x_tables.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_AUDIT.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_CHECKSUM.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_CLASSIFY.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_CT.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_DSCP.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_HL.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_IDLETIMER.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_IMQ.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_LED.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_NFLOG.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_NFQUEUE.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_NOTRACK.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_RATEEST.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_TCPMSS.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_TCPOPTSTRIP.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_TEE.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_TPROXY.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_TRACE.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_addrtype.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_cluster.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_comment.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_connbytes.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_connlimit.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_connmark.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_conntrack.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_cpu.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_dccp.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_devgroup.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_dscp.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_esp.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_hashlimit.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_helper.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_hl.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_iprange.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_ipvs.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_layer7.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_length.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_limit.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_mac.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_mark.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_multiport.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_osf.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_owner.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_physdev.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_pkttype.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_policy.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_quota.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_rateest.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_realm.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_recent.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_sctp.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_socket.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_state.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_statistic.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_string.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_tcpmss.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_tcpudp.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_time.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_u32.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/rfkill
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/rfkill/rfkill-regulator.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/rfkill/rfkill.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/rxrpc
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/rxrpc/af-rxrpc.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/rxrpc/rxkad.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/act_csum.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/act_gact.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/act_ipt.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/act_mirred.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/act_nat.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/act_pedit.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/act_police.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/act_simple.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/act_skbedit.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/cls_basic.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/cls_flow.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/cls_fw.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/cls_route.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/cls_rsvp.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/cls_rsvp6.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/cls_tcindex.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/cls_u32.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/em_cmp.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/em_meta.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/em_nbyte.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/em_text.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/em_u32.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_atm.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_cbq.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_choke.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_drr.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_dsmark.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_gred.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_hfsc.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_htb.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_ingress.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_mqprio.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_multiq.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_netem.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_prio.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_qfq.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_red.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_sfb.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_sfq.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_tbf.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_teql.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/sunrpc
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/sunrpc/auth_gss
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/sunrpc/auth_gss/auth_rpcgss.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/sunrpc/auth_gss/rpcsec_gss_krb5.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/sunrpc/sunrpc.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/wireless
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/wireless/cfg80211.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/wireless/lib80211.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/wireless/lib80211_crypt_ccmp.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/wireless/lib80211_crypt_tkip.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/wireless/lib80211_crypt_wep.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/xfrm
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/xfrm/xfrm_ipcomp.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/net/xfrm/xfrm_user.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/ac97_bus.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/core
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/oss
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/oss/snd-mixer-oss.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/oss/snd-pcm-oss.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/seq
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/seq/oss
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/seq/oss/snd-seq-oss.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/seq/snd-seq-device.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/seq/snd-seq-dummy.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/seq/snd-seq-midi-emul.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/seq/snd-seq-midi-event.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/seq/snd-seq-midi.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/seq/snd-seq-virmidi.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/seq/snd-seq.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/snd-hrtimer.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/snd-hwdep.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/snd-page-alloc.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/snd-pcm.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/snd-rawmidi.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/snd-timer.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/snd.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/drivers
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/drivers/mpu401
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/drivers/mpu401/snd-mpu401-uart.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/drivers/mpu401/snd-mpu401.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/drivers/opl3
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/drivers/opl3/snd-opl3-lib.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/drivers/opl3/snd-opl3-synth.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/drivers/snd-aloop.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/drivers/snd-dummy.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/drivers/snd-mtpav.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/drivers/snd-mts64.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/drivers/snd-portman2x4.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/drivers/snd-serial-u16550.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/drivers/snd-virmidi.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/drivers/vx
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/drivers/vx/snd-vx-lib.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/firewire
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/firewire/snd-firewire-lib.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/firewire/snd-firewire-speakers.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/firewire/snd-isight.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/i2c
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/i2c/other
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/i2c/other/snd-ak4113.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/i2c/other/snd-ak4114.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/i2c/other/snd-ak4117.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/i2c/other/snd-ak4xxx-adda.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/i2c/other/snd-pt2258.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/i2c/other/snd-tea575x-tuner.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/i2c/snd-cs8427.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/i2c/snd-i2c.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/ac97
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/ac97/snd-ac97-codec.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/au88x0
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/au88x0/snd-au8810.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/au88x0/snd-au8820.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/au88x0/snd-au8830.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/aw2
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/aw2/snd-aw2.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/ca0106
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/ca0106/snd-ca0106.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/cs46xx
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/cs46xx/snd-cs46xx.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/cs5535audio
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/cs5535audio/snd-cs5535audio.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/ctxfi
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/ctxfi/snd-ctxfi.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/echoaudio
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/echoaudio/snd-darla20.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/echoaudio/snd-darla24.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/echoaudio/snd-echo3g.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/echoaudio/snd-gina20.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/echoaudio/snd-gina24.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/echoaudio/snd-indigo.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/echoaudio/snd-indigodj.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/echoaudio/snd-indigodjx.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/echoaudio/snd-indigoio.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/echoaudio/snd-indigoiox.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/echoaudio/snd-layla20.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/echoaudio/snd-layla24.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/echoaudio/snd-mia.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/echoaudio/snd-mona.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/emu10k1
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/emu10k1/snd-emu10k1-synth.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/emu10k1/snd-emu10k1.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/emu10k1/snd-emu10k1x.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/hda
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/hda/snd-hda-codec-analog.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/hda/snd-hda-codec-ca0110.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/hda/snd-hda-codec-ca0132.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/hda/snd-hda-codec-cirrus.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/hda/snd-hda-codec-cmedia.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/hda/snd-hda-codec-conexant.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/hda/snd-hda-codec-hdmi.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/hda/snd-hda-codec-idt.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/hda/snd-hda-codec-realtek.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/hda/snd-hda-codec-si3054.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/hda/snd-hda-codec-via.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/hda/snd-hda-codec.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/hda/snd-hda-intel.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/ice1712
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/ice1712/snd-ice1712.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/ice1712/snd-ice1724.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/ice1712/snd-ice17xx-ak4xxx.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/korg1212
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/korg1212/snd-korg1212.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/lola
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/lola/snd-lola.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/lx6464es
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/lx6464es/snd-lx6464es.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/mixart
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/mixart/snd-mixart.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/nm256
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/nm256/snd-nm256.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/oxygen
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/oxygen/snd-oxygen-lib.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/oxygen/snd-oxygen.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/oxygen/snd-virtuoso.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/pcxhr
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/pcxhr/snd-pcxhr.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/riptide
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/riptide/snd-riptide.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/rme9652
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/rme9652/snd-hdsp.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/rme9652/snd-hdspm.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/rme9652/snd-rme9652.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/snd-ad1889.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/snd-als300.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/snd-atiixp-modem.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/snd-atiixp.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/snd-azt3328.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/snd-bt87x.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/snd-cmipci.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/snd-cs4281.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/snd-ens1370.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/snd-ens1371.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/snd-es1938.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/snd-es1968.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/snd-fm801.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/snd-intel8x0.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/snd-intel8x0m.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/snd-maestro3.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/snd-rme32.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/snd-rme96.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/snd-sonicvibes.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/snd-via82xx-modem.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/snd-via82xx.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/trident
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/trident/snd-trident.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/vx222
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/vx222/snd-vx222.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/ymfpci
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/ymfpci/snd-ymfpci.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pcmcia
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pcmcia/pdaudiocf
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pcmcia/pdaudiocf/snd-pdaudiocf.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pcmcia/vx
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pcmcia/vx/snd-vxpocket.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/soc
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/soc/codecs
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/soc/codecs/snd-soc-alc5623.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/soc/codecs/snd-soc-cs42l51.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/soc/kirkwood
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/soc/kirkwood/snd-soc-kirkwood-i2s.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/soc/kirkwood/snd-soc-kirkwood.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/soc/kirkwood/snd-soc-openrd.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/soc/kirkwood/snd-soc-t5325.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/soc/snd-soc-core.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/soundcore.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/synth
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/synth/emux
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/synth/emux/snd-emux-synth.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/synth/snd-util-mem.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/usb
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/usb/6fire
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/usb/6fire/snd-usb-6fire.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/usb/caiaq
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/usb/caiaq/snd-usb-caiaq.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/usb/misc
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/usb/misc/snd-ua101.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/usb/snd-usb-audio.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/sound/usb/snd-usbmidi-lib.ko
+#lib/modules/KVER-ipfire-kirkwood/modules.alias
+#lib/modules/KVER-ipfire-kirkwood/modules.alias.bin
+#lib/modules/KVER-ipfire-kirkwood/modules.builtin
+#lib/modules/KVER-ipfire-kirkwood/modules.ccwmap
+#lib/modules/KVER-ipfire-kirkwood/modules.dep
+#lib/modules/KVER-ipfire-kirkwood/modules.dep.bin
+#lib/modules/KVER-ipfire-kirkwood/modules.ieee1394map
+#lib/modules/KVER-ipfire-kirkwood/modules.inputmap
+#lib/modules/KVER-ipfire-kirkwood/modules.isapnpmap
+#lib/modules/KVER-ipfire-kirkwood/modules.ofmap
+#lib/modules/KVER-ipfire-kirkwood/modules.order
+#lib/modules/KVER-ipfire-kirkwood/modules.pcimap
+#lib/modules/KVER-ipfire-kirkwood/modules.seriomap
+#lib/modules/KVER-ipfire-kirkwood/modules.symbols
+#lib/modules/KVER-ipfire-kirkwood/modules.symbols.bin
+#lib/modules/KVER-ipfire-kirkwood/modules.usbmap
+#lib/modules/KVER-ipfire-kirkwood/source
+sbin/gen_init_cpio
+boot/uInit-ipfire-kirkwood
diff --git a/config/rootfiles/common/armv5tel/linux-omap b/config/rootfiles/common/armv5tel/linux-omap
new file mode 100644 (file)
index 0000000..f3bf7c6
--- /dev/null
@@ -0,0 +1,1467 @@
+boot/System.map-KVER-ipfire-omap
+#boot/System.map-ipfire-omap
+boot/config-KVER-ipfire-omap
+boot/uImage-ipfire-omap
+boot/vmlinuz-KVER-ipfire-omap
+lib/modules/KVER-ipfire-omap
+#lib/modules/KVER-ipfire-omap/build
+#lib/modules/KVER-ipfire-omap/kernel
+#lib/modules/KVER-ipfire-omap/kernel/crypto
+#lib/modules/KVER-ipfire-omap/kernel/crypto/aes_generic.ko
+#lib/modules/KVER-ipfire-omap/kernel/crypto/af_alg.ko
+#lib/modules/KVER-ipfire-omap/kernel/crypto/algif_hash.ko
+#lib/modules/KVER-ipfire-omap/kernel/crypto/algif_skcipher.ko
+#lib/modules/KVER-ipfire-omap/kernel/crypto/ansi_cprng.ko
+#lib/modules/KVER-ipfire-omap/kernel/crypto/anubis.ko
+#lib/modules/KVER-ipfire-omap/kernel/crypto/arc4.ko
+#lib/modules/KVER-ipfire-omap/kernel/crypto/async_tx
+#lib/modules/KVER-ipfire-omap/kernel/crypto/async_tx/async_memcpy.ko
+#lib/modules/KVER-ipfire-omap/kernel/crypto/async_tx/async_pq.ko
+#lib/modules/KVER-ipfire-omap/kernel/crypto/async_tx/async_raid6_recov.ko
+#lib/modules/KVER-ipfire-omap/kernel/crypto/async_tx/async_tx.ko
+#lib/modules/KVER-ipfire-omap/kernel/crypto/async_tx/async_xor.ko
+#lib/modules/KVER-ipfire-omap/kernel/crypto/async_tx/raid6test.ko
+#lib/modules/KVER-ipfire-omap/kernel/crypto/authenc.ko
+#lib/modules/KVER-ipfire-omap/kernel/crypto/authencesn.ko
+#lib/modules/KVER-ipfire-omap/kernel/crypto/blowfish_common.ko
+#lib/modules/KVER-ipfire-omap/kernel/crypto/blowfish_generic.ko
+#lib/modules/KVER-ipfire-omap/kernel/crypto/camellia.ko
+#lib/modules/KVER-ipfire-omap/kernel/crypto/cast5.ko
+#lib/modules/KVER-ipfire-omap/kernel/crypto/cast6.ko
+#lib/modules/KVER-ipfire-omap/kernel/crypto/cbc.ko
+#lib/modules/KVER-ipfire-omap/kernel/crypto/ccm.ko
+#lib/modules/KVER-ipfire-omap/kernel/crypto/crc32c.ko
+#lib/modules/KVER-ipfire-omap/kernel/crypto/cryptd.ko
+#lib/modules/KVER-ipfire-omap/kernel/crypto/crypto_user.ko
+#lib/modules/KVER-ipfire-omap/kernel/crypto/ctr.ko
+#lib/modules/KVER-ipfire-omap/kernel/crypto/cts.ko
+#lib/modules/KVER-ipfire-omap/kernel/crypto/des_generic.ko
+#lib/modules/KVER-ipfire-omap/kernel/crypto/ecb.ko
+#lib/modules/KVER-ipfire-omap/kernel/crypto/fcrypt.ko
+#lib/modules/KVER-ipfire-omap/kernel/crypto/gcm.ko
+#lib/modules/KVER-ipfire-omap/kernel/crypto/gf128mul.ko
+#lib/modules/KVER-ipfire-omap/kernel/crypto/ghash-generic.ko
+#lib/modules/KVER-ipfire-omap/kernel/crypto/khazad.ko
+#lib/modules/KVER-ipfire-omap/kernel/crypto/lrw.ko
+#lib/modules/KVER-ipfire-omap/kernel/crypto/lzo.ko
+#lib/modules/KVER-ipfire-omap/kernel/crypto/md4.ko
+#lib/modules/KVER-ipfire-omap/kernel/crypto/md5.ko
+#lib/modules/KVER-ipfire-omap/kernel/crypto/michael_mic.ko
+#lib/modules/KVER-ipfire-omap/kernel/crypto/pcbc.ko
+#lib/modules/KVER-ipfire-omap/kernel/crypto/pcrypt.ko
+#lib/modules/KVER-ipfire-omap/kernel/crypto/rmd128.ko
+#lib/modules/KVER-ipfire-omap/kernel/crypto/rmd160.ko
+#lib/modules/KVER-ipfire-omap/kernel/crypto/rmd256.ko
+#lib/modules/KVER-ipfire-omap/kernel/crypto/rmd320.ko
+#lib/modules/KVER-ipfire-omap/kernel/crypto/salsa20_generic.ko
+#lib/modules/KVER-ipfire-omap/kernel/crypto/seed.ko
+#lib/modules/KVER-ipfire-omap/kernel/crypto/seqiv.ko
+#lib/modules/KVER-ipfire-omap/kernel/crypto/serpent.ko
+#lib/modules/KVER-ipfire-omap/kernel/crypto/sha1_generic.ko
+#lib/modules/KVER-ipfire-omap/kernel/crypto/sha256_generic.ko
+#lib/modules/KVER-ipfire-omap/kernel/crypto/sha512_generic.ko
+#lib/modules/KVER-ipfire-omap/kernel/crypto/tea.ko
+#lib/modules/KVER-ipfire-omap/kernel/crypto/tgr192.ko
+#lib/modules/KVER-ipfire-omap/kernel/crypto/twofish_common.ko
+#lib/modules/KVER-ipfire-omap/kernel/crypto/twofish_generic.ko
+#lib/modules/KVER-ipfire-omap/kernel/crypto/vmac.ko
+#lib/modules/KVER-ipfire-omap/kernel/crypto/wp512.ko
+#lib/modules/KVER-ipfire-omap/kernel/crypto/xcbc.ko
+#lib/modules/KVER-ipfire-omap/kernel/crypto/xor.ko
+#lib/modules/KVER-ipfire-omap/kernel/crypto/xts.ko
+#lib/modules/KVER-ipfire-omap/kernel/crypto/zlib.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers
+#lib/modules/KVER-ipfire-omap/kernel/drivers/ata
+#lib/modules/KVER-ipfire-omap/kernel/drivers/ata/ahci_platform.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/ata/libahci.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/ata/libata.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/ata/pata_arasan_cf.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/ata/pata_of_platform.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/ata/pata_platform.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/ata/sata_mv.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/atm
+#lib/modules/KVER-ipfire-omap/kernel/drivers/atm/atmtcp.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/base
+#lib/modules/KVER-ipfire-omap/kernel/drivers/base/regmap
+#lib/modules/KVER-ipfire-omap/kernel/drivers/base/regmap/regmap-i2c.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/bcma
+#lib/modules/KVER-ipfire-omap/kernel/drivers/bcma/bcma.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/block
+#lib/modules/KVER-ipfire-omap/kernel/drivers/block/aoe
+#lib/modules/KVER-ipfire-omap/kernel/drivers/block/aoe/aoe.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/block/cryptoloop.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/block/mg_disk.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/block/nbd.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/block/osdblk.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/block/rbd.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/bluetooth
+#lib/modules/KVER-ipfire-omap/kernel/drivers/bluetooth/ath3k.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/bluetooth/bcm203x.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/bluetooth/bfusb.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/bluetooth/bpa10x.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/bluetooth/btmrvl.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/bluetooth/btmrvl_sdio.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/bluetooth/btsdio.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/bluetooth/btusb.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/bluetooth/btwilink.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/bluetooth/hci_uart.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/bluetooth/hci_vhci.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/cdrom
+#lib/modules/KVER-ipfire-omap/kernel/drivers/cdrom/cdrom.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/char
+#lib/modules/KVER-ipfire-omap/kernel/drivers/char/hw_random
+#lib/modules/KVER-ipfire-omap/kernel/drivers/char/hw_random/omap-rng.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/char/hw_random/rng-core.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/char/hw_random/timeriomem-rng.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/char/ipmi
+#lib/modules/KVER-ipfire-omap/kernel/drivers/char/ipmi/ipmi_devintf.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/char/ipmi/ipmi_msghandler.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/char/ipmi/ipmi_poweroff.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/char/ipmi/ipmi_si.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/char/ipmi/ipmi_watchdog.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/char/lp.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/char/nvram.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/char/ppdev.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/connector
+#lib/modules/KVER-ipfire-omap/kernel/drivers/connector/cn.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/crypto
+#lib/modules/KVER-ipfire-omap/kernel/drivers/crypto/omap-aes.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/crypto/omap-sham.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/dma
+#lib/modules/KVER-ipfire-omap/kernel/drivers/dma/dmatest.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/dma/dw_dmac.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/dma/timb_dma.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/gpio
+#lib/modules/KVER-ipfire-omap/kernel/drivers/gpio/gpio-adp5588.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/gpio/gpio-generic.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/gpio/gpio-it8761e.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/gpio/gpio-max7300.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/gpio/gpio-max730x.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/gpio/gpio-max732x.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/gpio/gpio-mcp23s08.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/gpio/gpio-pca953x.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/gpio/gpio-pcf857x.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/gpio/gpio-twl4030.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/gpu
+#lib/modules/KVER-ipfire-omap/kernel/drivers/gpu/drm
+#lib/modules/KVER-ipfire-omap/kernel/drivers/gpu/drm/drm.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hid
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-a4tech.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-apple.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-axff.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-belkin.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-cherry.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-chicony.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-cypress.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-dr.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-elecom.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-ezkey.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-gaff.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-gyration.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-holtekff.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-kensington.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-keytouch.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-kye.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-lcpower.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-logitech-dj.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-logitech.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-magicmouse.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-microsoft.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-monterey.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-multitouch.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-ntrig.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-ortek.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-petalynx.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-picolcd.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-pl.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-primax.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-prodikeys.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-quanta.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-roccat-arvo.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-roccat-common.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-roccat-kone.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-roccat-koneplus.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-roccat-kovaplus.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-roccat-pyra.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-roccat.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-samsung.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-sjoy.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-sony.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-speedlink.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-sunplus.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-tmff.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-topseed.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-twinhan.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-uclogic.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-wacom.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-waltop.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-wiimote.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-zpff.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-zydacron.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/usbhid
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/usbhid/usbhid.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/usbhid/usbkbd.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/usbhid/usbmouse.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ad7414.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ad7418.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/adm1021.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/adm1025.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/adm1026.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/adm1029.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/adm1031.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/adm9240.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ads1015.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ads7828.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/adt7411.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/adt7462.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/adt7470.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/adt7475.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/amc6821.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/asc7621.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/atxp1.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/dme1737.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ds1621.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ds620.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/emc1403.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/emc2103.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/emc6w201.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/f71805f.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/f71882fg.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/f75375s.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/g760a.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/gl518sm.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/gl520sm.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/gpio-fan.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/hwmon-vid.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/hwmon.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ibmaem.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ibmpex.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/it87.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/jc42.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lineage-pem.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm63.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm73.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm75.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm77.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm78.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm80.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm83.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm85.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm87.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm90.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm92.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm93.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm95241.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm95245.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ltc4151.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ltc4215.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ltc4245.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ltc4261.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/max16065.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/max1619.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/max1668.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/max6639.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/max6642.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/max6650.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ntc_thermistor.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pc87360.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pc87427.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pcf8591.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pmbus
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pmbus/adm1275.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pmbus/lm25066.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pmbus/ltc2978.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pmbus/max16064.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pmbus/max34440.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pmbus/max8688.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pmbus/pmbus.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pmbus/pmbus_core.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pmbus/ucd9000.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pmbus/ucd9200.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pmbus/zl6100.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/sch5627.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/sch5636.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/sch56xx-common.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/sht15.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/sht21.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/smm665.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/smsc47b397.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/smsc47m1.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/smsc47m192.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/thmc50.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/tmp102.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/tmp401.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/tmp421.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/twl4030-madc-hwmon.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/vt1211.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/w83627ehf.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/w83627hf.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/w83781d.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/w83791d.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/w83792d.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/w83793.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/w83795.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/w83l785ts.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/w83l786ng.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwspinlock
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwspinlock/hwspinlock_core.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/hwspinlock/omap_hwspinlock.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c
+#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/algos
+#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/algos/i2c-algo-bit.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/algos/i2c-algo-pca.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/busses
+#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/busses/i2c-diolan-u2c.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/busses/i2c-gpio.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/busses/i2c-ocores.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/busses/i2c-parport-light.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/busses/i2c-parport.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/busses/i2c-pca-platform.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/busses/i2c-simtec.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/busses/i2c-stub.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/busses/i2c-taos-evm.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/busses/i2c-tiny-usb.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/busses/i2c-xiic.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/i2c-dev.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/i2c-mux.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/i2c-smbus.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/muxes
+#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/muxes/gpio-i2cmux.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/muxes/pca9541.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/muxes/pca954x.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/ieee802154
+#lib/modules/KVER-ipfire-omap/kernel/drivers/ieee802154/fakehard.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/input
+#lib/modules/KVER-ipfire-omap/kernel/drivers/input/ff-memless.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/input/input-polldev.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard
+#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/adp5588-keys.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/adp5589-keys.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/gpio_keys.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/gpio_keys_polled.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/lkkbd.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/lm8323.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/matrix_keypad.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/max7359_keypad.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/mcs_touchkey.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/mpr121_touchkey.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/newtonkbd.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/omap-keypad.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/omap4-keypad.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/opencores-kbd.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/qt1070.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/qt2160.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/stowaway.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/sunkbd.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/tca6416-keypad.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/twl4030_keypad.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/xtkbd.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc
+#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/ad714x-i2c.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/ad714x.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/ati_remote2.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/bma150.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/cm109.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/keyspan_remote.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/pcf50633-input.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/pcf8574_keypad.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/powermate.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/pwm-beeper.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/rotary_encoder.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/twl4030-pwrbutton.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/twl4030-vibra.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/twl6040-vibra.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/yealink.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/input/serio
+#lib/modules/KVER-ipfire-omap/kernel/drivers/input/serio/altera_ps2.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/input/serio/ps2mult.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/input/sparse-keymap.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn
+#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/capi
+#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/capi/capi.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/capi/capidrv.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/capi/kernelcapi.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/divert
+#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/divert/dss1_divert.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/gigaset
+#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/gigaset/bas_gigaset.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/gigaset/gigaset.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/gigaset/ser_gigaset.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/gigaset/usb_gigaset.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/hardware
+#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/hardware/mISDN
+#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/hardware/mISDN/hfcsusb.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/hisax
+#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/hisax/hfc4s8s_l1.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/hisax/hfc_usb.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/hisax/hisax.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/hisax/hisax_st5481.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/i4l
+#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/i4l/isdn.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/i4l/isdn_bsdcomp.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/i4l/isdnhdlc.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/mISDN
+#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/mISDN/l1oip.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/mISDN/mISDN_core.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/mISDN/mISDN_dsp.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/leds
+#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/leds-bd2802.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/leds-gpio.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/leds-lm3530.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/leds-lp3944.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/leds-lp5521.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/leds-lp5523.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/leds-lt3593.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/leds-pca9532.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/leds-pca955x.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/leds-regulator.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/ledtrig-backlight.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/ledtrig-default-on.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/ledtrig-gpio.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/ledtrig-netdev.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/ledtrig-timer.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/md
+#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-bufio.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-crypt.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-delay.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-flakey.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-log-userspace.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-log.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-mirror.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-mod.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-multipath.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-queue-length.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-raid.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-region-hash.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-round-robin.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-service-time.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-snapshot.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-thin-pool.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-zero.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/md/linear.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/md/md-mod.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/md/multipath.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/md/persistent-data
+#lib/modules/KVER-ipfire-omap/kernel/drivers/md/persistent-data/dm-persistent-data.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/md/raid0.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/md/raid1.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/md/raid10.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/md/raid456.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/mc44s803.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/mt20xx.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/tda18271.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/tda827x.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/tda8290.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/tda9887.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/tea5761.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/tea5767.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/tuner-simple.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/tuner-types.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/tuner-xc2028.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/xc4000.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/xc5000.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/dvb
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/dvb/dvb-core
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/dvb/dvb-core/dvb-core.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/media.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/radio
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/radio/wl128x
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/radio/wl128x/fm_drv.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-adstech-dvb-t-pci.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-alink-dtu-m.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-anysee.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-apac-viewcomp.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-asus-pc39.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-ati-tv-wonder-hd-600.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-ati-x10.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-avermedia-a16d.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-avermedia-cardbus.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-avermedia-dvbt.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-avermedia-m135a.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-avermedia-m733a-rm-k6.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-avermedia-rm-ks.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-avermedia.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-avertv-303.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-azurewave-ad-tu700.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-behold-columbus.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-behold.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-budget-ci-old.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-cinergy-1400.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-cinergy.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-dib0700-nec.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-dib0700-rc5.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-digitalnow-tinytwin.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-digittrade.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-dm1105-nec.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-dntv-live-dvb-t.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-dntv-live-dvbt-pro.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-em-terratec.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-encore-enltv-fm53.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-encore-enltv.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-encore-enltv2.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-evga-indtube.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-eztv.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-flydvb.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-flyvideo.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-fusionhdtv-mce.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-gadmei-rm008z.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-genius-tvgo-a11mce.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-gotview7135.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-hauppauge.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-imon-mce.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-imon-pad.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-iodata-bctv7e.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-kaiomy.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-kworld-315u.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-kworld-plus-tv-analog.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-leadtek-y04g0051.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-lirc.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-lme2510.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-manli.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-medion-x10.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-msi-digivox-ii.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-msi-digivox-iii.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-msi-tvanywhere-plus.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-msi-tvanywhere.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-nebula.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-nec-terratec-cinergy-xs.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-norwood.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-npgtech.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-pctv-sedna.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-pinnacle-color.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-pinnacle-grey.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-pinnacle-pctv-hd.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-pixelview-002t.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-pixelview-mk12.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-pixelview-new.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-pixelview.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-powercolor-real-angel.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-proteus-2309.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-purpletv.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-pv951.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-rc6-mce.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-real-audio-220-32-keys.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-snapstream-firefly.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-streamzap.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-tbs-nec.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-technisat-usb2.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-terratec-cinergy-xs.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-terratec-slim-2.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-terratec-slim.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-tevii-nec.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-tivo.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-total-media-in-hand.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-trekstor.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-tt-1500.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-twinhan1027.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-videomate-m1f.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-videomate-s350.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-videomate-tv-pvr.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-winfast-usbii-deluxe.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-winfast.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/lirc_dev.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/rc-core.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/video
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/video/ir-kbd-i2c.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/video/v4l2-common.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/video/v4l2-int-device.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/media/video/videodev.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/memstick
+#lib/modules/KVER-ipfire-omap/kernel/drivers/memstick/core
+#lib/modules/KVER-ipfire-omap/kernel/drivers/memstick/core/memstick.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/memstick/core/mspro_block.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd
+#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd/htc-pasic3.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd/pcf50633-adc.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd/pcf50633-gpio.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd/pcf50633.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd/sm501.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd/tps6105x.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd/tps65010.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd/tps6507x.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd/twl4030-madc.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd/twl6030-pwm.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd/wl1273-core.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd/wm8400-core.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/misc
+#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/apds9802als.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/apds990x.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/bh1770glc.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/bh1780gli.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/bmp085.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/c2port
+#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/c2port/core.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/ds1682.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/eeprom
+#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/eeprom/at24.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/eeprom/eeprom.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/eeprom/eeprom_93cx6.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/eeprom/max6875.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/enclosure.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/fsa9480.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/hmc6352.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/ics932s401.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/isl29003.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/isl29020.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/iwmc3200top
+#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/iwmc3200top/iwmc3200top.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/lis3lv02d
+#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/lis3lv02d/lis3lv02d.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/lis3lv02d/lis3lv02d_i2c.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/ti-st
+#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/ti-st/st_drv.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/tsl2550.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/mmc
+#lib/modules/KVER-ipfire-omap/kernel/drivers/mmc/card
+#lib/modules/KVER-ipfire-omap/kernel/drivers/mmc/card/mmc_block.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/mmc/card/mmc_test.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/mmc/card/sdio_uart.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/mmc/host
+#lib/modules/KVER-ipfire-omap/kernel/drivers/mmc/host/dw_mmc.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/mmc/host/sdhci-pltfm.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/mmc/host/sdhci.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/mmc/host/ushc.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/mmc/host/vub300.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd
+#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/ar7part.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/chips
+#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/chips/chipreg.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/lpddr
+#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/lpddr/lpddr_cmds.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/lpddr/qinfo_probe.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/maps
+#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/maps/physmap.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/mtd.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/mtd_blkdevs.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/mtdblock.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/mtdchar.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/nand
+#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/nand/nand_ecc.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/ofpart.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/sm_ftl.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/tests
+#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/tests/mtd_nandecctest.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/tests/mtd_oobtest.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/tests/mtd_pagetest.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/tests/mtd_readtest.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/tests/mtd_speedtest.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/tests/mtd_stresstest.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/tests/mtd_subpagetest.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/tests/mtd_torturetest.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/ubi
+#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/ubi/ubi.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/bonding
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/bonding/bonding.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/dummy.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/eql.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/8390
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/8390/ax88796.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/broadcom
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/broadcom/b44.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/davicom
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/davicom/dm9000.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/dlink
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/dlink/de600.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/dlink/de620.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/dnet.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/ethoc.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/micrel
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/micrel/ks8842.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/micrel/ks8851_mll.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/seeq
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/seeq/seeq8005.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/smsc
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/smsc/smc911x.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/smsc/smc91x.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/smsc/smsc911x.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/stmicro
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/stmicro/stmmac
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/stmicro/stmmac/stmmac.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ifb.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/imq.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/irda
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/irda/irda-usb.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/irda/irtty-sir.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/irda/kingsun-sir.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/irda/ks959-sir.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/irda/ksdazzle-sir.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/irda/mcs7780.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/irda/sir-dev.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/irda/stir4200.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/macvlan.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/macvtap.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/mii.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/broadcom.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/cicada.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/davicom.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/dp83640.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/et1011c.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/icplus.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/lxt.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/marvell.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/mdio-bitbang.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/mdio-gpio.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/micrel.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/national.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/qsemi.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/realtek.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/smsc.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/ste10Xp.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/vitesse.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ppp
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ppp/bsd_comp.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ppp/ppp_async.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ppp/ppp_deflate.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ppp/ppp_generic.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ppp/ppp_mppe.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ppp/ppp_synctty.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ppp/pppoe.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ppp/pppox.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ppp/pptp.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/slip
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/slip/slhc.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/slip/slip.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/tun.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/asix.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/catc.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/cdc_eem.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/cdc_ether.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/cdc_ncm.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/cdc_subset.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/cx82310_eth.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/dm9601.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/gl620a.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/hso.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/int51x1.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/kalmia.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/kaweth.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/lg-vl600.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/mcs7830.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/net1080.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/pegasus.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/plusb.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/rndis_host.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/rtl8150.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/sierra_net.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/smsc75xx.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/smsc95xx.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/usbnet.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/zaurus.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/veth.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wan
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wan/dlci.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wan/hdlc.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wan/hdlc_cisco.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wan/hdlc_fr.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wan/hdlc_ppp.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wan/hdlc_raw.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wan/hdlc_raw_eth.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wireless
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wireless/at76c50x-usb.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wireless/hostap
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wireless/hostap/hostap.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wireless/rndis_wlan.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wireless/zd1201.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/parport
+#lib/modules/KVER-ipfire-omap/kernel/drivers/parport/parport.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/parport/parport_ax88796.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/power
+#lib/modules/KVER-ipfire-omap/kernel/drivers/power/gpio-charger.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/power/twl4030_charger.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/pps
+#lib/modules/KVER-ipfire-omap/kernel/drivers/pps/pps_core.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/ptp
+#lib/modules/KVER-ipfire-omap/kernel/drivers/ptp/ptp.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/regulator
+#lib/modules/KVER-ipfire-omap/kernel/drivers/regulator/gpio-regulator.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc
+#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-cmos.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-ds1286.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-ds1307.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-ds1374.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-ds1511.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-ds1553.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-ds1672.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-ds1742.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-ds3232.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-em3027.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-fm3130.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-isl12022.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-isl1208.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-m41t80.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-m48t35.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-m48t59.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-m48t86.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-max6900.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-msm6242.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-pcf50633.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-pcf8563.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-pcf8583.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-rp5c01.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-rs5c372.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-rv3029c2.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-rx8025.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-rx8581.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-s35390a.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-stk17ta8.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-v3020.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-x1205.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi
+#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/ch.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/device_handler
+#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/device_handler/scsi_dh.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/device_handler/scsi_dh_alua.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/device_handler/scsi_dh_emc.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/device_handler/scsi_dh_hp_sw.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/device_handler/scsi_dh_rdac.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/fcoe
+#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/fcoe/libfcoe.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/iscsi_boot_sysfs.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/iscsi_tcp.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/libfc
+#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/libfc/libfc.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/libiscsi.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/libiscsi_tcp.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/libsas
+#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/libsas/libsas.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/osd
+#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/osd/libosd.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/osd/osd.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/raid_class.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/scsi_mod.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/scsi_transport_fc.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/scsi_transport_iscsi.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/scsi_transport_sas.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/scsi_transport_spi.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/scsi_transport_srp.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/scsi_wait_scan.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/sd_mod.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/ses.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/sg.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/sr_mod.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/ssb
+#lib/modules/KVER-ipfire-omap/kernel/drivers/ssb/ssb.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/staging
+#lib/modules/KVER-ipfire-omap/kernel/drivers/staging/usbip
+#lib/modules/KVER-ipfire-omap/kernel/drivers/staging/usbip/usbip-core.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/staging/usbip/usbip-host.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/staging/usbip/vhci-hcd.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/tty
+#lib/modules/KVER-ipfire-omap/kernel/drivers/tty/n_gsm.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/tty/serial
+#lib/modules/KVER-ipfire-omap/kernel/drivers/tty/serial/8250_dw.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/tty/serial/altera_jtaguart.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/tty/serial/altera_uart.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/tty/serial/timbuart.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/tty/serial/xilinx_uartps.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/uio
+#lib/modules/KVER-ipfire-omap/kernel/drivers/uio/uio.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/uio/uio_pdrv.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/uio/uio_pdrv_genirq.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/atm
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/atm/cxacru.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/atm/speedtch.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/atm/ueagle-atm.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/atm/usbatm.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/atm/xusbatm.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/class
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/class/cdc-acm.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/class/cdc-wdm.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/class/usblp.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/class/usbtmc.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/dwc3
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/dwc3/dwc3-omap.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/dwc3/dwc3.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/host
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/host/isp116x-hcd.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/host/isp1362-hcd.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/host/oxu210hp-hcd.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/host/r8a66597-hcd.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/host/sl811-hcd.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/host/u132-hcd.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/cypress_cy7c63.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/cytherm.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/emi26.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/emi62.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/ftdi-elan.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/iowarrior.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/isight_firmware.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/sisusbvga
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/sisusbvga/sisusbvga.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/usblcd.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/usbled.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/usbsevseg.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/uss720.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/yurex.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/otg
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/otg/gpio_vbus.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/otg/twl4030-usb.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/otg/twl6030-usb.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/aircable.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/ark3116.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/belkin_sa.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/ch341.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/cp210x.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/cypress_m8.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/digi_acceleport.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/empeg.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/ftdi_sio.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/funsoft.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/garmin_gps.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/hp4x.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/io_edgeport.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/io_ti.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/ipaq.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/ipw.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/ir-usb.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/iuu_phoenix.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/keyspan_pda.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/mct_u232.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/mos7720.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/mos7840.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/moto_modem.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/opticon.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/option.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/oti6858.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/pl2303.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/qcaux.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/qcserial.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/safe_serial.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/siemens_mpi.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/sierra.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/spcp8x5.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/ssu100.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/symbolserial.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/ti_usb_3410_5052.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/usb_wwan.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/usbserial.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/visor.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/vivopay-serial.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/whiteheat.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/zio.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/uas.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-alauda.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-cypress.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-datafab.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-eneub6250.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-freecom.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-isd200.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-jumpshot.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-karma.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-onetouch.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-realtek.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-sddr09.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-sddr55.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-usbat.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/usb-storage.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/video
+#lib/modules/KVER-ipfire-omap/kernel/drivers/video/backlight
+#lib/modules/KVER-ipfire-omap/kernel/drivers/video/backlight/adp8860_bl.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/video/backlight/adp8870_bl.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/video/backlight/lcd.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/video/backlight/pcf50633-backlight.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/video/backlight/platform_lcd.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/video/backlight/pwm_bl.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/video/fb_sys_fops.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/video/metronomefb.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/video/output.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/video/sm501fb.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/video/smscufx.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/video/syscopyarea.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/video/sysfillrect.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/video/sysimgblt.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/video/tmiofb.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/video/uvesafb.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/w1
+#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/masters
+#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/masters/ds1wm.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/masters/ds2482.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/masters/ds2490.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/masters/omap_hdq.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/masters/w1-gpio.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/slaves
+#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/slaves/w1_bq27000.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/slaves/w1_ds2408.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/slaves/w1_ds2423.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/slaves/w1_ds2431.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/slaves/w1_ds2433.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/slaves/w1_ds2760.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/slaves/w1_ds2780.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/slaves/w1_smem.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/slaves/w1_therm.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/wire.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/watchdog
+#lib/modules/KVER-ipfire-omap/kernel/drivers/watchdog/dw_wdt.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/watchdog/max63xx_wdt.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/watchdog/mpcore_wdt.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/watchdog/omap_wdt.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/watchdog/pcwd_usb.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/watchdog/softdog.ko
+#lib/modules/KVER-ipfire-omap/kernel/drivers/watchdog/twl4030_wdt.ko
+#lib/modules/KVER-ipfire-omap/kernel/fs
+#lib/modules/KVER-ipfire-omap/kernel/fs/autofs4
+#lib/modules/KVER-ipfire-omap/kernel/fs/autofs4/autofs4.ko
+#lib/modules/KVER-ipfire-omap/kernel/fs/cachefiles
+#lib/modules/KVER-ipfire-omap/kernel/fs/cachefiles/cachefiles.ko
+#lib/modules/KVER-ipfire-omap/kernel/fs/cifs
+#lib/modules/KVER-ipfire-omap/kernel/fs/cifs/cifs.ko
+#lib/modules/KVER-ipfire-omap/kernel/fs/ecryptfs
+#lib/modules/KVER-ipfire-omap/kernel/fs/ecryptfs/ecryptfs.ko
+#lib/modules/KVER-ipfire-omap/kernel/fs/exportfs
+#lib/modules/KVER-ipfire-omap/kernel/fs/exportfs/exportfs.ko
+#lib/modules/KVER-ipfire-omap/kernel/fs/fat
+#lib/modules/KVER-ipfire-omap/kernel/fs/fat/fat.ko
+#lib/modules/KVER-ipfire-omap/kernel/fs/fat/vfat.ko
+#lib/modules/KVER-ipfire-omap/kernel/fs/fscache
+#lib/modules/KVER-ipfire-omap/kernel/fs/fscache/fscache.ko
+#lib/modules/KVER-ipfire-omap/kernel/fs/fuse
+#lib/modules/KVER-ipfire-omap/kernel/fs/fuse/cuse.ko
+#lib/modules/KVER-ipfire-omap/kernel/fs/fuse/fuse.ko
+#lib/modules/KVER-ipfire-omap/kernel/fs/isofs
+#lib/modules/KVER-ipfire-omap/kernel/fs/isofs/isofs.ko
+#lib/modules/KVER-ipfire-omap/kernel/fs/jffs2
+#lib/modules/KVER-ipfire-omap/kernel/fs/jffs2/jffs2.ko
+#lib/modules/KVER-ipfire-omap/kernel/fs/jfs
+#lib/modules/KVER-ipfire-omap/kernel/fs/jfs/jfs.ko
+#lib/modules/KVER-ipfire-omap/kernel/fs/lockd
+#lib/modules/KVER-ipfire-omap/kernel/fs/lockd/lockd.ko
+#lib/modules/KVER-ipfire-omap/kernel/fs/nfs
+#lib/modules/KVER-ipfire-omap/kernel/fs/nfs/nfs.ko
+#lib/modules/KVER-ipfire-omap/kernel/fs/nfs_common
+#lib/modules/KVER-ipfire-omap/kernel/fs/nfs_common/nfs_acl.ko
+#lib/modules/KVER-ipfire-omap/kernel/fs/nfsd
+#lib/modules/KVER-ipfire-omap/kernel/fs/nfsd/nfsd.ko
+#lib/modules/KVER-ipfire-omap/kernel/fs/quota
+#lib/modules/KVER-ipfire-omap/kernel/fs/quota/quota_tree.ko
+#lib/modules/KVER-ipfire-omap/kernel/fs/quota/quota_v1.ko
+#lib/modules/KVER-ipfire-omap/kernel/fs/quota/quota_v2.ko
+#lib/modules/KVER-ipfire-omap/kernel/fs/reiserfs
+#lib/modules/KVER-ipfire-omap/kernel/fs/reiserfs/reiserfs.ko
+#lib/modules/KVER-ipfire-omap/kernel/fs/udf
+#lib/modules/KVER-ipfire-omap/kernel/fs/udf/udf.ko
+#lib/modules/KVER-ipfire-omap/kernel/fs/ufs
+#lib/modules/KVER-ipfire-omap/kernel/fs/ufs/ufs.ko
+#lib/modules/KVER-ipfire-omap/kernel/fs/xfs
+#lib/modules/KVER-ipfire-omap/kernel/fs/xfs/xfs.ko
+#lib/modules/KVER-ipfire-omap/kernel/lib
+#lib/modules/KVER-ipfire-omap/kernel/lib/cordic.ko
+#lib/modules/KVER-ipfire-omap/kernel/lib/crc-ccitt.ko
+#lib/modules/KVER-ipfire-omap/kernel/lib/crc-itu-t.ko
+#lib/modules/KVER-ipfire-omap/kernel/lib/crc-t10dif.ko
+#lib/modules/KVER-ipfire-omap/kernel/lib/crc7.ko
+#lib/modules/KVER-ipfire-omap/kernel/lib/crc8.ko
+#lib/modules/KVER-ipfire-omap/kernel/lib/libcrc32c.ko
+#lib/modules/KVER-ipfire-omap/kernel/lib/raid6
+#lib/modules/KVER-ipfire-omap/kernel/lib/raid6/raid6_pq.ko
+#lib/modules/KVER-ipfire-omap/kernel/lib/ts_bm.ko
+#lib/modules/KVER-ipfire-omap/kernel/lib/ts_fsm.ko
+#lib/modules/KVER-ipfire-omap/kernel/lib/ts_kmp.ko
+#lib/modules/KVER-ipfire-omap/kernel/net
+#lib/modules/KVER-ipfire-omap/kernel/net/802
+#lib/modules/KVER-ipfire-omap/kernel/net/802/garp.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/802/p8022.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/802/psnap.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/802/stp.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/8021q
+#lib/modules/KVER-ipfire-omap/kernel/net/8021q/8021q.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/atm
+#lib/modules/KVER-ipfire-omap/kernel/net/atm/atm.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/atm/br2684.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/atm/clip.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/atm/pppoatm.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/batman-adv
+#lib/modules/KVER-ipfire-omap/kernel/net/batman-adv/batman-adv.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/bluetooth
+#lib/modules/KVER-ipfire-omap/kernel/net/bluetooth/bluetooth.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/bluetooth/bnep
+#lib/modules/KVER-ipfire-omap/kernel/net/bluetooth/bnep/bnep.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/bluetooth/cmtp
+#lib/modules/KVER-ipfire-omap/kernel/net/bluetooth/cmtp/cmtp.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/bluetooth/hidp
+#lib/modules/KVER-ipfire-omap/kernel/net/bluetooth/hidp/hidp.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/bluetooth/rfcomm
+#lib/modules/KVER-ipfire-omap/kernel/net/bluetooth/rfcomm/rfcomm.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/bridge
+#lib/modules/KVER-ipfire-omap/kernel/net/bridge/bridge.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter
+#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_802_3.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_among.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_arp.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_arpreply.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_dnat.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_ip.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_ip6.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_limit.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_log.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_mark.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_mark_m.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_nflog.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_pkttype.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_redirect.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_snat.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_stp.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_ulog.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_vlan.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebtable_broute.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebtable_filter.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebtable_nat.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebtables.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ceph
+#lib/modules/KVER-ipfire-omap/kernel/net/ceph/libceph.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ieee802154
+#lib/modules/KVER-ipfire-omap/kernel/net/ieee802154/6lowpan.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ieee802154/af_802154.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ieee802154/ieee802154.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv4
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/ah4.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/esp4.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/gre.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/inet_diag.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/ip_gre.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/ipcomp.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/ipip.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/arp_tables.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/arpt_mangle.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/arptable_filter.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ip_queue.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ip_tables.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ipt_CLUSTERIP.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ipt_ECN.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ipt_LOG.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ipt_MASQUERADE.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ipt_NETMAP.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ipt_REDIRECT.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ipt_REJECT.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ipt_ULOG.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ipt_ah.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ipt_ecn.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ipt_ipp2p.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/iptable_filter.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/iptable_mangle.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/iptable_nat.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/iptable_raw.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_conntrack_ipv4.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_defrag_ipv4.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat_amanda.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat_ftp.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat_h323.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat_irc.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat_pptp.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat_proto_dccp.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat_proto_gre.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat_proto_sctp.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat_proto_udplite.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat_sip.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat_snmp_basic.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat_tftp.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_bic.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_cubic.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_diag.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_highspeed.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_htcp.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_hybla.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_illinois.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_lp.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_scalable.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_vegas.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_veno.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_westwood.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_yeah.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tunnel4.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/xfrm4_tunnel.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv6
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/ah6.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/esp6.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/ip6_tunnel.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/ipcomp6.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/mip6.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6_queue.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6_tables.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6t_LOG.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6t_REJECT.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6t_ah.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6t_eui64.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6t_frag.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6t_hbh.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6t_ipv6header.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6t_mh.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6t_rt.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6table_filter.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6table_mangle.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6table_raw.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/nf_conntrack_ipv6.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/nf_defrag_ipv6.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/sit.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/tunnel6.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/xfrm6_mode_beet.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/xfrm6_mode_ro.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/xfrm6_mode_transport.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/xfrm6_mode_tunnel.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/xfrm6_tunnel.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/irda
+#lib/modules/KVER-ipfire-omap/kernel/net/irda/ircomm
+#lib/modules/KVER-ipfire-omap/kernel/net/irda/ircomm/ircomm-tty.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/irda/ircomm/ircomm.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/irda/irda.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/irda/irlan
+#lib/modules/KVER-ipfire-omap/kernel/net/irda/irlan/irlan.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/irda/irnet
+#lib/modules/KVER-ipfire-omap/kernel/net/irda/irnet/irnet.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/key
+#lib/modules/KVER-ipfire-omap/kernel/net/key/af_key.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/l2tp
+#lib/modules/KVER-ipfire-omap/kernel/net/l2tp/l2tp_core.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/l2tp/l2tp_eth.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/l2tp/l2tp_ip.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/l2tp/l2tp_netlink.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/l2tp/l2tp_ppp.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/llc
+#lib/modules/KVER-ipfire-omap/kernel/net/llc/llc.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/mac80211
+#lib/modules/KVER-ipfire-omap/kernel/net/mac80211/mac80211.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/ipvs
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/ipvs/ip_vs.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_amanda.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_broadcast.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_ftp.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_h323.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_irc.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_netbios_ns.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_netlink.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_pptp.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_proto_dccp.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_proto_gre.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_proto_sctp.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_proto_udplite.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_sane.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_sip.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_snmp.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_tftp.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_tproxy_core.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nfnetlink.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nfnetlink_log.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nfnetlink_queue.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/x_tables.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_AUDIT.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_CHECKSUM.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_CLASSIFY.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_CT.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_DSCP.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_HL.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_IDLETIMER.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_IMQ.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_LED.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_NFLOG.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_NFQUEUE.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_NOTRACK.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_RATEEST.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_TCPMSS.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_TCPOPTSTRIP.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_TEE.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_TPROXY.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_TRACE.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_addrtype.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_cluster.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_comment.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_connbytes.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_connlimit.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_connmark.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_conntrack.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_cpu.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_dccp.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_devgroup.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_dscp.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_esp.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_hashlimit.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_helper.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_hl.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_iprange.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_ipvs.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_layer7.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_length.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_limit.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_mac.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_mark.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_multiport.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_osf.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_owner.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_physdev.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_pkttype.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_policy.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_quota.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_rateest.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_realm.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_recent.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_sctp.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_socket.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_state.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_statistic.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_string.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_tcpmss.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_tcpudp.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_time.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_u32.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/rfkill
+#lib/modules/KVER-ipfire-omap/kernel/net/rfkill/rfkill-gpio.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/rfkill/rfkill-regulator.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/rfkill/rfkill.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/rxrpc
+#lib/modules/KVER-ipfire-omap/kernel/net/rxrpc/af-rxrpc.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/rxrpc/rxkad.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/sched
+#lib/modules/KVER-ipfire-omap/kernel/net/sched/act_csum.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/sched/act_gact.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/sched/act_ipt.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/sched/act_mirred.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/sched/act_nat.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/sched/act_pedit.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/sched/act_police.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/sched/act_simple.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/sched/act_skbedit.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/sched/cls_basic.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/sched/cls_flow.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/sched/cls_fw.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/sched/cls_route.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/sched/cls_rsvp.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/sched/cls_rsvp6.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/sched/cls_tcindex.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/sched/cls_u32.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/sched/em_cmp.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/sched/em_meta.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/sched/em_nbyte.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/sched/em_text.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/sched/em_u32.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_atm.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_cbq.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_choke.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_drr.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_dsmark.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_gred.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_hfsc.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_htb.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_ingress.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_mqprio.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_multiq.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_netem.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_prio.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_qfq.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_red.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_sfb.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_sfq.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_tbf.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_teql.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/sunrpc
+#lib/modules/KVER-ipfire-omap/kernel/net/sunrpc/auth_gss
+#lib/modules/KVER-ipfire-omap/kernel/net/sunrpc/auth_gss/auth_rpcgss.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/sunrpc/auth_gss/rpcsec_gss_krb5.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/sunrpc/sunrpc.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/wireless
+#lib/modules/KVER-ipfire-omap/kernel/net/wireless/cfg80211.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/wireless/lib80211.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/wireless/lib80211_crypt_ccmp.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/wireless/lib80211_crypt_tkip.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/wireless/lib80211_crypt_wep.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/xfrm
+#lib/modules/KVER-ipfire-omap/kernel/net/xfrm/xfrm_ipcomp.ko
+#lib/modules/KVER-ipfire-omap/kernel/net/xfrm/xfrm_user.ko
+#lib/modules/KVER-ipfire-omap/kernel/sound
+#lib/modules/KVER-ipfire-omap/kernel/sound/core
+#lib/modules/KVER-ipfire-omap/kernel/sound/core/oss
+#lib/modules/KVER-ipfire-omap/kernel/sound/core/oss/snd-mixer-oss.ko
+#lib/modules/KVER-ipfire-omap/kernel/sound/core/oss/snd-pcm-oss.ko
+#lib/modules/KVER-ipfire-omap/kernel/sound/core/seq
+#lib/modules/KVER-ipfire-omap/kernel/sound/core/seq/oss
+#lib/modules/KVER-ipfire-omap/kernel/sound/core/seq/oss/snd-seq-oss.ko
+#lib/modules/KVER-ipfire-omap/kernel/sound/core/seq/snd-seq-device.ko
+#lib/modules/KVER-ipfire-omap/kernel/sound/core/seq/snd-seq-dummy.ko
+#lib/modules/KVER-ipfire-omap/kernel/sound/core/seq/snd-seq-midi-event.ko
+#lib/modules/KVER-ipfire-omap/kernel/sound/core/seq/snd-seq-midi.ko
+#lib/modules/KVER-ipfire-omap/kernel/sound/core/seq/snd-seq-virmidi.ko
+#lib/modules/KVER-ipfire-omap/kernel/sound/core/seq/snd-seq.ko
+#lib/modules/KVER-ipfire-omap/kernel/sound/core/snd-hrtimer.ko
+#lib/modules/KVER-ipfire-omap/kernel/sound/core/snd-hwdep.ko
+#lib/modules/KVER-ipfire-omap/kernel/sound/core/snd-page-alloc.ko
+#lib/modules/KVER-ipfire-omap/kernel/sound/core/snd-pcm.ko
+#lib/modules/KVER-ipfire-omap/kernel/sound/core/snd-rawmidi.ko
+#lib/modules/KVER-ipfire-omap/kernel/sound/core/snd-timer.ko
+#lib/modules/KVER-ipfire-omap/kernel/sound/core/snd.ko
+#lib/modules/KVER-ipfire-omap/kernel/sound/drivers
+#lib/modules/KVER-ipfire-omap/kernel/sound/drivers/mpu401
+#lib/modules/KVER-ipfire-omap/kernel/sound/drivers/mpu401/snd-mpu401-uart.ko
+#lib/modules/KVER-ipfire-omap/kernel/sound/drivers/mpu401/snd-mpu401.ko
+#lib/modules/KVER-ipfire-omap/kernel/sound/drivers/snd-aloop.ko
+#lib/modules/KVER-ipfire-omap/kernel/sound/drivers/snd-dummy.ko
+#lib/modules/KVER-ipfire-omap/kernel/sound/drivers/snd-mtpav.ko
+#lib/modules/KVER-ipfire-omap/kernel/sound/drivers/snd-mts64.ko
+#lib/modules/KVER-ipfire-omap/kernel/sound/drivers/snd-portman2x4.ko
+#lib/modules/KVER-ipfire-omap/kernel/sound/drivers/snd-serial-u16550.ko
+#lib/modules/KVER-ipfire-omap/kernel/sound/drivers/snd-virmidi.ko
+#lib/modules/KVER-ipfire-omap/kernel/sound/soc
+#lib/modules/KVER-ipfire-omap/kernel/sound/soc/codecs
+#lib/modules/KVER-ipfire-omap/kernel/sound/soc/codecs/snd-soc-tlv320aic23.ko
+#lib/modules/KVER-ipfire-omap/kernel/sound/soc/codecs/snd-soc-tlv320aic3x.ko
+#lib/modules/KVER-ipfire-omap/kernel/sound/soc/codecs/snd-soc-tpa6130a2.ko
+#lib/modules/KVER-ipfire-omap/kernel/sound/soc/codecs/snd-soc-twl4030.ko
+#lib/modules/KVER-ipfire-omap/kernel/sound/soc/codecs/snd-soc-twl6040.ko
+#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap
+#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-am3517evm.ko
+#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-igep0020.ko
+#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-omap-mcbsp.ko
+#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-omap-mcpdm.ko
+#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-omap.ko
+#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-omap3beagle.ko
+#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-omap3evm.ko
+#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-omap3pandora.ko
+#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-overo.ko
+#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-rx51.ko
+#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-sdp3430.ko
+#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-sdp4430.ko
+#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-zoom2.ko
+#lib/modules/KVER-ipfire-omap/kernel/sound/soc/snd-soc-core.ko
+#lib/modules/KVER-ipfire-omap/kernel/sound/soundcore.ko
+#lib/modules/KVER-ipfire-omap/kernel/sound/usb
+#lib/modules/KVER-ipfire-omap/kernel/sound/usb/6fire
+#lib/modules/KVER-ipfire-omap/kernel/sound/usb/6fire/snd-usb-6fire.ko
+#lib/modules/KVER-ipfire-omap/kernel/sound/usb/caiaq
+#lib/modules/KVER-ipfire-omap/kernel/sound/usb/caiaq/snd-usb-caiaq.ko
+#lib/modules/KVER-ipfire-omap/kernel/sound/usb/misc
+#lib/modules/KVER-ipfire-omap/kernel/sound/usb/misc/snd-ua101.ko
+#lib/modules/KVER-ipfire-omap/kernel/sound/usb/snd-usb-audio.ko
+#lib/modules/KVER-ipfire-omap/kernel/sound/usb/snd-usbmidi-lib.ko
+#lib/modules/KVER-ipfire-omap/modules.alias
+#lib/modules/KVER-ipfire-omap/modules.alias.bin
+#lib/modules/KVER-ipfire-omap/modules.builtin
+#lib/modules/KVER-ipfire-omap/modules.ccwmap
+#lib/modules/KVER-ipfire-omap/modules.dep
+#lib/modules/KVER-ipfire-omap/modules.dep.bin
+#lib/modules/KVER-ipfire-omap/modules.ieee1394map
+#lib/modules/KVER-ipfire-omap/modules.inputmap
+#lib/modules/KVER-ipfire-omap/modules.isapnpmap
+#lib/modules/KVER-ipfire-omap/modules.ofmap
+#lib/modules/KVER-ipfire-omap/modules.order
+#lib/modules/KVER-ipfire-omap/modules.pcimap
+#lib/modules/KVER-ipfire-omap/modules.seriomap
+#lib/modules/KVER-ipfire-omap/modules.symbols
+#lib/modules/KVER-ipfire-omap/modules.symbols.bin
+#lib/modules/KVER-ipfire-omap/modules.usbmap
+#lib/modules/KVER-ipfire-omap/source
+boot/uInit-ipfire-omap
diff --git a/config/rootfiles/common/armv5tel/linux-rpi b/config/rootfiles/common/armv5tel/linux-rpi
new file mode 100644 (file)
index 0000000..0b8c57c
--- /dev/null
@@ -0,0 +1,1439 @@
+boot/System.map-KVER-ipfire-rpi
+#boot/System.map-ipfire-rpi
+boot/config-KVER-ipfire-rpi
+boot/kernel.img
+boot/vmlinuz-KVER-ipfire-rpi
+#lib/modules
+lib/modules/KVER-ipfire-rpi
+#lib/modules/KVER-ipfire-rpi/build
+#lib/modules/KVER-ipfire-rpi/kernel
+#lib/modules/KVER-ipfire-rpi/kernel/arch
+#lib/modules/KVER-ipfire-rpi/kernel/arch/arm
+#lib/modules/KVER-ipfire-rpi/kernel/arch/arm/mach-bcm2708
+#lib/modules/KVER-ipfire-rpi/kernel/arch/arm/mach-bcm2708/dmaer.ko
+#lib/modules/KVER-ipfire-rpi/kernel/crypto
+#lib/modules/KVER-ipfire-rpi/kernel/crypto/aes_generic.ko
+#lib/modules/KVER-ipfire-rpi/kernel/crypto/af_alg.ko
+#lib/modules/KVER-ipfire-rpi/kernel/crypto/algif_hash.ko
+#lib/modules/KVER-ipfire-rpi/kernel/crypto/algif_skcipher.ko
+#lib/modules/KVER-ipfire-rpi/kernel/crypto/ansi_cprng.ko
+#lib/modules/KVER-ipfire-rpi/kernel/crypto/anubis.ko
+#lib/modules/KVER-ipfire-rpi/kernel/crypto/arc4.ko
+#lib/modules/KVER-ipfire-rpi/kernel/crypto/async_tx
+#lib/modules/KVER-ipfire-rpi/kernel/crypto/async_tx/async_memcpy.ko
+#lib/modules/KVER-ipfire-rpi/kernel/crypto/async_tx/async_pq.ko
+#lib/modules/KVER-ipfire-rpi/kernel/crypto/async_tx/async_raid6_recov.ko
+#lib/modules/KVER-ipfire-rpi/kernel/crypto/async_tx/async_tx.ko
+#lib/modules/KVER-ipfire-rpi/kernel/crypto/async_tx/async_xor.ko
+#lib/modules/KVER-ipfire-rpi/kernel/crypto/async_tx/raid6test.ko
+#lib/modules/KVER-ipfire-rpi/kernel/crypto/authenc.ko
+#lib/modules/KVER-ipfire-rpi/kernel/crypto/authencesn.ko
+#lib/modules/KVER-ipfire-rpi/kernel/crypto/blowfish_common.ko
+#lib/modules/KVER-ipfire-rpi/kernel/crypto/blowfish_generic.ko
+#lib/modules/KVER-ipfire-rpi/kernel/crypto/camellia.ko
+#lib/modules/KVER-ipfire-rpi/kernel/crypto/cast5.ko
+#lib/modules/KVER-ipfire-rpi/kernel/crypto/cast6.ko
+#lib/modules/KVER-ipfire-rpi/kernel/crypto/cbc.ko
+#lib/modules/KVER-ipfire-rpi/kernel/crypto/ccm.ko
+#lib/modules/KVER-ipfire-rpi/kernel/crypto/crc32c.ko
+#lib/modules/KVER-ipfire-rpi/kernel/crypto/cryptd.ko
+#lib/modules/KVER-ipfire-rpi/kernel/crypto/crypto_user.ko
+#lib/modules/KVER-ipfire-rpi/kernel/crypto/ctr.ko
+#lib/modules/KVER-ipfire-rpi/kernel/crypto/cts.ko
+#lib/modules/KVER-ipfire-rpi/kernel/crypto/des_generic.ko
+#lib/modules/KVER-ipfire-rpi/kernel/crypto/ecb.ko
+#lib/modules/KVER-ipfire-rpi/kernel/crypto/fcrypt.ko
+#lib/modules/KVER-ipfire-rpi/kernel/crypto/gcm.ko
+#lib/modules/KVER-ipfire-rpi/kernel/crypto/gf128mul.ko
+#lib/modules/KVER-ipfire-rpi/kernel/crypto/ghash-generic.ko
+#lib/modules/KVER-ipfire-rpi/kernel/crypto/khazad.ko
+#lib/modules/KVER-ipfire-rpi/kernel/crypto/lrw.ko
+#lib/modules/KVER-ipfire-rpi/kernel/crypto/lzo.ko
+#lib/modules/KVER-ipfire-rpi/kernel/crypto/md4.ko
+#lib/modules/KVER-ipfire-rpi/kernel/crypto/md5.ko
+#lib/modules/KVER-ipfire-rpi/kernel/crypto/michael_mic.ko
+#lib/modules/KVER-ipfire-rpi/kernel/crypto/pcbc.ko
+#lib/modules/KVER-ipfire-rpi/kernel/crypto/rmd128.ko
+#lib/modules/KVER-ipfire-rpi/kernel/crypto/rmd160.ko
+#lib/modules/KVER-ipfire-rpi/kernel/crypto/rmd256.ko
+#lib/modules/KVER-ipfire-rpi/kernel/crypto/rmd320.ko
+#lib/modules/KVER-ipfire-rpi/kernel/crypto/salsa20_generic.ko
+#lib/modules/KVER-ipfire-rpi/kernel/crypto/seed.ko
+#lib/modules/KVER-ipfire-rpi/kernel/crypto/seqiv.ko
+#lib/modules/KVER-ipfire-rpi/kernel/crypto/serpent.ko
+#lib/modules/KVER-ipfire-rpi/kernel/crypto/sha1_generic.ko
+#lib/modules/KVER-ipfire-rpi/kernel/crypto/sha256_generic.ko
+#lib/modules/KVER-ipfire-rpi/kernel/crypto/sha512_generic.ko
+#lib/modules/KVER-ipfire-rpi/kernel/crypto/tea.ko
+#lib/modules/KVER-ipfire-rpi/kernel/crypto/tgr192.ko
+#lib/modules/KVER-ipfire-rpi/kernel/crypto/twofish_common.ko
+#lib/modules/KVER-ipfire-rpi/kernel/crypto/twofish_generic.ko
+#lib/modules/KVER-ipfire-rpi/kernel/crypto/vmac.ko
+#lib/modules/KVER-ipfire-rpi/kernel/crypto/wp512.ko
+#lib/modules/KVER-ipfire-rpi/kernel/crypto/xcbc.ko
+#lib/modules/KVER-ipfire-rpi/kernel/crypto/xor.ko
+#lib/modules/KVER-ipfire-rpi/kernel/crypto/xts.ko
+#lib/modules/KVER-ipfire-rpi/kernel/crypto/zlib.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/ata
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/ata/ahci_platform.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/ata/libahci.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/ata/libata.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/ata/pata_arasan_cf.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/ata/sata_mv.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/atm
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/atm/atmtcp.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/base
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/base/regmap
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/base/regmap/regmap-i2c.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/bcma
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/bcma/bcma.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/block
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/block/aoe
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/block/aoe/aoe.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/block/cryptoloop.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/block/mg_disk.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/block/nbd.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/block/osdblk.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/block/rbd.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/bluetooth
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/bluetooth/ath3k.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/bluetooth/bcm203x.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/bluetooth/bfusb.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/bluetooth/bpa10x.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/bluetooth/btmrvl.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/bluetooth/btmrvl_sdio.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/bluetooth/btsdio.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/bluetooth/btusb.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/bluetooth/btwilink.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/bluetooth/hci_uart.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/bluetooth/hci_vhci.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/cdrom
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/cdrom/cdrom.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/char
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/char/hw_random
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/char/hw_random/rng-core.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/char/hw_random/timeriomem-rng.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/char/ipmi
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/char/ipmi/ipmi_devintf.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/char/ipmi/ipmi_msghandler.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/char/ipmi/ipmi_poweroff.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/char/ipmi/ipmi_si.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/char/ipmi/ipmi_watchdog.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/char/lp.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/char/nvram.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/char/ppdev.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/connector
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/connector/cn.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/cpufreq
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/cpufreq/cpufreq_stats.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/dma
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/dma/dmatest.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/gpio
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/gpio/gpio-adp5588.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/gpio/gpio-generic.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/gpio/gpio-it8761e.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/gpio/gpio-max7300.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/gpio/gpio-max730x.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/gpio/gpio-max732x.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/gpio/gpio-mcp23s08.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/gpio/gpio-pca953x.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/gpio/gpio-pcf857x.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/gpu
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/gpu/drm
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/gpu/drm/drm.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-a4tech.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-apple.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-axff.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-belkin.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-cherry.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-chicony.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-cypress.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-dr.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-elecom.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-ezkey.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-gaff.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-gyration.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-holtekff.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-kensington.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-keytouch.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-kye.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-lcpower.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-logitech-dj.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-logitech.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-magicmouse.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-microsoft.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-monterey.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-multitouch.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-ntrig.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-ortek.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-petalynx.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-picolcd.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-pl.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-primax.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-prodikeys.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-quanta.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-roccat-arvo.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-roccat-common.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-roccat-kone.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-roccat-koneplus.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-roccat-kovaplus.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-roccat-pyra.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-roccat.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-samsung.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-sjoy.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-sony.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-speedlink.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-sunplus.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-tmff.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-topseed.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-twinhan.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-uclogic.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-wacom.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-waltop.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-wiimote.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-zpff.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-zydacron.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/usbhid
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/usbhid/usbhid.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/ad7414.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/ad7418.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/adm1021.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/adm1025.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/adm1026.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/adm1029.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/adm1031.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/adm9240.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/ads1015.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/ads7828.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/adt7411.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/adt7462.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/adt7470.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/adt7475.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/amc6821.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/asc7621.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/atxp1.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/dme1737.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/ds1621.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/ds620.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/emc1403.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/emc2103.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/emc6w201.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/f71805f.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/f71882fg.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/f75375s.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/g760a.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/gl518sm.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/gl520sm.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/gpio-fan.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/hwmon-vid.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/hwmon.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/ibmaem.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/ibmpex.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/it87.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/jc42.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/lineage-pem.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/lm63.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/lm73.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/lm75.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/lm77.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/lm78.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/lm80.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/lm83.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/lm85.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/lm87.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/lm90.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/lm92.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/lm93.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/lm95241.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/lm95245.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/ltc4151.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/ltc4215.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/ltc4245.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/ltc4261.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/max16065.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/max1619.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/max1668.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/max6639.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/max6642.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/max6650.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/ntc_thermistor.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/pc87360.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/pc87427.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/pcf8591.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/pmbus
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/pmbus/adm1275.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/pmbus/lm25066.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/pmbus/ltc2978.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/pmbus/max16064.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/pmbus/max34440.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/pmbus/max8688.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/pmbus/pmbus.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/pmbus/pmbus_core.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/pmbus/ucd9000.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/pmbus/ucd9200.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/pmbus/zl6100.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/sch5627.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/sch5636.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/sch56xx-common.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/sht15.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/sht21.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/smm665.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/smsc47b397.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/smsc47m1.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/smsc47m192.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/thmc50.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/tmp102.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/tmp401.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/tmp421.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/vt1211.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/w83627ehf.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/w83627hf.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/w83781d.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/w83791d.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/w83792d.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/w83793.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/w83795.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/w83l785ts.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/w83l786ng.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/algos
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/algos/i2c-algo-bit.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/algos/i2c-algo-pca.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/busses
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/busses/i2c-bcm2708.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/busses/i2c-designware-core.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/busses/i2c-designware-platform.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/busses/i2c-diolan-u2c.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/busses/i2c-gpio.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/busses/i2c-ocores.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/busses/i2c-parport-light.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/busses/i2c-parport.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/busses/i2c-pca-platform.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/busses/i2c-simtec.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/busses/i2c-stub.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/busses/i2c-taos-evm.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/busses/i2c-tiny-usb.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/busses/i2c-xiic.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/i2c-dev.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/i2c-mux.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/i2c-smbus.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/muxes
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/muxes/gpio-i2cmux.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/muxes/pca9541.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/muxes/pca954x.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/ieee802154
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/ieee802154/fakehard.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/input
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/ff-memless.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/input-polldev.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/adp5588-keys.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/adp5589-keys.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/gpio_keys.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/gpio_keys_polled.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/lkkbd.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/lm8323.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/matrix_keypad.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/max7359_keypad.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/mcs_touchkey.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/mpr121_touchkey.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/newtonkbd.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/opencores-kbd.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/qt1070.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/qt2160.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/stowaway.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/sunkbd.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/tca6416-keypad.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/xtkbd.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/misc
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/misc/88pm860x_onkey.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/misc/ad714x-i2c.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/misc/ad714x.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/misc/ati_remote2.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/misc/bma150.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/misc/cm109.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/misc/keyspan_remote.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/misc/pcf50633-input.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/misc/pcf8574_keypad.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/misc/powermate.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/misc/rotary_encoder.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/misc/yealink.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/serio
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/serio/altera_ps2.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/serio/ambakmi.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/serio/ps2mult.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/sparse-keymap.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/capi
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/capi/capi.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/capi/capidrv.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/capi/kernelcapi.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/divert
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/divert/dss1_divert.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/gigaset
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/gigaset/bas_gigaset.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/gigaset/gigaset.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/gigaset/ser_gigaset.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/gigaset/usb_gigaset.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/hardware
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/hardware/mISDN
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/hardware/mISDN/hfcsusb.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/hisax
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/hisax/hfc4s8s_l1.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/hisax/hfc_usb.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/hisax/hisax.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/hisax/hisax_st5481.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/i4l
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/i4l/isdn.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/i4l/isdn_bsdcomp.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/i4l/isdnhdlc.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/mISDN
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/mISDN/l1oip.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/mISDN/mISDN_core.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/mISDN/mISDN_dsp.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/leds-88pm860x.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/leds-bd2802.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/leds-gpio.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/leds-lm3530.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/leds-lp3944.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/leds-lp5521.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/leds-lp5523.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/leds-lt3593.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/leds-pca9532.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/leds-pca955x.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/leds-regulator.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/ledtrig-backlight.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/ledtrig-gpio.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/ledtrig-heartbeat.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/ledtrig-netdev.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/ledtrig-timer.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/md
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/dm-bufio.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/dm-crypt.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/dm-delay.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/dm-flakey.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/dm-log-userspace.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/dm-log.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/dm-mirror.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/dm-mod.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/dm-multipath.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/dm-queue-length.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/dm-raid.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/dm-region-hash.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/dm-round-robin.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/dm-service-time.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/dm-snapshot.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/dm-thin-pool.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/dm-zero.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/linear.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/md-mod.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/multipath.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/persistent-data
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/persistent-data/dm-persistent-data.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/raid0.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/raid1.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/raid10.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/raid456.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common/tuners
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common/tuners/mc44s803.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common/tuners/mt20xx.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common/tuners/tda18271.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common/tuners/tda827x.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common/tuners/tda8290.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common/tuners/tda9887.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common/tuners/tea5761.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common/tuners/tea5767.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common/tuners/tuner-simple.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common/tuners/tuner-types.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common/tuners/tuner-xc2028.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common/tuners/xc4000.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common/tuners/xc5000.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb/dvb-core
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb/dvb-core/dvb-core.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/media.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-adstech-dvb-t-pci.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-alink-dtu-m.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-anysee.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-apac-viewcomp.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-asus-pc39.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-ati-tv-wonder-hd-600.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-ati-x10.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-avermedia-a16d.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-avermedia-cardbus.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-avermedia-dvbt.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-avermedia-m135a.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-avermedia-m733a-rm-k6.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-avermedia-rm-ks.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-avermedia.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-avertv-303.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-azurewave-ad-tu700.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-behold-columbus.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-behold.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-budget-ci-old.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-cinergy-1400.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-cinergy.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-dib0700-nec.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-dib0700-rc5.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-digitalnow-tinytwin.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-digittrade.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-dm1105-nec.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-dntv-live-dvb-t.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-dntv-live-dvbt-pro.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-em-terratec.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-encore-enltv-fm53.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-encore-enltv.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-encore-enltv2.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-evga-indtube.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-eztv.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-flydvb.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-flyvideo.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-fusionhdtv-mce.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-gadmei-rm008z.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-genius-tvgo-a11mce.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-gotview7135.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-hauppauge.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-imon-mce.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-imon-pad.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-iodata-bctv7e.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-kaiomy.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-kworld-315u.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-kworld-plus-tv-analog.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-leadtek-y04g0051.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-lirc.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-lme2510.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-manli.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-medion-x10.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-msi-digivox-ii.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-msi-digivox-iii.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-msi-tvanywhere-plus.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-msi-tvanywhere.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-nebula.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-nec-terratec-cinergy-xs.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-norwood.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-npgtech.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-pctv-sedna.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-pinnacle-color.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-pinnacle-grey.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-pinnacle-pctv-hd.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-pixelview-002t.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-pixelview-mk12.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-pixelview-new.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-pixelview.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-powercolor-real-angel.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-proteus-2309.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-purpletv.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-pv951.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-rc6-mce.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-real-audio-220-32-keys.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-snapstream-firefly.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-streamzap.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-tbs-nec.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-technisat-usb2.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-terratec-cinergy-xs.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-terratec-slim-2.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-terratec-slim.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-tevii-nec.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-tivo.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-total-media-in-hand.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-trekstor.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-tt-1500.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-twinhan1027.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-videomate-m1f.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-videomate-s350.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-videomate-tv-pvr.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-winfast-usbii-deluxe.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-winfast.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/lirc_dev.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/rc-core.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/video
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/video/ir-kbd-i2c.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/video/v4l2-common.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/video/v4l2-int-device.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/video/videodev.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/memstick
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/memstick/core
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/memstick/core/memstick.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/memstick/core/mspro_block.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/mfd
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/mfd/htc-pasic3.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/mfd/pcf50633-adc.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/mfd/pcf50633-gpio.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/mfd/pcf50633.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/mfd/sm501.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/mfd/tps6105x.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/mfd/tps65010.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/mfd/tps6507x.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/mfd/ucb1400_core.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/mfd/wl1273-core.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/mfd/wm8400-core.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/apds9802als.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/apds990x.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/bh1770glc.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/bh1780gli.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/bmp085.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/c2port
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/c2port/core.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/ds1682.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/eeprom
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/eeprom/at24.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/eeprom/eeprom.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/eeprom/eeprom_93cx6.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/eeprom/max6875.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/enclosure.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/fsa9480.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/hmc6352.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/ics932s401.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/isl29003.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/isl29020.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/iwmc3200top
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/iwmc3200top/iwmc3200top.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/lis3lv02d
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/lis3lv02d/lis3lv02d.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/lis3lv02d/lis3lv02d_i2c.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/ti-st
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/ti-st/st_drv.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/tsl2550.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/mmc
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/mmc/card
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/mmc/card/mmc_test.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/mmc/card/sdio_uart.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/mmc/host
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/mmc/host/dw_mmc.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/mmc/host/mmci.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/mmc/host/sdhci-pltfm.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/mmc/host/sdhci-pxav2.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/mmc/host/sdhci-pxav3.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/mmc/host/ushc.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/mmc/host/vub300.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/ar7part.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/chips
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/chips/chipreg.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/lpddr
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/lpddr/lpddr_cmds.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/lpddr/qinfo_probe.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/maps
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/maps/physmap.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/mtd.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/mtd_blkdevs.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/mtdblock.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/mtdchar.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/nand
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/nand/nand.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/nand/nand_ecc.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/nand/nand_ids.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/nand/plat_nand.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/ofpart.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/sm_ftl.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/tests
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/tests/mtd_nandecctest.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/tests/mtd_oobtest.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/tests/mtd_pagetest.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/tests/mtd_readtest.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/tests/mtd_speedtest.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/tests/mtd_stresstest.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/tests/mtd_subpagetest.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/tests/mtd_torturetest.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/ubi
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/ubi/ubi.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/bonding
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/bonding/bonding.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/dummy.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/eql.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/8390
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/8390/ax88796.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/broadcom
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/broadcom/b44.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/davicom
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/davicom/dm9000.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/dlink
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/dlink/de600.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/dlink/de620.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/dnet.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/ethoc.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/micrel
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/micrel/ks8842.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/micrel/ks8851_mll.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/seeq
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/seeq/seeq8005.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/smsc
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/smsc/smc911x.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/smsc/smc91x.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/smsc/smsc911x.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/stmicro
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/stmicro/stmmac
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/stmicro/stmmac/stmmac.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ifb.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/imq.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/irda
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/irda/irda-usb.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/irda/irtty-sir.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/irda/kingsun-sir.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/irda/ks959-sir.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/irda/ksdazzle-sir.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/irda/mcs7780.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/irda/sir-dev.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/irda/stir4200.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/macvlan.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/macvtap.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/mii.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/broadcom.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/cicada.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/davicom.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/dp83640.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/et1011c.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/icplus.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/lxt.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/marvell.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/mdio-bitbang.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/mdio-gpio.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/micrel.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/national.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/qsemi.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/realtek.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/smsc.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/ste10Xp.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/vitesse.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ppp
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ppp/bsd_comp.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ppp/ppp_async.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ppp/ppp_deflate.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ppp/ppp_generic.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ppp/ppp_mppe.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ppp/ppp_synctty.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ppp/pppoe.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ppp/pppox.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ppp/pptp.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/slip
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/slip/slhc.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/slip/slip.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/tun.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/asix.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/catc.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/cdc_eem.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/cdc_ether.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/cdc_ncm.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/cdc_subset.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/cx82310_eth.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/dm9601.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/gl620a.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/hso.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/int51x1.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/kalmia.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/kaweth.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/lg-vl600.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/mcs7830.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/net1080.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/pegasus.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/plusb.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/rndis_host.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/rtl8150.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/sierra_net.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/smsc75xx.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/smsc95xx.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/usbnet.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/zaurus.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/veth.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wan
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wan/dlci.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wan/hdlc.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wan/hdlc_cisco.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wan/hdlc_fr.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wan/hdlc_ppp.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wan/hdlc_raw.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wan/hdlc_raw_eth.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/at76c50x-usb.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/hostap
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/hostap/hostap.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/rndis_wlan.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/zd1201.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/parport
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/parport/parport.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/parport/parport_ax88796.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/pps
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/pps/pps_core.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/ptp
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/ptp/ptp.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/regulator
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/regulator/fixed.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/regulator/gpio-regulator.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-bq32k.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-bq4802.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-cmos.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-ds1286.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-ds1307.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-ds1374.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-ds1511.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-ds1553.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-ds1672.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-ds1742.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-ds3232.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-em3027.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-fm3130.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-isl12022.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-isl1208.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-m41t80.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-m48t35.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-m48t59.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-m48t86.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-max6900.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-msm6242.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-pcf50633.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-pcf8563.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-pcf8583.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-pl030.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-pl031.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-rp5c01.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-rs5c372.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-rv3029c2.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-rx8025.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-rx8581.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-s35390a.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-stk17ta8.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-v3020.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-x1205.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/ch.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/device_handler
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/device_handler/scsi_dh.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/device_handler/scsi_dh_alua.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/device_handler/scsi_dh_emc.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/device_handler/scsi_dh_hp_sw.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/device_handler/scsi_dh_rdac.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/fcoe
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/fcoe/libfcoe.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/iscsi_boot_sysfs.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/iscsi_tcp.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/libfc
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/libfc/libfc.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/libiscsi.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/libiscsi_tcp.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/libsas
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/libsas/libsas.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/osd
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/osd/libosd.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/osd/osd.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/raid_class.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/scsi_transport_fc.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/scsi_transport_iscsi.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/scsi_transport_sas.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/scsi_transport_spi.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/scsi_transport_srp.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/scsi_wait_scan.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/ses.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/sg.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/sr_mod.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/ssb
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/ssb/ssb.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/staging
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/staging/usbip
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/staging/usbip/usbip-core.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/staging/usbip/usbip-host.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/staging/usbip/vhci-hcd.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/tty
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/tty/n_gsm.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/tty/serial
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/tty/serial/8250_dw.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/tty/serial/altera_jtaguart.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/tty/serial/altera_uart.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/tty/serial/timbuart.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/tty/serial/xilinx_uartps.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/uio
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/uio/uio.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/uio/uio_pdrv.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/uio/uio_pdrv_genirq.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/atm
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/atm/cxacru.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/atm/speedtch.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/atm/ueagle-atm.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/atm/usbatm.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/atm/xusbatm.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/class
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/class/cdc-acm.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/class/cdc-wdm.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/class/usblp.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/class/usbtmc.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/dwc3
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/dwc3/dwc3-omap.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/dwc3/dwc3.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/host
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/host/isp116x-hcd.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/host/isp1362-hcd.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/host/oxu210hp-hcd.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/host/r8a66597-hcd.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/host/sl811-hcd.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/host/u132-hcd.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/misc
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/misc/cypress_cy7c63.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/misc/cytherm.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/misc/emi26.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/misc/emi62.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/misc/ftdi-elan.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/misc/iowarrior.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/misc/isight_firmware.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/misc/usblcd.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/misc/usbled.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/misc/usbsevseg.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/misc/uss720.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/misc/yurex.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/otg
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/otg/gpio_vbus.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/otg/nop-usb-xceiv.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/aircable.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/ark3116.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/belkin_sa.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/ch341.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/cp210x.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/cypress_m8.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/digi_acceleport.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/empeg.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/ftdi_sio.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/funsoft.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/garmin_gps.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/hp4x.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/io_edgeport.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/io_ti.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/ipaq.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/ipw.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/ir-usb.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/iuu_phoenix.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/keyspan_pda.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/mct_u232.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/mos7720.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/mos7840.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/moto_modem.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/opticon.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/option.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/oti6858.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/pl2303.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/qcaux.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/qcserial.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/safe_serial.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/siemens_mpi.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/sierra.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/spcp8x5.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/ssu100.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/symbolserial.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/ti_usb_3410_5052.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/usb_wwan.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/usbserial.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/visor.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/vivopay-serial.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/whiteheat.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/zio.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/storage
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/storage/uas.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/storage/ums-alauda.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/storage/ums-cypress.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/storage/ums-datafab.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/storage/ums-eneub6250.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/storage/ums-freecom.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/storage/ums-isd200.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/storage/ums-jumpshot.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/storage/ums-karma.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/storage/ums-onetouch.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/storage/ums-realtek.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/storage/ums-sddr09.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/storage/ums-sddr55.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/storage/ums-usbat.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/storage/usb-storage.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/video
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/backlight
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/backlight/88pm860x_bl.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/backlight/adp8860_bl.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/backlight/adp8870_bl.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/backlight/generic_bl.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/backlight/lcd.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/backlight/pcf50633-backlight.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/backlight/platform_lcd.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/fb_sys_fops.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/metronomefb.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/output.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/sm501fb.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/smscufx.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/syscopyarea.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/sysfillrect.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/sysimgblt.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/tmiofb.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/uvesafb.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/w1
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/w1/masters
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/w1/masters/ds1wm.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/w1/masters/ds2482.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/w1/masters/ds2490.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/w1/masters/w1-gpio.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/w1/slaves
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/w1/slaves/w1_bq27000.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/w1/slaves/w1_ds2408.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/w1/slaves/w1_ds2423.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/w1/slaves/w1_ds2431.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/w1/slaves/w1_ds2433.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/w1/slaves/w1_ds2760.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/w1/slaves/w1_ds2780.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/w1/slaves/w1_smem.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/w1/slaves/w1_therm.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/w1/wire.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/watchdog
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/watchdog/bcm2708_wdog.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/watchdog/dw_wdt.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/watchdog/max63xx_wdt.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/watchdog/pcwd_usb.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/watchdog/softdog.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/watchdog/sp805_wdt.ko
+#lib/modules/KVER-ipfire-rpi/kernel/fs
+#lib/modules/KVER-ipfire-rpi/kernel/fs/autofs4
+#lib/modules/KVER-ipfire-rpi/kernel/fs/autofs4/autofs4.ko
+#lib/modules/KVER-ipfire-rpi/kernel/fs/cachefiles
+#lib/modules/KVER-ipfire-rpi/kernel/fs/cachefiles/cachefiles.ko
+#lib/modules/KVER-ipfire-rpi/kernel/fs/cifs
+#lib/modules/KVER-ipfire-rpi/kernel/fs/cifs/cifs.ko
+#lib/modules/KVER-ipfire-rpi/kernel/fs/ecryptfs
+#lib/modules/KVER-ipfire-rpi/kernel/fs/ecryptfs/ecryptfs.ko
+#lib/modules/KVER-ipfire-rpi/kernel/fs/exportfs
+#lib/modules/KVER-ipfire-rpi/kernel/fs/exportfs/exportfs.ko
+#lib/modules/KVER-ipfire-rpi/kernel/fs/fat
+#lib/modules/KVER-ipfire-rpi/kernel/fs/fat/fat.ko
+#lib/modules/KVER-ipfire-rpi/kernel/fs/fat/vfat.ko
+#lib/modules/KVER-ipfire-rpi/kernel/fs/fscache
+#lib/modules/KVER-ipfire-rpi/kernel/fs/fscache/fscache.ko
+#lib/modules/KVER-ipfire-rpi/kernel/fs/fuse
+#lib/modules/KVER-ipfire-rpi/kernel/fs/fuse/cuse.ko
+#lib/modules/KVER-ipfire-rpi/kernel/fs/fuse/fuse.ko
+#lib/modules/KVER-ipfire-rpi/kernel/fs/isofs
+#lib/modules/KVER-ipfire-rpi/kernel/fs/isofs/isofs.ko
+#lib/modules/KVER-ipfire-rpi/kernel/fs/jffs2
+#lib/modules/KVER-ipfire-rpi/kernel/fs/jffs2/jffs2.ko
+#lib/modules/KVER-ipfire-rpi/kernel/fs/jfs
+#lib/modules/KVER-ipfire-rpi/kernel/fs/jfs/jfs.ko
+#lib/modules/KVER-ipfire-rpi/kernel/fs/lockd
+#lib/modules/KVER-ipfire-rpi/kernel/fs/lockd/lockd.ko
+#lib/modules/KVER-ipfire-rpi/kernel/fs/nfs
+#lib/modules/KVER-ipfire-rpi/kernel/fs/nfs/nfs.ko
+#lib/modules/KVER-ipfire-rpi/kernel/fs/nfs_common
+#lib/modules/KVER-ipfire-rpi/kernel/fs/nfs_common/nfs_acl.ko
+#lib/modules/KVER-ipfire-rpi/kernel/fs/nfsd
+#lib/modules/KVER-ipfire-rpi/kernel/fs/nfsd/nfsd.ko
+#lib/modules/KVER-ipfire-rpi/kernel/fs/quota
+#lib/modules/KVER-ipfire-rpi/kernel/fs/quota/quota_tree.ko
+#lib/modules/KVER-ipfire-rpi/kernel/fs/quota/quota_v1.ko
+#lib/modules/KVER-ipfire-rpi/kernel/fs/quota/quota_v2.ko
+#lib/modules/KVER-ipfire-rpi/kernel/fs/reiserfs
+#lib/modules/KVER-ipfire-rpi/kernel/fs/reiserfs/reiserfs.ko
+#lib/modules/KVER-ipfire-rpi/kernel/fs/udf
+#lib/modules/KVER-ipfire-rpi/kernel/fs/udf/udf.ko
+#lib/modules/KVER-ipfire-rpi/kernel/fs/ufs
+#lib/modules/KVER-ipfire-rpi/kernel/fs/ufs/ufs.ko
+#lib/modules/KVER-ipfire-rpi/kernel/fs/xfs
+#lib/modules/KVER-ipfire-rpi/kernel/fs/xfs/xfs.ko
+#lib/modules/KVER-ipfire-rpi/kernel/lib
+#lib/modules/KVER-ipfire-rpi/kernel/lib/cordic.ko
+#lib/modules/KVER-ipfire-rpi/kernel/lib/crc-ccitt.ko
+#lib/modules/KVER-ipfire-rpi/kernel/lib/crc-itu-t.ko
+#lib/modules/KVER-ipfire-rpi/kernel/lib/crc-t10dif.ko
+#lib/modules/KVER-ipfire-rpi/kernel/lib/crc7.ko
+#lib/modules/KVER-ipfire-rpi/kernel/lib/crc8.ko
+#lib/modules/KVER-ipfire-rpi/kernel/lib/libcrc32c.ko
+#lib/modules/KVER-ipfire-rpi/kernel/lib/raid6
+#lib/modules/KVER-ipfire-rpi/kernel/lib/raid6/raid6_pq.ko
+#lib/modules/KVER-ipfire-rpi/kernel/lib/ts_bm.ko
+#lib/modules/KVER-ipfire-rpi/kernel/lib/ts_fsm.ko
+#lib/modules/KVER-ipfire-rpi/kernel/lib/ts_kmp.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net
+#lib/modules/KVER-ipfire-rpi/kernel/net/802
+#lib/modules/KVER-ipfire-rpi/kernel/net/802/garp.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/802/p8022.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/802/psnap.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/802/stp.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/8021q
+#lib/modules/KVER-ipfire-rpi/kernel/net/8021q/8021q.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/atm
+#lib/modules/KVER-ipfire-rpi/kernel/net/atm/atm.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/atm/br2684.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/atm/clip.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/atm/pppoatm.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/batman-adv
+#lib/modules/KVER-ipfire-rpi/kernel/net/batman-adv/batman-adv.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/bluetooth
+#lib/modules/KVER-ipfire-rpi/kernel/net/bluetooth/bluetooth.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/bluetooth/bnep
+#lib/modules/KVER-ipfire-rpi/kernel/net/bluetooth/bnep/bnep.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/bluetooth/cmtp
+#lib/modules/KVER-ipfire-rpi/kernel/net/bluetooth/cmtp/cmtp.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/bluetooth/hidp
+#lib/modules/KVER-ipfire-rpi/kernel/net/bluetooth/hidp/hidp.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/bluetooth/rfcomm
+#lib/modules/KVER-ipfire-rpi/kernel/net/bluetooth/rfcomm/rfcomm.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/bridge
+#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/bridge.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter
+#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebt_802_3.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebt_among.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebt_arp.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebt_arpreply.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebt_dnat.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebt_ip.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebt_ip6.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebt_limit.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebt_log.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebt_mark.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebt_mark_m.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebt_nflog.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebt_pkttype.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebt_redirect.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebt_snat.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebt_stp.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebt_ulog.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebt_vlan.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebtable_broute.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebtable_filter.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebtable_nat.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebtables.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ceph
+#lib/modules/KVER-ipfire-rpi/kernel/net/ceph/libceph.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ieee802154
+#lib/modules/KVER-ipfire-rpi/kernel/net/ieee802154/6lowpan.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ieee802154/af_802154.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ieee802154/ieee802154.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/ah4.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/esp4.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/gre.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/inet_diag.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/ip_gre.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/ipcomp.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/ipip.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/arp_tables.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/arpt_mangle.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/arptable_filter.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/ip_queue.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/ip_tables.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/ipt_CLUSTERIP.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/ipt_ECN.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/ipt_LOG.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/ipt_MASQUERADE.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/ipt_NETMAP.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/ipt_REDIRECT.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/ipt_REJECT.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/ipt_ULOG.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/ipt_ah.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/ipt_ecn.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/ipt_ipp2p.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/iptable_filter.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/iptable_mangle.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/iptable_nat.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/iptable_raw.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/nf_conntrack_ipv4.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/nf_defrag_ipv4.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/nf_nat.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/nf_nat_amanda.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/nf_nat_ftp.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/nf_nat_h323.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/nf_nat_irc.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/nf_nat_pptp.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/nf_nat_proto_dccp.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/nf_nat_proto_gre.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/nf_nat_proto_sctp.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/nf_nat_proto_udplite.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/nf_nat_sip.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/nf_nat_snmp_basic.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/nf_nat_tftp.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/tcp_bic.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/tcp_cubic.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/tcp_diag.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/tcp_highspeed.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/tcp_htcp.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/tcp_hybla.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/tcp_illinois.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/tcp_lp.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/tcp_scalable.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/tcp_vegas.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/tcp_veno.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/tcp_westwood.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/tcp_yeah.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/tunnel4.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/xfrm4_tunnel.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/ah6.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/esp6.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/ip6_tunnel.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/ipcomp6.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/mip6.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/ip6_queue.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/ip6_tables.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/ip6t_LOG.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/ip6t_REJECT.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/ip6t_ah.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/ip6t_eui64.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/ip6t_frag.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/ip6t_hbh.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/ip6t_ipv6header.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/ip6t_mh.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/ip6t_rt.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/ip6table_filter.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/ip6table_mangle.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/ip6table_raw.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/nf_conntrack_ipv6.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/nf_defrag_ipv6.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/sit.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/tunnel6.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/xfrm6_mode_beet.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/xfrm6_mode_ro.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/xfrm6_mode_transport.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/xfrm6_mode_tunnel.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/xfrm6_tunnel.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/irda
+#lib/modules/KVER-ipfire-rpi/kernel/net/irda/ircomm
+#lib/modules/KVER-ipfire-rpi/kernel/net/irda/ircomm/ircomm-tty.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/irda/ircomm/ircomm.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/irda/irda.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/irda/irlan
+#lib/modules/KVER-ipfire-rpi/kernel/net/irda/irlan/irlan.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/irda/irnet
+#lib/modules/KVER-ipfire-rpi/kernel/net/irda/irnet/irnet.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/key
+#lib/modules/KVER-ipfire-rpi/kernel/net/key/af_key.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/l2tp
+#lib/modules/KVER-ipfire-rpi/kernel/net/l2tp/l2tp_core.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/l2tp/l2tp_eth.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/l2tp/l2tp_ip.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/l2tp/l2tp_netlink.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/l2tp/l2tp_ppp.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/llc
+#lib/modules/KVER-ipfire-rpi/kernel/net/llc/llc.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/mac80211
+#lib/modules/KVER-ipfire-rpi/kernel/net/mac80211/mac80211.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/ipvs
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/ipvs/ip_vs.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_conntrack.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_conntrack_amanda.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_conntrack_broadcast.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_conntrack_ftp.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_conntrack_h323.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_conntrack_irc.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_conntrack_netbios_ns.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_conntrack_netlink.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_conntrack_pptp.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_conntrack_proto_dccp.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_conntrack_proto_gre.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_conntrack_proto_sctp.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_conntrack_proto_udplite.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_conntrack_sane.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_conntrack_sip.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_conntrack_snmp.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_conntrack_tftp.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_tproxy_core.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nfnetlink.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nfnetlink_log.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nfnetlink_queue.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/x_tables.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_AUDIT.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_CHECKSUM.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_CLASSIFY.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_CT.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_DSCP.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_HL.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_IDLETIMER.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_IMQ.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_LED.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_NFLOG.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_NFQUEUE.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_NOTRACK.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_RATEEST.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_TCPMSS.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_TCPOPTSTRIP.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_TEE.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_TPROXY.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_TRACE.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_addrtype.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_cluster.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_comment.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_connbytes.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_connlimit.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_connmark.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_conntrack.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_cpu.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_dccp.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_devgroup.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_dscp.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_esp.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_hashlimit.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_helper.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_hl.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_iprange.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_ipvs.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_layer7.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_length.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_limit.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_mac.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_mark.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_multiport.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_osf.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_owner.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_physdev.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_pkttype.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_policy.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_quota.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_rateest.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_realm.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_recent.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_sctp.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_socket.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_state.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_statistic.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_string.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_tcpmss.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_tcpudp.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_time.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_u32.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/rfkill
+#lib/modules/KVER-ipfire-rpi/kernel/net/rfkill/rfkill-gpio.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/rfkill/rfkill-regulator.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/rfkill/rfkill.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/rxrpc
+#lib/modules/KVER-ipfire-rpi/kernel/net/rxrpc/af-rxrpc.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/rxrpc/rxkad.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/sched
+#lib/modules/KVER-ipfire-rpi/kernel/net/sched/act_csum.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/sched/act_gact.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/sched/act_ipt.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/sched/act_mirred.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/sched/act_nat.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/sched/act_pedit.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/sched/act_police.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/sched/act_simple.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/sched/act_skbedit.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/sched/cls_basic.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/sched/cls_flow.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/sched/cls_fw.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/sched/cls_route.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/sched/cls_rsvp.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/sched/cls_rsvp6.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/sched/cls_tcindex.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/sched/cls_u32.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/sched/em_cmp.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/sched/em_meta.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/sched/em_nbyte.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/sched/em_text.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/sched/em_u32.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_atm.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_cbq.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_choke.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_drr.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_dsmark.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_gred.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_hfsc.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_htb.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_ingress.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_mqprio.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_multiq.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_netem.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_prio.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_qfq.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_red.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_sfb.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_sfq.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_tbf.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_teql.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/sunrpc
+#lib/modules/KVER-ipfire-rpi/kernel/net/sunrpc/auth_gss
+#lib/modules/KVER-ipfire-rpi/kernel/net/sunrpc/auth_gss/auth_rpcgss.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/sunrpc/auth_gss/rpcsec_gss_krb5.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/sunrpc/sunrpc.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/wireless
+#lib/modules/KVER-ipfire-rpi/kernel/net/wireless/cfg80211.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/wireless/lib80211.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/wireless/lib80211_crypt_ccmp.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/wireless/lib80211_crypt_tkip.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/wireless/lib80211_crypt_wep.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/xfrm
+#lib/modules/KVER-ipfire-rpi/kernel/net/xfrm/xfrm_ipcomp.ko
+#lib/modules/KVER-ipfire-rpi/kernel/net/xfrm/xfrm_user.ko
+#lib/modules/KVER-ipfire-rpi/kernel/sound
+#lib/modules/KVER-ipfire-rpi/kernel/sound/ac97_bus.ko
+#lib/modules/KVER-ipfire-rpi/kernel/sound/arm
+#lib/modules/KVER-ipfire-rpi/kernel/sound/arm/snd-aaci.ko
+#lib/modules/KVER-ipfire-rpi/kernel/sound/arm/snd-bcm2835.ko
+#lib/modules/KVER-ipfire-rpi/kernel/sound/core
+#lib/modules/KVER-ipfire-rpi/kernel/sound/core/oss
+#lib/modules/KVER-ipfire-rpi/kernel/sound/core/oss/snd-mixer-oss.ko
+#lib/modules/KVER-ipfire-rpi/kernel/sound/core/oss/snd-pcm-oss.ko
+#lib/modules/KVER-ipfire-rpi/kernel/sound/core/seq
+#lib/modules/KVER-ipfire-rpi/kernel/sound/core/seq/oss
+#lib/modules/KVER-ipfire-rpi/kernel/sound/core/seq/oss/snd-seq-oss.ko
+#lib/modules/KVER-ipfire-rpi/kernel/sound/core/seq/snd-seq-device.ko
+#lib/modules/KVER-ipfire-rpi/kernel/sound/core/seq/snd-seq-dummy.ko
+#lib/modules/KVER-ipfire-rpi/kernel/sound/core/seq/snd-seq-midi-event.ko
+#lib/modules/KVER-ipfire-rpi/kernel/sound/core/seq/snd-seq-midi.ko
+#lib/modules/KVER-ipfire-rpi/kernel/sound/core/seq/snd-seq-virmidi.ko
+#lib/modules/KVER-ipfire-rpi/kernel/sound/core/seq/snd-seq.ko
+#lib/modules/KVER-ipfire-rpi/kernel/sound/core/snd-hrtimer.ko
+#lib/modules/KVER-ipfire-rpi/kernel/sound/core/snd-hwdep.ko
+#lib/modules/KVER-ipfire-rpi/kernel/sound/core/snd-page-alloc.ko
+#lib/modules/KVER-ipfire-rpi/kernel/sound/core/snd-pcm.ko
+#lib/modules/KVER-ipfire-rpi/kernel/sound/core/snd-rawmidi.ko
+#lib/modules/KVER-ipfire-rpi/kernel/sound/core/snd-timer.ko
+#lib/modules/KVER-ipfire-rpi/kernel/sound/core/snd.ko
+#lib/modules/KVER-ipfire-rpi/kernel/sound/drivers
+#lib/modules/KVER-ipfire-rpi/kernel/sound/drivers/mpu401
+#lib/modules/KVER-ipfire-rpi/kernel/sound/drivers/mpu401/snd-mpu401-uart.ko
+#lib/modules/KVER-ipfire-rpi/kernel/sound/drivers/mpu401/snd-mpu401.ko
+#lib/modules/KVER-ipfire-rpi/kernel/sound/drivers/snd-aloop.ko
+#lib/modules/KVER-ipfire-rpi/kernel/sound/drivers/snd-dummy.ko
+#lib/modules/KVER-ipfire-rpi/kernel/sound/drivers/snd-mtpav.ko
+#lib/modules/KVER-ipfire-rpi/kernel/sound/drivers/snd-mts64.ko
+#lib/modules/KVER-ipfire-rpi/kernel/sound/drivers/snd-portman2x4.ko
+#lib/modules/KVER-ipfire-rpi/kernel/sound/drivers/snd-serial-u16550.ko
+#lib/modules/KVER-ipfire-rpi/kernel/sound/drivers/snd-virmidi.ko
+#lib/modules/KVER-ipfire-rpi/kernel/sound/pci
+#lib/modules/KVER-ipfire-rpi/kernel/sound/pci/ac97
+#lib/modules/KVER-ipfire-rpi/kernel/sound/pci/ac97/snd-ac97-codec.ko
+#lib/modules/KVER-ipfire-rpi/kernel/sound/soc
+#lib/modules/KVER-ipfire-rpi/kernel/sound/soc/snd-soc-core.ko
+#lib/modules/KVER-ipfire-rpi/kernel/sound/soundcore.ko
+#lib/modules/KVER-ipfire-rpi/kernel/sound/usb
+#lib/modules/KVER-ipfire-rpi/kernel/sound/usb/6fire
+#lib/modules/KVER-ipfire-rpi/kernel/sound/usb/6fire/snd-usb-6fire.ko
+#lib/modules/KVER-ipfire-rpi/kernel/sound/usb/caiaq
+#lib/modules/KVER-ipfire-rpi/kernel/sound/usb/caiaq/snd-usb-caiaq.ko
+#lib/modules/KVER-ipfire-rpi/kernel/sound/usb/misc
+#lib/modules/KVER-ipfire-rpi/kernel/sound/usb/misc/snd-ua101.ko
+#lib/modules/KVER-ipfire-rpi/kernel/sound/usb/snd-usb-audio.ko
+#lib/modules/KVER-ipfire-rpi/kernel/sound/usb/snd-usbmidi-lib.ko
+#lib/modules/KVER-ipfire-rpi/modules.alias
+#lib/modules/KVER-ipfire-rpi/modules.alias.bin
+#lib/modules/KVER-ipfire-rpi/modules.builtin
+#lib/modules/KVER-ipfire-rpi/modules.ccwmap
+#lib/modules/KVER-ipfire-rpi/modules.dep
+#lib/modules/KVER-ipfire-rpi/modules.dep.bin
+#lib/modules/KVER-ipfire-rpi/modules.ieee1394map
+#lib/modules/KVER-ipfire-rpi/modules.inputmap
+#lib/modules/KVER-ipfire-rpi/modules.isapnpmap
+#lib/modules/KVER-ipfire-rpi/modules.ofmap
+#lib/modules/KVER-ipfire-rpi/modules.order
+#lib/modules/KVER-ipfire-rpi/modules.pcimap
+#lib/modules/KVER-ipfire-rpi/modules.seriomap
+#lib/modules/KVER-ipfire-rpi/modules.symbols
+#lib/modules/KVER-ipfire-rpi/modules.symbols.bin
+#lib/modules/KVER-ipfire-rpi/modules.usbmap
+#lib/modules/KVER-ipfire-rpi/source
diff --git a/config/rootfiles/common/armv5tel/linux-versatile b/config/rootfiles/common/armv5tel/linux-versatile
deleted file mode 100644 (file)
index 8562f2e..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-boot/System.map-KVER-ipfire-versatile
-boot/config-KVER-ipfire-versatile
-boot/vmlinuz-KVER-ipfire-versatile
-boot/ipfirerd-KVER-versatile.img
-lib/modules/KVER-ipfire-versatile
diff --git a/config/rootfiles/common/armv5tel/rpi-firmware b/config/rootfiles/common/armv5tel/rpi-firmware
new file mode 100644 (file)
index 0000000..3024548
--- /dev/null
@@ -0,0 +1,9 @@
+#boot/LICENCE.broadcom
+boot/bootcode.bin
+boot/cmdline.txt
+boot/config.txt
+#boot/first32k.bin
+boot/start.elf
+boot/start_cd.elf
+boot/fixup.dat
+boot/fixup_cd.dat
diff --git a/config/rootfiles/common/armv5tel/u-boot b/config/rootfiles/common/armv5tel/u-boot
new file mode 100644 (file)
index 0000000..759d41d
--- /dev/null
@@ -0,0 +1,6 @@
+#boot/MLO
+#boot/u-boot.bin
+usr/bin/mkimage
+boot/boot.scr
+boot/boot.script
+boot/convert_bootscript
diff --git a/config/rootfiles/common/armv5tel/uboot b/config/rootfiles/common/armv5tel/uboot
deleted file mode 100644 (file)
index 80864b7..0000000
+++ /dev/null
@@ -1 +0,0 @@
-usr/bin/mkimage
index 8124618cef23552c9483dfdb0c0d9f6b38b9d79f..b398eb974505539160f8aa2b3f3a3c5b46567ad3 100644 (file)
@@ -5,16 +5,6 @@
 #usr/bin/autoscan
 #usr/bin/autoupdate
 #usr/bin/ifnames
-#usr/info/autoconf.info
-#usr/man/man1/autoconf.1
-#usr/man/man1/autoheader.1
-#usr/man/man1/autom4te.1
-#usr/man/man1/autoreconf.1
-#usr/man/man1/autoscan.1
-#usr/man/man1/autoupdate.1
-#usr/man/man1/config.guess.1
-#usr/man/man1/config.sub.1
-#usr/man/man1/ifnames.1
 #usr/share/autoconf
 #usr/share/autoconf/Autom4te
 #usr/share/autoconf/Autom4te/C4che.pm
@@ -23,8 +13,8 @@
 #usr/share/autoconf/Autom4te/Configure_ac.pm
 #usr/share/autoconf/Autom4te/FileUtils.pm
 #usr/share/autoconf/Autom4te/General.pm
+#usr/share/autoconf/Autom4te/Getopt.pm
 #usr/share/autoconf/Autom4te/Request.pm
-#usr/share/autoconf/Autom4te/Struct.pm
 #usr/share/autoconf/Autom4te/XFile.pm
 #usr/share/autoconf/INSTALL
 #usr/share/autoconf/autoconf
 #usr/share/autoconf/autoconf/autotest.m4
 #usr/share/autoconf/autoconf/autoupdate.m4
 #usr/share/autoconf/autoconf/c.m4
+#usr/share/autoconf/autoconf/erlang.m4
 #usr/share/autoconf/autoconf/fortran.m4
 #usr/share/autoconf/autoconf/functions.m4
 #usr/share/autoconf/autoconf/general.m4
+#usr/share/autoconf/autoconf/go.m4
 #usr/share/autoconf/autoconf/headers.m4
 #usr/share/autoconf/autoconf/lang.m4
 #usr/share/autoconf/autoconf/libs.m4
 #usr/share/autoconf/autotest/autotest.m4
 #usr/share/autoconf/autotest/autotest.m4f
 #usr/share/autoconf/autotest/general.m4
+#usr/share/autoconf/autotest/specific.m4
 #usr/share/autoconf/m4sugar
+#usr/share/autoconf/m4sugar/foreach.m4
 #usr/share/autoconf/m4sugar/m4sh.m4
 #usr/share/autoconf/m4sugar/m4sh.m4f
 #usr/share/autoconf/m4sugar/m4sugar.m4
 #usr/share/autoconf/m4sugar/m4sugar.m4f
 #usr/share/autoconf/m4sugar/version.m4
+#usr/share/info/autoconf.info
+#usr/share/man/man1/autoconf.1
+#usr/share/man/man1/autoheader.1
+#usr/share/man/man1/autom4te.1
+#usr/share/man/man1/autoreconf.1
+#usr/share/man/man1/autoscan.1
+#usr/share/man/man1/autoupdate.1
+#usr/share/man/man1/config.guess.1
+#usr/share/man/man1/config.sub.1
+#usr/share/man/man1/ifnames.1
index 2b2ceb2a75523f1dbec66e0a8fea3e1c5813fac4..0c19dc3460a1a7f7dda31cfec595dc43e196a754 100644 (file)
 #usr/bin/aclocal
-#usr/bin/aclocal-1.9
+#usr/bin/aclocal-1.12
 #usr/bin/automake
-#usr/bin/automake-1.9
-#usr/share/aclocal-1.9
-#usr/share/aclocal-1.9/amversion.m4
-#usr/share/aclocal-1.9/as.m4
-#usr/share/aclocal-1.9/auxdir.m4
-#usr/share/aclocal-1.9/ccstdc.m4
-#usr/share/aclocal-1.9/cond.m4
-#usr/share/aclocal-1.9/depend.m4
-#usr/share/aclocal-1.9/depout.m4
-#usr/share/aclocal-1.9/dmalloc.m4
-#usr/share/aclocal-1.9/gcj.m4
-#usr/share/aclocal-1.9/header.m4
-#usr/share/aclocal-1.9/init.m4
-#usr/share/aclocal-1.9/install-sh.m4
-#usr/share/aclocal-1.9/lead-dot.m4
-#usr/share/aclocal-1.9/lex.m4
-#usr/share/aclocal-1.9/lispdir.m4
-#usr/share/aclocal-1.9/maintainer.m4
-#usr/share/aclocal-1.9/make.m4
-#usr/share/aclocal-1.9/minuso.m4
-#usr/share/aclocal-1.9/missing.m4
-#usr/share/aclocal-1.9/mkdirp.m4
-#usr/share/aclocal-1.9/multi.m4
-#usr/share/aclocal-1.9/obsol-gt.m4
-#usr/share/aclocal-1.9/obsol-lt.m4
-#usr/share/aclocal-1.9/obsolete.m4
-#usr/share/aclocal-1.9/options.m4
-#usr/share/aclocal-1.9/protos.m4
-#usr/share/aclocal-1.9/python.m4
-#usr/share/aclocal-1.9/regex.m4
-#usr/share/aclocal-1.9/runlog.m4
-#usr/share/aclocal-1.9/sanity.m4
-#usr/share/aclocal-1.9/strip.m4
-#usr/share/aclocal-1.9/tar.m4
-#usr/share/automake-1.9
-#usr/share/automake-1.9/Automake
-#usr/share/automake-1.9/Automake/ChannelDefs.pm
-#usr/share/automake-1.9/Automake/Channels.pm
-#usr/share/automake-1.9/Automake/Condition.pm
-#usr/share/automake-1.9/Automake/Config.pm
-#usr/share/automake-1.9/Automake/Configure_ac.pm
-#usr/share/automake-1.9/Automake/DisjConditions.pm
-#usr/share/automake-1.9/Automake/FileUtils.pm
-#usr/share/automake-1.9/Automake/General.pm
-#usr/share/automake-1.9/Automake/Item.pm
-#usr/share/automake-1.9/Automake/ItemDef.pm
-#usr/share/automake-1.9/Automake/Location.pm
-#usr/share/automake-1.9/Automake/Options.pm
-#usr/share/automake-1.9/Automake/Rule.pm
-#usr/share/automake-1.9/Automake/RuleDef.pm
-#usr/share/automake-1.9/Automake/Struct.pm
-#usr/share/automake-1.9/Automake/VarDef.pm
-#usr/share/automake-1.9/Automake/Variable.pm
-#usr/share/automake-1.9/Automake/Version.pm
-#usr/share/automake-1.9/Automake/Wrap.pm
-#usr/share/automake-1.9/Automake/XFile.pm
-#usr/share/automake-1.9/COPYING
-#usr/share/automake-1.9/INSTALL
-#usr/share/automake-1.9/acinstall
-#usr/share/automake-1.9/am
-#usr/share/automake-1.9/am/ansi2knr.am
-#usr/share/automake-1.9/am/check.am
-#usr/share/automake-1.9/am/clean-hdr.am
-#usr/share/automake-1.9/am/clean.am
-#usr/share/automake-1.9/am/compile.am
-#usr/share/automake-1.9/am/configure.am
-#usr/share/automake-1.9/am/data.am
-#usr/share/automake-1.9/am/dejagnu.am
-#usr/share/automake-1.9/am/depend.am
-#usr/share/automake-1.9/am/depend2.am
-#usr/share/automake-1.9/am/distdir.am
-#usr/share/automake-1.9/am/footer.am
-#usr/share/automake-1.9/am/header-vars.am
-#usr/share/automake-1.9/am/header.am
-#usr/share/automake-1.9/am/inst-vars.am
-#usr/share/automake-1.9/am/install.am
-#usr/share/automake-1.9/am/java.am
-#usr/share/automake-1.9/am/lang-compile.am
-#usr/share/automake-1.9/am/lex.am
-#usr/share/automake-1.9/am/library.am
-#usr/share/automake-1.9/am/libs.am
-#usr/share/automake-1.9/am/libtool.am
-#usr/share/automake-1.9/am/lisp.am
-#usr/share/automake-1.9/am/ltlib.am
-#usr/share/automake-1.9/am/ltlibrary.am
-#usr/share/automake-1.9/am/mans-vars.am
-#usr/share/automake-1.9/am/mans.am
-#usr/share/automake-1.9/am/multilib.am
-#usr/share/automake-1.9/am/program.am
-#usr/share/automake-1.9/am/progs.am
-#usr/share/automake-1.9/am/python.am
-#usr/share/automake-1.9/am/remake-hdr.am
-#usr/share/automake-1.9/am/scripts.am
-#usr/share/automake-1.9/am/subdirs.am
-#usr/share/automake-1.9/am/tags.am
-#usr/share/automake-1.9/am/texi-vers.am
-#usr/share/automake-1.9/am/texibuild.am
-#usr/share/automake-1.9/am/texinfos.am
-#usr/share/automake-1.9/am/yacc.am
-#usr/share/automake-1.9/ansi2knr.1
-#usr/share/automake-1.9/ansi2knr.c
-#usr/share/automake-1.9/compile
-#usr/share/automake-1.9/config-ml.in
-#usr/share/automake-1.9/config.guess
-#usr/share/automake-1.9/config.sub
-#usr/share/automake-1.9/depcomp
-#usr/share/automake-1.9/elisp-comp
-#usr/share/automake-1.9/install-sh
-#usr/share/automake-1.9/mdate-sh
-#usr/share/automake-1.9/missing
-#usr/share/automake-1.9/mkinstalldirs
-#usr/share/automake-1.9/py-compile
-#usr/share/automake-1.9/symlink-tree
-#usr/share/automake-1.9/texinfo.tex
-#usr/share/automake-1.9/ylwrap
+#usr/bin/automake-1.12
+#usr/share/aclocal-1.12
+#usr/share/aclocal-1.12/amversion.m4
+#usr/share/aclocal-1.12/ar-lib.m4
+#usr/share/aclocal-1.12/as.m4
+#usr/share/aclocal-1.12/auxdir.m4
+#usr/share/aclocal-1.12/ccstdc.m4
+#usr/share/aclocal-1.12/cond-if.m4
+#usr/share/aclocal-1.12/cond.m4
+#usr/share/aclocal-1.12/depend.m4
+#usr/share/aclocal-1.12/depout.m4
+#usr/share/aclocal-1.12/dmalloc.m4
+#usr/share/aclocal-1.12/gcj.m4
+#usr/share/aclocal-1.12/header.m4
+#usr/share/aclocal-1.12/init.m4
+#usr/share/aclocal-1.12/install-sh.m4
+#usr/share/aclocal-1.12/lead-dot.m4
+#usr/share/aclocal-1.12/lex.m4
+#usr/share/aclocal-1.12/lispdir.m4
+#usr/share/aclocal-1.12/maintainer.m4
+#usr/share/aclocal-1.12/make.m4
+#usr/share/aclocal-1.12/minuso.m4
+#usr/share/aclocal-1.12/missing.m4
+#usr/share/aclocal-1.12/mkdirp.m4
+#usr/share/aclocal-1.12/obsol-gt.m4
+#usr/share/aclocal-1.12/obsol-lt.m4
+#usr/share/aclocal-1.12/obsolete.m4
+#usr/share/aclocal-1.12/options.m4
+#usr/share/aclocal-1.12/protos.m4
+#usr/share/aclocal-1.12/python.m4
+#usr/share/aclocal-1.12/runlog.m4
+#usr/share/aclocal-1.12/sanity.m4
+#usr/share/aclocal-1.12/silent.m4
+#usr/share/aclocal-1.12/strip.m4
+#usr/share/aclocal-1.12/substnot.m4
+#usr/share/aclocal-1.12/tar.m4
+#usr/share/aclocal-1.12/upc.m4
+#usr/share/aclocal-1.12/vala.m4
+#usr/share/aclocal/README
+#usr/share/automake-1.12
+#usr/share/automake-1.12/Automake
+#usr/share/automake-1.12/Automake/ChannelDefs.pm
+#usr/share/automake-1.12/Automake/Channels.pm
+#usr/share/automake-1.12/Automake/Condition.pm
+#usr/share/automake-1.12/Automake/Config.pm
+#usr/share/automake-1.12/Automake/Configure_ac.pm
+#usr/share/automake-1.12/Automake/DisjConditions.pm
+#usr/share/automake-1.12/Automake/FileUtils.pm
+#usr/share/automake-1.12/Automake/General.pm
+#usr/share/automake-1.12/Automake/Getopt.pm
+#usr/share/automake-1.12/Automake/Item.pm
+#usr/share/automake-1.12/Automake/ItemDef.pm
+#usr/share/automake-1.12/Automake/Location.pm
+#usr/share/automake-1.12/Automake/Options.pm
+#usr/share/automake-1.12/Automake/Rule.pm
+#usr/share/automake-1.12/Automake/RuleDef.pm
+#usr/share/automake-1.12/Automake/VarDef.pm
+#usr/share/automake-1.12/Automake/Variable.pm
+#usr/share/automake-1.12/Automake/Version.pm
+#usr/share/automake-1.12/Automake/Wrap.pm
+#usr/share/automake-1.12/Automake/XFile.pm
+#usr/share/automake-1.12/COPYING
+#usr/share/automake-1.12/INSTALL
+#usr/share/automake-1.12/am
+#usr/share/automake-1.12/am/check.am
+#usr/share/automake-1.12/am/check2.am
+#usr/share/automake-1.12/am/clean-hdr.am
+#usr/share/automake-1.12/am/clean.am
+#usr/share/automake-1.12/am/compile.am
+#usr/share/automake-1.12/am/configure.am
+#usr/share/automake-1.12/am/data.am
+#usr/share/automake-1.12/am/dejagnu.am
+#usr/share/automake-1.12/am/depend.am
+#usr/share/automake-1.12/am/depend2.am
+#usr/share/automake-1.12/am/distdir.am
+#usr/share/automake-1.12/am/footer.am
+#usr/share/automake-1.12/am/header-vars.am
+#usr/share/automake-1.12/am/header.am
+#usr/share/automake-1.12/am/inst-vars.am
+#usr/share/automake-1.12/am/install.am
+#usr/share/automake-1.12/am/java.am
+#usr/share/automake-1.12/am/lang-compile.am
+#usr/share/automake-1.12/am/lex.am
+#usr/share/automake-1.12/am/library.am
+#usr/share/automake-1.12/am/libs.am
+#usr/share/automake-1.12/am/libtool.am
+#usr/share/automake-1.12/am/lisp.am
+#usr/share/automake-1.12/am/ltlib.am
+#usr/share/automake-1.12/am/ltlibrary.am
+#usr/share/automake-1.12/am/mans-vars.am
+#usr/share/automake-1.12/am/mans.am
+#usr/share/automake-1.12/am/program.am
+#usr/share/automake-1.12/am/progs.am
+#usr/share/automake-1.12/am/python.am
+#usr/share/automake-1.12/am/remake-hdr.am
+#usr/share/automake-1.12/am/scripts.am
+#usr/share/automake-1.12/am/subdirs.am
+#usr/share/automake-1.12/am/tags.am
+#usr/share/automake-1.12/am/texi-vers.am
+#usr/share/automake-1.12/am/texibuild.am
+#usr/share/automake-1.12/am/texinfos.am
+#usr/share/automake-1.12/am/vala.am
+#usr/share/automake-1.12/am/yacc.am
+#usr/share/automake-1.12/ar-lib
+#usr/share/automake-1.12/compile
+#usr/share/automake-1.12/config.guess
+#usr/share/automake-1.12/config.sub
+#usr/share/automake-1.12/depcomp
+#usr/share/automake-1.12/elisp-comp
+#usr/share/automake-1.12/install-sh
+#usr/share/automake-1.12/mdate-sh
+#usr/share/automake-1.12/missing
+#usr/share/automake-1.12/mkinstalldirs
+#usr/share/automake-1.12/py-compile
+#usr/share/automake-1.12/tap-driver.pl
+#usr/share/automake-1.12/tap-driver.sh
+#usr/share/automake-1.12/test-driver
+#usr/share/automake-1.12/texinfo.tex
+#usr/share/automake-1.12/ylwrap
+#usr/share/doc/automake
+#usr/share/doc/automake/amhello-1.0.tar.gz
+#usr/share/info/automake-history.info
 #usr/share/info/automake.info
 #usr/share/info/automake.info-1
 #usr/share/info/automake.info-2
+#usr/share/info/automake.info-3
+#usr/share/man/man1/aclocal-1.12.1
+#usr/share/man/man1/aclocal.1
+#usr/share/man/man1/automake-1.12.1
+#usr/share/man/man1/automake.1
index 43eecc9435dcc4c691f02e0053b1f4e66e7ce768..ecaeb1bdd2a8ede5fd5636451e5b6231af57adc3 100644 (file)
@@ -1,6 +1,6 @@
 bin/sh
 bin/bash
 #bin/bashbug
-#usr/info/bash.info
-#usr/man/man1/bash.1
-#usr/man/man1/bashbug.1
+#usr/share/info/bash.info
+#usr/share/man/man1/bash.1
+#usr/share/man/man1/bashbug.1
index 6c5db4f49ffb4abcb9f9665ebfe3ec1043c99db4..3bfa898a055d93775f1aee6861268a81b713fb2f 100644 (file)
@@ -1,4 +1,2 @@
-#usr/include/libbridge.h
-#usr/lib/libbridge.a
-#usr/man/man8/brctl.8
 usr/sbin/brctl
+#usr/share/man/man8/brctl.8
diff --git a/config/rootfiles/common/cairo b/config/rootfiles/common/cairo
new file mode 100644 (file)
index 0000000..ca09099
--- /dev/null
@@ -0,0 +1,99 @@
+#usr/bin/cairo-trace
+#usr/include/cairo
+#usr/include/cairo/cairo-deprecated.h
+#usr/include/cairo/cairo-features.h
+#usr/include/cairo/cairo-ft.h
+#usr/include/cairo/cairo-gobject.h
+#usr/include/cairo/cairo-pdf.h
+#usr/include/cairo/cairo-ps.h
+#usr/include/cairo/cairo-script-interpreter.h
+#usr/include/cairo/cairo-svg.h
+#usr/include/cairo/cairo-version.h
+#usr/include/cairo/cairo.h
+#usr/lib/cairo
+#usr/lib/cairo/libcairo-trace.a
+#usr/lib/cairo/libcairo-trace.la
+usr/lib/cairo/libcairo-trace.so
+usr/lib/cairo/libcairo-trace.so.0
+usr/lib/cairo/libcairo-trace.so.0.0.0
+#usr/lib/libcairo-gobject.a
+#usr/lib/libcairo-gobject.la
+usr/lib/libcairo-gobject.so
+usr/lib/libcairo-gobject.so.2
+usr/lib/libcairo-gobject.so.2.11000.2
+#usr/lib/libcairo-script-interpreter.a
+#usr/lib/libcairo-script-interpreter.la
+usr/lib/libcairo-script-interpreter.so
+usr/lib/libcairo-script-interpreter.so.2
+usr/lib/libcairo-script-interpreter.so.2.11000.2
+#usr/lib/libcairo.a
+#usr/lib/libcairo.la
+#usr/lib/libcairo.so
+usr/lib/libcairo.so.2
+usr/lib/libcairo.so.2.11000.2
+#usr/lib/pkgconfig/cairo-fc.pc
+#usr/lib/pkgconfig/cairo-ft.pc
+#usr/lib/pkgconfig/cairo-gobject.pc
+#usr/lib/pkgconfig/cairo-pdf.pc
+#usr/lib/pkgconfig/cairo-png.pc
+#usr/lib/pkgconfig/cairo-ps.pc
+#usr/lib/pkgconfig/cairo-svg.pc
+#usr/lib/pkgconfig/cairo.pc
+#usr/share/gtk-doc/html/cairo
+#usr/share/gtk-doc/html/cairo/bindings-errors.html
+#usr/share/gtk-doc/html/cairo/bindings-fonts.html
+#usr/share/gtk-doc/html/cairo/bindings-memory.html
+#usr/share/gtk-doc/html/cairo/bindings-overloading.html
+#usr/share/gtk-doc/html/cairo/bindings-path.html
+#usr/share/gtk-doc/html/cairo/bindings-patterns.html
+#usr/share/gtk-doc/html/cairo/bindings-return-values.html
+#usr/share/gtk-doc/html/cairo/bindings-streams.html
+#usr/share/gtk-doc/html/cairo/bindings-surfaces.html
+#usr/share/gtk-doc/html/cairo/cairo-Error-handling.html
+#usr/share/gtk-doc/html/cairo/cairo-FreeType-Fonts.html
+#usr/share/gtk-doc/html/cairo/cairo-Image-Surfaces.html
+#usr/share/gtk-doc/html/cairo/cairo-PDF-Surfaces.html
+#usr/share/gtk-doc/html/cairo/cairo-PNG-Support.html
+#usr/share/gtk-doc/html/cairo/cairo-Paths.html
+#usr/share/gtk-doc/html/cairo/cairo-PostScript-Surfaces.html
+#usr/share/gtk-doc/html/cairo/cairo-Quartz-(CGFont)-Fonts.html
+#usr/share/gtk-doc/html/cairo/cairo-Quartz-Surfaces.html
+#usr/share/gtk-doc/html/cairo/cairo-Recording-Surfaces.html
+#usr/share/gtk-doc/html/cairo/cairo-Regions.html
+#usr/share/gtk-doc/html/cairo/cairo-SVG-Surfaces.html
+#usr/share/gtk-doc/html/cairo/cairo-Transformations.html
+#usr/share/gtk-doc/html/cairo/cairo-Types.html
+#usr/share/gtk-doc/html/cairo/cairo-User-Fonts.html
+#usr/share/gtk-doc/html/cairo/cairo-Version-Information.html
+#usr/share/gtk-doc/html/cairo/cairo-Win32-Fonts.html
+#usr/share/gtk-doc/html/cairo/cairo-Win32-Surfaces.html
+#usr/share/gtk-doc/html/cairo/cairo-XLib-Surfaces.html
+#usr/share/gtk-doc/html/cairo/cairo-cairo-device-t.html
+#usr/share/gtk-doc/html/cairo/cairo-cairo-font-face-t.html
+#usr/share/gtk-doc/html/cairo/cairo-cairo-font-options-t.html
+#usr/share/gtk-doc/html/cairo/cairo-cairo-matrix-t.html
+#usr/share/gtk-doc/html/cairo/cairo-cairo-pattern-t.html
+#usr/share/gtk-doc/html/cairo/cairo-cairo-scaled-font-t.html
+#usr/share/gtk-doc/html/cairo/cairo-cairo-surface-t.html
+#usr/share/gtk-doc/html/cairo/cairo-cairo-t.html
+#usr/share/gtk-doc/html/cairo/cairo-drawing.html
+#usr/share/gtk-doc/html/cairo/cairo-fonts.html
+#usr/share/gtk-doc/html/cairo/cairo-support.html
+#usr/share/gtk-doc/html/cairo/cairo-surfaces.html
+#usr/share/gtk-doc/html/cairo/cairo-text.html
+#usr/share/gtk-doc/html/cairo/cairo.devhelp
+#usr/share/gtk-doc/html/cairo/cairo.devhelp2
+#usr/share/gtk-doc/html/cairo/home.png
+#usr/share/gtk-doc/html/cairo/index-1.10.html
+#usr/share/gtk-doc/html/cairo/index-1.2.html
+#usr/share/gtk-doc/html/cairo/index-1.4.html
+#usr/share/gtk-doc/html/cairo/index-1.6.html
+#usr/share/gtk-doc/html/cairo/index-1.8.html
+#usr/share/gtk-doc/html/cairo/index-all.html
+#usr/share/gtk-doc/html/cairo/index.html
+#usr/share/gtk-doc/html/cairo/index.sgml
+#usr/share/gtk-doc/html/cairo/language-bindings.html
+#usr/share/gtk-doc/html/cairo/left.png
+#usr/share/gtk-doc/html/cairo/right.png
+#usr/share/gtk-doc/html/cairo/style.css
+#usr/share/gtk-doc/html/cairo/up.png
index 4a1d702c095f375d148241c2512cd46988296d69..81a953958aaea2980823ae55852f0f0ebe9f21a1 100644 (file)
-#usr/local/bin/ccmake
-#usr/local/bin/cmake
-#usr/local/bin/cpack
-#usr/local/bin/ctest
-#usr/local/doc
-#usr/local/doc/cmake-2.6
-#usr/local/doc/cmake-2.6/ccmake.docbook
-#usr/local/doc/cmake-2.6/ccmake.html
-#usr/local/doc/cmake-2.6/ccmake.txt
-#usr/local/doc/cmake-2.6/cmake-commands.html
-#usr/local/doc/cmake-2.6/cmake-commands.txt
-#usr/local/doc/cmake-2.6/cmake-compatcommands.html
-#usr/local/doc/cmake-2.6/cmake-compatcommands.txt
-#usr/local/doc/cmake-2.6/cmake-modules.html
-#usr/local/doc/cmake-2.6/cmake-modules.txt
-#usr/local/doc/cmake-2.6/cmake-policies.html
-#usr/local/doc/cmake-2.6/cmake-policies.txt
-#usr/local/doc/cmake-2.6/cmake-properties.html
-#usr/local/doc/cmake-2.6/cmake-properties.txt
-#usr/local/doc/cmake-2.6/cmake-variables.html
-#usr/local/doc/cmake-2.6/cmake-variables.txt
-#usr/local/doc/cmake-2.6/cmake.docbook
-#usr/local/doc/cmake-2.6/cmake.html
-#usr/local/doc/cmake-2.6/cmake.txt
-#usr/local/doc/cmake-2.6/cpack.docbook
-#usr/local/doc/cmake-2.6/cpack.html
-#usr/local/doc/cmake-2.6/cpack.txt
-#usr/local/doc/cmake-2.6/ctest.docbook
-#usr/local/doc/cmake-2.6/ctest.html
-#usr/local/doc/cmake-2.6/ctest.txt
-#usr/local/man
-#usr/local/man/man1
-#usr/local/man/man1/ccmake.1
-#usr/local/man/man1/cmake.1
-#usr/local/man/man1/cmakecommands.1
-#usr/local/man/man1/cmakecompat.1
-#usr/local/man/man1/cmakemodules.1
-#usr/local/man/man1/cmakepolicies.1
-#usr/local/man/man1/cmakeprops.1
-#usr/local/man/man1/cmakevars.1
-#usr/local/man/man1/cpack.1
-#usr/local/man/man1/ctest.1
-#usr/local/share/cmake-2.6
-#usr/local/share/cmake-2.6/Modules
-#usr/local/share/cmake-2.6/Modules/AddFileDependencies.cmake
-#usr/local/share/cmake-2.6/Modules/BundleUtilities.cmake
-#usr/local/share/cmake-2.6/Modules/CMake.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeASM-ATTInformation.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeASMCompiler.cmake.in
-#usr/local/share/cmake-2.6/Modules/CMakeASMInformation.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeASM_MASMInformation.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeBackwardCompatibilityC.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeBackwardCompatibilityCXX.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeBorlandFindMake.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeBuildSettings.cmake.in
-#usr/local/share/cmake-2.6/Modules/CMakeCCompiler.cmake.in
-#usr/local/share/cmake-2.6/Modules/CMakeCCompilerABI.c
-#usr/local/share/cmake-2.6/Modules/CMakeCCompilerId.c.in
-#usr/local/share/cmake-2.6/Modules/CMakeCInformation.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeCXXCompiler.cmake.in
-#usr/local/share/cmake-2.6/Modules/CMakeCXXCompilerABI.cpp
-#usr/local/share/cmake-2.6/Modules/CMakeCXXCompilerId.cpp.in
-#usr/local/share/cmake-2.6/Modules/CMakeCXXInformation.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeCommonLanguageInclude.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeCompilerABI.h
-#usr/local/share/cmake-2.6/Modules/CMakeConfigurableFile.in
-#usr/local/share/cmake-2.6/Modules/CMakeDependentOption.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeDetermineASM-ATTCompiler.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeDetermineASMCompiler.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeDetermineASM_MASMCompiler.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeDetermineCCompiler.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeDetermineCXXCompiler.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeDetermineCompilerABI.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeDetermineCompilerId.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeDetermineFortranCompiler.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeDetermineJavaCompiler.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeDetermineRCCompiler.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeDetermineSystem.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeExportBuildSettings.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeFindBinUtils.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeFindFrameworks.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeFindWMake.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeFindXCode.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeForceCompiler.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeFortranCompiler.cmake.in
-#usr/local/share/cmake-2.6/Modules/CMakeFortranCompilerId.F90.in
-#usr/local/share/cmake-2.6/Modules/CMakeFortranInformation.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeGenericSystem.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeImportBuildSettings.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeJavaCompiler.cmake.in
-#usr/local/share/cmake-2.6/Modules/CMakeJavaInformation.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeMSYSFindMake.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeMinGWFindMake.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeNMakeFindMake.cmake
-#usr/local/share/cmake-2.6/Modules/CMakePlatformId.h.in
-#usr/local/share/cmake-2.6/Modules/CMakePrintSystemInformation.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeRCCompiler.cmake.in
-#usr/local/share/cmake-2.6/Modules/CMakeRCInformation.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeSystem.cmake.in
-#usr/local/share/cmake-2.6/Modules/CMakeSystemSpecificInformation.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeTestASM-ATTCompiler.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeTestASMCompiler.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeTestASM_MASMCompiler.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeTestCCompiler.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeTestCXXCompiler.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeTestForFreeVC.cxx
-#usr/local/share/cmake-2.6/Modules/CMakeTestFortranCompiler.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeTestGNU.c
-#usr/local/share/cmake-2.6/Modules/CMakeTestJavaCompiler.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeTestNMakeCLVersion.c
-#usr/local/share/cmake-2.6/Modules/CMakeTestRCCompiler.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeUnixFindMake.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeVS6BackwardCompatibility.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeVS6FindMake.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeVS71FindMake.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeVS7BackwardCompatibility.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeVS7FindMake.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeVS8FindMake.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeVS9FindMake.cmake
-#usr/local/share/cmake-2.6/Modules/CPack.DS_Store.in
-#usr/local/share/cmake-2.6/Modules/CPack.Description.plist.in
-#usr/local/share/cmake-2.6/Modules/CPack.Info.plist.in
-#usr/local/share/cmake-2.6/Modules/CPack.OSXScriptLauncher.in
-#usr/local/share/cmake-2.6/Modules/CPack.OSXScriptLauncher.rsrc.in
-#usr/local/share/cmake-2.6/Modules/CPack.OSXX11.Info.plist.in
-#usr/local/share/cmake-2.6/Modules/CPack.OSXX11.main.scpt.in
-#usr/local/share/cmake-2.6/Modules/CPack.RuntimeScript.in
-#usr/local/share/cmake-2.6/Modules/CPack.STGZ_Header.sh.in
-#usr/local/share/cmake-2.6/Modules/CPack.VolumeIcon.icns.in
-#usr/local/share/cmake-2.6/Modules/CPack.background.png.in
-#usr/local/share/cmake-2.6/Modules/CPack.cmake
-#usr/local/share/cmake-2.6/Modules/CPack.distribution.dist.in
-#usr/local/share/cmake-2.6/Modules/CPackDeb.cmake
-#usr/local/share/cmake-2.6/Modules/CPackRPM.cmake
-#usr/local/share/cmake-2.6/Modules/CPackZIP.cmake
-#usr/local/share/cmake-2.6/Modules/CTest.cmake
-#usr/local/share/cmake-2.6/Modules/CTestTargets.cmake
-#usr/local/share/cmake-2.6/Modules/CheckCCompilerFlag.cmake
-#usr/local/share/cmake-2.6/Modules/CheckCSourceCompiles.cmake
-#usr/local/share/cmake-2.6/Modules/CheckCSourceRuns.cmake
-#usr/local/share/cmake-2.6/Modules/CheckCXXCompilerFlag.cmake
-#usr/local/share/cmake-2.6/Modules/CheckCXXSourceCompiles.cmake
-#usr/local/share/cmake-2.6/Modules/CheckCXXSourceRuns.cmake
-#usr/local/share/cmake-2.6/Modules/CheckForPthreads.c
-#usr/local/share/cmake-2.6/Modules/CheckFortranFunctionExists.cmake
-#usr/local/share/cmake-2.6/Modules/CheckFunctionExists.c
-#usr/local/share/cmake-2.6/Modules/CheckFunctionExists.cmake
-#usr/local/share/cmake-2.6/Modules/CheckIncludeFile.c.in
-#usr/local/share/cmake-2.6/Modules/CheckIncludeFile.cmake
-#usr/local/share/cmake-2.6/Modules/CheckIncludeFile.cxx.in
-#usr/local/share/cmake-2.6/Modules/CheckIncludeFileCXX.cmake
-#usr/local/share/cmake-2.6/Modules/CheckIncludeFiles.cmake
-#usr/local/share/cmake-2.6/Modules/CheckLibraryExists.cmake
-#usr/local/share/cmake-2.6/Modules/CheckLibraryExists.lists.in
-#usr/local/share/cmake-2.6/Modules/CheckSizeOf.cmake
-#usr/local/share/cmake-2.6/Modules/CheckStructHasMember.cmake
-#usr/local/share/cmake-2.6/Modules/CheckSymbolExists.cmake
-#usr/local/share/cmake-2.6/Modules/CheckTypeSize.cmake
-#usr/local/share/cmake-2.6/Modules/CheckTypeSizeC.c.in
-#usr/local/share/cmake-2.6/Modules/CheckVariableExists.c
-#usr/local/share/cmake-2.6/Modules/CheckVariableExists.cmake
-#usr/local/share/cmake-2.6/Modules/Dart.cmake
-#usr/local/share/cmake-2.6/Modules/DartConfiguration.tcl.in
-#usr/local/share/cmake-2.6/Modules/Documentation.cmake
-#usr/local/share/cmake-2.6/Modules/DummyCXXFile.cxx
-#usr/local/share/cmake-2.6/Modules/FLTKCompatibility.cmake
-#usr/local/share/cmake-2.6/Modules/FeatureSummary.cmake
-#usr/local/share/cmake-2.6/Modules/FindASPELL.cmake
-#usr/local/share/cmake-2.6/Modules/FindAVIFile.cmake
-#usr/local/share/cmake-2.6/Modules/FindBLAS.cmake
-#usr/local/share/cmake-2.6/Modules/FindBZip2.cmake
-#usr/local/share/cmake-2.6/Modules/FindBoost.cmake
-#usr/local/share/cmake-2.6/Modules/FindCABLE.cmake
-#usr/local/share/cmake-2.6/Modules/FindCURL.cmake
-#usr/local/share/cmake-2.6/Modules/FindCVS.cmake
-#usr/local/share/cmake-2.6/Modules/FindCoin3D.cmake
-#usr/local/share/cmake-2.6/Modules/FindCups.cmake
-#usr/local/share/cmake-2.6/Modules/FindCurses.cmake
-#usr/local/share/cmake-2.6/Modules/FindCxxTest.cmake
-#usr/local/share/cmake-2.6/Modules/FindCygwin.cmake
-#usr/local/share/cmake-2.6/Modules/FindDCMTK.cmake
-#usr/local/share/cmake-2.6/Modules/FindDart.cmake
-#usr/local/share/cmake-2.6/Modules/FindDevIL.cmake
-#usr/local/share/cmake-2.6/Modules/FindDoxygen.cmake
-#usr/local/share/cmake-2.6/Modules/FindEXPAT.cmake
-#usr/local/share/cmake-2.6/Modules/FindFLTK.cmake
-#usr/local/share/cmake-2.6/Modules/FindFLTK2.cmake
-#usr/local/share/cmake-2.6/Modules/FindFreetype.cmake
-#usr/local/share/cmake-2.6/Modules/FindGCCXML.cmake
-#usr/local/share/cmake-2.6/Modules/FindGDAL.cmake
-#usr/local/share/cmake-2.6/Modules/FindGIF.cmake
-#usr/local/share/cmake-2.6/Modules/FindGLU.cmake
-#usr/local/share/cmake-2.6/Modules/FindGLUT.cmake
-#usr/local/share/cmake-2.6/Modules/FindGTK.cmake
-#usr/local/share/cmake-2.6/Modules/FindGettext.cmake
-#usr/local/share/cmake-2.6/Modules/FindGnuplot.cmake
-#usr/local/share/cmake-2.6/Modules/FindHSPELL.cmake
-#usr/local/share/cmake-2.6/Modules/FindHTMLHelp.cmake
-#usr/local/share/cmake-2.6/Modules/FindITK.cmake
-#usr/local/share/cmake-2.6/Modules/FindImageMagick.cmake
-#usr/local/share/cmake-2.6/Modules/FindJNI.cmake
-#usr/local/share/cmake-2.6/Modules/FindJPEG.cmake
-#usr/local/share/cmake-2.6/Modules/FindJasper.cmake
-#usr/local/share/cmake-2.6/Modules/FindJava.cmake
-#usr/local/share/cmake-2.6/Modules/FindKDE3.cmake
-#usr/local/share/cmake-2.6/Modules/FindKDE4.cmake
-#usr/local/share/cmake-2.6/Modules/FindLAPACK.cmake
-#usr/local/share/cmake-2.6/Modules/FindLATEX.cmake
-#usr/local/share/cmake-2.6/Modules/FindLibXml2.cmake
-#usr/local/share/cmake-2.6/Modules/FindLibXslt.cmake
-#usr/local/share/cmake-2.6/Modules/FindLua50.cmake
-#usr/local/share/cmake-2.6/Modules/FindLua51.cmake
-#usr/local/share/cmake-2.6/Modules/FindMFC.cmake
-#usr/local/share/cmake-2.6/Modules/FindMPEG.cmake
-#usr/local/share/cmake-2.6/Modules/FindMPEG2.cmake
-#usr/local/share/cmake-2.6/Modules/FindMPI.cmake
-#usr/local/share/cmake-2.6/Modules/FindMatlab.cmake
-#usr/local/share/cmake-2.6/Modules/FindMotif.cmake
-#usr/local/share/cmake-2.6/Modules/FindOpenAL.cmake
-#usr/local/share/cmake-2.6/Modules/FindOpenGL.cmake
-#usr/local/share/cmake-2.6/Modules/FindOpenMP.cmake
-#usr/local/share/cmake-2.6/Modules/FindOpenSSL.cmake
-#usr/local/share/cmake-2.6/Modules/FindOpenSceneGraph.cmake
-#usr/local/share/cmake-2.6/Modules/FindOpenThreads.cmake
-#usr/local/share/cmake-2.6/Modules/FindPHP4.cmake
-#usr/local/share/cmake-2.6/Modules/FindPNG.cmake
-#usr/local/share/cmake-2.6/Modules/FindPackageHandleStandardArgs.cmake
-#usr/local/share/cmake-2.6/Modules/FindPackageMessage.cmake
-#usr/local/share/cmake-2.6/Modules/FindPerl.cmake
-#usr/local/share/cmake-2.6/Modules/FindPerlLibs.cmake
-#usr/local/share/cmake-2.6/Modules/FindPhysFS.cmake
-#usr/local/share/cmake-2.6/Modules/FindPike.cmake
-#usr/local/share/cmake-2.6/Modules/FindPkgConfig.cmake
-#usr/local/share/cmake-2.6/Modules/FindProducer.cmake
-#usr/local/share/cmake-2.6/Modules/FindPythonInterp.cmake
-#usr/local/share/cmake-2.6/Modules/FindPythonLibs.cmake
-#usr/local/share/cmake-2.6/Modules/FindQt.cmake
-#usr/local/share/cmake-2.6/Modules/FindQt3.cmake
-#usr/local/share/cmake-2.6/Modules/FindQt4.cmake
-#usr/local/share/cmake-2.6/Modules/FindQuickTime.cmake
-#usr/local/share/cmake-2.6/Modules/FindRTI.cmake
-#usr/local/share/cmake-2.6/Modules/FindRuby.cmake
-#usr/local/share/cmake-2.6/Modules/FindSDL.cmake
-#usr/local/share/cmake-2.6/Modules/FindSDL_image.cmake
-#usr/local/share/cmake-2.6/Modules/FindSDL_mixer.cmake
-#usr/local/share/cmake-2.6/Modules/FindSDL_net.cmake
-#usr/local/share/cmake-2.6/Modules/FindSDL_sound.cmake
-#usr/local/share/cmake-2.6/Modules/FindSDL_ttf.cmake
-#usr/local/share/cmake-2.6/Modules/FindSWIG.cmake
-#usr/local/share/cmake-2.6/Modules/FindSelfPackers.cmake
-#usr/local/share/cmake-2.6/Modules/FindSquish.cmake
-#usr/local/share/cmake-2.6/Modules/FindSubversion.cmake
-#usr/local/share/cmake-2.6/Modules/FindTCL.cmake
-#usr/local/share/cmake-2.6/Modules/FindTIFF.cmake
-#usr/local/share/cmake-2.6/Modules/FindTclStub.cmake
-#usr/local/share/cmake-2.6/Modules/FindTclsh.cmake
-#usr/local/share/cmake-2.6/Modules/FindThreads.cmake
-#usr/local/share/cmake-2.6/Modules/FindUnixCommands.cmake
-#usr/local/share/cmake-2.6/Modules/FindVTK.cmake
-#usr/local/share/cmake-2.6/Modules/FindWget.cmake
-#usr/local/share/cmake-2.6/Modules/FindWish.cmake
-#usr/local/share/cmake-2.6/Modules/FindX11.cmake
-#usr/local/share/cmake-2.6/Modules/FindXMLRPC.cmake
-#usr/local/share/cmake-2.6/Modules/FindZLIB.cmake
-#usr/local/share/cmake-2.6/Modules/Findosg.cmake
-#usr/local/share/cmake-2.6/Modules/FindosgAnimation.cmake
-#usr/local/share/cmake-2.6/Modules/FindosgDB.cmake
-#usr/local/share/cmake-2.6/Modules/FindosgFX.cmake
-#usr/local/share/cmake-2.6/Modules/FindosgGA.cmake
-#usr/local/share/cmake-2.6/Modules/FindosgIntrospection.cmake
-#usr/local/share/cmake-2.6/Modules/FindosgManipulator.cmake
-#usr/local/share/cmake-2.6/Modules/FindosgParticle.cmake
-#usr/local/share/cmake-2.6/Modules/FindosgProducer.cmake
-#usr/local/share/cmake-2.6/Modules/FindosgShadow.cmake
-#usr/local/share/cmake-2.6/Modules/FindosgSim.cmake
-#usr/local/share/cmake-2.6/Modules/FindosgTerrain.cmake
-#usr/local/share/cmake-2.6/Modules/FindosgText.cmake
-#usr/local/share/cmake-2.6/Modules/FindosgUtil.cmake
-#usr/local/share/cmake-2.6/Modules/FindosgViewer.cmake
-#usr/local/share/cmake-2.6/Modules/FindosgVolume.cmake
-#usr/local/share/cmake-2.6/Modules/FindosgWidget.cmake
-#usr/local/share/cmake-2.6/Modules/Findosg_functions.cmake
-#usr/local/share/cmake-2.6/Modules/FindwxWidgets.cmake
-#usr/local/share/cmake-2.6/Modules/FindwxWindows.cmake
-#usr/local/share/cmake-2.6/Modules/FortranCInterface.cmake
-#usr/local/share/cmake-2.6/Modules/FortranCInterface.h.in
-#usr/local/share/cmake-2.6/Modules/GetPrerequisites.cmake
-#usr/local/share/cmake-2.6/Modules/ITKCompatibility.cmake
-#usr/local/share/cmake-2.6/Modules/InstallRequiredSystemLibraries.cmake
-#usr/local/share/cmake-2.6/Modules/KDE3Macros.cmake
-#usr/local/share/cmake-2.6/Modules/MacOSXBundleInfo.plist.in
-#usr/local/share/cmake-2.6/Modules/MacOSXFrameworkInfo.plist.in
-#usr/local/share/cmake-2.6/Modules/MacroAddFileDependencies.cmake
-#usr/local/share/cmake-2.6/Modules/NSIS.InstallOptions.ini.in
-#usr/local/share/cmake-2.6/Modules/NSIS.template.in
-#usr/local/share/cmake-2.6/Modules/Platform
-#usr/local/share/cmake-2.6/Modules/Platform/AIX-VisualAge-Fortran.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/AIX.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/BSDOS.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/BeOS.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/BlueGeneL.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/CYGWIN-g77.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/CYGWIN.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Catamount.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Darwin-icc.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Darwin-icpc.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Darwin-xlc.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Darwin.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/DragonFly.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/FreeBSD.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/GNU.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Generic-ADSP-ASM.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Generic-ADSP-C.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Generic-ADSP-CXX.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Generic-ADSP-Common.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Generic-SDCC-C.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Generic.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/HP-UX.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Haiku.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/IRIX.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/IRIX64.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Linux-GNU-Fortran.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Linux-Intel-C.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Linux-Intel-CXX.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Linux-Intel-Fortran.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Linux-PGI-C.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Linux-PGI-CXX.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Linux-PGI-Fortran.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Linux-SunPro-C.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Linux-SunPro-CXX.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Linux-SunPro-Fortran.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Linux-VisualAge-C.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Linux-VisualAge-Fortran.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Linux-como.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Linux-icpc.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Linux-ifort.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Linux.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/MP-RAS.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/NetBSD.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/OSF1.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/OpenBSD.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/QNX.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/RISCos.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/SCO_SV.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/SINIX.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/SunOS-SunPro-Fortran.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/SunOS.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Tru64.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/ULTRIX.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/UNIX_SV.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/UnixPaths.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/UnixWare.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Windows-bcc32.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Windows-cl.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Windows-cl.cmake.in
-#usr/local/share/cmake-2.6/Modules/Platform/Windows-df.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Windows-g++.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Windows-g77.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Windows-gcc.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Windows-icl.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Windows-ifort.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Windows-wcl386.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Windows.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/WindowsPaths.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Xenix.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/cl.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/eCos.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/g77.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/gas.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/gcc.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/kFreeBSD.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/syllable.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/xlf.cmake
-#usr/local/share/cmake-2.6/Modules/SquishTestScript.cmake
-#usr/local/share/cmake-2.6/Modules/SystemInformation.cmake
-#usr/local/share/cmake-2.6/Modules/SystemInformation.in
-#usr/local/share/cmake-2.6/Modules/TestBigEndian.cmake
-#usr/local/share/cmake-2.6/Modules/TestCXXAcceptsFlag.cmake
-#usr/local/share/cmake-2.6/Modules/TestEndianess.c.in
-#usr/local/share/cmake-2.6/Modules/TestForANSIForScope.cmake
-#usr/local/share/cmake-2.6/Modules/TestForANSIStreamHeaders.cmake
-#usr/local/share/cmake-2.6/Modules/TestForANSIStreamHeaders.cxx
-#usr/local/share/cmake-2.6/Modules/TestForAnsiForScope.cxx
-#usr/local/share/cmake-2.6/Modules/TestForSSTREAM.cmake
-#usr/local/share/cmake-2.6/Modules/TestForSSTREAM.cxx
-#usr/local/share/cmake-2.6/Modules/TestForSTDNamespace.cmake
-#usr/local/share/cmake-2.6/Modules/TestForSTDNamespace.cxx
-#usr/local/share/cmake-2.6/Modules/UseEcos.cmake
-#usr/local/share/cmake-2.6/Modules/UsePkgConfig.cmake
-#usr/local/share/cmake-2.6/Modules/UseQt4.cmake
-#usr/local/share/cmake-2.6/Modules/UseSWIG.cmake
-#usr/local/share/cmake-2.6/Modules/UseVTK40.cmake
-#usr/local/share/cmake-2.6/Modules/UseVTKBuildSettings40.cmake
-#usr/local/share/cmake-2.6/Modules/UseVTKConfig40.cmake
-#usr/local/share/cmake-2.6/Modules/Use_wxWindows.cmake
-#usr/local/share/cmake-2.6/Modules/UsewxWidgets.cmake
-#usr/local/share/cmake-2.6/Modules/VTKCompatibility.cmake
-#usr/local/share/cmake-2.6/Modules/ecos_clean.cmake
-#usr/local/share/cmake-2.6/Modules/kde3init_dummy.cpp.in
-#usr/local/share/cmake-2.6/Modules/kde3uic.cmake
-#usr/local/share/cmake-2.6/Modules/readme.txt
-#usr/local/share/cmake-2.6/Templates
-#usr/local/share/cmake-2.6/Templates/CMakeLists.txt
-#usr/local/share/cmake-2.6/Templates/CMakeVSMacros1.vsmacros
-#usr/local/share/cmake-2.6/Templates/CMakeVSMacros2.vsmacros
-#usr/local/share/cmake-2.6/Templates/CMakeVisualStudio6Configurations.cmake
-#usr/local/share/cmake-2.6/Templates/CPack.GenericDescription.txt
-#usr/local/share/cmake-2.6/Templates/CPack.GenericLicense.txt
-#usr/local/share/cmake-2.6/Templates/CPack.GenericWelcome.txt
-#usr/local/share/cmake-2.6/Templates/CPackConfig.cmake.in
-#usr/local/share/cmake-2.6/Templates/CTestScript.cmake.in
-#usr/local/share/cmake-2.6/Templates/DLLFooter.dsptemplate
-#usr/local/share/cmake-2.6/Templates/DLLHeader.dsptemplate
-#usr/local/share/cmake-2.6/Templates/EXEFooter.dsptemplate
-#usr/local/share/cmake-2.6/Templates/EXEHeader.dsptemplate
-#usr/local/share/cmake-2.6/Templates/EXEWinHeader.dsptemplate
-#usr/local/share/cmake-2.6/Templates/TestDriver.cxx.in
-#usr/local/share/cmake-2.6/Templates/UtilityFooter.dsptemplate
-#usr/local/share/cmake-2.6/Templates/UtilityHeader.dsptemplate
-#usr/local/share/cmake-2.6/Templates/cygwin-package.sh.in
-#usr/local/share/cmake-2.6/Templates/staticLibFooter.dsptemplate
-#usr/local/share/cmake-2.6/Templates/staticLibHeader.dsptemplate
-#usr/local/share/cmake-2.6/include
-#usr/local/share/cmake-2.6/include/cmCPluginAPI.h
+#usr/bin/ccmake
+#usr/bin/cmake
+#usr/bin/cpack
+#usr/bin/ctest
+#usr/doc/cmake-2.6
+#usr/doc/cmake-2.6/ccmake.docbook
+#usr/doc/cmake-2.6/ccmake.html
+#usr/doc/cmake-2.6/ccmake.txt
+#usr/doc/cmake-2.6/cmake-commands.html
+#usr/doc/cmake-2.6/cmake-commands.txt
+#usr/doc/cmake-2.6/cmake-compatcommands.html
+#usr/doc/cmake-2.6/cmake-compatcommands.txt
+#usr/doc/cmake-2.6/cmake-modules.html
+#usr/doc/cmake-2.6/cmake-modules.txt
+#usr/doc/cmake-2.6/cmake-policies.html
+#usr/doc/cmake-2.6/cmake-policies.txt
+#usr/doc/cmake-2.6/cmake-properties.html
+#usr/doc/cmake-2.6/cmake-properties.txt
+#usr/doc/cmake-2.6/cmake-variables.html
+#usr/doc/cmake-2.6/cmake-variables.txt
+#usr/doc/cmake-2.6/cmake.docbook
+#usr/doc/cmake-2.6/cmake.html
+#usr/doc/cmake-2.6/cmake.txt
+#usr/doc/cmake-2.6/cpack.docbook
+#usr/doc/cmake-2.6/cpack.html
+#usr/doc/cmake-2.6/cpack.txt
+#usr/doc/cmake-2.6/ctest.docbook
+#usr/doc/cmake-2.6/ctest.html
+#usr/doc/cmake-2.6/ctest.txt
+#usr/man/man1/ccmake.1
+#usr/man/man1/cmake.1
+#usr/man/man1/cmakecommands.1
+#usr/man/man1/cmakecompat.1
+#usr/man/man1/cmakemodules.1
+#usr/man/man1/cmakepolicies.1
+#usr/man/man1/cmakeprops.1
+#usr/man/man1/cmakevars.1
+#usr/man/man1/cpack.1
+#usr/man/man1/ctest.1
+#usr/share/cmake-2.6
+#usr/share/cmake-2.6/Modules
+#usr/share/cmake-2.6/Modules/AddFileDependencies.cmake
+#usr/share/cmake-2.6/Modules/BundleUtilities.cmake
+#usr/share/cmake-2.6/Modules/CMake.cmake
+#usr/share/cmake-2.6/Modules/CMakeASM-ATTInformation.cmake
+#usr/share/cmake-2.6/Modules/CMakeASMCompiler.cmake.in
+#usr/share/cmake-2.6/Modules/CMakeASMInformation.cmake
+#usr/share/cmake-2.6/Modules/CMakeASM_MASMInformation.cmake
+#usr/share/cmake-2.6/Modules/CMakeBackwardCompatibilityC.cmake
+#usr/share/cmake-2.6/Modules/CMakeBackwardCompatibilityCXX.cmake
+#usr/share/cmake-2.6/Modules/CMakeBorlandFindMake.cmake
+#usr/share/cmake-2.6/Modules/CMakeBuildSettings.cmake.in
+#usr/share/cmake-2.6/Modules/CMakeCCompiler.cmake.in
+#usr/share/cmake-2.6/Modules/CMakeCCompilerABI.c
+#usr/share/cmake-2.6/Modules/CMakeCCompilerId.c.in
+#usr/share/cmake-2.6/Modules/CMakeCInformation.cmake
+#usr/share/cmake-2.6/Modules/CMakeCXXCompiler.cmake.in
+#usr/share/cmake-2.6/Modules/CMakeCXXCompilerABI.cpp
+#usr/share/cmake-2.6/Modules/CMakeCXXCompilerId.cpp.in
+#usr/share/cmake-2.6/Modules/CMakeCXXInformation.cmake
+#usr/share/cmake-2.6/Modules/CMakeCommonLanguageInclude.cmake
+#usr/share/cmake-2.6/Modules/CMakeCompilerABI.h
+#usr/share/cmake-2.6/Modules/CMakeConfigurableFile.in
+#usr/share/cmake-2.6/Modules/CMakeDependentOption.cmake
+#usr/share/cmake-2.6/Modules/CMakeDetermineASM-ATTCompiler.cmake
+#usr/share/cmake-2.6/Modules/CMakeDetermineASMCompiler.cmake
+#usr/share/cmake-2.6/Modules/CMakeDetermineASM_MASMCompiler.cmake
+#usr/share/cmake-2.6/Modules/CMakeDetermineCCompiler.cmake
+#usr/share/cmake-2.6/Modules/CMakeDetermineCXXCompiler.cmake
+#usr/share/cmake-2.6/Modules/CMakeDetermineCompilerABI.cmake
+#usr/share/cmake-2.6/Modules/CMakeDetermineCompilerId.cmake
+#usr/share/cmake-2.6/Modules/CMakeDetermineFortranCompiler.cmake
+#usr/share/cmake-2.6/Modules/CMakeDetermineJavaCompiler.cmake
+#usr/share/cmake-2.6/Modules/CMakeDetermineRCCompiler.cmake
+#usr/share/cmake-2.6/Modules/CMakeDetermineSystem.cmake
+#usr/share/cmake-2.6/Modules/CMakeExportBuildSettings.cmake
+#usr/share/cmake-2.6/Modules/CMakeFindBinUtils.cmake
+#usr/share/cmake-2.6/Modules/CMakeFindFrameworks.cmake
+#usr/share/cmake-2.6/Modules/CMakeFindWMake.cmake
+#usr/share/cmake-2.6/Modules/CMakeFindXCode.cmake
+#usr/share/cmake-2.6/Modules/CMakeForceCompiler.cmake
+#usr/share/cmake-2.6/Modules/CMakeFortranCompiler.cmake.in
+#usr/share/cmake-2.6/Modules/CMakeFortranCompilerId.F90.in
+#usr/share/cmake-2.6/Modules/CMakeFortranInformation.cmake
+#usr/share/cmake-2.6/Modules/CMakeGenericSystem.cmake
+#usr/share/cmake-2.6/Modules/CMakeImportBuildSettings.cmake
+#usr/share/cmake-2.6/Modules/CMakeJavaCompiler.cmake.in
+#usr/share/cmake-2.6/Modules/CMakeJavaInformation.cmake
+#usr/share/cmake-2.6/Modules/CMakeMSYSFindMake.cmake
+#usr/share/cmake-2.6/Modules/CMakeMinGWFindMake.cmake
+#usr/share/cmake-2.6/Modules/CMakeNMakeFindMake.cmake
+#usr/share/cmake-2.6/Modules/CMakePlatformId.h.in
+#usr/share/cmake-2.6/Modules/CMakePrintSystemInformation.cmake
+#usr/share/cmake-2.6/Modules/CMakeRCCompiler.cmake.in
+#usr/share/cmake-2.6/Modules/CMakeRCInformation.cmake
+#usr/share/cmake-2.6/Modules/CMakeSystem.cmake.in
+#usr/share/cmake-2.6/Modules/CMakeSystemSpecificInformation.cmake
+#usr/share/cmake-2.6/Modules/CMakeTestASM-ATTCompiler.cmake
+#usr/share/cmake-2.6/Modules/CMakeTestASMCompiler.cmake
+#usr/share/cmake-2.6/Modules/CMakeTestASM_MASMCompiler.cmake
+#usr/share/cmake-2.6/Modules/CMakeTestCCompiler.cmake
+#usr/share/cmake-2.6/Modules/CMakeTestCXXCompiler.cmake
+#usr/share/cmake-2.6/Modules/CMakeTestForFreeVC.cxx
+#usr/share/cmake-2.6/Modules/CMakeTestFortranCompiler.cmake
+#usr/share/cmake-2.6/Modules/CMakeTestGNU.c
+#usr/share/cmake-2.6/Modules/CMakeTestJavaCompiler.cmake
+#usr/share/cmake-2.6/Modules/CMakeTestNMakeCLVersion.c
+#usr/share/cmake-2.6/Modules/CMakeTestRCCompiler.cmake
+#usr/share/cmake-2.6/Modules/CMakeUnixFindMake.cmake
+#usr/share/cmake-2.6/Modules/CMakeVS6BackwardCompatibility.cmake
+#usr/share/cmake-2.6/Modules/CMakeVS6FindMake.cmake
+#usr/share/cmake-2.6/Modules/CMakeVS71FindMake.cmake
+#usr/share/cmake-2.6/Modules/CMakeVS7BackwardCompatibility.cmake
+#usr/share/cmake-2.6/Modules/CMakeVS7FindMake.cmake
+#usr/share/cmake-2.6/Modules/CMakeVS8FindMake.cmake
+#usr/share/cmake-2.6/Modules/CMakeVS9FindMake.cmake
+#usr/share/cmake-2.6/Modules/CPack.DS_Store.in
+#usr/share/cmake-2.6/Modules/CPack.Description.plist.in
+#usr/share/cmake-2.6/Modules/CPack.Info.plist.in
+#usr/share/cmake-2.6/Modules/CPack.OSXScriptLauncher.in
+#usr/share/cmake-2.6/Modules/CPack.OSXScriptLauncher.rsrc.in
+#usr/share/cmake-2.6/Modules/CPack.OSXX11.Info.plist.in
+#usr/share/cmake-2.6/Modules/CPack.OSXX11.main.scpt.in
+#usr/share/cmake-2.6/Modules/CPack.RuntimeScript.in
+#usr/share/cmake-2.6/Modules/CPack.STGZ_Header.sh.in
+#usr/share/cmake-2.6/Modules/CPack.VolumeIcon.icns.in
+#usr/share/cmake-2.6/Modules/CPack.background.png.in
+#usr/share/cmake-2.6/Modules/CPack.cmake
+#usr/share/cmake-2.6/Modules/CPack.distribution.dist.in
+#usr/share/cmake-2.6/Modules/CPackDeb.cmake
+#usr/share/cmake-2.6/Modules/CPackRPM.cmake
+#usr/share/cmake-2.6/Modules/CPackZIP.cmake
+#usr/share/cmake-2.6/Modules/CTest.cmake
+#usr/share/cmake-2.6/Modules/CTestTargets.cmake
+#usr/share/cmake-2.6/Modules/CheckCCompilerFlag.cmake
+#usr/share/cmake-2.6/Modules/CheckCSourceCompiles.cmake
+#usr/share/cmake-2.6/Modules/CheckCSourceRuns.cmake
+#usr/share/cmake-2.6/Modules/CheckCXXCompilerFlag.cmake
+#usr/share/cmake-2.6/Modules/CheckCXXSourceCompiles.cmake
+#usr/share/cmake-2.6/Modules/CheckCXXSourceRuns.cmake
+#usr/share/cmake-2.6/Modules/CheckForPthreads.c
+#usr/share/cmake-2.6/Modules/CheckFortranFunctionExists.cmake
+#usr/share/cmake-2.6/Modules/CheckFunctionExists.c
+#usr/share/cmake-2.6/Modules/CheckFunctionExists.cmake
+#usr/share/cmake-2.6/Modules/CheckIncludeFile.c.in
+#usr/share/cmake-2.6/Modules/CheckIncludeFile.cmake
+#usr/share/cmake-2.6/Modules/CheckIncludeFile.cxx.in
+#usr/share/cmake-2.6/Modules/CheckIncludeFileCXX.cmake
+#usr/share/cmake-2.6/Modules/CheckIncludeFiles.cmake
+#usr/share/cmake-2.6/Modules/CheckLibraryExists.cmake
+#usr/share/cmake-2.6/Modules/CheckLibraryExists.lists.in
+#usr/share/cmake-2.6/Modules/CheckSizeOf.cmake
+#usr/share/cmake-2.6/Modules/CheckStructHasMember.cmake
+#usr/share/cmake-2.6/Modules/CheckSymbolExists.cmake
+#usr/share/cmake-2.6/Modules/CheckTypeSize.cmake
+#usr/share/cmake-2.6/Modules/CheckTypeSizeC.c.in
+#usr/share/cmake-2.6/Modules/CheckVariableExists.c
+#usr/share/cmake-2.6/Modules/CheckVariableExists.cmake
+#usr/share/cmake-2.6/Modules/Dart.cmake
+#usr/share/cmake-2.6/Modules/DartConfiguration.tcl.in
+#usr/share/cmake-2.6/Modules/Documentation.cmake
+#usr/share/cmake-2.6/Modules/DummyCXXFile.cxx
+#usr/share/cmake-2.6/Modules/FLTKCompatibility.cmake
+#usr/share/cmake-2.6/Modules/FeatureSummary.cmake
+#usr/share/cmake-2.6/Modules/FindASPELL.cmake
+#usr/share/cmake-2.6/Modules/FindAVIFile.cmake
+#usr/share/cmake-2.6/Modules/FindBLAS.cmake
+#usr/share/cmake-2.6/Modules/FindBZip2.cmake
+#usr/share/cmake-2.6/Modules/FindBoost.cmake
+#usr/share/cmake-2.6/Modules/FindCABLE.cmake
+#usr/share/cmake-2.6/Modules/FindCURL.cmake
+#usr/share/cmake-2.6/Modules/FindCVS.cmake
+#usr/share/cmake-2.6/Modules/FindCoin3D.cmake
+#usr/share/cmake-2.6/Modules/FindCups.cmake
+#usr/share/cmake-2.6/Modules/FindCurses.cmake
+#usr/share/cmake-2.6/Modules/FindCxxTest.cmake
+#usr/share/cmake-2.6/Modules/FindCygwin.cmake
+#usr/share/cmake-2.6/Modules/FindDCMTK.cmake
+#usr/share/cmake-2.6/Modules/FindDart.cmake
+#usr/share/cmake-2.6/Modules/FindDevIL.cmake
+#usr/share/cmake-2.6/Modules/FindDoxygen.cmake
+#usr/share/cmake-2.6/Modules/FindEXPAT.cmake
+#usr/share/cmake-2.6/Modules/FindFLTK.cmake
+#usr/share/cmake-2.6/Modules/FindFLTK2.cmake
+#usr/share/cmake-2.6/Modules/FindFreetype.cmake
+#usr/share/cmake-2.6/Modules/FindGCCXML.cmake
+#usr/share/cmake-2.6/Modules/FindGDAL.cmake
+#usr/share/cmake-2.6/Modules/FindGIF.cmake
+#usr/share/cmake-2.6/Modules/FindGLU.cmake
+#usr/share/cmake-2.6/Modules/FindGLUT.cmake
+#usr/share/cmake-2.6/Modules/FindGTK.cmake
+#usr/share/cmake-2.6/Modules/FindGettext.cmake
+#usr/share/cmake-2.6/Modules/FindGnuplot.cmake
+#usr/share/cmake-2.6/Modules/FindHSPELL.cmake
+#usr/share/cmake-2.6/Modules/FindHTMLHelp.cmake
+#usr/share/cmake-2.6/Modules/FindITK.cmake
+#usr/share/cmake-2.6/Modules/FindImageMagick.cmake
+#usr/share/cmake-2.6/Modules/FindJNI.cmake
+#usr/share/cmake-2.6/Modules/FindJPEG.cmake
+#usr/share/cmake-2.6/Modules/FindJasper.cmake
+#usr/share/cmake-2.6/Modules/FindJava.cmake
+#usr/share/cmake-2.6/Modules/FindKDE3.cmake
+#usr/share/cmake-2.6/Modules/FindKDE4.cmake
+#usr/share/cmake-2.6/Modules/FindLAPACK.cmake
+#usr/share/cmake-2.6/Modules/FindLATEX.cmake
+#usr/share/cmake-2.6/Modules/FindLibXml2.cmake
+#usr/share/cmake-2.6/Modules/FindLibXslt.cmake
+#usr/share/cmake-2.6/Modules/FindLua50.cmake
+#usr/share/cmake-2.6/Modules/FindLua51.cmake
+#usr/share/cmake-2.6/Modules/FindMFC.cmake
+#usr/share/cmake-2.6/Modules/FindMPEG.cmake
+#usr/share/cmake-2.6/Modules/FindMPEG2.cmake
+#usr/share/cmake-2.6/Modules/FindMPI.cmake
+#usr/share/cmake-2.6/Modules/FindMatlab.cmake
+#usr/share/cmake-2.6/Modules/FindMotif.cmake
+#usr/share/cmake-2.6/Modules/FindOpenAL.cmake
+#usr/share/cmake-2.6/Modules/FindOpenGL.cmake
+#usr/share/cmake-2.6/Modules/FindOpenMP.cmake
+#usr/share/cmake-2.6/Modules/FindOpenSSL.cmake
+#usr/share/cmake-2.6/Modules/FindOpenSceneGraph.cmake
+#usr/share/cmake-2.6/Modules/FindOpenThreads.cmake
+#usr/share/cmake-2.6/Modules/FindPHP4.cmake
+#usr/share/cmake-2.6/Modules/FindPNG.cmake
+#usr/share/cmake-2.6/Modules/FindPackageHandleStandardArgs.cmake
+#usr/share/cmake-2.6/Modules/FindPackageMessage.cmake
+#usr/share/cmake-2.6/Modules/FindPerl.cmake
+#usr/share/cmake-2.6/Modules/FindPerlLibs.cmake
+#usr/share/cmake-2.6/Modules/FindPhysFS.cmake
+#usr/share/cmake-2.6/Modules/FindPike.cmake
+#usr/share/cmake-2.6/Modules/FindPkgConfig.cmake
+#usr/share/cmake-2.6/Modules/FindProducer.cmake
+#usr/share/cmake-2.6/Modules/FindPythonInterp.cmake
+#usr/share/cmake-2.6/Modules/FindPythonLibs.cmake
+#usr/share/cmake-2.6/Modules/FindQt.cmake
+#usr/share/cmake-2.6/Modules/FindQt3.cmake
+#usr/share/cmake-2.6/Modules/FindQt4.cmake
+#usr/share/cmake-2.6/Modules/FindQuickTime.cmake
+#usr/share/cmake-2.6/Modules/FindRTI.cmake
+#usr/share/cmake-2.6/Modules/FindRuby.cmake
+#usr/share/cmake-2.6/Modules/FindSDL.cmake
+#usr/share/cmake-2.6/Modules/FindSDL_image.cmake
+#usr/share/cmake-2.6/Modules/FindSDL_mixer.cmake
+#usr/share/cmake-2.6/Modules/FindSDL_net.cmake
+#usr/share/cmake-2.6/Modules/FindSDL_sound.cmake
+#usr/share/cmake-2.6/Modules/FindSDL_ttf.cmake
+#usr/share/cmake-2.6/Modules/FindSWIG.cmake
+#usr/share/cmake-2.6/Modules/FindSelfPackers.cmake
+#usr/share/cmake-2.6/Modules/FindSquish.cmake
+#usr/share/cmake-2.6/Modules/FindSubversion.cmake
+#usr/share/cmake-2.6/Modules/FindTCL.cmake
+#usr/share/cmake-2.6/Modules/FindTIFF.cmake
+#usr/share/cmake-2.6/Modules/FindTclStub.cmake
+#usr/share/cmake-2.6/Modules/FindTclsh.cmake
+#usr/share/cmake-2.6/Modules/FindThreads.cmake
+#usr/share/cmake-2.6/Modules/FindUnixCommands.cmake
+#usr/share/cmake-2.6/Modules/FindVTK.cmake
+#usr/share/cmake-2.6/Modules/FindWget.cmake
+#usr/share/cmake-2.6/Modules/FindWish.cmake
+#usr/share/cmake-2.6/Modules/FindX11.cmake
+#usr/share/cmake-2.6/Modules/FindXMLRPC.cmake
+#usr/share/cmake-2.6/Modules/FindZLIB.cmake
+#usr/share/cmake-2.6/Modules/Findosg.cmake
+#usr/share/cmake-2.6/Modules/FindosgAnimation.cmake
+#usr/share/cmake-2.6/Modules/FindosgDB.cmake
+#usr/share/cmake-2.6/Modules/FindosgFX.cmake
+#usr/share/cmake-2.6/Modules/FindosgGA.cmake
+#usr/share/cmake-2.6/Modules/FindosgIntrospection.cmake
+#usr/share/cmake-2.6/Modules/FindosgManipulator.cmake
+#usr/share/cmake-2.6/Modules/FindosgParticle.cmake
+#usr/share/cmake-2.6/Modules/FindosgProducer.cmake
+#usr/share/cmake-2.6/Modules/FindosgShadow.cmake
+#usr/share/cmake-2.6/Modules/FindosgSim.cmake
+#usr/share/cmake-2.6/Modules/FindosgTerrain.cmake
+#usr/share/cmake-2.6/Modules/FindosgText.cmake
+#usr/share/cmake-2.6/Modules/FindosgUtil.cmake
+#usr/share/cmake-2.6/Modules/FindosgViewer.cmake
+#usr/share/cmake-2.6/Modules/FindosgVolume.cmake
+#usr/share/cmake-2.6/Modules/FindosgWidget.cmake
+#usr/share/cmake-2.6/Modules/Findosg_functions.cmake
+#usr/share/cmake-2.6/Modules/FindwxWidgets.cmake
+#usr/share/cmake-2.6/Modules/FindwxWindows.cmake
+#usr/share/cmake-2.6/Modules/FortranCInterface.cmake
+#usr/share/cmake-2.6/Modules/FortranCInterface.h.in
+#usr/share/cmake-2.6/Modules/GetPrerequisites.cmake
+#usr/share/cmake-2.6/Modules/ITKCompatibility.cmake
+#usr/share/cmake-2.6/Modules/InstallRequiredSystemLibraries.cmake
+#usr/share/cmake-2.6/Modules/KDE3Macros.cmake
+#usr/share/cmake-2.6/Modules/MacOSXBundleInfo.plist.in
+#usr/share/cmake-2.6/Modules/MacOSXFrameworkInfo.plist.in
+#usr/share/cmake-2.6/Modules/MacroAddFileDependencies.cmake
+#usr/share/cmake-2.6/Modules/NSIS.InstallOptions.ini.in
+#usr/share/cmake-2.6/Modules/NSIS.template.in
+#usr/share/cmake-2.6/Modules/Platform
+#usr/share/cmake-2.6/Modules/Platform/AIX-VisualAge-Fortran.cmake
+#usr/share/cmake-2.6/Modules/Platform/AIX.cmake
+#usr/share/cmake-2.6/Modules/Platform/BSDOS.cmake
+#usr/share/cmake-2.6/Modules/Platform/BeOS.cmake
+#usr/share/cmake-2.6/Modules/Platform/BlueGeneL.cmake
+#usr/share/cmake-2.6/Modules/Platform/CYGWIN-g77.cmake
+#usr/share/cmake-2.6/Modules/Platform/CYGWIN.cmake
+#usr/share/cmake-2.6/Modules/Platform/Catamount.cmake
+#usr/share/cmake-2.6/Modules/Platform/Darwin-icc.cmake
+#usr/share/cmake-2.6/Modules/Platform/Darwin-icpc.cmake
+#usr/share/cmake-2.6/Modules/Platform/Darwin-xlc.cmake
+#usr/share/cmake-2.6/Modules/Platform/Darwin.cmake
+#usr/share/cmake-2.6/Modules/Platform/DragonFly.cmake
+#usr/share/cmake-2.6/Modules/Platform/FreeBSD.cmake
+#usr/share/cmake-2.6/Modules/Platform/GNU.cmake
+#usr/share/cmake-2.6/Modules/Platform/Generic-ADSP-ASM.cmake
+#usr/share/cmake-2.6/Modules/Platform/Generic-ADSP-C.cmake
+#usr/share/cmake-2.6/Modules/Platform/Generic-ADSP-CXX.cmake
+#usr/share/cmake-2.6/Modules/Platform/Generic-ADSP-Common.cmake
+#usr/share/cmake-2.6/Modules/Platform/Generic-SDCC-C.cmake
+#usr/share/cmake-2.6/Modules/Platform/Generic.cmake
+#usr/share/cmake-2.6/Modules/Platform/HP-UX.cmake
+#usr/share/cmake-2.6/Modules/Platform/Haiku.cmake
+#usr/share/cmake-2.6/Modules/Platform/IRIX.cmake
+#usr/share/cmake-2.6/Modules/Platform/IRIX64.cmake
+#usr/share/cmake-2.6/Modules/Platform/Linux-GNU-Fortran.cmake
+#usr/share/cmake-2.6/Modules/Platform/Linux-Intel-C.cmake
+#usr/share/cmake-2.6/Modules/Platform/Linux-Intel-CXX.cmake
+#usr/share/cmake-2.6/Modules/Platform/Linux-Intel-Fortran.cmake
+#usr/share/cmake-2.6/Modules/Platform/Linux-PGI-C.cmake
+#usr/share/cmake-2.6/Modules/Platform/Linux-PGI-CXX.cmake
+#usr/share/cmake-2.6/Modules/Platform/Linux-PGI-Fortran.cmake
+#usr/share/cmake-2.6/Modules/Platform/Linux-SunPro-C.cmake
+#usr/share/cmake-2.6/Modules/Platform/Linux-SunPro-CXX.cmake
+#usr/share/cmake-2.6/Modules/Platform/Linux-SunPro-Fortran.cmake
+#usr/share/cmake-2.6/Modules/Platform/Linux-VisualAge-C.cmake
+#usr/share/cmake-2.6/Modules/Platform/Linux-VisualAge-Fortran.cmake
+#usr/share/cmake-2.6/Modules/Platform/Linux-como.cmake
+#usr/share/cmake-2.6/Modules/Platform/Linux-icpc.cmake
+#usr/share/cmake-2.6/Modules/Platform/Linux-ifort.cmake
+#usr/share/cmake-2.6/Modules/Platform/Linux.cmake
+#usr/share/cmake-2.6/Modules/Platform/MP-RAS.cmake
+#usr/share/cmake-2.6/Modules/Platform/NetBSD.cmake
+#usr/share/cmake-2.6/Modules/Platform/OSF1.cmake
+#usr/share/cmake-2.6/Modules/Platform/OpenBSD.cmake
+#usr/share/cmake-2.6/Modules/Platform/QNX.cmake
+#usr/share/cmake-2.6/Modules/Platform/RISCos.cmake
+#usr/share/cmake-2.6/Modules/Platform/SCO_SV.cmake
+#usr/share/cmake-2.6/Modules/Platform/SINIX.cmake
+#usr/share/cmake-2.6/Modules/Platform/SunOS-SunPro-Fortran.cmake
+#usr/share/cmake-2.6/Modules/Platform/SunOS.cmake
+#usr/share/cmake-2.6/Modules/Platform/Tru64.cmake
+#usr/share/cmake-2.6/Modules/Platform/ULTRIX.cmake
+#usr/share/cmake-2.6/Modules/Platform/UNIX_SV.cmake
+#usr/share/cmake-2.6/Modules/Platform/UnixPaths.cmake
+#usr/share/cmake-2.6/Modules/Platform/UnixWare.cmake
+#usr/share/cmake-2.6/Modules/Platform/Windows-bcc32.cmake
+#usr/share/cmake-2.6/Modules/Platform/Windows-cl.cmake
+#usr/share/cmake-2.6/Modules/Platform/Windows-cl.cmake.in
+#usr/share/cmake-2.6/Modules/Platform/Windows-df.cmake
+#usr/share/cmake-2.6/Modules/Platform/Windows-g++.cmake
+#usr/share/cmake-2.6/Modules/Platform/Windows-g77.cmake
+#usr/share/cmake-2.6/Modules/Platform/Windows-gcc.cmake
+#usr/share/cmake-2.6/Modules/Platform/Windows-icl.cmake
+#usr/share/cmake-2.6/Modules/Platform/Windows-ifort.cmake
+#usr/share/cmake-2.6/Modules/Platform/Windows-wcl386.cmake
+#usr/share/cmake-2.6/Modules/Platform/Windows.cmake
+#usr/share/cmake-2.6/Modules/Platform/WindowsPaths.cmake
+#usr/share/cmake-2.6/Modules/Platform/Xenix.cmake
+#usr/share/cmake-2.6/Modules/Platform/cl.cmake
+#usr/share/cmake-2.6/Modules/Platform/eCos.cmake
+#usr/share/cmake-2.6/Modules/Platform/g77.cmake
+#usr/share/cmake-2.6/Modules/Platform/gas.cmake
+#usr/share/cmake-2.6/Modules/Platform/gcc.cmake
+#usr/share/cmake-2.6/Modules/Platform/kFreeBSD.cmake
+#usr/share/cmake-2.6/Modules/Platform/syllable.cmake
+#usr/share/cmake-2.6/Modules/Platform/xlf.cmake
+#usr/share/cmake-2.6/Modules/SquishTestScript.cmake
+#usr/share/cmake-2.6/Modules/SystemInformation.cmake
+#usr/share/cmake-2.6/Modules/SystemInformation.in
+#usr/share/cmake-2.6/Modules/TestBigEndian.cmake
+#usr/share/cmake-2.6/Modules/TestCXXAcceptsFlag.cmake
+#usr/share/cmake-2.6/Modules/TestEndianess.c.in
+#usr/share/cmake-2.6/Modules/TestForANSIForScope.cmake
+#usr/share/cmake-2.6/Modules/TestForANSIStreamHeaders.cmake
+#usr/share/cmake-2.6/Modules/TestForANSIStreamHeaders.cxx
+#usr/share/cmake-2.6/Modules/TestForAnsiForScope.cxx
+#usr/share/cmake-2.6/Modules/TestForSSTREAM.cmake
+#usr/share/cmake-2.6/Modules/TestForSSTREAM.cxx
+#usr/share/cmake-2.6/Modules/TestForSTDNamespace.cmake
+#usr/share/cmake-2.6/Modules/TestForSTDNamespace.cxx
+#usr/share/cmake-2.6/Modules/UseEcos.cmake
+#usr/share/cmake-2.6/Modules/UsePkgConfig.cmake
+#usr/share/cmake-2.6/Modules/UseQt4.cmake
+#usr/share/cmake-2.6/Modules/UseSWIG.cmake
+#usr/share/cmake-2.6/Modules/UseVTK40.cmake
+#usr/share/cmake-2.6/Modules/UseVTKBuildSettings40.cmake
+#usr/share/cmake-2.6/Modules/UseVTKConfig40.cmake
+#usr/share/cmake-2.6/Modules/Use_wxWindows.cmake
+#usr/share/cmake-2.6/Modules/UsewxWidgets.cmake
+#usr/share/cmake-2.6/Modules/VTKCompatibility.cmake
+#usr/share/cmake-2.6/Modules/ecos_clean.cmake
+#usr/share/cmake-2.6/Modules/kde3init_dummy.cpp.in
+#usr/share/cmake-2.6/Modules/kde3uic.cmake
+#usr/share/cmake-2.6/Modules/readme.txt
+#usr/share/cmake-2.6/Templates
+#usr/share/cmake-2.6/Templates/CMakeLists.txt
+#usr/share/cmake-2.6/Templates/CMakeVSMacros1.vsmacros
+#usr/share/cmake-2.6/Templates/CMakeVSMacros2.vsmacros
+#usr/share/cmake-2.6/Templates/CMakeVisualStudio6Configurations.cmake
+#usr/share/cmake-2.6/Templates/CPack.GenericDescription.txt
+#usr/share/cmake-2.6/Templates/CPack.GenericLicense.txt
+#usr/share/cmake-2.6/Templates/CPack.GenericWelcome.txt
+#usr/share/cmake-2.6/Templates/CPackConfig.cmake.in
+#usr/share/cmake-2.6/Templates/CTestScript.cmake.in
+#usr/share/cmake-2.6/Templates/DLLFooter.dsptemplate
+#usr/share/cmake-2.6/Templates/DLLHeader.dsptemplate
+#usr/share/cmake-2.6/Templates/EXEFooter.dsptemplate
+#usr/share/cmake-2.6/Templates/EXEHeader.dsptemplate
+#usr/share/cmake-2.6/Templates/EXEWinHeader.dsptemplate
+#usr/share/cmake-2.6/Templates/TestDriver.cxx.in
+#usr/share/cmake-2.6/Templates/UtilityFooter.dsptemplate
+#usr/share/cmake-2.6/Templates/UtilityHeader.dsptemplate
+#usr/share/cmake-2.6/Templates/cygwin-package.sh.in
+#usr/share/cmake-2.6/Templates/staticLibFooter.dsptemplate
+#usr/share/cmake-2.6/Templates/staticLibHeader.dsptemplate
+#usr/share/cmake-2.6/include
+#usr/share/cmake-2.6/include/cmCPluginAPI.h
index 2e4448bde4efcdd30682924a8dfa7d36f199b0db..2b9fa285c78b318d07441d2750ea2b1869edc122 100644 (file)
@@ -2,6 +2,7 @@ etc/collectd.conf
 etc/collectd.custom
 etc/collectd.precache
 etc/collectd.thermal
+etc/rc.d/init.d/collectd
 etc/rc.d/rc0.d/K50collectd
 etc/rc.d/rc3.d/S29collectd
 etc/rc.d/rc6.d/K50collectd
@@ -11,134 +12,202 @@ etc/rc.d/rc6.d/K50collectd
 #usr/include/collectd/client.h
 #usr/include/collectd/lcc_features.h
 #usr/lib/collectd
+#usr/lib/collectd/apache.a
 #usr/lib/collectd/apache.la
 usr/lib/collectd/apache.so
+#usr/lib/collectd/apcups.a
 #usr/lib/collectd/apcups.la
 usr/lib/collectd/apcups.so
+#usr/lib/collectd/ascent.a
 #usr/lib/collectd/ascent.la
 usr/lib/collectd/ascent.so
+#usr/lib/collectd/battery.a
 #usr/lib/collectd/battery.la
 usr/lib/collectd/battery.so
+#usr/lib/collectd/bind.a
 #usr/lib/collectd/bind.la
 usr/lib/collectd/bind.so
+#usr/lib/collectd/conntrack.a
 #usr/lib/collectd/conntrack.la
 usr/lib/collectd/conntrack.so
+#usr/lib/collectd/contextswitch.a
 #usr/lib/collectd/contextswitch.la
 usr/lib/collectd/contextswitch.so
+#usr/lib/collectd/cpu.a
 #usr/lib/collectd/cpu.la
 usr/lib/collectd/cpu.so
+#usr/lib/collectd/cpufreq.a
 #usr/lib/collectd/cpufreq.la
 usr/lib/collectd/cpufreq.so
+#usr/lib/collectd/curl.a
 #usr/lib/collectd/curl.la
 usr/lib/collectd/curl.so
+#usr/lib/collectd/curl_xml.a
 #usr/lib/collectd/curl_xml.la
 usr/lib/collectd/curl_xml.so
+#usr/lib/collectd/df.a
 #usr/lib/collectd/df.la
 usr/lib/collectd/df.so
+#usr/lib/collectd/disk.a
 #usr/lib/collectd/disk.la
 usr/lib/collectd/disk.so
+#usr/lib/collectd/dns.a
 #usr/lib/collectd/dns.la
 usr/lib/collectd/dns.so
+#usr/lib/collectd/email.a
 #usr/lib/collectd/email.la
 usr/lib/collectd/email.so
+#usr/lib/collectd/entropy.a
 #usr/lib/collectd/entropy.la
 usr/lib/collectd/entropy.so
+#usr/lib/collectd/exec.a
 #usr/lib/collectd/exec.la
 usr/lib/collectd/exec.so
+#usr/lib/collectd/filecount.a
 #usr/lib/collectd/filecount.la
 usr/lib/collectd/filecount.so
+#usr/lib/collectd/fscache.a
 #usr/lib/collectd/fscache.la
 usr/lib/collectd/fscache.so
+#usr/lib/collectd/hddtemp.a
 #usr/lib/collectd/hddtemp.la
 usr/lib/collectd/hddtemp.so
+#usr/lib/collectd/interface.a
 #usr/lib/collectd/interface.la
 usr/lib/collectd/interface.so
+#usr/lib/collectd/iptables.a
 #usr/lib/collectd/iptables.la
 usr/lib/collectd/iptables.so
+#usr/lib/collectd/irq.a
 #usr/lib/collectd/irq.la
 usr/lib/collectd/irq.so
+#usr/lib/collectd/load.a
 #usr/lib/collectd/load.la
 usr/lib/collectd/load.so
+#usr/lib/collectd/logfile.a
 #usr/lib/collectd/logfile.la
 usr/lib/collectd/logfile.so
+#usr/lib/collectd/madwifi.a
 #usr/lib/collectd/madwifi.la
 usr/lib/collectd/madwifi.so
+#usr/lib/collectd/match_empty_counter.a
 #usr/lib/collectd/match_empty_counter.la
 usr/lib/collectd/match_empty_counter.so
+#usr/lib/collectd/match_hashed.a
 #usr/lib/collectd/match_hashed.la
 usr/lib/collectd/match_hashed.so
+#usr/lib/collectd/match_regex.a
 #usr/lib/collectd/match_regex.la
 usr/lib/collectd/match_regex.so
+#usr/lib/collectd/match_timediff.a
 #usr/lib/collectd/match_timediff.la
 usr/lib/collectd/match_timediff.so
+#usr/lib/collectd/match_value.a
 #usr/lib/collectd/match_value.la
 usr/lib/collectd/match_value.so
+#usr/lib/collectd/memory.a
 #usr/lib/collectd/memory.la
 usr/lib/collectd/memory.so
+#usr/lib/collectd/multimeter.a
 #usr/lib/collectd/multimeter.la
 usr/lib/collectd/multimeter.so
+#usr/lib/collectd/network.a
 #usr/lib/collectd/network.la
 usr/lib/collectd/network.so
+#usr/lib/collectd/nfs.a
 #usr/lib/collectd/nfs.la
 usr/lib/collectd/nfs.so
+#usr/lib/collectd/ntpd.a
 #usr/lib/collectd/ntpd.la
 usr/lib/collectd/ntpd.so
+#usr/lib/collectd/olsrd.a
 #usr/lib/collectd/olsrd.la
 usr/lib/collectd/olsrd.so
+#usr/lib/collectd/openvpn.a
 #usr/lib/collectd/openvpn.la
 usr/lib/collectd/openvpn.so
+#usr/lib/collectd/ping.a
 #usr/lib/collectd/ping.la
 usr/lib/collectd/ping.so
+#usr/lib/collectd/powerdns.a
 #usr/lib/collectd/powerdns.la
 usr/lib/collectd/powerdns.so
+#usr/lib/collectd/processes.a
 #usr/lib/collectd/processes.la
 usr/lib/collectd/processes.so
+#usr/lib/collectd/protocols.a
 #usr/lib/collectd/protocols.la
 usr/lib/collectd/protocols.so
+#usr/lib/collectd/python.a
 #usr/lib/collectd/python.la
 usr/lib/collectd/python.so
+#usr/lib/collectd/rrdcached.a
+#usr/lib/collectd/rrdcached.la
+usr/lib/collectd/rrdcached.so
+#usr/lib/collectd/rrdtool.a
 #usr/lib/collectd/rrdtool.la
 usr/lib/collectd/rrdtool.so
+#usr/lib/collectd/sensors.a
 #usr/lib/collectd/sensors.la
 usr/lib/collectd/sensors.so
+#usr/lib/collectd/swap.a
 #usr/lib/collectd/swap.la
 usr/lib/collectd/swap.so
+#usr/lib/collectd/syslog.a
 #usr/lib/collectd/syslog.la
 usr/lib/collectd/syslog.so
+#usr/lib/collectd/table.a
 #usr/lib/collectd/table.la
 usr/lib/collectd/table.so
+#usr/lib/collectd/tail.a
 #usr/lib/collectd/tail.la
 usr/lib/collectd/tail.so
+#usr/lib/collectd/target_notification.a
 #usr/lib/collectd/target_notification.la
 usr/lib/collectd/target_notification.so
+#usr/lib/collectd/target_replace.a
 #usr/lib/collectd/target_replace.la
 usr/lib/collectd/target_replace.so
+#usr/lib/collectd/target_scale.a
 #usr/lib/collectd/target_scale.la
 usr/lib/collectd/target_scale.so
+#usr/lib/collectd/target_set.a
 #usr/lib/collectd/target_set.la
 usr/lib/collectd/target_set.so
+#usr/lib/collectd/tcpconns.a
 #usr/lib/collectd/tcpconns.la
 usr/lib/collectd/tcpconns.so
+#usr/lib/collectd/teamspeak2.a
 #usr/lib/collectd/teamspeak2.la
 usr/lib/collectd/teamspeak2.so
+#usr/lib/collectd/ted.a
 #usr/lib/collectd/ted.la
 usr/lib/collectd/ted.so
+#usr/lib/collectd/thermal.a
 #usr/lib/collectd/thermal.la
 usr/lib/collectd/thermal.so
+#usr/lib/collectd/unixsock.a
 #usr/lib/collectd/unixsock.la
 usr/lib/collectd/unixsock.so
+#usr/lib/collectd/uptime.a
 #usr/lib/collectd/uptime.la
 usr/lib/collectd/uptime.so
+#usr/lib/collectd/users.a
 #usr/lib/collectd/users.la
 usr/lib/collectd/users.so
+#usr/lib/collectd/uuid.a
 #usr/lib/collectd/uuid.la
 usr/lib/collectd/uuid.so
+#usr/lib/collectd/vmem.a
 #usr/lib/collectd/vmem.la
 usr/lib/collectd/vmem.so
+#usr/lib/collectd/wireless.a
 #usr/lib/collectd/wireless.la
 usr/lib/collectd/wireless.so
+#usr/lib/collectd/write_http.a
 #usr/lib/collectd/write_http.la
 usr/lib/collectd/write_http.so
+#usr/lib/libcollectdclient.a
 #usr/lib/libcollectdclient.la
 usr/lib/libcollectdclient.so
 usr/lib/libcollectdclient.so.0
@@ -171,4 +240,3 @@ usr/share/collectd/types.db
 #usr/share/man/man5/collectd.conf.5
 #usr/share/man/man5/types.db.5
 #var/lib/collectd
-etc/rc.d/init.d/collectd
index 80018c84d1a323a95040a7d3a4684fc9447a36fd..5a562d282527dd9d19892920ce4e61805efa0de4 100644 (file)
@@ -1,2 +1,2 @@
-etc/udev/rules.d/50-compat_firmware.rules
+lib/udev/rules.d/50-compat_firmware.rules
 lib/udev/compat_firmware.sh
index 3901b697eb5d90ca81ea04cb3155be89c997bb7b..c08e228a94d388a0b0df6bbe1ac691cff117e723 100644 (file)
@@ -6,7 +6,6 @@ bin/cp
 bin/date
 bin/dd
 bin/df
-bin/echo
 bin/false
 bin/head
 bin/ln
@@ -21,7 +20,7 @@ bin/sleep
 bin/sync
 bin/true
 bin/uname
-etc/dircolors
+etc/DIR_COLORS
 usr/bin/[
 usr/bin/basename
 #usr/bin/cksum
@@ -59,7 +58,7 @@ usr/bin/printf
 #usr/bin/ptx
 usr/bin/readlink
 usr/bin/seq
-#usr/bin/sha1sum
+usr/bin/sha1sum
 usr/bin/shred
 usr/bin/sort
 usr/bin/split
@@ -84,7 +83,6 @@ usr/bin/whoami
 usr/bin/yes
 usr/sbin/chroot
 #usr/share/info/coreutils.info
-#usr/share/info/dir
 #usr/share/man/man1/basename.1
 #usr/share/man/man1/cat.1
 #usr/share/man/man1/chroot.1
index 1e962e01803b5030d330b88a1baf3faa8a314b3b..2a9e16b1c69abb8ce0a3399a0a59eac05174785d 100644 (file)
@@ -16,7 +16,7 @@ usr/bin/curl
 usr/lib/libcurl.so
 usr/lib/libcurl.so.3
 usr/lib/libcurl.so.4
-usr/lib/libcurl.so.4.1.1
+usr/lib/libcurl.so.4.2.0
 #usr/lib/pkgconfig/libcurl.pc
 #usr/share/man/man1/curl-config.1
 #usr/share/man/man1/curl.1
diff --git a/config/rootfiles/common/dejavu-fonts-ttf b/config/rootfiles/common/dejavu-fonts-ttf
new file mode 100644 (file)
index 0000000..bfdfed8
--- /dev/null
@@ -0,0 +1,22 @@
+#usr/share/fonts
+usr/share/fonts/DejaVuSans-Bold.ttf
+usr/share/fonts/DejaVuSans-BoldOblique.ttf
+usr/share/fonts/DejaVuSans-ExtraLight.ttf
+usr/share/fonts/DejaVuSans-Oblique.ttf
+usr/share/fonts/DejaVuSans.ttf
+#usr/share/fonts/DejaVuSansCondensed-Bold.ttf
+#usr/share/fonts/DejaVuSansCondensed-BoldOblique.ttf
+#usr/share/fonts/DejaVuSansCondensed-Oblique.ttf
+#usr/share/fonts/DejaVuSansCondensed.ttf
+#usr/share/fonts/DejaVuSansMono-Bold.ttf
+#usr/share/fonts/DejaVuSansMono-BoldOblique.ttf
+#usr/share/fonts/DejaVuSansMono-Oblique.ttf
+#usr/share/fonts/DejaVuSansMono.ttf
+#usr/share/fonts/DejaVuSerif-Bold.ttf
+#usr/share/fonts/DejaVuSerif-BoldItalic.ttf
+#usr/share/fonts/DejaVuSerif-Italic.ttf
+#usr/share/fonts/DejaVuSerif.ttf
+#usr/share/fonts/DejaVuSerifCondensed-Bold.ttf
+#usr/share/fonts/DejaVuSerifCondensed-BoldItalic.ttf
+#usr/share/fonts/DejaVuSerifCondensed-Italic.ttf
+#usr/share/fonts/DejaVuSerifCondensed.ttf
diff --git a/config/rootfiles/common/dvb-firmwares b/config/rootfiles/common/dvb-firmwares
new file mode 100644 (file)
index 0000000..3a521b1
--- /dev/null
@@ -0,0 +1,23 @@
+lib/firmware/dvb-fe-bcm3510-01.fw
+lib/firmware/dvb-fe-or51132-qam.fw
+lib/firmware/dvb-fe-or51132-vsb.fw
+lib/firmware/dvb-fe-or51211.fw
+lib/firmware/dvb-ttpci-01.fw
+#lib/firmware/dvb-ttpci-01.fw-261a
+#lib/firmware/dvb-ttpci-01.fw-261b
+#lib/firmware/dvb-ttpci-01.fw-261c
+#lib/firmware/dvb-ttpci-01.fw-261d
+#lib/firmware/dvb-ttpci-01.fw-261f
+#lib/firmware/dvb-ttpci-01.fw-2622
+lib/firmware/dvb-usb-avertv-a800-02.fw
+lib/firmware/dvb-usb-bluebird-01.fw
+lib/firmware/dvb-usb-dibusb-5.0.0.11.fw
+lib/firmware/dvb-usb-dibusb-6.0.0.8.fw
+lib/firmware/dvb-usb-dtt200u-01.fw
+lib/firmware/dvb-usb-terratec-h7-az6007.fw
+lib/firmware/dvb-usb-terratec-h7-drxk.fw
+lib/firmware/dvb-usb-umt-010-02.fw
+lib/firmware/dvb-usb-vp702x-01.fw
+lib/firmware/dvb-usb-vp7045-01.fw
+lib/firmware/dvb-usb-wt220u-01.fw
+lib/firmware/dvb-usb-wt220u-02.fw
index a2932906d5b8e93a5fba4dffc9f62ffe8382f01b..9622e6cbc308431d22a4d6e4cddae42202589642 100644 (file)
@@ -41,6 +41,7 @@ usr/bin/uuidgen
 #usr/include/blkid
 #usr/include/blkid/blkid.h
 #usr/include/blkid/blkid_types.h
+#usr/include/com_err.h
 #usr/include/e2p
 #usr/include/e2p/e2p.h
 #usr/include/et
@@ -54,7 +55,10 @@ usr/bin/uuidgen
 #usr/include/ext2fs/ext2_types.h
 #usr/include/ext2fs/ext2fs.h
 #usr/include/ext2fs/ext3_extents.h
+#usr/include/ext2fs/qcow2.h
 #usr/include/ext2fs/tdb.h
+#usr/include/quota
+#usr/include/quota/mkquota.h
 #usr/include/ss
 #usr/include/ss/ss.h
 #usr/include/ss/ss_err.h
@@ -69,18 +73,20 @@ usr/lib/libcom_err.so
 usr/lib/libe2p.so
 #usr/lib/libext2fs.a
 usr/lib/libext2fs.so
+#usr/lib/libquota.a
 #usr/lib/libss.a
 usr/lib/libss.so
 #usr/lib/libuuid.a
 usr/lib/libuuid.so
-#usr/lib/pkgconfig
 #usr/lib/pkgconfig/blkid.pc
 #usr/lib/pkgconfig/com_err.pc
 #usr/lib/pkgconfig/e2p.pc
 #usr/lib/pkgconfig/ext2fs.pc
+#usr/lib/pkgconfig/quota.pc
 #usr/lib/pkgconfig/ss.pc
 #usr/lib/pkgconfig/uuid.pc
 usr/sbin/e2freefrag
+usr/sbin/e4defrag
 usr/sbin/filefrag
 usr/sbin/mklost+found
 usr/sbin/uuidd
@@ -117,6 +123,7 @@ usr/sbin/uuidd
 #usr/share/man/man8/e2image.8
 #usr/share/man/man8/e2label.8
 #usr/share/man/man8/e2undo.8
+#usr/share/man/man8/e4defrag.8
 #usr/share/man/man8/filefrag.8
 #usr/share/man/man8/findfs.8
 #usr/share/man/man8/fsck.8
index 0fe0c6d7f6185887b423fa300ba7b0f83b178ae0..c48045abe1aab14365e2ad0d79f6c7f00a0dd497 100644 (file)
@@ -2,15 +2,10 @@ usr/bin/file
 #usr/include/magic.h
 #usr/lib/libmagic.a
 #usr/lib/libmagic.la
-usr/lib/libmagic.so
+#usr/lib/libmagic.so
 usr/lib/libmagic.so.1
 usr/lib/libmagic.so.1.0.0
-#usr/man/man1/file.1
-#usr/man/man3/libmagic.3
-#usr/man/man4
-#usr/man/man4/magic.4
-#usr/share/file
-usr/share/file/magic
-usr/share/file/magic.mgc
-usr/share/file/magic.mime
-usr/share/file/magic.mime.mgc
+#usr/share/man/man1/file.1
+#usr/share/man/man3/libmagic.3
+#usr/share/man/man4/magic.4
+usr/share/misc/magic.mgc
similarity index 99%
rename from config/rootfiles/packages/fontconfig
rename to config/rootfiles/common/fontconfig
index 6f3726fb4ba9169138fc4422bc09f6c371f0dc5e..ade611e11d65fdc1c6afdaf16d5207bff7c9246b 100644 (file)
@@ -1,7 +1,3 @@
-usr/bin/fc-cache
-usr/bin/fc-cat
-usr/bin/fc-list
-usr/bin/fc-match
 #etc/fonts
 #etc/fonts/conf.avail
 etc/fonts/conf.avail/10-autohint.conf
@@ -49,6 +45,10 @@ etc/fonts/conf.d/90-synthetic.conf
 #etc/fonts/conf.d/README
 etc/fonts/fonts.conf
 etc/fonts/fonts.dtd
+usr/bin/fc-cache
+usr/bin/fc-cat
+usr/bin/fc-list
+usr/bin/fc-match
 #usr/include/fontconfig
 #usr/include/fontconfig/fcfreetype.h
 #usr/include/fontconfig/fcprivate.h
@@ -59,7 +59,6 @@ usr/lib/libfontconfig.so
 usr/lib/libfontconfig.so.1
 usr/lib/libfontconfig.so.1.3.0
 usr/lib/pkgconfig/fontconfig.pc
-usr/var/cache/fontconfig
 #usr/share/doc/fontconfig
 #usr/share/doc/fontconfig/fontconfig-devel
 #usr/share/doc/fontconfig/fontconfig-devel.pdf
@@ -420,4 +419,6 @@ usr/var/cache/fontconfig
 #usr/share/man/man3/FcValuePrint.3
 #usr/share/man/man3/FcValueSave.3
 #usr/share/man/man5/fonts-conf.5
+#usr/var
 #usr/var/cache
+usr/var/cache/fontconfig
diff --git a/config/rootfiles/common/fw_ath9k_htc b/config/rootfiles/common/fw_ath9k_htc
deleted file mode 100644 (file)
index a841a11..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-lib/firmware/htc_7010.fw
-lib/firmware/htc_9271.fw
index 915985b5aef150b18902741c9d04efa95e328e38..e7404416f7bda4819a776195b32f7ac5d4a248c3 100644 (file)
@@ -1,28 +1,27 @@
-usr/bin/autopoint
-usr/bin/envsubst
-usr/bin/gettext
-usr/bin/gettext.sh
-usr/bin/gettextize
-usr/bin/msgattrib
-usr/bin/msgcat
-usr/bin/msgcmp
-usr/bin/msgcomm
-usr/bin/msgconv
-usr/bin/msgen
-usr/bin/msgexec
-usr/bin/msgfilter
-usr/bin/msgfmt
-usr/bin/msggrep
-usr/bin/msginit
-usr/bin/msgmerge
-usr/bin/msgunfmt
-usr/bin/msguniq
-usr/bin/ngettext
-usr/bin/xgettext
+#usr/bin/autopoint
+#usr/bin/envsubst
+#usr/bin/gettext
+#usr/bin/gettext.sh
+#usr/bin/gettextize
+#usr/bin/msgattrib
+#usr/bin/msgcat
+#usr/bin/msgcmp
+#usr/bin/msgcomm
+#usr/bin/msgconv
+#usr/bin/msgen
+#usr/bin/msgexec
+#usr/bin/msgfilter
+#usr/bin/msgfmt
+#usr/bin/msggrep
+#usr/bin/msginit
+#usr/bin/msgmerge
+#usr/bin/msgunfmt
+#usr/bin/msguniq
+#usr/bin/ngettext
+#usr/bin/recode-sr-latin
+#usr/bin/xgettext
 #usr/include/autosprintf.h
 #usr/include/gettext-po.h
-#usr/info/autosprintf.info
-#usr/info/gettext.info
 #usr/lib/gettext
 #usr/lib/gettext/hostname
 #usr/lib/gettext/project-id
@@ -30,47 +29,49 @@ usr/bin/xgettext
 #usr/lib/gettext/user-email
 #usr/lib/libasprintf.a
 #usr/lib/libasprintf.la
-usr/lib/libasprintf.so
+#usr/lib/libasprintf.so
 usr/lib/libasprintf.so.0
 usr/lib/libasprintf.so.0.0.0
-usr/lib/libgettextlib-0.14.5.so
+usr/lib/libgettextlib-0.18.1.so
 #usr/lib/libgettextlib.la
-usr/lib/libgettextlib.so
+#usr/lib/libgettextlib.so
 #usr/lib/libgettextpo.a
 #usr/lib/libgettextpo.la
-usr/lib/libgettextpo.so
+#usr/lib/libgettextpo.so
 usr/lib/libgettextpo.so.0
-usr/lib/libgettextpo.so.0.1.0
-usr/lib/libgettextsrc-0.14.5.so
+usr/lib/libgettextpo.so.0.5.1
+usr/lib/libgettextsrc-0.18.1.so
 #usr/lib/libgettextsrc.la
 usr/lib/libgettextsrc.so
 usr/lib/preloadable_libintl.so
 #usr/share/aclocal/codeset.m4
+#usr/share/aclocal/fcntl-o.m4
 #usr/share/aclocal/gettext.m4
 #usr/share/aclocal/glibc2.m4
 #usr/share/aclocal/glibc21.m4
 #usr/share/aclocal/iconv.m4
 #usr/share/aclocal/intdiv0.m4
+#usr/share/aclocal/intl.m4
+#usr/share/aclocal/intldir.m4
+#usr/share/aclocal/intlmacosx.m4
 #usr/share/aclocal/intmax.m4
 #usr/share/aclocal/inttypes-pri.m4
-#usr/share/aclocal/inttypes.m4
 #usr/share/aclocal/inttypes_h.m4
-#usr/share/aclocal/isc-posix.m4
 #usr/share/aclocal/lcmessage.m4
 #usr/share/aclocal/lib-ld.m4
 #usr/share/aclocal/lib-link.m4
 #usr/share/aclocal/lib-prefix.m4
-#usr/share/aclocal/longdouble.m4
+#usr/share/aclocal/lock.m4
 #usr/share/aclocal/longlong.m4
 #usr/share/aclocal/nls.m4
 #usr/share/aclocal/po.m4
 #usr/share/aclocal/printf-posix.m4
 #usr/share/aclocal/progtest.m4
-#usr/share/aclocal/signed.m4
 #usr/share/aclocal/size_max.m4
 #usr/share/aclocal/stdint_h.m4
+#usr/share/aclocal/threadlib.m4
 #usr/share/aclocal/uintmax_t.m4
-#usr/share/aclocal/ulonglong.m4
+#usr/share/aclocal/visibility.m4
 #usr/share/aclocal/wchar_t.m4
 #usr/share/aclocal/wint_t.m4
 #usr/share/aclocal/xsize.m4
@@ -92,6 +93,7 @@ usr/lib/preloadable_libintl.so
 #usr/share/doc/gettext/examples/build-aux
 #usr/share/doc/gettext/examples/build-aux/csharpcomp.m4
 #usr/share/doc/gettext/examples/build-aux/csharpcomp.sh.in
+#usr/share/doc/gettext/examples/build-aux/csharpexec-test.exe
 #usr/share/doc/gettext/examples/build-aux/csharpexec.m4
 #usr/share/doc/gettext/examples/build-aux/csharpexec.sh.in
 #usr/share/doc/gettext/examples/build-aux/gcj.m4
@@ -120,25 +122,38 @@ usr/lib/preloadable_libintl.so
 #usr/share/doc/gettext/examples/hello-c++-gnome/po/Makevars
 #usr/share/doc/gettext/examples/hello-c++-gnome/po/POTFILES.in
 #usr/share/doc/gettext/examples/hello-c++-gnome/po/af.po
+#usr/share/doc/gettext/examples/hello-c++-gnome/po/ast.po
+#usr/share/doc/gettext/examples/hello-c++-gnome/po/bg.po
 #usr/share/doc/gettext/examples/hello-c++-gnome/po/ca.po
 #usr/share/doc/gettext/examples/hello-c++-gnome/po/de.po
 #usr/share/doc/gettext/examples/hello-c++-gnome/po/el.po
+#usr/share/doc/gettext/examples/hello-c++-gnome/po/eo.po
 #usr/share/doc/gettext/examples/hello-c++-gnome/po/es.po
+#usr/share/doc/gettext/examples/hello-c++-gnome/po/fi.po
 #usr/share/doc/gettext/examples/hello-c++-gnome/po/fr.po
 #usr/share/doc/gettext/examples/hello-c++-gnome/po/ga.po
+#usr/share/doc/gettext/examples/hello-c++-gnome/po/hu.po
+#usr/share/doc/gettext/examples/hello-c++-gnome/po/id.po
 #usr/share/doc/gettext/examples/hello-c++-gnome/po/it.po
 #usr/share/doc/gettext/examples/hello-c++-gnome/po/ja.po
+#usr/share/doc/gettext/examples/hello-c++-gnome/po/ky.po
+#usr/share/doc/gettext/examples/hello-c++-gnome/po/lv.po
+#usr/share/doc/gettext/examples/hello-c++-gnome/po/ms.po
+#usr/share/doc/gettext/examples/hello-c++-gnome/po/mt.po
 #usr/share/doc/gettext/examples/hello-c++-gnome/po/nl.po
 #usr/share/doc/gettext/examples/hello-c++-gnome/po/pl.po
+#usr/share/doc/gettext/examples/hello-c++-gnome/po/pt.po
 #usr/share/doc/gettext/examples/hello-c++-gnome/po/ro.po
 #usr/share/doc/gettext/examples/hello-c++-gnome/po/ru.po
 #usr/share/doc/gettext/examples/hello-c++-gnome/po/sk.po
+#usr/share/doc/gettext/examples/hello-c++-gnome/po/sl.po
 #usr/share/doc/gettext/examples/hello-c++-gnome/po/sr.po
 #usr/share/doc/gettext/examples/hello-c++-gnome/po/sv.po
 #usr/share/doc/gettext/examples/hello-c++-gnome/po/tr.po
 #usr/share/doc/gettext/examples/hello-c++-gnome/po/uk.po
 #usr/share/doc/gettext/examples/hello-c++-gnome/po/vi.po
 #usr/share/doc/gettext/examples/hello-c++-gnome/po/zh_CN.po
+#usr/share/doc/gettext/examples/hello-c++-gnome/po/zh_HK.po
 #usr/share/doc/gettext/examples/hello-c++-gnome/po/zh_TW.po
 #usr/share/doc/gettext/examples/hello-c++-kde
 #usr/share/doc/gettext/examples/hello-c++-kde/BUGS
@@ -182,25 +197,38 @@ usr/lib/preloadable_libintl.so
 #usr/share/doc/gettext/examples/hello-c++-kde/po/Makevars
 #usr/share/doc/gettext/examples/hello-c++-kde/po/POTFILES.in
 #usr/share/doc/gettext/examples/hello-c++-kde/po/af.po
+#usr/share/doc/gettext/examples/hello-c++-kde/po/ast.po
+#usr/share/doc/gettext/examples/hello-c++-kde/po/bg.po
 #usr/share/doc/gettext/examples/hello-c++-kde/po/ca.po
 #usr/share/doc/gettext/examples/hello-c++-kde/po/de.po
 #usr/share/doc/gettext/examples/hello-c++-kde/po/el.po
+#usr/share/doc/gettext/examples/hello-c++-kde/po/eo.po
 #usr/share/doc/gettext/examples/hello-c++-kde/po/es.po
+#usr/share/doc/gettext/examples/hello-c++-kde/po/fi.po
 #usr/share/doc/gettext/examples/hello-c++-kde/po/fr.po
 #usr/share/doc/gettext/examples/hello-c++-kde/po/ga.po
+#usr/share/doc/gettext/examples/hello-c++-kde/po/hu.po
+#usr/share/doc/gettext/examples/hello-c++-kde/po/id.po
 #usr/share/doc/gettext/examples/hello-c++-kde/po/it.po
 #usr/share/doc/gettext/examples/hello-c++-kde/po/ja.po
+#usr/share/doc/gettext/examples/hello-c++-kde/po/ky.po
+#usr/share/doc/gettext/examples/hello-c++-kde/po/lv.po
+#usr/share/doc/gettext/examples/hello-c++-kde/po/ms.po
+#usr/share/doc/gettext/examples/hello-c++-kde/po/mt.po
 #usr/share/doc/gettext/examples/hello-c++-kde/po/nl.po
 #usr/share/doc/gettext/examples/hello-c++-kde/po/pl.po
+#usr/share/doc/gettext/examples/hello-c++-kde/po/pt.po
 #usr/share/doc/gettext/examples/hello-c++-kde/po/ro.po
 #usr/share/doc/gettext/examples/hello-c++-kde/po/ru.po
 #usr/share/doc/gettext/examples/hello-c++-kde/po/sk.po
+#usr/share/doc/gettext/examples/hello-c++-kde/po/sl.po
 #usr/share/doc/gettext/examples/hello-c++-kde/po/sr.po
 #usr/share/doc/gettext/examples/hello-c++-kde/po/sv.po
 #usr/share/doc/gettext/examples/hello-c++-kde/po/tr.po
 #usr/share/doc/gettext/examples/hello-c++-kde/po/uk.po
 #usr/share/doc/gettext/examples/hello-c++-kde/po/vi.po
 #usr/share/doc/gettext/examples/hello-c++-kde/po/zh_CN.po
+#usr/share/doc/gettext/examples/hello-c++-kde/po/zh_HK.po
 #usr/share/doc/gettext/examples/hello-c++-kde/po/zh_TW.po
 #usr/share/doc/gettext/examples/hello-c++-qt
 #usr/share/doc/gettext/examples/hello-c++-qt/BUGS
@@ -217,26 +245,86 @@ usr/lib/preloadable_libintl.so
 #usr/share/doc/gettext/examples/hello-c++-qt/po/LINGUAS
 #usr/share/doc/gettext/examples/hello-c++-qt/po/Makefile.am
 #usr/share/doc/gettext/examples/hello-c++-qt/po/af.po
+#usr/share/doc/gettext/examples/hello-c++-qt/po/ast.po
+#usr/share/doc/gettext/examples/hello-c++-qt/po/bg.po
 #usr/share/doc/gettext/examples/hello-c++-qt/po/ca.po
 #usr/share/doc/gettext/examples/hello-c++-qt/po/de.po
 #usr/share/doc/gettext/examples/hello-c++-qt/po/el.po
+#usr/share/doc/gettext/examples/hello-c++-qt/po/eo.po
 #usr/share/doc/gettext/examples/hello-c++-qt/po/es.po
+#usr/share/doc/gettext/examples/hello-c++-qt/po/fi.po
 #usr/share/doc/gettext/examples/hello-c++-qt/po/fr.po
 #usr/share/doc/gettext/examples/hello-c++-qt/po/ga.po
+#usr/share/doc/gettext/examples/hello-c++-qt/po/hu.po
+#usr/share/doc/gettext/examples/hello-c++-qt/po/id.po
 #usr/share/doc/gettext/examples/hello-c++-qt/po/it.po
 #usr/share/doc/gettext/examples/hello-c++-qt/po/ja.po
+#usr/share/doc/gettext/examples/hello-c++-qt/po/ky.po
+#usr/share/doc/gettext/examples/hello-c++-qt/po/lv.po
+#usr/share/doc/gettext/examples/hello-c++-qt/po/ms.po
+#usr/share/doc/gettext/examples/hello-c++-qt/po/mt.po
 #usr/share/doc/gettext/examples/hello-c++-qt/po/nl.po
 #usr/share/doc/gettext/examples/hello-c++-qt/po/pl.po
+#usr/share/doc/gettext/examples/hello-c++-qt/po/pt.po
 #usr/share/doc/gettext/examples/hello-c++-qt/po/ro.po
 #usr/share/doc/gettext/examples/hello-c++-qt/po/ru.po
 #usr/share/doc/gettext/examples/hello-c++-qt/po/sk.po
+#usr/share/doc/gettext/examples/hello-c++-qt/po/sl.po
 #usr/share/doc/gettext/examples/hello-c++-qt/po/sr.po
 #usr/share/doc/gettext/examples/hello-c++-qt/po/sv.po
 #usr/share/doc/gettext/examples/hello-c++-qt/po/tr.po
 #usr/share/doc/gettext/examples/hello-c++-qt/po/uk.po
 #usr/share/doc/gettext/examples/hello-c++-qt/po/vi.po
 #usr/share/doc/gettext/examples/hello-c++-qt/po/zh_CN.po
+#usr/share/doc/gettext/examples/hello-c++-qt/po/zh_HK.po
 #usr/share/doc/gettext/examples/hello-c++-qt/po/zh_TW.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/INSTALL
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/Makefile.am
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/autoclean.sh
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/autogen.sh
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/configure.ac
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/hello.cc
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/m4
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/m4/Makefile.am
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/m4/wxwidgets.m4
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/LINGUAS
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/Makefile.am
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/af.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/ast.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/bg.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/ca.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/de.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/el.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/eo.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/es.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/fi.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/fr.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/ga.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/hu.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/id.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/it.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/ja.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/ky.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/lv.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/ms.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/mt.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/nl.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/pl.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/pt.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/ro.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/ru.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/sk.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/sl.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/sr.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/sv.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/tr.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/uk.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/vi.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/zh_CN.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/zh_HK.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/zh_TW.po
 #usr/share/doc/gettext/examples/hello-c++/INSTALL
 #usr/share/doc/gettext/examples/hello-c++/Makefile.am
 #usr/share/doc/gettext/examples/hello-c++/autoclean.sh
@@ -250,25 +338,38 @@ usr/lib/preloadable_libintl.so
 #usr/share/doc/gettext/examples/hello-c++/po/Makevars
 #usr/share/doc/gettext/examples/hello-c++/po/POTFILES.in
 #usr/share/doc/gettext/examples/hello-c++/po/af.po
+#usr/share/doc/gettext/examples/hello-c++/po/ast.po
+#usr/share/doc/gettext/examples/hello-c++/po/bg.po
 #usr/share/doc/gettext/examples/hello-c++/po/ca.po
 #usr/share/doc/gettext/examples/hello-c++/po/de.po
 #usr/share/doc/gettext/examples/hello-c++/po/el.po
+#usr/share/doc/gettext/examples/hello-c++/po/eo.po
 #usr/share/doc/gettext/examples/hello-c++/po/es.po
+#usr/share/doc/gettext/examples/hello-c++/po/fi.po
 #usr/share/doc/gettext/examples/hello-c++/po/fr.po
 #usr/share/doc/gettext/examples/hello-c++/po/ga.po
+#usr/share/doc/gettext/examples/hello-c++/po/hu.po
+#usr/share/doc/gettext/examples/hello-c++/po/id.po
 #usr/share/doc/gettext/examples/hello-c++/po/it.po
 #usr/share/doc/gettext/examples/hello-c++/po/ja.po
+#usr/share/doc/gettext/examples/hello-c++/po/ky.po
+#usr/share/doc/gettext/examples/hello-c++/po/lv.po
+#usr/share/doc/gettext/examples/hello-c++/po/ms.po
+#usr/share/doc/gettext/examples/hello-c++/po/mt.po
 #usr/share/doc/gettext/examples/hello-c++/po/nl.po
 #usr/share/doc/gettext/examples/hello-c++/po/pl.po
+#usr/share/doc/gettext/examples/hello-c++/po/pt.po
 #usr/share/doc/gettext/examples/hello-c++/po/ro.po
 #usr/share/doc/gettext/examples/hello-c++/po/ru.po
 #usr/share/doc/gettext/examples/hello-c++/po/sk.po
+#usr/share/doc/gettext/examples/hello-c++/po/sl.po
 #usr/share/doc/gettext/examples/hello-c++/po/sr.po
 #usr/share/doc/gettext/examples/hello-c++/po/sv.po
 #usr/share/doc/gettext/examples/hello-c++/po/tr.po
 #usr/share/doc/gettext/examples/hello-c++/po/uk.po
 #usr/share/doc/gettext/examples/hello-c++/po/vi.po
 #usr/share/doc/gettext/examples/hello-c++/po/zh_CN.po
+#usr/share/doc/gettext/examples/hello-c++/po/zh_HK.po
 #usr/share/doc/gettext/examples/hello-c++/po/zh_TW.po
 #usr/share/doc/gettext/examples/hello-c-gnome
 #usr/share/doc/gettext/examples/hello-c-gnome/INSTALL
@@ -287,25 +388,38 @@ usr/lib/preloadable_libintl.so
 #usr/share/doc/gettext/examples/hello-c-gnome/po/Makevars
 #usr/share/doc/gettext/examples/hello-c-gnome/po/POTFILES.in
 #usr/share/doc/gettext/examples/hello-c-gnome/po/af.po
+#usr/share/doc/gettext/examples/hello-c-gnome/po/ast.po
+#usr/share/doc/gettext/examples/hello-c-gnome/po/bg.po
 #usr/share/doc/gettext/examples/hello-c-gnome/po/ca.po
 #usr/share/doc/gettext/examples/hello-c-gnome/po/de.po
 #usr/share/doc/gettext/examples/hello-c-gnome/po/el.po
+#usr/share/doc/gettext/examples/hello-c-gnome/po/eo.po
 #usr/share/doc/gettext/examples/hello-c-gnome/po/es.po
+#usr/share/doc/gettext/examples/hello-c-gnome/po/fi.po
 #usr/share/doc/gettext/examples/hello-c-gnome/po/fr.po
 #usr/share/doc/gettext/examples/hello-c-gnome/po/ga.po
+#usr/share/doc/gettext/examples/hello-c-gnome/po/hu.po
+#usr/share/doc/gettext/examples/hello-c-gnome/po/id.po
 #usr/share/doc/gettext/examples/hello-c-gnome/po/it.po
 #usr/share/doc/gettext/examples/hello-c-gnome/po/ja.po
+#usr/share/doc/gettext/examples/hello-c-gnome/po/ky.po
+#usr/share/doc/gettext/examples/hello-c-gnome/po/lv.po
+#usr/share/doc/gettext/examples/hello-c-gnome/po/ms.po
+#usr/share/doc/gettext/examples/hello-c-gnome/po/mt.po
 #usr/share/doc/gettext/examples/hello-c-gnome/po/nl.po
 #usr/share/doc/gettext/examples/hello-c-gnome/po/pl.po
+#usr/share/doc/gettext/examples/hello-c-gnome/po/pt.po
 #usr/share/doc/gettext/examples/hello-c-gnome/po/ro.po
 #usr/share/doc/gettext/examples/hello-c-gnome/po/ru.po
 #usr/share/doc/gettext/examples/hello-c-gnome/po/sk.po
+#usr/share/doc/gettext/examples/hello-c-gnome/po/sl.po
 #usr/share/doc/gettext/examples/hello-c-gnome/po/sr.po
 #usr/share/doc/gettext/examples/hello-c-gnome/po/sv.po
 #usr/share/doc/gettext/examples/hello-c-gnome/po/tr.po
 #usr/share/doc/gettext/examples/hello-c-gnome/po/uk.po
 #usr/share/doc/gettext/examples/hello-c-gnome/po/vi.po
 #usr/share/doc/gettext/examples/hello-c-gnome/po/zh_CN.po
+#usr/share/doc/gettext/examples/hello-c-gnome/po/zh_HK.po
 #usr/share/doc/gettext/examples/hello-c-gnome/po/zh_TW.po
 #usr/share/doc/gettext/examples/hello-c/INSTALL
 #usr/share/doc/gettext/examples/hello-c/Makefile.am
@@ -320,25 +434,38 @@ usr/lib/preloadable_libintl.so
 #usr/share/doc/gettext/examples/hello-c/po/Makevars
 #usr/share/doc/gettext/examples/hello-c/po/POTFILES.in
 #usr/share/doc/gettext/examples/hello-c/po/af.po
+#usr/share/doc/gettext/examples/hello-c/po/ast.po
+#usr/share/doc/gettext/examples/hello-c/po/bg.po
 #usr/share/doc/gettext/examples/hello-c/po/ca.po
 #usr/share/doc/gettext/examples/hello-c/po/de.po
 #usr/share/doc/gettext/examples/hello-c/po/el.po
+#usr/share/doc/gettext/examples/hello-c/po/eo.po
 #usr/share/doc/gettext/examples/hello-c/po/es.po
+#usr/share/doc/gettext/examples/hello-c/po/fi.po
 #usr/share/doc/gettext/examples/hello-c/po/fr.po
 #usr/share/doc/gettext/examples/hello-c/po/ga.po
+#usr/share/doc/gettext/examples/hello-c/po/hu.po
+#usr/share/doc/gettext/examples/hello-c/po/id.po
 #usr/share/doc/gettext/examples/hello-c/po/it.po
 #usr/share/doc/gettext/examples/hello-c/po/ja.po
+#usr/share/doc/gettext/examples/hello-c/po/ky.po
+#usr/share/doc/gettext/examples/hello-c/po/lv.po
+#usr/share/doc/gettext/examples/hello-c/po/ms.po
+#usr/share/doc/gettext/examples/hello-c/po/mt.po
 #usr/share/doc/gettext/examples/hello-c/po/nl.po
 #usr/share/doc/gettext/examples/hello-c/po/pl.po
+#usr/share/doc/gettext/examples/hello-c/po/pt.po
 #usr/share/doc/gettext/examples/hello-c/po/ro.po
 #usr/share/doc/gettext/examples/hello-c/po/ru.po
 #usr/share/doc/gettext/examples/hello-c/po/sk.po
+#usr/share/doc/gettext/examples/hello-c/po/sl.po
 #usr/share/doc/gettext/examples/hello-c/po/sr.po
 #usr/share/doc/gettext/examples/hello-c/po/sv.po
 #usr/share/doc/gettext/examples/hello-c/po/tr.po
 #usr/share/doc/gettext/examples/hello-c/po/uk.po
 #usr/share/doc/gettext/examples/hello-c/po/vi.po
 #usr/share/doc/gettext/examples/hello-c/po/zh_CN.po
+#usr/share/doc/gettext/examples/hello-c/po/zh_HK.po
 #usr/share/doc/gettext/examples/hello-c/po/zh_TW.po
 #usr/share/doc/gettext/examples/hello-clisp
 #usr/share/doc/gettext/examples/hello-clisp/INSTALL
@@ -353,31 +480,45 @@ usr/lib/preloadable_libintl.so
 #usr/share/doc/gettext/examples/hello-clisp/po/LINGUAS
 #usr/share/doc/gettext/examples/hello-clisp/po/Makefile.am
 #usr/share/doc/gettext/examples/hello-clisp/po/af.po
+#usr/share/doc/gettext/examples/hello-clisp/po/ast.po
+#usr/share/doc/gettext/examples/hello-clisp/po/bg.po
 #usr/share/doc/gettext/examples/hello-clisp/po/ca.po
 #usr/share/doc/gettext/examples/hello-clisp/po/de.po
 #usr/share/doc/gettext/examples/hello-clisp/po/el.po
+#usr/share/doc/gettext/examples/hello-clisp/po/eo.po
 #usr/share/doc/gettext/examples/hello-clisp/po/es.po
+#usr/share/doc/gettext/examples/hello-clisp/po/fi.po
 #usr/share/doc/gettext/examples/hello-clisp/po/fr.po
 #usr/share/doc/gettext/examples/hello-clisp/po/ga.po
+#usr/share/doc/gettext/examples/hello-clisp/po/hu.po
+#usr/share/doc/gettext/examples/hello-clisp/po/id.po
 #usr/share/doc/gettext/examples/hello-clisp/po/it.po
 #usr/share/doc/gettext/examples/hello-clisp/po/ja.po
+#usr/share/doc/gettext/examples/hello-clisp/po/ky.po
+#usr/share/doc/gettext/examples/hello-clisp/po/lv.po
+#usr/share/doc/gettext/examples/hello-clisp/po/ms.po
+#usr/share/doc/gettext/examples/hello-clisp/po/mt.po
 #usr/share/doc/gettext/examples/hello-clisp/po/nl.po
 #usr/share/doc/gettext/examples/hello-clisp/po/pl.po
+#usr/share/doc/gettext/examples/hello-clisp/po/pt.po
 #usr/share/doc/gettext/examples/hello-clisp/po/ro.po
 #usr/share/doc/gettext/examples/hello-clisp/po/ru.po
 #usr/share/doc/gettext/examples/hello-clisp/po/sk.po
+#usr/share/doc/gettext/examples/hello-clisp/po/sl.po
 #usr/share/doc/gettext/examples/hello-clisp/po/sr.po
 #usr/share/doc/gettext/examples/hello-clisp/po/sv.po
 #usr/share/doc/gettext/examples/hello-clisp/po/tr.po
 #usr/share/doc/gettext/examples/hello-clisp/po/uk.po
 #usr/share/doc/gettext/examples/hello-clisp/po/vi.po
 #usr/share/doc/gettext/examples/hello-clisp/po/zh_CN.po
+#usr/share/doc/gettext/examples/hello-clisp/po/zh_HK.po
 #usr/share/doc/gettext/examples/hello-clisp/po/zh_TW.po
 #usr/share/doc/gettext/examples/hello-csharp
 #usr/share/doc/gettext/examples/hello-csharp-forms
 #usr/share/doc/gettext/examples/hello-csharp-forms/BUGS
 #usr/share/doc/gettext/examples/hello-csharp-forms/INSTALL
 #usr/share/doc/gettext/examples/hello-csharp-forms/Makefile.am
+#usr/share/doc/gettext/examples/hello-csharp-forms/README
 #usr/share/doc/gettext/examples/hello-csharp-forms/autoclean.sh
 #usr/share/doc/gettext/examples/hello-csharp-forms/autogen.sh
 #usr/share/doc/gettext/examples/hello-csharp-forms/configure.ac
@@ -388,25 +529,38 @@ usr/lib/preloadable_libintl.so
 #usr/share/doc/gettext/examples/hello-csharp-forms/po/LINGUAS
 #usr/share/doc/gettext/examples/hello-csharp-forms/po/Makefile.am
 #usr/share/doc/gettext/examples/hello-csharp-forms/po/af.po
+#usr/share/doc/gettext/examples/hello-csharp-forms/po/ast.po
+#usr/share/doc/gettext/examples/hello-csharp-forms/po/bg.po
 #usr/share/doc/gettext/examples/hello-csharp-forms/po/ca.po
 #usr/share/doc/gettext/examples/hello-csharp-forms/po/de.po
 #usr/share/doc/gettext/examples/hello-csharp-forms/po/el.po
+#usr/share/doc/gettext/examples/hello-csharp-forms/po/eo.po
 #usr/share/doc/gettext/examples/hello-csharp-forms/po/es.po
+#usr/share/doc/gettext/examples/hello-csharp-forms/po/fi.po
 #usr/share/doc/gettext/examples/hello-csharp-forms/po/fr.po
 #usr/share/doc/gettext/examples/hello-csharp-forms/po/ga.po
+#usr/share/doc/gettext/examples/hello-csharp-forms/po/hu.po
+#usr/share/doc/gettext/examples/hello-csharp-forms/po/id.po
 #usr/share/doc/gettext/examples/hello-csharp-forms/po/it.po
 #usr/share/doc/gettext/examples/hello-csharp-forms/po/ja.po
+#usr/share/doc/gettext/examples/hello-csharp-forms/po/ky.po
+#usr/share/doc/gettext/examples/hello-csharp-forms/po/lv.po
+#usr/share/doc/gettext/examples/hello-csharp-forms/po/ms.po
+#usr/share/doc/gettext/examples/hello-csharp-forms/po/mt.po
 #usr/share/doc/gettext/examples/hello-csharp-forms/po/nl.po
 #usr/share/doc/gettext/examples/hello-csharp-forms/po/pl.po
+#usr/share/doc/gettext/examples/hello-csharp-forms/po/pt.po
 #usr/share/doc/gettext/examples/hello-csharp-forms/po/ro.po
 #usr/share/doc/gettext/examples/hello-csharp-forms/po/ru.po
 #usr/share/doc/gettext/examples/hello-csharp-forms/po/sk.po
+#usr/share/doc/gettext/examples/hello-csharp-forms/po/sl.po
 #usr/share/doc/gettext/examples/hello-csharp-forms/po/sr.po
 #usr/share/doc/gettext/examples/hello-csharp-forms/po/sv.po
 #usr/share/doc/gettext/examples/hello-csharp-forms/po/tr.po
 #usr/share/doc/gettext/examples/hello-csharp-forms/po/uk.po
 #usr/share/doc/gettext/examples/hello-csharp-forms/po/vi.po
 #usr/share/doc/gettext/examples/hello-csharp-forms/po/zh_CN.po
+#usr/share/doc/gettext/examples/hello-csharp-forms/po/zh_HK.po
 #usr/share/doc/gettext/examples/hello-csharp-forms/po/zh_TW.po
 #usr/share/doc/gettext/examples/hello-csharp/INSTALL
 #usr/share/doc/gettext/examples/hello-csharp/Makefile.am
@@ -420,25 +574,38 @@ usr/lib/preloadable_libintl.so
 #usr/share/doc/gettext/examples/hello-csharp/po/LINGUAS
 #usr/share/doc/gettext/examples/hello-csharp/po/Makefile.am
 #usr/share/doc/gettext/examples/hello-csharp/po/af.po
+#usr/share/doc/gettext/examples/hello-csharp/po/ast.po
+#usr/share/doc/gettext/examples/hello-csharp/po/bg.po
 #usr/share/doc/gettext/examples/hello-csharp/po/ca.po
 #usr/share/doc/gettext/examples/hello-csharp/po/de.po
 #usr/share/doc/gettext/examples/hello-csharp/po/el.po
+#usr/share/doc/gettext/examples/hello-csharp/po/eo.po
 #usr/share/doc/gettext/examples/hello-csharp/po/es.po
+#usr/share/doc/gettext/examples/hello-csharp/po/fi.po
 #usr/share/doc/gettext/examples/hello-csharp/po/fr.po
 #usr/share/doc/gettext/examples/hello-csharp/po/ga.po
+#usr/share/doc/gettext/examples/hello-csharp/po/hu.po
+#usr/share/doc/gettext/examples/hello-csharp/po/id.po
 #usr/share/doc/gettext/examples/hello-csharp/po/it.po
 #usr/share/doc/gettext/examples/hello-csharp/po/ja.po
+#usr/share/doc/gettext/examples/hello-csharp/po/ky.po
+#usr/share/doc/gettext/examples/hello-csharp/po/lv.po
+#usr/share/doc/gettext/examples/hello-csharp/po/ms.po
+#usr/share/doc/gettext/examples/hello-csharp/po/mt.po
 #usr/share/doc/gettext/examples/hello-csharp/po/nl.po
 #usr/share/doc/gettext/examples/hello-csharp/po/pl.po
+#usr/share/doc/gettext/examples/hello-csharp/po/pt.po
 #usr/share/doc/gettext/examples/hello-csharp/po/ro.po
 #usr/share/doc/gettext/examples/hello-csharp/po/ru.po
 #usr/share/doc/gettext/examples/hello-csharp/po/sk.po
+#usr/share/doc/gettext/examples/hello-csharp/po/sl.po
 #usr/share/doc/gettext/examples/hello-csharp/po/sr.po
 #usr/share/doc/gettext/examples/hello-csharp/po/sv.po
 #usr/share/doc/gettext/examples/hello-csharp/po/tr.po
 #usr/share/doc/gettext/examples/hello-csharp/po/uk.po
 #usr/share/doc/gettext/examples/hello-csharp/po/vi.po
 #usr/share/doc/gettext/examples/hello-csharp/po/zh_CN.po
+#usr/share/doc/gettext/examples/hello-csharp/po/zh_HK.po
 #usr/share/doc/gettext/examples/hello-csharp/po/zh_TW.po
 #usr/share/doc/gettext/examples/hello-gawk
 #usr/share/doc/gettext/examples/hello-gawk/INSTALL
@@ -453,25 +620,38 @@ usr/lib/preloadable_libintl.so
 #usr/share/doc/gettext/examples/hello-gawk/po/LINGUAS
 #usr/share/doc/gettext/examples/hello-gawk/po/Makefile.am
 #usr/share/doc/gettext/examples/hello-gawk/po/af.po
+#usr/share/doc/gettext/examples/hello-gawk/po/ast.po
+#usr/share/doc/gettext/examples/hello-gawk/po/bg.po
 #usr/share/doc/gettext/examples/hello-gawk/po/ca.po
 #usr/share/doc/gettext/examples/hello-gawk/po/de.po
 #usr/share/doc/gettext/examples/hello-gawk/po/el.po
+#usr/share/doc/gettext/examples/hello-gawk/po/eo.po
 #usr/share/doc/gettext/examples/hello-gawk/po/es.po
+#usr/share/doc/gettext/examples/hello-gawk/po/fi.po
 #usr/share/doc/gettext/examples/hello-gawk/po/fr.po
 #usr/share/doc/gettext/examples/hello-gawk/po/ga.po
+#usr/share/doc/gettext/examples/hello-gawk/po/hu.po
+#usr/share/doc/gettext/examples/hello-gawk/po/id.po
 #usr/share/doc/gettext/examples/hello-gawk/po/it.po
 #usr/share/doc/gettext/examples/hello-gawk/po/ja.po
+#usr/share/doc/gettext/examples/hello-gawk/po/ky.po
+#usr/share/doc/gettext/examples/hello-gawk/po/lv.po
+#usr/share/doc/gettext/examples/hello-gawk/po/ms.po
+#usr/share/doc/gettext/examples/hello-gawk/po/mt.po
 #usr/share/doc/gettext/examples/hello-gawk/po/nl.po
 #usr/share/doc/gettext/examples/hello-gawk/po/pl.po
+#usr/share/doc/gettext/examples/hello-gawk/po/pt.po
 #usr/share/doc/gettext/examples/hello-gawk/po/ro.po
 #usr/share/doc/gettext/examples/hello-gawk/po/ru.po
 #usr/share/doc/gettext/examples/hello-gawk/po/sk.po
+#usr/share/doc/gettext/examples/hello-gawk/po/sl.po
 #usr/share/doc/gettext/examples/hello-gawk/po/sr.po
 #usr/share/doc/gettext/examples/hello-gawk/po/sv.po
 #usr/share/doc/gettext/examples/hello-gawk/po/tr.po
 #usr/share/doc/gettext/examples/hello-gawk/po/uk.po
 #usr/share/doc/gettext/examples/hello-gawk/po/vi.po
 #usr/share/doc/gettext/examples/hello-gawk/po/zh_CN.po
+#usr/share/doc/gettext/examples/hello-gawk/po/zh_HK.po
 #usr/share/doc/gettext/examples/hello-gawk/po/zh_TW.po
 #usr/share/doc/gettext/examples/hello-guile
 #usr/share/doc/gettext/examples/hello-guile/INSTALL
@@ -486,25 +666,38 @@ usr/lib/preloadable_libintl.so
 #usr/share/doc/gettext/examples/hello-guile/po/LINGUAS
 #usr/share/doc/gettext/examples/hello-guile/po/Makefile.am
 #usr/share/doc/gettext/examples/hello-guile/po/af.po
+#usr/share/doc/gettext/examples/hello-guile/po/ast.po
+#usr/share/doc/gettext/examples/hello-guile/po/bg.po
 #usr/share/doc/gettext/examples/hello-guile/po/ca.po
 #usr/share/doc/gettext/examples/hello-guile/po/de.po
 #usr/share/doc/gettext/examples/hello-guile/po/el.po
+#usr/share/doc/gettext/examples/hello-guile/po/eo.po
 #usr/share/doc/gettext/examples/hello-guile/po/es.po
+#usr/share/doc/gettext/examples/hello-guile/po/fi.po
 #usr/share/doc/gettext/examples/hello-guile/po/fr.po
 #usr/share/doc/gettext/examples/hello-guile/po/ga.po
+#usr/share/doc/gettext/examples/hello-guile/po/hu.po
+#usr/share/doc/gettext/examples/hello-guile/po/id.po
 #usr/share/doc/gettext/examples/hello-guile/po/it.po
 #usr/share/doc/gettext/examples/hello-guile/po/ja.po
+#usr/share/doc/gettext/examples/hello-guile/po/ky.po
+#usr/share/doc/gettext/examples/hello-guile/po/lv.po
+#usr/share/doc/gettext/examples/hello-guile/po/ms.po
+#usr/share/doc/gettext/examples/hello-guile/po/mt.po
 #usr/share/doc/gettext/examples/hello-guile/po/nl.po
 #usr/share/doc/gettext/examples/hello-guile/po/pl.po
+#usr/share/doc/gettext/examples/hello-guile/po/pt.po
 #usr/share/doc/gettext/examples/hello-guile/po/ro.po
 #usr/share/doc/gettext/examples/hello-guile/po/ru.po
 #usr/share/doc/gettext/examples/hello-guile/po/sk.po
+#usr/share/doc/gettext/examples/hello-guile/po/sl.po
 #usr/share/doc/gettext/examples/hello-guile/po/sr.po
 #usr/share/doc/gettext/examples/hello-guile/po/sv.po
 #usr/share/doc/gettext/examples/hello-guile/po/tr.po
 #usr/share/doc/gettext/examples/hello-guile/po/uk.po
 #usr/share/doc/gettext/examples/hello-guile/po/vi.po
 #usr/share/doc/gettext/examples/hello-guile/po/zh_CN.po
+#usr/share/doc/gettext/examples/hello-guile/po/zh_HK.po
 #usr/share/doc/gettext/examples/hello-guile/po/zh_TW.po
 #usr/share/doc/gettext/examples/hello-java
 #usr/share/doc/gettext/examples/hello-java-awt
@@ -523,26 +716,88 @@ usr/lib/preloadable_libintl.so
 #usr/share/doc/gettext/examples/hello-java-awt/po/LINGUAS
 #usr/share/doc/gettext/examples/hello-java-awt/po/Makefile.am
 #usr/share/doc/gettext/examples/hello-java-awt/po/af.po
+#usr/share/doc/gettext/examples/hello-java-awt/po/ast.po
+#usr/share/doc/gettext/examples/hello-java-awt/po/bg.po
 #usr/share/doc/gettext/examples/hello-java-awt/po/ca.po
 #usr/share/doc/gettext/examples/hello-java-awt/po/de.po
 #usr/share/doc/gettext/examples/hello-java-awt/po/el.po
+#usr/share/doc/gettext/examples/hello-java-awt/po/eo.po
 #usr/share/doc/gettext/examples/hello-java-awt/po/es.po
+#usr/share/doc/gettext/examples/hello-java-awt/po/fi.po
 #usr/share/doc/gettext/examples/hello-java-awt/po/fr.po
 #usr/share/doc/gettext/examples/hello-java-awt/po/ga.po
+#usr/share/doc/gettext/examples/hello-java-awt/po/hu.po
+#usr/share/doc/gettext/examples/hello-java-awt/po/id.po
 #usr/share/doc/gettext/examples/hello-java-awt/po/it.po
 #usr/share/doc/gettext/examples/hello-java-awt/po/ja.po
+#usr/share/doc/gettext/examples/hello-java-awt/po/ky.po
+#usr/share/doc/gettext/examples/hello-java-awt/po/lv.po
+#usr/share/doc/gettext/examples/hello-java-awt/po/ms.po
+#usr/share/doc/gettext/examples/hello-java-awt/po/mt.po
 #usr/share/doc/gettext/examples/hello-java-awt/po/nl.po
 #usr/share/doc/gettext/examples/hello-java-awt/po/pl.po
+#usr/share/doc/gettext/examples/hello-java-awt/po/pt.po
 #usr/share/doc/gettext/examples/hello-java-awt/po/ro.po
 #usr/share/doc/gettext/examples/hello-java-awt/po/ru.po
 #usr/share/doc/gettext/examples/hello-java-awt/po/sk.po
+#usr/share/doc/gettext/examples/hello-java-awt/po/sl.po
 #usr/share/doc/gettext/examples/hello-java-awt/po/sr.po
 #usr/share/doc/gettext/examples/hello-java-awt/po/sv.po
 #usr/share/doc/gettext/examples/hello-java-awt/po/tr.po
 #usr/share/doc/gettext/examples/hello-java-awt/po/uk.po
 #usr/share/doc/gettext/examples/hello-java-awt/po/vi.po
 #usr/share/doc/gettext/examples/hello-java-awt/po/zh_CN.po
+#usr/share/doc/gettext/examples/hello-java-awt/po/zh_HK.po
 #usr/share/doc/gettext/examples/hello-java-awt/po/zh_TW.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi
+#usr/share/doc/gettext/examples/hello-java-qtjambi/BUGS
+#usr/share/doc/gettext/examples/hello-java-qtjambi/Hello.java
+#usr/share/doc/gettext/examples/hello-java-qtjambi/INSTALL
+#usr/share/doc/gettext/examples/hello-java-qtjambi/Makefile.am
+#usr/share/doc/gettext/examples/hello-java-qtjambi/autoclean.sh
+#usr/share/doc/gettext/examples/hello-java-qtjambi/autogen.sh
+#usr/share/doc/gettext/examples/hello-java-qtjambi/configure.ac
+#usr/share/doc/gettext/examples/hello-java-qtjambi/m4
+#usr/share/doc/gettext/examples/hello-java-qtjambi/m4/Makefile.am
+#usr/share/doc/gettext/examples/hello-java-qtjambi/m4/Test15.class
+#usr/share/doc/gettext/examples/hello-java-qtjambi/m4/Test15.java
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/LINGUAS
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/Makefile.am
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/af.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/ast.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/bg.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/ca.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/de.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/el.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/eo.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/es.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/fi.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/fr.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/ga.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/hu.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/id.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/it.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/ja.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/ky.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/lv.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/ms.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/mt.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/nl.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/pl.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/pt.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/ro.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/ru.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/sk.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/sl.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/sr.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/sv.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/tr.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/uk.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/vi.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/zh_CN.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/zh_HK.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/zh_TW.po
 #usr/share/doc/gettext/examples/hello-java-swing
 #usr/share/doc/gettext/examples/hello-java-swing/BUGS
 #usr/share/doc/gettext/examples/hello-java-swing/Hello.java
@@ -559,25 +814,38 @@ usr/lib/preloadable_libintl.so
 #usr/share/doc/gettext/examples/hello-java-swing/po/LINGUAS
 #usr/share/doc/gettext/examples/hello-java-swing/po/Makefile.am
 #usr/share/doc/gettext/examples/hello-java-swing/po/af.po
+#usr/share/doc/gettext/examples/hello-java-swing/po/ast.po
+#usr/share/doc/gettext/examples/hello-java-swing/po/bg.po
 #usr/share/doc/gettext/examples/hello-java-swing/po/ca.po
 #usr/share/doc/gettext/examples/hello-java-swing/po/de.po
 #usr/share/doc/gettext/examples/hello-java-swing/po/el.po
+#usr/share/doc/gettext/examples/hello-java-swing/po/eo.po
 #usr/share/doc/gettext/examples/hello-java-swing/po/es.po
+#usr/share/doc/gettext/examples/hello-java-swing/po/fi.po
 #usr/share/doc/gettext/examples/hello-java-swing/po/fr.po
 #usr/share/doc/gettext/examples/hello-java-swing/po/ga.po
+#usr/share/doc/gettext/examples/hello-java-swing/po/hu.po
+#usr/share/doc/gettext/examples/hello-java-swing/po/id.po
 #usr/share/doc/gettext/examples/hello-java-swing/po/it.po
 #usr/share/doc/gettext/examples/hello-java-swing/po/ja.po
+#usr/share/doc/gettext/examples/hello-java-swing/po/ky.po
+#usr/share/doc/gettext/examples/hello-java-swing/po/lv.po
+#usr/share/doc/gettext/examples/hello-java-swing/po/ms.po
+#usr/share/doc/gettext/examples/hello-java-swing/po/mt.po
 #usr/share/doc/gettext/examples/hello-java-swing/po/nl.po
 #usr/share/doc/gettext/examples/hello-java-swing/po/pl.po
+#usr/share/doc/gettext/examples/hello-java-swing/po/pt.po
 #usr/share/doc/gettext/examples/hello-java-swing/po/ro.po
 #usr/share/doc/gettext/examples/hello-java-swing/po/ru.po
 #usr/share/doc/gettext/examples/hello-java-swing/po/sk.po
+#usr/share/doc/gettext/examples/hello-java-swing/po/sl.po
 #usr/share/doc/gettext/examples/hello-java-swing/po/sr.po
 #usr/share/doc/gettext/examples/hello-java-swing/po/sv.po
 #usr/share/doc/gettext/examples/hello-java-swing/po/tr.po
 #usr/share/doc/gettext/examples/hello-java-swing/po/uk.po
 #usr/share/doc/gettext/examples/hello-java-swing/po/vi.po
 #usr/share/doc/gettext/examples/hello-java-swing/po/zh_CN.po
+#usr/share/doc/gettext/examples/hello-java-swing/po/zh_HK.po
 #usr/share/doc/gettext/examples/hello-java-swing/po/zh_TW.po
 #usr/share/doc/gettext/examples/hello-java/Hello.java
 #usr/share/doc/gettext/examples/hello-java/INSTALL
@@ -591,25 +859,38 @@ usr/lib/preloadable_libintl.so
 #usr/share/doc/gettext/examples/hello-java/po/LINGUAS
 #usr/share/doc/gettext/examples/hello-java/po/Makefile.am
 #usr/share/doc/gettext/examples/hello-java/po/af.po
+#usr/share/doc/gettext/examples/hello-java/po/ast.po
+#usr/share/doc/gettext/examples/hello-java/po/bg.po
 #usr/share/doc/gettext/examples/hello-java/po/ca.po
 #usr/share/doc/gettext/examples/hello-java/po/de.po
 #usr/share/doc/gettext/examples/hello-java/po/el.po
+#usr/share/doc/gettext/examples/hello-java/po/eo.po
 #usr/share/doc/gettext/examples/hello-java/po/es.po
+#usr/share/doc/gettext/examples/hello-java/po/fi.po
 #usr/share/doc/gettext/examples/hello-java/po/fr.po
 #usr/share/doc/gettext/examples/hello-java/po/ga.po
+#usr/share/doc/gettext/examples/hello-java/po/hu.po
+#usr/share/doc/gettext/examples/hello-java/po/id.po
 #usr/share/doc/gettext/examples/hello-java/po/it.po
 #usr/share/doc/gettext/examples/hello-java/po/ja.po
+#usr/share/doc/gettext/examples/hello-java/po/ky.po
+#usr/share/doc/gettext/examples/hello-java/po/lv.po
+#usr/share/doc/gettext/examples/hello-java/po/ms.po
+#usr/share/doc/gettext/examples/hello-java/po/mt.po
 #usr/share/doc/gettext/examples/hello-java/po/nl.po
 #usr/share/doc/gettext/examples/hello-java/po/pl.po
+#usr/share/doc/gettext/examples/hello-java/po/pt.po
 #usr/share/doc/gettext/examples/hello-java/po/ro.po
 #usr/share/doc/gettext/examples/hello-java/po/ru.po
 #usr/share/doc/gettext/examples/hello-java/po/sk.po
+#usr/share/doc/gettext/examples/hello-java/po/sl.po
 #usr/share/doc/gettext/examples/hello-java/po/sr.po
 #usr/share/doc/gettext/examples/hello-java/po/sv.po
 #usr/share/doc/gettext/examples/hello-java/po/tr.po
 #usr/share/doc/gettext/examples/hello-java/po/uk.po
 #usr/share/doc/gettext/examples/hello-java/po/vi.po
 #usr/share/doc/gettext/examples/hello-java/po/zh_CN.po
+#usr/share/doc/gettext/examples/hello-java/po/zh_HK.po
 #usr/share/doc/gettext/examples/hello-java/po/zh_TW.po
 #usr/share/doc/gettext/examples/hello-librep
 #usr/share/doc/gettext/examples/hello-librep/INSTALL
@@ -624,25 +905,38 @@ usr/lib/preloadable_libintl.so
 #usr/share/doc/gettext/examples/hello-librep/po/LINGUAS
 #usr/share/doc/gettext/examples/hello-librep/po/Makefile.am
 #usr/share/doc/gettext/examples/hello-librep/po/af.po
+#usr/share/doc/gettext/examples/hello-librep/po/ast.po
+#usr/share/doc/gettext/examples/hello-librep/po/bg.po
 #usr/share/doc/gettext/examples/hello-librep/po/ca.po
 #usr/share/doc/gettext/examples/hello-librep/po/de.po
 #usr/share/doc/gettext/examples/hello-librep/po/el.po
+#usr/share/doc/gettext/examples/hello-librep/po/eo.po
 #usr/share/doc/gettext/examples/hello-librep/po/es.po
+#usr/share/doc/gettext/examples/hello-librep/po/fi.po
 #usr/share/doc/gettext/examples/hello-librep/po/fr.po
 #usr/share/doc/gettext/examples/hello-librep/po/ga.po
+#usr/share/doc/gettext/examples/hello-librep/po/hu.po
+#usr/share/doc/gettext/examples/hello-librep/po/id.po
 #usr/share/doc/gettext/examples/hello-librep/po/it.po
 #usr/share/doc/gettext/examples/hello-librep/po/ja.po
+#usr/share/doc/gettext/examples/hello-librep/po/ky.po
+#usr/share/doc/gettext/examples/hello-librep/po/lv.po
+#usr/share/doc/gettext/examples/hello-librep/po/ms.po
+#usr/share/doc/gettext/examples/hello-librep/po/mt.po
 #usr/share/doc/gettext/examples/hello-librep/po/nl.po
 #usr/share/doc/gettext/examples/hello-librep/po/pl.po
+#usr/share/doc/gettext/examples/hello-librep/po/pt.po
 #usr/share/doc/gettext/examples/hello-librep/po/ro.po
 #usr/share/doc/gettext/examples/hello-librep/po/ru.po
 #usr/share/doc/gettext/examples/hello-librep/po/sk.po
+#usr/share/doc/gettext/examples/hello-librep/po/sl.po
 #usr/share/doc/gettext/examples/hello-librep/po/sr.po
 #usr/share/doc/gettext/examples/hello-librep/po/sv.po
 #usr/share/doc/gettext/examples/hello-librep/po/tr.po
 #usr/share/doc/gettext/examples/hello-librep/po/uk.po
 #usr/share/doc/gettext/examples/hello-librep/po/vi.po
 #usr/share/doc/gettext/examples/hello-librep/po/zh_CN.po
+#usr/share/doc/gettext/examples/hello-librep/po/zh_HK.po
 #usr/share/doc/gettext/examples/hello-librep/po/zh_TW.po
 #usr/share/doc/gettext/examples/hello-objc
 #usr/share/doc/gettext/examples/hello-objc-gnome
@@ -662,25 +956,38 @@ usr/lib/preloadable_libintl.so
 #usr/share/doc/gettext/examples/hello-objc-gnome/po/Makevars
 #usr/share/doc/gettext/examples/hello-objc-gnome/po/POTFILES.in
 #usr/share/doc/gettext/examples/hello-objc-gnome/po/af.po
+#usr/share/doc/gettext/examples/hello-objc-gnome/po/ast.po
+#usr/share/doc/gettext/examples/hello-objc-gnome/po/bg.po
 #usr/share/doc/gettext/examples/hello-objc-gnome/po/ca.po
 #usr/share/doc/gettext/examples/hello-objc-gnome/po/de.po
 #usr/share/doc/gettext/examples/hello-objc-gnome/po/el.po
+#usr/share/doc/gettext/examples/hello-objc-gnome/po/eo.po
 #usr/share/doc/gettext/examples/hello-objc-gnome/po/es.po
+#usr/share/doc/gettext/examples/hello-objc-gnome/po/fi.po
 #usr/share/doc/gettext/examples/hello-objc-gnome/po/fr.po
 #usr/share/doc/gettext/examples/hello-objc-gnome/po/ga.po
+#usr/share/doc/gettext/examples/hello-objc-gnome/po/hu.po
+#usr/share/doc/gettext/examples/hello-objc-gnome/po/id.po
 #usr/share/doc/gettext/examples/hello-objc-gnome/po/it.po
 #usr/share/doc/gettext/examples/hello-objc-gnome/po/ja.po
+#usr/share/doc/gettext/examples/hello-objc-gnome/po/ky.po
+#usr/share/doc/gettext/examples/hello-objc-gnome/po/lv.po
+#usr/share/doc/gettext/examples/hello-objc-gnome/po/ms.po
+#usr/share/doc/gettext/examples/hello-objc-gnome/po/mt.po
 #usr/share/doc/gettext/examples/hello-objc-gnome/po/nl.po
 #usr/share/doc/gettext/examples/hello-objc-gnome/po/pl.po
+#usr/share/doc/gettext/examples/hello-objc-gnome/po/pt.po
 #usr/share/doc/gettext/examples/hello-objc-gnome/po/ro.po
 #usr/share/doc/gettext/examples/hello-objc-gnome/po/ru.po
 #usr/share/doc/gettext/examples/hello-objc-gnome/po/sk.po
+#usr/share/doc/gettext/examples/hello-objc-gnome/po/sl.po
 #usr/share/doc/gettext/examples/hello-objc-gnome/po/sr.po
 #usr/share/doc/gettext/examples/hello-objc-gnome/po/sv.po
 #usr/share/doc/gettext/examples/hello-objc-gnome/po/tr.po
 #usr/share/doc/gettext/examples/hello-objc-gnome/po/uk.po
 #usr/share/doc/gettext/examples/hello-objc-gnome/po/vi.po
 #usr/share/doc/gettext/examples/hello-objc-gnome/po/zh_CN.po
+#usr/share/doc/gettext/examples/hello-objc-gnome/po/zh_HK.po
 #usr/share/doc/gettext/examples/hello-objc-gnome/po/zh_TW.po
 #usr/share/doc/gettext/examples/hello-objc-gnustep
 #usr/share/doc/gettext/examples/hello-objc-gnustep/AppController.h
@@ -698,25 +1005,38 @@ usr/lib/preloadable_libintl.so
 #usr/share/doc/gettext/examples/hello-objc-gnustep/po/LINGUAS
 #usr/share/doc/gettext/examples/hello-objc-gnustep/po/LocaleAliases
 #usr/share/doc/gettext/examples/hello-objc-gnustep/po/af.po
+#usr/share/doc/gettext/examples/hello-objc-gnustep/po/ast.po
+#usr/share/doc/gettext/examples/hello-objc-gnustep/po/bg.po
 #usr/share/doc/gettext/examples/hello-objc-gnustep/po/ca.po
 #usr/share/doc/gettext/examples/hello-objc-gnustep/po/de.po
 #usr/share/doc/gettext/examples/hello-objc-gnustep/po/el.po
+#usr/share/doc/gettext/examples/hello-objc-gnustep/po/eo.po
 #usr/share/doc/gettext/examples/hello-objc-gnustep/po/es.po
+#usr/share/doc/gettext/examples/hello-objc-gnustep/po/fi.po
 #usr/share/doc/gettext/examples/hello-objc-gnustep/po/fr.po
 #usr/share/doc/gettext/examples/hello-objc-gnustep/po/ga.po
+#usr/share/doc/gettext/examples/hello-objc-gnustep/po/hu.po
+#usr/share/doc/gettext/examples/hello-objc-gnustep/po/id.po
 #usr/share/doc/gettext/examples/hello-objc-gnustep/po/it.po
 #usr/share/doc/gettext/examples/hello-objc-gnustep/po/ja.po
+#usr/share/doc/gettext/examples/hello-objc-gnustep/po/ky.po
+#usr/share/doc/gettext/examples/hello-objc-gnustep/po/lv.po
+#usr/share/doc/gettext/examples/hello-objc-gnustep/po/ms.po
+#usr/share/doc/gettext/examples/hello-objc-gnustep/po/mt.po
 #usr/share/doc/gettext/examples/hello-objc-gnustep/po/nl.po
 #usr/share/doc/gettext/examples/hello-objc-gnustep/po/pl.po
+#usr/share/doc/gettext/examples/hello-objc-gnustep/po/pt.po
 #usr/share/doc/gettext/examples/hello-objc-gnustep/po/ro.po
 #usr/share/doc/gettext/examples/hello-objc-gnustep/po/ru.po
 #usr/share/doc/gettext/examples/hello-objc-gnustep/po/sk.po
+#usr/share/doc/gettext/examples/hello-objc-gnustep/po/sl.po
 #usr/share/doc/gettext/examples/hello-objc-gnustep/po/sr.po
 #usr/share/doc/gettext/examples/hello-objc-gnustep/po/sv.po
 #usr/share/doc/gettext/examples/hello-objc-gnustep/po/tr.po
 #usr/share/doc/gettext/examples/hello-objc-gnustep/po/uk.po
 #usr/share/doc/gettext/examples/hello-objc-gnustep/po/vi.po
 #usr/share/doc/gettext/examples/hello-objc-gnustep/po/zh_CN.po
+#usr/share/doc/gettext/examples/hello-objc-gnustep/po/zh_HK.po
 #usr/share/doc/gettext/examples/hello-objc-gnustep/po/zh_TW.po
 #usr/share/doc/gettext/examples/hello-objc/INSTALL
 #usr/share/doc/gettext/examples/hello-objc/Makefile.am
@@ -731,25 +1051,38 @@ usr/lib/preloadable_libintl.so
 #usr/share/doc/gettext/examples/hello-objc/po/Makevars
 #usr/share/doc/gettext/examples/hello-objc/po/POTFILES.in
 #usr/share/doc/gettext/examples/hello-objc/po/af.po
+#usr/share/doc/gettext/examples/hello-objc/po/ast.po
+#usr/share/doc/gettext/examples/hello-objc/po/bg.po
 #usr/share/doc/gettext/examples/hello-objc/po/ca.po
 #usr/share/doc/gettext/examples/hello-objc/po/de.po
 #usr/share/doc/gettext/examples/hello-objc/po/el.po
+#usr/share/doc/gettext/examples/hello-objc/po/eo.po
 #usr/share/doc/gettext/examples/hello-objc/po/es.po
+#usr/share/doc/gettext/examples/hello-objc/po/fi.po
 #usr/share/doc/gettext/examples/hello-objc/po/fr.po
 #usr/share/doc/gettext/examples/hello-objc/po/ga.po
+#usr/share/doc/gettext/examples/hello-objc/po/hu.po
+#usr/share/doc/gettext/examples/hello-objc/po/id.po
 #usr/share/doc/gettext/examples/hello-objc/po/it.po
 #usr/share/doc/gettext/examples/hello-objc/po/ja.po
+#usr/share/doc/gettext/examples/hello-objc/po/ky.po
+#usr/share/doc/gettext/examples/hello-objc/po/lv.po
+#usr/share/doc/gettext/examples/hello-objc/po/ms.po
+#usr/share/doc/gettext/examples/hello-objc/po/mt.po
 #usr/share/doc/gettext/examples/hello-objc/po/nl.po
 #usr/share/doc/gettext/examples/hello-objc/po/pl.po
+#usr/share/doc/gettext/examples/hello-objc/po/pt.po
 #usr/share/doc/gettext/examples/hello-objc/po/ro.po
 #usr/share/doc/gettext/examples/hello-objc/po/ru.po
 #usr/share/doc/gettext/examples/hello-objc/po/sk.po
+#usr/share/doc/gettext/examples/hello-objc/po/sl.po
 #usr/share/doc/gettext/examples/hello-objc/po/sr.po
 #usr/share/doc/gettext/examples/hello-objc/po/sv.po
 #usr/share/doc/gettext/examples/hello-objc/po/tr.po
 #usr/share/doc/gettext/examples/hello-objc/po/uk.po
 #usr/share/doc/gettext/examples/hello-objc/po/vi.po
 #usr/share/doc/gettext/examples/hello-objc/po/zh_CN.po
+#usr/share/doc/gettext/examples/hello-objc/po/zh_HK.po
 #usr/share/doc/gettext/examples/hello-objc/po/zh_TW.po
 #usr/share/doc/gettext/examples/hello-pascal
 #usr/share/doc/gettext/examples/hello-pascal/INSTALL
@@ -765,25 +1098,38 @@ usr/lib/preloadable_libintl.so
 #usr/share/doc/gettext/examples/hello-pascal/po/LINGUAS
 #usr/share/doc/gettext/examples/hello-pascal/po/Makefile.am
 #usr/share/doc/gettext/examples/hello-pascal/po/af.po
+#usr/share/doc/gettext/examples/hello-pascal/po/ast.po
+#usr/share/doc/gettext/examples/hello-pascal/po/bg.po
 #usr/share/doc/gettext/examples/hello-pascal/po/ca.po
 #usr/share/doc/gettext/examples/hello-pascal/po/de.po
 #usr/share/doc/gettext/examples/hello-pascal/po/el.po
+#usr/share/doc/gettext/examples/hello-pascal/po/eo.po
 #usr/share/doc/gettext/examples/hello-pascal/po/es.po
+#usr/share/doc/gettext/examples/hello-pascal/po/fi.po
 #usr/share/doc/gettext/examples/hello-pascal/po/fr.po
 #usr/share/doc/gettext/examples/hello-pascal/po/ga.po
+#usr/share/doc/gettext/examples/hello-pascal/po/hu.po
+#usr/share/doc/gettext/examples/hello-pascal/po/id.po
 #usr/share/doc/gettext/examples/hello-pascal/po/it.po
 #usr/share/doc/gettext/examples/hello-pascal/po/ja.po
+#usr/share/doc/gettext/examples/hello-pascal/po/ky.po
+#usr/share/doc/gettext/examples/hello-pascal/po/lv.po
+#usr/share/doc/gettext/examples/hello-pascal/po/ms.po
+#usr/share/doc/gettext/examples/hello-pascal/po/mt.po
 #usr/share/doc/gettext/examples/hello-pascal/po/nl.po
 #usr/share/doc/gettext/examples/hello-pascal/po/pl.po
+#usr/share/doc/gettext/examples/hello-pascal/po/pt.po
 #usr/share/doc/gettext/examples/hello-pascal/po/ro.po
 #usr/share/doc/gettext/examples/hello-pascal/po/ru.po
 #usr/share/doc/gettext/examples/hello-pascal/po/sk.po
+#usr/share/doc/gettext/examples/hello-pascal/po/sl.po
 #usr/share/doc/gettext/examples/hello-pascal/po/sr.po
 #usr/share/doc/gettext/examples/hello-pascal/po/sv.po
 #usr/share/doc/gettext/examples/hello-pascal/po/tr.po
 #usr/share/doc/gettext/examples/hello-pascal/po/uk.po
 #usr/share/doc/gettext/examples/hello-pascal/po/vi.po
 #usr/share/doc/gettext/examples/hello-pascal/po/zh_CN.po
+#usr/share/doc/gettext/examples/hello-pascal/po/zh_HK.po
 #usr/share/doc/gettext/examples/hello-pascal/po/zh_TW.po
 #usr/share/doc/gettext/examples/hello-perl
 #usr/share/doc/gettext/examples/hello-perl/INSTALL
@@ -799,25 +1145,38 @@ usr/lib/preloadable_libintl.so
 #usr/share/doc/gettext/examples/hello-perl/po/LINGUAS
 #usr/share/doc/gettext/examples/hello-perl/po/Makefile.am
 #usr/share/doc/gettext/examples/hello-perl/po/af.po
+#usr/share/doc/gettext/examples/hello-perl/po/ast.po
+#usr/share/doc/gettext/examples/hello-perl/po/bg.po
 #usr/share/doc/gettext/examples/hello-perl/po/ca.po
 #usr/share/doc/gettext/examples/hello-perl/po/de.po
 #usr/share/doc/gettext/examples/hello-perl/po/el.po
+#usr/share/doc/gettext/examples/hello-perl/po/eo.po
 #usr/share/doc/gettext/examples/hello-perl/po/es.po
+#usr/share/doc/gettext/examples/hello-perl/po/fi.po
 #usr/share/doc/gettext/examples/hello-perl/po/fr.po
 #usr/share/doc/gettext/examples/hello-perl/po/ga.po
+#usr/share/doc/gettext/examples/hello-perl/po/hu.po
+#usr/share/doc/gettext/examples/hello-perl/po/id.po
 #usr/share/doc/gettext/examples/hello-perl/po/it.po
 #usr/share/doc/gettext/examples/hello-perl/po/ja.po
+#usr/share/doc/gettext/examples/hello-perl/po/ky.po
+#usr/share/doc/gettext/examples/hello-perl/po/lv.po
+#usr/share/doc/gettext/examples/hello-perl/po/ms.po
+#usr/share/doc/gettext/examples/hello-perl/po/mt.po
 #usr/share/doc/gettext/examples/hello-perl/po/nl.po
 #usr/share/doc/gettext/examples/hello-perl/po/pl.po
+#usr/share/doc/gettext/examples/hello-perl/po/pt.po
 #usr/share/doc/gettext/examples/hello-perl/po/ro.po
 #usr/share/doc/gettext/examples/hello-perl/po/ru.po
 #usr/share/doc/gettext/examples/hello-perl/po/sk.po
+#usr/share/doc/gettext/examples/hello-perl/po/sl.po
 #usr/share/doc/gettext/examples/hello-perl/po/sr.po
 #usr/share/doc/gettext/examples/hello-perl/po/sv.po
 #usr/share/doc/gettext/examples/hello-perl/po/tr.po
 #usr/share/doc/gettext/examples/hello-perl/po/uk.po
 #usr/share/doc/gettext/examples/hello-perl/po/vi.po
 #usr/share/doc/gettext/examples/hello-perl/po/zh_CN.po
+#usr/share/doc/gettext/examples/hello-perl/po/zh_HK.po
 #usr/share/doc/gettext/examples/hello-perl/po/zh_TW.po
 #usr/share/doc/gettext/examples/hello-php
 #usr/share/doc/gettext/examples/hello-php/INSTALL
@@ -833,25 +1192,38 @@ usr/lib/preloadable_libintl.so
 #usr/share/doc/gettext/examples/hello-php/po/LINGUAS
 #usr/share/doc/gettext/examples/hello-php/po/Makefile.am
 #usr/share/doc/gettext/examples/hello-php/po/af.po
+#usr/share/doc/gettext/examples/hello-php/po/ast.po
+#usr/share/doc/gettext/examples/hello-php/po/bg.po
 #usr/share/doc/gettext/examples/hello-php/po/ca.po
 #usr/share/doc/gettext/examples/hello-php/po/de.po
 #usr/share/doc/gettext/examples/hello-php/po/el.po
+#usr/share/doc/gettext/examples/hello-php/po/eo.po
 #usr/share/doc/gettext/examples/hello-php/po/es.po
+#usr/share/doc/gettext/examples/hello-php/po/fi.po
 #usr/share/doc/gettext/examples/hello-php/po/fr.po
 #usr/share/doc/gettext/examples/hello-php/po/ga.po
+#usr/share/doc/gettext/examples/hello-php/po/hu.po
+#usr/share/doc/gettext/examples/hello-php/po/id.po
 #usr/share/doc/gettext/examples/hello-php/po/it.po
 #usr/share/doc/gettext/examples/hello-php/po/ja.po
+#usr/share/doc/gettext/examples/hello-php/po/ky.po
+#usr/share/doc/gettext/examples/hello-php/po/lv.po
+#usr/share/doc/gettext/examples/hello-php/po/ms.po
+#usr/share/doc/gettext/examples/hello-php/po/mt.po
 #usr/share/doc/gettext/examples/hello-php/po/nl.po
 #usr/share/doc/gettext/examples/hello-php/po/pl.po
+#usr/share/doc/gettext/examples/hello-php/po/pt.po
 #usr/share/doc/gettext/examples/hello-php/po/ro.po
 #usr/share/doc/gettext/examples/hello-php/po/ru.po
 #usr/share/doc/gettext/examples/hello-php/po/sk.po
+#usr/share/doc/gettext/examples/hello-php/po/sl.po
 #usr/share/doc/gettext/examples/hello-php/po/sr.po
 #usr/share/doc/gettext/examples/hello-php/po/sv.po
 #usr/share/doc/gettext/examples/hello-php/po/tr.po
 #usr/share/doc/gettext/examples/hello-php/po/uk.po
 #usr/share/doc/gettext/examples/hello-php/po/vi.po
 #usr/share/doc/gettext/examples/hello-php/po/zh_CN.po
+#usr/share/doc/gettext/examples/hello-php/po/zh_HK.po
 #usr/share/doc/gettext/examples/hello-php/po/zh_TW.po
 #usr/share/doc/gettext/examples/hello-python
 #usr/share/doc/gettext/examples/hello-python/INSTALL
@@ -866,25 +1238,38 @@ usr/lib/preloadable_libintl.so
 #usr/share/doc/gettext/examples/hello-python/po/LINGUAS
 #usr/share/doc/gettext/examples/hello-python/po/Makefile.am
 #usr/share/doc/gettext/examples/hello-python/po/af.po
+#usr/share/doc/gettext/examples/hello-python/po/ast.po
+#usr/share/doc/gettext/examples/hello-python/po/bg.po
 #usr/share/doc/gettext/examples/hello-python/po/ca.po
 #usr/share/doc/gettext/examples/hello-python/po/de.po
 #usr/share/doc/gettext/examples/hello-python/po/el.po
+#usr/share/doc/gettext/examples/hello-python/po/eo.po
 #usr/share/doc/gettext/examples/hello-python/po/es.po
+#usr/share/doc/gettext/examples/hello-python/po/fi.po
 #usr/share/doc/gettext/examples/hello-python/po/fr.po
 #usr/share/doc/gettext/examples/hello-python/po/ga.po
+#usr/share/doc/gettext/examples/hello-python/po/hu.po
+#usr/share/doc/gettext/examples/hello-python/po/id.po
 #usr/share/doc/gettext/examples/hello-python/po/it.po
 #usr/share/doc/gettext/examples/hello-python/po/ja.po
+#usr/share/doc/gettext/examples/hello-python/po/ky.po
+#usr/share/doc/gettext/examples/hello-python/po/lv.po
+#usr/share/doc/gettext/examples/hello-python/po/ms.po
+#usr/share/doc/gettext/examples/hello-python/po/mt.po
 #usr/share/doc/gettext/examples/hello-python/po/nl.po
 #usr/share/doc/gettext/examples/hello-python/po/pl.po
+#usr/share/doc/gettext/examples/hello-python/po/pt.po
 #usr/share/doc/gettext/examples/hello-python/po/ro.po
 #usr/share/doc/gettext/examples/hello-python/po/ru.po
 #usr/share/doc/gettext/examples/hello-python/po/sk.po
+#usr/share/doc/gettext/examples/hello-python/po/sl.po
 #usr/share/doc/gettext/examples/hello-python/po/sr.po
 #usr/share/doc/gettext/examples/hello-python/po/sv.po
 #usr/share/doc/gettext/examples/hello-python/po/tr.po
 #usr/share/doc/gettext/examples/hello-python/po/uk.po
 #usr/share/doc/gettext/examples/hello-python/po/vi.po
 #usr/share/doc/gettext/examples/hello-python/po/zh_CN.po
+#usr/share/doc/gettext/examples/hello-python/po/zh_HK.po
 #usr/share/doc/gettext/examples/hello-python/po/zh_TW.po
 #usr/share/doc/gettext/examples/hello-sh
 #usr/share/doc/gettext/examples/hello-sh/INSTALL
@@ -899,25 +1284,38 @@ usr/lib/preloadable_libintl.so
 #usr/share/doc/gettext/examples/hello-sh/po/LINGUAS
 #usr/share/doc/gettext/examples/hello-sh/po/Makefile.am
 #usr/share/doc/gettext/examples/hello-sh/po/af.po
+#usr/share/doc/gettext/examples/hello-sh/po/ast.po
+#usr/share/doc/gettext/examples/hello-sh/po/bg.po
 #usr/share/doc/gettext/examples/hello-sh/po/ca.po
 #usr/share/doc/gettext/examples/hello-sh/po/de.po
 #usr/share/doc/gettext/examples/hello-sh/po/el.po
+#usr/share/doc/gettext/examples/hello-sh/po/eo.po
 #usr/share/doc/gettext/examples/hello-sh/po/es.po
+#usr/share/doc/gettext/examples/hello-sh/po/fi.po
 #usr/share/doc/gettext/examples/hello-sh/po/fr.po
 #usr/share/doc/gettext/examples/hello-sh/po/ga.po
+#usr/share/doc/gettext/examples/hello-sh/po/hu.po
+#usr/share/doc/gettext/examples/hello-sh/po/id.po
 #usr/share/doc/gettext/examples/hello-sh/po/it.po
 #usr/share/doc/gettext/examples/hello-sh/po/ja.po
+#usr/share/doc/gettext/examples/hello-sh/po/ky.po
+#usr/share/doc/gettext/examples/hello-sh/po/lv.po
+#usr/share/doc/gettext/examples/hello-sh/po/ms.po
+#usr/share/doc/gettext/examples/hello-sh/po/mt.po
 #usr/share/doc/gettext/examples/hello-sh/po/nl.po
 #usr/share/doc/gettext/examples/hello-sh/po/pl.po
+#usr/share/doc/gettext/examples/hello-sh/po/pt.po
 #usr/share/doc/gettext/examples/hello-sh/po/ro.po
 #usr/share/doc/gettext/examples/hello-sh/po/ru.po
 #usr/share/doc/gettext/examples/hello-sh/po/sk.po
+#usr/share/doc/gettext/examples/hello-sh/po/sl.po
 #usr/share/doc/gettext/examples/hello-sh/po/sr.po
 #usr/share/doc/gettext/examples/hello-sh/po/sv.po
 #usr/share/doc/gettext/examples/hello-sh/po/tr.po
 #usr/share/doc/gettext/examples/hello-sh/po/uk.po
 #usr/share/doc/gettext/examples/hello-sh/po/vi.po
 #usr/share/doc/gettext/examples/hello-sh/po/zh_CN.po
+#usr/share/doc/gettext/examples/hello-sh/po/zh_HK.po
 #usr/share/doc/gettext/examples/hello-sh/po/zh_TW.po
 #usr/share/doc/gettext/examples/hello-smalltalk
 #usr/share/doc/gettext/examples/hello-smalltalk/INSTALL
@@ -932,25 +1330,38 @@ usr/lib/preloadable_libintl.so
 #usr/share/doc/gettext/examples/hello-smalltalk/po/LINGUAS
 #usr/share/doc/gettext/examples/hello-smalltalk/po/Makefile.am
 #usr/share/doc/gettext/examples/hello-smalltalk/po/af.po
+#usr/share/doc/gettext/examples/hello-smalltalk/po/ast.po
+#usr/share/doc/gettext/examples/hello-smalltalk/po/bg.po
 #usr/share/doc/gettext/examples/hello-smalltalk/po/ca.po
 #usr/share/doc/gettext/examples/hello-smalltalk/po/de.po
 #usr/share/doc/gettext/examples/hello-smalltalk/po/el.po
+#usr/share/doc/gettext/examples/hello-smalltalk/po/eo.po
 #usr/share/doc/gettext/examples/hello-smalltalk/po/es.po
+#usr/share/doc/gettext/examples/hello-smalltalk/po/fi.po
 #usr/share/doc/gettext/examples/hello-smalltalk/po/fr.po
 #usr/share/doc/gettext/examples/hello-smalltalk/po/ga.po
+#usr/share/doc/gettext/examples/hello-smalltalk/po/hu.po
+#usr/share/doc/gettext/examples/hello-smalltalk/po/id.po
 #usr/share/doc/gettext/examples/hello-smalltalk/po/it.po
 #usr/share/doc/gettext/examples/hello-smalltalk/po/ja.po
+#usr/share/doc/gettext/examples/hello-smalltalk/po/ky.po
+#usr/share/doc/gettext/examples/hello-smalltalk/po/lv.po
+#usr/share/doc/gettext/examples/hello-smalltalk/po/ms.po
+#usr/share/doc/gettext/examples/hello-smalltalk/po/mt.po
 #usr/share/doc/gettext/examples/hello-smalltalk/po/nl.po
 #usr/share/doc/gettext/examples/hello-smalltalk/po/pl.po
+#usr/share/doc/gettext/examples/hello-smalltalk/po/pt.po
 #usr/share/doc/gettext/examples/hello-smalltalk/po/ro.po
 #usr/share/doc/gettext/examples/hello-smalltalk/po/ru.po
 #usr/share/doc/gettext/examples/hello-smalltalk/po/sk.po
+#usr/share/doc/gettext/examples/hello-smalltalk/po/sl.po
 #usr/share/doc/gettext/examples/hello-smalltalk/po/sr.po
 #usr/share/doc/gettext/examples/hello-smalltalk/po/sv.po
 #usr/share/doc/gettext/examples/hello-smalltalk/po/tr.po
 #usr/share/doc/gettext/examples/hello-smalltalk/po/uk.po
 #usr/share/doc/gettext/examples/hello-smalltalk/po/vi.po
 #usr/share/doc/gettext/examples/hello-smalltalk/po/zh_CN.po
+#usr/share/doc/gettext/examples/hello-smalltalk/po/zh_HK.po
 #usr/share/doc/gettext/examples/hello-smalltalk/po/zh_TW.po
 #usr/share/doc/gettext/examples/hello-tcl
 #usr/share/doc/gettext/examples/hello-tcl-tk
@@ -966,25 +1377,38 @@ usr/lib/preloadable_libintl.so
 #usr/share/doc/gettext/examples/hello-tcl-tk/po/LINGUAS
 #usr/share/doc/gettext/examples/hello-tcl-tk/po/Makefile.am
 #usr/share/doc/gettext/examples/hello-tcl-tk/po/af.po
+#usr/share/doc/gettext/examples/hello-tcl-tk/po/ast.po
+#usr/share/doc/gettext/examples/hello-tcl-tk/po/bg.po
 #usr/share/doc/gettext/examples/hello-tcl-tk/po/ca.po
 #usr/share/doc/gettext/examples/hello-tcl-tk/po/de.po
 #usr/share/doc/gettext/examples/hello-tcl-tk/po/el.po
+#usr/share/doc/gettext/examples/hello-tcl-tk/po/eo.po
 #usr/share/doc/gettext/examples/hello-tcl-tk/po/es.po
+#usr/share/doc/gettext/examples/hello-tcl-tk/po/fi.po
 #usr/share/doc/gettext/examples/hello-tcl-tk/po/fr.po
 #usr/share/doc/gettext/examples/hello-tcl-tk/po/ga.po
+#usr/share/doc/gettext/examples/hello-tcl-tk/po/hu.po
+#usr/share/doc/gettext/examples/hello-tcl-tk/po/id.po
 #usr/share/doc/gettext/examples/hello-tcl-tk/po/it.po
 #usr/share/doc/gettext/examples/hello-tcl-tk/po/ja.po
+#usr/share/doc/gettext/examples/hello-tcl-tk/po/ky.po
+#usr/share/doc/gettext/examples/hello-tcl-tk/po/lv.po
+#usr/share/doc/gettext/examples/hello-tcl-tk/po/ms.po
+#usr/share/doc/gettext/examples/hello-tcl-tk/po/mt.po
 #usr/share/doc/gettext/examples/hello-tcl-tk/po/nl.po
 #usr/share/doc/gettext/examples/hello-tcl-tk/po/pl.po
+#usr/share/doc/gettext/examples/hello-tcl-tk/po/pt.po
 #usr/share/doc/gettext/examples/hello-tcl-tk/po/ro.po
 #usr/share/doc/gettext/examples/hello-tcl-tk/po/ru.po
 #usr/share/doc/gettext/examples/hello-tcl-tk/po/sk.po
+#usr/share/doc/gettext/examples/hello-tcl-tk/po/sl.po
 #usr/share/doc/gettext/examples/hello-tcl-tk/po/sr.po
 #usr/share/doc/gettext/examples/hello-tcl-tk/po/sv.po
 #usr/share/doc/gettext/examples/hello-tcl-tk/po/tr.po
 #usr/share/doc/gettext/examples/hello-tcl-tk/po/uk.po
 #usr/share/doc/gettext/examples/hello-tcl-tk/po/vi.po
 #usr/share/doc/gettext/examples/hello-tcl-tk/po/zh_CN.po
+#usr/share/doc/gettext/examples/hello-tcl-tk/po/zh_HK.po
 #usr/share/doc/gettext/examples/hello-tcl-tk/po/zh_TW.po
 #usr/share/doc/gettext/examples/hello-tcl/INSTALL
 #usr/share/doc/gettext/examples/hello-tcl/Makefile.am
@@ -998,25 +1422,38 @@ usr/lib/preloadable_libintl.so
 #usr/share/doc/gettext/examples/hello-tcl/po/LINGUAS
 #usr/share/doc/gettext/examples/hello-tcl/po/Makefile.am
 #usr/share/doc/gettext/examples/hello-tcl/po/af.po
+#usr/share/doc/gettext/examples/hello-tcl/po/ast.po
+#usr/share/doc/gettext/examples/hello-tcl/po/bg.po
 #usr/share/doc/gettext/examples/hello-tcl/po/ca.po
 #usr/share/doc/gettext/examples/hello-tcl/po/de.po
 #usr/share/doc/gettext/examples/hello-tcl/po/el.po
+#usr/share/doc/gettext/examples/hello-tcl/po/eo.po
 #usr/share/doc/gettext/examples/hello-tcl/po/es.po
+#usr/share/doc/gettext/examples/hello-tcl/po/fi.po
 #usr/share/doc/gettext/examples/hello-tcl/po/fr.po
 #usr/share/doc/gettext/examples/hello-tcl/po/ga.po
+#usr/share/doc/gettext/examples/hello-tcl/po/hu.po
+#usr/share/doc/gettext/examples/hello-tcl/po/id.po
 #usr/share/doc/gettext/examples/hello-tcl/po/it.po
 #usr/share/doc/gettext/examples/hello-tcl/po/ja.po
+#usr/share/doc/gettext/examples/hello-tcl/po/ky.po
+#usr/share/doc/gettext/examples/hello-tcl/po/lv.po
+#usr/share/doc/gettext/examples/hello-tcl/po/ms.po
+#usr/share/doc/gettext/examples/hello-tcl/po/mt.po
 #usr/share/doc/gettext/examples/hello-tcl/po/nl.po
 #usr/share/doc/gettext/examples/hello-tcl/po/pl.po
+#usr/share/doc/gettext/examples/hello-tcl/po/pt.po
 #usr/share/doc/gettext/examples/hello-tcl/po/ro.po
 #usr/share/doc/gettext/examples/hello-tcl/po/ru.po
 #usr/share/doc/gettext/examples/hello-tcl/po/sk.po
+#usr/share/doc/gettext/examples/hello-tcl/po/sl.po
 #usr/share/doc/gettext/examples/hello-tcl/po/sr.po
 #usr/share/doc/gettext/examples/hello-tcl/po/sv.po
 #usr/share/doc/gettext/examples/hello-tcl/po/tr.po
 #usr/share/doc/gettext/examples/hello-tcl/po/uk.po
 #usr/share/doc/gettext/examples/hello-tcl/po/vi.po
 #usr/share/doc/gettext/examples/hello-tcl/po/zh_CN.po
+#usr/share/doc/gettext/examples/hello-tcl/po/zh_HK.po
 #usr/share/doc/gettext/examples/hello-tcl/po/zh_TW.po
 #usr/share/doc/gettext/examples/hello-ycp
 #usr/share/doc/gettext/examples/hello-ycp/INSTALL
@@ -1031,25 +1468,38 @@ usr/lib/preloadable_libintl.so
 #usr/share/doc/gettext/examples/hello-ycp/po/LINGUAS
 #usr/share/doc/gettext/examples/hello-ycp/po/Makefile.am
 #usr/share/doc/gettext/examples/hello-ycp/po/af.po
+#usr/share/doc/gettext/examples/hello-ycp/po/ast.po
+#usr/share/doc/gettext/examples/hello-ycp/po/bg.po
 #usr/share/doc/gettext/examples/hello-ycp/po/ca.po
 #usr/share/doc/gettext/examples/hello-ycp/po/de.po
 #usr/share/doc/gettext/examples/hello-ycp/po/el.po
+#usr/share/doc/gettext/examples/hello-ycp/po/eo.po
 #usr/share/doc/gettext/examples/hello-ycp/po/es.po
+#usr/share/doc/gettext/examples/hello-ycp/po/fi.po
 #usr/share/doc/gettext/examples/hello-ycp/po/fr.po
 #usr/share/doc/gettext/examples/hello-ycp/po/ga.po
+#usr/share/doc/gettext/examples/hello-ycp/po/hu.po
+#usr/share/doc/gettext/examples/hello-ycp/po/id.po
 #usr/share/doc/gettext/examples/hello-ycp/po/it.po
 #usr/share/doc/gettext/examples/hello-ycp/po/ja.po
+#usr/share/doc/gettext/examples/hello-ycp/po/ky.po
+#usr/share/doc/gettext/examples/hello-ycp/po/lv.po
+#usr/share/doc/gettext/examples/hello-ycp/po/ms.po
+#usr/share/doc/gettext/examples/hello-ycp/po/mt.po
 #usr/share/doc/gettext/examples/hello-ycp/po/nl.po
 #usr/share/doc/gettext/examples/hello-ycp/po/pl.po
+#usr/share/doc/gettext/examples/hello-ycp/po/pt.po
 #usr/share/doc/gettext/examples/hello-ycp/po/ro.po
 #usr/share/doc/gettext/examples/hello-ycp/po/ru.po
 #usr/share/doc/gettext/examples/hello-ycp/po/sk.po
+#usr/share/doc/gettext/examples/hello-ycp/po/sl.po
 #usr/share/doc/gettext/examples/hello-ycp/po/sr.po
 #usr/share/doc/gettext/examples/hello-ycp/po/sv.po
 #usr/share/doc/gettext/examples/hello-ycp/po/tr.po
 #usr/share/doc/gettext/examples/hello-ycp/po/uk.po
 #usr/share/doc/gettext/examples/hello-ycp/po/vi.po
 #usr/share/doc/gettext/examples/hello-ycp/po/zh_CN.po
+#usr/share/doc/gettext/examples/hello-ycp/po/zh_HK.po
 #usr/share/doc/gettext/examples/hello-ycp/po/zh_TW.po
 #usr/share/doc/gettext/examples/installpaths
 #usr/share/doc/gettext/gettext.1.html
@@ -1069,6 +1519,9 @@ usr/lib/preloadable_libintl.so
 #usr/share/doc/gettext/gettext_20.html
 #usr/share/doc/gettext/gettext_21.html
 #usr/share/doc/gettext/gettext_22.html
+#usr/share/doc/gettext/gettext_23.html
+#usr/share/doc/gettext/gettext_24.html
+#usr/share/doc/gettext/gettext_25.html
 #usr/share/doc/gettext/gettext_3.html
 #usr/share/doc/gettext/gettext_4.html
 #usr/share/doc/gettext/gettext_5.html
@@ -1079,35 +1532,6 @@ usr/lib/preloadable_libintl.so
 #usr/share/doc/gettext/gettext_foot.html
 #usr/share/doc/gettext/gettext_toc.html
 #usr/share/doc/gettext/gettextize.1.html
-#usr/share/doc/gettext/javadoc1
-#usr/share/doc/gettext/javadoc1/AllNames.html
-#usr/share/doc/gettext/javadoc1/gnu.gettext.GettextResource.html
-#usr/share/doc/gettext/javadoc1/images
-#usr/share/doc/gettext/javadoc1/images/blue-ball-small.gif
-#usr/share/doc/gettext/javadoc1/images/blue-ball.gif
-#usr/share/doc/gettext/javadoc1/images/class-index.gif
-#usr/share/doc/gettext/javadoc1/images/constructor-index.gif
-#usr/share/doc/gettext/javadoc1/images/constructors.gif
-#usr/share/doc/gettext/javadoc1/images/cyan-ball-small.gif
-#usr/share/doc/gettext/javadoc1/images/cyan-ball.gif
-#usr/share/doc/gettext/javadoc1/images/error-index.gif
-#usr/share/doc/gettext/javadoc1/images/exception-index.gif
-#usr/share/doc/gettext/javadoc1/images/green-ball-small.gif
-#usr/share/doc/gettext/javadoc1/images/green-ball.gif
-#usr/share/doc/gettext/javadoc1/images/interface-index.gif
-#usr/share/doc/gettext/javadoc1/images/magenta-ball-small.gif
-#usr/share/doc/gettext/javadoc1/images/magenta-ball.gif
-#usr/share/doc/gettext/javadoc1/images/method-index.gif
-#usr/share/doc/gettext/javadoc1/images/methods.gif
-#usr/share/doc/gettext/javadoc1/images/package-index.gif
-#usr/share/doc/gettext/javadoc1/images/red-ball-small.gif
-#usr/share/doc/gettext/javadoc1/images/red-ball.gif
-#usr/share/doc/gettext/javadoc1/images/variable-index.gif
-#usr/share/doc/gettext/javadoc1/images/variables.gif
-#usr/share/doc/gettext/javadoc1/images/yellow-ball-small.gif
-#usr/share/doc/gettext/javadoc1/images/yellow-ball.gif
-#usr/share/doc/gettext/javadoc1/packages.html
-#usr/share/doc/gettext/javadoc1/tree.html
 #usr/share/doc/gettext/javadoc2
 #usr/share/doc/gettext/javadoc2/allclasses-frame.html
 #usr/share/doc/gettext/javadoc2/deprecated-list.html
@@ -1141,14 +1565,15 @@ usr/lib/preloadable_libintl.so
 #usr/share/doc/gettext/msguniq.1.html
 #usr/share/doc/gettext/ngettext.1.html
 #usr/share/doc/gettext/ngettext.3.html
+#usr/share/doc/gettext/recode-sr-latin.1.html
 #usr/share/doc/gettext/textdomain.3.html
 #usr/share/doc/gettext/tutorial.html
 #usr/share/doc/gettext/xgettext.1.html
 #usr/share/doc/libasprintf
-#usr/share/doc/libasprintf/autosprintf.html
+#usr/share/doc/libasprintf/autosprintf_all.html
 #usr/share/gettext
 #usr/share/gettext/ABOUT-NLS
-#usr/share/gettext/archive.tar.gz
+#usr/share/gettext/archive.dir.tar.gz
 #usr/share/gettext/config.rpath
 #usr/share/gettext/gettext.h
 #usr/share/gettext/intl
@@ -1166,15 +1591,19 @@ usr/lib/preloadable_libintl.so
 #usr/share/gettext/intl/dngettext.c
 #usr/share/gettext/intl/eval-plural.h
 #usr/share/gettext/intl/explodename.c
+#usr/share/gettext/intl/export.h
 #usr/share/gettext/intl/finddomain.c
 #usr/share/gettext/intl/gettext.c
 #usr/share/gettext/intl/gettextP.h
 #usr/share/gettext/intl/gmo.h
+#usr/share/gettext/intl/hash-string.c
 #usr/share/gettext/intl/hash-string.h
 #usr/share/gettext/intl/intl-compat.c
+#usr/share/gettext/intl/intl-exports.c
 #usr/share/gettext/intl/l10nflist.c
 #usr/share/gettext/intl/langprefs.c
 #usr/share/gettext/intl/libgnuintl.h.in
+#usr/share/gettext/intl/libintl.rc
 #usr/share/gettext/intl/loadinfo.h
 #usr/share/gettext/intl/loadmsgcat.c
 #usr/share/gettext/intl/localcharset.c
@@ -1182,6 +1611,8 @@ usr/lib/preloadable_libintl.so
 #usr/share/gettext/intl/locale.alias
 #usr/share/gettext/intl/localealias.c
 #usr/share/gettext/intl/localename.c
+#usr/share/gettext/intl/lock.c
+#usr/share/gettext/intl/lock.h
 #usr/share/gettext/intl/log.c
 #usr/share/gettext/intl/ngettext.c
 #usr/share/gettext/intl/os2compat.c
@@ -1200,13 +1631,18 @@ usr/lib/preloadable_libintl.so
 #usr/share/gettext/intl/ref-del.sin
 #usr/share/gettext/intl/relocatable.c
 #usr/share/gettext/intl/relocatable.h
+#usr/share/gettext/intl/setlocale.c
 #usr/share/gettext/intl/textdomain.c
+#usr/share/gettext/intl/threadlib.c
+#usr/share/gettext/intl/tsearch.c
+#usr/share/gettext/intl/tsearch.h
 #usr/share/gettext/intl/vasnprintf.c
 #usr/share/gettext/intl/vasnprintf.h
 #usr/share/gettext/intl/vasnwprintf.h
+#usr/share/gettext/intl/version.c
 #usr/share/gettext/intl/wprintf-parse.h
 #usr/share/gettext/intl/xsize.h
-#usr/share/gettext/mkinstalldirs
+#usr/share/gettext/javaversion.class
 #usr/share/gettext/msgunfmt.tcl
 #usr/share/gettext/po
 #usr/share/gettext/po/Makefile.in.in
@@ -1236,6 +1672,15 @@ usr/lib/preloadable_libintl.so
 #usr/share/gettext/projects/TP/trigger
 #usr/share/gettext/projects/index
 #usr/share/gettext/projects/team-address
+#usr/share/gettext/styles
+#usr/share/gettext/styles/po-default.css
+#usr/share/gettext/styles/po-emacs-x.css
+#usr/share/gettext/styles/po-emacs-xterm.css
+#usr/share/gettext/styles/po-emacs-xterm16.css
+#usr/share/gettext/styles/po-emacs-xterm256.css
+#usr/share/gettext/styles/po-vim.css
+#usr/share/info/autosprintf.info
+#usr/share/info/gettext.info
 #usr/share/man/man1/autopoint.1
 #usr/share/man/man1/envsubst.1
 #usr/share/man/man1/gettext.1
@@ -1255,6 +1700,7 @@ usr/lib/preloadable_libintl.so
 #usr/share/man/man1/msgunfmt.1
 #usr/share/man/man1/msguniq.1
 #usr/share/man/man1/ngettext.1
+#usr/share/man/man1/recode-sr-latin.1
 #usr/share/man/man1/xgettext.1
 #usr/share/man/man3/bind_textdomain_codeset.3
 #usr/share/man/man3/bindtextdomain.3
similarity index 60%
rename from config/rootfiles/packages/glib
rename to config/rootfiles/common/glib
index d4913a261a783b0baefc9c978e2a36bb58dd385b..be6d57def5aaf95249c23b06b9bc895ab4fa8faa 100644 (file)
@@ -1,13 +1,27 @@
+#etc/bash_completion.d
+#etc/bash_completion.d/gdbus-bash-completion.sh
+#etc/bash_completion.d/gresource-bash-completion.sh
+#etc/bash_completion.d/gsettings-bash-completion.sh
+#usr/bin/gdbus
+#usr/bin/gdbus-codegen
+#usr/bin/gio-querymodules
+#usr/bin/glib-compile-resources
+#usr/bin/glib-compile-schemas
 #usr/bin/glib-genmarshal
 #usr/bin/glib-gettextize
 #usr/bin/glib-mkenums
 #usr/bin/gobject-query
+#usr/bin/gresource
+#usr/bin/gsettings
 #usr/bin/gtester
 #usr/bin/gtester-report
 #usr/include/gio-unix-2.0
 #usr/include/gio-unix-2.0/gio
 #usr/include/gio-unix-2.0/gio/gdesktopappinfo.h
+#usr/include/gio-unix-2.0/gio/gfiledescriptorbased.h
 #usr/include/gio-unix-2.0/gio/gunixconnection.h
+#usr/include/gio-unix-2.0/gio/gunixcredentialsmessage.h
+#usr/include/gio-unix-2.0/gio/gunixfdlist.h
 #usr/include/gio-unix-2.0/gio/gunixfdmessage.h
 #usr/include/gio-unix-2.0/gio/gunixinputstream.h
 #usr/include/gio-unix-2.0/gio/gunixmounts.h
 #usr/include/gio-unix-2.0/gio/gunixsocketaddress.h
 #usr/include/glib-2.0
 #usr/include/glib-2.0/gio
+#usr/include/glib-2.0/gio/gaction.h
+#usr/include/glib-2.0/gio/gactiongroup.h
+#usr/include/glib-2.0/gio/gactiongroupexporter.h
+#usr/include/glib-2.0/gio/gactionmap.h
 #usr/include/glib-2.0/gio/gappinfo.h
+#usr/include/glib-2.0/gio/gapplication.h
+#usr/include/glib-2.0/gio/gapplicationcommandline.h
 #usr/include/glib-2.0/gio/gasyncinitable.h
 #usr/include/glib-2.0/gio/gasyncresult.h
 #usr/include/glib-2.0/gio/gbufferedinputstream.h
 #usr/include/glib-2.0/gio/gbufferedoutputstream.h
 #usr/include/glib-2.0/gio/gcancellable.h
+#usr/include/glib-2.0/gio/gcharsetconverter.h
 #usr/include/glib-2.0/gio/gcontenttype.h
+#usr/include/glib-2.0/gio/gconverter.h
+#usr/include/glib-2.0/gio/gconverterinputstream.h
+#usr/include/glib-2.0/gio/gconverteroutputstream.h
+#usr/include/glib-2.0/gio/gcredentials.h
 #usr/include/glib-2.0/gio/gdatainputstream.h
 #usr/include/glib-2.0/gio/gdataoutputstream.h
+#usr/include/glib-2.0/gio/gdbusactiongroup.h
+#usr/include/glib-2.0/gio/gdbusaddress.h
+#usr/include/glib-2.0/gio/gdbusauthobserver.h
+#usr/include/glib-2.0/gio/gdbusconnection.h
+#usr/include/glib-2.0/gio/gdbuserror.h
+#usr/include/glib-2.0/gio/gdbusinterface.h
+#usr/include/glib-2.0/gio/gdbusinterfaceskeleton.h
+#usr/include/glib-2.0/gio/gdbusintrospection.h
+#usr/include/glib-2.0/gio/gdbusmenumodel.h
+#usr/include/glib-2.0/gio/gdbusmessage.h
+#usr/include/glib-2.0/gio/gdbusmethodinvocation.h
+#usr/include/glib-2.0/gio/gdbusnameowning.h
+#usr/include/glib-2.0/gio/gdbusnamewatching.h
+#usr/include/glib-2.0/gio/gdbusobject.h
+#usr/include/glib-2.0/gio/gdbusobjectmanager.h
+#usr/include/glib-2.0/gio/gdbusobjectmanagerclient.h
+#usr/include/glib-2.0/gio/gdbusobjectmanagerserver.h
+#usr/include/glib-2.0/gio/gdbusobjectproxy.h
+#usr/include/glib-2.0/gio/gdbusobjectskeleton.h
+#usr/include/glib-2.0/gio/gdbusproxy.h
+#usr/include/glib-2.0/gio/gdbusserver.h
+#usr/include/glib-2.0/gio/gdbusutils.h
 #usr/include/glib-2.0/gio/gdrive.h
 #usr/include/glib-2.0/gio/gemblem.h
 #usr/include/glib-2.0/gio/gemblemedicon.h
@@ -41,6 +88,7 @@
 #usr/include/glib-2.0/gio/gfilteroutputstream.h
 #usr/include/glib-2.0/gio/gicon.h
 #usr/include/glib-2.0/gio/ginetaddress.h
+#usr/include/glib-2.0/gio/ginetaddressmask.h
 #usr/include/glib-2.0/gio/ginetsocketaddress.h
 #usr/include/glib-2.0/gio/ginitable.h
 #usr/include/glib-2.0/gio/ginputstream.h
 #usr/include/glib-2.0/gio/gloadableicon.h
 #usr/include/glib-2.0/gio/gmemoryinputstream.h
 #usr/include/glib-2.0/gio/gmemoryoutputstream.h
+#usr/include/glib-2.0/gio/gmenu.h
+#usr/include/glib-2.0/gio/gmenuexporter.h
+#usr/include/glib-2.0/gio/gmenumodel.h
 #usr/include/glib-2.0/gio/gmount.h
 #usr/include/glib-2.0/gio/gmountoperation.h
 #usr/include/glib-2.0/gio/gnativevolumemonitor.h
 #usr/include/glib-2.0/gio/gnetworkaddress.h
+#usr/include/glib-2.0/gio/gnetworkmonitor.h
 #usr/include/glib-2.0/gio/gnetworkservice.h
 #usr/include/glib-2.0/gio/goutputstream.h
+#usr/include/glib-2.0/gio/gpermission.h
+#usr/include/glib-2.0/gio/gpollableinputstream.h
+#usr/include/glib-2.0/gio/gpollableoutputstream.h
+#usr/include/glib-2.0/gio/gproxy.h
+#usr/include/glib-2.0/gio/gproxyaddress.h
+#usr/include/glib-2.0/gio/gproxyaddressenumerator.h
+#usr/include/glib-2.0/gio/gproxyresolver.h
+#usr/include/glib-2.0/gio/gremoteactiongroup.h
 #usr/include/glib-2.0/gio/gresolver.h
+#usr/include/glib-2.0/gio/gresource.h
 #usr/include/glib-2.0/gio/gseekable.h
+#usr/include/glib-2.0/gio/gsettings.h
+#usr/include/glib-2.0/gio/gsettingsbackend.h
+#usr/include/glib-2.0/gio/gsettingsschema.h
+#usr/include/glib-2.0/gio/gsimpleaction.h
+#usr/include/glib-2.0/gio/gsimpleactiongroup.h
 #usr/include/glib-2.0/gio/gsimpleasyncresult.h
+#usr/include/glib-2.0/gio/gsimplepermission.h
 #usr/include/glib-2.0/gio/gsocket.h
 #usr/include/glib-2.0/gio/gsocketaddress.h
 #usr/include/glib-2.0/gio/gsocketaddressenumerator.h
 #usr/include/glib-2.0/gio/gsocketservice.h
 #usr/include/glib-2.0/gio/gsrvtarget.h
 #usr/include/glib-2.0/gio/gtcpconnection.h
+#usr/include/glib-2.0/gio/gtcpwrapperconnection.h
 #usr/include/glib-2.0/gio/gthemedicon.h
 #usr/include/glib-2.0/gio/gthreadedsocketservice.h
+#usr/include/glib-2.0/gio/gtlsbackend.h
+#usr/include/glib-2.0/gio/gtlscertificate.h
+#usr/include/glib-2.0/gio/gtlsclientconnection.h
+#usr/include/glib-2.0/gio/gtlsconnection.h
+#usr/include/glib-2.0/gio/gtlsdatabase.h
+#usr/include/glib-2.0/gio/gtlsfiledatabase.h
+#usr/include/glib-2.0/gio/gtlsinteraction.h
+#usr/include/glib-2.0/gio/gtlspassword.h
+#usr/include/glib-2.0/gio/gtlsserverconnection.h
 #usr/include/glib-2.0/gio/gvfs.h
 #usr/include/glib-2.0/gio/gvolume.h
 #usr/include/glib-2.0/gio/gvolumemonitor.h
+#usr/include/glib-2.0/gio/gzlibcompressor.h
+#usr/include/glib-2.0/gio/gzlibdecompressor.h
 #usr/include/glib-2.0/glib
 #usr/include/glib-2.0/glib-object.h
+#usr/include/glib-2.0/glib-unix.h
 #usr/include/glib-2.0/glib.h
+#usr/include/glib-2.0/glib/deprecated
+#usr/include/glib-2.0/glib/deprecated/gallocator.h
+#usr/include/glib-2.0/glib/deprecated/gcache.h
+#usr/include/glib-2.0/glib/deprecated/gcompletion.h
+#usr/include/glib-2.0/glib/deprecated/gmain.h
+#usr/include/glib-2.0/glib/deprecated/grel.h
+#usr/include/glib-2.0/glib/deprecated/gthread.h
 #usr/include/glib-2.0/glib/galloca.h
 #usr/include/glib-2.0/glib/garray.h
 #usr/include/glib-2.0/glib/gasyncqueue.h
 #usr/include/glib-2.0/glib/gatomic.h
 #usr/include/glib-2.0/glib/gbacktrace.h
 #usr/include/glib-2.0/glib/gbase64.h
+#usr/include/glib-2.0/glib/gbitlock.h
 #usr/include/glib-2.0/glib/gbookmarkfile.h
-#usr/include/glib-2.0/glib/gcache.h
+#usr/include/glib-2.0/glib/gbytes.h
+#usr/include/glib-2.0/glib/gcharset.h
 #usr/include/glib-2.0/glib/gchecksum.h
-#usr/include/glib-2.0/glib/gcompletion.h
 #usr/include/glib-2.0/glib/gconvert.h
 #usr/include/glib-2.0/glib/gdataset.h
 #usr/include/glib-2.0/glib/gdate.h
+#usr/include/glib-2.0/glib/gdatetime.h
 #usr/include/glib-2.0/glib/gdir.h
+#usr/include/glib-2.0/glib/genviron.h
 #usr/include/glib-2.0/glib/gerror.h
 #usr/include/glib-2.0/glib/gfileutils.h
+#usr/include/glib-2.0/glib/ggettext.h
 #usr/include/glib-2.0/glib/ghash.h
+#usr/include/glib-2.0/glib/ghmac.h
 #usr/include/glib-2.0/glib/ghook.h
 #usr/include/glib-2.0/glib/ghostutils.h
 #usr/include/glib-2.0/glib/gi18n-lib.h
 #usr/include/glib-2.0/glib/gqueue.h
 #usr/include/glib-2.0/glib/grand.h
 #usr/include/glib-2.0/glib/gregex.h
-#usr/include/glib-2.0/glib/grel.h
 #usr/include/glib-2.0/glib/gscanner.h
 #usr/include/glib-2.0/glib/gsequence.h
 #usr/include/glib-2.0/glib/gshell.h
 #usr/include/glib-2.0/glib/gstdio.h
 #usr/include/glib-2.0/glib/gstrfuncs.h
 #usr/include/glib-2.0/glib/gstring.h
+#usr/include/glib-2.0/glib/gstringchunk.h
 #usr/include/glib-2.0/glib/gtestutils.h
 #usr/include/glib-2.0/glib/gthread.h
 #usr/include/glib-2.0/glib/gthreadpool.h
 #usr/include/glib-2.0/glib/gtimer.h
+#usr/include/glib-2.0/glib/gtimezone.h
+#usr/include/glib-2.0/glib/gtrashstack.h
 #usr/include/glib-2.0/glib/gtree.h
 #usr/include/glib-2.0/glib/gtypes.h
 #usr/include/glib-2.0/glib/gunicode.h
 #usr/include/glib-2.0/glib/gurifuncs.h
 #usr/include/glib-2.0/glib/gutils.h
+#usr/include/glib-2.0/glib/gvariant.h
+#usr/include/glib-2.0/glib/gvarianttype.h
+#usr/include/glib-2.0/glib/gversion.h
+#usr/include/glib-2.0/glib/gversionmacros.h
 #usr/include/glib-2.0/glib/gwin32.h
 #usr/include/glib-2.0/gmodule.h
 #usr/include/glib-2.0/gobject
+#usr/include/glib-2.0/gobject/gbinding.h
 #usr/include/glib-2.0/gobject/gboxed.h
 #usr/include/glib-2.0/gobject/gclosure.h
 #usr/include/glib-2.0/gobject/genums.h
+#usr/include/glib-2.0/gobject/glib-types.h
 #usr/include/glib-2.0/gobject/gmarshal.h
 #usr/include/glib-2.0/gobject/gobject.h
 #usr/include/glib-2.0/gobject/gobjectnotifyqueue.c
 #usr/include/glib-2.0/gobject/gvaluearray.h
 #usr/include/glib-2.0/gobject/gvaluecollector.h
 #usr/include/glib-2.0/gobject/gvaluetypes.h
+#usr/lib/gdbus-2.0
+#usr/lib/gdbus-2.0/codegen
+#usr/lib/gdbus-2.0/codegen/__init__.py
+#usr/lib/gdbus-2.0/codegen/__init__.pyc
+#usr/lib/gdbus-2.0/codegen/__init__.pyo
+#usr/lib/gdbus-2.0/codegen/codegen.py
+#usr/lib/gdbus-2.0/codegen/codegen.pyc
+#usr/lib/gdbus-2.0/codegen/codegen.pyo
+#usr/lib/gdbus-2.0/codegen/codegen_docbook.py
+#usr/lib/gdbus-2.0/codegen/codegen_docbook.pyc
+#usr/lib/gdbus-2.0/codegen/codegen_docbook.pyo
+#usr/lib/gdbus-2.0/codegen/codegen_main.py
+#usr/lib/gdbus-2.0/codegen/codegen_main.pyc
+#usr/lib/gdbus-2.0/codegen/codegen_main.pyo
+#usr/lib/gdbus-2.0/codegen/config.py
+#usr/lib/gdbus-2.0/codegen/config.pyc
+#usr/lib/gdbus-2.0/codegen/config.pyo
+#usr/lib/gdbus-2.0/codegen/dbustypes.py
+#usr/lib/gdbus-2.0/codegen/dbustypes.pyc
+#usr/lib/gdbus-2.0/codegen/dbustypes.pyo
+#usr/lib/gdbus-2.0/codegen/parser.py
+#usr/lib/gdbus-2.0/codegen/parser.pyc
+#usr/lib/gdbus-2.0/codegen/parser.pyo
+#usr/lib/gdbus-2.0/codegen/utils.py
+#usr/lib/gdbus-2.0/codegen/utils.pyc
+#usr/lib/gdbus-2.0/codegen/utils.pyo
 #usr/lib/gio
 #usr/lib/gio/modules
 #usr/lib/glib-2.0
 #usr/lib/glib-2.0/include
 #usr/lib/glib-2.0/include/glibconfig.h
 #usr/lib/libgio-2.0.la
-usr/lib/libgio-2.0.so
+#usr/lib/libgio-2.0.so
 usr/lib/libgio-2.0.so.0
-usr/lib/libgio-2.0.so.0.2200.2
+usr/lib/libgio-2.0.so.0.3200.3
 #usr/lib/libglib-2.0.la
-usr/lib/libglib-2.0.so
+#usr/lib/libglib-2.0.so
 usr/lib/libglib-2.0.so.0
-usr/lib/libglib-2.0.so.0.2200.2
+usr/lib/libglib-2.0.so.0.3200.3
 #usr/lib/libgmodule-2.0.la
-usr/lib/libgmodule-2.0.so
+#usr/lib/libgmodule-2.0.so
 usr/lib/libgmodule-2.0.so.0
-usr/lib/libgmodule-2.0.so.0.2200.2
+usr/lib/libgmodule-2.0.so.0.3200.3
 #usr/lib/libgobject-2.0.la
-usr/lib/libgobject-2.0.so
+#usr/lib/libgobject-2.0.so
 usr/lib/libgobject-2.0.so.0
-usr/lib/libgobject-2.0.so.0.2200.2
+usr/lib/libgobject-2.0.so.0.3200.3
 #usr/lib/libgthread-2.0.la
-usr/lib/libgthread-2.0.so
+#usr/lib/libgthread-2.0.so
 usr/lib/libgthread-2.0.so.0
-usr/lib/libgthread-2.0.so.0.2200.2
+usr/lib/libgthread-2.0.so.0.3200.3
 #usr/lib/pkgconfig/gio-2.0.pc
 #usr/lib/pkgconfig/gio-unix-2.0.pc
 #usr/lib/pkgconfig/glib-2.0.pc
@@ -198,31 +324,63 @@ usr/lib/libgthread-2.0.so.0.2200.2
 #usr/lib/pkgconfig/gthread-2.0.pc
 #usr/share/aclocal/glib-2.0.m4
 #usr/share/aclocal/glib-gettext.m4
+#usr/share/aclocal/gsettings.m4
 #usr/share/gdb
 #usr/share/gdb/auto-load
-usr/share/gdb/auto-load/libglib-2.0.so.0.2200.2-gdb.py
-usr/share/gdb/auto-load/libgobject-2.0.so.0.2200.2-gdb.py
+#usr/share/gdb/auto-load/libglib-2.0.so.0.3200.3-gdb.py
+#usr/share/gdb/auto-load/libgobject-2.0.so.0.3200.3-gdb.py
 #usr/share/glib-2.0
 #usr/share/glib-2.0/gdb
-usr/share/glib-2.0/gdb/glib.py
-usr/share/glib-2.0/gdb/gobject.py
+#usr/share/glib-2.0/gdb/glib.py
+#usr/share/glib-2.0/gdb/gobject.py
 #usr/share/glib-2.0/gettext
 #usr/share/glib-2.0/gettext/mkinstalldirs
 #usr/share/glib-2.0/gettext/po
 #usr/share/glib-2.0/gettext/po/Makefile.in.in
+#usr/share/glib-2.0/schemas
+#usr/share/glib-2.0/schemas/gschema.dtd
 #usr/share/gtk-doc/html/gio
+#usr/share/gtk-doc/html/gio/ExampleAnimal.html
+#usr/share/gtk-doc/html/gio/ExampleCat.html
+#usr/share/gtk-doc/html/gio/ExampleObject.html
+#usr/share/gtk-doc/html/gio/ExampleObjectManagerClient.html
+#usr/share/gtk-doc/html/gio/GAction.html
+#usr/share/gtk-doc/html/gio/GActionGroup.html
+#usr/share/gtk-doc/html/gio/GActionMap.html
 #usr/share/gtk-doc/html/gio/GAppInfo.html
+#usr/share/gtk-doc/html/gio/GApplication.html
+#usr/share/gtk-doc/html/gio/GApplicationCommandLine.html
 #usr/share/gtk-doc/html/gio/GAsyncInitable.html
 #usr/share/gtk-doc/html/gio/GAsyncResult.html
 #usr/share/gtk-doc/html/gio/GBufferedInputStream.html
 #usr/share/gtk-doc/html/gio/GBufferedOutputStream.html
 #usr/share/gtk-doc/html/gio/GCancellable.html
+#usr/share/gtk-doc/html/gio/GCharsetConverter.html
+#usr/share/gtk-doc/html/gio/GConverter.html
+#usr/share/gtk-doc/html/gio/GCredentials.html
+#usr/share/gtk-doc/html/gio/GDBusActionGroup.html
+#usr/share/gtk-doc/html/gio/GDBusAuthObserver.html
+#usr/share/gtk-doc/html/gio/GDBusConnection.html
+#usr/share/gtk-doc/html/gio/GDBusInterface.html
+#usr/share/gtk-doc/html/gio/GDBusInterfaceSkeleton.html
+#usr/share/gtk-doc/html/gio/GDBusMenuModel.html
+#usr/share/gtk-doc/html/gio/GDBusMessage.html
+#usr/share/gtk-doc/html/gio/GDBusMethodInvocation.html
+#usr/share/gtk-doc/html/gio/GDBusObject.html
+#usr/share/gtk-doc/html/gio/GDBusObjectManager.html
+#usr/share/gtk-doc/html/gio/GDBusObjectManagerClient.html
+#usr/share/gtk-doc/html/gio/GDBusObjectManagerServer.html
+#usr/share/gtk-doc/html/gio/GDBusObjectProxy.html
+#usr/share/gtk-doc/html/gio/GDBusObjectSkeleton.html
+#usr/share/gtk-doc/html/gio/GDBusProxy.html
+#usr/share/gtk-doc/html/gio/GDBusServer.html
 #usr/share/gtk-doc/html/gio/GDataInputStream.html
 #usr/share/gtk-doc/html/gio/GDataOutputStream.html
 #usr/share/gtk-doc/html/gio/GDrive.html
 #usr/share/gtk-doc/html/gio/GEmblem.html
 #usr/share/gtk-doc/html/gio/GEmblemedIcon.html
 #usr/share/gtk-doc/html/gio/GFile.html
+#usr/share/gtk-doc/html/gio/GFileDescriptorBased.html
 #usr/share/gtk-doc/html/gio/GFileEnumerator.html
 #usr/share/gtk-doc/html/gio/GFileIOStream.html
 #usr/share/gtk-doc/html/gio/GFileIcon.html
@@ -243,14 +401,29 @@ usr/share/glib-2.0/gdb/gobject.py
 #usr/share/gtk-doc/html/gio/GLoadableIcon.html
 #usr/share/gtk-doc/html/gio/GMemoryInputStream.html
 #usr/share/gtk-doc/html/gio/GMemoryOutputStream.html
+#usr/share/gtk-doc/html/gio/GMenu.html
+#usr/share/gtk-doc/html/gio/GMenuModel.html
 #usr/share/gtk-doc/html/gio/GMount.html
 #usr/share/gtk-doc/html/gio/GMountOperation.html
 #usr/share/gtk-doc/html/gio/GNetworkAddress.html
+#usr/share/gtk-doc/html/gio/GNetworkMonitor.html
 #usr/share/gtk-doc/html/gio/GNetworkService.html
 #usr/share/gtk-doc/html/gio/GOutputStream.html
+#usr/share/gtk-doc/html/gio/GPermission.html
+#usr/share/gtk-doc/html/gio/GPollableInputStream.html
+#usr/share/gtk-doc/html/gio/GPollableOutputStream.html
+#usr/share/gtk-doc/html/gio/GProxy.html
+#usr/share/gtk-doc/html/gio/GProxyAddress.html
+#usr/share/gtk-doc/html/gio/GProxyResolver.html
+#usr/share/gtk-doc/html/gio/GRemoteActionGroup.html
 #usr/share/gtk-doc/html/gio/GResolver.html
 #usr/share/gtk-doc/html/gio/GSeekable.html
+#usr/share/gtk-doc/html/gio/GSettings.html
+#usr/share/gtk-doc/html/gio/GSettingsBackend.html
+#usr/share/gtk-doc/html/gio/GSimpleAction.html
+#usr/share/gtk-doc/html/gio/GSimpleActionGroup.html
 #usr/share/gtk-doc/html/gio/GSimpleAsyncResult.html
+#usr/share/gtk-doc/html/gio/GSimplePermission.html
 #usr/share/gtk-doc/html/gio/GSocket.html
 #usr/share/gtk-doc/html/gio/GSocketAddress.html
 #usr/share/gtk-doc/html/gio/GSocketClient.html
@@ -259,8 +432,23 @@ usr/share/glib-2.0/gdb/gobject.py
 #usr/share/gtk-doc/html/gio/GSocketControlMessage.html
 #usr/share/gtk-doc/html/gio/GSocketListener.html
 #usr/share/gtk-doc/html/gio/GSocketService.html
+#usr/share/gtk-doc/html/gio/GSrvTarget.html
+#usr/share/gtk-doc/html/gio/GTcpConnection.html
+#usr/share/gtk-doc/html/gio/GTcpWrapperConnection.html
 #usr/share/gtk-doc/html/gio/GThemedIcon.html
 #usr/share/gtk-doc/html/gio/GThreadedSocketService.html
+#usr/share/gtk-doc/html/gio/GTlsBackend.html
+#usr/share/gtk-doc/html/gio/GTlsCertificate.html
+#usr/share/gtk-doc/html/gio/GTlsClientConnection.html
+#usr/share/gtk-doc/html/gio/GTlsConnection.html
+#usr/share/gtk-doc/html/gio/GTlsDatabase.html
+#usr/share/gtk-doc/html/gio/GTlsFileDatabase.html
+#usr/share/gtk-doc/html/gio/GTlsInteraction.html
+#usr/share/gtk-doc/html/gio/GTlsPassword.html
+#usr/share/gtk-doc/html/gio/GTlsServerConnection.html
+#usr/share/gtk-doc/html/gio/GUnixConnection.html
+#usr/share/gtk-doc/html/gio/GUnixCredentialsMessage.html
+#usr/share/gtk-doc/html/gio/GUnixFDList.html
 #usr/share/gtk-doc/html/gio/GUnixFDMessage.html
 #usr/share/gtk-doc/html/gio/GUnixInputStream.html
 #usr/share/gtk-doc/html/gio/GUnixOutputStream.html
@@ -268,55 +456,129 @@ usr/share/glib-2.0/gdb/gobject.py
 #usr/share/gtk-doc/html/gio/GVfs.html
 #usr/share/gtk-doc/html/gio/GVolume.html
 #usr/share/gtk-doc/html/gio/GVolumeMonitor.html
+#usr/share/gtk-doc/html/gio/GZlibCompressor.html
+#usr/share/gtk-doc/html/gio/GZlibDecompressor.html
+#usr/share/gtk-doc/html/gio/annotation-glossary.html
+#usr/share/gtk-doc/html/gio/api-index-2-18.html
+#usr/share/gtk-doc/html/gio/api-index-2-20.html
+#usr/share/gtk-doc/html/gio/api-index-2-22.html
+#usr/share/gtk-doc/html/gio/api-index-2-24.html
+#usr/share/gtk-doc/html/gio/api-index-2-26.html
+#usr/share/gtk-doc/html/gio/api-index-2-28.html
+#usr/share/gtk-doc/html/gio/api-index-2-30.html
+#usr/share/gtk-doc/html/gio/api-index-2-32.html
+#usr/share/gtk-doc/html/gio/api-index-deprecated.html
+#usr/share/gtk-doc/html/gio/api-index-full.html
+#usr/share/gtk-doc/html/gio/application.html
 #usr/share/gtk-doc/html/gio/async.html
 #usr/share/gtk-doc/html/gio/ch01.html
 #usr/share/gtk-doc/html/gio/ch02.html
 #usr/share/gtk-doc/html/gio/ch03.html
-#usr/share/gtk-doc/html/gio/ch18.html
-#usr/share/gtk-doc/html/gio/ch19.html
-#usr/share/gtk-doc/html/gio/ch19s02.html
-#usr/share/gtk-doc/html/gio/ch19s03.html
+#usr/share/gtk-doc/html/gio/ch27.html
+#usr/share/gtk-doc/html/gio/ch28.html
+#usr/share/gtk-doc/html/gio/ch28s02.html
+#usr/share/gtk-doc/html/gio/ch28s03.html
+#usr/share/gtk-doc/html/gio/ch29.html
+#usr/share/gtk-doc/html/gio/ch29s02.html
+#usr/share/gtk-doc/html/gio/ch29s03.html
+#usr/share/gtk-doc/html/gio/ch29s04.html
+#usr/share/gtk-doc/html/gio/ch29s05.html
+#usr/share/gtk-doc/html/gio/ch29s06.html
+#usr/share/gtk-doc/html/gio/ch29s07.html
+#usr/share/gtk-doc/html/gio/ch30.html
+#usr/share/gtk-doc/html/gio/ch30s02.html
+#usr/share/gtk-doc/html/gio/ch30s03.html
+#usr/share/gtk-doc/html/gio/ch30s04.html
+#usr/share/gtk-doc/html/gio/ch30s05.html
+#usr/share/gtk-doc/html/gio/conversion.html
 #usr/share/gtk-doc/html/gio/extending-gio.html
 #usr/share/gtk-doc/html/gio/extending.html
 #usr/share/gtk-doc/html/gio/failable_initialization.html
 #usr/share/gtk-doc/html/gio/file_mon.html
 #usr/share/gtk-doc/html/gio/file_ops.html
+#usr/share/gtk-doc/html/gio/gdbus-codegen.html
+#usr/share/gtk-doc/html/gio/gdbus-convenience.html
+#usr/share/gtk-doc/html/gio/gdbus-lowlevel.html
+#usr/share/gtk-doc/html/gio/gdbus-org.gtk.GDBus.Example.ObjectManager.Animal.html
+#usr/share/gtk-doc/html/gio/gdbus-org.gtk.GDBus.Example.ObjectManager.Cat.html
+#usr/share/gtk-doc/html/gio/gdbus.html
+#usr/share/gtk-doc/html/gio/gio-D-Bus-Addresses.html
+#usr/share/gtk-doc/html/gio/gio-D-Bus-Introspection-Data.html
+#usr/share/gtk-doc/html/gio/gio-D-Bus-Utilities.html
 #usr/share/gtk-doc/html/gio/gio-Desktop-file-based-GAppInfo.html
 #usr/share/gtk-doc/html/gio/gio-Extension-Points.html
+#usr/share/gtk-doc/html/gio/gio-GActionGroup-exporter.html
 #usr/share/gtk-doc/html/gio/gio-GContentType.html
+#usr/share/gtk-doc/html/gio/gio-GConverterInputstream.html
+#usr/share/gtk-doc/html/gio/gio-GConverterOutputstream.html
+#usr/share/gtk-doc/html/gio/gio-GDBusError.html
 #usr/share/gtk-doc/html/gio/gio-GFileAttribute.html
 #usr/share/gtk-doc/html/gio/gio-GIOError.html
 #usr/share/gtk-doc/html/gio/gio-GIOScheduler.html
-#usr/share/gtk-doc/html/gio/gio-GSrvTarget.html
+#usr/share/gtk-doc/html/gio/gio-GInetAddressMask.html
+#usr/share/gtk-doc/html/gio/gio-GMenuModel-exporter.html
+#usr/share/gtk-doc/html/gio/gio-GResource.html
+#usr/share/gtk-doc/html/gio/gio-GSettingsSchema-GSettingsSchemaSource.html
+#usr/share/gtk-doc/html/gio/gio-GWin32InputStream.html
+#usr/share/gtk-doc/html/gio/gio-GWin32OutputStream.html
+#usr/share/gtk-doc/html/gio/gio-Owning-Bus-Names.html
+#usr/share/gtk-doc/html/gio/gio-TLS-Overview.html
 #usr/share/gtk-doc/html/gio/gio-Unix-Mounts.html
+#usr/share/gtk-doc/html/gio/gio-Watching-Bus-Names.html
 #usr/share/gtk-doc/html/gio/gio-hierarchy.html
-#usr/share/gtk-doc/html/gio/gio.devhelp
+#usr/share/gtk-doc/html/gio/gio-querymodules.html
 #usr/share/gtk-doc/html/gio/gio.devhelp2
+#usr/share/gtk-doc/html/gio/glib-compile-resources.html
+#usr/share/gtk-doc/html/gio/glib-compile-schemas.html
+#usr/share/gtk-doc/html/gio/gresource-tool.html
+#usr/share/gtk-doc/html/gio/gsettings-tool.html
 #usr/share/gtk-doc/html/gio/gvfs-overview.png
 #usr/share/gtk-doc/html/gio/highlevel-socket.html
 #usr/share/gtk-doc/html/gio/home.png
 #usr/share/gtk-doc/html/gio/icons.html
 #usr/share/gtk-doc/html/gio/index.html
 #usr/share/gtk-doc/html/gio/index.sgml
-#usr/share/gtk-doc/html/gio/ix01.html
-#usr/share/gtk-doc/html/gio/ix02.html
-#usr/share/gtk-doc/html/gio/ix03.html
-#usr/share/gtk-doc/html/gio/ix04.html
-#usr/share/gtk-doc/html/gio/ix05.html
 #usr/share/gtk-doc/html/gio/left.png
+#usr/share/gtk-doc/html/gio/menu-example.png
+#usr/share/gtk-doc/html/gio/menu-model.png
 #usr/share/gtk-doc/html/gio/migrating.html
 #usr/share/gtk-doc/html/gio/networking.html
+#usr/share/gtk-doc/html/gio/permissions.html
 #usr/share/gtk-doc/html/gio/pt01.html
 #usr/share/gtk-doc/html/gio/pt02.html
 #usr/share/gtk-doc/html/gio/resolver.html
+#usr/share/gtk-doc/html/gio/resources.html
 #usr/share/gtk-doc/html/gio/right.png
+#usr/share/gtk-doc/html/gio/settings.html
 #usr/share/gtk-doc/html/gio/streaming.html
 #usr/share/gtk-doc/html/gio/style.css
+#usr/share/gtk-doc/html/gio/tls.html
+#usr/share/gtk-doc/html/gio/tools.html
 #usr/share/gtk-doc/html/gio/types.html
 #usr/share/gtk-doc/html/gio/up.png
 #usr/share/gtk-doc/html/gio/utils.html
 #usr/share/gtk-doc/html/gio/volume_mon.html
 #usr/share/gtk-doc/html/glib
+#usr/share/gtk-doc/html/glib/annotation-glossary.html
+#usr/share/gtk-doc/html/glib/api-index-2-10.html
+#usr/share/gtk-doc/html/glib/api-index-2-12.html
+#usr/share/gtk-doc/html/glib/api-index-2-14.html
+#usr/share/gtk-doc/html/glib/api-index-2-16.html
+#usr/share/gtk-doc/html/glib/api-index-2-18.html
+#usr/share/gtk-doc/html/glib/api-index-2-2.html
+#usr/share/gtk-doc/html/glib/api-index-2-20.html
+#usr/share/gtk-doc/html/glib/api-index-2-22.html
+#usr/share/gtk-doc/html/glib/api-index-2-24.html
+#usr/share/gtk-doc/html/glib/api-index-2-26.html
+#usr/share/gtk-doc/html/glib/api-index-2-28.html
+#usr/share/gtk-doc/html/glib/api-index-2-30.html
+#usr/share/gtk-doc/html/glib/api-index-2-32.html
+#usr/share/gtk-doc/html/glib/api-index-2-4.html
+#usr/share/gtk-doc/html/glib/api-index-2-6.html
+#usr/share/gtk-doc/html/glib/api-index-2-8.html
+#usr/share/gtk-doc/html/glib/api-index-deprecated.html
+#usr/share/gtk-doc/html/glib/api-index-full.html
+#usr/share/gtk-doc/html/glib/deprecated.html
 #usr/share/gtk-doc/html/glib/file-name-encodings.png
 #usr/share/gtk-doc/html/glib/glib-Arrays.html
 #usr/share/gtk-doc/html/glib/glib-Asynchronous-Queues.html
@@ -332,13 +594,19 @@ usr/share/glib-2.0/gdb/gobject.py
 #usr/share/gtk-doc/html/glib/glib-Character-Set-Conversion.html
 #usr/share/gtk-doc/html/glib/glib-Commandline-option-parser.html
 #usr/share/gtk-doc/html/glib/glib-Data-Checksums.html
+#usr/share/gtk-doc/html/glib/glib-Data-HMACs.html
 #usr/share/gtk-doc/html/glib/glib-Datasets.html
 #usr/share/gtk-doc/html/glib/glib-Date-and-Time-Functions.html
+#usr/share/gtk-doc/html/glib/glib-Deprecated-Thread-APIs.html
 #usr/share/gtk-doc/html/glib/glib-Double-ended-Queues.html
 #usr/share/gtk-doc/html/glib/glib-Doubly-Linked-Lists.html
 #usr/share/gtk-doc/html/glib/glib-Dynamic-Loading-of-Modules.html
 #usr/share/gtk-doc/html/glib/glib-Error-Reporting.html
 #usr/share/gtk-doc/html/glib/glib-File-Utilities.html
+#usr/share/gtk-doc/html/glib/glib-GDateTime.html
+#usr/share/gtk-doc/html/glib/glib-GTimeZone.html
+#usr/share/gtk-doc/html/glib/glib-GVariant.html
+#usr/share/gtk-doc/html/glib/glib-GVariantType.html
 #usr/share/gtk-doc/html/glib/glib-Glob-style-pattern-matching.html
 #usr/share/gtk-doc/html/glib/glib-Hash-Tables.html
 #usr/share/gtk-doc/html/glib/glib-Hook-Functions.html
@@ -348,10 +616,7 @@ usr/share/glib-2.0/gdb/gobject.py
 #usr/share/gtk-doc/html/glib/glib-Key-value-file-parser.html
 #usr/share/gtk-doc/html/glib/glib-Keyed-Data-Lists.html
 #usr/share/gtk-doc/html/glib/glib-Lexical-Scanner.html
-#usr/share/gtk-doc/html/glib/glib-Limits-of-Basic-Types.html
 #usr/share/gtk-doc/html/glib/glib-Memory-Allocation.html
-#usr/share/gtk-doc/html/glib/glib-Memory-Allocators.html
-#usr/share/gtk-doc/html/glib/glib-Memory-Chunks.html
 #usr/share/gtk-doc/html/glib/glib-Memory-Slices.html
 #usr/share/gtk-doc/html/glib/glib-Message-Logging.html
 #usr/share/gtk-doc/html/glib/glib-Miscellaneous-Macros.html
@@ -379,6 +644,7 @@ usr/share/glib-2.0/gdb/gobject.py
 #usr/share/gtk-doc/html/glib/glib-Timers.html
 #usr/share/gtk-doc/html/glib/glib-Trash-Stacks.html
 #usr/share/gtk-doc/html/glib/glib-Type-Conversion-Macros.html
+#usr/share/gtk-doc/html/glib/glib-UNIX-specific-utilities-and-integration.html
 #usr/share/gtk-doc/html/glib/glib-URI-Functions.html
 #usr/share/gtk-doc/html/glib/glib-Unicode-Manipulation.html
 #usr/share/gtk-doc/html/glib/glib-Version-Information.html
@@ -396,27 +662,15 @@ usr/share/glib-2.0/gdb/gobject.py
 #usr/share/gtk-doc/html/glib/glib-resources.html
 #usr/share/gtk-doc/html/glib/glib-running.html
 #usr/share/gtk-doc/html/glib/glib-utilities.html
-#usr/share/gtk-doc/html/glib/glib.devhelp
 #usr/share/gtk-doc/html/glib/glib.devhelp2
 #usr/share/gtk-doc/html/glib/glib.html
 #usr/share/gtk-doc/html/glib/gtester-report.html
 #usr/share/gtk-doc/html/glib/gtester.html
+#usr/share/gtk-doc/html/glib/gvariant-format-strings.html
+#usr/share/gtk-doc/html/glib/gvariant-text.html
 #usr/share/gtk-doc/html/glib/home.png
 #usr/share/gtk-doc/html/glib/index.html
 #usr/share/gtk-doc/html/glib/index.sgml
-#usr/share/gtk-doc/html/glib/ix01.html
-#usr/share/gtk-doc/html/glib/ix02.html
-#usr/share/gtk-doc/html/glib/ix03.html
-#usr/share/gtk-doc/html/glib/ix04.html
-#usr/share/gtk-doc/html/glib/ix05.html
-#usr/share/gtk-doc/html/glib/ix06.html
-#usr/share/gtk-doc/html/glib/ix07.html
-#usr/share/gtk-doc/html/glib/ix08.html
-#usr/share/gtk-doc/html/glib/ix09.html
-#usr/share/gtk-doc/html/glib/ix10.html
-#usr/share/gtk-doc/html/glib/ix11.html
-#usr/share/gtk-doc/html/glib/ix12.html
-#usr/share/gtk-doc/html/glib/ix13.html
 #usr/share/gtk-doc/html/glib/left.png
 #usr/share/gtk-doc/html/glib/mainloop-states.gif
 #usr/share/gtk-doc/html/glib/right.png
@@ -424,8 +678,26 @@ usr/share/glib-2.0/gdb/gobject.py
 #usr/share/gtk-doc/html/glib/tools.html
 #usr/share/gtk-doc/html/glib/up.png
 #usr/share/gtk-doc/html/gobject
+#usr/share/gtk-doc/html/gobject/GBinding.html
 #usr/share/gtk-doc/html/gobject/GTypeModule.html
 #usr/share/gtk-doc/html/gobject/GTypePlugin.html
+#usr/share/gtk-doc/html/gobject/annotation-glossary.html
+#usr/share/gtk-doc/html/gobject/api-index-2-10.html
+#usr/share/gtk-doc/html/gobject/api-index-2-12.html
+#usr/share/gtk-doc/html/gobject/api-index-2-14.html
+#usr/share/gtk-doc/html/gobject/api-index-2-18.html
+#usr/share/gtk-doc/html/gobject/api-index-2-2.html
+#usr/share/gtk-doc/html/gobject/api-index-2-22.html
+#usr/share/gtk-doc/html/gobject/api-index-2-24.html
+#usr/share/gtk-doc/html/gobject/api-index-2-26.html
+#usr/share/gtk-doc/html/gobject/api-index-2-28.html
+#usr/share/gtk-doc/html/gobject/api-index-2-30.html
+#usr/share/gtk-doc/html/gobject/api-index-2-32.html
+#usr/share/gtk-doc/html/gobject/api-index-2-4.html
+#usr/share/gtk-doc/html/gobject/api-index-2-6.html
+#usr/share/gtk-doc/html/gobject/api-index-2-8.html
+#usr/share/gtk-doc/html/gobject/api-index-deprecated.html
+#usr/share/gtk-doc/html/gobject/api-index-full.html
 #usr/share/gtk-doc/html/gobject/ch01s02.html
 #usr/share/gtk-doc/html/gobject/ch06s03.html
 #usr/share/gtk-doc/html/gobject/chapter-gobject.html
@@ -449,7 +721,6 @@ usr/share/glib-2.0/gdb/gobject.py
 #usr/share/gtk-doc/html/gobject/gobject-memory.html
 #usr/share/gtk-doc/html/gobject/gobject-properties.html
 #usr/share/gtk-doc/html/gobject/gobject-query.html
-#usr/share/gtk-doc/html/gobject/gobject.devhelp
 #usr/share/gtk-doc/html/gobject/gobject.devhelp2
 #usr/share/gtk-doc/html/gobject/gtype-conventions.html
 #usr/share/gtk-doc/html/gobject/gtype-instantiable-classed.html
@@ -468,17 +739,6 @@ usr/share/glib-2.0/gdb/gobject.py
 #usr/share/gtk-doc/html/gobject/howto-signals.html
 #usr/share/gtk-doc/html/gobject/index.html
 #usr/share/gtk-doc/html/gobject/index.sgml
-#usr/share/gtk-doc/html/gobject/ix01.html
-#usr/share/gtk-doc/html/gobject/ix02.html
-#usr/share/gtk-doc/html/gobject/ix03.html
-#usr/share/gtk-doc/html/gobject/ix04.html
-#usr/share/gtk-doc/html/gobject/ix05.html
-#usr/share/gtk-doc/html/gobject/ix06.html
-#usr/share/gtk-doc/html/gobject/ix07.html
-#usr/share/gtk-doc/html/gobject/ix08.html
-#usr/share/gtk-doc/html/gobject/ix09.html
-#usr/share/gtk-doc/html/gobject/ix10.html
-#usr/share/gtk-doc/html/gobject/ix11.html
 #usr/share/gtk-doc/html/gobject/left.png
 #usr/share/gtk-doc/html/gobject/pr01.html
 #usr/share/gtk-doc/html/gobject/pt01.html
@@ -495,11 +755,21 @@ usr/share/glib-2.0/gdb/gobject.py
 #usr/share/gtk-doc/html/gobject/tools-refdb.html
 #usr/share/gtk-doc/html/gobject/tools-vala.html
 #usr/share/gtk-doc/html/gobject/up.png
+#usr/share/locale/af
+#usr/share/locale/af/LC_MESSAGES
+#usr/share/locale/af/LC_MESSAGES/glib20.mo
 #usr/share/locale/am
 #usr/share/locale/am/LC_MESSAGES
 #usr/share/locale/am/LC_MESSAGES/glib20.mo
+#usr/share/locale/ar
+#usr/share/locale/ar/LC_MESSAGES
 #usr/share/locale/ar/LC_MESSAGES/glib20.mo
+#usr/share/locale/as
+#usr/share/locale/as/LC_MESSAGES
 #usr/share/locale/as/LC_MESSAGES/glib20.mo
+#usr/share/locale/ast
+#usr/share/locale/ast/LC_MESSAGES
+#usr/share/locale/ast/LC_MESSAGES/glib20.mo
 #usr/share/locale/az
 #usr/share/locale/az/LC_MESSAGES
 #usr/share/locale/az/LC_MESSAGES/glib20.mo
@@ -508,7 +778,11 @@ usr/share/glib-2.0/gdb/gobject.py
 #usr/share/locale/be@latin/LC_MESSAGES
 #usr/share/locale/be@latin/LC_MESSAGES/glib20.mo
 #usr/share/locale/bg/LC_MESSAGES/glib20.mo
+#usr/share/locale/bn
+#usr/share/locale/bn/LC_MESSAGES
 #usr/share/locale/bn/LC_MESSAGES/glib20.mo
+#usr/share/locale/bn_IN
+#usr/share/locale/bn_IN/LC_MESSAGES
 #usr/share/locale/bn_IN/LC_MESSAGES/glib20.mo
 #usr/share/locale/bs/LC_MESSAGES/glib20.mo
 #usr/share/locale/ca/LC_MESSAGES/glib20.mo
@@ -516,6 +790,8 @@ usr/share/glib-2.0/gdb/gobject.py
 #usr/share/locale/ca@valencia/LC_MESSAGES
 #usr/share/locale/ca@valencia/LC_MESSAGES/glib20.mo
 #usr/share/locale/cs/LC_MESSAGES/glib20.mo
+#usr/share/locale/cy
+#usr/share/locale/cy/LC_MESSAGES
 #usr/share/locale/cy/LC_MESSAGES/glib20.mo
 #usr/share/locale/da/LC_MESSAGES/glib20.mo
 #usr/share/locale/de/LC_MESSAGES/glib20.mo
@@ -523,8 +799,9 @@ usr/share/glib-2.0/gdb/gobject.py
 #usr/share/locale/dz/LC_MESSAGES
 #usr/share/locale/dz/LC_MESSAGES/glib20.mo
 #usr/share/locale/el/LC_MESSAGES/glib20.mo
-#usr/share/locale/en_CA
-#usr/share/locale/en_CA/LC_MESSAGES
+#usr/share/locale/en@shaw
+#usr/share/locale/en@shaw/LC_MESSAGES
+#usr/share/locale/en@shaw/LC_MESSAGES/glib20.mo
 #usr/share/locale/en_CA/LC_MESSAGES/glib20.mo
 #usr/share/locale/en_GB/LC_MESSAGES/glib20.mo
 #usr/share/locale/eo
@@ -540,25 +817,44 @@ usr/share/glib-2.0/gdb/gobject.py
 #usr/share/locale/fa/LC_MESSAGES/glib20.mo
 #usr/share/locale/fi/LC_MESSAGES/glib20.mo
 #usr/share/locale/fr/LC_MESSAGES/glib20.mo
-#usr/share/locale/ga
-#usr/share/locale/ga/LC_MESSAGES
 #usr/share/locale/ga/LC_MESSAGES/glib20.mo
 #usr/share/locale/gl/LC_MESSAGES/glib20.mo
+#usr/share/locale/gu
+#usr/share/locale/gu/LC_MESSAGES
 #usr/share/locale/gu/LC_MESSAGES/glib20.mo
+#usr/share/locale/he
+#usr/share/locale/he/LC_MESSAGES
 #usr/share/locale/he/LC_MESSAGES/glib20.mo
+#usr/share/locale/hi
+#usr/share/locale/hi/LC_MESSAGES
 #usr/share/locale/hi/LC_MESSAGES/glib20.mo
 #usr/share/locale/hr/LC_MESSAGES/glib20.mo
 #usr/share/locale/hu/LC_MESSAGES/glib20.mo
+#usr/share/locale/hy
+#usr/share/locale/hy/LC_MESSAGES
 #usr/share/locale/hy/LC_MESSAGES/glib20.mo
 #usr/share/locale/id/LC_MESSAGES/glib20.mo
+#usr/share/locale/is
+#usr/share/locale/is/LC_MESSAGES
 #usr/share/locale/is/LC_MESSAGES/glib20.mo
 #usr/share/locale/it/LC_MESSAGES/glib20.mo
 #usr/share/locale/ja/LC_MESSAGES/glib20.mo
+#usr/share/locale/ka
+#usr/share/locale/ka/LC_MESSAGES
 #usr/share/locale/ka/LC_MESSAGES/glib20.mo
+#usr/share/locale/kk
+#usr/share/locale/kk/LC_MESSAGES
+#usr/share/locale/kk/LC_MESSAGES/glib20.mo
+#usr/share/locale/kn
+#usr/share/locale/kn/LC_MESSAGES
 #usr/share/locale/kn/LC_MESSAGES/glib20.mo
 #usr/share/locale/ko/LC_MESSAGES/glib20.mo
+#usr/share/locale/ku
+#usr/share/locale/ku/LC_MESSAGES
 #usr/share/locale/ku/LC_MESSAGES/glib20.mo
 #usr/share/locale/lt/LC_MESSAGES/glib20.mo
+#usr/share/locale/lv
+#usr/share/locale/lv/LC_MESSAGES
 #usr/share/locale/lv/LC_MESSAGES/glib20.mo
 #usr/share/locale/mai
 #usr/share/locale/mai/LC_MESSAGES
@@ -566,23 +862,40 @@ usr/share/glib-2.0/gdb/gobject.py
 #usr/share/locale/mg
 #usr/share/locale/mg/LC_MESSAGES
 #usr/share/locale/mg/LC_MESSAGES/glib20.mo
+#usr/share/locale/mk
+#usr/share/locale/mk/LC_MESSAGES
 #usr/share/locale/mk/LC_MESSAGES/glib20.mo
+#usr/share/locale/ml
+#usr/share/locale/ml/LC_MESSAGES
 #usr/share/locale/ml/LC_MESSAGES/glib20.mo
 #usr/share/locale/mn
 #usr/share/locale/mn/LC_MESSAGES
 #usr/share/locale/mn/LC_MESSAGES/glib20.mo
+#usr/share/locale/mr
+#usr/share/locale/mr/LC_MESSAGES
 #usr/share/locale/mr/LC_MESSAGES/glib20.mo
+#usr/share/locale/ms
+#usr/share/locale/ms/LC_MESSAGES
 #usr/share/locale/ms/LC_MESSAGES/glib20.mo
 #usr/share/locale/nb/LC_MESSAGES/glib20.mo
+#usr/share/locale/nds
+#usr/share/locale/nds/LC_MESSAGES
+#usr/share/locale/nds/LC_MESSAGES/glib20.mo
 #usr/share/locale/ne
 #usr/share/locale/ne/LC_MESSAGES
 #usr/share/locale/ne/LC_MESSAGES/glib20.mo
 #usr/share/locale/nl/LC_MESSAGES/glib20.mo
+#usr/share/locale/nn
+#usr/share/locale/nn/LC_MESSAGES
 #usr/share/locale/nn/LC_MESSAGES/glib20.mo
 #usr/share/locale/oc
 #usr/share/locale/oc/LC_MESSAGES
 #usr/share/locale/oc/LC_MESSAGES/glib20.mo
+#usr/share/locale/or
+#usr/share/locale/or/LC_MESSAGES
 #usr/share/locale/or/LC_MESSAGES/glib20.mo
+#usr/share/locale/pa
+#usr/share/locale/pa/LC_MESSAGES
 #usr/share/locale/pa/LC_MESSAGES/glib20.mo
 #usr/share/locale/pl/LC_MESSAGES/glib20.mo
 #usr/share/locale/ps
@@ -592,9 +905,9 @@ usr/share/glib-2.0/gdb/gobject.py
 #usr/share/locale/pt_BR/LC_MESSAGES/glib20.mo
 #usr/share/locale/ro/LC_MESSAGES/glib20.mo
 #usr/share/locale/ru/LC_MESSAGES/glib20.mo
-#usr/share/locale/rw
-#usr/share/locale/rw/LC_MESSAGES
 #usr/share/locale/rw/LC_MESSAGES/glib20.mo
+#usr/share/locale/si
+#usr/share/locale/si/LC_MESSAGES
 #usr/share/locale/si/LC_MESSAGES/glib20.mo
 #usr/share/locale/sk/LC_MESSAGES/glib20.mo
 #usr/share/locale/sl/LC_MESSAGES/glib20.mo
@@ -607,7 +920,11 @@ usr/share/glib-2.0/gdb/gobject.py
 #usr/share/locale/sr@latin/LC_MESSAGES
 #usr/share/locale/sr@latin/LC_MESSAGES/glib20.mo
 #usr/share/locale/sv/LC_MESSAGES/glib20.mo
+#usr/share/locale/ta
+#usr/share/locale/ta/LC_MESSAGES
 #usr/share/locale/ta/LC_MESSAGES/glib20.mo
+#usr/share/locale/te
+#usr/share/locale/te/LC_MESSAGES
 #usr/share/locale/te/LC_MESSAGES/glib20.mo
 #usr/share/locale/th
 #usr/share/locale/th/LC_MESSAGES
@@ -619,8 +936,13 @@ usr/share/glib-2.0/gdb/gobject.py
 #usr/share/locale/tt
 #usr/share/locale/tt/LC_MESSAGES
 #usr/share/locale/tt/LC_MESSAGES/glib20.mo
+#usr/share/locale/ug
+#usr/share/locale/ug/LC_MESSAGES
+#usr/share/locale/ug/LC_MESSAGES/glib20.mo
 #usr/share/locale/uk/LC_MESSAGES/glib20.mo
 #usr/share/locale/vi/LC_MESSAGES/glib20.mo
+#usr/share/locale/wa
+#usr/share/locale/wa/LC_MESSAGES
 #usr/share/locale/wa/LC_MESSAGES/glib20.mo
 #usr/share/locale/xh
 #usr/share/locale/xh/LC_MESSAGES
@@ -633,9 +955,16 @@ usr/share/glib-2.0/gdb/gobject.py
 #usr/share/locale/zh_HK/LC_MESSAGES
 #usr/share/locale/zh_HK/LC_MESSAGES/glib20.mo
 #usr/share/locale/zh_TW/LC_MESSAGES/glib20.mo
+#usr/share/man/man1/gdbus-codegen.1
+#usr/share/man/man1/gdbus.1
+#usr/share/man/man1/gio-querymodules.1
+#usr/share/man/man1/glib-compile-resources.1
+#usr/share/man/man1/glib-compile-schemas.1
 #usr/share/man/man1/glib-genmarshal.1
 #usr/share/man/man1/glib-gettextize.1
 #usr/share/man/man1/glib-mkenums.1
 #usr/share/man/man1/gobject-query.1
+#usr/share/man/man1/gresource.1
+#usr/share/man/man1/gsettings.1
 #usr/share/man/man1/gtester-report.1
 #usr/share/man/man1/gtester.1
index 669d1913333406597061f7cdaef41614eed9e4d1..67f557fbb5888fbbcb61262d10da936b15505618 100644 (file)
@@ -1,21 +1,21 @@
 #usr/include/gmp.h
 #usr/include/gmpxx.h
 #usr/include/mp.h
-#usr/info/gmp.info
-#usr/info/gmp.info-1
-#usr/info/gmp.info-2
 #usr/lib/libgmp.a
 #usr/lib/libgmp.la
-usr/lib/libgmp.so
-usr/lib/libgmp.so.3
-usr/lib/libgmp.so.3.4.4
+#usr/lib/libgmp.so
+usr/lib/libgmp.so.10
+usr/lib/libgmp.so.10.0.5
 #usr/lib/libgmpxx.a
 #usr/lib/libgmpxx.la
 #usr/lib/libgmpxx.so
-#usr/lib/libgmpxx.so.4
-#usr/lib/libgmpxx.so.4.0.4
+usr/lib/libgmpxx.so.4
+usr/lib/libgmpxx.so.4.2.5
 #usr/lib/libmp.a
 #usr/lib/libmp.la
 #usr/lib/libmp.so
-#usr/lib/libmp.so.3
-#usr/lib/libmp.so.3.1.13
+usr/lib/libmp.so.3
+usr/lib/libmp.so.3.1.25
+#usr/share/info/gmp.info
+#usr/share/info/gmp.info-1
+#usr/share/info/gmp.info-2
diff --git a/config/rootfiles/common/gmp-compat b/config/rootfiles/common/gmp-compat
new file mode 100644 (file)
index 0000000..a4b82f2
--- /dev/null
@@ -0,0 +1,2 @@
+usr/lib/libgmp.so.3
+usr/lib/libgmp.so.3.5.2
index 616ed05c0bf3ad37604b78ed80a817862d9fe4eb..9aecc418a3294ec51a8ecff932b9e3a4e9d17dd3 100644 (file)
@@ -2,18 +2,17 @@ usr/bin/gpg
 #usr/bin/gpg-zip
 #usr/bin/gpgsplit
 #usr/bin/gpgv
-#usr/info/gpg.info
-#usr/info/gpgv.info
 #usr/lib/gnupg
 usr/lib/gnupg/gpgkeys_curl
 usr/lib/gnupg/gpgkeys_finger
 usr/lib/gnupg/gpgkeys_hkp
 usr/lib/gnupg/gpgkeys_ldap
-#usr/man/man1/gpg.1
-#usr/man/man1/gpg.ru.1
-#usr/man/man1/gpgv.1
-#usr/man/man7/gnupg.7
 #usr/share/gnupg
 #usr/share/gnupg/FAQ
-#usr/share/gnupg/faq.html
 #usr/share/gnupg/options.skel
+#usr/share/info/gnupg1.info
+#usr/share/man/man1/gpg-zip.1
+#usr/share/man/man1/gpg.1
+#usr/share/man/man1/gpg.ru.1
+#usr/share/man/man1/gpgv.1
+#usr/share/man/man7/gnupg.7
index 5d5db68a121a174592cc91fa6e2ae9d7d04854a0..a00737d4da1175ebb2ed8fd3d8afb1c1979dc258 100644 (file)
@@ -1,7 +1,7 @@
 bin/egrep
 bin/fgrep
 bin/grep
-#usr/info/grep.info
-#usr/man/man1/egrep.1
-#usr/man/man1/fgrep.1
-#usr/man/man1/grep.1
+#usr/share/info/grep.info
+#usr/share/man/man1/egrep.1
+#usr/share/man/man1/fgrep.1
+#usr/share/man/man1/grep.1
diff --git a/config/rootfiles/common/hddtemp b/config/rootfiles/common/hddtemp
deleted file mode 100644 (file)
index bc4c8d7..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-#usr/man/man8/hddtemp.8
-usr/sbin/hddtemp
-#usr/share/locale/fr/LC_MESSAGES/hddtemp.mo
-#usr/share/locale/ru/LC_MESSAGES/hddtemp.mo
diff --git a/config/rootfiles/common/i586/acpid b/config/rootfiles/common/i586/acpid
new file mode 100644 (file)
index 0000000..535e2bd
--- /dev/null
@@ -0,0 +1,17 @@
+etc/acpi
+etc/acpi/actions
+etc/acpi/actions/power.sh
+etc/acpi/events
+etc/acpi/events/power
+usr/bin/acpi_listen
+usr/sbin/acpid
+#usr/sbin/kacpimon
+#usr/share/doc/acpid
+#usr/share/doc/acpid/COPYING
+#usr/share/doc/acpid/Changelog
+#usr/share/doc/acpid/README
+#usr/share/doc/acpid/TESTPLAN
+#usr/share/doc/acpid/TODO
+#usr/share/man/man8/acpi_listen.8
+#usr/share/man/man8/acpid.8
+#usr/share/man/man8/kacpimon.8
index 0cd5af9150be3dd10c06207bccebb507ee98ad3d..48f20e91974439cfa12c8aca49ece27a19e5471d 100644 (file)
@@ -2,8 +2,10 @@
 #usr/bin/ar
 #usr/bin/as
 #usr/bin/c++filt
+#usr/bin/elfedit
 #usr/bin/gprof
 #usr/bin/ld
+#usr/bin/ld.bfd
 #usr/bin/nm
 #usr/bin/objcopy
 #usr/bin/objdump
 #usr/include/dis-asm.h
 #usr/include/libiberty.h
 #usr/include/symcat.h
-#usr/info/as.info
-#usr/info/bfd.info
-#usr/info/binutils.info
-#usr/info/configure.info
-#usr/info/gprof.info
-#usr/info/ld.info
-#usr/info/standards.info
 #usr/lib/ldscripts
+#usr/lib/ldscripts/elf32_x86_64.x
+#usr/lib/ldscripts/elf32_x86_64.xbn
+#usr/lib/ldscripts/elf32_x86_64.xc
+#usr/lib/ldscripts/elf32_x86_64.xd
+#usr/lib/ldscripts/elf32_x86_64.xdc
+#usr/lib/ldscripts/elf32_x86_64.xdw
+#usr/lib/ldscripts/elf32_x86_64.xn
+#usr/lib/ldscripts/elf32_x86_64.xr
+#usr/lib/ldscripts/elf32_x86_64.xs
+#usr/lib/ldscripts/elf32_x86_64.xsc
+#usr/lib/ldscripts/elf32_x86_64.xsw
+#usr/lib/ldscripts/elf32_x86_64.xu
+#usr/lib/ldscripts/elf32_x86_64.xw
 #usr/lib/ldscripts/elf_i386.x
 #usr/lib/ldscripts/elf_i386.xbn
 #usr/lib/ldscripts/elf_i386.xc
 #usr/lib/ldscripts/i386linux.xn
 #usr/lib/ldscripts/i386linux.xr
 #usr/lib/ldscripts/i386linux.xu
-#usr/lib/libbfd-2.18.so
+usr/lib/libbfd-2.22.so
 #usr/lib/libbfd.a
 #usr/lib/libbfd.la
 #usr/lib/libbfd.so
 #usr/lib/libiberty.a
-#usr/lib/libopcodes-2.18.so
+usr/lib/libopcodes-2.22.so
 #usr/lib/libopcodes.a
 #usr/lib/libopcodes.la
 #usr/lib/libopcodes.so
-#usr/man
-#usr/man/man1
-#usr/man/man1/addr2line.1
-#usr/man/man1/ar.1
-#usr/man/man1/as.1
-#usr/man/man1/c++filt.1
-#usr/man/man1/dlltool.1
-#usr/man/man1/gprof.1
-#usr/man/man1/ld.1
-#usr/man/man1/nlmconv.1
-#usr/man/man1/nm.1
-#usr/man/man1/objcopy.1
-#usr/man/man1/objdump.1
-#usr/man/man1/ranlib.1
-#usr/man/man1/readelf.1
-#usr/man/man1/size.1
-#usr/man/man1/strings.1
-#usr/man/man1/strip.1
-#usr/man/man1/windmc.1
-#usr/man/man1/windres.1
+#usr/share/info/as.info
+#usr/share/info/bfd.info
+#usr/share/info/binutils.info
+#usr/share/info/configure.info
+#usr/share/info/gprof.info
+#usr/share/info/ld.info
+#usr/share/info/standards.info
+#usr/share/man/man1/addr2line.1
+#usr/share/man/man1/ar.1
+#usr/share/man/man1/as.1
+#usr/share/man/man1/c++filt.1
+#usr/share/man/man1/dlltool.1
+#usr/share/man/man1/elfedit.1
+#usr/share/man/man1/gprof.1
+#usr/share/man/man1/ld.1
+#usr/share/man/man1/nlmconv.1
+#usr/share/man/man1/nm.1
+#usr/share/man/man1/objcopy.1
+#usr/share/man/man1/objdump.1
+#usr/share/man/man1/ranlib.1
+#usr/share/man/man1/readelf.1
+#usr/share/man/man1/size.1
+#usr/share/man/man1/strings.1
+#usr/share/man/man1/strip.1
+#usr/share/man/man1/windmc.1
+#usr/share/man/man1/windres.1
index cde9e4f424244dc4fb9b61a493064316b9cd300c..10c712a7589fd9b6eb69244c233a6351f7a4d0fc 100644 (file)
 #usr/bin/i586-pc-linux-gnu-c++
 #usr/bin/i586-pc-linux-gnu-g++
 #usr/bin/i586-pc-linux-gnu-gcc
-#usr/bin/i586-pc-linux-gnu-gcc-4.1.2
+#usr/bin/i586-pc-linux-gnu-gcc-4.4.7
 #usr/include/c++
-#usr/include/c++/4.1.2
-#usr/include/c++/4.1.2/algorithm
-#usr/include/c++/4.1.2/backward
-#usr/include/c++/4.1.2/backward/algo.h
-#usr/include/c++/4.1.2/backward/algobase.h
-#usr/include/c++/4.1.2/backward/alloc.h
-#usr/include/c++/4.1.2/backward/backward_warning.h
-#usr/include/c++/4.1.2/backward/bvector.h
-#usr/include/c++/4.1.2/backward/complex.h
-#usr/include/c++/4.1.2/backward/defalloc.h
-#usr/include/c++/4.1.2/backward/deque.h
-#usr/include/c++/4.1.2/backward/fstream.h
-#usr/include/c++/4.1.2/backward/function.h
-#usr/include/c++/4.1.2/backward/hash_map.h
-#usr/include/c++/4.1.2/backward/hash_set.h
-#usr/include/c++/4.1.2/backward/hashtable.h
-#usr/include/c++/4.1.2/backward/heap.h
-#usr/include/c++/4.1.2/backward/iomanip.h
-#usr/include/c++/4.1.2/backward/iostream.h
-#usr/include/c++/4.1.2/backward/istream.h
-#usr/include/c++/4.1.2/backward/iterator.h
-#usr/include/c++/4.1.2/backward/list.h
-#usr/include/c++/4.1.2/backward/map.h
-#usr/include/c++/4.1.2/backward/multimap.h
-#usr/include/c++/4.1.2/backward/multiset.h
-#usr/include/c++/4.1.2/backward/new.h
-#usr/include/c++/4.1.2/backward/ostream.h
-#usr/include/c++/4.1.2/backward/pair.h
-#usr/include/c++/4.1.2/backward/queue.h
-#usr/include/c++/4.1.2/backward/rope.h
-#usr/include/c++/4.1.2/backward/set.h
-#usr/include/c++/4.1.2/backward/slist.h
-#usr/include/c++/4.1.2/backward/stack.h
-#usr/include/c++/4.1.2/backward/stream.h
-#usr/include/c++/4.1.2/backward/streambuf.h
-#usr/include/c++/4.1.2/backward/strstream
-#usr/include/c++/4.1.2/backward/tempbuf.h
-#usr/include/c++/4.1.2/backward/tree.h
-#usr/include/c++/4.1.2/backward/vector.h
-#usr/include/c++/4.1.2/bits
-#usr/include/c++/4.1.2/bits/allocator.h
-#usr/include/c++/4.1.2/bits/atomicity.h
-#usr/include/c++/4.1.2/bits/basic_ios.h
-#usr/include/c++/4.1.2/bits/basic_ios.tcc
-#usr/include/c++/4.1.2/bits/basic_string.h
-#usr/include/c++/4.1.2/bits/basic_string.tcc
-#usr/include/c++/4.1.2/bits/boost_concept_check.h
-#usr/include/c++/4.1.2/bits/char_traits.h
-#usr/include/c++/4.1.2/bits/cmath.tcc
-#usr/include/c++/4.1.2/bits/codecvt.h
-#usr/include/c++/4.1.2/bits/concept_check.h
-#usr/include/c++/4.1.2/bits/concurrence.h
-#usr/include/c++/4.1.2/bits/cpp_type_traits.h
-#usr/include/c++/4.1.2/bits/deque.tcc
-#usr/include/c++/4.1.2/bits/fstream.tcc
-#usr/include/c++/4.1.2/bits/functexcept.h
-#usr/include/c++/4.1.2/bits/gslice.h
-#usr/include/c++/4.1.2/bits/gslice_array.h
-#usr/include/c++/4.1.2/bits/indirect_array.h
-#usr/include/c++/4.1.2/bits/ios_base.h
-#usr/include/c++/4.1.2/bits/istream.tcc
-#usr/include/c++/4.1.2/bits/list.tcc
-#usr/include/c++/4.1.2/bits/locale_classes.h
-#usr/include/c++/4.1.2/bits/locale_facets.h
-#usr/include/c++/4.1.2/bits/locale_facets.tcc
-#usr/include/c++/4.1.2/bits/localefwd.h
-#usr/include/c++/4.1.2/bits/mask_array.h
-#usr/include/c++/4.1.2/bits/ostream.tcc
-#usr/include/c++/4.1.2/bits/postypes.h
-#usr/include/c++/4.1.2/bits/slice_array.h
-#usr/include/c++/4.1.2/bits/sstream.tcc
-#usr/include/c++/4.1.2/bits/stl_algo.h
-#usr/include/c++/4.1.2/bits/stl_algobase.h
-#usr/include/c++/4.1.2/bits/stl_bvector.h
-#usr/include/c++/4.1.2/bits/stl_construct.h
-#usr/include/c++/4.1.2/bits/stl_deque.h
-#usr/include/c++/4.1.2/bits/stl_function.h
-#usr/include/c++/4.1.2/bits/stl_heap.h
-#usr/include/c++/4.1.2/bits/stl_iterator.h
-#usr/include/c++/4.1.2/bits/stl_iterator_base_funcs.h
-#usr/include/c++/4.1.2/bits/stl_iterator_base_types.h
-#usr/include/c++/4.1.2/bits/stl_list.h
-#usr/include/c++/4.1.2/bits/stl_map.h
-#usr/include/c++/4.1.2/bits/stl_multimap.h
-#usr/include/c++/4.1.2/bits/stl_multiset.h
-#usr/include/c++/4.1.2/bits/stl_numeric.h
-#usr/include/c++/4.1.2/bits/stl_pair.h
-#usr/include/c++/4.1.2/bits/stl_queue.h
-#usr/include/c++/4.1.2/bits/stl_raw_storage_iter.h
-#usr/include/c++/4.1.2/bits/stl_relops.h
-#usr/include/c++/4.1.2/bits/stl_set.h
-#usr/include/c++/4.1.2/bits/stl_stack.h
-#usr/include/c++/4.1.2/bits/stl_tempbuf.h
-#usr/include/c++/4.1.2/bits/stl_tree.h
-#usr/include/c++/4.1.2/bits/stl_uninitialized.h
-#usr/include/c++/4.1.2/bits/stl_vector.h
-#usr/include/c++/4.1.2/bits/stream_iterator.h
-#usr/include/c++/4.1.2/bits/streambuf.tcc
-#usr/include/c++/4.1.2/bits/streambuf_iterator.h
-#usr/include/c++/4.1.2/bits/stringfwd.h
-#usr/include/c++/4.1.2/bits/valarray_after.h
-#usr/include/c++/4.1.2/bits/valarray_array.h
-#usr/include/c++/4.1.2/bits/valarray_array.tcc
-#usr/include/c++/4.1.2/bits/valarray_before.h
-#usr/include/c++/4.1.2/bits/vector.tcc
-#usr/include/c++/4.1.2/bitset
-#usr/include/c++/4.1.2/cassert
-#usr/include/c++/4.1.2/cctype
-#usr/include/c++/4.1.2/cerrno
-#usr/include/c++/4.1.2/cfloat
-#usr/include/c++/4.1.2/ciso646
-#usr/include/c++/4.1.2/climits
-#usr/include/c++/4.1.2/clocale
-#usr/include/c++/4.1.2/cmath
-#usr/include/c++/4.1.2/complex
-#usr/include/c++/4.1.2/csetjmp
-#usr/include/c++/4.1.2/csignal
-#usr/include/c++/4.1.2/cstdarg
-#usr/include/c++/4.1.2/cstddef
-#usr/include/c++/4.1.2/cstdio
-#usr/include/c++/4.1.2/cstdlib
-#usr/include/c++/4.1.2/cstring
-#usr/include/c++/4.1.2/ctime
-#usr/include/c++/4.1.2/cwchar
-#usr/include/c++/4.1.2/cwctype
-#usr/include/c++/4.1.2/cxxabi.h
-#usr/include/c++/4.1.2/debug
-#usr/include/c++/4.1.2/debug/bitset
-#usr/include/c++/4.1.2/debug/debug.h
-#usr/include/c++/4.1.2/debug/deque
-#usr/include/c++/4.1.2/debug/formatter.h
-#usr/include/c++/4.1.2/debug/functions.h
-#usr/include/c++/4.1.2/debug/hash_map
-#usr/include/c++/4.1.2/debug/hash_map.h
-#usr/include/c++/4.1.2/debug/hash_multimap.h
-#usr/include/c++/4.1.2/debug/hash_multiset.h
-#usr/include/c++/4.1.2/debug/hash_set
-#usr/include/c++/4.1.2/debug/hash_set.h
-#usr/include/c++/4.1.2/debug/list
-#usr/include/c++/4.1.2/debug/macros.h
-#usr/include/c++/4.1.2/debug/map
-#usr/include/c++/4.1.2/debug/map.h
-#usr/include/c++/4.1.2/debug/multimap.h
-#usr/include/c++/4.1.2/debug/multiset.h
-#usr/include/c++/4.1.2/debug/safe_base.h
-#usr/include/c++/4.1.2/debug/safe_iterator.h
-#usr/include/c++/4.1.2/debug/safe_iterator.tcc
-#usr/include/c++/4.1.2/debug/safe_sequence.h
-#usr/include/c++/4.1.2/debug/set
-#usr/include/c++/4.1.2/debug/set.h
-#usr/include/c++/4.1.2/debug/string
-#usr/include/c++/4.1.2/debug/vector
-#usr/include/c++/4.1.2/deque
-#usr/include/c++/4.1.2/exception
-#usr/include/c++/4.1.2/exception_defines.h
-#usr/include/c++/4.1.2/ext
-#usr/include/c++/4.1.2/ext/algorithm
-#usr/include/c++/4.1.2/ext/array_allocator.h
-#usr/include/c++/4.1.2/ext/bitmap_allocator.h
-#usr/include/c++/4.1.2/ext/codecvt_specializations.h
-#usr/include/c++/4.1.2/ext/debug_allocator.h
-#usr/include/c++/4.1.2/ext/functional
-#usr/include/c++/4.1.2/ext/hash_fun.h
-#usr/include/c++/4.1.2/ext/hash_map
-#usr/include/c++/4.1.2/ext/hash_set
-#usr/include/c++/4.1.2/ext/hashtable.h
-#usr/include/c++/4.1.2/ext/iterator
-#usr/include/c++/4.1.2/ext/malloc_allocator.h
-#usr/include/c++/4.1.2/ext/memory
-#usr/include/c++/4.1.2/ext/mt_allocator.h
-#usr/include/c++/4.1.2/ext/new_allocator.h
-#usr/include/c++/4.1.2/ext/numeric
-#usr/include/c++/4.1.2/ext/pb_assoc
-#usr/include/c++/4.1.2/ext/pb_assoc/assoc_cntnr.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/data_type.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/assoc_cntnr_base.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/constructor_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/d_extract_key.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/d_find_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/d_insert_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/erase_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/extract_key.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/info_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/insert_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/iterators_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_hash_assoc_cntnr
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_hash_assoc_cntnr/constructor_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_hash_assoc_cntnr/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_hash_assoc_cntnr/resize_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/constructor_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/erase_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/node_iteration_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/policy_access_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/r_erase_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/r_range_iteration_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/range_iteration_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/split_join_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/bin_search_tree_.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/cond_dtor_entry_dealtor.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/cond_key_dtor_entry_dealtor.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/debug_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/erase_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/find_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/find_iterators.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/info_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/insert_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/iterators_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/node_iterators.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/r_erase_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/rotate_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/split_join_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_hash_assoc_cntnr
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_hash_assoc_cntnr/constructor_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/cc_ht_map_.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/cmp_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/cond_key_dtor_entry_dealtor.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/constructor_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/constructor_destructor_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/constructor_destructor_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/debug_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/debug_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/debug_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/entry_list_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/erase_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/erase_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/erase_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/find_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/find_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/find_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/info_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/insert_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/insert_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/insert_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/iterators_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/policy_access_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/resize_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/resize_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/resize_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/size_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/standard_policies.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cond_dealtor.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/ds_trait_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/eq_fn
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/eq_fn/eq_by_less.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/eq_fn/hash_eq_fn.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_hash_assoc_cntnr
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_hash_assoc_cntnr/constructor_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/constructor_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/constructor_destructor_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/constructor_destructor_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/debug_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/debug_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/debug_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/erase_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/erase_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/erase_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/find_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/find_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/find_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/gp_ht_map_.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/info_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/insert_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/insert_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/insert_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/iterator_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/policy_access_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/resize_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/resize_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/resize_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/direct_mask_range_hashing_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/direct_mod_range_hashing_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/linear_probe_fn_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/mask_based_range_hashing.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/mod_based_range_hashing.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/probe_fn_base.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/quadratic_probe_fn_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/ranged_hash_fn.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/ranged_probe_fn.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_types_traits.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_assoc_cntnr
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_assoc_cntnr/constructor_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_assoc_cntnr/policy_access_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/constructor_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/debug_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/erase_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/find_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/info_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/insert_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/iterators_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/lu_map_.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/policy_access_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_policy
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_policy/counter_lu_metadata_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_policy/counter_lu_policy_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_policy/mtf_lu_policy_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/map_debug_base.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/mapping_level_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/ms_category_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/ms_trait_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/order_statistics_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/cond_dtor.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/debug_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/erase_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/find_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/info_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/insert_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/iterators_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/node_iterators.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/ov_tree_map_.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/split_join_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/debug_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/erase_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/find_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/info_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/insert_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/node.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/rb_tree_.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/split_join_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy/cc_hash_max_collision_resize_trigger_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy/hash_exponential_size_policy_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy/hash_load_check_resize_trigger_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy/hash_prime_size_policy_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy/hash_standard_resize_policy_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy/ht_prime_size_policy_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy/size_base.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/debug_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/erase_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/find_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/info_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/insert_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/node.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/splay_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/splay_tree_.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/split_join_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/standard_policies.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/standard_sizes.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/tree_assoc_cntnr
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/tree_assoc_cntnr/constructor_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/tree_policy
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/tree_policy/null_node_updator_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/tree_policy/order_statistics_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/type_utils.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist/typelist_append.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist/typelist_apply.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist/typelist_at_index.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist/typelist_contains.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist/typelist_filter.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist/typelist_transform.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist/typelist_typelist_append.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/types_traits.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/unordered_iterator
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/unordered_iterator/const_find_iterator.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/unordered_iterator/const_iterator.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/unordered_iterator/find_iterator.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/unordered_iterator/iterator.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/constructor_destructor_and_related.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/erase_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/erase_if_pred.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/find_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/info_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/insert_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/invalidation_guarantee_selector.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/it_value_type_traits.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/iterator.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/iterator_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/ref_pair.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/value_type_adapter.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/value_type_traits.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/ds_trait.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/exception.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/hash_policy.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/lu_policy.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/ms_trait.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/tree_policy.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/trivial_iterator_def.hpp
-#usr/include/c++/4.1.2/ext/pod_char_traits.h
-#usr/include/c++/4.1.2/ext/pool_allocator.h
-#usr/include/c++/4.1.2/ext/rb_tree
-#usr/include/c++/4.1.2/ext/rc_string_base.h
-#usr/include/c++/4.1.2/ext/rope
-#usr/include/c++/4.1.2/ext/ropeimpl.h
-#usr/include/c++/4.1.2/ext/slist
-#usr/include/c++/4.1.2/ext/sso_string_base.h
-#usr/include/c++/4.1.2/ext/stdio_filebuf.h
-#usr/include/c++/4.1.2/ext/stdio_sync_filebuf.h
-#usr/include/c++/4.1.2/ext/typelist.h
-#usr/include/c++/4.1.2/ext/vstring.h
-#usr/include/c++/4.1.2/ext/vstring.tcc
-#usr/include/c++/4.1.2/ext/vstring_fwd.h
-#usr/include/c++/4.1.2/ext/vstring_util.h
-#usr/include/c++/4.1.2/fstream
-#usr/include/c++/4.1.2/functional
-#usr/include/c++/4.1.2/i586-pc-linux-gnu
-#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits
-#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/atomic_word.h
-#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/basic_file.h
-#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/c++allocator.h
-#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/c++config.h
-#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/c++io.h
-#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/c++locale.h
-#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/cpu_defines.h
-#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/ctype_base.h
-#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/ctype_inline.h
-#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/ctype_noninline.h
-#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/cxxabi_tweaks.h
-#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/gthr-default.h
-#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/gthr-posix.h
-#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/gthr-single.h
-#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/gthr-tpf.h
-#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/gthr.h
-#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/messages_members.h
-#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/os_defines.h
-#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/stdc++.h.gch
-#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/stdc++.h.gch/O0g.gch
-#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/stdc++.h.gch/O2g.gch
-#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/time_members.h
-#usr/include/c++/4.1.2/iomanip
-#usr/include/c++/4.1.2/ios
-#usr/include/c++/4.1.2/iosfwd
-#usr/include/c++/4.1.2/iostream
-#usr/include/c++/4.1.2/istream
-#usr/include/c++/4.1.2/iterator
-#usr/include/c++/4.1.2/limits
-#usr/include/c++/4.1.2/list
-#usr/include/c++/4.1.2/locale
-#usr/include/c++/4.1.2/map
-#usr/include/c++/4.1.2/memory
-#usr/include/c++/4.1.2/new
-#usr/include/c++/4.1.2/numeric
-#usr/include/c++/4.1.2/ostream
-#usr/include/c++/4.1.2/queue
-#usr/include/c++/4.1.2/set
-#usr/include/c++/4.1.2/sstream
-#usr/include/c++/4.1.2/stack
-#usr/include/c++/4.1.2/stdexcept
-#usr/include/c++/4.1.2/streambuf
-#usr/include/c++/4.1.2/string
-#usr/include/c++/4.1.2/tr1
-#usr/include/c++/4.1.2/tr1/array
-#usr/include/c++/4.1.2/tr1/bind_iterate.h
-#usr/include/c++/4.1.2/tr1/bind_repeat.h
-#usr/include/c++/4.1.2/tr1/boost_shared_ptr.h
-#usr/include/c++/4.1.2/tr1/functional
-#usr/include/c++/4.1.2/tr1/functional_iterate.h
-#usr/include/c++/4.1.2/tr1/hashtable
-#usr/include/c++/4.1.2/tr1/memory
-#usr/include/c++/4.1.2/tr1/mu_iterate.h
-#usr/include/c++/4.1.2/tr1/ref_fwd.h
-#usr/include/c++/4.1.2/tr1/ref_wrap_iterate.h
-#usr/include/c++/4.1.2/tr1/repeat.h
-#usr/include/c++/4.1.2/tr1/tuple
-#usr/include/c++/4.1.2/tr1/tuple_iterate.h
-#usr/include/c++/4.1.2/tr1/type_traits
-#usr/include/c++/4.1.2/tr1/type_traits_fwd.h
-#usr/include/c++/4.1.2/tr1/unordered_map
-#usr/include/c++/4.1.2/tr1/unordered_set
-#usr/include/c++/4.1.2/tr1/utility
-#usr/include/c++/4.1.2/typeinfo
-#usr/include/c++/4.1.2/utility
-#usr/include/c++/4.1.2/valarray
-#usr/include/c++/4.1.2/vector
-#usr/include/mf-runtime.h
+#usr/include/c++/4.4.7
+#usr/include/c++/4.4.7/algorithm
+#usr/include/c++/4.4.7/array
+#usr/include/c++/4.4.7/backward
+#usr/include/c++/4.4.7/backward/auto_ptr.h
+#usr/include/c++/4.4.7/backward/backward_warning.h
+#usr/include/c++/4.4.7/backward/binders.h
+#usr/include/c++/4.4.7/backward/hash_fun.h
+#usr/include/c++/4.4.7/backward/hash_map
+#usr/include/c++/4.4.7/backward/hash_set
+#usr/include/c++/4.4.7/backward/hashtable.h
+#usr/include/c++/4.4.7/backward/strstream
+#usr/include/c++/4.4.7/bits
+#usr/include/c++/4.4.7/bits/algorithmfwd.h
+#usr/include/c++/4.4.7/bits/allocator.h
+#usr/include/c++/4.4.7/bits/atomic_0.h
+#usr/include/c++/4.4.7/bits/atomic_2.h
+#usr/include/c++/4.4.7/bits/atomicfwd_c.h
+#usr/include/c++/4.4.7/bits/atomicfwd_cxx.h
+#usr/include/c++/4.4.7/bits/basic_ios.h
+#usr/include/c++/4.4.7/bits/basic_ios.tcc
+#usr/include/c++/4.4.7/bits/basic_string.h
+#usr/include/c++/4.4.7/bits/basic_string.tcc
+#usr/include/c++/4.4.7/bits/boost_concept_check.h
+#usr/include/c++/4.4.7/bits/char_traits.h
+#usr/include/c++/4.4.7/bits/cmath.tcc
+#usr/include/c++/4.4.7/bits/codecvt.h
+#usr/include/c++/4.4.7/bits/concept_check.h
+#usr/include/c++/4.4.7/bits/cpp_type_traits.h
+#usr/include/c++/4.4.7/bits/deque.tcc
+#usr/include/c++/4.4.7/bits/forward_list.h
+#usr/include/c++/4.4.7/bits/forward_list.tcc
+#usr/include/c++/4.4.7/bits/fstream.tcc
+#usr/include/c++/4.4.7/bits/functexcept.h
+#usr/include/c++/4.4.7/bits/functional_hash.h
+#usr/include/c++/4.4.7/bits/gslice.h
+#usr/include/c++/4.4.7/bits/gslice_array.h
+#usr/include/c++/4.4.7/bits/hashtable.h
+#usr/include/c++/4.4.7/bits/indirect_array.h
+#usr/include/c++/4.4.7/bits/ios_base.h
+#usr/include/c++/4.4.7/bits/istream.tcc
+#usr/include/c++/4.4.7/bits/list.tcc
+#usr/include/c++/4.4.7/bits/locale_classes.h
+#usr/include/c++/4.4.7/bits/locale_classes.tcc
+#usr/include/c++/4.4.7/bits/locale_facets.h
+#usr/include/c++/4.4.7/bits/locale_facets.tcc
+#usr/include/c++/4.4.7/bits/locale_facets_nonio.h
+#usr/include/c++/4.4.7/bits/locale_facets_nonio.tcc
+#usr/include/c++/4.4.7/bits/localefwd.h
+#usr/include/c++/4.4.7/bits/mask_array.h
+#usr/include/c++/4.4.7/bits/move.h
+#usr/include/c++/4.4.7/bits/ostream.tcc
+#usr/include/c++/4.4.7/bits/ostream_insert.h
+#usr/include/c++/4.4.7/bits/postypes.h
+#usr/include/c++/4.4.7/bits/shared_ptr.h
+#usr/include/c++/4.4.7/bits/slice_array.h
+#usr/include/c++/4.4.7/bits/sstream.tcc
+#usr/include/c++/4.4.7/bits/stl_algo.h
+#usr/include/c++/4.4.7/bits/stl_algobase.h
+#usr/include/c++/4.4.7/bits/stl_bvector.h
+#usr/include/c++/4.4.7/bits/stl_construct.h
+#usr/include/c++/4.4.7/bits/stl_deque.h
+#usr/include/c++/4.4.7/bits/stl_function.h
+#usr/include/c++/4.4.7/bits/stl_heap.h
+#usr/include/c++/4.4.7/bits/stl_iterator.h
+#usr/include/c++/4.4.7/bits/stl_iterator_base_funcs.h
+#usr/include/c++/4.4.7/bits/stl_iterator_base_types.h
+#usr/include/c++/4.4.7/bits/stl_list.h
+#usr/include/c++/4.4.7/bits/stl_map.h
+#usr/include/c++/4.4.7/bits/stl_multimap.h
+#usr/include/c++/4.4.7/bits/stl_multiset.h
+#usr/include/c++/4.4.7/bits/stl_numeric.h
+#usr/include/c++/4.4.7/bits/stl_pair.h
+#usr/include/c++/4.4.7/bits/stl_queue.h
+#usr/include/c++/4.4.7/bits/stl_raw_storage_iter.h
+#usr/include/c++/4.4.7/bits/stl_relops.h
+#usr/include/c++/4.4.7/bits/stl_set.h
+#usr/include/c++/4.4.7/bits/stl_stack.h
+#usr/include/c++/4.4.7/bits/stl_tempbuf.h
+#usr/include/c++/4.4.7/bits/stl_tree.h
+#usr/include/c++/4.4.7/bits/stl_uninitialized.h
+#usr/include/c++/4.4.7/bits/stl_vector.h
+#usr/include/c++/4.4.7/bits/stream_iterator.h
+#usr/include/c++/4.4.7/bits/streambuf.tcc
+#usr/include/c++/4.4.7/bits/streambuf_iterator.h
+#usr/include/c++/4.4.7/bits/stringfwd.h
+#usr/include/c++/4.4.7/bits/unique_ptr.h
+#usr/include/c++/4.4.7/bits/valarray_after.h
+#usr/include/c++/4.4.7/bits/valarray_array.h
+#usr/include/c++/4.4.7/bits/valarray_array.tcc
+#usr/include/c++/4.4.7/bits/valarray_before.h
+#usr/include/c++/4.4.7/bits/vector.tcc
+#usr/include/c++/4.4.7/bitset
+#usr/include/c++/4.4.7/c++0x_warning.h
+#usr/include/c++/4.4.7/cassert
+#usr/include/c++/4.4.7/ccomplex
+#usr/include/c++/4.4.7/cctype
+#usr/include/c++/4.4.7/cerrno
+#usr/include/c++/4.4.7/cfenv
+#usr/include/c++/4.4.7/cfloat
+#usr/include/c++/4.4.7/chrono
+#usr/include/c++/4.4.7/cinttypes
+#usr/include/c++/4.4.7/ciso646
+#usr/include/c++/4.4.7/climits
+#usr/include/c++/4.4.7/clocale
+#usr/include/c++/4.4.7/cmath
+#usr/include/c++/4.4.7/complex
+#usr/include/c++/4.4.7/complex.h
+#usr/include/c++/4.4.7/condition_variable
+#usr/include/c++/4.4.7/csetjmp
+#usr/include/c++/4.4.7/csignal
+#usr/include/c++/4.4.7/cstdarg
+#usr/include/c++/4.4.7/cstdatomic
+#usr/include/c++/4.4.7/cstdbool
+#usr/include/c++/4.4.7/cstddef
+#usr/include/c++/4.4.7/cstdint
+#usr/include/c++/4.4.7/cstdio
+#usr/include/c++/4.4.7/cstdlib
+#usr/include/c++/4.4.7/cstring
+#usr/include/c++/4.4.7/ctgmath
+#usr/include/c++/4.4.7/ctime
+#usr/include/c++/4.4.7/cwchar
+#usr/include/c++/4.4.7/cwctype
+#usr/include/c++/4.4.7/cxxabi-forced.h
+#usr/include/c++/4.4.7/cxxabi.h
+#usr/include/c++/4.4.7/debug
+#usr/include/c++/4.4.7/debug/bitset
+#usr/include/c++/4.4.7/debug/debug.h
+#usr/include/c++/4.4.7/debug/deque
+#usr/include/c++/4.4.7/debug/formatter.h
+#usr/include/c++/4.4.7/debug/functions.h
+#usr/include/c++/4.4.7/debug/list
+#usr/include/c++/4.4.7/debug/macros.h
+#usr/include/c++/4.4.7/debug/map
+#usr/include/c++/4.4.7/debug/map.h
+#usr/include/c++/4.4.7/debug/multimap.h
+#usr/include/c++/4.4.7/debug/multiset.h
+#usr/include/c++/4.4.7/debug/safe_base.h
+#usr/include/c++/4.4.7/debug/safe_iterator.h
+#usr/include/c++/4.4.7/debug/safe_iterator.tcc
+#usr/include/c++/4.4.7/debug/safe_sequence.h
+#usr/include/c++/4.4.7/debug/set
+#usr/include/c++/4.4.7/debug/set.h
+#usr/include/c++/4.4.7/debug/string
+#usr/include/c++/4.4.7/debug/unordered_map
+#usr/include/c++/4.4.7/debug/unordered_set
+#usr/include/c++/4.4.7/debug/vector
+#usr/include/c++/4.4.7/deque
+#usr/include/c++/4.4.7/exception
+#usr/include/c++/4.4.7/exception_defines.h
+#usr/include/c++/4.4.7/exception_ptr.h
+#usr/include/c++/4.4.7/ext
+#usr/include/c++/4.4.7/ext/algorithm
+#usr/include/c++/4.4.7/ext/array_allocator.h
+#usr/include/c++/4.4.7/ext/atomicity.h
+#usr/include/c++/4.4.7/ext/bitmap_allocator.h
+#usr/include/c++/4.4.7/ext/cast.h
+#usr/include/c++/4.4.7/ext/codecvt_specializations.h
+#usr/include/c++/4.4.7/ext/concurrence.h
+#usr/include/c++/4.4.7/ext/debug_allocator.h
+#usr/include/c++/4.4.7/ext/enc_filebuf.h
+#usr/include/c++/4.4.7/ext/extptr_allocator.h
+#usr/include/c++/4.4.7/ext/functional
+#usr/include/c++/4.4.7/ext/hash_map
+#usr/include/c++/4.4.7/ext/hash_set
+#usr/include/c++/4.4.7/ext/iterator
+#usr/include/c++/4.4.7/ext/malloc_allocator.h
+#usr/include/c++/4.4.7/ext/memory
+#usr/include/c++/4.4.7/ext/mt_allocator.h
+#usr/include/c++/4.4.7/ext/new_allocator.h
+#usr/include/c++/4.4.7/ext/numeric
+#usr/include/c++/4.4.7/ext/numeric_traits.h
+#usr/include/c++/4.4.7/ext/pb_ds
+#usr/include/c++/4.4.7/ext/pb_ds/assoc_container.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail
+#usr/include/c++/4.4.7/ext/pb_ds/detail/basic_tree_policy
+#usr/include/c++/4.4.7/ext/pb_ds/detail/basic_tree_policy/basic_tree_policy_base.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/basic_tree_policy/null_node_metadata.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/basic_tree_policy/traits.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/basic_types.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/bin_search_tree_.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/cond_dtor_entry_dealtor.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/cond_key_dtor_entry_dealtor.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/debug_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/erase_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/find_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/info_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/insert_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/iterators_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/node_iterators.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/point_iterators.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/policy_access_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/r_erase_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/rotate_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/split_join_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/traits.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/const_iterator.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/const_point_iterator.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/debug_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/entry_cmp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/entry_pred.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/erase_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/find_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/info_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/iterators_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/policy_access_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/resize_policy.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/split_join_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/trace_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_/binomial_heap_.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_/debug_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_base_
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_base_/binomial_heap_base_.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_base_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_base_/debug_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_base_/erase_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_base_/find_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_base_/insert_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_base_/split_join_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/cmp_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/cond_key_dtor_entry_dealtor.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/debug_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/debug_no_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/debug_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/entry_list_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/erase_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/erase_no_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/erase_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/find_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/find_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/info_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/insert_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/insert_no_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/insert_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/iterators_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/policy_access_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/resize_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/resize_no_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/resize_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/size_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/standard_policies.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/trace_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cond_dealtor.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/constructors_destructor_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/container_base_dispatch.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/debug_map_base.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/eq_fn
+#usr/include/c++/4.4.7/ext/pb_ds/detail/eq_fn/eq_by_less.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/eq_fn/hash_eq_fn.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/debug_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/debug_no_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/debug_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/erase_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/erase_no_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/erase_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/find_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/find_no_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/find_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/gp_ht_map_.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/info_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/insert_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/insert_no_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/insert_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/iterator_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/policy_access_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/resize_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/resize_no_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/resize_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/standard_policies.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/trace_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn
+#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/direct_mask_range_hashing_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/direct_mod_range_hashing_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/linear_probe_fn_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/mask_based_range_hashing.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/mod_based_range_hashing.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/probe_fn_base.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/quadratic_probe_fn_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/ranged_hash_fn.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/ranged_probe_fn.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/sample_probe_fn.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/sample_range_hashing.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/sample_ranged_hash_fn.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/sample_ranged_probe_fn.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_
+#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/const_iterator.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/const_point_iterator.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/debug_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/erase_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/info_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/insert_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/iterators_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/left_child_next_sibling_heap_.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/node.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/null_metadata.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/policy_access_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/trace_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_
+#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/constructor_destructor_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/debug_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/entry_metadata_base.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/erase_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/find_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/info_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/insert_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/iterators_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/lu_map_.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/trace_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_policy
+#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_policy/counter_lu_metadata.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_policy/counter_lu_policy_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_policy/mtf_lu_policy_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_policy/sample_update_policy.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_
+#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/cond_dtor.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/debug_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/erase_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/info_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/insert_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/iterators_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/node_iterators.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/ov_tree_map_.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/policy_access_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/split_join_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/traits.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pairing_heap_
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pairing_heap_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pairing_heap_/debug_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pairing_heap_/erase_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pairing_heap_/find_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pairing_heap_/insert_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pairing_heap_/pairing_heap_.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pairing_heap_/split_join_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/child_iterator.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/cond_dtor_entry_dealtor.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/const_child_iterator.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/debug_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/erase_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/find_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/head.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/info_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/insert_join_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/internal_node.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/iterators_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/leaf.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/node_base.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/node_iterators.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/node_metadata_base.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/pat_trie_.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/point_iterators.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/policy_access_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/r_erase_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/rotate_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/split_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/split_join_branch_bag.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/synth_e_access_traits.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/trace_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/traits.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/update_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/priority_queue_base_dispatch.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/debug_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/erase_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/find_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/info_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/insert_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/node.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/rb_tree_.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/split_join_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/traits.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_/debug_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_/erase_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_/insert_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_/rc.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_/rc_binomial_heap_.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_/split_join_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_/trace_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy
+#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/cc_hash_max_collision_check_resize_trigger_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/hash_exponential_size_policy_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_size_base.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/hash_standard_resize_policy_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/sample_resize_policy.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/sample_resize_trigger.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/sample_size_policy.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_
+#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/debug_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/erase_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/find_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/info_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/insert_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/node.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/splay_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/splay_tree_.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/split_join_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/traits.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/standard_policies.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_
+#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_/debug_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_/erase_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_/find_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_/insert_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_/split_join_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_/thin_heap_.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_/trace_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/tree_policy
+#usr/include/c++/4.4.7/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/tree_policy/null_node_update_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/tree_policy/order_statistics_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/tree_policy/sample_tree_node_update.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/tree_trace_base.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy
+#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy/null_node_update_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy/order_statistics_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy/prefix_search_node_update_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy/sample_trie_e_access_traits.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy/sample_trie_node_update.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy/string_trie_e_access_traits_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy/trie_policy_base.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/type_utils.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/types_traits.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/unordered_iterator
+#usr/include/c++/4.4.7/ext/pb_ds/detail/unordered_iterator/const_iterator.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/unordered_iterator/const_point_iterator.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/unordered_iterator/iterator.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/unordered_iterator/point_iterator.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/exception.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/hash_policy.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/list_update_policy.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/priority_queue.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/tag_and_trait.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/tree_policy.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/trie_policy.hpp
+#usr/include/c++/4.4.7/ext/pod_char_traits.h
+#usr/include/c++/4.4.7/ext/pointer.h
+#usr/include/c++/4.4.7/ext/pool_allocator.h
+#usr/include/c++/4.4.7/ext/rb_tree
+#usr/include/c++/4.4.7/ext/rc_string_base.h
+#usr/include/c++/4.4.7/ext/rope
+#usr/include/c++/4.4.7/ext/ropeimpl.h
+#usr/include/c++/4.4.7/ext/slist
+#usr/include/c++/4.4.7/ext/sso_string_base.h
+#usr/include/c++/4.4.7/ext/stdio_filebuf.h
+#usr/include/c++/4.4.7/ext/stdio_sync_filebuf.h
+#usr/include/c++/4.4.7/ext/string_conversions.h
+#usr/include/c++/4.4.7/ext/throw_allocator.h
+#usr/include/c++/4.4.7/ext/type_traits.h
+#usr/include/c++/4.4.7/ext/typelist.h
+#usr/include/c++/4.4.7/ext/vstring.h
+#usr/include/c++/4.4.7/ext/vstring.tcc
+#usr/include/c++/4.4.7/ext/vstring_fwd.h
+#usr/include/c++/4.4.7/ext/vstring_util.h
+#usr/include/c++/4.4.7/fenv.h
+#usr/include/c++/4.4.7/forward_list
+#usr/include/c++/4.4.7/fstream
+#usr/include/c++/4.4.7/functional
+#usr/include/c++/4.4.7/i586-pc-linux-gnu
+#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits
+#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/atomic_word.h
+#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/basic_file.h
+#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/c++allocator.h
+#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/c++config.h
+#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/c++io.h
+#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/c++locale.h
+#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/cpu_defines.h
+#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/ctype_base.h
+#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/ctype_inline.h
+#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/ctype_noninline.h
+#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/cxxabi_tweaks.h
+#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/error_constants.h
+#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/extc++.h
+#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/gthr-default.h
+#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/gthr-posix.h
+#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/gthr-single.h
+#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/gthr-tpf.h
+#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/gthr.h
+#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/messages_members.h
+#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/os_defines.h
+#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/stdc++.h
+#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/stdtr1c++.h
+#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/time_members.h
+#usr/include/c++/4.4.7/initializer_list
+#usr/include/c++/4.4.7/iomanip
+#usr/include/c++/4.4.7/ios
+#usr/include/c++/4.4.7/iosfwd
+#usr/include/c++/4.4.7/iostream
+#usr/include/c++/4.4.7/istream
+#usr/include/c++/4.4.7/iterator
+#usr/include/c++/4.4.7/limits
+#usr/include/c++/4.4.7/list
+#usr/include/c++/4.4.7/locale
+#usr/include/c++/4.4.7/map
+#usr/include/c++/4.4.7/memory
+#usr/include/c++/4.4.7/mutex
+#usr/include/c++/4.4.7/new
+#usr/include/c++/4.4.7/numeric
+#usr/include/c++/4.4.7/ostream
+#usr/include/c++/4.4.7/parallel
+#usr/include/c++/4.4.7/parallel/algo.h
+#usr/include/c++/4.4.7/parallel/algobase.h
+#usr/include/c++/4.4.7/parallel/algorithm
+#usr/include/c++/4.4.7/parallel/algorithmfwd.h
+#usr/include/c++/4.4.7/parallel/balanced_quicksort.h
+#usr/include/c++/4.4.7/parallel/base.h
+#usr/include/c++/4.4.7/parallel/basic_iterator.h
+#usr/include/c++/4.4.7/parallel/checkers.h
+#usr/include/c++/4.4.7/parallel/compatibility.h
+#usr/include/c++/4.4.7/parallel/compiletime_settings.h
+#usr/include/c++/4.4.7/parallel/equally_split.h
+#usr/include/c++/4.4.7/parallel/features.h
+#usr/include/c++/4.4.7/parallel/find.h
+#usr/include/c++/4.4.7/parallel/find_selectors.h
+#usr/include/c++/4.4.7/parallel/for_each.h
+#usr/include/c++/4.4.7/parallel/for_each_selectors.h
+#usr/include/c++/4.4.7/parallel/iterator.h
+#usr/include/c++/4.4.7/parallel/list_partition.h
+#usr/include/c++/4.4.7/parallel/losertree.h
+#usr/include/c++/4.4.7/parallel/merge.h
+#usr/include/c++/4.4.7/parallel/multiseq_selection.h
+#usr/include/c++/4.4.7/parallel/multiway_merge.h
+#usr/include/c++/4.4.7/parallel/multiway_mergesort.h
+#usr/include/c++/4.4.7/parallel/numeric
+#usr/include/c++/4.4.7/parallel/numericfwd.h
+#usr/include/c++/4.4.7/parallel/omp_loop.h
+#usr/include/c++/4.4.7/parallel/omp_loop_static.h
+#usr/include/c++/4.4.7/parallel/par_loop.h
+#usr/include/c++/4.4.7/parallel/parallel.h
+#usr/include/c++/4.4.7/parallel/partial_sum.h
+#usr/include/c++/4.4.7/parallel/partition.h
+#usr/include/c++/4.4.7/parallel/queue.h
+#usr/include/c++/4.4.7/parallel/quicksort.h
+#usr/include/c++/4.4.7/parallel/random_number.h
+#usr/include/c++/4.4.7/parallel/random_shuffle.h
+#usr/include/c++/4.4.7/parallel/search.h
+#usr/include/c++/4.4.7/parallel/set_operations.h
+#usr/include/c++/4.4.7/parallel/settings.h
+#usr/include/c++/4.4.7/parallel/sort.h
+#usr/include/c++/4.4.7/parallel/tags.h
+#usr/include/c++/4.4.7/parallel/types.h
+#usr/include/c++/4.4.7/parallel/unique_copy.h
+#usr/include/c++/4.4.7/parallel/workstealing.h
+#usr/include/c++/4.4.7/queue
+#usr/include/c++/4.4.7/random
+#usr/include/c++/4.4.7/ratio
+#usr/include/c++/4.4.7/regex
+#usr/include/c++/4.4.7/set
+#usr/include/c++/4.4.7/sstream
+#usr/include/c++/4.4.7/stack
+#usr/include/c++/4.4.7/stdatomic.h
+#usr/include/c++/4.4.7/stdexcept
+#usr/include/c++/4.4.7/streambuf
+#usr/include/c++/4.4.7/string
+#usr/include/c++/4.4.7/system_error
+#usr/include/c++/4.4.7/tgmath.h
+#usr/include/c++/4.4.7/thread
+#usr/include/c++/4.4.7/tr1
+#usr/include/c++/4.4.7/tr1/array
+#usr/include/c++/4.4.7/tr1/bessel_function.tcc
+#usr/include/c++/4.4.7/tr1/beta_function.tcc
+#usr/include/c++/4.4.7/tr1/ccomplex
+#usr/include/c++/4.4.7/tr1/cctype
+#usr/include/c++/4.4.7/tr1/cfenv
+#usr/include/c++/4.4.7/tr1/cfloat
+#usr/include/c++/4.4.7/tr1/cinttypes
+#usr/include/c++/4.4.7/tr1/climits
+#usr/include/c++/4.4.7/tr1/cmath
+#usr/include/c++/4.4.7/tr1/complex
+#usr/include/c++/4.4.7/tr1/complex.h
+#usr/include/c++/4.4.7/tr1/cstdarg
+#usr/include/c++/4.4.7/tr1/cstdbool
+#usr/include/c++/4.4.7/tr1/cstdint
+#usr/include/c++/4.4.7/tr1/cstdio
+#usr/include/c++/4.4.7/tr1/cstdlib
+#usr/include/c++/4.4.7/tr1/ctgmath
+#usr/include/c++/4.4.7/tr1/ctime
+#usr/include/c++/4.4.7/tr1/ctype.h
+#usr/include/c++/4.4.7/tr1/cwchar
+#usr/include/c++/4.4.7/tr1/cwctype
+#usr/include/c++/4.4.7/tr1/ell_integral.tcc
+#usr/include/c++/4.4.7/tr1/exp_integral.tcc
+#usr/include/c++/4.4.7/tr1/fenv.h
+#usr/include/c++/4.4.7/tr1/float.h
+#usr/include/c++/4.4.7/tr1/functional
+#usr/include/c++/4.4.7/tr1/functional_hash.h
+#usr/include/c++/4.4.7/tr1/gamma.tcc
+#usr/include/c++/4.4.7/tr1/hashtable.h
+#usr/include/c++/4.4.7/tr1/hypergeometric.tcc
+#usr/include/c++/4.4.7/tr1/inttypes.h
+#usr/include/c++/4.4.7/tr1/legendre_function.tcc
+#usr/include/c++/4.4.7/tr1/limits.h
+#usr/include/c++/4.4.7/tr1/math.h
+#usr/include/c++/4.4.7/tr1/memory
+#usr/include/c++/4.4.7/tr1/modified_bessel_func.tcc
+#usr/include/c++/4.4.7/tr1/poly_hermite.tcc
+#usr/include/c++/4.4.7/tr1/poly_laguerre.tcc
+#usr/include/c++/4.4.7/tr1/random
+#usr/include/c++/4.4.7/tr1/regex
+#usr/include/c++/4.4.7/tr1/riemann_zeta.tcc
+#usr/include/c++/4.4.7/tr1/shared_ptr.h
+#usr/include/c++/4.4.7/tr1/special_function_util.h
+#usr/include/c++/4.4.7/tr1/stdarg.h
+#usr/include/c++/4.4.7/tr1/stdbool.h
+#usr/include/c++/4.4.7/tr1/stdint.h
+#usr/include/c++/4.4.7/tr1/stdio.h
+#usr/include/c++/4.4.7/tr1/stdlib.h
+#usr/include/c++/4.4.7/tr1/tgmath.h
+#usr/include/c++/4.4.7/tr1/tuple
+#usr/include/c++/4.4.7/tr1/type_traits
+#usr/include/c++/4.4.7/tr1/unordered_map
+#usr/include/c++/4.4.7/tr1/unordered_set
+#usr/include/c++/4.4.7/tr1/utility
+#usr/include/c++/4.4.7/tr1/wchar.h
+#usr/include/c++/4.4.7/tr1/wctype.h
+#usr/include/c++/4.4.7/tr1_impl
+#usr/include/c++/4.4.7/tr1_impl/array
+#usr/include/c++/4.4.7/tr1_impl/boost_sp_counted_base.h
+#usr/include/c++/4.4.7/tr1_impl/cctype
+#usr/include/c++/4.4.7/tr1_impl/cfenv
+#usr/include/c++/4.4.7/tr1_impl/cinttypes
+#usr/include/c++/4.4.7/tr1_impl/cmath
+#usr/include/c++/4.4.7/tr1_impl/complex
+#usr/include/c++/4.4.7/tr1_impl/cstdint
+#usr/include/c++/4.4.7/tr1_impl/cstdio
+#usr/include/c++/4.4.7/tr1_impl/cstdlib
+#usr/include/c++/4.4.7/tr1_impl/cwchar
+#usr/include/c++/4.4.7/tr1_impl/cwctype
+#usr/include/c++/4.4.7/tr1_impl/functional
+#usr/include/c++/4.4.7/tr1_impl/functional_hash.h
+#usr/include/c++/4.4.7/tr1_impl/hashtable
+#usr/include/c++/4.4.7/tr1_impl/hashtable_policy.h
+#usr/include/c++/4.4.7/tr1_impl/random
+#usr/include/c++/4.4.7/tr1_impl/random.tcc
+#usr/include/c++/4.4.7/tr1_impl/regex
+#usr/include/c++/4.4.7/tr1_impl/type_traits
+#usr/include/c++/4.4.7/tr1_impl/unordered_map
+#usr/include/c++/4.4.7/tr1_impl/unordered_set
+#usr/include/c++/4.4.7/tr1_impl/utility
+#usr/include/c++/4.4.7/tuple
+#usr/include/c++/4.4.7/type_traits
+#usr/include/c++/4.4.7/typeinfo
+#usr/include/c++/4.4.7/unordered_map
+#usr/include/c++/4.4.7/unordered_set
+#usr/include/c++/4.4.7/utility
+#usr/include/c++/4.4.7/valarray
+#usr/include/c++/4.4.7/vector
+#usr/info
 #usr/info/cpp.info
 #usr/info/cppinternals.info
+#usr/info/dir
 #usr/info/gcc.info
 #usr/info/gccinstall.info
 #usr/info/gccint.info
+#usr/info/libgomp.info
 #usr/lib/gcc
 #usr/lib/gcc/i586-pc-linux-gnu
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/cc1
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/cc1plus
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/collect2
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/crtbegin.o
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/crtbeginS.o
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/crtbeginT.o
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/crtend.o
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/crtendS.o
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/crtfastmath.o
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/README
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/emmintrin.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/float.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/iso646.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/limits.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/mm3dnow.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/mm_malloc.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/mmintrin.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/pmmintrin.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/ssp
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/ssp/ssp.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/ssp/stdio.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/ssp/string.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/ssp/unistd.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/stdarg.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/stdbool.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/stddef.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/syslimits.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/unwind.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/varargs.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/xmmintrin.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/fixinc.sh
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/fixincl
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/gsyslimits.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/include
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/include/README
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/include/emmintrin.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/include/float.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/include/iso646.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/include/limits.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/include/mm3dnow.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/include/mm_malloc.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/include/mmintrin.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/include/pmmintrin.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/include/stdarg.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/include/stdbool.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/include/stddef.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/include/unwind.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/include/varargs.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/include/xmmintrin.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/macro_list
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/mkheaders
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/mkheaders.conf
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/libgcc.a
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/libgcc_eh.a
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/libgcov.a
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/cc1
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/cc1plus
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/collect2
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/crtbegin.o
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/crtbeginS.o
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/crtbeginT.o
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/crtend.o
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/crtendS.o
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/crtfastmath.o
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/crtprec32.o
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/crtprec64.o
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/crtprec80.o
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/finclude
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include-fixed
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include-fixed/README
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include-fixed/limits.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include-fixed/syslimits.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/ammintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/avxintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/bmmintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/cpuid.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/cross-stdarg.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/emmintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/float.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/immintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/iso646.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/mf-runtime.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/mm3dnow.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/mm_malloc.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/mmintrin-common.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/mmintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/nmmintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/omp.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/pmmintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/smmintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/ssp
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/ssp/ssp.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/ssp/stdio.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/ssp/string.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/ssp/unistd.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/stdarg.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/stdbool.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/stddef.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/stdfix.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/tmmintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/unwind.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/varargs.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/wmmintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/x86intrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/xmmintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/install-tools
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/install-tools/fixinc.sh
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/install-tools/fixinc_list
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/install-tools/fixincl
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/install-tools/gsyslimits.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/install-tools/include
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/install-tools/include/README
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/install-tools/include/limits.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/install-tools/macro_list
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/install-tools/mkheaders
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/install-tools/mkheaders.conf
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/install-tools/mkinstalldirs
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/libgcc.a
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/libgcc_eh.a
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/libgcov.a
+#usr/lib/libgomp.a
+#usr/lib/libgomp.la
+#usr/lib/libgomp.so
+usr/lib/libgomp.so.1
+usr/lib/libgomp.so.1.0.0
+#usr/lib/libgomp.spec
 #usr/lib/libmudflap.a
 #usr/lib/libmudflap.la
-usr/lib/libmudflap.so
+#usr/lib/libmudflap.so
 usr/lib/libmudflap.so.0
 usr/lib/libmudflap.so.0.0.0
 #usr/lib/libmudflapth.a
 #usr/lib/libmudflapth.la
-usr/lib/libmudflapth.so
+#usr/lib/libmudflapth.so
 usr/lib/libmudflapth.so.0
 usr/lib/libmudflapth.so.0.0.0
 #usr/lib/libssp.a
 #usr/lib/libssp.la
-usr/lib/libssp.so
+#usr/lib/libssp.so
 usr/lib/libssp.so.0
 usr/lib/libssp.so.0.0.0
 #usr/lib/libssp_nonshared.a
 #usr/lib/libssp_nonshared.la
 #usr/lib/libstdc++.a
-#usr/lib/libstdc++.la
-usr/lib/libstdc++.so
-usr/lib/libstdc++.so.6
-usr/lib/libstdc++.so.6.0.8
+usr/lib/libstdc++.so.6.0.13
 #usr/lib/libsupc++.a
 #usr/lib/libsupc++.la
+#usr/man
+#usr/man/man1
 #usr/man/man1/cpp.1
 #usr/man/man1/g++.1
 #usr/man/man1/gcc.1
index 2b0d06e4d490d6870ea41b43e11af3de8454b591..ca62948a3ac8841330f6d8a2298a785b870d1e23 100644 (file)
@@ -1,46 +1,48 @@
-etc/ld.so.cache
+#etc/ld.so.cache
 etc/localtime
-#etc/rpc
-lib/ld-2.3.6.so
+etc/rpc
+lib/ld-2.12.so
 lib/ld-linux.so.2
-#lib/libBrokenLocale-2.3.6.so
-#lib/libBrokenLocale.so.1
+lib/libBrokenLocale-2.12.so
+lib/libBrokenLocale.so.1
 #lib/libSegFault.so
-#lib/libanl-2.3.6.so
-#lib/libanl.so.1
-lib/libc-2.3.6.so
+lib/libanl-2.12.so
+lib/libanl.so.1
+lib/libc-2.12.so
 lib/libc.so.6
-lib/libcrypt-2.3.6.so
+lib/libcidn-2.12.so
+lib/libcidn.so.1
+lib/libcrypt-2.12.so
 lib/libcrypt.so.1
-lib/libdl-2.3.6.so
+lib/libdl-2.12.so
 lib/libdl.so.2
-lib/libm-2.3.6.so
+lib/libm-2.12.so
 lib/libm.so.6
 #lib/libmemusage.so
-lib/libnsl-2.3.6.so
+lib/libnsl-2.12.so
 lib/libnsl.so.1
-lib/libnss_compat-2.3.6.so
+lib/libnss_compat-2.12.so
 lib/libnss_compat.so.2
-lib/libnss_dns-2.3.6.so
+lib/libnss_dns-2.12.so
 lib/libnss_dns.so.2
-lib/libnss_files-2.3.6.so
+lib/libnss_files-2.12.so
 lib/libnss_files.so.2
-#lib/libnss_hesiod-2.3.6.so
-#lib/libnss_hesiod.so.2
-#lib/libnss_nis-2.3.6.so
-#lib/libnss_nis.so.2
-#lib/libnss_nisplus-2.3.6.so
-#lib/libnss_nisplus.so.2
+lib/libnss_hesiod-2.12.so
+lib/libnss_hesiod.so.2
+lib/libnss_nis-2.12.so
+lib/libnss_nis.so.2
+lib/libnss_nisplus-2.12.so
+lib/libnss_nisplus.so.2
 #lib/libpcprofile.so
-lib/libpthread-2.3.6.so
+lib/libpthread-2.12.so
 lib/libpthread.so.0
-lib/libresolv-2.3.6.so
+lib/libresolv-2.12.so
 lib/libresolv.so.2
-lib/librt-2.3.6.so
+lib/librt-2.12.so
 lib/librt.so.1
-#lib/libthread_db-1.0.so
-#lib/libthread_db.so.1
-lib/libutil-2.3.6.so
+lib/libthread_db-1.0.so
+lib/libthread_db.so.1
+lib/libutil-2.12.so
 lib/libutil.so.1
 sbin/ldconfig
 #sbin/sln
@@ -86,7 +88,9 @@ usr/bin/ldd
 #usr/include/bits/endian.h
 #usr/include/bits/environments.h
 #usr/include/bits/errno.h
+#usr/include/bits/error.h
 #usr/include/bits/fcntl.h
+#usr/include/bits/fcntl2.h
 #usr/include/bits/fenv.h
 #usr/include/bits/fenvinline.h
 #usr/include/bits/huge_val.h
@@ -100,13 +104,17 @@ usr/bin/ldd
 #usr/include/bits/ipc.h
 #usr/include/bits/ipctypes.h
 #usr/include/bits/libc-lock.h
+#usr/include/bits/libio-ldbl.h
+#usr/include/bits/link.h
 #usr/include/bits/local_lim.h
 #usr/include/bits/locale.h
 #usr/include/bits/mathcalls.h
 #usr/include/bits/mathdef.h
 #usr/include/bits/mathinline.h
 #usr/include/bits/mman.h
+#usr/include/bits/monetary-ldbl.h
 #usr/include/bits/mqueue.h
+#usr/include/bits/mqueue2.h
 #usr/include/bits/msq.h
 #usr/include/bits/nan.h
 #usr/include/bits/netdb.h
@@ -114,6 +122,7 @@ usr/bin/ldd
 #usr/include/bits/posix1_lim.h
 #usr/include/bits/posix2_lim.h
 #usr/include/bits/posix_opt.h
+#usr/include/bits/printf-ldbl.h
 #usr/include/bits/pthreadtypes.h
 #usr/include/bits/resource.h
 #usr/include/bits/sched.h
@@ -121,6 +130,7 @@ usr/bin/ldd
 #usr/include/bits/sem.h
 #usr/include/bits/semaphore.h
 #usr/include/bits/setjmp.h
+#usr/include/bits/setjmp2.h
 #usr/include/bits/shm.h
 #usr/include/bits/sigaction.h
 #usr/include/bits/sigcontext.h
@@ -131,35 +141,43 @@ usr/bin/ldd
 #usr/include/bits/sigthread.h
 #usr/include/bits/sockaddr.h
 #usr/include/bits/socket.h
+#usr/include/bits/socket2.h
 #usr/include/bits/stab.def
 #usr/include/bits/stat.h
 #usr/include/bits/statfs.h
 #usr/include/bits/statvfs.h
+#usr/include/bits/stdio-ldbl.h
 #usr/include/bits/stdio-lock.h
 #usr/include/bits/stdio.h
 #usr/include/bits/stdio2.h
 #usr/include/bits/stdio_lim.h
+#usr/include/bits/stdlib-ldbl.h
+#usr/include/bits/stdlib.h
 #usr/include/bits/string.h
 #usr/include/bits/string2.h
 #usr/include/bits/string3.h
-#usr/include/bits/stropts.h
 #usr/include/bits/sys_errlist.h
 #usr/include/bits/syscall.h
+#usr/include/bits/syslog-ldbl.h
+#usr/include/bits/syslog-path.h
+#usr/include/bits/syslog.h
 #usr/include/bits/termios.h
 #usr/include/bits/time.h
 #usr/include/bits/types.h
 #usr/include/bits/typesizes.h
 #usr/include/bits/uio.h
+#usr/include/bits/unistd.h
 #usr/include/bits/ustat.h
 #usr/include/bits/utmp.h
 #usr/include/bits/utmpx.h
 #usr/include/bits/utsname.h
 #usr/include/bits/waitflags.h
 #usr/include/bits/waitstatus.h
+#usr/include/bits/wchar-ldbl.h
 #usr/include/bits/wchar.h
+#usr/include/bits/wchar2.h
 #usr/include/bits/wordsize.h
 #usr/include/bits/xopen_lim.h
-#usr/include/bits/xtitypes.h
 #usr/include/byteswap.h
 #usr/include/complex.h
 #usr/include/cpio.h
@@ -190,8 +208,10 @@ usr/bin/ldd
 #usr/include/gnu-versions.h
 #usr/include/gnu/lib-names.h
 #usr/include/gnu/libc-version.h
+#usr/include/gnu/stubs-32.h
 #usr/include/gnu/stubs.h
 #usr/include/grp.h
+#usr/include/gshadow.h
 #usr/include/iconv.h
 #usr/include/ieee754.h
 #usr/include/ifaddrs.h
@@ -247,6 +267,8 @@ usr/bin/ldd
 #usr/include/netinet/udp.h
 #usr/include/netipx
 #usr/include/netipx/ipx.h
+#usr/include/netiucv
+#usr/include/netiucv/iucv.h
 #usr/include/netpacket
 #usr/include/netpacket/packet.h
 #usr/include/netrom
@@ -332,7 +354,6 @@ usr/bin/ldd
 #usr/include/rpcsvc/yppasswd.x
 #usr/include/rpcsvc/ypupd.h
 #usr/include/sched.h
-#usr/include/scsi
 #usr/include/scsi/scsi.h
 #usr/include/scsi/scsi_ioctl.h
 #usr/include/scsi/sg.h
@@ -350,7 +371,6 @@ usr/bin/ldd
 #usr/include/stdlib.h
 #usr/include/string.h
 #usr/include/strings.h
-#usr/include/stropts.h
 #usr/include/sys
 #usr/include/sys/acct.h
 #usr/include/sys/bitypes.h
@@ -360,6 +380,7 @@ usr/bin/ldd
 #usr/include/sys/elf.h
 #usr/include/sys/epoll.h
 #usr/include/sys/errno.h
+#usr/include/sys/eventfd.h
 #usr/include/sys/fcntl.h
 #usr/include/sys/file.h
 #usr/include/sys/fsuid.h
@@ -396,13 +417,13 @@ usr/bin/ldd
 #usr/include/sys/sendfile.h
 #usr/include/sys/shm.h
 #usr/include/sys/signal.h
+#usr/include/sys/signalfd.h
 #usr/include/sys/socket.h
 #usr/include/sys/socketvar.h
 #usr/include/sys/soundcard.h
 #usr/include/sys/stat.h
 #usr/include/sys/statfs.h
 #usr/include/sys/statvfs.h
-#usr/include/sys/stropts.h
 #usr/include/sys/swap.h
 #usr/include/sys/syscall.h
 #usr/include/sys/sysctl.h
@@ -412,6 +433,7 @@ usr/bin/ldd
 #usr/include/sys/termios.h
 #usr/include/sys/time.h
 #usr/include/sys/timeb.h
+#usr/include/sys/timerfd.h
 #usr/include/sys/times.h
 #usr/include/sys/timex.h
 #usr/include/sys/ttychars.h
@@ -455,20 +477,6 @@ usr/bin/ldd
 #usr/include/wctype.h
 #usr/include/wordexp.h
 #usr/include/xlocale.h
-#usr/info
-#usr/info/dir
-#usr/info/libc.info
-#usr/info/libc.info-1
-#usr/info/libc.info-10
-#usr/info/libc.info-11
-#usr/info/libc.info-2
-#usr/info/libc.info-3
-#usr/info/libc.info-4
-#usr/info/libc.info-5
-#usr/info/libc.info-6
-#usr/info/libc.info-7
-#usr/info/libc.info-8
-#usr/info/libc.info-9
 #usr/lib/Mcrt1.o
 #usr/lib/Scrt1.o
 #usr/lib/crt1.o
@@ -480,6 +488,7 @@ usr/lib/gconv
 #usr/lib/gconv/ASMO_449.so
 #usr/lib/gconv/BIG5.so
 #usr/lib/gconv/BIG5HKSCS.so
+#usr/lib/gconv/BRF.so
 #usr/lib/gconv/CP10007.so
 #usr/lib/gconv/CP1125.so
 #usr/lib/gconv/CP1250.so
@@ -530,22 +539,60 @@ usr/lib/gconv
 #usr/lib/gconv/GREEK-CCITT.so
 #usr/lib/gconv/GREEK7-OLD.so
 #usr/lib/gconv/GREEK7.so
+#usr/lib/gconv/HP-GREEK8.so
 #usr/lib/gconv/HP-ROMAN8.so
+#usr/lib/gconv/HP-ROMAN9.so
+#usr/lib/gconv/HP-THAI8.so
+#usr/lib/gconv/HP-TURKISH8.so
 #usr/lib/gconv/IBM037.so
 #usr/lib/gconv/IBM038.so
 #usr/lib/gconv/IBM1004.so
+#usr/lib/gconv/IBM1008.so
+#usr/lib/gconv/IBM1008_420.so
+#usr/lib/gconv/IBM1025.so
 #usr/lib/gconv/IBM1026.so
 #usr/lib/gconv/IBM1046.so
 #usr/lib/gconv/IBM1047.so
+#usr/lib/gconv/IBM1097.so
+#usr/lib/gconv/IBM1112.so
+#usr/lib/gconv/IBM1122.so
+#usr/lib/gconv/IBM1123.so
 #usr/lib/gconv/IBM1124.so
 #usr/lib/gconv/IBM1129.so
+#usr/lib/gconv/IBM1130.so
 #usr/lib/gconv/IBM1132.so
 #usr/lib/gconv/IBM1133.so
+#usr/lib/gconv/IBM1137.so
+#usr/lib/gconv/IBM1140.so
+#usr/lib/gconv/IBM1141.so
+#usr/lib/gconv/IBM1142.so
+#usr/lib/gconv/IBM1143.so
+#usr/lib/gconv/IBM1144.so
+#usr/lib/gconv/IBM1145.so
+#usr/lib/gconv/IBM1146.so
+#usr/lib/gconv/IBM1147.so
+#usr/lib/gconv/IBM1148.so
+#usr/lib/gconv/IBM1149.so
+#usr/lib/gconv/IBM1153.so
+#usr/lib/gconv/IBM1154.so
+#usr/lib/gconv/IBM1155.so
+#usr/lib/gconv/IBM1156.so
+#usr/lib/gconv/IBM1157.so
+#usr/lib/gconv/IBM1158.so
 #usr/lib/gconv/IBM1160.so
 #usr/lib/gconv/IBM1161.so
 #usr/lib/gconv/IBM1162.so
 #usr/lib/gconv/IBM1163.so
 #usr/lib/gconv/IBM1164.so
+#usr/lib/gconv/IBM1166.so
+#usr/lib/gconv/IBM1167.so
+#usr/lib/gconv/IBM12712.so
+#usr/lib/gconv/IBM1364.so
+#usr/lib/gconv/IBM1371.so
+#usr/lib/gconv/IBM1388.so
+#usr/lib/gconv/IBM1390.so
+#usr/lib/gconv/IBM1399.so
+#usr/lib/gconv/IBM16804.so
 #usr/lib/gconv/IBM256.so
 #usr/lib/gconv/IBM273.so
 #usr/lib/gconv/IBM274.so
@@ -562,7 +609,13 @@ usr/lib/gconv
 #usr/lib/gconv/IBM423.so
 #usr/lib/gconv/IBM424.so
 #usr/lib/gconv/IBM437.so
+#usr/lib/gconv/IBM4517.so
+#usr/lib/gconv/IBM4899.so
+#usr/lib/gconv/IBM4909.so
+#usr/lib/gconv/IBM4971.so
 #usr/lib/gconv/IBM500.so
+#usr/lib/gconv/IBM5347.so
+#usr/lib/gconv/IBM803.so
 #usr/lib/gconv/IBM850.so
 #usr/lib/gconv/IBM851.so
 #usr/lib/gconv/IBM852.so
@@ -585,10 +638,15 @@ usr/lib/gconv
 #usr/lib/gconv/IBM875.so
 #usr/lib/gconv/IBM880.so
 #usr/lib/gconv/IBM891.so
+#usr/lib/gconv/IBM901.so
+#usr/lib/gconv/IBM902.so
 #usr/lib/gconv/IBM903.so
+#usr/lib/gconv/IBM9030.so
 #usr/lib/gconv/IBM904.so
 #usr/lib/gconv/IBM905.so
+#usr/lib/gconv/IBM9066.so
 #usr/lib/gconv/IBM918.so
+#usr/lib/gconv/IBM921.so
 #usr/lib/gconv/IBM922.so
 #usr/lib/gconv/IBM930.so
 #usr/lib/gconv/IBM932.so
@@ -597,6 +655,7 @@ usr/lib/gconv
 #usr/lib/gconv/IBM937.so
 #usr/lib/gconv/IBM939.so
 #usr/lib/gconv/IBM943.so
+#usr/lib/gconv/IBM9448.so
 #usr/lib/gconv/IEC_P27-1.so
 #usr/lib/gconv/INIS-8.so
 #usr/lib/gconv/INIS-CYRILLIC.so
@@ -625,7 +684,9 @@ usr/lib/gconv
 #usr/lib/gconv/ISO8859-7.so
 #usr/lib/gconv/ISO8859-8.so
 #usr/lib/gconv/ISO8859-9.so
+#usr/lib/gconv/ISO8859-9E.so
 #usr/lib/gconv/ISO_10367-BOX.so
+#usr/lib/gconv/ISO_11548-1.so
 #usr/lib/gconv/ISO_2033.so
 #usr/lib/gconv/ISO_5427-EXT.so
 #usr/lib/gconv/ISO_5427.so
@@ -635,14 +696,17 @@ usr/lib/gconv
 #usr/lib/gconv/JOHAB.so
 #usr/lib/gconv/KOI-8.so
 #usr/lib/gconv/KOI8-R.so
+#usr/lib/gconv/KOI8-RU.so
 #usr/lib/gconv/KOI8-T.so
 #usr/lib/gconv/KOI8-U.so
 #usr/lib/gconv/LATIN-GREEK-1.so
 #usr/lib/gconv/LATIN-GREEK.so
+#usr/lib/gconv/MAC-CENTRALEUROPE.so
 #usr/lib/gconv/MAC-IS.so
 #usr/lib/gconv/MAC-SAMI.so
 #usr/lib/gconv/MAC-UK.so
 #usr/lib/gconv/MACINTOSH.so
+#usr/lib/gconv/MIK.so
 #usr/lib/gconv/NATS-DANO.so
 #usr/lib/gconv/NATS-SEFI.so
 #usr/lib/gconv/PT154.so
@@ -672,6 +736,8 @@ usr/lib/gconv
 #usr/lib/glibc/getconf
 #usr/lib/glibc/getconf/POSIX_V6_ILP32_OFF32
 #usr/lib/glibc/getconf/POSIX_V6_ILP32_OFFBIG
+#usr/lib/glibc/getconf/POSIX_V7_ILP32_OFF32
+#usr/lib/glibc/getconf/POSIX_V7_ILP32_OFFBIG
 #usr/lib/glibc/pt_chown
 #usr/lib/libBrokenLocale.a
 #usr/lib/libBrokenLocale.so
@@ -681,6 +747,7 @@ usr/lib/gconv
 #usr/lib/libc.a
 #usr/lib/libc.so
 #usr/lib/libc_nonshared.a
+#usr/lib/libcidn.so
 #usr/lib/libcrypt.a
 #usr/lib/libcrypt.so
 #usr/lib/libdl.a
@@ -713,7 +780,6 @@ usr/lib/gconv
 usr/lib/locale/locale-archive
 #usr/sbin/iconvconfig
 #usr/sbin/nscd
-#usr/sbin/nscd_nischeck
 #usr/sbin/rpcinfo
 #usr/sbin/zdump
 #usr/sbin/zic
@@ -725,6 +791,7 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/charmaps/ASMO_449.gz
 #usr/share/i18n/charmaps/BIG5-HKSCS.gz
 #usr/share/i18n/charmaps/BIG5.gz
+#usr/share/i18n/charmaps/BRF.gz
 #usr/share/i18n/charmaps/BS_4730.gz
 #usr/share/i18n/charmaps/BS_VIEWDATA.gz
 #usr/share/i18n/charmaps/CP10007.gz
@@ -783,7 +850,11 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/charmaps/GREEK-CCITT.gz
 #usr/share/i18n/charmaps/GREEK7-OLD.gz
 #usr/share/i18n/charmaps/GREEK7.gz
+#usr/share/i18n/charmaps/HP-GREEK8.gz
 #usr/share/i18n/charmaps/HP-ROMAN8.gz
+#usr/share/i18n/charmaps/HP-ROMAN9.gz
+#usr/share/i18n/charmaps/HP-THAI8.gz
+#usr/share/i18n/charmaps/HP-TURKISH8.gz
 #usr/share/i18n/charmaps/IBM037.gz
 #usr/share/i18n/charmaps/IBM038.gz
 #usr/share/i18n/charmaps/IBM1004.gz
@@ -863,11 +934,13 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/charmaps/ISO-8859-7.gz
 #usr/share/i18n/charmaps/ISO-8859-8.gz
 #usr/share/i18n/charmaps/ISO-8859-9.gz
+#usr/share/i18n/charmaps/ISO-8859-9E.gz
 #usr/share/i18n/charmaps/ISO-IR-197.gz
 #usr/share/i18n/charmaps/ISO-IR-209.gz
 #usr/share/i18n/charmaps/ISO-IR-90.gz
 #usr/share/i18n/charmaps/ISO_10367-BOX.gz
 #usr/share/i18n/charmaps/ISO_10646.gz
+#usr/share/i18n/charmaps/ISO_11548-1.gz
 #usr/share/i18n/charmaps/ISO_2033-1983.gz
 #usr/share/i18n/charmaps/ISO_5427-EXT.gz
 #usr/share/i18n/charmaps/ISO_5427.gz
@@ -895,16 +968,19 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/charmaps/JUS_I.B1.003-SERB.gz
 #usr/share/i18n/charmaps/KOI-8.gz
 #usr/share/i18n/charmaps/KOI8-R.gz
+#usr/share/i18n/charmaps/KOI8-RU.gz
 #usr/share/i18n/charmaps/KOI8-T.gz
 #usr/share/i18n/charmaps/KOI8-U.gz
 #usr/share/i18n/charmaps/KSC5636.gz
 #usr/share/i18n/charmaps/LATIN-GREEK-1.gz
 #usr/share/i18n/charmaps/LATIN-GREEK.gz
+#usr/share/i18n/charmaps/MAC-CENTRALEUROPE.gz
 #usr/share/i18n/charmaps/MAC-CYRILLIC.gz
 #usr/share/i18n/charmaps/MAC-IS.gz
 #usr/share/i18n/charmaps/MAC-SAMI.gz
 #usr/share/i18n/charmaps/MAC-UK.gz
 #usr/share/i18n/charmaps/MACINTOSH.gz
+#usr/share/i18n/charmaps/MIK.gz
 #usr/share/i18n/charmaps/MSZ_7795.3.gz
 #usr/share/i18n/charmaps/NATS-DANO-ADD.gz
 #usr/share/i18n/charmaps/NATS-DANO.gz
@@ -963,18 +1039,31 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/locales/ar_SY
 #usr/share/i18n/locales/ar_TN
 #usr/share/i18n/locales/ar_YE
+#usr/share/i18n/locales/as_IN
+#usr/share/i18n/locales/ast_ES
 #usr/share/i18n/locales/az_AZ
 #usr/share/i18n/locales/be_BY
+#usr/share/i18n/locales/be_BY@latin
+#usr/share/i18n/locales/ber_DZ
+#usr/share/i18n/locales/ber_MA
 #usr/share/i18n/locales/bg_BG
 #usr/share/i18n/locales/bn_BD
 #usr/share/i18n/locales/bn_IN
+#usr/share/i18n/locales/bo_CN
+#usr/share/i18n/locales/bo_IN
 #usr/share/i18n/locales/br_FR
 #usr/share/i18n/locales/br_FR@euro
 #usr/share/i18n/locales/bs_BA
 #usr/share/i18n/locales/byn_ER
+#usr/share/i18n/locales/ca_AD
 #usr/share/i18n/locales/ca_ES
 #usr/share/i18n/locales/ca_ES@euro
+#usr/share/i18n/locales/ca_FR
+#usr/share/i18n/locales/ca_IT
+#usr/share/i18n/locales/crh_UA
 #usr/share/i18n/locales/cs_CZ
+#usr/share/i18n/locales/csb_PL
+#usr/share/i18n/locales/cv_RU
 #usr/share/i18n/locales/cy_GB
 #usr/share/i18n/locales/da_DK
 #usr/share/i18n/locales/de_AT
@@ -986,8 +1075,12 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/locales/de_DE@euro
 #usr/share/i18n/locales/de_LU
 #usr/share/i18n/locales/de_LU@euro
+#usr/share/i18n/locales/dv_MV
+#usr/share/i18n/locales/dz_BT
+#usr/share/i18n/locales/el_CY
 #usr/share/i18n/locales/el_GR
 #usr/share/i18n/locales/el_GR@euro
+#usr/share/i18n/locales/en_AG
 #usr/share/i18n/locales/en_AU
 #usr/share/i18n/locales/en_BW
 #usr/share/i18n/locales/en_CA
@@ -997,6 +1090,7 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/locales/en_IE
 #usr/share/i18n/locales/en_IE@euro
 #usr/share/i18n/locales/en_IN
+#usr/share/i18n/locales/en_NG
 #usr/share/i18n/locales/en_NZ
 #usr/share/i18n/locales/en_PH
 #usr/share/i18n/locales/en_SG
@@ -1030,6 +1124,7 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/locales/fa_IR
 #usr/share/i18n/locales/fi_FI
 #usr/share/i18n/locales/fi_FI@euro
+#usr/share/i18n/locales/fil_PH
 #usr/share/i18n/locales/fo_FO
 #usr/share/i18n/locales/fr_BE
 #usr/share/i18n/locales/fr_BE@euro
@@ -1039,6 +1134,9 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/locales/fr_FR@euro
 #usr/share/i18n/locales/fr_LU
 #usr/share/i18n/locales/fr_LU@euro
+#usr/share/i18n/locales/fur_IT
+#usr/share/i18n/locales/fy_DE
+#usr/share/i18n/locales/fy_NL
 #usr/share/i18n/locales/ga_IE
 #usr/share/i18n/locales/ga_IE@euro
 #usr/share/i18n/locales/gd_GB
@@ -1050,30 +1148,49 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/locales/gl_ES@euro
 #usr/share/i18n/locales/gu_IN
 #usr/share/i18n/locales/gv_GB
+#usr/share/i18n/locales/ha_NG
 #usr/share/i18n/locales/he_IL
 #usr/share/i18n/locales/hi_IN
+#usr/share/i18n/locales/hne_IN
 #usr/share/i18n/locales/hr_HR
+#usr/share/i18n/locales/hsb_DE
+#usr/share/i18n/locales/ht_HT
 #usr/share/i18n/locales/hu_HU
 #usr/share/i18n/locales/hy_AM
 #usr/share/i18n/locales/i18n
 #usr/share/i18n/locales/id_ID
+#usr/share/i18n/locales/ig_NG
+#usr/share/i18n/locales/ik_CA
 #usr/share/i18n/locales/is_IS
 #usr/share/i18n/locales/iso14651_t1
+#usr/share/i18n/locales/iso14651_t1_common
+#usr/share/i18n/locales/iso14651_t1_pinyin
 #usr/share/i18n/locales/it_CH
 #usr/share/i18n/locales/it_IT
 #usr/share/i18n/locales/it_IT@euro
+#usr/share/i18n/locales/iu_CA
 #usr/share/i18n/locales/iw_IL
 #usr/share/i18n/locales/ja_JP
 #usr/share/i18n/locales/ka_GE
 #usr/share/i18n/locales/kk_KZ
 #usr/share/i18n/locales/kl_GL
+#usr/share/i18n/locales/km_KH
 #usr/share/i18n/locales/kn_IN
 #usr/share/i18n/locales/ko_KR
+#usr/share/i18n/locales/kok_IN
+#usr/share/i18n/locales/ks_IN
+#usr/share/i18n/locales/ks_IN@devanagari
+#usr/share/i18n/locales/ku_TR
 #usr/share/i18n/locales/kw_GB
+#usr/share/i18n/locales/ky_KG
 #usr/share/i18n/locales/lg_UG
+#usr/share/i18n/locales/li_BE
+#usr/share/i18n/locales/li_NL
 #usr/share/i18n/locales/lo_LA
 #usr/share/i18n/locales/lt_LT
 #usr/share/i18n/locales/lv_LV
+#usr/share/i18n/locales/mai_IN
+#usr/share/i18n/locales/mg_MG
 #usr/share/i18n/locales/mi_NZ
 #usr/share/i18n/locales/mk_MK
 #usr/share/i18n/locales/ml_IN
@@ -1081,25 +1198,44 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/locales/mr_IN
 #usr/share/i18n/locales/ms_MY
 #usr/share/i18n/locales/mt_MT
+#usr/share/i18n/locales/my_MM
+#usr/share/i18n/locales/nan_TW@latin
 #usr/share/i18n/locales/nb_NO
+#usr/share/i18n/locales/nds_DE
+#usr/share/i18n/locales/nds_NL
 #usr/share/i18n/locales/ne_NP
+#usr/share/i18n/locales/nl_AW
 #usr/share/i18n/locales/nl_BE
 #usr/share/i18n/locales/nl_BE@euro
 #usr/share/i18n/locales/nl_NL
 #usr/share/i18n/locales/nl_NL@euro
 #usr/share/i18n/locales/nn_NO
+#usr/share/i18n/locales/no_NO
+#usr/share/i18n/locales/nr_ZA
+#usr/share/i18n/locales/nso_ZA
 #usr/share/i18n/locales/oc_FR
 #usr/share/i18n/locales/om_ET
 #usr/share/i18n/locales/om_KE
+#usr/share/i18n/locales/or_IN
 #usr/share/i18n/locales/pa_IN
+#usr/share/i18n/locales/pa_PK
+#usr/share/i18n/locales/pap_AN
 #usr/share/i18n/locales/pl_PL
+#usr/share/i18n/locales/ps_AF
 #usr/share/i18n/locales/pt_BR
 #usr/share/i18n/locales/pt_PT
 #usr/share/i18n/locales/pt_PT@euro
 #usr/share/i18n/locales/ro_RO
 #usr/share/i18n/locales/ru_RU
 #usr/share/i18n/locales/ru_UA
+#usr/share/i18n/locales/rw_RW
+#usr/share/i18n/locales/sa_IN
+#usr/share/i18n/locales/sc_IT
+#usr/share/i18n/locales/sd_IN
+#usr/share/i18n/locales/sd_IN@devanagari
 #usr/share/i18n/locales/se_NO
+#usr/share/i18n/locales/shs_CA
+#usr/share/i18n/locales/si_LK
 #usr/share/i18n/locales/sid_ET
 #usr/share/i18n/locales/sk_SK
 #usr/share/i18n/locales/sl_SI
@@ -1108,7 +1244,11 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/locales/so_KE
 #usr/share/i18n/locales/so_SO
 #usr/share/i18n/locales/sq_AL
-#usr/share/i18n/locales/sr_CS
+#usr/share/i18n/locales/sq_MK
+#usr/share/i18n/locales/sr_ME
+#usr/share/i18n/locales/sr_RS
+#usr/share/i18n/locales/sr_RS@latin
+#usr/share/i18n/locales/ss_ZA
 #usr/share/i18n/locales/st_ZA
 #usr/share/i18n/locales/sv_FI
 #usr/share/i18n/locales/sv_FI@euro
@@ -1120,7 +1260,10 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/locales/ti_ER
 #usr/share/i18n/locales/ti_ET
 #usr/share/i18n/locales/tig_ER
+#usr/share/i18n/locales/tk_TM
 #usr/share/i18n/locales/tl_PH
+#usr/share/i18n/locales/tn_ZA
+#usr/share/i18n/locales/tr_CY
 #usr/share/i18n/locales/tr_TR
 #usr/share/i18n/locales/translit_circle
 #usr/share/i18n/locales/translit_cjk_compat
@@ -1134,25 +1277,48 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/locales/translit_neutral
 #usr/share/i18n/locales/translit_small
 #usr/share/i18n/locales/translit_wide
+#usr/share/i18n/locales/ts_ZA
 #usr/share/i18n/locales/tt_RU
+#usr/share/i18n/locales/tt_RU@iqtelif
+#usr/share/i18n/locales/ug_CN
 #usr/share/i18n/locales/uk_UA
+#usr/share/i18n/locales/ur_IN
 #usr/share/i18n/locales/ur_PK
 #usr/share/i18n/locales/uz_UZ
 #usr/share/i18n/locales/uz_UZ@cyrillic
+#usr/share/i18n/locales/ve_ZA
 #usr/share/i18n/locales/vi_VN
 #usr/share/i18n/locales/wa_BE
 #usr/share/i18n/locales/wa_BE@euro
 #usr/share/i18n/locales/wal_ET
+#usr/share/i18n/locales/wo_SN
 #usr/share/i18n/locales/xh_ZA
 #usr/share/i18n/locales/yi_US
+#usr/share/i18n/locales/yo_NG
 #usr/share/i18n/locales/zh_CN
 #usr/share/i18n/locales/zh_HK
 #usr/share/i18n/locales/zh_SG
 #usr/share/i18n/locales/zh_TW
 #usr/share/i18n/locales/zu_ZA
+#usr/share/info/dir
+#usr/share/info/libc.info
+#usr/share/info/libc.info-1
+#usr/share/info/libc.info-10
+#usr/share/info/libc.info-11
+#usr/share/info/libc.info-2
+#usr/share/info/libc.info-3
+#usr/share/info/libc.info-4
+#usr/share/info/libc.info-5
+#usr/share/info/libc.info-6
+#usr/share/info/libc.info-7
+#usr/share/info/libc.info-8
+#usr/share/info/libc.info-9
 #usr/share/locale/be
 #usr/share/locale/be/LC_MESSAGES
 #usr/share/locale/be/LC_MESSAGES/libc.mo
+#usr/share/locale/bg
+#usr/share/locale/bg/LC_MESSAGES
+#usr/share/locale/bg/LC_MESSAGES/libc.mo
 #usr/share/locale/ca
 #usr/share/locale/ca/LC_MESSAGES
 #usr/share/locale/ca/LC_MESSAGES/libc.mo
@@ -1189,6 +1355,9 @@ usr/lib/locale/locale-archive
 #usr/share/locale/hu
 #usr/share/locale/hu/LC_MESSAGES
 #usr/share/locale/hu/LC_MESSAGES/libc.mo
+#usr/share/locale/id
+#usr/share/locale/id/LC_MESSAGES
+#usr/share/locale/id/LC_MESSAGES/libc.mo
 #usr/share/locale/it
 #usr/share/locale/it/LC_MESSAGES
 #usr/share/locale/it/LC_MESSAGES/libc.mo
@@ -1199,6 +1368,9 @@ usr/lib/locale/locale-archive
 #usr/share/locale/ko/LC_MESSAGES
 #usr/share/locale/ko/LC_MESSAGES/libc.mo
 #usr/share/locale/locale.alias
+#usr/share/locale/lt
+#usr/share/locale/lt/LC_MESSAGES
+#usr/share/locale/lt/LC_MESSAGES/libc.mo
 #usr/share/locale/nb
 #usr/share/locale/nb/LC_MESSAGES
 #usr/share/locale/nb/LC_MESSAGES/libc.mo
@@ -1211,6 +1383,12 @@ usr/lib/locale/locale-archive
 #usr/share/locale/pt_BR
 #usr/share/locale/pt_BR/LC_MESSAGES
 #usr/share/locale/pt_BR/LC_MESSAGES/libc.mo
+#usr/share/locale/ru
+#usr/share/locale/ru/LC_MESSAGES
+#usr/share/locale/ru/LC_MESSAGES/libc.mo
+#usr/share/locale/rw
+#usr/share/locale/rw/LC_MESSAGES
+#usr/share/locale/rw/LC_MESSAGES/libc.mo
 #usr/share/locale/sk
 #usr/share/locale/sk/LC_MESSAGES
 #usr/share/locale/sk/LC_MESSAGES/libc.mo
@@ -1220,1739 +1398,14 @@ usr/lib/locale/locale-archive
 #usr/share/locale/tr
 #usr/share/locale/tr/LC_MESSAGES
 #usr/share/locale/tr/LC_MESSAGES/libc.mo
+#usr/share/locale/vi
+#usr/share/locale/vi/LC_MESSAGES
+#usr/share/locale/vi/LC_MESSAGES/libc.mo
 #usr/share/locale/zh_CN
 #usr/share/locale/zh_CN/LC_MESSAGES
 #usr/share/locale/zh_CN/LC_MESSAGES/libc.mo
 #usr/share/locale/zh_TW
 #usr/share/locale/zh_TW/LC_MESSAGES
 #usr/share/locale/zh_TW/LC_MESSAGES/libc.mo
-#usr/share/zoneinfo/Africa
-#usr/share/zoneinfo/Africa/Abidjan
-#usr/share/zoneinfo/Africa/Accra
-#usr/share/zoneinfo/Africa/Addis_Ababa
-#usr/share/zoneinfo/Africa/Algiers
-#usr/share/zoneinfo/Africa/Asmera
-#usr/share/zoneinfo/Africa/Bamako
-#usr/share/zoneinfo/Africa/Bangui
-#usr/share/zoneinfo/Africa/Banjul
-#usr/share/zoneinfo/Africa/Bissau
-#usr/share/zoneinfo/Africa/Blantyre
-#usr/share/zoneinfo/Africa/Brazzaville
-#usr/share/zoneinfo/Africa/Bujumbura
-#usr/share/zoneinfo/Africa/Cairo
-#usr/share/zoneinfo/Africa/Casablanca
-#usr/share/zoneinfo/Africa/Ceuta
-#usr/share/zoneinfo/Africa/Conakry
-#usr/share/zoneinfo/Africa/Dakar
-#usr/share/zoneinfo/Africa/Dar_es_Salaam
-#usr/share/zoneinfo/Africa/Djibouti
-#usr/share/zoneinfo/Africa/Douala
-#usr/share/zoneinfo/Africa/El_Aaiun
-#usr/share/zoneinfo/Africa/Freetown
-#usr/share/zoneinfo/Africa/Gaborone
-#usr/share/zoneinfo/Africa/Harare
-#usr/share/zoneinfo/Africa/Johannesburg
-#usr/share/zoneinfo/Africa/Kampala
-#usr/share/zoneinfo/Africa/Khartoum
-#usr/share/zoneinfo/Africa/Kigali
-#usr/share/zoneinfo/Africa/Kinshasa
-#usr/share/zoneinfo/Africa/Lagos
-#usr/share/zoneinfo/Africa/Libreville
-#usr/share/zoneinfo/Africa/Lome
-#usr/share/zoneinfo/Africa/Luanda
-#usr/share/zoneinfo/Africa/Lubumbashi
-#usr/share/zoneinfo/Africa/Lusaka
-#usr/share/zoneinfo/Africa/Malabo
-#usr/share/zoneinfo/Africa/Maputo
-#usr/share/zoneinfo/Africa/Maseru
-#usr/share/zoneinfo/Africa/Mbabane
-#usr/share/zoneinfo/Africa/Mogadishu
-#usr/share/zoneinfo/Africa/Monrovia
-#usr/share/zoneinfo/Africa/Nairobi
-#usr/share/zoneinfo/Africa/Ndjamena
-#usr/share/zoneinfo/Africa/Niamey
-#usr/share/zoneinfo/Africa/Nouakchott
-#usr/share/zoneinfo/Africa/Ouagadougou
-#usr/share/zoneinfo/Africa/Porto-Novo
-#usr/share/zoneinfo/Africa/Sao_Tome
-#usr/share/zoneinfo/Africa/Timbuktu
-#usr/share/zoneinfo/Africa/Tripoli
-#usr/share/zoneinfo/Africa/Tunis
-#usr/share/zoneinfo/Africa/Windhoek
-#usr/share/zoneinfo/America
-#usr/share/zoneinfo/America/Adak
-#usr/share/zoneinfo/America/Anchorage
-#usr/share/zoneinfo/America/Anguilla
-#usr/share/zoneinfo/America/Antigua
-#usr/share/zoneinfo/America/Araguaina
-#usr/share/zoneinfo/America/Argentina
-#usr/share/zoneinfo/America/Argentina/Buenos_Aires
-#usr/share/zoneinfo/America/Argentina/Catamarca
-#usr/share/zoneinfo/America/Argentina/ComodRivadavia
-#usr/share/zoneinfo/America/Argentina/Cordoba
-#usr/share/zoneinfo/America/Argentina/Jujuy
-#usr/share/zoneinfo/America/Argentina/La_Rioja
-#usr/share/zoneinfo/America/Argentina/Mendoza
-#usr/share/zoneinfo/America/Argentina/Rio_Gallegos
-#usr/share/zoneinfo/America/Argentina/San_Juan
-#usr/share/zoneinfo/America/Argentina/Tucuman
-#usr/share/zoneinfo/America/Argentina/Ushuaia
-#usr/share/zoneinfo/America/Aruba
-#usr/share/zoneinfo/America/Asuncion
-#usr/share/zoneinfo/America/Atka
-#usr/share/zoneinfo/America/Bahia
-#usr/share/zoneinfo/America/Barbados
-#usr/share/zoneinfo/America/Belem
-#usr/share/zoneinfo/America/Belize
-#usr/share/zoneinfo/America/Boa_Vista
-#usr/share/zoneinfo/America/Bogota
-#usr/share/zoneinfo/America/Boise
-#usr/share/zoneinfo/America/Buenos_Aires
-#usr/share/zoneinfo/America/Cambridge_Bay
-#usr/share/zoneinfo/America/Campo_Grande
-#usr/share/zoneinfo/America/Cancun
-#usr/share/zoneinfo/America/Caracas
-#usr/share/zoneinfo/America/Catamarca
-#usr/share/zoneinfo/America/Cayenne
-#usr/share/zoneinfo/America/Cayman
-#usr/share/zoneinfo/America/Chicago
-#usr/share/zoneinfo/America/Chihuahua
-#usr/share/zoneinfo/America/Coral_Harbour
-#usr/share/zoneinfo/America/Cordoba
-#usr/share/zoneinfo/America/Costa_Rica
-#usr/share/zoneinfo/America/Cuiaba
-#usr/share/zoneinfo/America/Curacao
-#usr/share/zoneinfo/America/Danmarkshavn
-#usr/share/zoneinfo/America/Dawson
-#usr/share/zoneinfo/America/Dawson_Creek
-#usr/share/zoneinfo/America/Denver
-#usr/share/zoneinfo/America/Detroit
-#usr/share/zoneinfo/America/Dominica
-#usr/share/zoneinfo/America/Edmonton
-#usr/share/zoneinfo/America/Eirunepe
-#usr/share/zoneinfo/America/El_Salvador
-#usr/share/zoneinfo/America/Ensenada
-#usr/share/zoneinfo/America/Fort_Wayne
-#usr/share/zoneinfo/America/Fortaleza
-#usr/share/zoneinfo/America/Glace_Bay
-#usr/share/zoneinfo/America/Godthab
-#usr/share/zoneinfo/America/Goose_Bay
-#usr/share/zoneinfo/America/Grand_Turk
-#usr/share/zoneinfo/America/Grenada
-#usr/share/zoneinfo/America/Guadeloupe
-#usr/share/zoneinfo/America/Guatemala
-#usr/share/zoneinfo/America/Guayaquil
-#usr/share/zoneinfo/America/Guyana
-#usr/share/zoneinfo/America/Halifax
-#usr/share/zoneinfo/America/Havana
-#usr/share/zoneinfo/America/Hermosillo
-#usr/share/zoneinfo/America/Indiana
-#usr/share/zoneinfo/America/Indiana/Indianapolis
-#usr/share/zoneinfo/America/Indiana/Knox
-#usr/share/zoneinfo/America/Indiana/Marengo
-#usr/share/zoneinfo/America/Indiana/Vevay
-#usr/share/zoneinfo/America/Indianapolis
-#usr/share/zoneinfo/America/Inuvik
-#usr/share/zoneinfo/America/Iqaluit
-#usr/share/zoneinfo/America/Jamaica
-#usr/share/zoneinfo/America/Jujuy
-#usr/share/zoneinfo/America/Juneau
-#usr/share/zoneinfo/America/Kentucky
-#usr/share/zoneinfo/America/Kentucky/Louisville
-#usr/share/zoneinfo/America/Kentucky/Monticello
-#usr/share/zoneinfo/America/Knox_IN
-#usr/share/zoneinfo/America/La_Paz
-#usr/share/zoneinfo/America/Lima
-#usr/share/zoneinfo/America/Los_Angeles
-#usr/share/zoneinfo/America/Louisville
-#usr/share/zoneinfo/America/Maceio
-#usr/share/zoneinfo/America/Managua
-#usr/share/zoneinfo/America/Manaus
-#usr/share/zoneinfo/America/Martinique
-#usr/share/zoneinfo/America/Mazatlan
-#usr/share/zoneinfo/America/Mendoza
-#usr/share/zoneinfo/America/Menominee
-#usr/share/zoneinfo/America/Merida
-#usr/share/zoneinfo/America/Mexico_City
-#usr/share/zoneinfo/America/Miquelon
-#usr/share/zoneinfo/America/Monterrey
-#usr/share/zoneinfo/America/Montevideo
-#usr/share/zoneinfo/America/Montreal
-#usr/share/zoneinfo/America/Montserrat
-#usr/share/zoneinfo/America/Nassau
-#usr/share/zoneinfo/America/New_York
-#usr/share/zoneinfo/America/Nipigon
-#usr/share/zoneinfo/America/Nome
-#usr/share/zoneinfo/America/Noronha
-#usr/share/zoneinfo/America/North_Dakota
-#usr/share/zoneinfo/America/North_Dakota/Center
-#usr/share/zoneinfo/America/Panama
-#usr/share/zoneinfo/America/Pangnirtung
-#usr/share/zoneinfo/America/Paramaribo
-#usr/share/zoneinfo/America/Phoenix
-#usr/share/zoneinfo/America/Port-au-Prince
-#usr/share/zoneinfo/America/Port_of_Spain
-#usr/share/zoneinfo/America/Porto_Acre
-#usr/share/zoneinfo/America/Porto_Velho
-#usr/share/zoneinfo/America/Puerto_Rico
-#usr/share/zoneinfo/America/Rainy_River
-#usr/share/zoneinfo/America/Rankin_Inlet
-#usr/share/zoneinfo/America/Recife
-#usr/share/zoneinfo/America/Regina
-#usr/share/zoneinfo/America/Rio_Branco
-#usr/share/zoneinfo/America/Rosario
-#usr/share/zoneinfo/America/Santiago
-#usr/share/zoneinfo/America/Santo_Domingo
-#usr/share/zoneinfo/America/Sao_Paulo
-#usr/share/zoneinfo/America/Scoresbysund
-#usr/share/zoneinfo/America/Shiprock
-#usr/share/zoneinfo/America/St_Johns
-#usr/share/zoneinfo/America/St_Kitts
-#usr/share/zoneinfo/America/St_Lucia
-#usr/share/zoneinfo/America/St_Thomas
-#usr/share/zoneinfo/America/St_Vincent
-#usr/share/zoneinfo/America/Swift_Current
-#usr/share/zoneinfo/America/Tegucigalpa
-#usr/share/zoneinfo/America/Thule
-#usr/share/zoneinfo/America/Thunder_Bay
-#usr/share/zoneinfo/America/Tijuana
-#usr/share/zoneinfo/America/Toronto
-#usr/share/zoneinfo/America/Tortola
-#usr/share/zoneinfo/America/Vancouver
-#usr/share/zoneinfo/America/Virgin
-#usr/share/zoneinfo/America/Whitehorse
-#usr/share/zoneinfo/America/Winnipeg
-#usr/share/zoneinfo/America/Yakutat
-#usr/share/zoneinfo/America/Yellowknife
-#usr/share/zoneinfo/Antarctica
-#usr/share/zoneinfo/Antarctica/Casey
-#usr/share/zoneinfo/Antarctica/Davis
-#usr/share/zoneinfo/Antarctica/DumontDUrville
-#usr/share/zoneinfo/Antarctica/Mawson
-#usr/share/zoneinfo/Antarctica/McMurdo
-#usr/share/zoneinfo/Antarctica/Palmer
-#usr/share/zoneinfo/Antarctica/Rothera
-#usr/share/zoneinfo/Antarctica/South_Pole
-#usr/share/zoneinfo/Antarctica/Syowa
-#usr/share/zoneinfo/Antarctica/Vostok
-#usr/share/zoneinfo/Arctic
-#usr/share/zoneinfo/Arctic/Longyearbyen
-#usr/share/zoneinfo/Asia
-#usr/share/zoneinfo/Asia/Aden
-#usr/share/zoneinfo/Asia/Almaty
-#usr/share/zoneinfo/Asia/Amman
-#usr/share/zoneinfo/Asia/Anadyr
-#usr/share/zoneinfo/Asia/Aqtau
-#usr/share/zoneinfo/Asia/Aqtobe
-#usr/share/zoneinfo/Asia/Ashgabat
-#usr/share/zoneinfo/Asia/Ashkhabad
-#usr/share/zoneinfo/Asia/Baghdad
-#usr/share/zoneinfo/Asia/Bahrain
-#usr/share/zoneinfo/Asia/Baku
-#usr/share/zoneinfo/Asia/Bangkok
-#usr/share/zoneinfo/Asia/Beirut
-#usr/share/zoneinfo/Asia/Bishkek
-#usr/share/zoneinfo/Asia/Brunei
-#usr/share/zoneinfo/Asia/Calcutta
-#usr/share/zoneinfo/Asia/Choibalsan
-#usr/share/zoneinfo/Asia/Chongqing
-#usr/share/zoneinfo/Asia/Chungking
-#usr/share/zoneinfo/Asia/Colombo
-#usr/share/zoneinfo/Asia/Dacca
-#usr/share/zoneinfo/Asia/Damascus
-#usr/share/zoneinfo/Asia/Dhaka
-#usr/share/zoneinfo/Asia/Dili
-#usr/share/zoneinfo/Asia/Dubai
-#usr/share/zoneinfo/Asia/Dushanbe
-#usr/share/zoneinfo/Asia/Gaza
-#usr/share/zoneinfo/Asia/Harbin
-#usr/share/zoneinfo/Asia/Hong_Kong
-#usr/share/zoneinfo/Asia/Hovd
-#usr/share/zoneinfo/Asia/Irkutsk
-#usr/share/zoneinfo/Asia/Istanbul
-#usr/share/zoneinfo/Asia/Jakarta
-#usr/share/zoneinfo/Asia/Jayapura
-#usr/share/zoneinfo/Asia/Jerusalem
-#usr/share/zoneinfo/Asia/Kabul
-#usr/share/zoneinfo/Asia/Kamchatka
-#usr/share/zoneinfo/Asia/Karachi
-#usr/share/zoneinfo/Asia/Kashgar
-#usr/share/zoneinfo/Asia/Katmandu
-#usr/share/zoneinfo/Asia/Krasnoyarsk
-#usr/share/zoneinfo/Asia/Kuala_Lumpur
-#usr/share/zoneinfo/Asia/Kuching
-#usr/share/zoneinfo/Asia/Kuwait
-#usr/share/zoneinfo/Asia/Macao
-#usr/share/zoneinfo/Asia/Macau
-#usr/share/zoneinfo/Asia/Magadan
-#usr/share/zoneinfo/Asia/Makassar
-#usr/share/zoneinfo/Asia/Manila
-#usr/share/zoneinfo/Asia/Muscat
-#usr/share/zoneinfo/Asia/Nicosia
-#usr/share/zoneinfo/Asia/Novosibirsk
-#usr/share/zoneinfo/Asia/Omsk
-#usr/share/zoneinfo/Asia/Oral
-#usr/share/zoneinfo/Asia/Phnom_Penh
-#usr/share/zoneinfo/Asia/Pontianak
-#usr/share/zoneinfo/Asia/Pyongyang
-#usr/share/zoneinfo/Asia/Qatar
-#usr/share/zoneinfo/Asia/Qyzylorda
-#usr/share/zoneinfo/Asia/Rangoon
-#usr/share/zoneinfo/Asia/Riyadh
-#usr/share/zoneinfo/Asia/Riyadh87
-#usr/share/zoneinfo/Asia/Riyadh88
-#usr/share/zoneinfo/Asia/Riyadh89
-#usr/share/zoneinfo/Asia/Saigon
-#usr/share/zoneinfo/Asia/Sakhalin
-#usr/share/zoneinfo/Asia/Samarkand
-#usr/share/zoneinfo/Asia/Seoul
-#usr/share/zoneinfo/Asia/Shanghai
-#usr/share/zoneinfo/Asia/Singapore
-#usr/share/zoneinfo/Asia/Taipei
-#usr/share/zoneinfo/Asia/Tashkent
-#usr/share/zoneinfo/Asia/Tbilisi
-#usr/share/zoneinfo/Asia/Tehran
-#usr/share/zoneinfo/Asia/Tel_Aviv
-#usr/share/zoneinfo/Asia/Thimbu
-#usr/share/zoneinfo/Asia/Thimphu
-#usr/share/zoneinfo/Asia/Tokyo
-#usr/share/zoneinfo/Asia/Ujung_Pandang
-#usr/share/zoneinfo/Asia/Ulaanbaatar
-#usr/share/zoneinfo/Asia/Ulan_Bator
-#usr/share/zoneinfo/Asia/Urumqi
-#usr/share/zoneinfo/Asia/Vientiane
-#usr/share/zoneinfo/Asia/Vladivostok
-#usr/share/zoneinfo/Asia/Yakutsk
-#usr/share/zoneinfo/Asia/Yekaterinburg
-#usr/share/zoneinfo/Asia/Yerevan
-#usr/share/zoneinfo/Atlantic
-#usr/share/zoneinfo/Atlantic/Azores
-#usr/share/zoneinfo/Atlantic/Bermuda
-#usr/share/zoneinfo/Atlantic/Canary
-#usr/share/zoneinfo/Atlantic/Cape_Verde
-#usr/share/zoneinfo/Atlantic/Faeroe
-#usr/share/zoneinfo/Atlantic/Jan_Mayen
-#usr/share/zoneinfo/Atlantic/Madeira
-#usr/share/zoneinfo/Atlantic/Reykjavik
-#usr/share/zoneinfo/Atlantic/South_Georgia
-#usr/share/zoneinfo/Atlantic/St_Helena
-#usr/share/zoneinfo/Atlantic/Stanley
-#usr/share/zoneinfo/Australia
-#usr/share/zoneinfo/Australia/ACT
-#usr/share/zoneinfo/Australia/Adelaide
-#usr/share/zoneinfo/Australia/Brisbane
-#usr/share/zoneinfo/Australia/Broken_Hill
-#usr/share/zoneinfo/Australia/Canberra
-#usr/share/zoneinfo/Australia/Currie
-#usr/share/zoneinfo/Australia/Darwin
-#usr/share/zoneinfo/Australia/Hobart
-#usr/share/zoneinfo/Australia/LHI
-#usr/share/zoneinfo/Australia/Lindeman
-#usr/share/zoneinfo/Australia/Lord_Howe
-#usr/share/zoneinfo/Australia/Melbourne
-#usr/share/zoneinfo/Australia/NSW
-#usr/share/zoneinfo/Australia/North
-#usr/share/zoneinfo/Australia/Perth
-#usr/share/zoneinfo/Australia/Queensland
-#usr/share/zoneinfo/Australia/South
-#usr/share/zoneinfo/Australia/Sydney
-#usr/share/zoneinfo/Australia/Tasmania
-#usr/share/zoneinfo/Australia/Victoria
-#usr/share/zoneinfo/Australia/West
-#usr/share/zoneinfo/Australia/Yancowinna
-#usr/share/zoneinfo/Brazil
-#usr/share/zoneinfo/Brazil/Acre
-#usr/share/zoneinfo/Brazil/DeNoronha
-#usr/share/zoneinfo/Brazil/East
-#usr/share/zoneinfo/Brazil/West
-#usr/share/zoneinfo/CET
-#usr/share/zoneinfo/CST6CDT
-#usr/share/zoneinfo/Canada
-#usr/share/zoneinfo/Canada/Atlantic
-#usr/share/zoneinfo/Canada/Central
-#usr/share/zoneinfo/Canada/East-Saskatchewan
-#usr/share/zoneinfo/Canada/Eastern
-#usr/share/zoneinfo/Canada/Mountain
-#usr/share/zoneinfo/Canada/Newfoundland
-#usr/share/zoneinfo/Canada/Pacific
-#usr/share/zoneinfo/Canada/Saskatchewan
-#usr/share/zoneinfo/Canada/Yukon
-#usr/share/zoneinfo/Chile
-#usr/share/zoneinfo/Chile/Continental
-#usr/share/zoneinfo/Chile/EasterIsland
-#usr/share/zoneinfo/Cuba
-#usr/share/zoneinfo/EET
-#usr/share/zoneinfo/EST
-#usr/share/zoneinfo/EST5EDT
-#usr/share/zoneinfo/Egypt
-#usr/share/zoneinfo/Eire
-#usr/share/zoneinfo/Etc
-#usr/share/zoneinfo/Etc/GMT
-#usr/share/zoneinfo/Etc/GMT+0
-#usr/share/zoneinfo/Etc/GMT+1
-#usr/share/zoneinfo/Etc/GMT+10
-#usr/share/zoneinfo/Etc/GMT+11
-#usr/share/zoneinfo/Etc/GMT+12
-#usr/share/zoneinfo/Etc/GMT+2
-#usr/share/zoneinfo/Etc/GMT+3
-#usr/share/zoneinfo/Etc/GMT+4
-#usr/share/zoneinfo/Etc/GMT+5
-#usr/share/zoneinfo/Etc/GMT+6
-#usr/share/zoneinfo/Etc/GMT+7
-#usr/share/zoneinfo/Etc/GMT+8
-#usr/share/zoneinfo/Etc/GMT+9
-#usr/share/zoneinfo/Etc/GMT-0
-#usr/share/zoneinfo/Etc/GMT-1
-#usr/share/zoneinfo/Etc/GMT-10
-#usr/share/zoneinfo/Etc/GMT-11
-#usr/share/zoneinfo/Etc/GMT-12
-#usr/share/zoneinfo/Etc/GMT-13
-#usr/share/zoneinfo/Etc/GMT-14
-#usr/share/zoneinfo/Etc/GMT-2
-#usr/share/zoneinfo/Etc/GMT-3
-#usr/share/zoneinfo/Etc/GMT-4
-#usr/share/zoneinfo/Etc/GMT-5
-#usr/share/zoneinfo/Etc/GMT-6
-#usr/share/zoneinfo/Etc/GMT-7
-#usr/share/zoneinfo/Etc/GMT-8
-#usr/share/zoneinfo/Etc/GMT-9
-#usr/share/zoneinfo/Etc/GMT0
-#usr/share/zoneinfo/Etc/Greenwich
-#usr/share/zoneinfo/Etc/UCT
-#usr/share/zoneinfo/Etc/UTC
-#usr/share/zoneinfo/Etc/Universal
-#usr/share/zoneinfo/Etc/Zulu
-#usr/share/zoneinfo/Europe
-#usr/share/zoneinfo/Europe/Amsterdam
-#usr/share/zoneinfo/Europe/Andorra
-#usr/share/zoneinfo/Europe/Athens
-#usr/share/zoneinfo/Europe/Belfast
-#usr/share/zoneinfo/Europe/Belgrade
-#usr/share/zoneinfo/Europe/Berlin
-#usr/share/zoneinfo/Europe/Bratislava
-#usr/share/zoneinfo/Europe/Brussels
-#usr/share/zoneinfo/Europe/Bucharest
-#usr/share/zoneinfo/Europe/Budapest
-#usr/share/zoneinfo/Europe/Chisinau
-#usr/share/zoneinfo/Europe/Copenhagen
-#usr/share/zoneinfo/Europe/Dublin
-#usr/share/zoneinfo/Europe/Gibraltar
-#usr/share/zoneinfo/Europe/Helsinki
-#usr/share/zoneinfo/Europe/Istanbul
-#usr/share/zoneinfo/Europe/Kaliningrad
-#usr/share/zoneinfo/Europe/Kiev
-#usr/share/zoneinfo/Europe/Lisbon
-#usr/share/zoneinfo/Europe/Ljubljana
-#usr/share/zoneinfo/Europe/London
-#usr/share/zoneinfo/Europe/Luxembourg
-#usr/share/zoneinfo/Europe/Madrid
-#usr/share/zoneinfo/Europe/Malta
-#usr/share/zoneinfo/Europe/Mariehamn
-#usr/share/zoneinfo/Europe/Minsk
-#usr/share/zoneinfo/Europe/Monaco
-#usr/share/zoneinfo/Europe/Moscow
-#usr/share/zoneinfo/Europe/Nicosia
-#usr/share/zoneinfo/Europe/Oslo
-#usr/share/zoneinfo/Europe/Paris
-#usr/share/zoneinfo/Europe/Prague
-#usr/share/zoneinfo/Europe/Riga
-#usr/share/zoneinfo/Europe/Rome
-#usr/share/zoneinfo/Europe/Samara
-#usr/share/zoneinfo/Europe/San_Marino
-#usr/share/zoneinfo/Europe/Sarajevo
-#usr/share/zoneinfo/Europe/Simferopol
-#usr/share/zoneinfo/Europe/Skopje
-#usr/share/zoneinfo/Europe/Sofia
-#usr/share/zoneinfo/Europe/Stockholm
-#usr/share/zoneinfo/Europe/Tallinn
-#usr/share/zoneinfo/Europe/Tirane
-#usr/share/zoneinfo/Europe/Tiraspol
-#usr/share/zoneinfo/Europe/Uzhgorod
-#usr/share/zoneinfo/Europe/Vaduz
-#usr/share/zoneinfo/Europe/Vatican
-#usr/share/zoneinfo/Europe/Vienna
-#usr/share/zoneinfo/Europe/Vilnius
-#usr/share/zoneinfo/Europe/Warsaw
-#usr/share/zoneinfo/Europe/Zagreb
-#usr/share/zoneinfo/Europe/Zaporozhye
-#usr/share/zoneinfo/Europe/Zurich
-#usr/share/zoneinfo/Factory
-#usr/share/zoneinfo/GB
-#usr/share/zoneinfo/GB-Eire
-#usr/share/zoneinfo/GMT
-#usr/share/zoneinfo/GMT+0
-#usr/share/zoneinfo/GMT-0
-#usr/share/zoneinfo/GMT0
-#usr/share/zoneinfo/Greenwich
-#usr/share/zoneinfo/HST
-#usr/share/zoneinfo/Hongkong
-#usr/share/zoneinfo/Iceland
-#usr/share/zoneinfo/Indian
-#usr/share/zoneinfo/Indian/Antananarivo
-#usr/share/zoneinfo/Indian/Chagos
-#usr/share/zoneinfo/Indian/Christmas
-#usr/share/zoneinfo/Indian/Cocos
-#usr/share/zoneinfo/Indian/Comoro
-#usr/share/zoneinfo/Indian/Kerguelen
-#usr/share/zoneinfo/Indian/Mahe
-#usr/share/zoneinfo/Indian/Maldives
-#usr/share/zoneinfo/Indian/Mauritius
-#usr/share/zoneinfo/Indian/Mayotte
-#usr/share/zoneinfo/Indian/Reunion
-#usr/share/zoneinfo/Iran
-#usr/share/zoneinfo/Israel
-#usr/share/zoneinfo/Jamaica
-#usr/share/zoneinfo/Japan
-#usr/share/zoneinfo/Kwajalein
-#usr/share/zoneinfo/Libya
-#usr/share/zoneinfo/MET
-#usr/share/zoneinfo/MST
-#usr/share/zoneinfo/MST7MDT
-#usr/share/zoneinfo/Mexico
-#usr/share/zoneinfo/Mexico/BajaNorte
-#usr/share/zoneinfo/Mexico/BajaSur
-#usr/share/zoneinfo/Mexico/General
-#usr/share/zoneinfo/Mideast
-#usr/share/zoneinfo/Mideast/Riyadh87
-#usr/share/zoneinfo/Mideast/Riyadh88
-#usr/share/zoneinfo/Mideast/Riyadh89
-#usr/share/zoneinfo/NZ
-#usr/share/zoneinfo/NZ-CHAT
-#usr/share/zoneinfo/Navajo
-#usr/share/zoneinfo/PRC
-#usr/share/zoneinfo/PST8PDT
-#usr/share/zoneinfo/Pacific
-#usr/share/zoneinfo/Pacific/Apia
-#usr/share/zoneinfo/Pacific/Auckland
-#usr/share/zoneinfo/Pacific/Chatham
-#usr/share/zoneinfo/Pacific/Easter
-#usr/share/zoneinfo/Pacific/Efate
-#usr/share/zoneinfo/Pacific/Enderbury
-#usr/share/zoneinfo/Pacific/Fakaofo
-#usr/share/zoneinfo/Pacific/Fiji
-#usr/share/zoneinfo/Pacific/Funafuti
-#usr/share/zoneinfo/Pacific/Galapagos
-#usr/share/zoneinfo/Pacific/Gambier
-#usr/share/zoneinfo/Pacific/Guadalcanal
-#usr/share/zoneinfo/Pacific/Guam
-#usr/share/zoneinfo/Pacific/Honolulu
-#usr/share/zoneinfo/Pacific/Johnston
-#usr/share/zoneinfo/Pacific/Kiritimati
-#usr/share/zoneinfo/Pacific/Kosrae
-#usr/share/zoneinfo/Pacific/Kwajalein
-#usr/share/zoneinfo/Pacific/Majuro
-#usr/share/zoneinfo/Pacific/Marquesas
-#usr/share/zoneinfo/Pacific/Midway
-#usr/share/zoneinfo/Pacific/Nauru
-#usr/share/zoneinfo/Pacific/Niue
-#usr/share/zoneinfo/Pacific/Norfolk
-#usr/share/zoneinfo/Pacific/Noumea
-#usr/share/zoneinfo/Pacific/Pago_Pago
-#usr/share/zoneinfo/Pacific/Palau
-#usr/share/zoneinfo/Pacific/Pitcairn
-#usr/share/zoneinfo/Pacific/Ponape
-#usr/share/zoneinfo/Pacific/Port_Moresby
-#usr/share/zoneinfo/Pacific/Rarotonga
-#usr/share/zoneinfo/Pacific/Saipan
-#usr/share/zoneinfo/Pacific/Samoa
-#usr/share/zoneinfo/Pacific/Tahiti
-#usr/share/zoneinfo/Pacific/Tarawa
-#usr/share/zoneinfo/Pacific/Tongatapu
-#usr/share/zoneinfo/Pacific/Truk
-#usr/share/zoneinfo/Pacific/Wake
-#usr/share/zoneinfo/Pacific/Wallis
-#usr/share/zoneinfo/Pacific/Yap
-#usr/share/zoneinfo/Poland
-#usr/share/zoneinfo/Portugal
-#usr/share/zoneinfo/ROC
-#usr/share/zoneinfo/ROK
-#usr/share/zoneinfo/Singapore
-#usr/share/zoneinfo/SystemV
-#usr/share/zoneinfo/SystemV/AST4
-#usr/share/zoneinfo/SystemV/AST4ADT
-#usr/share/zoneinfo/SystemV/CST6
-#usr/share/zoneinfo/SystemV/CST6CDT
-#usr/share/zoneinfo/SystemV/EST5
-#usr/share/zoneinfo/SystemV/EST5EDT
-#usr/share/zoneinfo/SystemV/HST10
-#usr/share/zoneinfo/SystemV/MST7
-#usr/share/zoneinfo/SystemV/MST7MDT
-#usr/share/zoneinfo/SystemV/PST8
-#usr/share/zoneinfo/SystemV/PST8PDT
-#usr/share/zoneinfo/SystemV/YST9
-#usr/share/zoneinfo/SystemV/YST9YDT
-#usr/share/zoneinfo/Turkey
-#usr/share/zoneinfo/UCT
-#usr/share/zoneinfo/US
-#usr/share/zoneinfo/US/Alaska
-#usr/share/zoneinfo/US/Aleutian
-#usr/share/zoneinfo/US/Arizona
-#usr/share/zoneinfo/US/Central
-#usr/share/zoneinfo/US/East-Indiana
-#usr/share/zoneinfo/US/Eastern
-#usr/share/zoneinfo/US/Hawaii
-#usr/share/zoneinfo/US/Indiana-Starke
-#usr/share/zoneinfo/US/Michigan
-#usr/share/zoneinfo/US/Mountain
-#usr/share/zoneinfo/US/Pacific
-#usr/share/zoneinfo/US/Samoa
-#usr/share/zoneinfo/UTC
-#usr/share/zoneinfo/Universal
-#usr/share/zoneinfo/W-SU
-#usr/share/zoneinfo/WET
-#usr/share/zoneinfo/Zulu
-#usr/share/zoneinfo/iso3166.tab
-usr/share/zoneinfo/posix
-#usr/share/zoneinfo/posix/Africa
-#usr/share/zoneinfo/posix/Africa/Abidjan
-#usr/share/zoneinfo/posix/Africa/Accra
-#usr/share/zoneinfo/posix/Africa/Addis_Ababa
-#usr/share/zoneinfo/posix/Africa/Algiers
-#usr/share/zoneinfo/posix/Africa/Asmera
-#usr/share/zoneinfo/posix/Africa/Bamako
-#usr/share/zoneinfo/posix/Africa/Bangui
-#usr/share/zoneinfo/posix/Africa/Banjul
-#usr/share/zoneinfo/posix/Africa/Bissau
-#usr/share/zoneinfo/posix/Africa/Blantyre
-#usr/share/zoneinfo/posix/Africa/Brazzaville
-#usr/share/zoneinfo/posix/Africa/Bujumbura
-#usr/share/zoneinfo/posix/Africa/Cairo
-#usr/share/zoneinfo/posix/Africa/Casablanca
-#usr/share/zoneinfo/posix/Africa/Ceuta
-#usr/share/zoneinfo/posix/Africa/Conakry
-#usr/share/zoneinfo/posix/Africa/Dakar
-#usr/share/zoneinfo/posix/Africa/Dar_es_Salaam
-#usr/share/zoneinfo/posix/Africa/Djibouti
-#usr/share/zoneinfo/posix/Africa/Douala
-#usr/share/zoneinfo/posix/Africa/El_Aaiun
-#usr/share/zoneinfo/posix/Africa/Freetown
-#usr/share/zoneinfo/posix/Africa/Gaborone
-#usr/share/zoneinfo/posix/Africa/Harare
-#usr/share/zoneinfo/posix/Africa/Johannesburg
-#usr/share/zoneinfo/posix/Africa/Kampala
-#usr/share/zoneinfo/posix/Africa/Khartoum
-#usr/share/zoneinfo/posix/Africa/Kigali
-#usr/share/zoneinfo/posix/Africa/Kinshasa
-#usr/share/zoneinfo/posix/Africa/Lagos
-#usr/share/zoneinfo/posix/Africa/Libreville
-#usr/share/zoneinfo/posix/Africa/Lome
-#usr/share/zoneinfo/posix/Africa/Luanda
-#usr/share/zoneinfo/posix/Africa/Lubumbashi
-#usr/share/zoneinfo/posix/Africa/Lusaka
-#usr/share/zoneinfo/posix/Africa/Malabo
-#usr/share/zoneinfo/posix/Africa/Maputo
-#usr/share/zoneinfo/posix/Africa/Maseru
-#usr/share/zoneinfo/posix/Africa/Mbabane
-#usr/share/zoneinfo/posix/Africa/Mogadishu
-#usr/share/zoneinfo/posix/Africa/Monrovia
-#usr/share/zoneinfo/posix/Africa/Nairobi
-#usr/share/zoneinfo/posix/Africa/Ndjamena
-#usr/share/zoneinfo/posix/Africa/Niamey
-#usr/share/zoneinfo/posix/Africa/Nouakchott
-#usr/share/zoneinfo/posix/Africa/Ouagadougou
-#usr/share/zoneinfo/posix/Africa/Porto-Novo
-#usr/share/zoneinfo/posix/Africa/Sao_Tome
-#usr/share/zoneinfo/posix/Africa/Timbuktu
-#usr/share/zoneinfo/posix/Africa/Tripoli
-#usr/share/zoneinfo/posix/Africa/Tunis
-#usr/share/zoneinfo/posix/Africa/Windhoek
-#usr/share/zoneinfo/posix/America
-#usr/share/zoneinfo/posix/America/Adak
-#usr/share/zoneinfo/posix/America/Anchorage
-#usr/share/zoneinfo/posix/America/Anguilla
-#usr/share/zoneinfo/posix/America/Antigua
-#usr/share/zoneinfo/posix/America/Araguaina
-#usr/share/zoneinfo/posix/America/Argentina
-#usr/share/zoneinfo/posix/America/Argentina/Buenos_Aires
-#usr/share/zoneinfo/posix/America/Argentina/Catamarca
-#usr/share/zoneinfo/posix/America/Argentina/ComodRivadavia
-#usr/share/zoneinfo/posix/America/Argentina/Cordoba
-#usr/share/zoneinfo/posix/America/Argentina/Jujuy
-#usr/share/zoneinfo/posix/America/Argentina/La_Rioja
-#usr/share/zoneinfo/posix/America/Argentina/Mendoza
-#usr/share/zoneinfo/posix/America/Argentina/Rio_Gallegos
-#usr/share/zoneinfo/posix/America/Argentina/San_Juan
-#usr/share/zoneinfo/posix/America/Argentina/Tucuman
-#usr/share/zoneinfo/posix/America/Argentina/Ushuaia
-#usr/share/zoneinfo/posix/America/Aruba
-#usr/share/zoneinfo/posix/America/Asuncion
-#usr/share/zoneinfo/posix/America/Atka
-#usr/share/zoneinfo/posix/America/Bahia
-#usr/share/zoneinfo/posix/America/Barbados
-#usr/share/zoneinfo/posix/America/Belem
-#usr/share/zoneinfo/posix/America/Belize
-#usr/share/zoneinfo/posix/America/Boa_Vista
-#usr/share/zoneinfo/posix/America/Bogota
-#usr/share/zoneinfo/posix/America/Boise
-#usr/share/zoneinfo/posix/America/Buenos_Aires
-#usr/share/zoneinfo/posix/America/Cambridge_Bay
-#usr/share/zoneinfo/posix/America/Campo_Grande
-#usr/share/zoneinfo/posix/America/Cancun
-#usr/share/zoneinfo/posix/America/Caracas
-#usr/share/zoneinfo/posix/America/Catamarca
-#usr/share/zoneinfo/posix/America/Cayenne
-#usr/share/zoneinfo/posix/America/Cayman
-#usr/share/zoneinfo/posix/America/Chicago
-#usr/share/zoneinfo/posix/America/Chihuahua
-#usr/share/zoneinfo/posix/America/Coral_Harbour
-#usr/share/zoneinfo/posix/America/Cordoba
-#usr/share/zoneinfo/posix/America/Costa_Rica
-#usr/share/zoneinfo/posix/America/Cuiaba
-#usr/share/zoneinfo/posix/America/Curacao
-#usr/share/zoneinfo/posix/America/Danmarkshavn
-#usr/share/zoneinfo/posix/America/Dawson
-#usr/share/zoneinfo/posix/America/Dawson_Creek
-#usr/share/zoneinfo/posix/America/Denver
-#usr/share/zoneinfo/posix/America/Detroit
-#usr/share/zoneinfo/posix/America/Dominica
-#usr/share/zoneinfo/posix/America/Edmonton
-#usr/share/zoneinfo/posix/America/Eirunepe
-#usr/share/zoneinfo/posix/America/El_Salvador
-#usr/share/zoneinfo/posix/America/Ensenada
-#usr/share/zoneinfo/posix/America/Fort_Wayne
-#usr/share/zoneinfo/posix/America/Fortaleza
-#usr/share/zoneinfo/posix/America/Glace_Bay
-#usr/share/zoneinfo/posix/America/Godthab
-#usr/share/zoneinfo/posix/America/Goose_Bay
-#usr/share/zoneinfo/posix/America/Grand_Turk
-#usr/share/zoneinfo/posix/America/Grenada
-#usr/share/zoneinfo/posix/America/Guadeloupe
-#usr/share/zoneinfo/posix/America/Guatemala
-#usr/share/zoneinfo/posix/America/Guayaquil
-#usr/share/zoneinfo/posix/America/Guyana
-#usr/share/zoneinfo/posix/America/Halifax
-#usr/share/zoneinfo/posix/America/Havana
-#usr/share/zoneinfo/posix/America/Hermosillo
-#usr/share/zoneinfo/posix/America/Indiana
-#usr/share/zoneinfo/posix/America/Indiana/Indianapolis
-#usr/share/zoneinfo/posix/America/Indiana/Knox
-#usr/share/zoneinfo/posix/America/Indiana/Marengo
-#usr/share/zoneinfo/posix/America/Indiana/Vevay
-#usr/share/zoneinfo/posix/America/Indianapolis
-#usr/share/zoneinfo/posix/America/Inuvik
-#usr/share/zoneinfo/posix/America/Iqaluit
-#usr/share/zoneinfo/posix/America/Jamaica
-#usr/share/zoneinfo/posix/America/Jujuy
-#usr/share/zoneinfo/posix/America/Juneau
-#usr/share/zoneinfo/posix/America/Kentucky
-#usr/share/zoneinfo/posix/America/Kentucky/Louisville
-#usr/share/zoneinfo/posix/America/Kentucky/Monticello
-#usr/share/zoneinfo/posix/America/Knox_IN
-#usr/share/zoneinfo/posix/America/La_Paz
-#usr/share/zoneinfo/posix/America/Lima
-#usr/share/zoneinfo/posix/America/Los_Angeles
-#usr/share/zoneinfo/posix/America/Louisville
-#usr/share/zoneinfo/posix/America/Maceio
-#usr/share/zoneinfo/posix/America/Managua
-#usr/share/zoneinfo/posix/America/Manaus
-#usr/share/zoneinfo/posix/America/Martinique
-#usr/share/zoneinfo/posix/America/Mazatlan
-#usr/share/zoneinfo/posix/America/Mendoza
-#usr/share/zoneinfo/posix/America/Menominee
-#usr/share/zoneinfo/posix/America/Merida
-#usr/share/zoneinfo/posix/America/Mexico_City
-#usr/share/zoneinfo/posix/America/Miquelon
-#usr/share/zoneinfo/posix/America/Monterrey
-#usr/share/zoneinfo/posix/America/Montevideo
-#usr/share/zoneinfo/posix/America/Montreal
-#usr/share/zoneinfo/posix/America/Montserrat
-#usr/share/zoneinfo/posix/America/Nassau
-#usr/share/zoneinfo/posix/America/New_York
-#usr/share/zoneinfo/posix/America/Nipigon
-#usr/share/zoneinfo/posix/America/Nome
-#usr/share/zoneinfo/posix/America/Noronha
-#usr/share/zoneinfo/posix/America/North_Dakota
-#usr/share/zoneinfo/posix/America/North_Dakota/Center
-#usr/share/zoneinfo/posix/America/Panama
-#usr/share/zoneinfo/posix/America/Pangnirtung
-#usr/share/zoneinfo/posix/America/Paramaribo
-#usr/share/zoneinfo/posix/America/Phoenix
-#usr/share/zoneinfo/posix/America/Port-au-Prince
-#usr/share/zoneinfo/posix/America/Port_of_Spain
-#usr/share/zoneinfo/posix/America/Porto_Acre
-#usr/share/zoneinfo/posix/America/Porto_Velho
-#usr/share/zoneinfo/posix/America/Puerto_Rico
-#usr/share/zoneinfo/posix/America/Rainy_River
-#usr/share/zoneinfo/posix/America/Rankin_Inlet
-#usr/share/zoneinfo/posix/America/Recife
-#usr/share/zoneinfo/posix/America/Regina
-#usr/share/zoneinfo/posix/America/Rio_Branco
-#usr/share/zoneinfo/posix/America/Rosario
-#usr/share/zoneinfo/posix/America/Santiago
-#usr/share/zoneinfo/posix/America/Santo_Domingo
-#usr/share/zoneinfo/posix/America/Sao_Paulo
-#usr/share/zoneinfo/posix/America/Scoresbysund
-#usr/share/zoneinfo/posix/America/Shiprock
-#usr/share/zoneinfo/posix/America/St_Johns
-#usr/share/zoneinfo/posix/America/St_Kitts
-#usr/share/zoneinfo/posix/America/St_Lucia
-#usr/share/zoneinfo/posix/America/St_Thomas
-#usr/share/zoneinfo/posix/America/St_Vincent
-#usr/share/zoneinfo/posix/America/Swift_Current
-#usr/share/zoneinfo/posix/America/Tegucigalpa
-#usr/share/zoneinfo/posix/America/Thule
-#usr/share/zoneinfo/posix/America/Thunder_Bay
-#usr/share/zoneinfo/posix/America/Tijuana
-#usr/share/zoneinfo/posix/America/Toronto
-#usr/share/zoneinfo/posix/America/Tortola
-#usr/share/zoneinfo/posix/America/Vancouver
-#usr/share/zoneinfo/posix/America/Virgin
-#usr/share/zoneinfo/posix/America/Whitehorse
-#usr/share/zoneinfo/posix/America/Winnipeg
-#usr/share/zoneinfo/posix/America/Yakutat
-#usr/share/zoneinfo/posix/America/Yellowknife
-#usr/share/zoneinfo/posix/Antarctica
-#usr/share/zoneinfo/posix/Antarctica/Casey
-#usr/share/zoneinfo/posix/Antarctica/Davis
-#usr/share/zoneinfo/posix/Antarctica/DumontDUrville
-#usr/share/zoneinfo/posix/Antarctica/Mawson
-#usr/share/zoneinfo/posix/Antarctica/McMurdo
-#usr/share/zoneinfo/posix/Antarctica/Palmer
-#usr/share/zoneinfo/posix/Antarctica/Rothera
-#usr/share/zoneinfo/posix/Antarctica/South_Pole
-#usr/share/zoneinfo/posix/Antarctica/Syowa
-#usr/share/zoneinfo/posix/Antarctica/Vostok
-#usr/share/zoneinfo/posix/Arctic
-#usr/share/zoneinfo/posix/Arctic/Longyearbyen
-#usr/share/zoneinfo/posix/Asia
-#usr/share/zoneinfo/posix/Asia/Aden
-#usr/share/zoneinfo/posix/Asia/Almaty
-#usr/share/zoneinfo/posix/Asia/Amman
-#usr/share/zoneinfo/posix/Asia/Anadyr
-#usr/share/zoneinfo/posix/Asia/Aqtau
-#usr/share/zoneinfo/posix/Asia/Aqtobe
-#usr/share/zoneinfo/posix/Asia/Ashgabat
-#usr/share/zoneinfo/posix/Asia/Ashkhabad
-#usr/share/zoneinfo/posix/Asia/Baghdad
-#usr/share/zoneinfo/posix/Asia/Bahrain
-#usr/share/zoneinfo/posix/Asia/Baku
-#usr/share/zoneinfo/posix/Asia/Bangkok
-#usr/share/zoneinfo/posix/Asia/Beirut
-#usr/share/zoneinfo/posix/Asia/Bishkek
-#usr/share/zoneinfo/posix/Asia/Brunei
-#usr/share/zoneinfo/posix/Asia/Calcutta
-#usr/share/zoneinfo/posix/Asia/Choibalsan
-#usr/share/zoneinfo/posix/Asia/Chongqing
-#usr/share/zoneinfo/posix/Asia/Chungking
-#usr/share/zoneinfo/posix/Asia/Colombo
-#usr/share/zoneinfo/posix/Asia/Dacca
-#usr/share/zoneinfo/posix/Asia/Damascus
-#usr/share/zoneinfo/posix/Asia/Dhaka
-#usr/share/zoneinfo/posix/Asia/Dili
-#usr/share/zoneinfo/posix/Asia/Dubai
-#usr/share/zoneinfo/posix/Asia/Dushanbe
-#usr/share/zoneinfo/posix/Asia/Gaza
-#usr/share/zoneinfo/posix/Asia/Harbin
-#usr/share/zoneinfo/posix/Asia/Hong_Kong
-#usr/share/zoneinfo/posix/Asia/Hovd
-#usr/share/zoneinfo/posix/Asia/Irkutsk
-#usr/share/zoneinfo/posix/Asia/Istanbul
-#usr/share/zoneinfo/posix/Asia/Jakarta
-#usr/share/zoneinfo/posix/Asia/Jayapura
-#usr/share/zoneinfo/posix/Asia/Jerusalem
-#usr/share/zoneinfo/posix/Asia/Kabul
-#usr/share/zoneinfo/posix/Asia/Kamchatka
-#usr/share/zoneinfo/posix/Asia/Karachi
-#usr/share/zoneinfo/posix/Asia/Kashgar
-#usr/share/zoneinfo/posix/Asia/Katmandu
-#usr/share/zoneinfo/posix/Asia/Krasnoyarsk
-#usr/share/zoneinfo/posix/Asia/Kuala_Lumpur
-#usr/share/zoneinfo/posix/Asia/Kuching
-#usr/share/zoneinfo/posix/Asia/Kuwait
-#usr/share/zoneinfo/posix/Asia/Macao
-#usr/share/zoneinfo/posix/Asia/Macau
-#usr/share/zoneinfo/posix/Asia/Magadan
-#usr/share/zoneinfo/posix/Asia/Makassar
-#usr/share/zoneinfo/posix/Asia/Manila
-#usr/share/zoneinfo/posix/Asia/Muscat
-#usr/share/zoneinfo/posix/Asia/Nicosia
-#usr/share/zoneinfo/posix/Asia/Novosibirsk
-#usr/share/zoneinfo/posix/Asia/Omsk
-#usr/share/zoneinfo/posix/Asia/Oral
-#usr/share/zoneinfo/posix/Asia/Phnom_Penh
-#usr/share/zoneinfo/posix/Asia/Pontianak
-#usr/share/zoneinfo/posix/Asia/Pyongyang
-#usr/share/zoneinfo/posix/Asia/Qatar
-#usr/share/zoneinfo/posix/Asia/Qyzylorda
-#usr/share/zoneinfo/posix/Asia/Rangoon
-#usr/share/zoneinfo/posix/Asia/Riyadh
-#usr/share/zoneinfo/posix/Asia/Riyadh87
-#usr/share/zoneinfo/posix/Asia/Riyadh88
-#usr/share/zoneinfo/posix/Asia/Riyadh89
-#usr/share/zoneinfo/posix/Asia/Saigon
-#usr/share/zoneinfo/posix/Asia/Sakhalin
-#usr/share/zoneinfo/posix/Asia/Samarkand
-#usr/share/zoneinfo/posix/Asia/Seoul
-#usr/share/zoneinfo/posix/Asia/Shanghai
-#usr/share/zoneinfo/posix/Asia/Singapore
-#usr/share/zoneinfo/posix/Asia/Taipei
-#usr/share/zoneinfo/posix/Asia/Tashkent
-#usr/share/zoneinfo/posix/Asia/Tbilisi
-#usr/share/zoneinfo/posix/Asia/Tehran
-#usr/share/zoneinfo/posix/Asia/Tel_Aviv
-#usr/share/zoneinfo/posix/Asia/Thimbu
-#usr/share/zoneinfo/posix/Asia/Thimphu
-#usr/share/zoneinfo/posix/Asia/Tokyo
-#usr/share/zoneinfo/posix/Asia/Ujung_Pandang
-#usr/share/zoneinfo/posix/Asia/Ulaanbaatar
-#usr/share/zoneinfo/posix/Asia/Ulan_Bator
-#usr/share/zoneinfo/posix/Asia/Urumqi
-#usr/share/zoneinfo/posix/Asia/Vientiane
-#usr/share/zoneinfo/posix/Asia/Vladivostok
-#usr/share/zoneinfo/posix/Asia/Yakutsk
-#usr/share/zoneinfo/posix/Asia/Yekaterinburg
-#usr/share/zoneinfo/posix/Asia/Yerevan
-#usr/share/zoneinfo/posix/Atlantic
-#usr/share/zoneinfo/posix/Atlantic/Azores
-#usr/share/zoneinfo/posix/Atlantic/Bermuda
-#usr/share/zoneinfo/posix/Atlantic/Canary
-#usr/share/zoneinfo/posix/Atlantic/Cape_Verde
-#usr/share/zoneinfo/posix/Atlantic/Faeroe
-#usr/share/zoneinfo/posix/Atlantic/Jan_Mayen
-#usr/share/zoneinfo/posix/Atlantic/Madeira
-#usr/share/zoneinfo/posix/Atlantic/Reykjavik
-#usr/share/zoneinfo/posix/Atlantic/South_Georgia
-#usr/share/zoneinfo/posix/Atlantic/St_Helena
-#usr/share/zoneinfo/posix/Atlantic/Stanley
-#usr/share/zoneinfo/posix/Australia
-#usr/share/zoneinfo/posix/Australia/ACT
-#usr/share/zoneinfo/posix/Australia/Adelaide
-#usr/share/zoneinfo/posix/Australia/Brisbane
-#usr/share/zoneinfo/posix/Australia/Broken_Hill
-#usr/share/zoneinfo/posix/Australia/Canberra
-#usr/share/zoneinfo/posix/Australia/Currie
-#usr/share/zoneinfo/posix/Australia/Darwin
-#usr/share/zoneinfo/posix/Australia/Hobart
-#usr/share/zoneinfo/posix/Australia/LHI
-#usr/share/zoneinfo/posix/Australia/Lindeman
-#usr/share/zoneinfo/posix/Australia/Lord_Howe
-#usr/share/zoneinfo/posix/Australia/Melbourne
-#usr/share/zoneinfo/posix/Australia/NSW
-#usr/share/zoneinfo/posix/Australia/North
-#usr/share/zoneinfo/posix/Australia/Perth
-#usr/share/zoneinfo/posix/Australia/Queensland
-#usr/share/zoneinfo/posix/Australia/South
-#usr/share/zoneinfo/posix/Australia/Sydney
-#usr/share/zoneinfo/posix/Australia/Tasmania
-#usr/share/zoneinfo/posix/Australia/Victoria
-#usr/share/zoneinfo/posix/Australia/West
-#usr/share/zoneinfo/posix/Australia/Yancowinna
-#usr/share/zoneinfo/posix/Brazil
-#usr/share/zoneinfo/posix/Brazil/Acre
-#usr/share/zoneinfo/posix/Brazil/DeNoronha
-#usr/share/zoneinfo/posix/Brazil/East
-#usr/share/zoneinfo/posix/Brazil/West
-#usr/share/zoneinfo/posix/CET
-#usr/share/zoneinfo/posix/CST6CDT
-#usr/share/zoneinfo/posix/Canada
-#usr/share/zoneinfo/posix/Canada/Atlantic
-#usr/share/zoneinfo/posix/Canada/Central
-#usr/share/zoneinfo/posix/Canada/East-Saskatchewan
-#usr/share/zoneinfo/posix/Canada/Eastern
-#usr/share/zoneinfo/posix/Canada/Mountain
-#usr/share/zoneinfo/posix/Canada/Newfoundland
-#usr/share/zoneinfo/posix/Canada/Pacific
-#usr/share/zoneinfo/posix/Canada/Saskatchewan
-#usr/share/zoneinfo/posix/Canada/Yukon
-#usr/share/zoneinfo/posix/Chile
-#usr/share/zoneinfo/posix/Chile/Continental
-#usr/share/zoneinfo/posix/Chile/EasterIsland
-#usr/share/zoneinfo/posix/Cuba
-#usr/share/zoneinfo/posix/EET
-#usr/share/zoneinfo/posix/EST
-#usr/share/zoneinfo/posix/EST5EDT
-#usr/share/zoneinfo/posix/Egypt
-#usr/share/zoneinfo/posix/Eire
-#usr/share/zoneinfo/posix/Etc
-#usr/share/zoneinfo/posix/Etc/GMT
-#usr/share/zoneinfo/posix/Etc/GMT+0
-#usr/share/zoneinfo/posix/Etc/GMT+1
-#usr/share/zoneinfo/posix/Etc/GMT+10
-#usr/share/zoneinfo/posix/Etc/GMT+11
-#usr/share/zoneinfo/posix/Etc/GMT+12
-#usr/share/zoneinfo/posix/Etc/GMT+2
-#usr/share/zoneinfo/posix/Etc/GMT+3
-#usr/share/zoneinfo/posix/Etc/GMT+4
-#usr/share/zoneinfo/posix/Etc/GMT+5
-#usr/share/zoneinfo/posix/Etc/GMT+6
-#usr/share/zoneinfo/posix/Etc/GMT+7
-#usr/share/zoneinfo/posix/Etc/GMT+8
-#usr/share/zoneinfo/posix/Etc/GMT+9
-#usr/share/zoneinfo/posix/Etc/GMT-0
-#usr/share/zoneinfo/posix/Etc/GMT-1
-#usr/share/zoneinfo/posix/Etc/GMT-10
-#usr/share/zoneinfo/posix/Etc/GMT-11
-#usr/share/zoneinfo/posix/Etc/GMT-12
-#usr/share/zoneinfo/posix/Etc/GMT-13
-#usr/share/zoneinfo/posix/Etc/GMT-14
-#usr/share/zoneinfo/posix/Etc/GMT-2
-#usr/share/zoneinfo/posix/Etc/GMT-3
-#usr/share/zoneinfo/posix/Etc/GMT-4
-#usr/share/zoneinfo/posix/Etc/GMT-5
-#usr/share/zoneinfo/posix/Etc/GMT-6
-#usr/share/zoneinfo/posix/Etc/GMT-7
-#usr/share/zoneinfo/posix/Etc/GMT-8
-#usr/share/zoneinfo/posix/Etc/GMT-9
-#usr/share/zoneinfo/posix/Etc/GMT0
-#usr/share/zoneinfo/posix/Etc/Greenwich
-#usr/share/zoneinfo/posix/Etc/UCT
-#usr/share/zoneinfo/posix/Etc/UTC
-#usr/share/zoneinfo/posix/Etc/Universal
-#usr/share/zoneinfo/posix/Etc/Zulu
-#usr/share/zoneinfo/posix/Europe
-#usr/share/zoneinfo/posix/Europe/Amsterdam
-#usr/share/zoneinfo/posix/Europe/Andorra
-#usr/share/zoneinfo/posix/Europe/Athens
-#usr/share/zoneinfo/posix/Europe/Belfast
-#usr/share/zoneinfo/posix/Europe/Belgrade
-#usr/share/zoneinfo/posix/Europe/Berlin
-#usr/share/zoneinfo/posix/Europe/Bratislava
-#usr/share/zoneinfo/posix/Europe/Brussels
-#usr/share/zoneinfo/posix/Europe/Bucharest
-#usr/share/zoneinfo/posix/Europe/Budapest
-#usr/share/zoneinfo/posix/Europe/Chisinau
-#usr/share/zoneinfo/posix/Europe/Copenhagen
-#usr/share/zoneinfo/posix/Europe/Dublin
-#usr/share/zoneinfo/posix/Europe/Gibraltar
-#usr/share/zoneinfo/posix/Europe/Helsinki
-#usr/share/zoneinfo/posix/Europe/Istanbul
-#usr/share/zoneinfo/posix/Europe/Kaliningrad
-#usr/share/zoneinfo/posix/Europe/Kiev
-#usr/share/zoneinfo/posix/Europe/Lisbon
-#usr/share/zoneinfo/posix/Europe/Ljubljana
-#usr/share/zoneinfo/posix/Europe/London
-#usr/share/zoneinfo/posix/Europe/Luxembourg
-#usr/share/zoneinfo/posix/Europe/Madrid
-#usr/share/zoneinfo/posix/Europe/Malta
-#usr/share/zoneinfo/posix/Europe/Mariehamn
-#usr/share/zoneinfo/posix/Europe/Minsk
-#usr/share/zoneinfo/posix/Europe/Monaco
-#usr/share/zoneinfo/posix/Europe/Moscow
-#usr/share/zoneinfo/posix/Europe/Nicosia
-#usr/share/zoneinfo/posix/Europe/Oslo
-#usr/share/zoneinfo/posix/Europe/Paris
-#usr/share/zoneinfo/posix/Europe/Prague
-#usr/share/zoneinfo/posix/Europe/Riga
-#usr/share/zoneinfo/posix/Europe/Rome
-#usr/share/zoneinfo/posix/Europe/Samara
-#usr/share/zoneinfo/posix/Europe/San_Marino
-#usr/share/zoneinfo/posix/Europe/Sarajevo
-#usr/share/zoneinfo/posix/Europe/Simferopol
-#usr/share/zoneinfo/posix/Europe/Skopje
-#usr/share/zoneinfo/posix/Europe/Sofia
-#usr/share/zoneinfo/posix/Europe/Stockholm
-#usr/share/zoneinfo/posix/Europe/Tallinn
-#usr/share/zoneinfo/posix/Europe/Tirane
-#usr/share/zoneinfo/posix/Europe/Tiraspol
-#usr/share/zoneinfo/posix/Europe/Uzhgorod
-#usr/share/zoneinfo/posix/Europe/Vaduz
-#usr/share/zoneinfo/posix/Europe/Vatican
-#usr/share/zoneinfo/posix/Europe/Vienna
-#usr/share/zoneinfo/posix/Europe/Vilnius
-#usr/share/zoneinfo/posix/Europe/Warsaw
-#usr/share/zoneinfo/posix/Europe/Zagreb
-#usr/share/zoneinfo/posix/Europe/Zaporozhye
-#usr/share/zoneinfo/posix/Europe/Zurich
-#usr/share/zoneinfo/posix/Factory
-#usr/share/zoneinfo/posix/GB
-#usr/share/zoneinfo/posix/GB-Eire
-#usr/share/zoneinfo/posix/GMT
-#usr/share/zoneinfo/posix/GMT+0
-#usr/share/zoneinfo/posix/GMT-0
-#usr/share/zoneinfo/posix/GMT0
-#usr/share/zoneinfo/posix/Greenwich
-#usr/share/zoneinfo/posix/HST
-#usr/share/zoneinfo/posix/Hongkong
-#usr/share/zoneinfo/posix/Iceland
-#usr/share/zoneinfo/posix/Indian
-#usr/share/zoneinfo/posix/Indian/Antananarivo
-#usr/share/zoneinfo/posix/Indian/Chagos
-#usr/share/zoneinfo/posix/Indian/Christmas
-#usr/share/zoneinfo/posix/Indian/Cocos
-#usr/share/zoneinfo/posix/Indian/Comoro
-#usr/share/zoneinfo/posix/Indian/Kerguelen
-#usr/share/zoneinfo/posix/Indian/Mahe
-#usr/share/zoneinfo/posix/Indian/Maldives
-#usr/share/zoneinfo/posix/Indian/Mauritius
-#usr/share/zoneinfo/posix/Indian/Mayotte
-#usr/share/zoneinfo/posix/Indian/Reunion
-#usr/share/zoneinfo/posix/Iran
-#usr/share/zoneinfo/posix/Israel
-#usr/share/zoneinfo/posix/Jamaica
-#usr/share/zoneinfo/posix/Japan
-#usr/share/zoneinfo/posix/Kwajalein
-#usr/share/zoneinfo/posix/Libya
-#usr/share/zoneinfo/posix/MET
-#usr/share/zoneinfo/posix/MST
-#usr/share/zoneinfo/posix/MST7MDT
-#usr/share/zoneinfo/posix/Mexico
-#usr/share/zoneinfo/posix/Mexico/BajaNorte
-#usr/share/zoneinfo/posix/Mexico/BajaSur
-#usr/share/zoneinfo/posix/Mexico/General
-#usr/share/zoneinfo/posix/Mideast
-#usr/share/zoneinfo/posix/Mideast/Riyadh87
-#usr/share/zoneinfo/posix/Mideast/Riyadh88
-#usr/share/zoneinfo/posix/Mideast/Riyadh89
-#usr/share/zoneinfo/posix/NZ
-#usr/share/zoneinfo/posix/NZ-CHAT
-#usr/share/zoneinfo/posix/Navajo
-#usr/share/zoneinfo/posix/PRC
-#usr/share/zoneinfo/posix/PST8PDT
-#usr/share/zoneinfo/posix/Pacific
-#usr/share/zoneinfo/posix/Pacific/Apia
-#usr/share/zoneinfo/posix/Pacific/Auckland
-#usr/share/zoneinfo/posix/Pacific/Chatham
-#usr/share/zoneinfo/posix/Pacific/Easter
-#usr/share/zoneinfo/posix/Pacific/Efate
-#usr/share/zoneinfo/posix/Pacific/Enderbury
-#usr/share/zoneinfo/posix/Pacific/Fakaofo
-#usr/share/zoneinfo/posix/Pacific/Fiji
-#usr/share/zoneinfo/posix/Pacific/Funafuti
-#usr/share/zoneinfo/posix/Pacific/Galapagos
-#usr/share/zoneinfo/posix/Pacific/Gambier
-#usr/share/zoneinfo/posix/Pacific/Guadalcanal
-#usr/share/zoneinfo/posix/Pacific/Guam
-#usr/share/zoneinfo/posix/Pacific/Honolulu
-#usr/share/zoneinfo/posix/Pacific/Johnston
-#usr/share/zoneinfo/posix/Pacific/Kiritimati
-#usr/share/zoneinfo/posix/Pacific/Kosrae
-#usr/share/zoneinfo/posix/Pacific/Kwajalein
-#usr/share/zoneinfo/posix/Pacific/Majuro
-#usr/share/zoneinfo/posix/Pacific/Marquesas
-#usr/share/zoneinfo/posix/Pacific/Midway
-#usr/share/zoneinfo/posix/Pacific/Nauru
-#usr/share/zoneinfo/posix/Pacific/Niue
-#usr/share/zoneinfo/posix/Pacific/Norfolk
-#usr/share/zoneinfo/posix/Pacific/Noumea
-#usr/share/zoneinfo/posix/Pacific/Pago_Pago
-#usr/share/zoneinfo/posix/Pacific/Palau
-#usr/share/zoneinfo/posix/Pacific/Pitcairn
-#usr/share/zoneinfo/posix/Pacific/Ponape
-#usr/share/zoneinfo/posix/Pacific/Port_Moresby
-#usr/share/zoneinfo/posix/Pacific/Rarotonga
-#usr/share/zoneinfo/posix/Pacific/Saipan
-#usr/share/zoneinfo/posix/Pacific/Samoa
-#usr/share/zoneinfo/posix/Pacific/Tahiti
-#usr/share/zoneinfo/posix/Pacific/Tarawa
-#usr/share/zoneinfo/posix/Pacific/Tongatapu
-#usr/share/zoneinfo/posix/Pacific/Truk
-#usr/share/zoneinfo/posix/Pacific/Wake
-#usr/share/zoneinfo/posix/Pacific/Wallis
-#usr/share/zoneinfo/posix/Pacific/Yap
-#usr/share/zoneinfo/posix/Poland
-#usr/share/zoneinfo/posix/Portugal
-#usr/share/zoneinfo/posix/ROC
-#usr/share/zoneinfo/posix/ROK
-#usr/share/zoneinfo/posix/Singapore
-#usr/share/zoneinfo/posix/SystemV
-#usr/share/zoneinfo/posix/SystemV/AST4
-#usr/share/zoneinfo/posix/SystemV/AST4ADT
-#usr/share/zoneinfo/posix/SystemV/CST6
-#usr/share/zoneinfo/posix/SystemV/CST6CDT
-#usr/share/zoneinfo/posix/SystemV/EST5
-#usr/share/zoneinfo/posix/SystemV/EST5EDT
-#usr/share/zoneinfo/posix/SystemV/HST10
-#usr/share/zoneinfo/posix/SystemV/MST7
-#usr/share/zoneinfo/posix/SystemV/MST7MDT
-#usr/share/zoneinfo/posix/SystemV/PST8
-#usr/share/zoneinfo/posix/SystemV/PST8PDT
-#usr/share/zoneinfo/posix/SystemV/YST9
-#usr/share/zoneinfo/posix/SystemV/YST9YDT
-#usr/share/zoneinfo/posix/Turkey
-#usr/share/zoneinfo/posix/UCT
-#usr/share/zoneinfo/posix/US
-#usr/share/zoneinfo/posix/US/Alaska
-#usr/share/zoneinfo/posix/US/Aleutian
-#usr/share/zoneinfo/posix/US/Arizona
-#usr/share/zoneinfo/posix/US/Central
-#usr/share/zoneinfo/posix/US/East-Indiana
-#usr/share/zoneinfo/posix/US/Eastern
-#usr/share/zoneinfo/posix/US/Hawaii
-#usr/share/zoneinfo/posix/US/Indiana-Starke
-#usr/share/zoneinfo/posix/US/Michigan
-#usr/share/zoneinfo/posix/US/Mountain
-#usr/share/zoneinfo/posix/US/Pacific
-#usr/share/zoneinfo/posix/US/Samoa
-#usr/share/zoneinfo/posix/UTC
-#usr/share/zoneinfo/posix/Universal
-#usr/share/zoneinfo/posix/W-SU
-#usr/share/zoneinfo/posix/WET
-#usr/share/zoneinfo/posix/Zulu
-#usr/share/zoneinfo/posixrules
-#usr/share/zoneinfo/right
-#usr/share/zoneinfo/right/Africa
-#usr/share/zoneinfo/right/Africa/Abidjan
-#usr/share/zoneinfo/right/Africa/Accra
-#usr/share/zoneinfo/right/Africa/Addis_Ababa
-#usr/share/zoneinfo/right/Africa/Algiers
-#usr/share/zoneinfo/right/Africa/Asmera
-#usr/share/zoneinfo/right/Africa/Bamako
-#usr/share/zoneinfo/right/Africa/Bangui
-#usr/share/zoneinfo/right/Africa/Banjul
-#usr/share/zoneinfo/right/Africa/Bissau
-#usr/share/zoneinfo/right/Africa/Blantyre
-#usr/share/zoneinfo/right/Africa/Brazzaville
-#usr/share/zoneinfo/right/Africa/Bujumbura
-#usr/share/zoneinfo/right/Africa/Cairo
-#usr/share/zoneinfo/right/Africa/Casablanca
-#usr/share/zoneinfo/right/Africa/Ceuta
-#usr/share/zoneinfo/right/Africa/Conakry
-#usr/share/zoneinfo/right/Africa/Dakar
-#usr/share/zoneinfo/right/Africa/Dar_es_Salaam
-#usr/share/zoneinfo/right/Africa/Djibouti
-#usr/share/zoneinfo/right/Africa/Douala
-#usr/share/zoneinfo/right/Africa/El_Aaiun
-#usr/share/zoneinfo/right/Africa/Freetown
-#usr/share/zoneinfo/right/Africa/Gaborone
-#usr/share/zoneinfo/right/Africa/Harare
-#usr/share/zoneinfo/right/Africa/Johannesburg
-#usr/share/zoneinfo/right/Africa/Kampala
-#usr/share/zoneinfo/right/Africa/Khartoum
-#usr/share/zoneinfo/right/Africa/Kigali
-#usr/share/zoneinfo/right/Africa/Kinshasa
-#usr/share/zoneinfo/right/Africa/Lagos
-#usr/share/zoneinfo/right/Africa/Libreville
-#usr/share/zoneinfo/right/Africa/Lome
-#usr/share/zoneinfo/right/Africa/Luanda
-#usr/share/zoneinfo/right/Africa/Lubumbashi
-#usr/share/zoneinfo/right/Africa/Lusaka
-#usr/share/zoneinfo/right/Africa/Malabo
-#usr/share/zoneinfo/right/Africa/Maputo
-#usr/share/zoneinfo/right/Africa/Maseru
-#usr/share/zoneinfo/right/Africa/Mbabane
-#usr/share/zoneinfo/right/Africa/Mogadishu
-#usr/share/zoneinfo/right/Africa/Monrovia
-#usr/share/zoneinfo/right/Africa/Nairobi
-#usr/share/zoneinfo/right/Africa/Ndjamena
-#usr/share/zoneinfo/right/Africa/Niamey
-#usr/share/zoneinfo/right/Africa/Nouakchott
-#usr/share/zoneinfo/right/Africa/Ouagadougou
-#usr/share/zoneinfo/right/Africa/Porto-Novo
-#usr/share/zoneinfo/right/Africa/Sao_Tome
-#usr/share/zoneinfo/right/Africa/Timbuktu
-#usr/share/zoneinfo/right/Africa/Tripoli
-#usr/share/zoneinfo/right/Africa/Tunis
-#usr/share/zoneinfo/right/Africa/Windhoek
-#usr/share/zoneinfo/right/America
-#usr/share/zoneinfo/right/America/Adak
-#usr/share/zoneinfo/right/America/Anchorage
-#usr/share/zoneinfo/right/America/Anguilla
-#usr/share/zoneinfo/right/America/Antigua
-#usr/share/zoneinfo/right/America/Araguaina
-#usr/share/zoneinfo/right/America/Argentina
-#usr/share/zoneinfo/right/America/Argentina/Buenos_Aires
-#usr/share/zoneinfo/right/America/Argentina/Catamarca
-#usr/share/zoneinfo/right/America/Argentina/ComodRivadavia
-#usr/share/zoneinfo/right/America/Argentina/Cordoba
-#usr/share/zoneinfo/right/America/Argentina/Jujuy
-#usr/share/zoneinfo/right/America/Argentina/La_Rioja
-#usr/share/zoneinfo/right/America/Argentina/Mendoza
-#usr/share/zoneinfo/right/America/Argentina/Rio_Gallegos
-#usr/share/zoneinfo/right/America/Argentina/San_Juan
-#usr/share/zoneinfo/right/America/Argentina/Tucuman
-#usr/share/zoneinfo/right/America/Argentina/Ushuaia
-#usr/share/zoneinfo/right/America/Aruba
-#usr/share/zoneinfo/right/America/Asuncion
-#usr/share/zoneinfo/right/America/Atka
-#usr/share/zoneinfo/right/America/Bahia
-#usr/share/zoneinfo/right/America/Barbados
-#usr/share/zoneinfo/right/America/Belem
-#usr/share/zoneinfo/right/America/Belize
-#usr/share/zoneinfo/right/America/Boa_Vista
-#usr/share/zoneinfo/right/America/Bogota
-#usr/share/zoneinfo/right/America/Boise
-#usr/share/zoneinfo/right/America/Buenos_Aires
-#usr/share/zoneinfo/right/America/Cambridge_Bay
-#usr/share/zoneinfo/right/America/Campo_Grande
-#usr/share/zoneinfo/right/America/Cancun
-#usr/share/zoneinfo/right/America/Caracas
-#usr/share/zoneinfo/right/America/Catamarca
-#usr/share/zoneinfo/right/America/Cayenne
-#usr/share/zoneinfo/right/America/Cayman
-#usr/share/zoneinfo/right/America/Chicago
-#usr/share/zoneinfo/right/America/Chihuahua
-#usr/share/zoneinfo/right/America/Coral_Harbour
-#usr/share/zoneinfo/right/America/Cordoba
-#usr/share/zoneinfo/right/America/Costa_Rica
-#usr/share/zoneinfo/right/America/Cuiaba
-#usr/share/zoneinfo/right/America/Curacao
-#usr/share/zoneinfo/right/America/Danmarkshavn
-#usr/share/zoneinfo/right/America/Dawson
-#usr/share/zoneinfo/right/America/Dawson_Creek
-#usr/share/zoneinfo/right/America/Denver
-#usr/share/zoneinfo/right/America/Detroit
-#usr/share/zoneinfo/right/America/Dominica
-#usr/share/zoneinfo/right/America/Edmonton
-#usr/share/zoneinfo/right/America/Eirunepe
-#usr/share/zoneinfo/right/America/El_Salvador
-#usr/share/zoneinfo/right/America/Ensenada
-#usr/share/zoneinfo/right/America/Fort_Wayne
-#usr/share/zoneinfo/right/America/Fortaleza
-#usr/share/zoneinfo/right/America/Glace_Bay
-#usr/share/zoneinfo/right/America/Godthab
-#usr/share/zoneinfo/right/America/Goose_Bay
-#usr/share/zoneinfo/right/America/Grand_Turk
-#usr/share/zoneinfo/right/America/Grenada
-#usr/share/zoneinfo/right/America/Guadeloupe
-#usr/share/zoneinfo/right/America/Guatemala
-#usr/share/zoneinfo/right/America/Guayaquil
-#usr/share/zoneinfo/right/America/Guyana
-#usr/share/zoneinfo/right/America/Halifax
-#usr/share/zoneinfo/right/America/Havana
-#usr/share/zoneinfo/right/America/Hermosillo
-#usr/share/zoneinfo/right/America/Indiana
-#usr/share/zoneinfo/right/America/Indiana/Indianapolis
-#usr/share/zoneinfo/right/America/Indiana/Knox
-#usr/share/zoneinfo/right/America/Indiana/Marengo
-#usr/share/zoneinfo/right/America/Indiana/Vevay
-#usr/share/zoneinfo/right/America/Indianapolis
-#usr/share/zoneinfo/right/America/Inuvik
-#usr/share/zoneinfo/right/America/Iqaluit
-#usr/share/zoneinfo/right/America/Jamaica
-#usr/share/zoneinfo/right/America/Jujuy
-#usr/share/zoneinfo/right/America/Juneau
-#usr/share/zoneinfo/right/America/Kentucky
-#usr/share/zoneinfo/right/America/Kentucky/Louisville
-#usr/share/zoneinfo/right/America/Kentucky/Monticello
-#usr/share/zoneinfo/right/America/Knox_IN
-#usr/share/zoneinfo/right/America/La_Paz
-#usr/share/zoneinfo/right/America/Lima
-#usr/share/zoneinfo/right/America/Los_Angeles
-#usr/share/zoneinfo/right/America/Louisville
-#usr/share/zoneinfo/right/America/Maceio
-#usr/share/zoneinfo/right/America/Managua
-#usr/share/zoneinfo/right/America/Manaus
-#usr/share/zoneinfo/right/America/Martinique
-#usr/share/zoneinfo/right/America/Mazatlan
-#usr/share/zoneinfo/right/America/Mendoza
-#usr/share/zoneinfo/right/America/Menominee
-#usr/share/zoneinfo/right/America/Merida
-#usr/share/zoneinfo/right/America/Mexico_City
-#usr/share/zoneinfo/right/America/Miquelon
-#usr/share/zoneinfo/right/America/Monterrey
-#usr/share/zoneinfo/right/America/Montevideo
-#usr/share/zoneinfo/right/America/Montreal
-#usr/share/zoneinfo/right/America/Montserrat
-#usr/share/zoneinfo/right/America/Nassau
-#usr/share/zoneinfo/right/America/New_York
-#usr/share/zoneinfo/right/America/Nipigon
-#usr/share/zoneinfo/right/America/Nome
-#usr/share/zoneinfo/right/America/Noronha
-#usr/share/zoneinfo/right/America/North_Dakota
-#usr/share/zoneinfo/right/America/North_Dakota/Center
-#usr/share/zoneinfo/right/America/Panama
-#usr/share/zoneinfo/right/America/Pangnirtung
-#usr/share/zoneinfo/right/America/Paramaribo
-#usr/share/zoneinfo/right/America/Phoenix
-#usr/share/zoneinfo/right/America/Port-au-Prince
-#usr/share/zoneinfo/right/America/Port_of_Spain
-#usr/share/zoneinfo/right/America/Porto_Acre
-#usr/share/zoneinfo/right/America/Porto_Velho
-#usr/share/zoneinfo/right/America/Puerto_Rico
-#usr/share/zoneinfo/right/America/Rainy_River
-#usr/share/zoneinfo/right/America/Rankin_Inlet
-#usr/share/zoneinfo/right/America/Recife
-#usr/share/zoneinfo/right/America/Regina
-#usr/share/zoneinfo/right/America/Rio_Branco
-#usr/share/zoneinfo/right/America/Rosario
-#usr/share/zoneinfo/right/America/Santiago
-#usr/share/zoneinfo/right/America/Santo_Domingo
-#usr/share/zoneinfo/right/America/Sao_Paulo
-#usr/share/zoneinfo/right/America/Scoresbysund
-#usr/share/zoneinfo/right/America/Shiprock
-#usr/share/zoneinfo/right/America/St_Johns
-#usr/share/zoneinfo/right/America/St_Kitts
-#usr/share/zoneinfo/right/America/St_Lucia
-#usr/share/zoneinfo/right/America/St_Thomas
-#usr/share/zoneinfo/right/America/St_Vincent
-#usr/share/zoneinfo/right/America/Swift_Current
-#usr/share/zoneinfo/right/America/Tegucigalpa
-#usr/share/zoneinfo/right/America/Thule
-#usr/share/zoneinfo/right/America/Thunder_Bay
-#usr/share/zoneinfo/right/America/Tijuana
-#usr/share/zoneinfo/right/America/Toronto
-#usr/share/zoneinfo/right/America/Tortola
-#usr/share/zoneinfo/right/America/Vancouver
-#usr/share/zoneinfo/right/America/Virgin
-#usr/share/zoneinfo/right/America/Whitehorse
-#usr/share/zoneinfo/right/America/Winnipeg
-#usr/share/zoneinfo/right/America/Yakutat
-#usr/share/zoneinfo/right/America/Yellowknife
-#usr/share/zoneinfo/right/Antarctica
-#usr/share/zoneinfo/right/Antarctica/Casey
-#usr/share/zoneinfo/right/Antarctica/Davis
-#usr/share/zoneinfo/right/Antarctica/DumontDUrville
-#usr/share/zoneinfo/right/Antarctica/Mawson
-#usr/share/zoneinfo/right/Antarctica/McMurdo
-#usr/share/zoneinfo/right/Antarctica/Palmer
-#usr/share/zoneinfo/right/Antarctica/Rothera
-#usr/share/zoneinfo/right/Antarctica/South_Pole
-#usr/share/zoneinfo/right/Antarctica/Syowa
-#usr/share/zoneinfo/right/Antarctica/Vostok
-#usr/share/zoneinfo/right/Arctic
-#usr/share/zoneinfo/right/Arctic/Longyearbyen
-#usr/share/zoneinfo/right/Asia
-#usr/share/zoneinfo/right/Asia/Aden
-#usr/share/zoneinfo/right/Asia/Almaty
-#usr/share/zoneinfo/right/Asia/Amman
-#usr/share/zoneinfo/right/Asia/Anadyr
-#usr/share/zoneinfo/right/Asia/Aqtau
-#usr/share/zoneinfo/right/Asia/Aqtobe
-#usr/share/zoneinfo/right/Asia/Ashgabat
-#usr/share/zoneinfo/right/Asia/Ashkhabad
-#usr/share/zoneinfo/right/Asia/Baghdad
-#usr/share/zoneinfo/right/Asia/Bahrain
-#usr/share/zoneinfo/right/Asia/Baku
-#usr/share/zoneinfo/right/Asia/Bangkok
-#usr/share/zoneinfo/right/Asia/Beirut
-#usr/share/zoneinfo/right/Asia/Bishkek
-#usr/share/zoneinfo/right/Asia/Brunei
-#usr/share/zoneinfo/right/Asia/Calcutta
-#usr/share/zoneinfo/right/Asia/Choibalsan
-#usr/share/zoneinfo/right/Asia/Chongqing
-#usr/share/zoneinfo/right/Asia/Chungking
-#usr/share/zoneinfo/right/Asia/Colombo
-#usr/share/zoneinfo/right/Asia/Dacca
-#usr/share/zoneinfo/right/Asia/Damascus
-#usr/share/zoneinfo/right/Asia/Dhaka
-#usr/share/zoneinfo/right/Asia/Dili
-#usr/share/zoneinfo/right/Asia/Dubai
-#usr/share/zoneinfo/right/Asia/Dushanbe
-#usr/share/zoneinfo/right/Asia/Gaza
-#usr/share/zoneinfo/right/Asia/Harbin
-#usr/share/zoneinfo/right/Asia/Hong_Kong
-#usr/share/zoneinfo/right/Asia/Hovd
-#usr/share/zoneinfo/right/Asia/Irkutsk
-#usr/share/zoneinfo/right/Asia/Istanbul
-#usr/share/zoneinfo/right/Asia/Jakarta
-#usr/share/zoneinfo/right/Asia/Jayapura
-#usr/share/zoneinfo/right/Asia/Jerusalem
-#usr/share/zoneinfo/right/Asia/Kabul
-#usr/share/zoneinfo/right/Asia/Kamchatka
-#usr/share/zoneinfo/right/Asia/Karachi
-#usr/share/zoneinfo/right/Asia/Kashgar
-#usr/share/zoneinfo/right/Asia/Katmandu
-#usr/share/zoneinfo/right/Asia/Krasnoyarsk
-#usr/share/zoneinfo/right/Asia/Kuala_Lumpur
-#usr/share/zoneinfo/right/Asia/Kuching
-#usr/share/zoneinfo/right/Asia/Kuwait
-#usr/share/zoneinfo/right/Asia/Macao
-#usr/share/zoneinfo/right/Asia/Macau
-#usr/share/zoneinfo/right/Asia/Magadan
-#usr/share/zoneinfo/right/Asia/Makassar
-#usr/share/zoneinfo/right/Asia/Manila
-#usr/share/zoneinfo/right/Asia/Muscat
-#usr/share/zoneinfo/right/Asia/Nicosia
-#usr/share/zoneinfo/right/Asia/Novosibirsk
-#usr/share/zoneinfo/right/Asia/Omsk
-#usr/share/zoneinfo/right/Asia/Oral
-#usr/share/zoneinfo/right/Asia/Phnom_Penh
-#usr/share/zoneinfo/right/Asia/Pontianak
-#usr/share/zoneinfo/right/Asia/Pyongyang
-#usr/share/zoneinfo/right/Asia/Qatar
-#usr/share/zoneinfo/right/Asia/Qyzylorda
-#usr/share/zoneinfo/right/Asia/Rangoon
-#usr/share/zoneinfo/right/Asia/Riyadh
-#usr/share/zoneinfo/right/Asia/Riyadh87
-#usr/share/zoneinfo/right/Asia/Riyadh88
-#usr/share/zoneinfo/right/Asia/Riyadh89
-#usr/share/zoneinfo/right/Asia/Saigon
-#usr/share/zoneinfo/right/Asia/Sakhalin
-#usr/share/zoneinfo/right/Asia/Samarkand
-#usr/share/zoneinfo/right/Asia/Seoul
-#usr/share/zoneinfo/right/Asia/Shanghai
-#usr/share/zoneinfo/right/Asia/Singapore
-#usr/share/zoneinfo/right/Asia/Taipei
-#usr/share/zoneinfo/right/Asia/Tashkent
-#usr/share/zoneinfo/right/Asia/Tbilisi
-#usr/share/zoneinfo/right/Asia/Tehran
-#usr/share/zoneinfo/right/Asia/Tel_Aviv
-#usr/share/zoneinfo/right/Asia/Thimbu
-#usr/share/zoneinfo/right/Asia/Thimphu
-#usr/share/zoneinfo/right/Asia/Tokyo
-#usr/share/zoneinfo/right/Asia/Ujung_Pandang
-#usr/share/zoneinfo/right/Asia/Ulaanbaatar
-#usr/share/zoneinfo/right/Asia/Ulan_Bator
-#usr/share/zoneinfo/right/Asia/Urumqi
-#usr/share/zoneinfo/right/Asia/Vientiane
-#usr/share/zoneinfo/right/Asia/Vladivostok
-#usr/share/zoneinfo/right/Asia/Yakutsk
-#usr/share/zoneinfo/right/Asia/Yekaterinburg
-#usr/share/zoneinfo/right/Asia/Yerevan
-#usr/share/zoneinfo/right/Atlantic
-#usr/share/zoneinfo/right/Atlantic/Azores
-#usr/share/zoneinfo/right/Atlantic/Bermuda
-#usr/share/zoneinfo/right/Atlantic/Canary
-#usr/share/zoneinfo/right/Atlantic/Cape_Verde
-#usr/share/zoneinfo/right/Atlantic/Faeroe
-#usr/share/zoneinfo/right/Atlantic/Jan_Mayen
-#usr/share/zoneinfo/right/Atlantic/Madeira
-#usr/share/zoneinfo/right/Atlantic/Reykjavik
-#usr/share/zoneinfo/right/Atlantic/South_Georgia
-#usr/share/zoneinfo/right/Atlantic/St_Helena
-#usr/share/zoneinfo/right/Atlantic/Stanley
-#usr/share/zoneinfo/right/Australia
-#usr/share/zoneinfo/right/Australia/ACT
-#usr/share/zoneinfo/right/Australia/Adelaide
-#usr/share/zoneinfo/right/Australia/Brisbane
-#usr/share/zoneinfo/right/Australia/Broken_Hill
-#usr/share/zoneinfo/right/Australia/Canberra
-#usr/share/zoneinfo/right/Australia/Currie
-#usr/share/zoneinfo/right/Australia/Darwin
-#usr/share/zoneinfo/right/Australia/Hobart
-#usr/share/zoneinfo/right/Australia/LHI
-#usr/share/zoneinfo/right/Australia/Lindeman
-#usr/share/zoneinfo/right/Australia/Lord_Howe
-#usr/share/zoneinfo/right/Australia/Melbourne
-#usr/share/zoneinfo/right/Australia/NSW
-#usr/share/zoneinfo/right/Australia/North
-#usr/share/zoneinfo/right/Australia/Perth
-#usr/share/zoneinfo/right/Australia/Queensland
-#usr/share/zoneinfo/right/Australia/South
-#usr/share/zoneinfo/right/Australia/Sydney
-#usr/share/zoneinfo/right/Australia/Tasmania
-#usr/share/zoneinfo/right/Australia/Victoria
-#usr/share/zoneinfo/right/Australia/West
-#usr/share/zoneinfo/right/Australia/Yancowinna
-#usr/share/zoneinfo/right/Brazil
-#usr/share/zoneinfo/right/Brazil/Acre
-#usr/share/zoneinfo/right/Brazil/DeNoronha
-#usr/share/zoneinfo/right/Brazil/East
-#usr/share/zoneinfo/right/Brazil/West
-#usr/share/zoneinfo/right/CET
-#usr/share/zoneinfo/right/CST6CDT
-#usr/share/zoneinfo/right/Canada
-#usr/share/zoneinfo/right/Canada/Atlantic
-#usr/share/zoneinfo/right/Canada/Central
-#usr/share/zoneinfo/right/Canada/East-Saskatchewan
-#usr/share/zoneinfo/right/Canada/Eastern
-#usr/share/zoneinfo/right/Canada/Mountain
-#usr/share/zoneinfo/right/Canada/Newfoundland
-#usr/share/zoneinfo/right/Canada/Pacific
-#usr/share/zoneinfo/right/Canada/Saskatchewan
-#usr/share/zoneinfo/right/Canada/Yukon
-#usr/share/zoneinfo/right/Chile
-#usr/share/zoneinfo/right/Chile/Continental
-#usr/share/zoneinfo/right/Chile/EasterIsland
-#usr/share/zoneinfo/right/Cuba
-#usr/share/zoneinfo/right/EET
-#usr/share/zoneinfo/right/EST
-#usr/share/zoneinfo/right/EST5EDT
-#usr/share/zoneinfo/right/Egypt
-#usr/share/zoneinfo/right/Eire
-#usr/share/zoneinfo/right/Etc
-#usr/share/zoneinfo/right/Etc/GMT
-#usr/share/zoneinfo/right/Etc/GMT+0
-#usr/share/zoneinfo/right/Etc/GMT+1
-#usr/share/zoneinfo/right/Etc/GMT+10
-#usr/share/zoneinfo/right/Etc/GMT+11
-#usr/share/zoneinfo/right/Etc/GMT+12
-#usr/share/zoneinfo/right/Etc/GMT+2
-#usr/share/zoneinfo/right/Etc/GMT+3
-#usr/share/zoneinfo/right/Etc/GMT+4
-#usr/share/zoneinfo/right/Etc/GMT+5
-#usr/share/zoneinfo/right/Etc/GMT+6
-#usr/share/zoneinfo/right/Etc/GMT+7
-#usr/share/zoneinfo/right/Etc/GMT+8
-#usr/share/zoneinfo/right/Etc/GMT+9
-#usr/share/zoneinfo/right/Etc/GMT-0
-#usr/share/zoneinfo/right/Etc/GMT-1
-#usr/share/zoneinfo/right/Etc/GMT-10
-#usr/share/zoneinfo/right/Etc/GMT-11
-#usr/share/zoneinfo/right/Etc/GMT-12
-#usr/share/zoneinfo/right/Etc/GMT-13
-#usr/share/zoneinfo/right/Etc/GMT-14
-#usr/share/zoneinfo/right/Etc/GMT-2
-#usr/share/zoneinfo/right/Etc/GMT-3
-#usr/share/zoneinfo/right/Etc/GMT-4
-#usr/share/zoneinfo/right/Etc/GMT-5
-#usr/share/zoneinfo/right/Etc/GMT-6
-#usr/share/zoneinfo/right/Etc/GMT-7
-#usr/share/zoneinfo/right/Etc/GMT-8
-#usr/share/zoneinfo/right/Etc/GMT-9
-#usr/share/zoneinfo/right/Etc/GMT0
-#usr/share/zoneinfo/right/Etc/Greenwich
-#usr/share/zoneinfo/right/Etc/UCT
-#usr/share/zoneinfo/right/Etc/UTC
-#usr/share/zoneinfo/right/Etc/Universal
-#usr/share/zoneinfo/right/Etc/Zulu
-#usr/share/zoneinfo/right/Europe
-#usr/share/zoneinfo/right/Europe/Amsterdam
-#usr/share/zoneinfo/right/Europe/Andorra
-#usr/share/zoneinfo/right/Europe/Athens
-#usr/share/zoneinfo/right/Europe/Belfast
-#usr/share/zoneinfo/right/Europe/Belgrade
-#usr/share/zoneinfo/right/Europe/Berlin
-#usr/share/zoneinfo/right/Europe/Bratislava
-#usr/share/zoneinfo/right/Europe/Brussels
-#usr/share/zoneinfo/right/Europe/Bucharest
-#usr/share/zoneinfo/right/Europe/Budapest
-#usr/share/zoneinfo/right/Europe/Chisinau
-#usr/share/zoneinfo/right/Europe/Copenhagen
-#usr/share/zoneinfo/right/Europe/Dublin
-#usr/share/zoneinfo/right/Europe/Gibraltar
-#usr/share/zoneinfo/right/Europe/Helsinki
-#usr/share/zoneinfo/right/Europe/Istanbul
-#usr/share/zoneinfo/right/Europe/Kaliningrad
-#usr/share/zoneinfo/right/Europe/Kiev
-#usr/share/zoneinfo/right/Europe/Lisbon
-#usr/share/zoneinfo/right/Europe/Ljubljana
-#usr/share/zoneinfo/right/Europe/London
-#usr/share/zoneinfo/right/Europe/Luxembourg
-#usr/share/zoneinfo/right/Europe/Madrid
-#usr/share/zoneinfo/right/Europe/Malta
-#usr/share/zoneinfo/right/Europe/Mariehamn
-#usr/share/zoneinfo/right/Europe/Minsk
-#usr/share/zoneinfo/right/Europe/Monaco
-#usr/share/zoneinfo/right/Europe/Moscow
-#usr/share/zoneinfo/right/Europe/Nicosia
-#usr/share/zoneinfo/right/Europe/Oslo
-#usr/share/zoneinfo/right/Europe/Paris
-#usr/share/zoneinfo/right/Europe/Prague
-#usr/share/zoneinfo/right/Europe/Riga
-#usr/share/zoneinfo/right/Europe/Rome
-#usr/share/zoneinfo/right/Europe/Samara
-#usr/share/zoneinfo/right/Europe/San_Marino
-#usr/share/zoneinfo/right/Europe/Sarajevo
-#usr/share/zoneinfo/right/Europe/Simferopol
-#usr/share/zoneinfo/right/Europe/Skopje
-#usr/share/zoneinfo/right/Europe/Sofia
-#usr/share/zoneinfo/right/Europe/Stockholm
-#usr/share/zoneinfo/right/Europe/Tallinn
-#usr/share/zoneinfo/right/Europe/Tirane
-#usr/share/zoneinfo/right/Europe/Tiraspol
-#usr/share/zoneinfo/right/Europe/Uzhgorod
-#usr/share/zoneinfo/right/Europe/Vaduz
-#usr/share/zoneinfo/right/Europe/Vatican
-#usr/share/zoneinfo/right/Europe/Vienna
-#usr/share/zoneinfo/right/Europe/Vilnius
-#usr/share/zoneinfo/right/Europe/Warsaw
-#usr/share/zoneinfo/right/Europe/Zagreb
-#usr/share/zoneinfo/right/Europe/Zaporozhye
-#usr/share/zoneinfo/right/Europe/Zurich
-#usr/share/zoneinfo/right/Factory
-#usr/share/zoneinfo/right/GB
-#usr/share/zoneinfo/right/GB-Eire
-#usr/share/zoneinfo/right/GMT
-#usr/share/zoneinfo/right/GMT+0
-#usr/share/zoneinfo/right/GMT-0
-#usr/share/zoneinfo/right/GMT0
-#usr/share/zoneinfo/right/Greenwich
-#usr/share/zoneinfo/right/HST
-#usr/share/zoneinfo/right/Hongkong
-#usr/share/zoneinfo/right/Iceland
-#usr/share/zoneinfo/right/Indian
-#usr/share/zoneinfo/right/Indian/Antananarivo
-#usr/share/zoneinfo/right/Indian/Chagos
-#usr/share/zoneinfo/right/Indian/Christmas
-#usr/share/zoneinfo/right/Indian/Cocos
-#usr/share/zoneinfo/right/Indian/Comoro
-#usr/share/zoneinfo/right/Indian/Kerguelen
-#usr/share/zoneinfo/right/Indian/Mahe
-#usr/share/zoneinfo/right/Indian/Maldives
-#usr/share/zoneinfo/right/Indian/Mauritius
-#usr/share/zoneinfo/right/Indian/Mayotte
-#usr/share/zoneinfo/right/Indian/Reunion
-#usr/share/zoneinfo/right/Iran
-#usr/share/zoneinfo/right/Israel
-#usr/share/zoneinfo/right/Jamaica
-#usr/share/zoneinfo/right/Japan
-#usr/share/zoneinfo/right/Kwajalein
-#usr/share/zoneinfo/right/Libya
-#usr/share/zoneinfo/right/MET
-#usr/share/zoneinfo/right/MST
-#usr/share/zoneinfo/right/MST7MDT
-#usr/share/zoneinfo/right/Mexico
-#usr/share/zoneinfo/right/Mexico/BajaNorte
-#usr/share/zoneinfo/right/Mexico/BajaSur
-#usr/share/zoneinfo/right/Mexico/General
-#usr/share/zoneinfo/right/Mideast
-#usr/share/zoneinfo/right/Mideast/Riyadh87
-#usr/share/zoneinfo/right/Mideast/Riyadh88
-#usr/share/zoneinfo/right/Mideast/Riyadh89
-#usr/share/zoneinfo/right/NZ
-#usr/share/zoneinfo/right/NZ-CHAT
-#usr/share/zoneinfo/right/Navajo
-#usr/share/zoneinfo/right/PRC
-#usr/share/zoneinfo/right/PST8PDT
-#usr/share/zoneinfo/right/Pacific
-#usr/share/zoneinfo/right/Pacific/Apia
-#usr/share/zoneinfo/right/Pacific/Auckland
-#usr/share/zoneinfo/right/Pacific/Chatham
-#usr/share/zoneinfo/right/Pacific/Easter
-#usr/share/zoneinfo/right/Pacific/Efate
-#usr/share/zoneinfo/right/Pacific/Enderbury
-#usr/share/zoneinfo/right/Pacific/Fakaofo
-#usr/share/zoneinfo/right/Pacific/Fiji
-#usr/share/zoneinfo/right/Pacific/Funafuti
-#usr/share/zoneinfo/right/Pacific/Galapagos
-#usr/share/zoneinfo/right/Pacific/Gambier
-#usr/share/zoneinfo/right/Pacific/Guadalcanal
-#usr/share/zoneinfo/right/Pacific/Guam
-#usr/share/zoneinfo/right/Pacific/Honolulu
-#usr/share/zoneinfo/right/Pacific/Johnston
-#usr/share/zoneinfo/right/Pacific/Kiritimati
-#usr/share/zoneinfo/right/Pacific/Kosrae
-#usr/share/zoneinfo/right/Pacific/Kwajalein
-#usr/share/zoneinfo/right/Pacific/Majuro
-#usr/share/zoneinfo/right/Pacific/Marquesas
-#usr/share/zoneinfo/right/Pacific/Midway
-#usr/share/zoneinfo/right/Pacific/Nauru
-#usr/share/zoneinfo/right/Pacific/Niue
-#usr/share/zoneinfo/right/Pacific/Norfolk
-#usr/share/zoneinfo/right/Pacific/Noumea
-#usr/share/zoneinfo/right/Pacific/Pago_Pago
-#usr/share/zoneinfo/right/Pacific/Palau
-#usr/share/zoneinfo/right/Pacific/Pitcairn
-#usr/share/zoneinfo/right/Pacific/Ponape
-#usr/share/zoneinfo/right/Pacific/Port_Moresby
-#usr/share/zoneinfo/right/Pacific/Rarotonga
-#usr/share/zoneinfo/right/Pacific/Saipan
-#usr/share/zoneinfo/right/Pacific/Samoa
-#usr/share/zoneinfo/right/Pacific/Tahiti
-#usr/share/zoneinfo/right/Pacific/Tarawa
-#usr/share/zoneinfo/right/Pacific/Tongatapu
-#usr/share/zoneinfo/right/Pacific/Truk
-#usr/share/zoneinfo/right/Pacific/Wake
-#usr/share/zoneinfo/right/Pacific/Wallis
-#usr/share/zoneinfo/right/Pacific/Yap
-#usr/share/zoneinfo/right/Poland
-#usr/share/zoneinfo/right/Portugal
-#usr/share/zoneinfo/right/ROC
-#usr/share/zoneinfo/right/ROK
-#usr/share/zoneinfo/right/Singapore
-#usr/share/zoneinfo/right/SystemV
-#usr/share/zoneinfo/right/SystemV/AST4
-#usr/share/zoneinfo/right/SystemV/AST4ADT
-#usr/share/zoneinfo/right/SystemV/CST6
-#usr/share/zoneinfo/right/SystemV/CST6CDT
-#usr/share/zoneinfo/right/SystemV/EST5
-#usr/share/zoneinfo/right/SystemV/EST5EDT
-#usr/share/zoneinfo/right/SystemV/HST10
-#usr/share/zoneinfo/right/SystemV/MST7
-#usr/share/zoneinfo/right/SystemV/MST7MDT
-#usr/share/zoneinfo/right/SystemV/PST8
-#usr/share/zoneinfo/right/SystemV/PST8PDT
-#usr/share/zoneinfo/right/SystemV/YST9
-#usr/share/zoneinfo/right/SystemV/YST9YDT
-#usr/share/zoneinfo/right/Turkey
-#usr/share/zoneinfo/right/UCT
-#usr/share/zoneinfo/right/US
-#usr/share/zoneinfo/right/US/Alaska
-#usr/share/zoneinfo/right/US/Aleutian
-#usr/share/zoneinfo/right/US/Arizona
-#usr/share/zoneinfo/right/US/Central
-#usr/share/zoneinfo/right/US/East-Indiana
-#usr/share/zoneinfo/right/US/Eastern
-#usr/share/zoneinfo/right/US/Hawaii
-#usr/share/zoneinfo/right/US/Indiana-Starke
-#usr/share/zoneinfo/right/US/Michigan
-#usr/share/zoneinfo/right/US/Mountain
-#usr/share/zoneinfo/right/US/Pacific
-#usr/share/zoneinfo/right/US/Samoa
-#usr/share/zoneinfo/right/UTC
-#usr/share/zoneinfo/right/Universal
-#usr/share/zoneinfo/right/W-SU
-#usr/share/zoneinfo/right/WET
-#usr/share/zoneinfo/right/Zulu
-#usr/share/zoneinfo/zone.tab
+#var/cache/ldconfig
+#var/cache/ldconfig/aux-cache
index e466ff0f57a73d364b0f57094b4925cdf3892493..de6a53b5cff18f3432acf5d080e0bc25034b758e 100644 (file)
@@ -1,32 +1,34 @@
 #boot/grub
+boot/grub/default
 boot/grub/grub.conf
 boot/grub/ipfire.xpm.gz
 boot/grub/stage1
 boot/grub/stage2
 #usr/bin/mbchk
-#usr/info/grub.info
-#usr/info/multiboot.info
-#usr/man/man1/mbchk.1
-#usr/man/man8/grub-install.8
-#usr/man/man8/grub-md5-crypt.8
-#usr/man/man8/grub-terminfo.8
-#usr/man/man8/grub.8
+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/sbin/grub-install
 usr/sbin/grub-md5-crypt
+usr/sbin/grub-set-default
 usr/sbin/grub-terminfo
-usr/share/grub
-#usr/share/grub/i386-pc
-#usr/share/grub/i386-pc/e2fs_stage1_5
-#usr/share/grub/i386-pc/fat_stage1_5
-#usr/share/grub/i386-pc/ffs_stage1_5
-#usr/share/grub/i386-pc/iso9660_stage1_5
-#usr/share/grub/i386-pc/jfs_stage1_5
-#usr/share/grub/i386-pc/minix_stage1_5
-#usr/share/grub/i386-pc/reiserfs_stage1_5
-#usr/share/grub/i386-pc/stage1
-#usr/share/grub/i386-pc/stage2
-#usr/share/grub/i386-pc/stage2_eltorito
-#usr/share/grub/i386-pc/ufs2_stage1_5
-#usr/share/grub/i386-pc/vstafs_stage1_5
-#usr/share/grub/i386-pc/xfs_stage1_5
+#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
index 653060f72237f611564af15cb6ab931c45189556..5bc93d7ed5d46486f75808cf062d3136952a49a7 100644 (file)
@@ -3,6 +3,7 @@
 etc/rc.d/helper/getdnsfromdhcpc.pl
 etc/rc.d/helper/writeipac.pl
 #etc/rc.d/init.d
+etc/rc.d/init.d/acpid
 #etc/rc.d/init.d/alsa
 #etc/rc.d/init.d/amavisd
 etc/rc.d/init.d/apache
@@ -37,7 +38,6 @@ etc/rc.d/init.d/halt
 #etc/rc.d/init.d/hostapd
 #etc/rc.d/init.d/icecream
 #etc/rc.d/init.d/imspector
-#etc/rc.d/init.d/ipfireseeder
 etc/rc.d/init.d/ipsec
 #etc/rc.d/init.d/lcd4linux
 #etc/rc.d/init.d/lcr
@@ -143,6 +143,7 @@ etc/rc.d/rc0.d/K28apache
 etc/rc.d/rc0.d/K30sshd
 #etc/rc.d/rc0.d/K34client175
 etc/rc.d/rc0.d/K45random
+etc/rc.d/rc0.d/K47setclock
 etc/rc.d/rc0.d/K49cyrus-sasl
 etc/rc.d/rc0.d/K78snort
 etc/rc.d/rc0.d/K79leds
@@ -150,6 +151,7 @@ etc/rc.d/rc0.d/K80network
 #etc/rc.d/rc0.d/K84bluetooth
 #etc/rc.d/rc0.d/K85messagebus
 etc/rc.d/rc0.d/K85tmpfs
+etc/rc.d/rc0.d/K87acpid
 etc/rc.d/rc0.d/K90sysklogd
 etc/rc.d/rc0.d/S60sendsignals
 etc/rc.d/rc0.d/S70localnet
@@ -159,6 +161,7 @@ etc/rc.d/rc0.d/S99halt
 #etc/rc.d/rc3.d
 etc/rc.d/rc3.d/S01tmpfs
 etc/rc.d/rc3.d/S10sysklogd
+etc/rc.d/rc3.d/S12acpid
 #etc/rc.d/rc3.d/S15messagebus
 #etc/rc.d/rc3.d/S16bluetooth
 #etc/rc.d/rc3.d/S18cpufreq
@@ -188,6 +191,7 @@ etc/rc.d/rc6.d/K28apache
 etc/rc.d/rc6.d/K30sshd
 #etc/rc.d/rc6.d/K34client175
 etc/rc.d/rc6.d/K45random
+etc/rc.d/rc6.d/K47setclock
 etc/rc.d/rc6.d/K49cyrus-sasl
 etc/rc.d/rc6.d/K78snort
 etc/rc.d/rc6.d/K79leds
@@ -195,6 +199,7 @@ etc/rc.d/rc6.d/K80network
 #etc/rc.d/rc6.d/K84bluetooth
 #etc/rc.d/rc6.d/K85messagebus
 etc/rc.d/rc6.d/K85tmpfs
+etc/rc.d/rc6.d/K87acpid
 etc/rc.d/rc6.d/K90sysklogd
 etc/rc.d/rc6.d/S60sendsignals
 etc/rc.d/rc6.d/S70mountfs
diff --git a/config/rootfiles/common/i586/kqemu b/config/rootfiles/common/i586/kqemu
deleted file mode 100644 (file)
index 88244ee..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-#lib/modules/KVER-ipfire/misc
-lib/modules/KVER-ipfire/misc/kqemu.ko
index 7b9fce4d383d5179d2f997e7800ad3490b77d73a..750b61e377d009b13ad20d613389f3f25b51a78d 100644 (file)
@@ -1,4 +1,3 @@
-boot/ipfirerd-KVER.img
 boot/System.map-KVER-ipfire
 boot/System.map-ipfire
 boot/config-KVER-ipfire
@@ -13,39 +12,30 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/arch
 #lib/modules/KVER-ipfire/kernel/arch/x86
 #lib/modules/KVER-ipfire/kernel/arch/x86/crypto
-#lib/modules/KVER-ipfire/kernel/arch/x86/crypto/aes-MACHINE.ko
+#lib/modules/KVER-ipfire/kernel/arch/x86/crypto/aes-i586.ko
+#lib/modules/KVER-ipfire/kernel/arch/x86/crypto/aesni-intel.ko
 #lib/modules/KVER-ipfire/kernel/arch/x86/crypto/crc32c-intel.ko
-#lib/modules/KVER-ipfire/kernel/arch/x86/crypto/salsa20-MACHINE.ko
-#lib/modules/KVER-ipfire/kernel/arch/x86/crypto/twofish-MACHINE.ko
+#lib/modules/KVER-ipfire/kernel/arch/x86/crypto/salsa20-i586.ko
+#lib/modules/KVER-ipfire/kernel/arch/x86/crypto/twofish-i586.ko
 #lib/modules/KVER-ipfire/kernel/arch/x86/kernel
 #lib/modules/KVER-ipfire/kernel/arch/x86/kernel/apm.ko
 #lib/modules/KVER-ipfire/kernel/arch/x86/kernel/cpu
-#lib/modules/KVER-ipfire/kernel/arch/x86/kernel/cpu/cpufreq
-#lib/modules/KVER-ipfire/kernel/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.ko
-#lib/modules/KVER-ipfire/kernel/arch/x86/kernel/cpu/cpufreq/cpufreq-nforce2.ko
-#lib/modules/KVER-ipfire/kernel/arch/x86/kernel/cpu/cpufreq/e_powersaver.ko
-#lib/modules/KVER-ipfire/kernel/arch/x86/kernel/cpu/cpufreq/gx-suspmod.ko
-#lib/modules/KVER-ipfire/kernel/arch/x86/kernel/cpu/cpufreq/longhaul.ko
-#lib/modules/KVER-ipfire/kernel/arch/x86/kernel/cpu/cpufreq/longrun.ko
-#lib/modules/KVER-ipfire/kernel/arch/x86/kernel/cpu/cpufreq/p4-clockmod.ko
-#lib/modules/KVER-ipfire/kernel/arch/x86/kernel/cpu/cpufreq/powernow-k6.ko
-#lib/modules/KVER-ipfire/kernel/arch/x86/kernel/cpu/cpufreq/powernow-k7.ko
-#lib/modules/KVER-ipfire/kernel/arch/x86/kernel/cpu/cpufreq/powernow-k8.ko
-#lib/modules/KVER-ipfire/kernel/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.ko
-#lib/modules/KVER-ipfire/kernel/arch/x86/kernel/cpu/cpufreq/speedstep-ich.ko
-#lib/modules/KVER-ipfire/kernel/arch/x86/kernel/cpu/cpufreq/speedstep-lib.ko
-#lib/modules/KVER-ipfire/kernel/arch/x86/kernel/cpu/cpufreq/speedstep-smi.ko
 #lib/modules/KVER-ipfire/kernel/arch/x86/kernel/cpu/mcheck
 #lib/modules/KVER-ipfire/kernel/arch/x86/kernel/cpu/mcheck/mce-inject.ko
 #lib/modules/KVER-ipfire/kernel/arch/x86/kernel/microcode.ko
 #lib/modules/KVER-ipfire/kernel/arch/x86/kernel/msr.ko
-#lib/modules/KVER-ipfire/kernel/arch/x86/kernel/scx200.ko
 #lib/modules/KVER-ipfire/kernel/arch/x86/kvm
 #lib/modules/KVER-ipfire/kernel/arch/x86/kvm/kvm-amd.ko
 #lib/modules/KVER-ipfire/kernel/arch/x86/kvm/kvm-intel.ko
 #lib/modules/KVER-ipfire/kernel/arch/x86/kvm/kvm.ko
+#lib/modules/KVER-ipfire/kernel/arch/x86/platform
+#lib/modules/KVER-ipfire/kernel/arch/x86/platform/scx200
+#lib/modules/KVER-ipfire/kernel/arch/x86/platform/scx200/scx200.ko
 #lib/modules/KVER-ipfire/kernel/crypto
 #lib/modules/KVER-ipfire/kernel/crypto/aes_generic.ko
+#lib/modules/KVER-ipfire/kernel/crypto/af_alg.ko
+#lib/modules/KVER-ipfire/kernel/crypto/algif_hash.ko
+#lib/modules/KVER-ipfire/kernel/crypto/algif_skcipher.ko
 #lib/modules/KVER-ipfire/kernel/crypto/ansi_cprng.ko
 #lib/modules/KVER-ipfire/kernel/crypto/anubis.ko
 #lib/modules/KVER-ipfire/kernel/crypto/arc4.ko
@@ -57,7 +47,9 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/crypto/async_tx/async_xor.ko
 #lib/modules/KVER-ipfire/kernel/crypto/async_tx/raid6test.ko
 #lib/modules/KVER-ipfire/kernel/crypto/authenc.ko
-#lib/modules/KVER-ipfire/kernel/crypto/blowfish.ko
+#lib/modules/KVER-ipfire/kernel/crypto/authencesn.ko
+#lib/modules/KVER-ipfire/kernel/crypto/blowfish_common.ko
+#lib/modules/KVER-ipfire/kernel/crypto/blowfish_generic.ko
 #lib/modules/KVER-ipfire/kernel/crypto/camellia.ko
 #lib/modules/KVER-ipfire/kernel/crypto/cast5.ko
 #lib/modules/KVER-ipfire/kernel/crypto/cast6.ko
@@ -65,6 +57,7 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/crypto/ccm.ko
 #lib/modules/KVER-ipfire/kernel/crypto/crc32c.ko
 #lib/modules/KVER-ipfire/kernel/crypto/cryptd.ko
+#lib/modules/KVER-ipfire/kernel/crypto/crypto_user.ko
 #lib/modules/KVER-ipfire/kernel/crypto/ctr.ko
 #lib/modules/KVER-ipfire/kernel/crypto/cts.ko
 #lib/modules/KVER-ipfire/kernel/crypto/des_generic.ko
@@ -76,9 +69,11 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/crypto/khazad.ko
 #lib/modules/KVER-ipfire/kernel/crypto/lrw.ko
 #lib/modules/KVER-ipfire/kernel/crypto/lzo.ko
+#lib/modules/KVER-ipfire/kernel/crypto/md4.ko
 #lib/modules/KVER-ipfire/kernel/crypto/md5.ko
 #lib/modules/KVER-ipfire/kernel/crypto/michael_mic.ko
 #lib/modules/KVER-ipfire/kernel/crypto/pcbc.ko
+#lib/modules/KVER-ipfire/kernel/crypto/pcrypt.ko
 #lib/modules/KVER-ipfire/kernel/crypto/rmd128.ko
 #lib/modules/KVER-ipfire/kernel/crypto/rmd160.ko
 #lib/modules/KVER-ipfire/kernel/crypto/rmd256.ko
@@ -92,8 +87,8 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/crypto/sha512_generic.ko
 #lib/modules/KVER-ipfire/kernel/crypto/tea.ko
 #lib/modules/KVER-ipfire/kernel/crypto/tgr192.ko
-#lib/modules/KVER-ipfire/kernel/crypto/twofish.ko
 #lib/modules/KVER-ipfire/kernel/crypto/twofish_common.ko
+#lib/modules/KVER-ipfire/kernel/crypto/twofish_generic.ko
 #lib/modules/KVER-ipfire/kernel/crypto/vmac.ko
 #lib/modules/KVER-ipfire/kernel/crypto/wp512.ko
 #lib/modules/KVER-ipfire/kernel/crypto/xcbc.ko
@@ -103,26 +98,31 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/drivers
 #lib/modules/KVER-ipfire/kernel/drivers/acpi
 #lib/modules/KVER-ipfire/kernel/drivers/acpi/ac.ko
+#lib/modules/KVER-ipfire/kernel/drivers/acpi/acpi_ipmi.ko
 #lib/modules/KVER-ipfire/kernel/drivers/acpi/acpi_pad.ko
 #lib/modules/KVER-ipfire/kernel/drivers/acpi/battery.ko
 #lib/modules/KVER-ipfire/kernel/drivers/acpi/button.ko
 #lib/modules/KVER-ipfire/kernel/drivers/acpi/container.ko
+#lib/modules/KVER-ipfire/kernel/drivers/acpi/ec_sys.ko
 #lib/modules/KVER-ipfire/kernel/drivers/acpi/fan.ko
 #lib/modules/KVER-ipfire/kernel/drivers/acpi/pci_slot.ko
-#lib/modules/KVER-ipfire/kernel/drivers/acpi/power_meter.ko
 #lib/modules/KVER-ipfire/kernel/drivers/acpi/processor.ko
 #lib/modules/KVER-ipfire/kernel/drivers/acpi/sbs.ko
 #lib/modules/KVER-ipfire/kernel/drivers/acpi/sbshc.ko
 #lib/modules/KVER-ipfire/kernel/drivers/acpi/thermal.ko
 #lib/modules/KVER-ipfire/kernel/drivers/acpi/video.ko
 #lib/modules/KVER-ipfire/kernel/drivers/ata
+#lib/modules/KVER-ipfire/kernel/drivers/ata/acard-ahci.ko
 #lib/modules/KVER-ipfire/kernel/drivers/ata/ahci.ko
+#lib/modules/KVER-ipfire/kernel/drivers/ata/ahci_platform.ko
 #lib/modules/KVER-ipfire/kernel/drivers/ata/ata_generic.ko
 #lib/modules/KVER-ipfire/kernel/drivers/ata/ata_piix.ko
+#lib/modules/KVER-ipfire/kernel/drivers/ata/libahci.ko
 #lib/modules/KVER-ipfire/kernel/drivers/ata/libata.ko
 #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_acpi.ko
 #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_ali.ko
 #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_amd.ko
+#lib/modules/KVER-ipfire/kernel/drivers/ata/pata_arasan_cf.ko
 #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_artop.ko
 #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_atiixp.ko
 #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_atp867x.ko
@@ -155,7 +155,7 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_pcmcia.ko
 #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_pdc2027x.ko
 #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_pdc202xx_old.ko
-#lib/modules/KVER-ipfire/kernel/drivers/ata/pata_qdi.ko
+#lib/modules/KVER-ipfire/kernel/drivers/ata/pata_piccolo.ko
 #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_radisys.ko
 #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_rdc.ko
 #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_rz1000.ko
@@ -167,7 +167,6 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_sl82c105.ko
 #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_triflex.ko
 #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_via.ko
-#lib/modules/KVER-ipfire/kernel/drivers/ata/pata_winbond.ko
 #lib/modules/KVER-ipfire/kernel/drivers/ata/pdc_adma.ko
 #lib/modules/KVER-ipfire/kernel/drivers/ata/sata_inic162x.ko
 #lib/modules/KVER-ipfire/kernel/drivers/ata/sata_mv.ko
@@ -199,6 +198,11 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/drivers/atm/suni.ko
 #lib/modules/KVER-ipfire/kernel/drivers/atm/uPD98402.ko
 #lib/modules/KVER-ipfire/kernel/drivers/atm/zatm.ko
+#lib/modules/KVER-ipfire/kernel/drivers/base
+#lib/modules/KVER-ipfire/kernel/drivers/base/regmap
+#lib/modules/KVER-ipfire/kernel/drivers/base/regmap/regmap-i2c.ko
+#lib/modules/KVER-ipfire/kernel/drivers/bcma
+#lib/modules/KVER-ipfire/kernel/drivers/bcma/bcma.ko
 #lib/modules/KVER-ipfire/kernel/drivers/block
 #lib/modules/KVER-ipfire/kernel/drivers/block/DAC960.ko
 #lib/modules/KVER-ipfire/kernel/drivers/block/aoe
@@ -209,9 +213,11 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/drivers/block/floppy.ko
 #lib/modules/KVER-ipfire/kernel/drivers/block/nbd.ko
 #lib/modules/KVER-ipfire/kernel/drivers/block/osdblk.ko
+#lib/modules/KVER-ipfire/kernel/drivers/block/rbd.ko
 #lib/modules/KVER-ipfire/kernel/drivers/block/sx8.ko
 #lib/modules/KVER-ipfire/kernel/drivers/block/virtio_blk.ko
 #lib/modules/KVER-ipfire/kernel/drivers/bluetooth
+#lib/modules/KVER-ipfire/kernel/drivers/bluetooth/ath3k.ko
 #lib/modules/KVER-ipfire/kernel/drivers/bluetooth/bcm203x.ko
 #lib/modules/KVER-ipfire/kernel/drivers/bluetooth/bfusb.ko
 #lib/modules/KVER-ipfire/kernel/drivers/bluetooth/bluecard_cs.ko
@@ -222,6 +228,7 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/drivers/bluetooth/btsdio.ko
 #lib/modules/KVER-ipfire/kernel/drivers/bluetooth/btuart_cs.ko
 #lib/modules/KVER-ipfire/kernel/drivers/bluetooth/btusb.ko
+#lib/modules/KVER-ipfire/kernel/drivers/bluetooth/btwilink.ko
 #lib/modules/KVER-ipfire/kernel/drivers/bluetooth/dtl1_cs.ko
 #lib/modules/KVER-ipfire/kernel/drivers/bluetooth/hci_uart.ko
 #lib/modules/KVER-ipfire/kernel/drivers/bluetooth/hci_vhci.ko
@@ -236,11 +243,11 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/drivers/char/agp/ati-agp.ko
 #lib/modules/KVER-ipfire/kernel/drivers/char/agp/efficeon-agp.ko
 #lib/modules/KVER-ipfire/kernel/drivers/char/agp/intel-agp.ko
+#lib/modules/KVER-ipfire/kernel/drivers/char/agp/intel-gtt.ko
 #lib/modules/KVER-ipfire/kernel/drivers/char/agp/nvidia-agp.ko
 #lib/modules/KVER-ipfire/kernel/drivers/char/agp/sis-agp.ko
 #lib/modules/KVER-ipfire/kernel/drivers/char/agp/sworks-agp.ko
 #lib/modules/KVER-ipfire/kernel/drivers/char/agp/via-agp.ko
-#lib/modules/KVER-ipfire/kernel/drivers/char/cs5535_gpio.ko
 #lib/modules/KVER-ipfire/kernel/drivers/char/hangcheck-timer.ko
 #lib/modules/KVER-ipfire/kernel/drivers/char/hw_random
 #lib/modules/KVER-ipfire/kernel/drivers/char/hw_random/amd-rng.ko
@@ -260,26 +267,40 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/drivers/char/lp.ko
 #lib/modules/KVER-ipfire/kernel/drivers/char/mwave
 #lib/modules/KVER-ipfire/kernel/drivers/char/mwave/mwave.ko
-#lib/modules/KVER-ipfire/kernel/drivers/char/nozomi.ko
 #lib/modules/KVER-ipfire/kernel/drivers/char/nsc_gpio.ko
 #lib/modules/KVER-ipfire/kernel/drivers/char/nvram.ko
 #lib/modules/KVER-ipfire/kernel/drivers/char/pc8736x_gpio.ko
 #lib/modules/KVER-ipfire/kernel/drivers/char/pcmcia
-#lib/modules/KVER-ipfire/kernel/drivers/char/pcmcia/ipwireless
-#lib/modules/KVER-ipfire/kernel/drivers/char/pcmcia/ipwireless/ipwireless.ko
 #lib/modules/KVER-ipfire/kernel/drivers/char/pcmcia/synclink_cs.ko
 #lib/modules/KVER-ipfire/kernel/drivers/char/ppdev.ko
 #lib/modules/KVER-ipfire/kernel/drivers/char/scx200_gpio.ko
 #lib/modules/KVER-ipfire/kernel/drivers/char/toshiba.ko
 #lib/modules/KVER-ipfire/kernel/drivers/clocksource
+#lib/modules/KVER-ipfire/kernel/drivers/clocksource/cs5535-clockevt.ko
 #lib/modules/KVER-ipfire/kernel/drivers/clocksource/scx200_hrt.ko
 #lib/modules/KVER-ipfire/kernel/drivers/connector
 #lib/modules/KVER-ipfire/kernel/drivers/connector/cn.ko
 #lib/modules/KVER-ipfire/kernel/drivers/cpufreq
+#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/acpi-cpufreq.ko
+#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/cpufreq-nforce2.ko
 #lib/modules/KVER-ipfire/kernel/drivers/cpufreq/cpufreq_conservative.ko
 #lib/modules/KVER-ipfire/kernel/drivers/cpufreq/cpufreq_ondemand.ko
 #lib/modules/KVER-ipfire/kernel/drivers/cpufreq/cpufreq_powersave.ko
 #lib/modules/KVER-ipfire/kernel/drivers/cpufreq/cpufreq_userspace.ko
+#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/e_powersaver.ko
+#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/gx-suspmod.ko
+#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/longhaul.ko
+#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/longrun.ko
+#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/mperf.ko
+#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/p4-clockmod.ko
+#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/pcc-cpufreq.ko
+#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/powernow-k6.ko
+#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/powernow-k7.ko
+#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/powernow-k8.ko
+#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/speedstep-centrino.ko
+#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/speedstep-ich.ko
+#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/speedstep-lib.ko
+#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/speedstep-smi.ko
 #lib/modules/KVER-ipfire/kernel/drivers/crypto
 #lib/modules/KVER-ipfire/kernel/drivers/crypto/geode-aes.ko.off
 #lib/modules/KVER-ipfire/kernel/drivers/crypto/hifn_795x.ko
@@ -289,27 +310,49 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/drivers/dca/dca.ko
 #lib/modules/KVER-ipfire/kernel/drivers/dma
 #lib/modules/KVER-ipfire/kernel/drivers/dma/dmatest.ko
+#lib/modules/KVER-ipfire/kernel/drivers/dma/intel_mid_dma.ko
 #lib/modules/KVER-ipfire/kernel/drivers/dma/ioat
 #lib/modules/KVER-ipfire/kernel/drivers/dma/ioat/ioatdma.ko
+#lib/modules/KVER-ipfire/kernel/drivers/dma/pch_dma.ko
+#lib/modules/KVER-ipfire/kernel/drivers/dma/timb_dma.ko
 #lib/modules/KVER-ipfire/kernel/drivers/firewire
 #lib/modules/KVER-ipfire/kernel/drivers/firewire/firewire-core.ko
 #lib/modules/KVER-ipfire/kernel/drivers/firewire/firewire-net.ko
 #lib/modules/KVER-ipfire/kernel/drivers/firewire/firewire-ohci.ko
 #lib/modules/KVER-ipfire/kernel/drivers/firewire/firewire-sbp2.ko
 #lib/modules/KVER-ipfire/kernel/drivers/firmware
+#lib/modules/KVER-ipfire/kernel/drivers/firmware/dmi-sysfs.ko
 #lib/modules/KVER-ipfire/kernel/drivers/firmware/iscsi_ibft.ko
+#lib/modules/KVER-ipfire/kernel/drivers/firmware/sigma.ko
+#lib/modules/KVER-ipfire/kernel/drivers/gpio
+#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-adp5588.ko
+#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-cs5535.ko
+#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-generic.ko
+#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-it8761e.ko
+#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-janz-ttl.ko
+#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-max7300.ko
+#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-max730x.ko
+#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-max732x.ko
+#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-mcp23s08.ko
+#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-ml-ioh.ko
+#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-pca953x.ko
+#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-pcf857x.ko
+#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-pch.ko
+#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-rdc321x.ko
+#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-sch.ko
+#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-vx855.ko
 #lib/modules/KVER-ipfire/kernel/drivers/gpu
 #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm
 #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/drm.ko
 #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/drm_kms_helper.ko
 #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/i810
 #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/i810/i810.ko
-#lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/i830
-#lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/i830/i830.ko
 #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/i915
 #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/i915/i915.ko
 #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/mga
 #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/mga/mga.ko
+#lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/nouveau
+#lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/nouveau/nouveau.ko
 #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/r128
 #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/r128/r128.ko
 #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/radeon
@@ -324,39 +367,72 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/ttm/ttm.ko
 #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/via
 #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/via/via.ko
+#lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/vmwgfx
+#lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/vmwgfx/vmwgfx.ko
+#lib/modules/KVER-ipfire/kernel/drivers/gpu/stub
+#lib/modules/KVER-ipfire/kernel/drivers/gpu/stub/poulsbo.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hid
 #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-a4tech.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-apple.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-axff.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-belkin.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-cherry.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-chicony.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-cypress.ko
-#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-drff.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-dr.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-elecom.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-ezkey.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-gaff.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-gyration.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-holtekff.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-kensington.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-keytouch.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-kye.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-lcpower.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-logitech-dj.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-logitech.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-magicmouse.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-microsoft.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-monterey.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-multitouch.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-ntrig.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-ortek.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-petalynx.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-picolcd.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-pl.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-primax.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-prodikeys.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-quanta.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-roccat-arvo.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-roccat-common.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-roccat-kone.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-roccat-koneplus.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-roccat-kovaplus.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-roccat-pyra.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-roccat.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-samsung.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-sjoy.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-sony.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-speedlink.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-sunplus.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-tmff.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-topseed.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-twinhan.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-uclogic.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-wacom.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-waltop.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-wiimote.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-zpff.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-zydacron.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hid/usbhid
 #lib/modules/KVER-ipfire/kernel/drivers/hid/usbhid/usbhid.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hv
+#lib/modules/KVER-ipfire/kernel/drivers/hv/hv_utils.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hv/hv_vmbus.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hwmon
 #lib/modules/KVER-ipfire/kernel/drivers/hwmon/abituguru.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hwmon/abituguru3.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hwmon/acpi_power_meter.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hwmon/ad7414.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hwmon/ad7418.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hwmon/adm1021.ko
@@ -365,36 +441,46 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/drivers/hwmon/adm1029.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hwmon/adm1031.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hwmon/adm9240.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hwmon/ads1015.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hwmon/ads7828.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hwmon/adt7411.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hwmon/adt7462.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hwmon/adt7470.ko
-#lib/modules/KVER-ipfire/kernel/drivers/hwmon/adt7473.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hwmon/adt7475.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hwmon/amc6821.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hwmon/applesmc.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hwmon/asb100.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hwmon/asc7621.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hwmon/asus_atk0110.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hwmon/atxp1.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hwmon/coretemp.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hwmon/dme1737.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hwmon/ds1621.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hwmon/ds620.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hwmon/emc1403.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hwmon/emc2103.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hwmon/emc6w201.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hwmon/f71805f.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hwmon/f71882fg.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hwmon/f75375s.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hwmon/fam15h_power.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hwmon/fschmd.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hwmon/g760a.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hwmon/gl518sm.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hwmon/gl520sm.ko
-#lib/modules/KVER-ipfire/kernel/drivers/hwmon/hdaps.ko
-#lib/modules/KVER-ipfire/kernel/drivers/hwmon/hp_accel.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hwmon/gpio-fan.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hwmon/hwmon-vid.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hwmon/hwmon.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hwmon/i5k_amb.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hwmon/ibmaem.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hwmon/ibmpex.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hwmon/it87.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hwmon/jc42.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hwmon/k10temp.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hwmon/k8temp.ko
-#lib/modules/KVER-ipfire/kernel/drivers/hwmon/lis3lv02d.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hwmon/lineage-pem.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hwmon/lm63.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hwmon/lm73.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hwmon/lm75.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hwmon/lm77.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hwmon/lm78.ko
@@ -406,20 +492,48 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/drivers/hwmon/lm92.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hwmon/lm93.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hwmon/lm95241.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hwmon/lm95245.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hwmon/ltc4151.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hwmon/ltc4215.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hwmon/ltc4245.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hwmon/ltc4261.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hwmon/max16065.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hwmon/max1619.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hwmon/max1668.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hwmon/max6639.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hwmon/max6642.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hwmon/max6650.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hwmon/ntc_thermistor.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hwmon/pc87360.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hwmon/pc87427.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hwmon/pcf8591.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hwmon/pmbus
+#lib/modules/KVER-ipfire/kernel/drivers/hwmon/pmbus/adm1275.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hwmon/pmbus/lm25066.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hwmon/pmbus/ltc2978.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hwmon/pmbus/max16064.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hwmon/pmbus/max34440.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hwmon/pmbus/max8688.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hwmon/pmbus/pmbus.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hwmon/pmbus/pmbus_core.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hwmon/pmbus/ucd9000.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hwmon/pmbus/ucd9200.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hwmon/pmbus/zl6100.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hwmon/sch5627.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hwmon/sch5636.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hwmon/sch56xx-common.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hwmon/sht15.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hwmon/sht21.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hwmon/sis5595.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hwmon/smm665.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hwmon/smsc47b397.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hwmon/smsc47m1.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hwmon/smsc47m192.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hwmon/thmc50.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hwmon/tmp102.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hwmon/tmp401.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hwmon/tmp421.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hwmon/via-cputemp.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hwmon/via686a.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hwmon/vt1211.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hwmon/vt8231.ko
@@ -429,10 +543,9 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/drivers/hwmon/w83791d.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hwmon/w83792d.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hwmon/w83793.ko
+#lib/modules/KVER-ipfire/kernel/drivers/hwmon/w83795.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hwmon/w83l785ts.ko
 #lib/modules/KVER-ipfire/kernel/drivers/hwmon/w83l786ng.ko
-#lib/modules/KVER-ipfire/kernel/drivers/hwmon/wm831x-hwmon.ko
-#lib/modules/KVER-ipfire/kernel/drivers/hwmon/wm8350-hwmon.ko
 #lib/modules/KVER-ipfire/kernel/drivers/i2c
 #lib/modules/KVER-ipfire/kernel/drivers/i2c/algos
 #lib/modules/KVER-ipfire/kernel/drivers/i2c/algos/i2c-algo-bit.ko
@@ -444,7 +557,13 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-amd756-s4882.ko
 #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-amd756.ko
 #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-amd8111.ko
+#lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-designware-core.ko
+#lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-designware-pci.ko
+#lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-diolan-u2c.ko
+#lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-eg20t.ko
+#lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-gpio.ko
 #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-i801.ko
+#lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-intel-mid.ko
 #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-isch.ko
 #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-nforce2-s4985.ko
 #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-nforce2.ko
@@ -460,16 +579,20 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-sis630.ko
 #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-sis96x.ko
 #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-stub.ko
+#lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-taos-evm.ko
 #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-tiny-usb.ko
 #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-via.ko
 #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-viapro.ko
-#lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-voodoo3.ko
+#lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-xiic.ko
 #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/scx200_acb.ko
-#lib/modules/KVER-ipfire/kernel/drivers/i2c/chips
-#lib/modules/KVER-ipfire/kernel/drivers/i2c/chips/ds1682.ko
-#lib/modules/KVER-ipfire/kernel/drivers/i2c/chips/tsl2550.ko
 #lib/modules/KVER-ipfire/kernel/drivers/i2c/i2c-core.ko
 #lib/modules/KVER-ipfire/kernel/drivers/i2c/i2c-dev.ko
+#lib/modules/KVER-ipfire/kernel/drivers/i2c/i2c-mux.ko
+#lib/modules/KVER-ipfire/kernel/drivers/i2c/i2c-smbus.ko
+#lib/modules/KVER-ipfire/kernel/drivers/i2c/muxes
+#lib/modules/KVER-ipfire/kernel/drivers/i2c/muxes/gpio-i2cmux.ko
+#lib/modules/KVER-ipfire/kernel/drivers/i2c/muxes/pca9541.ko
+#lib/modules/KVER-ipfire/kernel/drivers/i2c/muxes/pca954x.ko
 #lib/modules/KVER-ipfire/kernel/drivers/ieee802154
 #lib/modules/KVER-ipfire/kernel/drivers/ieee802154/fakehard.ko
 #lib/modules/KVER-ipfire/kernel/drivers/input
@@ -477,33 +600,47 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/drivers/input/input-polldev.ko
 #lib/modules/KVER-ipfire/kernel/drivers/input/keyboard
 #lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/adp5588-keys.ko
+#lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/adp5589-keys.ko
+#lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/gpio_keys.ko
+#lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/gpio_keys_polled.ko
 #lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/lkkbd.ko
 #lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/lm8323.ko
+#lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/matrix_keypad.ko
 #lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/max7359_keypad.ko
+#lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/mcs_touchkey.ko
+#lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/mpr121_touchkey.ko
 #lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/newtonkbd.ko
 #lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/opencores-kbd.ko
+#lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/qt1070.ko
+#lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/qt2160.ko
 #lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/stowaway.ko
 #lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/sunkbd.ko
+#lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/tca6416-keypad.ko
 #lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/xtkbd.ko
 #lib/modules/KVER-ipfire/kernel/drivers/input/misc
+#lib/modules/KVER-ipfire/kernel/drivers/input/misc/ad714x-i2c.ko
+#lib/modules/KVER-ipfire/kernel/drivers/input/misc/ad714x.ko
 #lib/modules/KVER-ipfire/kernel/drivers/input/misc/apanel.ko
-#lib/modules/KVER-ipfire/kernel/drivers/input/misc/ati_remote.ko
 #lib/modules/KVER-ipfire/kernel/drivers/input/misc/ati_remote2.ko
+#lib/modules/KVER-ipfire/kernel/drivers/input/misc/bma150.ko
 #lib/modules/KVER-ipfire/kernel/drivers/input/misc/cm109.ko
 #lib/modules/KVER-ipfire/kernel/drivers/input/misc/keyspan_remote.ko
 #lib/modules/KVER-ipfire/kernel/drivers/input/misc/pcf50633-input.ko
+#lib/modules/KVER-ipfire/kernel/drivers/input/misc/pcf8574_keypad.ko
 #lib/modules/KVER-ipfire/kernel/drivers/input/misc/pcspkr.ko
 #lib/modules/KVER-ipfire/kernel/drivers/input/misc/powermate.ko
-#lib/modules/KVER-ipfire/kernel/drivers/input/misc/winbond-cir.ko
-#lib/modules/KVER-ipfire/kernel/drivers/input/misc/wm831x-on.ko
+#lib/modules/KVER-ipfire/kernel/drivers/input/misc/rotary_encoder.ko
 #lib/modules/KVER-ipfire/kernel/drivers/input/misc/yealink.ko
+#lib/modules/KVER-ipfire/kernel/drivers/input/serio
+#lib/modules/KVER-ipfire/kernel/drivers/input/serio/altera_ps2.ko
+#lib/modules/KVER-ipfire/kernel/drivers/input/serio/ps2mult.ko
+#lib/modules/KVER-ipfire/kernel/drivers/input/sparse-keymap.ko
 #lib/modules/KVER-ipfire/kernel/drivers/isdn
 #lib/modules/KVER-ipfire/kernel/drivers/isdn/act2000
 #lib/modules/KVER-ipfire/kernel/drivers/isdn/act2000/act2000.ko
 #lib/modules/KVER-ipfire/kernel/drivers/isdn/capi
 #lib/modules/KVER-ipfire/kernel/drivers/isdn/capi/capi.ko
 #lib/modules/KVER-ipfire/kernel/drivers/isdn/capi/capidrv.ko
-#lib/modules/KVER-ipfire/kernel/drivers/isdn/capi/capifs.ko
 #lib/modules/KVER-ipfire/kernel/drivers/isdn/capi/kernelcapi.ko
 #lib/modules/KVER-ipfire/kernel/drivers/isdn/divert
 #lib/modules/KVER-ipfire/kernel/drivers/isdn/divert/dss1_divert.ko
@@ -529,6 +666,17 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/eicon/divacapi.ko
 #lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/eicon/divadidd.ko
 #lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/eicon/divas.ko
+#lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/mISDN
+#lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/mISDN/avmfritz.ko
+#lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/mISDN/hfcmulti.ko
+#lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/mISDN/hfcpci.ko
+#lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/mISDN/hfcsusb.ko
+#lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/mISDN/mISDNinfineon.ko
+#lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/mISDN/mISDNipac.ko
+#lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/mISDN/mISDNisar.ko
+#lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/mISDN/netjet.ko
+#lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/mISDN/speedfax.ko
+#lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/mISDN/w6692.ko
 #lib/modules/KVER-ipfire/kernel/drivers/isdn/hisax
 #lib/modules/KVER-ipfire/kernel/drivers/isdn/hisax/avma1_cs.ko
 #lib/modules/KVER-ipfire/kernel/drivers/isdn/hisax/elsa_cs.ko
@@ -548,56 +696,73 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/drivers/isdn/i4l/isdnhdlc.ko
 #lib/modules/KVER-ipfire/kernel/drivers/isdn/icn
 #lib/modules/KVER-ipfire/kernel/drivers/isdn/icn/icn.ko
+#lib/modules/KVER-ipfire/kernel/drivers/isdn/mISDN
+#lib/modules/KVER-ipfire/kernel/drivers/isdn/mISDN/l1oip.ko
+#lib/modules/KVER-ipfire/kernel/drivers/isdn/mISDN/mISDN_core.ko
+#lib/modules/KVER-ipfire/kernel/drivers/isdn/mISDN/mISDN_dsp.ko
 #lib/modules/KVER-ipfire/kernel/drivers/isdn/pcbit
 #lib/modules/KVER-ipfire/kernel/drivers/isdn/pcbit/pcbit.ko
 #lib/modules/KVER-ipfire/kernel/drivers/isdn/sc
 #lib/modules/KVER-ipfire/kernel/drivers/isdn/sc/sc.ko
 #lib/modules/KVER-ipfire/kernel/drivers/leds
-#lib/modules/KVER-ipfire/kernel/drivers/leds/led-class.ko
-#lib/modules/KVER-ipfire/kernel/drivers/leds/leds-alix2.ko
+#lib/modules/KVER-ipfire/kernel/drivers/leds/dell-led.ko
 #lib/modules/KVER-ipfire/kernel/drivers/leds/leds-bd2802.ko
 #lib/modules/KVER-ipfire/kernel/drivers/leds/leds-clevo-mail.ko
+#lib/modules/KVER-ipfire/kernel/drivers/leds/leds-gpio.ko
+#lib/modules/KVER-ipfire/kernel/drivers/leds/leds-lm3530.ko
 #lib/modules/KVER-ipfire/kernel/drivers/leds/leds-lp3944.ko
+#lib/modules/KVER-ipfire/kernel/drivers/leds/leds-lp5521.ko
+#lib/modules/KVER-ipfire/kernel/drivers/leds/leds-lp5523.ko
+#lib/modules/KVER-ipfire/kernel/drivers/leds/leds-lt3593.ko
 #lib/modules/KVER-ipfire/kernel/drivers/leds/leds-net48xx.ko
+#lib/modules/KVER-ipfire/kernel/drivers/leds/leds-net5501.ko
 #lib/modules/KVER-ipfire/kernel/drivers/leds/leds-pca9532.ko
 #lib/modules/KVER-ipfire/kernel/drivers/leds/leds-pca955x.ko
-#lib/modules/KVER-ipfire/kernel/drivers/leds/leds-wm831x-status.ko
-#lib/modules/KVER-ipfire/kernel/drivers/leds/leds-wm8350.ko
+#lib/modules/KVER-ipfire/kernel/drivers/leds/leds-regulator.ko
+#lib/modules/KVER-ipfire/kernel/drivers/leds/leds-ss4200.ko
 #lib/modules/KVER-ipfire/kernel/drivers/leds/leds-wrap.ko
 #lib/modules/KVER-ipfire/kernel/drivers/leds/ledtrig-backlight.ko
 #lib/modules/KVER-ipfire/kernel/drivers/leds/ledtrig-default-on.ko
+#lib/modules/KVER-ipfire/kernel/drivers/leds/ledtrig-gpio.ko
 #lib/modules/KVER-ipfire/kernel/drivers/leds/ledtrig-heartbeat.ko
 #lib/modules/KVER-ipfire/kernel/drivers/leds/ledtrig-netdev.ko
 #lib/modules/KVER-ipfire/kernel/drivers/leds/ledtrig-timer.ko
 #lib/modules/KVER-ipfire/kernel/drivers/lguest
 #lib/modules/KVER-ipfire/kernel/drivers/lguest/lg.ko
 #lib/modules/KVER-ipfire/kernel/drivers/md
+#lib/modules/KVER-ipfire/kernel/drivers/md/dm-bufio.ko
 #lib/modules/KVER-ipfire/kernel/drivers/md/dm-crypt.ko
 #lib/modules/KVER-ipfire/kernel/drivers/md/dm-delay.ko
+#lib/modules/KVER-ipfire/kernel/drivers/md/dm-flakey.ko
 #lib/modules/KVER-ipfire/kernel/drivers/md/dm-log-userspace.ko
 #lib/modules/KVER-ipfire/kernel/drivers/md/dm-log.ko
 #lib/modules/KVER-ipfire/kernel/drivers/md/dm-mirror.ko
 #lib/modules/KVER-ipfire/kernel/drivers/md/dm-mod.ko
 #lib/modules/KVER-ipfire/kernel/drivers/md/dm-multipath.ko
 #lib/modules/KVER-ipfire/kernel/drivers/md/dm-queue-length.ko
+#lib/modules/KVER-ipfire/kernel/drivers/md/dm-raid.ko
 #lib/modules/KVER-ipfire/kernel/drivers/md/dm-region-hash.ko
 #lib/modules/KVER-ipfire/kernel/drivers/md/dm-round-robin.ko
 #lib/modules/KVER-ipfire/kernel/drivers/md/dm-service-time.ko
 #lib/modules/KVER-ipfire/kernel/drivers/md/dm-snapshot.ko
+#lib/modules/KVER-ipfire/kernel/drivers/md/dm-thin-pool.ko
 #lib/modules/KVER-ipfire/kernel/drivers/md/dm-zero.ko
 #lib/modules/KVER-ipfire/kernel/drivers/md/linear.ko
 #lib/modules/KVER-ipfire/kernel/drivers/md/md-mod.ko
 #lib/modules/KVER-ipfire/kernel/drivers/md/multipath.ko
+#lib/modules/KVER-ipfire/kernel/drivers/md/persistent-data
+#lib/modules/KVER-ipfire/kernel/drivers/md/persistent-data/dm-persistent-data.ko
 #lib/modules/KVER-ipfire/kernel/drivers/md/raid0.ko
 #lib/modules/KVER-ipfire/kernel/drivers/md/raid1.ko
 #lib/modules/KVER-ipfire/kernel/drivers/md/raid10.ko
 #lib/modules/KVER-ipfire/kernel/drivers/md/raid456.ko
-#lib/modules/KVER-ipfire/kernel/drivers/md/raid6_pq.ko
 #lib/modules/KVER-ipfire/kernel/drivers/media
 #lib/modules/KVER-ipfire/kernel/drivers/media/common
 #lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners
 #lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners/mc44s803.ko
 #lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners/mt20xx.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners/tda18271.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners/tda827x.ko
 #lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners/tda8290.ko
 #lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners/tda9887.ko
 #lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners/tea5761.ko
@@ -605,12 +770,110 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners/tuner-simple.ko
 #lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners/tuner-types.ko
 #lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners/tuner-xc2028.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners/xc4000.ko
 #lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners/xc5000.ko
 #lib/modules/KVER-ipfire/kernel/drivers/media/dvb
 #lib/modules/KVER-ipfire/kernel/drivers/media/dvb/dvb-core
 #lib/modules/KVER-ipfire/kernel/drivers/media/dvb/dvb-core/dvb-core.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/media.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-adstech-dvb-t-pci.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-alink-dtu-m.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-anysee.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-apac-viewcomp.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-asus-pc39.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-ati-tv-wonder-hd-600.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-ati-x10.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-avermedia-a16d.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-avermedia-cardbus.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-avermedia-dvbt.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-avermedia-m135a.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-avermedia-m733a-rm-k6.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-avermedia-rm-ks.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-avermedia.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-avertv-303.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-azurewave-ad-tu700.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-behold-columbus.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-behold.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-budget-ci-old.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-cinergy-1400.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-cinergy.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-dib0700-nec.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-dib0700-rc5.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-digitalnow-tinytwin.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-digittrade.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-dm1105-nec.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-dntv-live-dvb-t.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-dntv-live-dvbt-pro.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-em-terratec.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-encore-enltv-fm53.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-encore-enltv.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-encore-enltv2.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-evga-indtube.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-eztv.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-flydvb.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-flyvideo.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-fusionhdtv-mce.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-gadmei-rm008z.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-genius-tvgo-a11mce.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-gotview7135.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-hauppauge.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-imon-mce.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-imon-pad.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-iodata-bctv7e.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-kaiomy.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-kworld-315u.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-kworld-plus-tv-analog.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-leadtek-y04g0051.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-lirc.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-lme2510.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-manli.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-medion-x10.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-msi-digivox-ii.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-msi-digivox-iii.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-msi-tvanywhere-plus.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-msi-tvanywhere.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-nebula.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-nec-terratec-cinergy-xs.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-norwood.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-npgtech.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-pctv-sedna.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-pinnacle-color.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-pinnacle-grey.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-pinnacle-pctv-hd.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-pixelview-002t.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-pixelview-mk12.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-pixelview-new.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-pixelview.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-powercolor-real-angel.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-proteus-2309.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-purpletv.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-pv951.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-rc6-mce.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-real-audio-220-32-keys.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-snapstream-firefly.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-streamzap.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-tbs-nec.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-technisat-usb2.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-terratec-cinergy-xs.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-terratec-slim-2.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-terratec-slim.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-tevii-nec.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-tivo.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-total-media-in-hand.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-trekstor.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-tt-1500.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-twinhan1027.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-videomate-m1f.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-videomate-s350.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-videomate-tv-pvr.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-winfast-usbii-deluxe.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-winfast.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/lirc_dev.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/rc/rc-core.ko
 #lib/modules/KVER-ipfire/kernel/drivers/media/video
-#lib/modules/KVER-ipfire/kernel/drivers/media/video/v4l1-compat.ko
+#lib/modules/KVER-ipfire/kernel/drivers/media/video/ir-kbd-i2c.ko
 #lib/modules/KVER-ipfire/kernel/drivers/media/video/v4l2-common.ko
 #lib/modules/KVER-ipfire/kernel/drivers/media/video/v4l2-int-device.ko
 #lib/modules/KVER-ipfire/kernel/drivers/media/video/videodev.ko
@@ -620,6 +883,7 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/drivers/memstick/core/mspro_block.ko
 #lib/modules/KVER-ipfire/kernel/drivers/memstick/host
 #lib/modules/KVER-ipfire/kernel/drivers/memstick/host/jmb38x_ms.ko
+#lib/modules/KVER-ipfire/kernel/drivers/memstick/host/r592.ko
 #lib/modules/KVER-ipfire/kernel/drivers/memstick/host/tifm_ms.ko
 #lib/modules/KVER-ipfire/kernel/drivers/message
 #lib/modules/KVER-ipfire/kernel/drivers/message/fusion
@@ -630,35 +894,61 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/drivers/message/fusion/mptscsih.ko
 #lib/modules/KVER-ipfire/kernel/drivers/message/fusion/mptspi.ko
 #lib/modules/KVER-ipfire/kernel/drivers/mfd
-#lib/modules/KVER-ipfire/kernel/drivers/mfd/ab3100-core.ko
-#lib/modules/KVER-ipfire/kernel/drivers/mfd/ab3100-otp.ko
+#lib/modules/KVER-ipfire/kernel/drivers/mfd/cs5535-mfd.ko
 #lib/modules/KVER-ipfire/kernel/drivers/mfd/htc-pasic3.ko
+#lib/modules/KVER-ipfire/kernel/drivers/mfd/janz-cmodio.ko
+#lib/modules/KVER-ipfire/kernel/drivers/mfd/lpc_sch.ko
 #lib/modules/KVER-ipfire/kernel/drivers/mfd/mfd-core.ko
 #lib/modules/KVER-ipfire/kernel/drivers/mfd/pcf50633-adc.ko
-#lib/modules/KVER-ipfire/kernel/drivers/mfd/pcf50633-core.ko
 #lib/modules/KVER-ipfire/kernel/drivers/mfd/pcf50633-gpio.ko
+#lib/modules/KVER-ipfire/kernel/drivers/mfd/pcf50633.ko
+#lib/modules/KVER-ipfire/kernel/drivers/mfd/rdc321x-southbridge.ko
 #lib/modules/KVER-ipfire/kernel/drivers/mfd/sm501.ko
-#lib/modules/KVER-ipfire/kernel/drivers/mfd/wm831x.ko
-#lib/modules/KVER-ipfire/kernel/drivers/mfd/wm8350-i2c.ko
-#lib/modules/KVER-ipfire/kernel/drivers/mfd/wm8350.ko
+#lib/modules/KVER-ipfire/kernel/drivers/mfd/timberdale.ko
+#lib/modules/KVER-ipfire/kernel/drivers/mfd/tps6105x.ko
+#lib/modules/KVER-ipfire/kernel/drivers/mfd/tps65010.ko
+#lib/modules/KVER-ipfire/kernel/drivers/mfd/tps6507x.ko
+#lib/modules/KVER-ipfire/kernel/drivers/mfd/ucb1400_core.ko
+#lib/modules/KVER-ipfire/kernel/drivers/mfd/vx855.ko
+#lib/modules/KVER-ipfire/kernel/drivers/mfd/wl1273-core.ko
 #lib/modules/KVER-ipfire/kernel/drivers/mfd/wm8400-core.ko
 #lib/modules/KVER-ipfire/kernel/drivers/misc
+#lib/modules/KVER-ipfire/kernel/drivers/misc/apds9802als.ko
+#lib/modules/KVER-ipfire/kernel/drivers/misc/apds990x.ko
+#lib/modules/KVER-ipfire/kernel/drivers/misc/bh1770glc.ko
+#lib/modules/KVER-ipfire/kernel/drivers/misc/bh1780gli.ko
+#lib/modules/KVER-ipfire/kernel/drivers/misc/bmp085.ko
 #lib/modules/KVER-ipfire/kernel/drivers/misc/c2port
 #lib/modules/KVER-ipfire/kernel/drivers/misc/c2port/c2port-duramar2150.ko
 #lib/modules/KVER-ipfire/kernel/drivers/misc/c2port/core.ko
 #lib/modules/KVER-ipfire/kernel/drivers/misc/cb710
 #lib/modules/KVER-ipfire/kernel/drivers/misc/cb710/cb710.ko
+#lib/modules/KVER-ipfire/kernel/drivers/misc/cs5535-mfgpt.ko
+#lib/modules/KVER-ipfire/kernel/drivers/misc/ds1682.ko
 #lib/modules/KVER-ipfire/kernel/drivers/misc/eeprom
 #lib/modules/KVER-ipfire/kernel/drivers/misc/eeprom/at24.ko
 #lib/modules/KVER-ipfire/kernel/drivers/misc/eeprom/eeprom.ko
 #lib/modules/KVER-ipfire/kernel/drivers/misc/eeprom/eeprom_93cx6.ko
 #lib/modules/KVER-ipfire/kernel/drivers/misc/eeprom/max6875.ko
 #lib/modules/KVER-ipfire/kernel/drivers/misc/enclosure.ko
+#lib/modules/KVER-ipfire/kernel/drivers/misc/fsa9480.ko
+#lib/modules/KVER-ipfire/kernel/drivers/misc/hmc6352.ko
 #lib/modules/KVER-ipfire/kernel/drivers/misc/hpilo.ko
 #lib/modules/KVER-ipfire/kernel/drivers/misc/ics932s401.ko
 #lib/modules/KVER-ipfire/kernel/drivers/misc/isl29003.ko
+#lib/modules/KVER-ipfire/kernel/drivers/misc/isl29020.ko
+#lib/modules/KVER-ipfire/kernel/drivers/misc/iwmc3200top
+#lib/modules/KVER-ipfire/kernel/drivers/misc/iwmc3200top/iwmc3200top.ko
+#lib/modules/KVER-ipfire/kernel/drivers/misc/lis3lv02d
+#lib/modules/KVER-ipfire/kernel/drivers/misc/lis3lv02d/lis3lv02d.ko
+#lib/modules/KVER-ipfire/kernel/drivers/misc/lis3lv02d/lis3lv02d_i2c.ko
+#lib/modules/KVER-ipfire/kernel/drivers/misc/pch_phub.ko
+#lib/modules/KVER-ipfire/kernel/drivers/misc/ti-st
+#lib/modules/KVER-ipfire/kernel/drivers/misc/ti-st/st_drv.ko
 #lib/modules/KVER-ipfire/kernel/drivers/misc/tifm_7xx1.ko
 #lib/modules/KVER-ipfire/kernel/drivers/misc/tifm_core.ko
+#lib/modules/KVER-ipfire/kernel/drivers/misc/tsl2550.ko
+#lib/modules/KVER-ipfire/kernel/drivers/misc/vmw_balloon.ko
 #lib/modules/KVER-ipfire/kernel/drivers/mmc
 #lib/modules/KVER-ipfire/kernel/drivers/mmc/card
 #lib/modules/KVER-ipfire/kernel/drivers/mmc/card/mmc_block.ko
@@ -668,13 +958,14 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/drivers/mmc/core/mmc_core.ko
 #lib/modules/KVER-ipfire/kernel/drivers/mmc/host
 #lib/modules/KVER-ipfire/kernel/drivers/mmc/host/cb710-mmc.ko
-#lib/modules/KVER-ipfire/kernel/drivers/mmc/host/ricoh_mmc.ko
 #lib/modules/KVER-ipfire/kernel/drivers/mmc/host/sdhci-pci.ko
 #lib/modules/KVER-ipfire/kernel/drivers/mmc/host/sdhci-pltfm.ko
 #lib/modules/KVER-ipfire/kernel/drivers/mmc/host/sdhci.ko
 #lib/modules/KVER-ipfire/kernel/drivers/mmc/host/sdricoh_cs.ko
 #lib/modules/KVER-ipfire/kernel/drivers/mmc/host/tifm_sd.ko
+#lib/modules/KVER-ipfire/kernel/drivers/mmc/host/ushc.ko
 #lib/modules/KVER-ipfire/kernel/drivers/mmc/host/via-sdmmc.ko
+#lib/modules/KVER-ipfire/kernel/drivers/mmc/host/vub300.ko
 #lib/modules/KVER-ipfire/kernel/drivers/mmc/host/wbsd.ko
 #lib/modules/KVER-ipfire/kernel/drivers/mtd
 #lib/modules/KVER-ipfire/kernel/drivers/mtd/ar7part.ko
@@ -689,8 +980,11 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/drivers/mtd/mtd_blkdevs.ko
 #lib/modules/KVER-ipfire/kernel/drivers/mtd/mtdblock.ko
 #lib/modules/KVER-ipfire/kernel/drivers/mtd/mtdchar.ko
-#lib/modules/KVER-ipfire/kernel/drivers/mtd/mtdconcat.ko
+#lib/modules/KVER-ipfire/kernel/drivers/mtd/nand
+#lib/modules/KVER-ipfire/kernel/drivers/mtd/nand/nand_ecc.ko
+#lib/modules/KVER-ipfire/kernel/drivers/mtd/sm_ftl.ko
 #lib/modules/KVER-ipfire/kernel/drivers/mtd/tests
+#lib/modules/KVER-ipfire/kernel/drivers/mtd/tests/mtd_nandecctest.ko
 #lib/modules/KVER-ipfire/kernel/drivers/mtd/tests/mtd_oobtest.ko
 #lib/modules/KVER-ipfire/kernel/drivers/mtd/tests/mtd_pagetest.ko
 #lib/modules/KVER-ipfire/kernel/drivers/mtd/tests/mtd_readtest.ko
@@ -701,83 +995,217 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/drivers/mtd/ubi
 #lib/modules/KVER-ipfire/kernel/drivers/mtd/ubi/ubi.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net
-#lib/modules/KVER-ipfire/kernel/drivers/net/3c501.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/3c503.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/3c505.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/3c507.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/3c509.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/3c515.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/3c523.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/3c527.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/3c59x.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/8139cp.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/8139too.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/82596.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/8390.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/8390p.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/ac3200.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/acenic.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/amd8111e.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/at1700.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/atl1c
-#lib/modules/KVER-ipfire/kernel/drivers/net/atl1c/atl1c.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/atl1e
-#lib/modules/KVER-ipfire/kernel/drivers/net/atl1e/atl1e.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/atlx
-#lib/modules/KVER-ipfire/kernel/drivers/net/atlx/atl1.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/atlx/atl2.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/atp.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/b44.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/benet
-#lib/modules/KVER-ipfire/kernel/drivers/net/benet/be2net.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/bnx2.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/bnx2x.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/bonding
 #lib/modules/KVER-ipfire/kernel/drivers/net/bonding/bonding.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/bsd_comp.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/cassini.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/chelsio
-#lib/modules/KVER-ipfire/kernel/drivers/net/chelsio/cxgb.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/cnic.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/cs89x0.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/cxgb3
-#lib/modules/KVER-ipfire/kernel/drivers/net/cxgb3/cxgb3.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/de600.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/de620.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/depca.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/dl2k.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/dnet.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/dummy.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/e100.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/e1000
-#lib/modules/KVER-ipfire/kernel/drivers/net/e1000/e1000.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/e1000e
-#lib/modules/KVER-ipfire/kernel/drivers/net/e1000e/e1000e.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/e2100.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/eepro.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/eexpress.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/enic
-#lib/modules/KVER-ipfire/kernel/drivers/net/enic/enic.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/epic100.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/eql.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/es3210.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/eth16i.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/ethoc.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/ewrk3.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/fealnx.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/forcedeth.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/hamachi.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/hp-plus.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/hp.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/hp100.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/ibmlana.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/3com
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/3com/3c501.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/3com/3c509.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/3com/3c515.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/3com/3c574_cs.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/3com/3c589_cs.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/3com/3c59x.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/3com/typhoon.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/3c503.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/8390.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/8390p.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/ac3200.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/axnet_cs.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/e2100.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/es3210.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/hp-plus.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/hp.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/lne390.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/ne.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/ne2.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/ne2k-pci.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/ne3210.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/pcnet_cs.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/smc-mca.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/smc-ultra.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/smc-ultra32.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/wd.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/adaptec
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/adaptec/starfire.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/alteon
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/alteon/acenic.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/amd
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/amd/amd8111e.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/amd/depca.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/amd/lance.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/amd/ni65.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/amd/nmclan_cs.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/amd/pcnet32.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/atheros
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/atheros/atl1c
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/atheros/atl1c/atl1c.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/atheros/atl1e
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/atheros/atl1e/atl1e.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/atheros/atlx
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/atheros/atlx/atl1.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/atheros/atlx/atl2.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/broadcom
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/broadcom/b44.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/broadcom/bnx2.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/broadcom/bnx2x
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/broadcom/bnx2x/bnx2x.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/broadcom/cnic.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/broadcom/tg3.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/brocade
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/brocade/bna
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/brocade/bna/bna.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/chelsio
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/chelsio/cxgb
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/chelsio/cxgb/cxgb.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/chelsio/cxgb3
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/chelsio/cxgb3/cxgb3.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/chelsio/cxgb4
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/chelsio/cxgb4/cxgb4.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/chelsio/cxgb4vf
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/cirrus
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/cirrus/cs89x0.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/cisco
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/cisco/enic
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/cisco/enic/enic.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dec
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dec/ewrk3.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dec/tulip
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dec/tulip/de2104x.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dec/tulip/de4x5.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dec/tulip/dmfe.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dec/tulip/tulip.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dec/tulip/uli526x.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dec/tulip/winbond-840.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dec/tulip/xircom_cb.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dlink
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dlink/de600.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dlink/de620.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dlink/dl2k.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dlink/sundance.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dnet.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/emulex
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/emulex/benet
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/emulex/benet/be2net.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/ethoc.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/fealnx.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/fujitsu
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/fujitsu/at1700.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/fujitsu/eth16i.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/fujitsu/fmvj18x_cs.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/hp
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/hp/hp100.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/i825xx
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/i825xx/3c505.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/i825xx/3c507.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/i825xx/3c523.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/i825xx/3c527.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/i825xx/82596.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/i825xx/eepro.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/i825xx/eexpress.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/i825xx/lp486e.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/i825xx/ni52.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/i825xx/znet.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/icplus
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/icplus/ipg.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/intel
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/intel/e100.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/intel/e1000
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/intel/e1000/e1000.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/intel/e1000e
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/intel/e1000e/e1000e.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/intel/igb
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/intel/igb/igb.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/intel/igbvf
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/intel/igbvf/igbvf.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/intel/ixgb
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/intel/ixgb/ixgb.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/intel/ixgbe
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/intel/ixgbe/ixgbe.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/intel/ixgbevf
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/intel/ixgbevf/ixgbevf.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/jme.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/marvell
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/marvell/skge.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/marvell/sky2.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/mellanox
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/mellanox/mlx4
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/mellanox/mlx4/mlx4_core.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/mellanox/mlx4/mlx4_en.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/micrel
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/micrel/ks8842.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/micrel/ks8851_mll.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/micrel/ksz884x.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/myricom
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/myricom/myri10ge
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/myricom/myri10ge/myri10ge.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/natsemi
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/natsemi/ibmlana.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/natsemi/natsemi.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/natsemi/ns83820.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/neterion
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/neterion/s2io.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/neterion/vxge
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/neterion/vxge/vxge.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/nvidia
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/nvidia/forcedeth.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/oki-semi
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/oki-semi/pch_gbe
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/packetengines
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/packetengines/hamachi.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/packetengines/yellowfin.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/qlogic
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/qlogic/netxen
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/qlogic/netxen/netxen_nic.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/qlogic/qla3xxx.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/qlogic/qlcnic
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/qlogic/qlcnic/qlcnic.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/qlogic/qlge
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/qlogic/qlge/qlge.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/rdc
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/rdc/r6040.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/realtek
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/realtek/8139cp.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/realtek/8139too.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/realtek/atp.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/realtek/r8169.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/seeq
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/seeq/seeq8005.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/sfc
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/sfc/sfc.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/silan
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/silan/sc92031.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/sis
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/sis/sis190.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/sis/sis900.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/smsc
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/smsc/epic100.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/smsc/smc9194.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/smsc/smc91c92_cs.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/smsc/smsc9420.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/stmicro
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/stmicro/stmmac
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/stmicro/stmmac/stmmac.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/sun
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/sun/cassini.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/sun/niu.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/sun/sungem.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/sun/sunhme.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/tehuti
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/tehuti/tehuti.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/ti
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/ti/tlan.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/via
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/via/via-rhine.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/via/via-velocity.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/xircom
+#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/xircom/xirc2ps_cs.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/ifb.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/igb
-#lib/modules/KVER-ipfire/kernel/drivers/net/igb/igb.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/igbvf
-#lib/modules/KVER-ipfire/kernel/drivers/net/igbvf/igbvf.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/imq.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/ipg.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/irda
 #lib/modules/KVER-ipfire/kernel/drivers/net/irda/ali-ircc.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/irda/donauboe.ko
@@ -794,137 +1222,74 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/drivers/net/irda/via-ircc.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/irda/vlsi_ir.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/irda/w83977af_ir.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/ixgb
-#lib/modules/KVER-ipfire/kernel/drivers/net/ixgb/ixgb.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/ixgbe
-#lib/modules/KVER-ipfire/kernel/drivers/net/ixgbe/ixgbe.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/jme.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/ks8842.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/ks8851_mll.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/lance.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/lne390.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/lp486e.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/macvlan.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/macvtap.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/mdio.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/mii.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/mlx4
-#lib/modules/KVER-ipfire/kernel/drivers/net/mlx4/mlx4_core.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/mlx4/mlx4_en.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/myri10ge
-#lib/modules/KVER-ipfire/kernel/drivers/net/myri10ge/myri10ge.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/natsemi.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/ne.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/ne2.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/ne2k-pci.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/ne3210.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/netxen
-#lib/modules/KVER-ipfire/kernel/drivers/net/netxen/netxen_nic.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/ni52.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/ni65.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/niu.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/ns83820.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/pcmcia
-#lib/modules/KVER-ipfire/kernel/drivers/net/pcmcia/3c574_cs.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/pcmcia/3c589_cs.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/pcmcia/axnet_cs.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/pcmcia/fmvj18x_cs.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/pcmcia/nmclan_cs.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/pcmcia/pcnet_cs.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/pcmcia/smc91c92_cs.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/pcmcia/xirc2ps_cs.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/pcnet32.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/phy
 #lib/modules/KVER-ipfire/kernel/drivers/net/phy/broadcom.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/phy/cicada.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/phy/davicom.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/phy/dp83640.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/phy/et1011c.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/phy/icplus.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/phy/lxt.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/phy/marvell.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/phy/mdio-bitbang.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/phy/mdio-gpio.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/phy/micrel.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/phy/national.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/phy/qsemi.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/phy/realtek.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/phy/smsc.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/phy/ste10Xp.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/phy/vitesse.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/ppp_async.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/ppp_deflate.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/ppp_generic.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/ppp_mppe.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/ppp_synctty.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/pppoe.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/pppol2tp.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/pppox.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/qla3xxx.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/qlge
-#lib/modules/KVER-ipfire/kernel/drivers/net/qlge/qlge.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/r6040.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/r8169.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/s2io.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ppp
+#lib/modules/KVER-ipfire/kernel/drivers/net/ppp/bsd_comp.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ppp/ppp_async.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ppp/ppp_deflate.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ppp/ppp_generic.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ppp/ppp_mppe.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ppp/ppp_synctty.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ppp/pppoe.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ppp/pppox.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/ppp/pptp.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/sb1000.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/sc92031.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/seeq8005.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/sfc
-#lib/modules/KVER-ipfire/kernel/drivers/net/sfc/sfc.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/sis190.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/sis900.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/skge.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/sky2.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/slhc.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/slip.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/smc-mca.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/smc-ultra.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/smc-ultra32.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/smc9194.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/smsc9420.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/starfire.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/sundance.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/sungem.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/slip
+#lib/modules/KVER-ipfire/kernel/drivers/net/slip/slhc.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/slip/slip.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/sungem_phy.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/sunhme.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/tehuti.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/tg3.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/tlan.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/tulip
-#lib/modules/KVER-ipfire/kernel/drivers/net/tulip/de2104x.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/tulip/de4x5.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/tulip/dmfe.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/tulip/tulip.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/tulip/uli526x.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/tulip/winbond-840.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/tulip/xircom_cb.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/tun.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/typhoon.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/usb
 #lib/modules/KVER-ipfire/kernel/drivers/net/usb/asix.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/usb/catc.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/usb/cdc-phonet.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/usb/cdc_eem.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/usb/cdc_ether.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/usb/cdc_ncm.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/usb/cdc_subset.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/usb/cx82310_eth.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/usb/dm9601.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/usb/gl620a.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/usb/hso.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/usb/int51x1.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/usb/kalmia.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/usb/kaweth.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/usb/lg-vl600.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/usb/mcs7830.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/usb/net1080.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/usb/pegasus.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/usb/plusb.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/usb/rndis_host.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/usb/rtl8150.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/usb/sierra_net.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/usb/smsc75xx.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/usb/smsc95xx.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/usb/usbnet.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/usb/zaurus.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/veth.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/via-rhine.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/via-velocity.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/virtio_net.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/vmxnet3
 #lib/modules/KVER-ipfire/kernel/drivers/net/vmxnet3/vmxnet3.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/vxge
-#lib/modules/KVER-ipfire/kernel/drivers/net/vxge/vxge.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/wan
 #lib/modules/KVER-ipfire/kernel/drivers/net/wan/c101.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/wan/cosa.ko
@@ -948,94 +1313,22 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/drivers/net/wan/sealevel.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/wan/wanxl.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/wan/z85230.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/wd.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/wimax
-#lib/modules/KVER-ipfire/kernel/drivers/net/wimax/i2400m
-#lib/modules/KVER-ipfire/kernel/drivers/net/wimax/i2400m/i2400m-sdio.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/wimax/i2400m/i2400m-usb.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/wimax/i2400m/i2400m.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/wireless
-#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/adm8211.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/airo.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/airo_cs.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/at76c50x-usb.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ath
-#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ath/ar9170
-#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ath/ar9170/ar9170usb.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ath/ath.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ath/ath5k
-#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ath/ath5k/ath5k.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ath/ath9k
-#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ath/ath9k/ath9k.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/atmel.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/atmel_cs.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/atmel_pci.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/b43
-#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/b43/b43.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/b43legacy
-#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/b43legacy/b43legacy.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/hostap
 #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/hostap/hostap.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/hostap/hostap_cs.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/hostap/hostap_pci.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/hostap/hostap_plx.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ipw2x00
-#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ipw2x00/ipw2100.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ipw2x00/ipw2200.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ipw2x00/libipw.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/iwlwifi
-#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/iwlwifi/iwl3945.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/iwlwifi/iwlagn.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/iwlwifi/iwlcore.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/iwmc3200wifi
-#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/iwmc3200wifi/iwmc3200wifi.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/libertas
-#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/libertas/libertas.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/libertas/libertas_cs.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/libertas/libertas_sdio.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/libertas/usb8xxx.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/libertas_tf
-#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/libertas_tf/libertas_tf.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/libertas_tf/libertas_tf_usb.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/mwl8k.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/orinoco
-#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/orinoco/orinoco.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/orinoco/orinoco_cs.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/orinoco/orinoco_nortel.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/orinoco/orinoco_pci.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/orinoco/orinoco_plx.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/orinoco/orinoco_tmd.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/orinoco/spectrum_cs.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/p54
-#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/p54/p54common.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/p54/p54pci.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/p54/p54usb.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/prism54
-#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/prism54/prism54.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ray_cs.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rndis_wlan.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rt2x00
-#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rt2x00/rt2400pci.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rt2x00/rt2500pci.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rt2x00/rt2500usb.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rt2x00/rt2800usb.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rt2x00/rt2x00lib.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rt2x00/rt2x00pci.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rt2x00/rt2x00usb.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rt2x00/rt61pci.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rt2x00/rt73usb.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rtl818x
-#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rtl818x/rtl8180.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rtl818x/rtl8187.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/wl12xx
-#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/wl12xx/wl1251.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/wl12xx/wl1251_sdio.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/wl3501_cs.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/zd1201.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/zd1211rw
-#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/zd1211rw/zd1211rw.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/yellowfin.ko
-#lib/modules/KVER-ipfire/kernel/drivers/net/znet.ko
 #lib/modules/KVER-ipfire/kernel/drivers/parport
 #lib/modules/KVER-ipfire/kernel/drivers/parport/parport.ko
 #lib/modules/KVER-ipfire/kernel/drivers/parport/parport_ax88796.ko
@@ -1049,42 +1342,53 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/drivers/pcmcia/i82365.ko
 #lib/modules/KVER-ipfire/kernel/drivers/pcmcia/pcmcia.ko
 #lib/modules/KVER-ipfire/kernel/drivers/pcmcia/pcmcia_core.ko
+#lib/modules/KVER-ipfire/kernel/drivers/pcmcia/pcmcia_rsrc.ko
 #lib/modules/KVER-ipfire/kernel/drivers/pcmcia/pd6729.ko
-#lib/modules/KVER-ipfire/kernel/drivers/pcmcia/rsrc_nonstatic.ko
 #lib/modules/KVER-ipfire/kernel/drivers/pcmcia/tcic.ko
 #lib/modules/KVER-ipfire/kernel/drivers/pcmcia/yenta_socket.ko
 #lib/modules/KVER-ipfire/kernel/drivers/platform
 #lib/modules/KVER-ipfire/kernel/drivers/platform/x86
 #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/acer-wmi.ko
+#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/acerhdf.ko
 #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/asus-laptop.ko
 #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/asus_acpi.ko
+#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/classmate-laptop.ko
 #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/compal-laptop.ko
+#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/dell-wmi-aio.ko
 #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/dell-wmi.ko
 #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/fujitsu-laptop.ko
+#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/hdaps.ko
 #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/hp-wmi.ko
+#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/hp_accel.ko
+#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/ibm_rtl.ko
+#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/ideapad-laptop.ko
+#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/intel_ips.ko
 #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/intel_menlow.ko
+#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/intel_oaktrail.ko
 #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/msi-laptop.ko
+#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/msi-wmi.ko
+#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/mxm-wmi.ko
 #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/panasonic-laptop.ko
+#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/samsung-laptop.ko
+#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/samsung-q10.ko
 #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/sony-laptop.ko
 #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/tc1100-wmi.ko
 #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/thinkpad_acpi.ko
 #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/topstar-laptop.ko
 #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/toshiba_acpi.ko
+#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/toshiba_bluetooth.ko
 #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/wmi.ko
-#lib/modules/KVER-ipfire/kernel/drivers/power
-#lib/modules/KVER-ipfire/kernel/drivers/power/bq27x00_battery.ko
-#lib/modules/KVER-ipfire/kernel/drivers/power/ds2782_battery.ko
-#lib/modules/KVER-ipfire/kernel/drivers/power/max17040_battery.ko
-#lib/modules/KVER-ipfire/kernel/drivers/power/pcf50633-charger.ko
-#lib/modules/KVER-ipfire/kernel/drivers/power/wm831x_power.ko
-#lib/modules/KVER-ipfire/kernel/drivers/power/wm8350_power.ko
+#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/xo15-ebook.ko
 #lib/modules/KVER-ipfire/kernel/drivers/pps
 #lib/modules/KVER-ipfire/kernel/drivers/pps/pps_core.ko
+#lib/modules/KVER-ipfire/kernel/drivers/ptp
+#lib/modules/KVER-ipfire/kernel/drivers/ptp/ptp.ko
+#lib/modules/KVER-ipfire/kernel/drivers/regulator
+#lib/modules/KVER-ipfire/kernel/drivers/regulator/fixed.ko
+#lib/modules/KVER-ipfire/kernel/drivers/regulator/gpio-regulator.ko
 #lib/modules/KVER-ipfire/kernel/drivers/rtc
-#lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-ab3100.ko
+#lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-bq32k.ko
 #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-bq4802.ko
-#lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-cmos.ko
-#lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-core.ko
 #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-ds1286.ko
 #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-ds1307.ko
 #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-ds1374.ko
@@ -1092,29 +1396,32 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-ds1553.ko
 #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-ds1672.ko
 #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-ds1742.ko
+#lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-ds3232.ko
+#lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-em3027.ko
 #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-fm3130.ko
+#lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-isl12022.ko
 #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-isl1208.ko
-#lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-lib.ko
 #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-m41t80.ko
 #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-m48t35.ko
 #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-m48t59.ko
 #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-m48t86.ko
 #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-max6900.ko
+#lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-msm6242.ko
 #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-pcf50633.ko
 #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-pcf8563.ko
 #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-pcf8583.ko
+#lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-rp5c01.ko
 #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-rs5c372.ko
+#lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-rv3029c2.ko
 #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-rx8025.ko
 #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-rx8581.ko
 #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-s35390a.ko
 #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-stk17ta8.ko
-#lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-test.ko
 #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-v3020.ko
-#lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-wm831x.ko
-#lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-wm8350.ko
 #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-x1205.ko
 #lib/modules/KVER-ipfire/kernel/drivers/scsi
 #lib/modules/KVER-ipfire/kernel/drivers/scsi/3w-9xxx.ko
+#lib/modules/KVER-ipfire/kernel/drivers/scsi/3w-sas.ko
 #lib/modules/KVER-ipfire/kernel/drivers/scsi/3w-xxxx.ko
 #lib/modules/KVER-ipfire/kernel/drivers/scsi/53c700.ko
 #lib/modules/KVER-ipfire/kernel/drivers/scsi/BusLogic.ko
@@ -1140,11 +1447,17 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/drivers/scsi/be2iscsi/be2iscsi.ko
 #lib/modules/KVER-ipfire/kernel/drivers/scsi/bfa
 #lib/modules/KVER-ipfire/kernel/drivers/scsi/bfa/bfa.ko
+#lib/modules/KVER-ipfire/kernel/drivers/scsi/bnx2fc
+#lib/modules/KVER-ipfire/kernel/drivers/scsi/bnx2fc/bnx2fc.ko
 #lib/modules/KVER-ipfire/kernel/drivers/scsi/bnx2i
 #lib/modules/KVER-ipfire/kernel/drivers/scsi/bnx2i/bnx2i.ko
 #lib/modules/KVER-ipfire/kernel/drivers/scsi/ch.ko
-#lib/modules/KVER-ipfire/kernel/drivers/scsi/cxgb3i
-#lib/modules/KVER-ipfire/kernel/drivers/scsi/cxgb3i/cxgb3i.ko
+#lib/modules/KVER-ipfire/kernel/drivers/scsi/cxgbi
+#lib/modules/KVER-ipfire/kernel/drivers/scsi/cxgbi/cxgb3i
+#lib/modules/KVER-ipfire/kernel/drivers/scsi/cxgbi/cxgb3i/cxgb3i.ko
+#lib/modules/KVER-ipfire/kernel/drivers/scsi/cxgbi/cxgb4i
+#lib/modules/KVER-ipfire/kernel/drivers/scsi/cxgbi/cxgb4i/cxgb4i.ko
+#lib/modules/KVER-ipfire/kernel/drivers/scsi/cxgbi/libcxgbi.ko
 #lib/modules/KVER-ipfire/kernel/drivers/scsi/dc395x.ko
 #lib/modules/KVER-ipfire/kernel/drivers/scsi/device_handler
 #lib/modules/KVER-ipfire/kernel/drivers/scsi/device_handler/scsi_dh.ko
@@ -1166,6 +1479,7 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/drivers/scsi/g_NCR5380.ko
 #lib/modules/KVER-ipfire/kernel/drivers/scsi/g_NCR5380_mmio.ko
 #lib/modules/KVER-ipfire/kernel/drivers/scsi/gdth.ko
+#lib/modules/KVER-ipfire/kernel/drivers/scsi/hpsa.ko
 #lib/modules/KVER-ipfire/kernel/drivers/scsi/hptiop.ko
 #lib/modules/KVER-ipfire/kernel/drivers/scsi/ibmmca.ko
 #lib/modules/KVER-ipfire/kernel/drivers/scsi/imm.ko
@@ -1173,6 +1487,9 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/drivers/scsi/initio.ko
 #lib/modules/KVER-ipfire/kernel/drivers/scsi/ipr.ko
 #lib/modules/KVER-ipfire/kernel/drivers/scsi/ips.ko
+#lib/modules/KVER-ipfire/kernel/drivers/scsi/isci
+#lib/modules/KVER-ipfire/kernel/drivers/scsi/isci/isci.ko
+#lib/modules/KVER-ipfire/kernel/drivers/scsi/iscsi_boot_sysfs.ko
 #lib/modules/KVER-ipfire/kernel/drivers/scsi/iscsi_tcp.ko
 #lib/modules/KVER-ipfire/kernel/drivers/scsi/libfc
 #lib/modules/KVER-ipfire/kernel/drivers/scsi/libfc/libfc.ko
@@ -1191,6 +1508,7 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/drivers/scsi/mpt2sas/mpt2sas.ko
 #lib/modules/KVER-ipfire/kernel/drivers/scsi/mvsas
 #lib/modules/KVER-ipfire/kernel/drivers/scsi/mvsas/mvsas.ko
+#lib/modules/KVER-ipfire/kernel/drivers/scsi/mvumi.ko
 #lib/modules/KVER-ipfire/kernel/drivers/scsi/nsp32.ko
 #lib/modules/KVER-ipfire/kernel/drivers/scsi/osd
 #lib/modules/KVER-ipfire/kernel/drivers/scsi/osd/libosd.ko
@@ -1202,6 +1520,8 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/drivers/scsi/pcmcia/nsp_cs.ko
 #lib/modules/KVER-ipfire/kernel/drivers/scsi/pcmcia/qlogic_cs.ko
 #lib/modules/KVER-ipfire/kernel/drivers/scsi/pcmcia/sym53c500_cs.ko
+#lib/modules/KVER-ipfire/kernel/drivers/scsi/pm8001
+#lib/modules/KVER-ipfire/kernel/drivers/scsi/pm8001/pm8001.ko
 #lib/modules/KVER-ipfire/kernel/drivers/scsi/pmcraid.ko
 #lib/modules/KVER-ipfire/kernel/drivers/scsi/ppa.ko
 #lib/modules/KVER-ipfire/kernel/drivers/scsi/qla1280.ko
@@ -1211,6 +1531,7 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/drivers/scsi/qla4xxx/qla4xxx.ko
 #lib/modules/KVER-ipfire/kernel/drivers/scsi/qlogicfas.ko
 #lib/modules/KVER-ipfire/kernel/drivers/scsi/qlogicfas408.ko
+#lib/modules/KVER-ipfire/kernel/drivers/scsi/raid_class.ko
 #lib/modules/KVER-ipfire/kernel/drivers/scsi/scsi_mod.ko
 #lib/modules/KVER-ipfire/kernel/drivers/scsi/scsi_transport_fc.ko
 #lib/modules/KVER-ipfire/kernel/drivers/scsi/scsi_transport_iscsi.ko
@@ -1231,37 +1552,55 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/drivers/scsi/tmscsim.ko
 #lib/modules/KVER-ipfire/kernel/drivers/scsi/u14-34f.ko
 #lib/modules/KVER-ipfire/kernel/drivers/scsi/ultrastor.ko
+#lib/modules/KVER-ipfire/kernel/drivers/scsi/vmw_pvscsi.ko
 #lib/modules/KVER-ipfire/kernel/drivers/scsi/wd7000.ko
-#lib/modules/KVER-ipfire/kernel/drivers/serial
-#lib/modules/KVER-ipfire/kernel/drivers/serial/8250_accent.ko
-#lib/modules/KVER-ipfire/kernel/drivers/serial/8250_boca.ko
-#lib/modules/KVER-ipfire/kernel/drivers/serial/8250_exar_st16c554.ko
-#lib/modules/KVER-ipfire/kernel/drivers/serial/8250_fourport.ko
-#lib/modules/KVER-ipfire/kernel/drivers/serial/8250_hub6.ko
-#lib/modules/KVER-ipfire/kernel/drivers/serial/serial_cs.ko
 #lib/modules/KVER-ipfire/kernel/drivers/ssb
 #lib/modules/KVER-ipfire/kernel/drivers/ssb/ssb.ko
 #lib/modules/KVER-ipfire/kernel/drivers/staging
 #lib/modules/KVER-ipfire/kernel/drivers/staging/et131x
 #lib/modules/KVER-ipfire/kernel/drivers/staging/et131x/et131x.ko
 #lib/modules/KVER-ipfire/kernel/drivers/staging/hv
-#lib/modules/KVER-ipfire/kernel/drivers/staging/hv/hv_blkvsc.ko
+#lib/modules/KVER-ipfire/kernel/drivers/staging/hv/hv_mouse.ko
 #lib/modules/KVER-ipfire/kernel/drivers/staging/hv/hv_netvsc.ko
 #lib/modules/KVER-ipfire/kernel/drivers/staging/hv/hv_storvsc.ko
-#lib/modules/KVER-ipfire/kernel/drivers/staging/hv/hv_vmbus.ko
+#lib/modules/KVER-ipfire/kernel/drivers/staging/mei
+#lib/modules/KVER-ipfire/kernel/drivers/staging/mei/mei.ko
 #lib/modules/KVER-ipfire/kernel/drivers/staging/phison
 #lib/modules/KVER-ipfire/kernel/drivers/staging/phison/phison.ko
 #lib/modules/KVER-ipfire/kernel/drivers/staging/slicoss
 #lib/modules/KVER-ipfire/kernel/drivers/staging/slicoss/slicoss.ko
+#lib/modules/KVER-ipfire/kernel/drivers/staging/usbip
+#lib/modules/KVER-ipfire/kernel/drivers/staging/usbip/usbip-core.ko
+#lib/modules/KVER-ipfire/kernel/drivers/staging/usbip/usbip-host.ko
+#lib/modules/KVER-ipfire/kernel/drivers/staging/usbip/vhci-hcd.ko
+#lib/modules/KVER-ipfire/kernel/drivers/tty
+#lib/modules/KVER-ipfire/kernel/drivers/tty/ipwireless
+#lib/modules/KVER-ipfire/kernel/drivers/tty/ipwireless/ipwireless.ko
+#lib/modules/KVER-ipfire/kernel/drivers/tty/n_gsm.ko
+#lib/modules/KVER-ipfire/kernel/drivers/tty/nozomi.ko
+#lib/modules/KVER-ipfire/kernel/drivers/tty/serial
+#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/8250_accent.ko
+#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/8250_boca.ko
+#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/8250_exar_st16c554.ko
+#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/8250_fourport.ko
+#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/8250_hub6.ko
+#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/altera_jtaguart.ko
+#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/altera_uart.ko
+#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/mfd.ko
+#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/pch_uart.ko
+#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/serial_cs.ko
+#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/timbuart.ko
+#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/uartlite.ko
+#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/xilinx_uartps.ko
 #lib/modules/KVER-ipfire/kernel/drivers/uio
 #lib/modules/KVER-ipfire/kernel/drivers/uio/uio.ko
 #lib/modules/KVER-ipfire/kernel/drivers/uio/uio_aec.ko
 #lib/modules/KVER-ipfire/kernel/drivers/uio/uio_cif.ko
+#lib/modules/KVER-ipfire/kernel/drivers/uio/uio_netx.ko
 #lib/modules/KVER-ipfire/kernel/drivers/uio/uio_pci_generic.ko
 #lib/modules/KVER-ipfire/kernel/drivers/uio/uio_pdrv.ko
 #lib/modules/KVER-ipfire/kernel/drivers/uio/uio_pdrv_genirq.ko
 #lib/modules/KVER-ipfire/kernel/drivers/uio/uio_sercos3.ko
-#lib/modules/KVER-ipfire/kernel/drivers/uio/uio_smx.ko
 #lib/modules/KVER-ipfire/kernel/drivers/usb
 #lib/modules/KVER-ipfire/kernel/drivers/usb/atm
 #lib/modules/KVER-ipfire/kernel/drivers/usb/atm/cxacru.ko
@@ -1274,24 +1613,22 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/drivers/usb/class/cdc-wdm.ko
 #lib/modules/KVER-ipfire/kernel/drivers/usb/class/usblp.ko
 #lib/modules/KVER-ipfire/kernel/drivers/usb/class/usbtmc.ko
-#lib/modules/KVER-ipfire/kernel/drivers/usb/core
-#lib/modules/KVER-ipfire/kernel/drivers/usb/core/usbcore.ko
+#lib/modules/KVER-ipfire/kernel/drivers/usb/dwc3
+#lib/modules/KVER-ipfire/kernel/drivers/usb/dwc3/dwc3-omap.ko
+#lib/modules/KVER-ipfire/kernel/drivers/usb/dwc3/dwc3-pci.ko
+#lib/modules/KVER-ipfire/kernel/drivers/usb/dwc3/dwc3.ko
 #lib/modules/KVER-ipfire/kernel/drivers/usb/host
-#lib/modules/KVER-ipfire/kernel/drivers/usb/host/ehci-hcd.ko
 #lib/modules/KVER-ipfire/kernel/drivers/usb/host/hwa-hc.ko
 #lib/modules/KVER-ipfire/kernel/drivers/usb/host/isp116x-hcd.ko
 #lib/modules/KVER-ipfire/kernel/drivers/usb/host/isp1362-hcd.ko
-#lib/modules/KVER-ipfire/kernel/drivers/usb/host/ohci-hcd.ko
 #lib/modules/KVER-ipfire/kernel/drivers/usb/host/oxu210hp-hcd.ko
 #lib/modules/KVER-ipfire/kernel/drivers/usb/host/r8a66597-hcd.ko
 #lib/modules/KVER-ipfire/kernel/drivers/usb/host/sl811-hcd.ko
 #lib/modules/KVER-ipfire/kernel/drivers/usb/host/u132-hcd.ko
-#lib/modules/KVER-ipfire/kernel/drivers/usb/host/uhci-hcd.ko
 #lib/modules/KVER-ipfire/kernel/drivers/usb/host/whci
 #lib/modules/KVER-ipfire/kernel/drivers/usb/host/whci/whci-hcd.ko
-#lib/modules/KVER-ipfire/kernel/drivers/usb/host/xhci.ko
+#lib/modules/KVER-ipfire/kernel/drivers/usb/host/xhci-hcd.ko
 #lib/modules/KVER-ipfire/kernel/drivers/usb/misc
-#lib/modules/KVER-ipfire/kernel/drivers/usb/misc/berry_charge.ko
 #lib/modules/KVER-ipfire/kernel/drivers/usb/misc/cypress_cy7c63.ko
 #lib/modules/KVER-ipfire/kernel/drivers/usb/misc/cytherm.ko
 #lib/modules/KVER-ipfire/kernel/drivers/usb/misc/emi26.ko
@@ -1305,8 +1642,9 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/drivers/usb/misc/usbled.ko
 #lib/modules/KVER-ipfire/kernel/drivers/usb/misc/usbsevseg.ko
 #lib/modules/KVER-ipfire/kernel/drivers/usb/misc/uss720.ko
-#lib/modules/KVER-ipfire/kernel/drivers/usb/misc/vstusb.ko
+#lib/modules/KVER-ipfire/kernel/drivers/usb/misc/yurex.ko
 #lib/modules/KVER-ipfire/kernel/drivers/usb/otg
+#lib/modules/KVER-ipfire/kernel/drivers/usb/otg/gpio_vbus.ko
 #lib/modules/KVER-ipfire/kernel/drivers/usb/otg/nop-usb-xceiv.ko
 #lib/modules/KVER-ipfire/kernel/drivers/usb/serial
 #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/aircable.ko
@@ -1318,10 +1656,14 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/digi_acceleport.ko
 #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/empeg.ko
 #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/ftdi_sio.ko
+#lib/modules/KVER-ipfire/kernel/drivers/usb/serial/funsoft.ko
 #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/garmin_gps.ko
 #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/hp4x.ko
 #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/io_edgeport.ko
+#lib/modules/KVER-ipfire/kernel/drivers/usb/serial/io_ti.ko
+#lib/modules/KVER-ipfire/kernel/drivers/usb/serial/ipaq.ko
 #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/ipw.ko
+#lib/modules/KVER-ipfire/kernel/drivers/usb/serial/ir-usb.ko
 #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/iuu_phoenix.ko
 #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/keyspan_pda.ko
 #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/mct_u232.ko
@@ -1332,23 +1674,33 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/option.ko
 #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/oti6858.ko
 #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/pl2303.ko
+#lib/modules/KVER-ipfire/kernel/drivers/usb/serial/qcaux.ko
 #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/qcserial.ko
 #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/safe_serial.ko
 #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/siemens_mpi.ko
 #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/sierra.ko
 #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/spcp8x5.ko
+#lib/modules/KVER-ipfire/kernel/drivers/usb/serial/ssu100.ko
 #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/symbolserial.ko
 #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/ti_usb_3410_5052.ko
+#lib/modules/KVER-ipfire/kernel/drivers/usb/serial/usb_wwan.ko
 #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/usbserial.ko
+#lib/modules/KVER-ipfire/kernel/drivers/usb/serial/visor.ko
+#lib/modules/KVER-ipfire/kernel/drivers/usb/serial/vivopay-serial.ko
 #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/whiteheat.ko
+#lib/modules/KVER-ipfire/kernel/drivers/usb/serial/zio.ko
 #lib/modules/KVER-ipfire/kernel/drivers/usb/storage
+#lib/modules/KVER-ipfire/kernel/drivers/usb/storage/uas.ko
 #lib/modules/KVER-ipfire/kernel/drivers/usb/storage/ums-alauda.ko
 #lib/modules/KVER-ipfire/kernel/drivers/usb/storage/ums-cypress.ko
+#lib/modules/KVER-ipfire/kernel/drivers/usb/storage/ums-datafab.ko
+#lib/modules/KVER-ipfire/kernel/drivers/usb/storage/ums-eneub6250.ko
 #lib/modules/KVER-ipfire/kernel/drivers/usb/storage/ums-freecom.ko
 #lib/modules/KVER-ipfire/kernel/drivers/usb/storage/ums-isd200.ko
 #lib/modules/KVER-ipfire/kernel/drivers/usb/storage/ums-jumpshot.ko
 #lib/modules/KVER-ipfire/kernel/drivers/usb/storage/ums-karma.ko
 #lib/modules/KVER-ipfire/kernel/drivers/usb/storage/ums-onetouch.ko
+#lib/modules/KVER-ipfire/kernel/drivers/usb/storage/ums-realtek.ko
 #lib/modules/KVER-ipfire/kernel/drivers/usb/storage/ums-sddr09.ko
 #lib/modules/KVER-ipfire/kernel/drivers/usb/storage/ums-sddr55.ko
 #lib/modules/KVER-ipfire/kernel/drivers/usb/storage/ums-usbat.ko
@@ -1363,14 +1715,12 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/drivers/uwb/i1480/dfu
 #lib/modules/KVER-ipfire/kernel/drivers/uwb/i1480/dfu/i1480-dfu-usb.ko
 #lib/modules/KVER-ipfire/kernel/drivers/uwb/i1480/i1480-est.ko
-#lib/modules/KVER-ipfire/kernel/drivers/uwb/i1480/i1480u-wlp
-#lib/modules/KVER-ipfire/kernel/drivers/uwb/i1480/i1480u-wlp/i1480u-wlp.ko
 #lib/modules/KVER-ipfire/kernel/drivers/uwb/umc.ko
 #lib/modules/KVER-ipfire/kernel/drivers/uwb/uwb.ko
 #lib/modules/KVER-ipfire/kernel/drivers/uwb/whc-rc.ko
 #lib/modules/KVER-ipfire/kernel/drivers/uwb/whci.ko
-#lib/modules/KVER-ipfire/kernel/drivers/uwb/wlp
-#lib/modules/KVER-ipfire/kernel/drivers/uwb/wlp/wlp.ko
+#lib/modules/KVER-ipfire/kernel/drivers/vhost
+#lib/modules/KVER-ipfire/kernel/drivers/vhost/vhost_net.ko
 #lib/modules/KVER-ipfire/kernel/drivers/video
 #lib/modules/KVER-ipfire/kernel/drivers/video/arkfb.ko
 #lib/modules/KVER-ipfire/kernel/drivers/video/aty
@@ -1378,14 +1728,16 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/drivers/video/aty/atyfb.ko
 #lib/modules/KVER-ipfire/kernel/drivers/video/aty/radeonfb.ko
 #lib/modules/KVER-ipfire/kernel/drivers/video/backlight
+#lib/modules/KVER-ipfire/kernel/drivers/video/backlight/adp8860_bl.ko
+#lib/modules/KVER-ipfire/kernel/drivers/video/backlight/adp8870_bl.ko
+#lib/modules/KVER-ipfire/kernel/drivers/video/backlight/apple_bl.ko
 #lib/modules/KVER-ipfire/kernel/drivers/video/backlight/cr_bllcd.ko
 #lib/modules/KVER-ipfire/kernel/drivers/video/backlight/generic_bl.ko
 #lib/modules/KVER-ipfire/kernel/drivers/video/backlight/kb3886_bl.ko
 #lib/modules/KVER-ipfire/kernel/drivers/video/backlight/lcd.ko
-#lib/modules/KVER-ipfire/kernel/drivers/video/backlight/mbp_nvidia_bl.ko
+#lib/modules/KVER-ipfire/kernel/drivers/video/backlight/pcf50633-backlight.ko
 #lib/modules/KVER-ipfire/kernel/drivers/video/backlight/platform_lcd.ko
 #lib/modules/KVER-ipfire/kernel/drivers/video/backlight/progear_bl.ko
-#lib/modules/KVER-ipfire/kernel/drivers/video/backlight/wm831x_bl.ko
 #lib/modules/KVER-ipfire/kernel/drivers/video/cirrusfb.ko
 #lib/modules/KVER-ipfire/kernel/drivers/video/cyber2000fb.ko
 #lib/modules/KVER-ipfire/kernel/drivers/video/display
@@ -1427,6 +1779,7 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/drivers/video/sis
 #lib/modules/KVER-ipfire/kernel/drivers/video/sis/sisfb.ko
 #lib/modules/KVER-ipfire/kernel/drivers/video/sm501fb.ko
+#lib/modules/KVER-ipfire/kernel/drivers/video/smscufx.ko
 #lib/modules/KVER-ipfire/kernel/drivers/video/sstfb.ko
 #lib/modules/KVER-ipfire/kernel/drivers/video/svgalib.ko
 #lib/modules/KVER-ipfire/kernel/drivers/video/syscopyarea.ko
@@ -1445,17 +1798,23 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/drivers/video/vt8623fb.ko
 #lib/modules/KVER-ipfire/kernel/drivers/virtio
 #lib/modules/KVER-ipfire/kernel/drivers/virtio/virtio_balloon.ko
+#lib/modules/KVER-ipfire/kernel/drivers/virtio/virtio_mmio.ko
 #lib/modules/KVER-ipfire/kernel/drivers/virtio/virtio_pci.ko
 #lib/modules/KVER-ipfire/kernel/drivers/w1
 #lib/modules/KVER-ipfire/kernel/drivers/w1/masters
+#lib/modules/KVER-ipfire/kernel/drivers/w1/masters/ds1wm.ko
 #lib/modules/KVER-ipfire/kernel/drivers/w1/masters/ds2482.ko
 #lib/modules/KVER-ipfire/kernel/drivers/w1/masters/ds2490.ko
 #lib/modules/KVER-ipfire/kernel/drivers/w1/masters/matrox_w1.ko
+#lib/modules/KVER-ipfire/kernel/drivers/w1/masters/w1-gpio.ko
 #lib/modules/KVER-ipfire/kernel/drivers/w1/slaves
 #lib/modules/KVER-ipfire/kernel/drivers/w1/slaves/w1_bq27000.ko
+#lib/modules/KVER-ipfire/kernel/drivers/w1/slaves/w1_ds2408.ko
+#lib/modules/KVER-ipfire/kernel/drivers/w1/slaves/w1_ds2423.ko
 #lib/modules/KVER-ipfire/kernel/drivers/w1/slaves/w1_ds2431.ko
 #lib/modules/KVER-ipfire/kernel/drivers/w1/slaves/w1_ds2433.ko
 #lib/modules/KVER-ipfire/kernel/drivers/w1/slaves/w1_ds2760.ko
+#lib/modules/KVER-ipfire/kernel/drivers/w1/slaves/w1_ds2780.ko
 #lib/modules/KVER-ipfire/kernel/drivers/w1/slaves/w1_smem.ko
 #lib/modules/KVER-ipfire/kernel/drivers/w1/slaves/w1_therm.ko
 #lib/modules/KVER-ipfire/kernel/drivers/w1/wire.ko
@@ -1466,6 +1825,8 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/drivers/watchdog/alim7101_wdt.ko
 #lib/modules/KVER-ipfire/kernel/drivers/watchdog/cpu5wdt.ko
 #lib/modules/KVER-ipfire/kernel/drivers/watchdog/eurotechwdt.ko
+#lib/modules/KVER-ipfire/kernel/drivers/watchdog/f71808e_wdt.ko
+#lib/modules/KVER-ipfire/kernel/drivers/watchdog/geodewdt.ko
 #lib/modules/KVER-ipfire/kernel/drivers/watchdog/hpwdt.ko
 #lib/modules/KVER-ipfire/kernel/drivers/watchdog/i6300esb.ko
 #lib/modules/KVER-ipfire/kernel/drivers/watchdog/iTCO_wdt.ko
@@ -1474,6 +1835,7 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/drivers/watchdog/it8712f_wdt.ko
 #lib/modules/KVER-ipfire/kernel/drivers/watchdog/it87_wdt.ko
 #lib/modules/KVER-ipfire/kernel/drivers/watchdog/machzwd.ko
+#lib/modules/KVER-ipfire/kernel/drivers/watchdog/nv_tco.ko
 #lib/modules/KVER-ipfire/kernel/drivers/watchdog/pc87413_wdt.ko
 #lib/modules/KVER-ipfire/kernel/drivers/watchdog/pcwd_pci.ko
 #lib/modules/KVER-ipfire/kernel/drivers/watchdog/pcwd_usb.ko
@@ -1488,6 +1850,7 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/drivers/watchdog/scx200_wdt.ko
 #lib/modules/KVER-ipfire/kernel/drivers/watchdog/smsc37b787_wdt.ko
 #lib/modules/KVER-ipfire/kernel/drivers/watchdog/softdog.ko
+#lib/modules/KVER-ipfire/kernel/drivers/watchdog/sp5100_tco.ko
 #lib/modules/KVER-ipfire/kernel/drivers/watchdog/w83627hf_wdt.ko
 #lib/modules/KVER-ipfire/kernel/drivers/watchdog/w83697hf_wdt.ko
 #lib/modules/KVER-ipfire/kernel/drivers/watchdog/w83697ug_wdt.ko
@@ -1495,11 +1858,7 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/drivers/watchdog/w83977f_wdt.ko
 #lib/modules/KVER-ipfire/kernel/drivers/watchdog/wafer5823wdt.ko
 #lib/modules/KVER-ipfire/kernel/drivers/watchdog/wdt_pci.ko
-#lib/modules/KVER-ipfire/kernel/drivers/watchdog/wm831x_wdt.ko
-#lib/modules/KVER-ipfire/kernel/drivers/watchdog/wm8350_wdt.ko
 #lib/modules/KVER-ipfire/kernel/fs
-#lib/modules/KVER-ipfire/kernel/fs/autofs
-#lib/modules/KVER-ipfire/kernel/fs/autofs/autofs.ko
 #lib/modules/KVER-ipfire/kernel/fs/autofs4
 #lib/modules/KVER-ipfire/kernel/fs/autofs4/autofs4.ko
 #lib/modules/KVER-ipfire/kernel/fs/cachefiles
@@ -1510,12 +1869,6 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/fs/ecryptfs/ecryptfs.ko
 #lib/modules/KVER-ipfire/kernel/fs/exportfs
 #lib/modules/KVER-ipfire/kernel/fs/exportfs/exportfs.ko
-#lib/modules/KVER-ipfire/kernel/fs/ext2
-#lib/modules/KVER-ipfire/kernel/fs/ext2/ext2.ko
-#lib/modules/KVER-ipfire/kernel/fs/ext3
-#lib/modules/KVER-ipfire/kernel/fs/ext3/ext3.ko
-#lib/modules/KVER-ipfire/kernel/fs/ext4
-#lib/modules/KVER-ipfire/kernel/fs/ext4/ext4.ko
 #lib/modules/KVER-ipfire/kernel/fs/fat
 #lib/modules/KVER-ipfire/kernel/fs/fat/fat.ko
 #lib/modules/KVER-ipfire/kernel/fs/fat/vfat.ko
@@ -1526,17 +1879,12 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/fs/fuse/fuse.ko
 #lib/modules/KVER-ipfire/kernel/fs/isofs
 #lib/modules/KVER-ipfire/kernel/fs/isofs/isofs.ko
-#lib/modules/KVER-ipfire/kernel/fs/jbd
-#lib/modules/KVER-ipfire/kernel/fs/jbd/jbd.ko
-#lib/modules/KVER-ipfire/kernel/fs/jbd2
-#lib/modules/KVER-ipfire/kernel/fs/jbd2/jbd2.ko
 #lib/modules/KVER-ipfire/kernel/fs/jffs2
 #lib/modules/KVER-ipfire/kernel/fs/jffs2/jffs2.ko
 #lib/modules/KVER-ipfire/kernel/fs/jfs
 #lib/modules/KVER-ipfire/kernel/fs/jfs/jfs.ko
 #lib/modules/KVER-ipfire/kernel/fs/lockd
 #lib/modules/KVER-ipfire/kernel/fs/lockd/lockd.ko
-#lib/modules/KVER-ipfire/kernel/fs/mbcache.ko
 #lib/modules/KVER-ipfire/kernel/fs/nfs
 #lib/modules/KVER-ipfire/kernel/fs/nfs/nfs.ko
 #lib/modules/KVER-ipfire/kernel/fs/nfs_common
@@ -1547,26 +1895,24 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/fs/quota/quota_tree.ko
 #lib/modules/KVER-ipfire/kernel/fs/quota/quota_v1.ko
 #lib/modules/KVER-ipfire/kernel/fs/quota/quota_v2.ko
-#lib/modules/KVER-ipfire/kernel/fs/reiser4
-#lib/modules/KVER-ipfire/kernel/fs/reiser4/reiser4.ko
 #lib/modules/KVER-ipfire/kernel/fs/reiserfs
 #lib/modules/KVER-ipfire/kernel/fs/reiserfs/reiserfs.ko
-#lib/modules/KVER-ipfire/kernel/fs/smbfs
-#lib/modules/KVER-ipfire/kernel/fs/smbfs/smbfs.ko
 #lib/modules/KVER-ipfire/kernel/fs/udf
 #lib/modules/KVER-ipfire/kernel/fs/udf/udf.ko
+#lib/modules/KVER-ipfire/kernel/fs/ufs
+#lib/modules/KVER-ipfire/kernel/fs/ufs/ufs.ko
 #lib/modules/KVER-ipfire/kernel/fs/xfs
 #lib/modules/KVER-ipfire/kernel/fs/xfs/xfs.ko
 #lib/modules/KVER-ipfire/kernel/lib
+#lib/modules/KVER-ipfire/kernel/lib/cordic.ko
 #lib/modules/KVER-ipfire/kernel/lib/crc-ccitt.ko
 #lib/modules/KVER-ipfire/kernel/lib/crc-itu-t.ko
 #lib/modules/KVER-ipfire/kernel/lib/crc-t10dif.ko
-#lib/modules/KVER-ipfire/kernel/lib/crc16.ko
 #lib/modules/KVER-ipfire/kernel/lib/crc7.ko
+#lib/modules/KVER-ipfire/kernel/lib/crc8.ko
 #lib/modules/KVER-ipfire/kernel/lib/libcrc32c.ko
-#lib/modules/KVER-ipfire/kernel/lib/lzo
-#lib/modules/KVER-ipfire/kernel/lib/lzo/lzo_compress.ko
-#lib/modules/KVER-ipfire/kernel/lib/lzo/lzo_decompress.ko
+#lib/modules/KVER-ipfire/kernel/lib/raid6
+#lib/modules/KVER-ipfire/kernel/lib/raid6/raid6_pq.ko
 #lib/modules/KVER-ipfire/kernel/lib/ts_bm.ko
 #lib/modules/KVER-ipfire/kernel/lib/ts_fsm.ko
 #lib/modules/KVER-ipfire/kernel/lib/ts_kmp.ko
@@ -1583,6 +1929,8 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/net/atm/br2684.ko
 #lib/modules/KVER-ipfire/kernel/net/atm/clip.ko
 #lib/modules/KVER-ipfire/kernel/net/atm/pppoatm.ko
+#lib/modules/KVER-ipfire/kernel/net/batman-adv
+#lib/modules/KVER-ipfire/kernel/net/batman-adv/batman-adv.ko
 #lib/modules/KVER-ipfire/kernel/net/bluetooth
 #lib/modules/KVER-ipfire/kernel/net/bluetooth/bluetooth.ko
 #lib/modules/KVER-ipfire/kernel/net/bluetooth/bnep
@@ -1591,10 +1939,8 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/net/bluetooth/cmtp/cmtp.ko
 #lib/modules/KVER-ipfire/kernel/net/bluetooth/hidp
 #lib/modules/KVER-ipfire/kernel/net/bluetooth/hidp/hidp.ko
-#lib/modules/KVER-ipfire/kernel/net/bluetooth/l2cap.ko
 #lib/modules/KVER-ipfire/kernel/net/bluetooth/rfcomm
 #lib/modules/KVER-ipfire/kernel/net/bluetooth/rfcomm/rfcomm.ko
-#lib/modules/KVER-ipfire/kernel/net/bluetooth/sco.ko
 #lib/modules/KVER-ipfire/kernel/net/bridge
 #lib/modules/KVER-ipfire/kernel/net/bridge/bridge.ko
 #lib/modules/KVER-ipfire/kernel/net/bridge/netfilter
@@ -1620,13 +1966,16 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/net/bridge/netfilter/ebtable_filter.ko
 #lib/modules/KVER-ipfire/kernel/net/bridge/netfilter/ebtable_nat.ko
 #lib/modules/KVER-ipfire/kernel/net/bridge/netfilter/ebtables.ko
+#lib/modules/KVER-ipfire/kernel/net/ceph
+#lib/modules/KVER-ipfire/kernel/net/ceph/libceph.ko
 #lib/modules/KVER-ipfire/kernel/net/ieee802154
+#lib/modules/KVER-ipfire/kernel/net/ieee802154/6lowpan.ko
 #lib/modules/KVER-ipfire/kernel/net/ieee802154/af_802154.ko
-#lib/modules/KVER-ipfire/kernel/net/ieee802154/nl802154.ko
-#lib/modules/KVER-ipfire/kernel/net/ieee802154/wpan-class.ko
+#lib/modules/KVER-ipfire/kernel/net/ieee802154/ieee802154.ko
 #lib/modules/KVER-ipfire/kernel/net/ipv4
 #lib/modules/KVER-ipfire/kernel/net/ipv4/ah4.ko
 #lib/modules/KVER-ipfire/kernel/net/ipv4/esp4.ko
+#lib/modules/KVER-ipfire/kernel/net/ipv4/gre.ko
 #lib/modules/KVER-ipfire/kernel/net/ipv4/inet_diag.ko
 #lib/modules/KVER-ipfire/kernel/net/ipv4/ip_gre.ko
 #lib/modules/KVER-ipfire/kernel/net/ipv4/ipcomp.ko
@@ -1645,7 +1994,6 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/ipt_REDIRECT.ko
 #lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/ipt_REJECT.ko
 #lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/ipt_ULOG.ko
-#lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/ipt_addrtype.ko
 #lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/ipt_ah.ko
 #lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/ipt_ecn.ko
 #lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/ipt_ipp2p.ko
@@ -1688,7 +2036,6 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/net/ipv6/esp6.ko
 #lib/modules/KVER-ipfire/kernel/net/ipv6/ip6_tunnel.ko
 #lib/modules/KVER-ipfire/kernel/net/ipv6/ipcomp6.ko
-#lib/modules/KVER-ipfire/kernel/net/ipv6/ipv6.ko
 #lib/modules/KVER-ipfire/kernel/net/ipv6/mip6.ko
 #lib/modules/KVER-ipfire/kernel/net/ipv6/netfilter
 #lib/modules/KVER-ipfire/kernel/net/ipv6/netfilter/ip6_queue.ko
@@ -1706,6 +2053,7 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/net/ipv6/netfilter/ip6table_mangle.ko
 #lib/modules/KVER-ipfire/kernel/net/ipv6/netfilter/ip6table_raw.ko
 #lib/modules/KVER-ipfire/kernel/net/ipv6/netfilter/nf_conntrack_ipv6.ko
+#lib/modules/KVER-ipfire/kernel/net/ipv6/netfilter/nf_defrag_ipv6.ko
 #lib/modules/KVER-ipfire/kernel/net/ipv6/sit.ko
 #lib/modules/KVER-ipfire/kernel/net/ipv6/tunnel6.ko
 #lib/modules/KVER-ipfire/kernel/net/ipv6/xfrm6_mode_beet.ko
@@ -1724,6 +2072,12 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/net/irda/irnet/irnet.ko
 #lib/modules/KVER-ipfire/kernel/net/key
 #lib/modules/KVER-ipfire/kernel/net/key/af_key.ko
+#lib/modules/KVER-ipfire/kernel/net/l2tp
+#lib/modules/KVER-ipfire/kernel/net/l2tp/l2tp_core.ko
+#lib/modules/KVER-ipfire/kernel/net/l2tp/l2tp_eth.ko
+#lib/modules/KVER-ipfire/kernel/net/l2tp/l2tp_ip.ko
+#lib/modules/KVER-ipfire/kernel/net/l2tp/l2tp_netlink.ko
+#lib/modules/KVER-ipfire/kernel/net/l2tp/l2tp_ppp.ko
 #lib/modules/KVER-ipfire/kernel/net/llc
 #lib/modules/KVER-ipfire/kernel/net/llc/llc.ko
 #lib/modules/KVER-ipfire/kernel/net/mac80211
@@ -1733,6 +2087,7 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/net/netfilter/ipvs/ip_vs.ko
 #lib/modules/KVER-ipfire/kernel/net/netfilter/nf_conntrack.ko
 #lib/modules/KVER-ipfire/kernel/net/netfilter/nf_conntrack_amanda.ko
+#lib/modules/KVER-ipfire/kernel/net/netfilter/nf_conntrack_broadcast.ko
 #lib/modules/KVER-ipfire/kernel/net/netfilter/nf_conntrack_ftp.ko
 #lib/modules/KVER-ipfire/kernel/net/netfilter/nf_conntrack_h323.ko
 #lib/modules/KVER-ipfire/kernel/net/netfilter/nf_conntrack_irc.ko
@@ -1745,40 +2100,48 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/net/netfilter/nf_conntrack_proto_udplite.ko
 #lib/modules/KVER-ipfire/kernel/net/netfilter/nf_conntrack_sane.ko
 #lib/modules/KVER-ipfire/kernel/net/netfilter/nf_conntrack_sip.ko
+#lib/modules/KVER-ipfire/kernel/net/netfilter/nf_conntrack_snmp.ko
 #lib/modules/KVER-ipfire/kernel/net/netfilter/nf_conntrack_tftp.ko
 #lib/modules/KVER-ipfire/kernel/net/netfilter/nf_tproxy_core.ko
 #lib/modules/KVER-ipfire/kernel/net/netfilter/nfnetlink.ko
 #lib/modules/KVER-ipfire/kernel/net/netfilter/nfnetlink_log.ko
 #lib/modules/KVER-ipfire/kernel/net/netfilter/nfnetlink_queue.ko
 #lib/modules/KVER-ipfire/kernel/net/netfilter/x_tables.ko
+#lib/modules/KVER-ipfire/kernel/net/netfilter/xt_AUDIT.ko
+#lib/modules/KVER-ipfire/kernel/net/netfilter/xt_CHECKSUM.ko
 #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_CLASSIFY.ko
-#lib/modules/KVER-ipfire/kernel/net/netfilter/xt_CONNMARK.ko
+#lib/modules/KVER-ipfire/kernel/net/netfilter/xt_CT.ko
 #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_DSCP.ko
 #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_HL.ko
+#lib/modules/KVER-ipfire/kernel/net/netfilter/xt_IDLETIMER.ko
 #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_IMQ.ko
 #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_LED.ko
-#lib/modules/KVER-ipfire/kernel/net/netfilter/xt_MARK.ko
 #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_NFLOG.ko
 #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_NFQUEUE.ko
 #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_NOTRACK.ko
 #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_RATEEST.ko
 #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_TCPMSS.ko
 #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_TCPOPTSTRIP.ko
+#lib/modules/KVER-ipfire/kernel/net/netfilter/xt_TEE.ko
 #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_TPROXY.ko
 #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_TRACE.ko
+#lib/modules/KVER-ipfire/kernel/net/netfilter/xt_addrtype.ko
 #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_cluster.ko
 #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_comment.ko
 #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_connbytes.ko
 #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_connlimit.ko
 #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_connmark.ko
 #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_conntrack.ko
+#lib/modules/KVER-ipfire/kernel/net/netfilter/xt_cpu.ko
 #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_dccp.ko
+#lib/modules/KVER-ipfire/kernel/net/netfilter/xt_devgroup.ko
 #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_dscp.ko
 #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_esp.ko
 #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_hashlimit.ko
 #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_helper.ko
 #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_hl.ko
 #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_iprange.ko
+#lib/modules/KVER-ipfire/kernel/net/netfilter/xt_ipvs.ko
 #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_layer7.ko
 #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_length.ko
 #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_limit.ko
@@ -1803,24 +2166,21 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_tcpudp.ko
 #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_time.ko
 #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_u32.ko
-#lib/modules/KVER-ipfire/kernel/net/phonet
-#lib/modules/KVER-ipfire/kernel/net/phonet/phonet.ko
-#lib/modules/KVER-ipfire/kernel/net/phonet/pn_pep.ko
-#lib/modules/KVER-ipfire/kernel/net/rds
-#lib/modules/KVER-ipfire/kernel/net/rds/rds.ko
-#lib/modules/KVER-ipfire/kernel/net/rds/rds_tcp.ko
 #lib/modules/KVER-ipfire/kernel/net/rfkill
+#lib/modules/KVER-ipfire/kernel/net/rfkill/rfkill-regulator.ko
 #lib/modules/KVER-ipfire/kernel/net/rfkill/rfkill.ko
 #lib/modules/KVER-ipfire/kernel/net/rxrpc
 #lib/modules/KVER-ipfire/kernel/net/rxrpc/af-rxrpc.ko
 #lib/modules/KVER-ipfire/kernel/net/rxrpc/rxkad.ko
 #lib/modules/KVER-ipfire/kernel/net/sched
+#lib/modules/KVER-ipfire/kernel/net/sched/act_csum.ko
 #lib/modules/KVER-ipfire/kernel/net/sched/act_gact.ko
 #lib/modules/KVER-ipfire/kernel/net/sched/act_ipt.ko
 #lib/modules/KVER-ipfire/kernel/net/sched/act_mirred.ko
 #lib/modules/KVER-ipfire/kernel/net/sched/act_nat.ko
 #lib/modules/KVER-ipfire/kernel/net/sched/act_pedit.ko
 #lib/modules/KVER-ipfire/kernel/net/sched/act_police.ko
+#lib/modules/KVER-ipfire/kernel/net/sched/act_simple.ko
 #lib/modules/KVER-ipfire/kernel/net/sched/act_skbedit.ko
 #lib/modules/KVER-ipfire/kernel/net/sched/cls_basic.ko
 #lib/modules/KVER-ipfire/kernel/net/sched/cls_flow.ko
@@ -1837,16 +2197,20 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/net/sched/em_u32.ko
 #lib/modules/KVER-ipfire/kernel/net/sched/sch_atm.ko
 #lib/modules/KVER-ipfire/kernel/net/sched/sch_cbq.ko
+#lib/modules/KVER-ipfire/kernel/net/sched/sch_choke.ko
 #lib/modules/KVER-ipfire/kernel/net/sched/sch_drr.ko
 #lib/modules/KVER-ipfire/kernel/net/sched/sch_dsmark.ko
 #lib/modules/KVER-ipfire/kernel/net/sched/sch_gred.ko
 #lib/modules/KVER-ipfire/kernel/net/sched/sch_hfsc.ko
 #lib/modules/KVER-ipfire/kernel/net/sched/sch_htb.ko
 #lib/modules/KVER-ipfire/kernel/net/sched/sch_ingress.ko
+#lib/modules/KVER-ipfire/kernel/net/sched/sch_mqprio.ko
 #lib/modules/KVER-ipfire/kernel/net/sched/sch_multiq.ko
 #lib/modules/KVER-ipfire/kernel/net/sched/sch_netem.ko
 #lib/modules/KVER-ipfire/kernel/net/sched/sch_prio.ko
+#lib/modules/KVER-ipfire/kernel/net/sched/sch_qfq.ko
 #lib/modules/KVER-ipfire/kernel/net/sched/sch_red.ko
+#lib/modules/KVER-ipfire/kernel/net/sched/sch_sfb.ko
 #lib/modules/KVER-ipfire/kernel/net/sched/sch_sfq.ko
 #lib/modules/KVER-ipfire/kernel/net/sched/sch_tbf.ko
 #lib/modules/KVER-ipfire/kernel/net/sched/sch_teql.ko
@@ -1855,8 +2219,6 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/net/sunrpc/auth_gss/auth_rpcgss.ko
 #lib/modules/KVER-ipfire/kernel/net/sunrpc/auth_gss/rpcsec_gss_krb5.ko
 #lib/modules/KVER-ipfire/kernel/net/sunrpc/sunrpc.ko
-#lib/modules/KVER-ipfire/kernel/net/wimax
-#lib/modules/KVER-ipfire/kernel/net/wimax/wimax.ko
 #lib/modules/KVER-ipfire/kernel/net/wireless
 #lib/modules/KVER-ipfire/kernel/net/wireless/cfg80211.ko
 #lib/modules/KVER-ipfire/kernel/net/wireless/lib80211.ko
@@ -1867,6 +2229,7 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/net/xfrm/xfrm_ipcomp.ko
 #lib/modules/KVER-ipfire/kernel/net/xfrm/xfrm_user.ko
 #lib/modules/KVER-ipfire/kernel/sound
+#lib/modules/KVER-ipfire/kernel/sound/ac97_bus.ko
 #lib/modules/KVER-ipfire/kernel/sound/core
 #lib/modules/KVER-ipfire/kernel/sound/core/oss
 #lib/modules/KVER-ipfire/kernel/sound/core/oss/snd-mixer-oss.ko
@@ -1876,17 +2239,239 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/sound/core/seq/oss/snd-seq-oss.ko
 #lib/modules/KVER-ipfire/kernel/sound/core/seq/snd-seq-device.ko
 #lib/modules/KVER-ipfire/kernel/sound/core/seq/snd-seq-dummy.ko
+#lib/modules/KVER-ipfire/kernel/sound/core/seq/snd-seq-midi-emul.ko
 #lib/modules/KVER-ipfire/kernel/sound/core/seq/snd-seq-midi-event.ko
+#lib/modules/KVER-ipfire/kernel/sound/core/seq/snd-seq-midi.ko
+#lib/modules/KVER-ipfire/kernel/sound/core/seq/snd-seq-virmidi.ko
 #lib/modules/KVER-ipfire/kernel/sound/core/seq/snd-seq.ko
+#lib/modules/KVER-ipfire/kernel/sound/core/snd-hrtimer.ko
+#lib/modules/KVER-ipfire/kernel/sound/core/snd-hwdep.ko
 #lib/modules/KVER-ipfire/kernel/sound/core/snd-page-alloc.ko
 #lib/modules/KVER-ipfire/kernel/sound/core/snd-pcm.ko
+#lib/modules/KVER-ipfire/kernel/sound/core/snd-rawmidi.ko
 #lib/modules/KVER-ipfire/kernel/sound/core/snd-timer.ko
 #lib/modules/KVER-ipfire/kernel/sound/core/snd.ko
 #lib/modules/KVER-ipfire/kernel/sound/drivers
+#lib/modules/KVER-ipfire/kernel/sound/drivers/mpu401
+#lib/modules/KVER-ipfire/kernel/sound/drivers/mpu401/snd-mpu401-uart.ko
+#lib/modules/KVER-ipfire/kernel/sound/drivers/mpu401/snd-mpu401.ko
+#lib/modules/KVER-ipfire/kernel/sound/drivers/opl3
+#lib/modules/KVER-ipfire/kernel/sound/drivers/opl3/snd-opl3-lib.ko
+#lib/modules/KVER-ipfire/kernel/sound/drivers/opl3/snd-opl3-synth.ko
+#lib/modules/KVER-ipfire/kernel/sound/drivers/opl4
+#lib/modules/KVER-ipfire/kernel/sound/drivers/opl4/snd-opl4-lib.ko
+#lib/modules/KVER-ipfire/kernel/sound/drivers/opl4/snd-opl4-synth.ko
+#lib/modules/KVER-ipfire/kernel/sound/drivers/snd-aloop.ko
 #lib/modules/KVER-ipfire/kernel/sound/drivers/snd-dummy.ko
+#lib/modules/KVER-ipfire/kernel/sound/drivers/snd-mtpav.ko
+#lib/modules/KVER-ipfire/kernel/sound/drivers/snd-mts64.ko
+#lib/modules/KVER-ipfire/kernel/sound/drivers/snd-portman2x4.ko
+#lib/modules/KVER-ipfire/kernel/sound/drivers/snd-serial-u16550.ko
+#lib/modules/KVER-ipfire/kernel/sound/drivers/snd-virmidi.ko
+#lib/modules/KVER-ipfire/kernel/sound/drivers/vx
+#lib/modules/KVER-ipfire/kernel/sound/drivers/vx/snd-vx-lib.ko
+#lib/modules/KVER-ipfire/kernel/sound/firewire
+#lib/modules/KVER-ipfire/kernel/sound/firewire/snd-firewire-lib.ko
+#lib/modules/KVER-ipfire/kernel/sound/firewire/snd-firewire-speakers.ko
+#lib/modules/KVER-ipfire/kernel/sound/firewire/snd-isight.ko
+#lib/modules/KVER-ipfire/kernel/sound/i2c
+#lib/modules/KVER-ipfire/kernel/sound/i2c/other
+#lib/modules/KVER-ipfire/kernel/sound/i2c/other/snd-ak4113.ko
+#lib/modules/KVER-ipfire/kernel/sound/i2c/other/snd-ak4114.ko
+#lib/modules/KVER-ipfire/kernel/sound/i2c/other/snd-ak4117.ko
+#lib/modules/KVER-ipfire/kernel/sound/i2c/other/snd-ak4xxx-adda.ko
+#lib/modules/KVER-ipfire/kernel/sound/i2c/other/snd-pt2258.ko
+#lib/modules/KVER-ipfire/kernel/sound/i2c/other/snd-tea575x-tuner.ko
+#lib/modules/KVER-ipfire/kernel/sound/i2c/snd-cs8427.ko
+#lib/modules/KVER-ipfire/kernel/sound/i2c/snd-i2c.ko
+#lib/modules/KVER-ipfire/kernel/sound/i2c/snd-tea6330t.ko
+#lib/modules/KVER-ipfire/kernel/sound/isa
+#lib/modules/KVER-ipfire/kernel/sound/isa/ad1816a
+#lib/modules/KVER-ipfire/kernel/sound/isa/ad1816a/snd-ad1816a.ko
+#lib/modules/KVER-ipfire/kernel/sound/isa/ad1848
+#lib/modules/KVER-ipfire/kernel/sound/isa/ad1848/snd-ad1848.ko
+#lib/modules/KVER-ipfire/kernel/sound/isa/cs423x
+#lib/modules/KVER-ipfire/kernel/sound/isa/cs423x/snd-cs4231.ko
+#lib/modules/KVER-ipfire/kernel/sound/isa/cs423x/snd-cs4236.ko
+#lib/modules/KVER-ipfire/kernel/sound/isa/es1688
+#lib/modules/KVER-ipfire/kernel/sound/isa/es1688/snd-es1688-lib.ko
+#lib/modules/KVER-ipfire/kernel/sound/isa/es1688/snd-es1688.ko
+#lib/modules/KVER-ipfire/kernel/sound/isa/galaxy
+#lib/modules/KVER-ipfire/kernel/sound/isa/galaxy/snd-azt1605.ko
+#lib/modules/KVER-ipfire/kernel/sound/isa/galaxy/snd-azt2316.ko
+#lib/modules/KVER-ipfire/kernel/sound/isa/gus
+#lib/modules/KVER-ipfire/kernel/sound/isa/gus/snd-gus-lib.ko
+#lib/modules/KVER-ipfire/kernel/sound/isa/gus/snd-gusclassic.ko
+#lib/modules/KVER-ipfire/kernel/sound/isa/gus/snd-gusextreme.ko
+#lib/modules/KVER-ipfire/kernel/sound/isa/gus/snd-gusmax.ko
+#lib/modules/KVER-ipfire/kernel/sound/isa/gus/snd-interwave-stb.ko
+#lib/modules/KVER-ipfire/kernel/sound/isa/gus/snd-interwave.ko
+#lib/modules/KVER-ipfire/kernel/sound/isa/msnd
+#lib/modules/KVER-ipfire/kernel/sound/isa/msnd/snd-msnd-classic.ko
+#lib/modules/KVER-ipfire/kernel/sound/isa/msnd/snd-msnd-lib.ko
+#lib/modules/KVER-ipfire/kernel/sound/isa/msnd/snd-msnd-pinnacle.ko
+#lib/modules/KVER-ipfire/kernel/sound/isa/opti9xx
+#lib/modules/KVER-ipfire/kernel/sound/isa/opti9xx/snd-miro.ko
+#lib/modules/KVER-ipfire/kernel/sound/isa/opti9xx/snd-opti92x-ad1848.ko
+#lib/modules/KVER-ipfire/kernel/sound/isa/opti9xx/snd-opti92x-cs4231.ko
+#lib/modules/KVER-ipfire/kernel/sound/isa/opti9xx/snd-opti93x.ko
+#lib/modules/KVER-ipfire/kernel/sound/isa/sb
+#lib/modules/KVER-ipfire/kernel/sound/isa/sb/snd-emu8000-synth.ko
+#lib/modules/KVER-ipfire/kernel/sound/isa/sb/snd-jazz16.ko
+#lib/modules/KVER-ipfire/kernel/sound/isa/sb/snd-sb-common.ko
+#lib/modules/KVER-ipfire/kernel/sound/isa/sb/snd-sb16-csp.ko
+#lib/modules/KVER-ipfire/kernel/sound/isa/sb/snd-sb16-dsp.ko
+#lib/modules/KVER-ipfire/kernel/sound/isa/sb/snd-sb16.ko
+#lib/modules/KVER-ipfire/kernel/sound/isa/sb/snd-sb8-dsp.ko
+#lib/modules/KVER-ipfire/kernel/sound/isa/sb/snd-sb8.ko
+#lib/modules/KVER-ipfire/kernel/sound/isa/sb/snd-sbawe.ko
+#lib/modules/KVER-ipfire/kernel/sound/isa/snd-adlib.ko
+#lib/modules/KVER-ipfire/kernel/sound/isa/snd-als100.ko
+#lib/modules/KVER-ipfire/kernel/sound/isa/snd-azt2320.ko
+#lib/modules/KVER-ipfire/kernel/sound/isa/snd-cmi8330.ko
+#lib/modules/KVER-ipfire/kernel/sound/isa/snd-es18xx.ko
+#lib/modules/KVER-ipfire/kernel/sound/isa/snd-opl3sa2.ko
+#lib/modules/KVER-ipfire/kernel/sound/isa/snd-sc6000.ko
+#lib/modules/KVER-ipfire/kernel/sound/isa/snd-sscape.ko
+#lib/modules/KVER-ipfire/kernel/sound/isa/wavefront
+#lib/modules/KVER-ipfire/kernel/sound/isa/wavefront/snd-wavefront.ko
+#lib/modules/KVER-ipfire/kernel/sound/isa/wss
+#lib/modules/KVER-ipfire/kernel/sound/isa/wss/snd-wss-lib.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci
+#lib/modules/KVER-ipfire/kernel/sound/pci/ac97
+#lib/modules/KVER-ipfire/kernel/sound/pci/ac97/snd-ac97-codec.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/ali5451
+#lib/modules/KVER-ipfire/kernel/sound/pci/ali5451/snd-ali5451.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/asihpi
+#lib/modules/KVER-ipfire/kernel/sound/pci/asihpi/snd-asihpi.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/au88x0
+#lib/modules/KVER-ipfire/kernel/sound/pci/au88x0/snd-au8810.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/au88x0/snd-au8820.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/au88x0/snd-au8830.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/aw2
+#lib/modules/KVER-ipfire/kernel/sound/pci/aw2/snd-aw2.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/ca0106
+#lib/modules/KVER-ipfire/kernel/sound/pci/ca0106/snd-ca0106.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/cs46xx
+#lib/modules/KVER-ipfire/kernel/sound/pci/cs46xx/snd-cs46xx.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/cs5535audio
+#lib/modules/KVER-ipfire/kernel/sound/pci/cs5535audio/snd-cs5535audio.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/ctxfi
+#lib/modules/KVER-ipfire/kernel/sound/pci/ctxfi/snd-ctxfi.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/echoaudio
+#lib/modules/KVER-ipfire/kernel/sound/pci/echoaudio/snd-darla20.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/echoaudio/snd-darla24.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/echoaudio/snd-echo3g.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/echoaudio/snd-gina20.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/echoaudio/snd-gina24.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/echoaudio/snd-indigo.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/echoaudio/snd-indigodj.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/echoaudio/snd-indigodjx.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/echoaudio/snd-indigoio.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/echoaudio/snd-indigoiox.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/echoaudio/snd-layla20.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/echoaudio/snd-layla24.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/echoaudio/snd-mia.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/echoaudio/snd-mona.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/emu10k1
+#lib/modules/KVER-ipfire/kernel/sound/pci/emu10k1/snd-emu10k1-synth.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/emu10k1/snd-emu10k1.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/emu10k1/snd-emu10k1x.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/hda
+#lib/modules/KVER-ipfire/kernel/sound/pci/hda/snd-hda-codec-analog.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/hda/snd-hda-codec-ca0110.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/hda/snd-hda-codec-ca0132.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/hda/snd-hda-codec-cirrus.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/hda/snd-hda-codec-cmedia.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/hda/snd-hda-codec-conexant.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/hda/snd-hda-codec-hdmi.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/hda/snd-hda-codec-idt.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/hda/snd-hda-codec-realtek.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/hda/snd-hda-codec-si3054.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/hda/snd-hda-codec-via.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/hda/snd-hda-codec.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/hda/snd-hda-intel.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/ice1712
+#lib/modules/KVER-ipfire/kernel/sound/pci/ice1712/snd-ice1712.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/ice1712/snd-ice1724.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/ice1712/snd-ice17xx-ak4xxx.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/korg1212
+#lib/modules/KVER-ipfire/kernel/sound/pci/korg1212/snd-korg1212.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/lola
+#lib/modules/KVER-ipfire/kernel/sound/pci/lola/snd-lola.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/lx6464es
+#lib/modules/KVER-ipfire/kernel/sound/pci/lx6464es/snd-lx6464es.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/mixart
+#lib/modules/KVER-ipfire/kernel/sound/pci/mixart/snd-mixart.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/nm256
+#lib/modules/KVER-ipfire/kernel/sound/pci/nm256/snd-nm256.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/oxygen
+#lib/modules/KVER-ipfire/kernel/sound/pci/oxygen/snd-oxygen-lib.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/oxygen/snd-oxygen.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/oxygen/snd-virtuoso.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/pcxhr
+#lib/modules/KVER-ipfire/kernel/sound/pci/pcxhr/snd-pcxhr.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/riptide
+#lib/modules/KVER-ipfire/kernel/sound/pci/riptide/snd-riptide.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/rme9652
+#lib/modules/KVER-ipfire/kernel/sound/pci/rme9652/snd-hdsp.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/rme9652/snd-hdspm.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/rme9652/snd-rme9652.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/snd-ad1889.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/snd-als300.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/snd-als4000.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/snd-atiixp-modem.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/snd-atiixp.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/snd-azt3328.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/snd-bt87x.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/snd-cmipci.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/snd-cs4281.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/snd-cs5530.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/snd-ens1370.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/snd-ens1371.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/snd-es1938.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/snd-es1968.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/snd-fm801.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/snd-intel8x0.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/snd-intel8x0m.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/snd-maestro3.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/snd-rme32.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/snd-rme96.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/snd-sis7019.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/snd-sonicvibes.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/snd-via82xx-modem.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/snd-via82xx.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/trident
+#lib/modules/KVER-ipfire/kernel/sound/pci/trident/snd-trident.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/vx222
+#lib/modules/KVER-ipfire/kernel/sound/pci/vx222/snd-vx222.ko
+#lib/modules/KVER-ipfire/kernel/sound/pci/ymfpci
+#lib/modules/KVER-ipfire/kernel/sound/pci/ymfpci/snd-ymfpci.ko
+#lib/modules/KVER-ipfire/kernel/sound/pcmcia
+#lib/modules/KVER-ipfire/kernel/sound/pcmcia/pdaudiocf
+#lib/modules/KVER-ipfire/kernel/sound/pcmcia/pdaudiocf/snd-pdaudiocf.ko
+#lib/modules/KVER-ipfire/kernel/sound/pcmcia/vx
+#lib/modules/KVER-ipfire/kernel/sound/pcmcia/vx/snd-vxpocket.ko
 #lib/modules/KVER-ipfire/kernel/sound/soundcore.ko
+#lib/modules/KVER-ipfire/kernel/sound/synth
+#lib/modules/KVER-ipfire/kernel/sound/synth/emux
+#lib/modules/KVER-ipfire/kernel/sound/synth/emux/snd-emux-synth.ko
+#lib/modules/KVER-ipfire/kernel/sound/synth/snd-util-mem.ko
+#lib/modules/KVER-ipfire/kernel/sound/usb
+#lib/modules/KVER-ipfire/kernel/sound/usb/6fire
+#lib/modules/KVER-ipfire/kernel/sound/usb/6fire/snd-usb-6fire.ko
+#lib/modules/KVER-ipfire/kernel/sound/usb/caiaq
+#lib/modules/KVER-ipfire/kernel/sound/usb/caiaq/snd-usb-caiaq.ko
+#lib/modules/KVER-ipfire/kernel/sound/usb/misc
+#lib/modules/KVER-ipfire/kernel/sound/usb/misc/snd-ua101.ko
+#lib/modules/KVER-ipfire/kernel/sound/usb/snd-usb-audio.ko
+#lib/modules/KVER-ipfire/kernel/sound/usb/snd-usbmidi-lib.ko
+#lib/modules/KVER-ipfire/kernel/sound/usb/usx2y
+#lib/modules/KVER-ipfire/kernel/sound/usb/usx2y/snd-usb-us122l.ko
+#lib/modules/KVER-ipfire/kernel/sound/usb/usx2y/snd-usb-usx2y.ko
 #lib/modules/KVER-ipfire/modules.alias
 #lib/modules/KVER-ipfire/modules.alias.bin
+#lib/modules/KVER-ipfire/modules.builtin
 #lib/modules/KVER-ipfire/modules.ccwmap
 #lib/modules/KVER-ipfire/modules.dep
 #lib/modules/KVER-ipfire/modules.dep.bin
@@ -1902,3 +2487,4 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/modules.usbmap
 #lib/modules/KVER-ipfire/source
 sbin/gen_init_cpio
+boot/ipfirerd-KVER.img
diff --git a/config/rootfiles/common/i586/linux-headers b/config/rootfiles/common/i586/linux-headers
new file mode 100644 (file)
index 0000000..e518ab3
--- /dev/null
@@ -0,0 +1,704 @@
+#usr/include/asm
+#usr/include/asm-generic
+#usr/include/asm-generic/auxvec.h
+#usr/include/asm-generic/bitsperlong.h
+#usr/include/asm-generic/errno-base.h
+#usr/include/asm-generic/errno.h
+#usr/include/asm-generic/fcntl.h
+#usr/include/asm-generic/int-l64.h
+#usr/include/asm-generic/int-ll64.h
+#usr/include/asm-generic/ioctl.h
+#usr/include/asm-generic/ioctls.h
+#usr/include/asm-generic/ipcbuf.h
+#usr/include/asm-generic/mman-common.h
+#usr/include/asm-generic/mman.h
+#usr/include/asm-generic/msgbuf.h
+#usr/include/asm-generic/param.h
+#usr/include/asm-generic/poll.h
+#usr/include/asm-generic/posix_types.h
+#usr/include/asm-generic/resource.h
+#usr/include/asm-generic/sembuf.h
+#usr/include/asm-generic/setup.h
+#usr/include/asm-generic/shmbuf.h
+#usr/include/asm-generic/shmparam.h
+#usr/include/asm-generic/siginfo.h
+#usr/include/asm-generic/signal-defs.h
+#usr/include/asm-generic/signal.h
+#usr/include/asm-generic/socket.h
+#usr/include/asm-generic/sockios.h
+#usr/include/asm-generic/stat.h
+#usr/include/asm-generic/statfs.h
+#usr/include/asm-generic/swab.h
+#usr/include/asm-generic/termbits.h
+#usr/include/asm-generic/termios.h
+#usr/include/asm-generic/types.h
+#usr/include/asm-generic/ucontext.h
+#usr/include/asm-generic/unistd.h
+#usr/include/asm/a.out.h
+#usr/include/asm/auxvec.h
+#usr/include/asm/bitsperlong.h
+#usr/include/asm/boot.h
+#usr/include/asm/bootparam.h
+#usr/include/asm/byteorder.h
+#usr/include/asm/debugreg.h
+#usr/include/asm/e820.h
+#usr/include/asm/errno.h
+#usr/include/asm/fcntl.h
+#usr/include/asm/hw_breakpoint.h
+#usr/include/asm/hyperv.h
+#usr/include/asm/ioctl.h
+#usr/include/asm/ioctls.h
+#usr/include/asm/ipcbuf.h
+#usr/include/asm/ist.h
+#usr/include/asm/kvm.h
+#usr/include/asm/kvm_para.h
+#usr/include/asm/ldt.h
+#usr/include/asm/mce.h
+#usr/include/asm/mman.h
+#usr/include/asm/msgbuf.h
+#usr/include/asm/msr-index.h
+#usr/include/asm/msr.h
+#usr/include/asm/mtrr.h
+#usr/include/asm/param.h
+#usr/include/asm/poll.h
+#usr/include/asm/posix_types.h
+#usr/include/asm/posix_types_32.h
+#usr/include/asm/posix_types_64.h
+#usr/include/asm/prctl.h
+#usr/include/asm/processor-flags.h
+#usr/include/asm/ptrace-abi.h
+#usr/include/asm/ptrace.h
+#usr/include/asm/resource.h
+#usr/include/asm/sembuf.h
+#usr/include/asm/setup.h
+#usr/include/asm/shmbuf.h
+#usr/include/asm/sigcontext.h
+#usr/include/asm/sigcontext32.h
+#usr/include/asm/siginfo.h
+#usr/include/asm/signal.h
+#usr/include/asm/socket.h
+#usr/include/asm/sockios.h
+#usr/include/asm/stat.h
+#usr/include/asm/statfs.h
+#usr/include/asm/swab.h
+#usr/include/asm/termbits.h
+#usr/include/asm/termios.h
+#usr/include/asm/types.h
+#usr/include/asm/ucontext.h
+#usr/include/asm/unistd.h
+#usr/include/asm/unistd_32.h
+#usr/include/asm/unistd_64.h
+#usr/include/asm/vm86.h
+#usr/include/asm/vsyscall.h
+#usr/include/drm
+#usr/include/drm/drm.h
+#usr/include/drm/drm_mode.h
+#usr/include/drm/drm_sarea.h
+#usr/include/drm/i810_drm.h
+#usr/include/drm/i915_drm.h
+#usr/include/drm/mga_drm.h
+#usr/include/drm/nouveau_drm.h
+#usr/include/drm/r128_drm.h
+#usr/include/drm/radeon_drm.h
+#usr/include/drm/savage_drm.h
+#usr/include/drm/sis_drm.h
+#usr/include/drm/via_drm.h
+#usr/include/drm/vmwgfx_drm.h
+#usr/include/linux
+#usr/include/linux/a.out.h
+#usr/include/linux/acct.h
+#usr/include/linux/adb.h
+#usr/include/linux/adfs_fs.h
+#usr/include/linux/affs_hardblocks.h
+#usr/include/linux/agpgart.h
+#usr/include/linux/aio_abi.h
+#usr/include/linux/apm_bios.h
+#usr/include/linux/arcfb.h
+#usr/include/linux/atalk.h
+#usr/include/linux/atm.h
+#usr/include/linux/atm_eni.h
+#usr/include/linux/atm_he.h
+#usr/include/linux/atm_idt77105.h
+#usr/include/linux/atm_nicstar.h
+#usr/include/linux/atm_tcp.h
+#usr/include/linux/atm_zatm.h
+#usr/include/linux/atmapi.h
+#usr/include/linux/atmarp.h
+#usr/include/linux/atmbr2684.h
+#usr/include/linux/atmclip.h
+#usr/include/linux/atmdev.h
+#usr/include/linux/atmioc.h
+#usr/include/linux/atmlec.h
+#usr/include/linux/atmmpc.h
+#usr/include/linux/atmppp.h
+#usr/include/linux/atmsap.h
+#usr/include/linux/atmsvc.h
+#usr/include/linux/audit.h
+#usr/include/linux/auto_fs.h
+#usr/include/linux/auto_fs4.h
+#usr/include/linux/auxvec.h
+#usr/include/linux/ax25.h
+#usr/include/linux/b1lli.h
+#usr/include/linux/baycom.h
+#usr/include/linux/bfs_fs.h
+#usr/include/linux/binfmts.h
+#usr/include/linux/blk_types.h
+#usr/include/linux/blkpg.h
+#usr/include/linux/blktrace_api.h
+#usr/include/linux/bpqether.h
+#usr/include/linux/bsg.h
+#usr/include/linux/byteorder
+#usr/include/linux/byteorder/big_endian.h
+#usr/include/linux/byteorder/little_endian.h
+#usr/include/linux/caif
+#usr/include/linux/caif/caif_socket.h
+#usr/include/linux/caif/if_caif.h
+#usr/include/linux/can
+#usr/include/linux/can.h
+#usr/include/linux/can/bcm.h
+#usr/include/linux/can/error.h
+#usr/include/linux/can/gw.h
+#usr/include/linux/can/netlink.h
+#usr/include/linux/can/raw.h
+#usr/include/linux/capability.h
+#usr/include/linux/capi.h
+#usr/include/linux/cciss_defs.h
+#usr/include/linux/cciss_ioctl.h
+#usr/include/linux/cdk.h
+#usr/include/linux/cdrom.h
+#usr/include/linux/cgroupstats.h
+#usr/include/linux/chio.h
+#usr/include/linux/cm4000_cs.h
+#usr/include/linux/cn_proc.h
+#usr/include/linux/coda.h
+#usr/include/linux/coda_psdev.h
+#usr/include/linux/coff.h
+#usr/include/linux/comstats.h
+#usr/include/linux/connector.h
+#usr/include/linux/const.h
+#usr/include/linux/cramfs_fs.h
+#usr/include/linux/cuda.h
+#usr/include/linux/cyclades.h
+#usr/include/linux/cycx_cfm.h
+#usr/include/linux/dcbnl.h
+#usr/include/linux/dccp.h
+#usr/include/linux/dlm.h
+#usr/include/linux/dlm_device.h
+#usr/include/linux/dlm_netlink.h
+#usr/include/linux/dlm_plock.h
+#usr/include/linux/dlmconstants.h
+#usr/include/linux/dm-ioctl.h
+#usr/include/linux/dm-log-userspace.h
+#usr/include/linux/dn.h
+#usr/include/linux/dqblk_xfs.h
+#usr/include/linux/dvb
+#usr/include/linux/dvb/audio.h
+#usr/include/linux/dvb/ca.h
+#usr/include/linux/dvb/dmx.h
+#usr/include/linux/dvb/frontend.h
+#usr/include/linux/dvb/net.h
+#usr/include/linux/dvb/osd.h
+#usr/include/linux/dvb/version.h
+#usr/include/linux/dvb/video.h
+#usr/include/linux/edd.h
+#usr/include/linux/efs_fs_sb.h
+#usr/include/linux/elf-em.h
+#usr/include/linux/elf-fdpic.h
+#usr/include/linux/elf.h
+#usr/include/linux/elfcore.h
+#usr/include/linux/errno.h
+#usr/include/linux/errqueue.h
+#usr/include/linux/ethtool.h
+#usr/include/linux/eventpoll.h
+#usr/include/linux/ext2_fs.h
+#usr/include/linux/fadvise.h
+#usr/include/linux/falloc.h
+#usr/include/linux/fanotify.h
+#usr/include/linux/fb.h
+#usr/include/linux/fcntl.h
+#usr/include/linux/fd.h
+#usr/include/linux/fdreg.h
+#usr/include/linux/fib_rules.h
+#usr/include/linux/fiemap.h
+#usr/include/linux/filter.h
+#usr/include/linux/firewire-cdev.h
+#usr/include/linux/firewire-constants.h
+#usr/include/linux/flat.h
+#usr/include/linux/fs.h
+#usr/include/linux/fsl_hypervisor.h
+#usr/include/linux/fuse.h
+#usr/include/linux/futex.h
+#usr/include/linux/gameport.h
+#usr/include/linux/gen_stats.h
+#usr/include/linux/generic_serial.h
+#usr/include/linux/genetlink.h
+#usr/include/linux/gfs2_ondisk.h
+#usr/include/linux/gigaset_dev.h
+#usr/include/linux/hdlc
+#usr/include/linux/hdlc.h
+#usr/include/linux/hdlc/ioctl.h
+#usr/include/linux/hdlcdrv.h
+#usr/include/linux/hdreg.h
+#usr/include/linux/hid.h
+#usr/include/linux/hiddev.h
+#usr/include/linux/hidraw.h
+#usr/include/linux/hpet.h
+#usr/include/linux/hysdn_if.h
+#usr/include/linux/i2c-dev.h
+#usr/include/linux/i2c.h
+#usr/include/linux/i2o-dev.h
+#usr/include/linux/i8k.h
+#usr/include/linux/icmp.h
+#usr/include/linux/icmpv6.h
+#usr/include/linux/if.h
+#usr/include/linux/if_addr.h
+#usr/include/linux/if_addrlabel.h
+#usr/include/linux/if_alg.h
+#usr/include/linux/if_arcnet.h
+#usr/include/linux/if_arp.h
+#usr/include/linux/if_bonding.h
+#usr/include/linux/if_bridge.h
+#usr/include/linux/if_cablemodem.h
+#usr/include/linux/if_ec.h
+#usr/include/linux/if_eql.h
+#usr/include/linux/if_ether.h
+#usr/include/linux/if_fc.h
+#usr/include/linux/if_fddi.h
+#usr/include/linux/if_frad.h
+#usr/include/linux/if_hippi.h
+#usr/include/linux/if_infiniband.h
+#usr/include/linux/if_link.h
+#usr/include/linux/if_ltalk.h
+#usr/include/linux/if_packet.h
+#usr/include/linux/if_phonet.h
+#usr/include/linux/if_plip.h
+#usr/include/linux/if_ppp.h
+#usr/include/linux/if_pppol2tp.h
+#usr/include/linux/if_pppox.h
+#usr/include/linux/if_slip.h
+#usr/include/linux/if_strip.h
+#usr/include/linux/if_tr.h
+#usr/include/linux/if_tun.h
+#usr/include/linux/if_tunnel.h
+#usr/include/linux/if_vlan.h
+#usr/include/linux/if_x25.h
+#usr/include/linux/igmp.h
+#usr/include/linux/in.h
+#usr/include/linux/in6.h
+#usr/include/linux/in_route.h
+#usr/include/linux/inet_diag.h
+#usr/include/linux/inotify.h
+#usr/include/linux/input.h
+#usr/include/linux/ioctl.h
+#usr/include/linux/ip.h
+#usr/include/linux/ip6_tunnel.h
+#usr/include/linux/ip_vs.h
+#usr/include/linux/ipc.h
+#usr/include/linux/ipmi.h
+#usr/include/linux/ipmi_msgdefs.h
+#usr/include/linux/ipsec.h
+#usr/include/linux/ipv6.h
+#usr/include/linux/ipv6_route.h
+#usr/include/linux/ipx.h
+#usr/include/linux/irda.h
+#usr/include/linux/irqnr.h
+#usr/include/linux/isdn
+#usr/include/linux/isdn.h
+#usr/include/linux/isdn/capicmd.h
+#usr/include/linux/isdn_divertif.h
+#usr/include/linux/isdn_ppp.h
+#usr/include/linux/isdnif.h
+#usr/include/linux/iso_fs.h
+#usr/include/linux/ivtv.h
+#usr/include/linux/ivtvfb.h
+#usr/include/linux/ixjuser.h
+#usr/include/linux/jffs2.h
+#usr/include/linux/joystick.h
+#usr/include/linux/kd.h
+#usr/include/linux/kdev_t.h
+#usr/include/linux/kernel-page-flags.h
+#usr/include/linux/kernel.h
+#usr/include/linux/kernelcapi.h
+#usr/include/linux/keyboard.h
+#usr/include/linux/keyctl.h
+#usr/include/linux/kvm.h
+#usr/include/linux/kvm_para.h
+#usr/include/linux/l2tp.h
+#usr/include/linux/limits.h
+#usr/include/linux/llc.h
+#usr/include/linux/loop.h
+#usr/include/linux/lp.h
+#usr/include/linux/magic.h
+#usr/include/linux/major.h
+#usr/include/linux/map_to_7segment.h
+#usr/include/linux/matroxfb.h
+#usr/include/linux/media.h
+#usr/include/linux/mempolicy.h
+#usr/include/linux/meye.h
+#usr/include/linux/mii.h
+#usr/include/linux/minix_fs.h
+#usr/include/linux/mman.h
+#usr/include/linux/mmc
+#usr/include/linux/mmc/ioctl.h
+#usr/include/linux/mmtimer.h
+#usr/include/linux/mqueue.h
+#usr/include/linux/mroute.h
+#usr/include/linux/mroute6.h
+#usr/include/linux/msdos_fs.h
+#usr/include/linux/msg.h
+#usr/include/linux/mtio.h
+#usr/include/linux/n_r3964.h
+#usr/include/linux/nbd.h
+#usr/include/linux/ncp.h
+#usr/include/linux/ncp_fs.h
+#usr/include/linux/ncp_mount.h
+#usr/include/linux/ncp_no.h
+#usr/include/linux/neighbour.h
+#usr/include/linux/net.h
+#usr/include/linux/net_dropmon.h
+#usr/include/linux/net_tstamp.h
+#usr/include/linux/netdevice.h
+#usr/include/linux/netfilter
+#usr/include/linux/netfilter.h
+#usr/include/linux/netfilter/ipset
+#usr/include/linux/netfilter/ipset/ip_set.h
+#usr/include/linux/netfilter/ipset/ip_set_bitmap.h
+#usr/include/linux/netfilter/ipset/ip_set_hash.h
+#usr/include/linux/netfilter/ipset/ip_set_list.h
+#usr/include/linux/netfilter/nf_conntrack_common.h
+#usr/include/linux/netfilter/nf_conntrack_ftp.h
+#usr/include/linux/netfilter/nf_conntrack_sctp.h
+#usr/include/linux/netfilter/nf_conntrack_tcp.h
+#usr/include/linux/netfilter/nf_conntrack_tuple_common.h
+#usr/include/linux/netfilter/nfnetlink.h
+#usr/include/linux/netfilter/nfnetlink_compat.h
+#usr/include/linux/netfilter/nfnetlink_conntrack.h
+#usr/include/linux/netfilter/nfnetlink_log.h
+#usr/include/linux/netfilter/nfnetlink_queue.h
+#usr/include/linux/netfilter/x_tables.h
+#usr/include/linux/netfilter/xt_AUDIT.h
+#usr/include/linux/netfilter/xt_CHECKSUM.h
+#usr/include/linux/netfilter/xt_CLASSIFY.h
+#usr/include/linux/netfilter/xt_CONNMARK.h
+#usr/include/linux/netfilter/xt_CONNSECMARK.h
+#usr/include/linux/netfilter/xt_CT.h
+#usr/include/linux/netfilter/xt_DSCP.h
+#usr/include/linux/netfilter/xt_IDLETIMER.h
+#usr/include/linux/netfilter/xt_LED.h
+#usr/include/linux/netfilter/xt_MARK.h
+#usr/include/linux/netfilter/xt_NFLOG.h
+#usr/include/linux/netfilter/xt_NFQUEUE.h
+#usr/include/linux/netfilter/xt_RATEEST.h
+#usr/include/linux/netfilter/xt_SECMARK.h
+#usr/include/linux/netfilter/xt_TCPMSS.h
+#usr/include/linux/netfilter/xt_TCPOPTSTRIP.h
+#usr/include/linux/netfilter/xt_TEE.h
+#usr/include/linux/netfilter/xt_TPROXY.h
+#usr/include/linux/netfilter/xt_addrtype.h
+#usr/include/linux/netfilter/xt_cluster.h
+#usr/include/linux/netfilter/xt_comment.h
+#usr/include/linux/netfilter/xt_connbytes.h
+#usr/include/linux/netfilter/xt_connlimit.h
+#usr/include/linux/netfilter/xt_connmark.h
+#usr/include/linux/netfilter/xt_conntrack.h
+#usr/include/linux/netfilter/xt_cpu.h
+#usr/include/linux/netfilter/xt_dccp.h
+#usr/include/linux/netfilter/xt_devgroup.h
+#usr/include/linux/netfilter/xt_dscp.h
+#usr/include/linux/netfilter/xt_esp.h
+#usr/include/linux/netfilter/xt_hashlimit.h
+#usr/include/linux/netfilter/xt_helper.h
+#usr/include/linux/netfilter/xt_iprange.h
+#usr/include/linux/netfilter/xt_ipvs.h
+#usr/include/linux/netfilter/xt_length.h
+#usr/include/linux/netfilter/xt_limit.h
+#usr/include/linux/netfilter/xt_mac.h
+#usr/include/linux/netfilter/xt_mark.h
+#usr/include/linux/netfilter/xt_multiport.h
+#usr/include/linux/netfilter/xt_osf.h
+#usr/include/linux/netfilter/xt_owner.h
+#usr/include/linux/netfilter/xt_physdev.h
+#usr/include/linux/netfilter/xt_pkttype.h
+#usr/include/linux/netfilter/xt_policy.h
+#usr/include/linux/netfilter/xt_quota.h
+#usr/include/linux/netfilter/xt_rateest.h
+#usr/include/linux/netfilter/xt_realm.h
+#usr/include/linux/netfilter/xt_recent.h
+#usr/include/linux/netfilter/xt_sctp.h
+#usr/include/linux/netfilter/xt_set.h
+#usr/include/linux/netfilter/xt_socket.h
+#usr/include/linux/netfilter/xt_state.h
+#usr/include/linux/netfilter/xt_statistic.h
+#usr/include/linux/netfilter/xt_string.h
+#usr/include/linux/netfilter/xt_tcpmss.h
+#usr/include/linux/netfilter/xt_tcpudp.h
+#usr/include/linux/netfilter/xt_time.h
+#usr/include/linux/netfilter/xt_u32.h
+#usr/include/linux/netfilter_arp
+#usr/include/linux/netfilter_arp.h
+#usr/include/linux/netfilter_arp/arp_tables.h
+#usr/include/linux/netfilter_arp/arpt_mangle.h
+#usr/include/linux/netfilter_bridge
+#usr/include/linux/netfilter_bridge.h
+#usr/include/linux/netfilter_bridge/ebt_802_3.h
+#usr/include/linux/netfilter_bridge/ebt_among.h
+#usr/include/linux/netfilter_bridge/ebt_arp.h
+#usr/include/linux/netfilter_bridge/ebt_arpreply.h
+#usr/include/linux/netfilter_bridge/ebt_ip.h
+#usr/include/linux/netfilter_bridge/ebt_ip6.h
+#usr/include/linux/netfilter_bridge/ebt_limit.h
+#usr/include/linux/netfilter_bridge/ebt_log.h
+#usr/include/linux/netfilter_bridge/ebt_mark_m.h
+#usr/include/linux/netfilter_bridge/ebt_mark_t.h
+#usr/include/linux/netfilter_bridge/ebt_nat.h
+#usr/include/linux/netfilter_bridge/ebt_nflog.h
+#usr/include/linux/netfilter_bridge/ebt_pkttype.h
+#usr/include/linux/netfilter_bridge/ebt_redirect.h
+#usr/include/linux/netfilter_bridge/ebt_stp.h
+#usr/include/linux/netfilter_bridge/ebt_ulog.h
+#usr/include/linux/netfilter_bridge/ebt_vlan.h
+#usr/include/linux/netfilter_bridge/ebtables.h
+#usr/include/linux/netfilter_decnet.h
+#usr/include/linux/netfilter_ipv4
+#usr/include/linux/netfilter_ipv4.h
+#usr/include/linux/netfilter_ipv4/ip_queue.h
+#usr/include/linux/netfilter_ipv4/ip_tables.h
+#usr/include/linux/netfilter_ipv4/ipt_CLUSTERIP.h
+#usr/include/linux/netfilter_ipv4/ipt_ECN.h
+#usr/include/linux/netfilter_ipv4/ipt_LOG.h
+#usr/include/linux/netfilter_ipv4/ipt_REJECT.h
+#usr/include/linux/netfilter_ipv4/ipt_SAME.h
+#usr/include/linux/netfilter_ipv4/ipt_TTL.h
+#usr/include/linux/netfilter_ipv4/ipt_ULOG.h
+#usr/include/linux/netfilter_ipv4/ipt_addrtype.h
+#usr/include/linux/netfilter_ipv4/ipt_ah.h
+#usr/include/linux/netfilter_ipv4/ipt_ecn.h
+#usr/include/linux/netfilter_ipv4/ipt_realm.h
+#usr/include/linux/netfilter_ipv4/ipt_ttl.h
+#usr/include/linux/netfilter_ipv4/nf_nat.h
+#usr/include/linux/netfilter_ipv6
+#usr/include/linux/netfilter_ipv6.h
+#usr/include/linux/netfilter_ipv6/ip6_tables.h
+#usr/include/linux/netfilter_ipv6/ip6t_HL.h
+#usr/include/linux/netfilter_ipv6/ip6t_LOG.h
+#usr/include/linux/netfilter_ipv6/ip6t_REJECT.h
+#usr/include/linux/netfilter_ipv6/ip6t_ah.h
+#usr/include/linux/netfilter_ipv6/ip6t_frag.h
+#usr/include/linux/netfilter_ipv6/ip6t_hl.h
+#usr/include/linux/netfilter_ipv6/ip6t_ipv6header.h
+#usr/include/linux/netfilter_ipv6/ip6t_mh.h
+#usr/include/linux/netfilter_ipv6/ip6t_opts.h
+#usr/include/linux/netfilter_ipv6/ip6t_rt.h
+#usr/include/linux/netlink.h
+#usr/include/linux/netrom.h
+#usr/include/linux/nfc.h
+#usr/include/linux/nfs.h
+#usr/include/linux/nfs2.h
+#usr/include/linux/nfs3.h
+#usr/include/linux/nfs4.h
+#usr/include/linux/nfs4_mount.h
+#usr/include/linux/nfs_fs.h
+#usr/include/linux/nfs_idmap.h
+#usr/include/linux/nfs_mount.h
+#usr/include/linux/nfsacl.h
+#usr/include/linux/nfsd
+#usr/include/linux/nfsd/debug.h
+#usr/include/linux/nfsd/export.h
+#usr/include/linux/nfsd/nfsfh.h
+#usr/include/linux/nfsd/stats.h
+#usr/include/linux/nl80211.h
+#usr/include/linux/nubus.h
+#usr/include/linux/nvram.h
+#usr/include/linux/omap3isp.h
+#usr/include/linux/omapfb.h
+#usr/include/linux/oom.h
+#usr/include/linux/param.h
+#usr/include/linux/parport.h
+#usr/include/linux/patchkey.h
+#usr/include/linux/pci.h
+#usr/include/linux/pci_regs.h
+#usr/include/linux/perf_event.h
+#usr/include/linux/personality.h
+#usr/include/linux/pfkeyv2.h
+#usr/include/linux/pg.h
+#usr/include/linux/phantom.h
+#usr/include/linux/phonet.h
+#usr/include/linux/pkt_cls.h
+#usr/include/linux/pkt_sched.h
+#usr/include/linux/pktcdvd.h
+#usr/include/linux/pmu.h
+#usr/include/linux/poll.h
+#usr/include/linux/posix_types.h
+#usr/include/linux/ppdev.h
+#usr/include/linux/ppp-comp.h
+#usr/include/linux/ppp_defs.h
+#usr/include/linux/pps.h
+#usr/include/linux/prctl.h
+#usr/include/linux/ptp_clock.h
+#usr/include/linux/ptrace.h
+#usr/include/linux/qnx4_fs.h
+#usr/include/linux/qnxtypes.h
+#usr/include/linux/quota.h
+#usr/include/linux/radeonfb.h
+#usr/include/linux/raid
+#usr/include/linux/raid/md_p.h
+#usr/include/linux/raid/md_u.h
+#usr/include/linux/random.h
+#usr/include/linux/raw.h
+#usr/include/linux/rds.h
+#usr/include/linux/reboot.h
+#usr/include/linux/reiserfs_fs.h
+#usr/include/linux/reiserfs_xattr.h
+#usr/include/linux/resource.h
+#usr/include/linux/rfkill.h
+#usr/include/linux/romfs_fs.h
+#usr/include/linux/rose.h
+#usr/include/linux/route.h
+#usr/include/linux/rtc.h
+#usr/include/linux/rtnetlink.h
+#usr/include/linux/scc.h
+#usr/include/linux/sched.h
+#usr/include/linux/screen_info.h
+#usr/include/linux/sdla.h
+#usr/include/linux/securebits.h
+#usr/include/linux/selinux_netlink.h
+#usr/include/linux/sem.h
+#usr/include/linux/serial.h
+#usr/include/linux/serial_core.h
+#usr/include/linux/serial_reg.h
+#usr/include/linux/serio.h
+#usr/include/linux/shm.h
+#usr/include/linux/signal.h
+#usr/include/linux/signalfd.h
+#usr/include/linux/snmp.h
+#usr/include/linux/socket.h
+#usr/include/linux/sockios.h
+#usr/include/linux/som.h
+#usr/include/linux/sonet.h
+#usr/include/linux/sonypi.h
+#usr/include/linux/sound.h
+#usr/include/linux/soundcard.h
+#usr/include/linux/spi
+#usr/include/linux/spi/spidev.h
+#usr/include/linux/stat.h
+#usr/include/linux/stddef.h
+#usr/include/linux/string.h
+#usr/include/linux/sunrpc
+#usr/include/linux/sunrpc/debug.h
+#usr/include/linux/suspend_ioctls.h
+#usr/include/linux/swab.h
+#usr/include/linux/synclink.h
+#usr/include/linux/sysctl.h
+#usr/include/linux/taskstats.h
+#usr/include/linux/tc_act
+#usr/include/linux/tc_act/tc_csum.h
+#usr/include/linux/tc_act/tc_gact.h
+#usr/include/linux/tc_act/tc_ipt.h
+#usr/include/linux/tc_act/tc_mirred.h
+#usr/include/linux/tc_act/tc_nat.h
+#usr/include/linux/tc_act/tc_pedit.h
+#usr/include/linux/tc_act/tc_skbedit.h
+#usr/include/linux/tc_ematch
+#usr/include/linux/tc_ematch/tc_em_cmp.h
+#usr/include/linux/tc_ematch/tc_em_meta.h
+#usr/include/linux/tc_ematch/tc_em_nbyte.h
+#usr/include/linux/tc_ematch/tc_em_text.h
+#usr/include/linux/tcp.h
+#usr/include/linux/telephony.h
+#usr/include/linux/termios.h
+#usr/include/linux/time.h
+#usr/include/linux/times.h
+#usr/include/linux/timex.h
+#usr/include/linux/tiocl.h
+#usr/include/linux/tipc.h
+#usr/include/linux/tipc_config.h
+#usr/include/linux/toshiba.h
+#usr/include/linux/tty.h
+#usr/include/linux/types.h
+#usr/include/linux/udf_fs_i.h
+#usr/include/linux/udp.h
+#usr/include/linux/uinput.h
+#usr/include/linux/uio.h
+#usr/include/linux/ultrasound.h
+#usr/include/linux/un.h
+#usr/include/linux/unistd.h
+#usr/include/linux/usb
+#usr/include/linux/usb/audio.h
+#usr/include/linux/usb/cdc.h
+#usr/include/linux/usb/ch11.h
+#usr/include/linux/usb/ch9.h
+#usr/include/linux/usb/functionfs.h
+#usr/include/linux/usb/g_printer.h
+#usr/include/linux/usb/gadgetfs.h
+#usr/include/linux/usb/midi.h
+#usr/include/linux/usb/tmc.h
+#usr/include/linux/usb/video.h
+#usr/include/linux/usbdevice_fs.h
+#usr/include/linux/utime.h
+#usr/include/linux/utsname.h
+#usr/include/linux/uvcvideo.h
+#usr/include/linux/v4l2-mediabus.h
+#usr/include/linux/v4l2-subdev.h
+#usr/include/linux/version.h
+#usr/include/linux/veth.h
+#usr/include/linux/vhost.h
+#usr/include/linux/videodev2.h
+#usr/include/linux/virtio_9p.h
+#usr/include/linux/virtio_balloon.h
+#usr/include/linux/virtio_blk.h
+#usr/include/linux/virtio_config.h
+#usr/include/linux/virtio_console.h
+#usr/include/linux/virtio_ids.h
+#usr/include/linux/virtio_net.h
+#usr/include/linux/virtio_pci.h
+#usr/include/linux/virtio_ring.h
+#usr/include/linux/virtio_rng.h
+#usr/include/linux/vt.h
+#usr/include/linux/wait.h
+#usr/include/linux/wanrouter.h
+#usr/include/linux/watchdog.h
+#usr/include/linux/wimax
+#usr/include/linux/wimax.h
+#usr/include/linux/wimax/i2400m.h
+#usr/include/linux/wireless.h
+#usr/include/linux/x25.h
+#usr/include/linux/xattr.h
+#usr/include/linux/xfrm.h
+#usr/include/mtd
+#usr/include/mtd/inftl-user.h
+#usr/include/mtd/mtd-abi.h
+#usr/include/mtd/mtd-user.h
+#usr/include/mtd/nftl-user.h
+#usr/include/mtd/ubi-user.h
+#usr/include/rdma
+#usr/include/rdma/ib_user_cm.h
+#usr/include/rdma/ib_user_mad.h
+#usr/include/rdma/ib_user_sa.h
+#usr/include/rdma/ib_user_verbs.h
+#usr/include/rdma/rdma_netlink.h
+#usr/include/rdma/rdma_user_cm.h
+#usr/include/scsi
+#usr/include/scsi/fc
+#usr/include/scsi/fc/fc_els.h
+#usr/include/scsi/fc/fc_fs.h
+#usr/include/scsi/fc/fc_gs.h
+#usr/include/scsi/fc/fc_ns.h
+#usr/include/scsi/scsi_bsg_fc.h
+#usr/include/scsi/scsi_netlink.h
+#usr/include/scsi/scsi_netlink_fc.h
+#usr/include/sound
+#usr/include/sound/asequencer.h
+#usr/include/sound/asound.h
+#usr/include/sound/asound_fm.h
+#usr/include/sound/emu10k1.h
+#usr/include/sound/hdsp.h
+#usr/include/sound/hdspm.h
+#usr/include/sound/sb16_csp.h
+#usr/include/sound/sfnt_info.h
+#usr/include/video
+#usr/include/video/edid.h
+#usr/include/video/sisfb.h
+#usr/include/video/uvesafb.h
+#usr/include/xen
+#usr/include/xen/evtchn.h
+#usr/include/xen/privcmd.h
diff --git a/config/rootfiles/common/i586/madwifi b/config/rootfiles/common/i586/madwifi
deleted file mode 100644 (file)
index e328252..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-#etc/madwifi.conf
-etc/modprobe.d/madwifi
-usr/bin/80211debug
-usr/bin/80211stats
-usr/bin/ath_info
-usr/bin/athchans
-usr/bin/athctrl
-usr/bin/athdebug
-usr/bin/athkey
-usr/bin/athstats
-usr/bin/madwifi-unload
-usr/bin/wlanconfig
-usr/bin/wpakey
-#usr/man/man8
-#usr/man/man8/80211debug.8
-#usr/man/man8/80211stats.8
-#usr/man/man8/athchans.8
-#usr/man/man8/athctrl.8
-#usr/man/man8/athdebug.8
-#usr/man/man8/athkey.8
-#usr/man/man8/athstats.8
-#usr/man/man8/wlanconfig.8
diff --git a/config/rootfiles/common/i586/strongswan-padlock b/config/rootfiles/common/i586/strongswan-padlock
new file mode 100644 (file)
index 0000000..02aa457
--- /dev/null
@@ -0,0 +1 @@
+usr/lib/ipsec/plugins/libstrongswan-padlock.so
index 8f179d7f540cb59acf54d3ef3d7e718278077efb..bb4c05b486e8bf168d9b216e1631421cf5a6c1ad 100644 (file)
@@ -1,11 +1,14 @@
 #etc/iproute2
 etc/iproute2/ematch_map
+etc/iproute2/group
 etc/iproute2/rt_dsfield
 etc/iproute2/rt_protos
 etc/iproute2/rt_realms
 etc/iproute2/rt_scopes
 etc/iproute2/rt_tables
+sbin/bridge
 sbin/ctstat
+sbin/genl
 sbin/ifcfg
 sbin/ifstat
 sbin/ip
@@ -24,7 +27,6 @@ sbin/tc
 #usr/lib/tc/normal.dist
 #usr/lib/tc/pareto.dist
 #usr/lib/tc/paretonormal.dist
-#usr/lib/tc/q_netem.so
 usr/sbin/arpd
 #usr/share/doc/iproute2
 #usr/share/doc/iproute2/SNAPSHOT.tex
@@ -50,6 +52,7 @@ usr/sbin/arpd
 #usr/share/doc/iproute2/examples/diffserv/ef-prio
 #usr/share/doc/iproute2/examples/diffserv/efcbq
 #usr/share/doc/iproute2/examples/diffserv/regression-testing
+#usr/share/doc/iproute2/examples/gaiconf
 #usr/share/doc/iproute2/ip-cref.tex
 #usr/share/doc/iproute2/ip-tunnels.tex
 #usr/share/doc/iproute2/nstat.sgml
@@ -57,16 +60,48 @@ usr/sbin/arpd
 #usr/share/doc/iproute2/rtstat.sgml
 #usr/share/doc/iproute2/ss.sgml
 #usr/share/man/man3/libnetlink.3
+#usr/share/man/man8/arpd.8
+#usr/share/man/man8/bridge.8
+#usr/share/man/man8/ctstat.8
+#usr/share/man/man8/ip-address.8
+#usr/share/man/man8/ip-addrlabel.8
+#usr/share/man/man8/ip-link.8
+#usr/share/man/man8/ip-maddress.8
+#usr/share/man/man8/ip-monitor.8
+#usr/share/man/man8/ip-mroute.8
+#usr/share/man/man8/ip-neighbour.8
+#usr/share/man/man8/ip-netns.8
+#usr/share/man/man8/ip-ntable.8
+#usr/share/man/man8/ip-route.8
+#usr/share/man/man8/ip-rule.8
+#usr/share/man/man8/ip-tunnel.8
+#usr/share/man/man8/ip-xfrm.8
 #usr/share/man/man8/ip.8
+#usr/share/man/man8/lnstat.8
+#usr/share/man/man8/nstat.8
+#usr/share/man/man8/routef.8
+#usr/share/man/man8/routel.8
+#usr/share/man/man8/rtacct.8
+#usr/share/man/man8/rtmon.8
+#usr/share/man/man8/rtstat.8
+#usr/share/man/man8/ss.8
 #usr/share/man/man8/tc-bfifo.8
 #usr/share/man/man8/tc-cbq-details.8
 #usr/share/man/man8/tc-cbq.8
+#usr/share/man/man8/tc-choke.8
+#usr/share/man/man8/tc-codel.8
+#usr/share/man/man8/tc-drr.8
+#usr/share/man/man8/tc-fq_codel.8
+#usr/share/man/man8/tc-hfsc.8
 #usr/share/man/man8/tc-htb.8
-#usr/share/man/man8/tc-pbfifo.8
+#usr/share/man/man8/tc-netem.8
 #usr/share/man/man8/tc-pfifo.8
 #usr/share/man/man8/tc-pfifo_fast.8
 #usr/share/man/man8/tc-prio.8
 #usr/share/man/man8/tc-red.8
+#usr/share/man/man8/tc-sfb.8
 #usr/share/man/man8/tc-sfq.8
+#usr/share/man/man8/tc-stab.8
 #usr/share/man/man8/tc-tbf.8
 #usr/share/man/man8/tc.8
+var/lib/arpd
index 8e1a6e46fbf503d5f10cd2013672c4dd64b114a5..d30cbf5694f33a4f1a22bc35b343cd6b581b0a24 100644 (file)
@@ -1,23 +1,23 @@
 #lib/libip4tc.la
 lib/libip4tc.so
 lib/libip4tc.so.0
-lib/libip4tc.so.0.0.0
+lib/libip4tc.so.0.1.0
 #lib/libip6tc.la
 lib/libip6tc.so
 lib/libip6tc.so.0
-lib/libip6tc.so.0.0.0
-#lib/libipq.a
+lib/libip6tc.so.0.1.0
+#lib/libipq.la
+lib/libipq.so
+lib/libipq.so.0
+lib/libipq.so.0.0.0
 #lib/libiptc.la
 lib/libiptc.so
 lib/libiptc.so.0
 lib/libiptc.so.0.0.0
 #lib/libxtables.la
 lib/libxtables.so
-lib/libxtables.so.4
-lib/libxtables.so.4.0.0
-#lib/pkgconfig
-#lib/pkgconfig/libiptc.pc
-#lib/pkgconfig/xtables.pc
+lib/libxtables.so.7
+lib/libxtables.so.7.0.0
 lib/xtables
 #lib/xtables/libip6t_HL.so
 #lib/xtables/libip6t_LOG.so
@@ -42,52 +42,62 @@ lib/xtables
 #lib/xtables/libipt_REDIRECT.so
 #lib/xtables/libipt_REJECT.so
 #lib/xtables/libipt_SAME.so
-#lib/xtables/libipt_SET.so
 #lib/xtables/libipt_SNAT.so
 #lib/xtables/libipt_TTL.so
 #lib/xtables/libipt_ULOG.so
-#lib/xtables/libipt_addrtype.so
 #lib/xtables/libipt_ah.so
-#lib/xtables/libipt_ecn.so
 #lib/xtables/libipt_icmp.so
 #lib/xtables/libipt_ipp2p.so
 #lib/xtables/libipt_realm.so
-#lib/xtables/libipt_set.so
 #lib/xtables/libipt_ttl.so
 #lib/xtables/libipt_unclean.so
+#lib/xtables/libxt_AUDIT.so
+#lib/xtables/libxt_CHECKSUM.so
 #lib/xtables/libxt_CLASSIFY.so
 #lib/xtables/libxt_CONNMARK.so
 #lib/xtables/libxt_CONNSECMARK.so
+#lib/xtables/libxt_CT.so
 #lib/xtables/libxt_DSCP.so
+#lib/xtables/libxt_IDLETIMER.so
 #lib/xtables/libxt_IMQ.so
+#lib/xtables/libxt_LED.so
 #lib/xtables/libxt_MARK.so
 #lib/xtables/libxt_NFLOG.so
 #lib/xtables/libxt_NFQUEUE.so
 #lib/xtables/libxt_NOTRACK.so
 #lib/xtables/libxt_RATEEST.so
 #lib/xtables/libxt_SECMARK.so
+#lib/xtables/libxt_SET.so
 #lib/xtables/libxt_TCPMSS.so
 #lib/xtables/libxt_TCPOPTSTRIP.so
+#lib/xtables/libxt_TEE.so
 #lib/xtables/libxt_TOS.so
 #lib/xtables/libxt_TPROXY.so
 #lib/xtables/libxt_TRACE.so
+#lib/xtables/libxt_addrtype.so
 #lib/xtables/libxt_cluster.so
 #lib/xtables/libxt_comment.so
 #lib/xtables/libxt_connbytes.so
 #lib/xtables/libxt_connlimit.so
 #lib/xtables/libxt_connmark.so
 #lib/xtables/libxt_conntrack.so
+#lib/xtables/libxt_cpu.so
+#lib/xtables/libxt_dccp.so
+#lib/xtables/libxt_devgroup.so
 #lib/xtables/libxt_dscp.so
+#lib/xtables/libxt_ecn.so
 #lib/xtables/libxt_esp.so
 #lib/xtables/libxt_hashlimit.so
 #lib/xtables/libxt_helper.so
 #lib/xtables/libxt_iprange.so
+#lib/xtables/libxt_ipvs.so
 #lib/xtables/libxt_layer7.so
 #lib/xtables/libxt_length.so
 #lib/xtables/libxt_limit.so
 #lib/xtables/libxt_mac.so
 #lib/xtables/libxt_mark.so
 #lib/xtables/libxt_multiport.so
+#lib/xtables/libxt_nfacct.so
 #lib/xtables/libxt_osf.so
 #lib/xtables/libxt_owner.so
 #lib/xtables/libxt_physdev.so
@@ -96,7 +106,9 @@ lib/xtables
 #lib/xtables/libxt_quota.so
 #lib/xtables/libxt_rateest.so
 #lib/xtables/libxt_recent.so
+#lib/xtables/libxt_rpfilter.so
 #lib/xtables/libxt_sctp.so
+#lib/xtables/libxt_set.so
 #lib/xtables/libxt_socket.so
 #lib/xtables/libxt_standard.so
 #lib/xtables/libxt_state.so
@@ -108,18 +120,14 @@ lib/xtables
 #lib/xtables/libxt_tos.so
 #lib/xtables/libxt_u32.so
 #lib/xtables/libxt_udp.so
-#sbin/ip6tables
-#sbin/ip6tables-multi
-#sbin/ip6tables-restore
-#sbin/ip6tables-save
+sbin/ip6tables
+sbin/ip6tables-restore
+sbin/ip6tables-save
 sbin/iptables
-sbin/iptables-multi
-#sbin/iptables-restore
-#sbin/iptables-save
-#sbin/iptables-xml
-#usr/include/asm-generic
-#usr/include/asm-generic/errno-base.h
-#usr/include/asm-generic/errno.h
+sbin/iptables-restore
+sbin/iptables-save
+sbin/iptables-xml
+sbin/xtables-multi
 #usr/include/iptables
 #usr/include/iptables.h
 #usr/include/iptables/internal.h
@@ -129,6 +137,7 @@ sbin/iptables-multi
 #usr/include/libiptc/libip6tc.h
 #usr/include/libiptc/libiptc.h
 #usr/include/libiptc/libxtc.h
+#usr/include/libiptc/xtcshared.h
 #usr/include/libipulog
 #usr/include/libipulog/libipulog.h
 #usr/include/libnetfilter_queue
@@ -139,12 +148,19 @@ sbin/iptables-multi
 #usr/include/libnfnetlink/libnfnetlink.h
 #usr/include/libnfnetlink/linux_nfnetlink.h
 #usr/include/libnfnetlink/linux_nfnetlink_compat.h
-#usr/include/linux/netfilter
 #usr/include/linux/netfilter/Kbuild
+#usr/include/linux/netfilter/ipset
+#usr/include/linux/netfilter/ipset/Kbuild
+#usr/include/linux/netfilter/ipset/ip_set.h
+#usr/include/linux/netfilter/ipset/ip_set_ahash.h
+#usr/include/linux/netfilter/ipset/ip_set_bitmap.h
+#usr/include/linux/netfilter/ipset/ip_set_getport.h
+#usr/include/linux/netfilter/ipset/ip_set_hash.h
+#usr/include/linux/netfilter/ipset/ip_set_list.h
+#usr/include/linux/netfilter/ipset/ip_set_timeout.h
+#usr/include/linux/netfilter/ipset/pfxlen.h
 #usr/include/linux/netfilter/nf_conntrack_amanda.h
-#usr/include/linux/netfilter/nf_conntrack_common.h
 #usr/include/linux/netfilter/nf_conntrack_dccp.h
-#usr/include/linux/netfilter/nf_conntrack_ftp.h
 #usr/include/linux/netfilter/nf_conntrack_h323.h
 #usr/include/linux/netfilter/nf_conntrack_h323_asn1.h
 #usr/include/linux/netfilter/nf_conntrack_h323_types.h
@@ -152,67 +168,22 @@ sbin/iptables-multi
 #usr/include/linux/netfilter/nf_conntrack_pptp.h
 #usr/include/linux/netfilter/nf_conntrack_proto_gre.h
 #usr/include/linux/netfilter/nf_conntrack_sane.h
-#usr/include/linux/netfilter/nf_conntrack_sctp.h
 #usr/include/linux/netfilter/nf_conntrack_sip.h
-#usr/include/linux/netfilter/nf_conntrack_tcp.h
+#usr/include/linux/netfilter/nf_conntrack_snmp.h
 #usr/include/linux/netfilter/nf_conntrack_tftp.h
-#usr/include/linux/netfilter/nf_conntrack_tuple_common.h
-#usr/include/linux/netfilter/nfnetlink.h
-#usr/include/linux/netfilter/nfnetlink_compat.h
-#usr/include/linux/netfilter/nfnetlink_conntrack.h
-#usr/include/linux/netfilter/nfnetlink_log.h
-#usr/include/linux/netfilter/nfnetlink_queue.h
-#usr/include/linux/netfilter/x_tables.h
-#usr/include/linux/netfilter/xt_CLASSIFY.h
-#usr/include/linux/netfilter/xt_CONNMARK.h
-#usr/include/linux/netfilter/xt_CONNSECMARK.h
-#usr/include/linux/netfilter/xt_DSCP.h
+#usr/include/linux/netfilter/xt_AUDIT.h
+#usr/include/linux/netfilter/xt_CHECKSUM.h
+#usr/include/linux/netfilter/xt_CT.h
+#usr/include/linux/netfilter/xt_IDLETIMER.h
 #usr/include/linux/netfilter/xt_IMQ.h
-#usr/include/linux/netfilter/xt_LED.h
-#usr/include/linux/netfilter/xt_MARK.h
-#usr/include/linux/netfilter/xt_NFLOG.h
-#usr/include/linux/netfilter/xt_NFQUEUE.h
-#usr/include/linux/netfilter/xt_RATEEST.h
-#usr/include/linux/netfilter/xt_SECMARK.h
-#usr/include/linux/netfilter/xt_TCPMSS.h
-#usr/include/linux/netfilter/xt_TCPOPTSTRIP.h
-#usr/include/linux/netfilter/xt_TPROXY.h
-#usr/include/linux/netfilter/xt_cluster.h
-#usr/include/linux/netfilter/xt_comment.h
-#usr/include/linux/netfilter/xt_connbytes.h
-#usr/include/linux/netfilter/xt_connlimit.h
-#usr/include/linux/netfilter/xt_connmark.h
-#usr/include/linux/netfilter/xt_conntrack.h
-#usr/include/linux/netfilter/xt_dccp.h
-#usr/include/linux/netfilter/xt_dscp.h
-#usr/include/linux/netfilter/xt_esp.h
-#usr/include/linux/netfilter/xt_hashlimit.h
-#usr/include/linux/netfilter/xt_helper.h
-#usr/include/linux/netfilter/xt_iprange.h
+#usr/include/linux/netfilter/xt_TEE.h
+#usr/include/linux/netfilter/xt_addrtype.h
+#usr/include/linux/netfilter/xt_cpu.h
+#usr/include/linux/netfilter/xt_devgroup.h
+#usr/include/linux/netfilter/xt_ipvs.h
 #usr/include/linux/netfilter/xt_layer7.h
-#usr/include/linux/netfilter/xt_length.h
-#usr/include/linux/netfilter/xt_limit.h
-#usr/include/linux/netfilter/xt_mac.h
-#usr/include/linux/netfilter/xt_mark.h
-#usr/include/linux/netfilter/xt_multiport.h
-#usr/include/linux/netfilter/xt_osf.h
-#usr/include/linux/netfilter/xt_owner.h
-#usr/include/linux/netfilter/xt_physdev.h
-#usr/include/linux/netfilter/xt_pkttype.h
-#usr/include/linux/netfilter/xt_policy.h
-#usr/include/linux/netfilter/xt_quota.h
-#usr/include/linux/netfilter/xt_rateest.h
-#usr/include/linux/netfilter/xt_realm.h
-#usr/include/linux/netfilter/xt_recent.h
-#usr/include/linux/netfilter/xt_sctp.h
+#usr/include/linux/netfilter/xt_set.h
 #usr/include/linux/netfilter/xt_socket.h
-#usr/include/linux/netfilter/xt_state.h
-#usr/include/linux/netfilter/xt_statistic.h
-#usr/include/linux/netfilter/xt_string.h
-#usr/include/linux/netfilter/xt_tcpmss.h
-#usr/include/linux/netfilter/xt_tcpudp.h
-#usr/include/linux/netfilter/xt_time.h
-#usr/include/linux/netfilter/xt_u32.h
 #usr/include/net/netfilter
 #usr/include/net/netfilter/nf_conntrack_tuple.h
 #usr/include/net/netfilter/nf_nat.h
@@ -232,8 +203,14 @@ usr/lib/libnetfilter_queue_libipq.so.1.0.0
 usr/lib/libnfnetlink.so
 usr/lib/libnfnetlink.so.0
 usr/lib/libnfnetlink.so.0.2.0
+#usr/lib/pkgconfig/libip4tc.pc
+#usr/lib/pkgconfig/libip6tc.pc
+#usr/lib/pkgconfig/libipq.pc
+#usr/lib/pkgconfig/libiptc.pc
 #usr/lib/pkgconfig/libnetfilter_queue.pc
 #usr/lib/pkgconfig/libnfnetlink.pc
+#usr/lib/pkgconfig/xtables.pc
+#usr/share/man/man1/iptables-xml.1
 #usr/share/man/man3/ipq_create_handle.3
 #usr/share/man/man3/ipq_destroy_handle.3
 #usr/share/man/man3/ipq_errstr.3
@@ -250,5 +227,4 @@ usr/lib/libnfnetlink.so.0.2.0
 #usr/share/man/man8/ip6tables.8
 #usr/share/man/man8/iptables-restore.8
 #usr/share/man/man8/iptables-save.8
-#usr/share/man/man8/iptables-xml.8
 #usr/share/man/man8/iptables.8
diff --git a/config/rootfiles/common/iptstate b/config/rootfiles/common/iptstate
deleted file mode 100644 (file)
index 57b6d0f..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-usr/sbin/iptstate
-#usr/share/man/man8/iptstate.8
diff --git a/config/rootfiles/common/kudzu b/config/rootfiles/common/kudzu
deleted file mode 100644 (file)
index 5776f0f..0000000
+++ /dev/null
@@ -1,198 +0,0 @@
-#etc/rc.d/init.d/kudzu
-#etc/sysconfig/kudzu
-sbin/kudzu
-#usr/include/kudzu
-#usr/include/kudzu/adb.h
-#usr/include/kudzu/alias.h
-#usr/include/kudzu/ddc.h
-#usr/include/kudzu/device.h
-#usr/include/kudzu/firewire.h
-#usr/include/kudzu/ide.h
-#usr/include/kudzu/isapnp.h
-#usr/include/kudzu/keyboard.h
-#usr/include/kudzu/kudzu.h
-#usr/include/kudzu/macio.h
-#usr/include/kudzu/misc.h
-#usr/include/kudzu/modules.h
-#usr/include/kudzu/parallel.h
-#usr/include/kudzu/pci.h
-#usr/include/kudzu/pcmcia.h
-#usr/include/kudzu/psaux.h
-#usr/include/kudzu/sbus.h
-#usr/include/kudzu/scsi.h
-#usr/include/kudzu/serial.h
-#usr/include/kudzu/usb.h
-#usr/lib/libkudzu.a
-#usr/lib/libkudzu_loader.a
-#usr/lib/python2.7/lib2to3/tests/data/bom.pyc
-#usr/lib/python2.7/lib2to3/tests/data/crlf.pyc
-#usr/lib/python2.7/lib2to3/tests/data/different_encoding.pyc
-#usr/lib/python2.7/lib2to3/tests/data/fixers/bad_order.pyc
-#usr/lib/python2.7/lib2to3/tests/data/fixers/myfixes/__init__.pyc
-#usr/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_explicit.pyc
-#usr/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_first.pyc
-#usr/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_last.pyc
-#usr/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_parrot.pyc
-#usr/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_preorder.pyc
-#usr/lib/python2.7/lib2to3/tests/data/fixers/no_fixer_cls.pyc
-#usr/lib/python2.7/lib2to3/tests/data/fixers/parrot_example.pyc
-#usr/lib/python2.7/lib2to3/tests/data/infinite_recursion.pyc
-#usr/lib/python2.7/lib2to3/tests/data/py2_test_grammar.pyc
-#usr/lib/python2.7/site-packages/_kudzumodule.so
-#usr/lib/python2.7/site-packages/drv_libxml2.pyc
-#usr/lib/python2.7/site-packages/kudzu.py
-#usr/lib/python2.7/site-packages/kudzu.pyc
-#usr/lib/python2.7/site-packages/libxslt.pyc
-#usr/lib/python2.7/site-packages/snack.pyc
-usr/sbin/kudzu
-#usr/share/locale/ar
-#usr/share/locale/ar/LC_MESSAGES
-#usr/share/locale/ar/LC_MESSAGES/kudzu.mo
-#usr/share/locale/as
-#usr/share/locale/as/LC_MESSAGES
-#usr/share/locale/as/LC_MESSAGES/kudzu.mo
-#usr/share/locale/be/LC_MESSAGES/kudzu.mo
-#usr/share/locale/bg
-#usr/share/locale/bg/LC_MESSAGES
-#usr/share/locale/bg/LC_MESSAGES/kudzu.mo
-#usr/share/locale/bn
-#usr/share/locale/bn/LC_MESSAGES
-#usr/share/locale/bn/LC_MESSAGES/kudzu.mo
-#usr/share/locale/bn_IN
-#usr/share/locale/bn_IN/LC_MESSAGES
-#usr/share/locale/bn_IN/LC_MESSAGES/kudzu.mo
-#usr/share/locale/bs
-#usr/share/locale/bs/LC_MESSAGES
-#usr/share/locale/bs/LC_MESSAGES/kudzu.mo
-#usr/share/locale/ca/LC_MESSAGES/kudzu.mo
-#usr/share/locale/cs/LC_MESSAGES/kudzu.mo
-#usr/share/locale/cy
-#usr/share/locale/cy/LC_MESSAGES
-#usr/share/locale/cy/LC_MESSAGES/kudzu.mo
-#usr/share/locale/da/LC_MESSAGES/kudzu.mo
-#usr/share/locale/de/LC_MESSAGES/kudzu.mo
-#usr/share/locale/el/LC_MESSAGES/kudzu.mo
-#usr/share/locale/en_GB/LC_MESSAGES/kudzu.mo
-#usr/share/locale/es/LC_MESSAGES/kudzu.mo
-#usr/share/locale/et/LC_MESSAGES/kudzu.mo
-#usr/share/locale/eu_ES
-#usr/share/locale/eu_ES/LC_MESSAGES
-#usr/share/locale/eu_ES/LC_MESSAGES/kudzu.mo
-#usr/share/locale/fi/LC_MESSAGES/kudzu.mo
-#usr/share/locale/fr/LC_MESSAGES/kudzu.mo
-#usr/share/locale/gl/LC_MESSAGES/kudzu.mo
-#usr/share/locale/gu
-#usr/share/locale/gu/LC_MESSAGES
-#usr/share/locale/gu/LC_MESSAGES/kudzu.mo
-#usr/share/locale/he
-#usr/share/locale/he/LC_MESSAGES
-#usr/share/locale/he/LC_MESSAGES/kudzu.mo
-#usr/share/locale/hi
-#usr/share/locale/hi/LC_MESSAGES
-#usr/share/locale/hi/LC_MESSAGES/kudzu.mo
-#usr/share/locale/hr/LC_MESSAGES/kudzu.mo
-#usr/share/locale/hu/LC_MESSAGES/kudzu.mo
-#usr/share/locale/hy
-#usr/share/locale/hy/LC_MESSAGES
-#usr/share/locale/hy/LC_MESSAGES/kudzu.mo
-#usr/share/locale/id
-#usr/share/locale/id/LC_MESSAGES
-#usr/share/locale/id/LC_MESSAGES/kudzu.mo
-#usr/share/locale/ilo
-#usr/share/locale/ilo/LC_MESSAGES
-#usr/share/locale/ilo/LC_MESSAGES/kudzu.mo
-#usr/share/locale/is
-#usr/share/locale/is/LC_MESSAGES
-#usr/share/locale/is/LC_MESSAGES/kudzu.mo
-#usr/share/locale/it/LC_MESSAGES/kudzu.mo
-#usr/share/locale/ja/LC_MESSAGES/kudzu.mo
-#usr/share/locale/ka
-#usr/share/locale/ka/LC_MESSAGES
-#usr/share/locale/ka/LC_MESSAGES/kudzu.mo
-#usr/share/locale/kn
-#usr/share/locale/kn/LC_MESSAGES
-#usr/share/locale/kn/LC_MESSAGES/kudzu.mo
-#usr/share/locale/ko/LC_MESSAGES/kudzu.mo
-#usr/share/locale/ku
-#usr/share/locale/ku/LC_MESSAGES
-#usr/share/locale/ku/LC_MESSAGES/kudzu.mo
-#usr/share/locale/lo
-#usr/share/locale/lo/LC_MESSAGES
-#usr/share/locale/lo/LC_MESSAGES/kudzu.mo
-#usr/share/locale/lt
-#usr/share/locale/lt/LC_MESSAGES
-#usr/share/locale/lt/LC_MESSAGES/kudzu.mo
-#usr/share/locale/lv
-#usr/share/locale/lv/LC_MESSAGES
-#usr/share/locale/lv/LC_MESSAGES/kudzu.mo
-#usr/share/locale/mk
-#usr/share/locale/mk/LC_MESSAGES
-#usr/share/locale/mk/LC_MESSAGES/kudzu.mo
-#usr/share/locale/ml
-#usr/share/locale/ml/LC_MESSAGES
-#usr/share/locale/ml/LC_MESSAGES/kudzu.mo
-#usr/share/locale/mr
-#usr/share/locale/mr/LC_MESSAGES
-#usr/share/locale/mr/LC_MESSAGES/kudzu.mo
-#usr/share/locale/ms
-#usr/share/locale/ms/LC_MESSAGES
-#usr/share/locale/ms/LC_MESSAGES/kudzu.mo
-#usr/share/locale/my
-#usr/share/locale/my/LC_MESSAGES
-#usr/share/locale/my/LC_MESSAGES/kudzu.mo
-#usr/share/locale/nb/LC_MESSAGES/kudzu.mo
-#usr/share/locale/nl/LC_MESSAGES/kudzu.mo
-#usr/share/locale/nn
-#usr/share/locale/nn/LC_MESSAGES
-#usr/share/locale/nn/LC_MESSAGES/kudzu.mo
-#usr/share/locale/no
-#usr/share/locale/no/LC_MESSAGES
-#usr/share/locale/no/LC_MESSAGES/kudzu.mo
-#usr/share/locale/or
-#usr/share/locale/or/LC_MESSAGES
-#usr/share/locale/or/LC_MESSAGES/kudzu.mo
-#usr/share/locale/pa
-#usr/share/locale/pa/LC_MESSAGES
-#usr/share/locale/pa/LC_MESSAGES/kudzu.mo
-#usr/share/locale/pl/LC_MESSAGES/kudzu.mo
-#usr/share/locale/pt
-#usr/share/locale/pt/LC_MESSAGES
-#usr/share/locale/pt/LC_MESSAGES/kudzu.mo
-#usr/share/locale/pt_BR/LC_MESSAGES/kudzu.mo
-#usr/share/locale/ro/LC_MESSAGES/kudzu.mo
-#usr/share/locale/ru/LC_MESSAGES/kudzu.mo
-#usr/share/locale/si
-#usr/share/locale/si/LC_MESSAGES
-#usr/share/locale/si/LC_MESSAGES/kudzu.mo
-#usr/share/locale/sk/LC_MESSAGES/kudzu.mo
-#usr/share/locale/sl/LC_MESSAGES/kudzu.mo
-#usr/share/locale/sq
-#usr/share/locale/sq/LC_MESSAGES
-#usr/share/locale/sq/LC_MESSAGES/kudzu.mo
-#usr/share/locale/sr
-#usr/share/locale/sr/LC_MESSAGES
-#usr/share/locale/sr/LC_MESSAGES/kudzu.mo
-#usr/share/locale/sr@Latn
-#usr/share/locale/sr@Latn/LC_MESSAGES
-#usr/share/locale/sr@Latn/LC_MESSAGES/kudzu.mo
-#usr/share/locale/sv/LC_MESSAGES/kudzu.mo
-#usr/share/locale/ta
-#usr/share/locale/ta/LC_MESSAGES
-#usr/share/locale/ta/LC_MESSAGES/kudzu.mo
-#usr/share/locale/te
-#usr/share/locale/te/LC_MESSAGES
-#usr/share/locale/te/LC_MESSAGES/kudzu.mo
-#usr/share/locale/tr/LC_MESSAGES/kudzu.mo
-#usr/share/locale/uk/LC_MESSAGES/kudzu.mo
-#usr/share/locale/ur
-#usr/share/locale/ur/LC_MESSAGES
-#usr/share/locale/ur/LC_MESSAGES/kudzu.mo
-#usr/share/locale/vi
-#usr/share/locale/vi/LC_MESSAGES
-#usr/share/locale/vi/LC_MESSAGES/kudzu.mo
-#usr/share/locale/wa
-#usr/share/locale/wa/LC_MESSAGES
-#usr/share/locale/wa/LC_MESSAGES/kudzu.mo
-#usr/share/locale/zh_CN/LC_MESSAGES/kudzu.mo
-#usr/share/locale/zh_TW/LC_MESSAGES/kudzu.mo
-#usr/share/man/man8/kudzu.8
index bd8faf544ffbce2e4b9eb8ad9f370eb7e8b7ef4d..5b573c9ba170830e1899f560d5073efc14a1a2af 100644 (file)
@@ -1,6 +1,6 @@
 usr/bin/less
 #usr/bin/lessecho
 #usr/bin/lesskey
-#usr/man/man1/less.1
-#usr/man/man1/lessecho.1
-#usr/man/man1/lesskey.1
+#usr/share/man/man1/less.1
+#usr/share/man/man1/lessecho.1
+#usr/share/man/man1/lesskey.1
diff --git a/config/rootfiles/common/libaal b/config/rootfiles/common/libaal
deleted file mode 100644 (file)
index de785eb..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-#usr/include/aal
-#usr/include/aal/bitops.h
-#usr/include/aal/block.h
-#usr/include/aal/debug.h
-#usr/include/aal/device.h
-#usr/include/aal/endian.h
-#usr/include/aal/exception.h
-#usr/include/aal/file.h
-#usr/include/aal/gauge.h
-#usr/include/aal/hash.h
-#usr/include/aal/libaal.h
-#usr/include/aal/list.h
-#usr/include/aal/malloc.h
-#usr/include/aal/math.h
-#usr/include/aal/print.h
-#usr/include/aal/stream.h
-#usr/include/aal/string.h
-#usr/include/aal/types.h
-#usr/include/aal/ui.h
-#usr/include/aal/unaligned.h
-usr/lib/libaal-1.0.so.5
-usr/lib/libaal-1.0.so.5.0.0
-#usr/lib/libaal-minimal.a
-#usr/lib/libaal-minimal.la
-usr/lib/libaal-minimal.so
-usr/lib/libaal-minimal.so.0
-usr/lib/libaal-minimal.so.0.0.0
-#usr/lib/libaal.a
-#usr/lib/libaal.la
-usr/lib/libaal.so
-#usr/share/aclocal/libaal.m4
diff --git a/config/rootfiles/common/libffi b/config/rootfiles/common/libffi
new file mode 100644 (file)
index 0000000..2c887bd
--- /dev/null
@@ -0,0 +1,15 @@
+#usr/lib/libffi-3.0.11
+#usr/lib/libffi-3.0.11/include
+#usr/lib/libffi-3.0.11/include/ffi.h
+#usr/lib/libffi-3.0.11/include/ffitarget.h
+#usr/lib/libffi.a
+#usr/lib/libffi.la
+#usr/lib/libffi.so
+usr/lib/libffi.so.6
+usr/lib/libffi.so.6.0.0
+#usr/lib/pkgconfig/libffi.pc
+#usr/share/info/libffi.info
+#usr/share/man/man3/ffi.3
+#usr/share/man/man3/ffi_call.3
+#usr/share/man/man3/ffi_prep_cif.3
+#usr/share/man/man3/ffi_prep_cif_var.3
diff --git a/config/rootfiles/common/libsafe b/config/rootfiles/common/libsafe
deleted file mode 100644 (file)
index 8275e4a..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-etc/ld.so.preload
-lib/libsafe.so.2
-lib/libsafe.so.2.0.16
-#usr/man/man8/libsafe.8
index 39029d3e9e5f882eee978df955e7e4cc7e62460a..a05b64bed93ff277960134c25c456dc0203dc882 100644 (file)
@@ -78,7 +78,7 @@
 #usr/include/sigc++-2.0/sigc++/visit_each.h
 #usr/lib/libsigc-2.0.a
 #usr/lib/libsigc-2.0.la
-usr/lib/libsigc-2.0.so
+#usr/lib/libsigc-2.0.so
 usr/lib/libsigc-2.0.so.0
 usr/lib/libsigc-2.0.so.0.0.0
 #usr/lib/pkgconfig/sigc++-2.0.pc
@@ -157,6 +157,7 @@ usr/lib/libsigc-2.0.so.0.0.0
 #usr/share/doc/libsigc-2.0/docs/reference/html/classes.html
 #usr/share/doc/libsigc-2.0/docs/reference/html/classinternal_1_1lambda__core.html
 #usr/share/doc/libsigc-2.0/docs/reference/html/classinternal_1_1lambda__core__inherit__graph.png
+#usr/share/doc/libsigc-2.0/docs/reference/html/classnil.html
 #usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__argument-members.html
 #usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__argument.html
 #usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__argument_3_01const__reference__wrapper_3_01T__wrapped_01_4_01_4-members.html
@@ -460,15 +461,6 @@ usr/lib/libsigc-2.0.so.0.0.0
 #usr/share/doc/libsigc-2.0/docs/reference/html/connection_8h.html
 #usr/share/doc/libsigc-2.0/docs/reference/html/deduce__result__type_8h.html
 #usr/share/doc/libsigc-2.0/docs/reference/html/deprecated.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/dir__2Fhome_2Fmurrayc_2Fcvs_2Fgnome214_2Flibsigc_2B_2B2_2Fsigc_2B_2B_2F.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/dir__2Fhome_2Fmurrayc_2Fcvs_2Fgnome214_2Flibsigc_2B_2B2_2Fsigc_2B_2B_2F_dep.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/dir__2Fhome_2Fmurrayc_2Fcvs_2Fgnome214_2Flibsigc_2B_2B2_2Fsigc_2B_2B_2Fadaptors_2F.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/dir__2Fhome_2Fmurrayc_2Fcvs_2Fgnome214_2Flibsigc_2B_2B2_2Fsigc_2B_2B_2Fadaptors_2F_dep.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/dir__2Fhome_2Fmurrayc_2Fcvs_2Fgnome214_2Flibsigc_2B_2B2_2Fsigc_2B_2B_2Fadaptors_2Flambda_2F.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/dir__2Fhome_2Fmurrayc_2Fcvs_2Fgnome214_2Flibsigc_2B_2B2_2Fsigc_2B_2B_2Fadaptors_2Flambda_2F_dep.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/dir__2Fhome_2Fmurrayc_2Fcvs_2Fgnome214_2Flibsigc_2B_2B2_2Fsigc_2B_2B_2Ffunctors_2F.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/dir__2Fhome_2Fmurrayc_2Fcvs_2Fgnome214_2Flibsigc_2B_2B2_2Fsigc_2B_2B_2Ffunctors_2F_dep.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/dirs.html
 #usr/share/doc/libsigc-2.0/docs/reference/html/doxygen.css
 #usr/share/doc/libsigc-2.0/docs/reference/html/doxygen.png
 #usr/share/doc/libsigc-2.0/docs/reference/html/exception__catch_8h.html
@@ -515,15 +507,40 @@ usr/lib/libsigc-2.0.so.0.0.0
 #usr/share/doc/libsigc-2.0/docs/reference/html/functions_func_0x7e.html
 #usr/share/doc/libsigc-2.0/docs/reference/html/functions_rela.html
 #usr/share/doc/libsigc-2.0/docs/reference/html/functions_type.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x63.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x64.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x65.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x66.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x67.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x69.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x6c.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x6f.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x70.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x72.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x73.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x74.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x76.html
 #usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x61.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x62.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x63.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x64.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x65.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x66.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x67.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x69.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x6c.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x6f.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x70.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x72.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x73.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x74.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x76.html
 #usr/share/doc/libsigc-2.0/docs/reference/html/functor__trait_8h.html
 #usr/share/doc/libsigc-2.0/docs/reference/html/functors_2slot_8h.html
 #usr/share/doc/libsigc-2.0/docs/reference/html/functors_8h.html
 #usr/share/doc/libsigc-2.0/docs/reference/html/globals.html
 #usr/share/doc/libsigc-2.0/docs/reference/html/globals_defs.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/globals_func.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/globals_type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/globals_vars.html
 #usr/share/doc/libsigc-2.0/docs/reference/html/graph_legend.dot
 #usr/share/doc/libsigc-2.0/docs/reference/html/graph_legend.html
 #usr/share/doc/libsigc-2.0/docs/reference/html/graph_legend.png
@@ -740,6 +757,7 @@ usr/lib/libsigc-2.0.so.0.0.0
 #usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__260.png
 #usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__261.png
 #usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__262.png
+#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__263.png
 #usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__27.png
 #usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__28.png
 #usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__29.png
@@ -828,7 +846,33 @@ usr/lib/libsigc-2.0.so.0.0.0
 #usr/share/doc/libsigc-2.0/docs/reference/html/modules.html
 #usr/share/doc/libsigc-2.0/docs/reference/html/namespaceSigC.html
 #usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x62.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x63.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x64.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x65.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x66.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x67.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x68.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x6d.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x6f.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x70.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x72.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x73.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x75.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x76.html
 #usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func_0x63.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func_0x64.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func_0x65.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func_0x67.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func_0x68.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func_0x6d.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func_0x6f.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func_0x70.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func_0x72.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func_0x73.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func_0x75.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func_0x76.html
 #usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_type.html
 #usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_vars.html
 #usr/share/doc/libsigc-2.0/docs/reference/html/namespaces.html
diff --git a/config/rootfiles/common/libtool b/config/rootfiles/common/libtool
new file mode 100644 (file)
index 0000000..5646be2
--- /dev/null
@@ -0,0 +1,71 @@
+#usr/bin/libtool
+#usr/bin/libtoolize
+#usr/include/libltdl
+#usr/include/libltdl/lt_dlloader.h
+#usr/include/libltdl/lt_error.h
+#usr/include/libltdl/lt_system.h
+#usr/include/ltdl.h
+#usr/lib/libltdl.a
+#usr/lib/libltdl.la
+usr/lib/libltdl.so
+usr/lib/libltdl.so.7
+usr/lib/libltdl.so.7.3.0
+#usr/share/aclocal/argz.m4
+#usr/share/aclocal/libtool.m4
+#usr/share/aclocal/ltdl.m4
+#usr/share/aclocal/ltoptions.m4
+#usr/share/aclocal/ltsugar.m4
+#usr/share/aclocal/ltversion.m4
+#usr/share/aclocal/lt~obsolete.m4
+#usr/share/info/libtool.info
+#usr/share/info/libtool.info-1
+#usr/share/info/libtool.info-2
+#usr/share/libtool
+#usr/share/libtool/config
+#usr/share/libtool/config/compile
+#usr/share/libtool/config/config.guess
+#usr/share/libtool/config/config.sub
+#usr/share/libtool/config/depcomp
+#usr/share/libtool/config/install-sh
+#usr/share/libtool/config/ltmain.sh
+#usr/share/libtool/config/missing
+#usr/share/libtool/libltdl
+#usr/share/libtool/libltdl/COPYING.LIB
+#usr/share/libtool/libltdl/Makefile.am
+#usr/share/libtool/libltdl/Makefile.in
+#usr/share/libtool/libltdl/Makefile.inc
+#usr/share/libtool/libltdl/README
+#usr/share/libtool/libltdl/aclocal.m4
+#usr/share/libtool/libltdl/argz.c
+#usr/share/libtool/libltdl/argz_.h
+#usr/share/libtool/libltdl/config-h.in
+#usr/share/libtool/libltdl/configure
+#usr/share/libtool/libltdl/configure.ac
+#usr/share/libtool/libltdl/libltdl
+#usr/share/libtool/libltdl/libltdl/lt__alloc.h
+#usr/share/libtool/libltdl/libltdl/lt__dirent.h
+#usr/share/libtool/libltdl/libltdl/lt__glibc.h
+#usr/share/libtool/libltdl/libltdl/lt__private.h
+#usr/share/libtool/libltdl/libltdl/lt__strl.h
+#usr/share/libtool/libltdl/libltdl/lt_dlloader.h
+#usr/share/libtool/libltdl/libltdl/lt_error.h
+#usr/share/libtool/libltdl/libltdl/lt_system.h
+#usr/share/libtool/libltdl/libltdl/slist.h
+#usr/share/libtool/libltdl/loaders
+#usr/share/libtool/libltdl/loaders/dld_link.c
+#usr/share/libtool/libltdl/loaders/dlopen.c
+#usr/share/libtool/libltdl/loaders/dyld.c
+#usr/share/libtool/libltdl/loaders/load_add_on.c
+#usr/share/libtool/libltdl/loaders/loadlibrary.c
+#usr/share/libtool/libltdl/loaders/preopen.c
+#usr/share/libtool/libltdl/loaders/shl_load.c
+#usr/share/libtool/libltdl/lt__alloc.c
+#usr/share/libtool/libltdl/lt__dirent.c
+#usr/share/libtool/libltdl/lt__strl.c
+#usr/share/libtool/libltdl/lt_dlloader.c
+#usr/share/libtool/libltdl/lt_error.c
+#usr/share/libtool/libltdl/ltdl.c
+#usr/share/libtool/libltdl/ltdl.h
+#usr/share/libtool/libltdl/slist.c
+#usr/share/man/man1/libtool.1
+#usr/share/man/man1/libtoolize.1
index 1a0f6990adbe0e5001ef8653645a4dead827b223..db5793a3b6e163ab62d6ba508595ba44a4930946 100644 (file)
@@ -17,6 +17,7 @@
 usr/lib/libatm.so
 usr/lib/libatm.so.1
 usr/lib/libatm.so.1.0.0
+#usr/man/man4
 #usr/man/man4/atmsigd.conf.4
 #usr/man/man7/qos.7
 #usr/man/man7/sap.7
index d4b90710658165c9d9921f800f3e622ad371ee15..78bcc64d3964e71ebe4b2066561dba4d7f33719c 100644 (file)
@@ -3,10 +3,12 @@ lib/firmware/3com/3C359.bin
 lib/firmware/3com/typhoon.bin
 lib/firmware/GPL-3
 lib/firmware/LICENCE.Marvell
+lib/firmware/LICENCE.OLPC
 lib/firmware/LICENCE.agere
 lib/firmware/LICENCE.atheros_firmware
 lib/firmware/LICENCE.broadcom_bcm43xx
 lib/firmware/LICENCE.chelsio_firmware
+lib/firmware/LICENCE.ene_firmware
 lib/firmware/LICENCE.i2400m
 lib/firmware/LICENCE.iwlwifi_firmware
 lib/firmware/LICENCE.mwl8335
@@ -21,7 +23,9 @@ lib/firmware/LICENCE.ueagle-atm4-firmware
 lib/firmware/LICENCE.via_vt6656
 lib/firmware/LICENCE.xc5000
 lib/firmware/LICENSE.dib0700
-lib/firmware/LICENSE.radeon_rlc
+lib/firmware/LICENSE.radeon
+#lib/firmware/Makefile
+lib/firmware/README
 #lib/firmware/RTL8192E
 lib/firmware/RTL8192E/boot.img
 lib/firmware/RTL8192E/data.img
@@ -47,6 +51,9 @@ lib/firmware/agere_sta_fw.bin
 lib/firmware/ar3k/1020200/PS_ASIC.pst
 lib/firmware/ar3k/1020200/RamPatch.txt
 lib/firmware/ar3k/1020200/ar3kbdaddr.pst
+#lib/firmware/ar3k/1020201
+lib/firmware/ar3k/1020201/PS_ASIC.pst
+lib/firmware/ar3k/1020201/RamPatch.txt
 #lib/firmware/ar3k/30000
 lib/firmware/ar3k/30000/PS_ASIC.pst
 lib/firmware/ar3k/30000/RamPatch.txt
@@ -55,11 +62,24 @@ lib/firmware/ar3k/30000/ar3kbdaddr.pst
 lib/firmware/ar3k/30101/PS_ASIC.pst
 lib/firmware/ar3k/30101/RamPatch.txt
 lib/firmware/ar3k/30101/ar3kbdaddr.pst
+#lib/firmware/ar3k/30101coex
+lib/firmware/ar3k/30101coex/PS_ASIC.pst
+lib/firmware/ar3k/30101coex/PS_ASIC_aclHighPri.pst
+lib/firmware/ar3k/30101coex/PS_ASIC_aclLowPri.pst
+lib/firmware/ar3k/30101coex/RamPatch.txt
+lib/firmware/ar3k/30101coex/ar3kbdaddr.pst
 lib/firmware/ar3k/AthrBT_0x01020001.dfu
 lib/firmware/ar3k/AthrBT_0x01020200.dfu
+lib/firmware/ar3k/AthrBT_0x01020201.dfu
+lib/firmware/ar3k/AthrBT_0x11020000.dfu
+lib/firmware/ar3k/AthrBT_0x31010000.dfu
 lib/firmware/ar3k/ramps_0x01020001_26.dfu
 lib/firmware/ar3k/ramps_0x01020200_26.dfu
 lib/firmware/ar3k/ramps_0x01020200_40.dfu
+lib/firmware/ar3k/ramps_0x01020201_26.dfu
+lib/firmware/ar3k/ramps_0x01020201_40.dfu
+lib/firmware/ar3k/ramps_0x11020000_40.dfu
+lib/firmware/ar3k/ramps_0x31010000_40.dfu
 lib/firmware/ar7010.fw
 lib/firmware/ar7010_1_1.fw
 lib/firmware/ar9170-1.fw
@@ -73,6 +93,15 @@ lib/firmware/ath6k/AR6002/data.patch.hw2_0.bin
 lib/firmware/ath6k/AR6002/eeprom.bin
 lib/firmware/ath6k/AR6002/eeprom.data
 #lib/firmware/ath6k/AR6003
+#lib/firmware/ath6k/AR6003.1
+#lib/firmware/ath6k/AR6003.1/hw2.1.1
+lib/firmware/ath6k/AR6003.1/hw2.1.1/athwlan.bin
+lib/firmware/ath6k/AR6003.1/hw2.1.1/bdata.SD31.bin
+lib/firmware/ath6k/AR6003.1/hw2.1.1/bdata.SD32.bin
+lib/firmware/ath6k/AR6003.1/hw2.1.1/bdata.WB31.bin
+lib/firmware/ath6k/AR6003.1/hw2.1.1/data.patch.bin
+lib/firmware/ath6k/AR6003.1/hw2.1.1/endpointping.bin
+lib/firmware/ath6k/AR6003.1/hw2.1.1/otp.bin
 #lib/firmware/ath6k/AR6003/hw1.0
 lib/firmware/ath6k/AR6003/hw1.0/athwlan.bin.z77
 lib/firmware/ath6k/AR6003/hw1.0/bdata.SD31.bin
@@ -94,9 +123,20 @@ lib/firmware/ath6k/AR6003/hw2.1.1/bdata.SD32.bin
 lib/firmware/ath6k/AR6003/hw2.1.1/bdata.WB31.bin
 lib/firmware/ath6k/AR6003/hw2.1.1/data.patch.bin
 lib/firmware/ath6k/AR6003/hw2.1.1/endpointping.bin
+lib/firmware/ath6k/AR6003/hw2.1.1/fw-2.bin
+lib/firmware/ath6k/AR6003/hw2.1.1/fw-3.bin
 lib/firmware/ath6k/AR6003/hw2.1.1/otp.bin
+#lib/firmware/ath6k/AR6004
+#lib/firmware/ath6k/AR6004/hw1.2
+lib/firmware/ath6k/AR6004/hw1.2/bdata.bin
+lib/firmware/ath6k/AR6004/hw1.2/fw-2.bin
+#lib/firmware/ath6k/AR6004/hw1.3
+lib/firmware/ath6k/AR6004/hw1.3/bdata.bin
+lib/firmware/ath6k/AR6004/hw1.3/fw-3.bin
 lib/firmware/atmsar11.fw
 #lib/firmware/av7110
+#lib/firmware/av7110/Boot.S
+#lib/firmware/av7110/Makefile
 lib/firmware/av7110/bootcode.bin
 #lib/firmware/bnx2
 lib/firmware/bnx2/bnx2-mips-06-4.6.16.fw
@@ -104,6 +144,7 @@ lib/firmware/bnx2/bnx2-mips-06-5.0.0.j3.fw
 lib/firmware/bnx2/bnx2-mips-06-5.0.0.j6.fw
 lib/firmware/bnx2/bnx2-mips-06-6.0.15.fw
 lib/firmware/bnx2/bnx2-mips-06-6.2.1.fw
+lib/firmware/bnx2/bnx2-mips-06-6.2.3.fw
 lib/firmware/bnx2/bnx2-mips-09-4.6.17.fw
 lib/firmware/bnx2/bnx2-mips-09-5.0.0.j15.fw
 lib/firmware/bnx2/bnx2-mips-09-5.0.0.j3.fw
@@ -111,6 +152,7 @@ lib/firmware/bnx2/bnx2-mips-09-5.0.0.j9.fw
 lib/firmware/bnx2/bnx2-mips-09-6.0.17.fw
 lib/firmware/bnx2/bnx2-mips-09-6.2.1.fw
 lib/firmware/bnx2/bnx2-mips-09-6.2.1a.fw
+lib/firmware/bnx2/bnx2-mips-09-6.2.1b.fw
 lib/firmware/bnx2/bnx2-rv2p-06-4.6.16.fw
 lib/firmware/bnx2/bnx2-rv2p-06-5.0.0.j3.fw
 lib/firmware/bnx2/bnx2-rv2p-06-6.0.15.fw
@@ -121,17 +163,48 @@ lib/firmware/bnx2/bnx2-rv2p-09-6.0.17.fw
 lib/firmware/bnx2/bnx2-rv2p-09ax-5.0.0.j10.fw
 lib/firmware/bnx2/bnx2-rv2p-09ax-5.0.0.j3.fw
 lib/firmware/bnx2/bnx2-rv2p-09ax-6.0.17.fw
+#lib/firmware/bnx2x
 lib/firmware/bnx2x-e1-4.8.53.0.fw
 lib/firmware/bnx2x-e1-5.2.13.0.fw
 lib/firmware/bnx2x-e1-5.2.7.0.fw
 lib/firmware/bnx2x-e1h-4.8.53.0.fw
 lib/firmware/bnx2x-e1h-5.2.13.0.fw
 lib/firmware/bnx2x-e1h-5.2.7.0.fw
+lib/firmware/bnx2x/bnx2x-e1-6.0.34.0.fw
+lib/firmware/bnx2x/bnx2x-e1-6.2.5.0.fw
+lib/firmware/bnx2x/bnx2x-e1-6.2.9.0.fw
+lib/firmware/bnx2x/bnx2x-e1-7.0.20.0.fw
+lib/firmware/bnx2x/bnx2x-e1-7.0.23.0.fw
+lib/firmware/bnx2x/bnx2x-e1-7.0.29.0.fw
+lib/firmware/bnx2x/bnx2x-e1-7.2.16.0.fw
+lib/firmware/bnx2x/bnx2x-e1-7.2.51.0.fw
+lib/firmware/bnx2x/bnx2x-e1-7.8.2.0.fw
+lib/firmware/bnx2x/bnx2x-e1h-6.0.34.0.fw
+lib/firmware/bnx2x/bnx2x-e1h-6.2.5.0.fw
+lib/firmware/bnx2x/bnx2x-e1h-6.2.9.0.fw
+lib/firmware/bnx2x/bnx2x-e1h-7.0.20.0.fw
+lib/firmware/bnx2x/bnx2x-e1h-7.0.23.0.fw
+lib/firmware/bnx2x/bnx2x-e1h-7.0.29.0.fw
+lib/firmware/bnx2x/bnx2x-e1h-7.2.16.0.fw
+lib/firmware/bnx2x/bnx2x-e1h-7.2.51.0.fw
+lib/firmware/bnx2x/bnx2x-e1h-7.8.2.0.fw
+lib/firmware/bnx2x/bnx2x-e2-6.0.34.0.fw
+lib/firmware/bnx2x/bnx2x-e2-6.2.5.0.fw
+lib/firmware/bnx2x/bnx2x-e2-6.2.9.0.fw
+lib/firmware/bnx2x/bnx2x-e2-7.0.20.0.fw
+lib/firmware/bnx2x/bnx2x-e2-7.0.23.0.fw
+lib/firmware/bnx2x/bnx2x-e2-7.0.29.0.fw
+lib/firmware/bnx2x/bnx2x-e2-7.2.16.0.fw
+lib/firmware/bnx2x/bnx2x-e2-7.2.51.0.fw
+lib/firmware/bnx2x/bnx2x-e2-7.8.2.0.fw
 #lib/firmware/brcm
 lib/firmware/brcm/bcm4329-fullmac-4.bin
-lib/firmware/brcm/bcm4329-fullmac-4.txt
 lib/firmware/brcm/bcm43xx-0.fw
 lib/firmware/brcm/bcm43xx_hdr-0.fw
+lib/firmware/brcm/brcmfmac43236b.bin
+lib/firmware/brcm/brcmfmac4329.bin
+lib/firmware/brcm/brcmfmac4330.bin
+lib/firmware/brcm/brcmfmac4334.bin
 #lib/firmware/cis
 lib/firmware/cis/3CCFEM556.cis
 lib/firmware/cis/3CXEM556.cis
@@ -140,6 +213,7 @@ lib/firmware/cis/COMpad4.cis
 lib/firmware/cis/DP83903.cis
 lib/firmware/cis/LA-PCM.cis
 lib/firmware/cis/MT5634ZLX.cis
+#lib/firmware/cis/Makefile
 lib/firmware/cis/NE2K.cis
 lib/firmware/cis/PCMLM28.cis
 lib/firmware/cis/PE-200.cis
@@ -163,6 +237,7 @@ lib/firmware/cis/src/PE520.cis
 lib/firmware/cis/src/RS-COM-2P.cis
 lib/firmware/cis/src/tamarack.cis
 lib/firmware/cis/tamarack.cis
+#lib/firmware/configure
 #lib/firmware/cpia2
 lib/firmware/cpia2/stv0672_vp4.bin
 #lib/firmware/cxgb3
@@ -174,17 +249,22 @@ lib/firmware/cxgb3/t3c_psram-1.1.0.bin
 lib/firmware/cxgb3/t3fw-7.0.0.bin
 lib/firmware/cxgb3/t3fw-7.1.0.bin
 lib/firmware/cxgb3/t3fw-7.10.0.bin
+lib/firmware/cxgb3/t3fw-7.12.0.bin
 lib/firmware/cxgb3/t3fw-7.4.0.bin
 #lib/firmware/cxgb4
+lib/firmware/cxgb4/t4fw-1.4.23.0.bin
 lib/firmware/cxgb4/t4fw.bin
 #lib/firmware/dabusb
 lib/firmware/dabusb/bitstream.bin
 lib/firmware/dabusb/firmware.fw
 #lib/firmware/dsp56k
+#lib/firmware/dsp56k/Makefile
 #lib/firmware/dsp56k/bootstrap.asm
 lib/firmware/dsp56k/bootstrap.bin
+#lib/firmware/dsp56k/concat-bootstrap.pl
 lib/firmware/dvb-fe-xc5000-1.6.114.fw
 lib/firmware/dvb-usb-dib0700-1.20.fw
+lib/firmware/dvb-usb-terratec-h5-drxk.fw
 #lib/firmware/e100
 lib/firmware/e100/d101m_ucode.bin
 lib/firmware/e100/d101s_ucode.bin
@@ -204,6 +284,13 @@ lib/firmware/emi62/bitstream.fw
 lib/firmware/emi62/loader.fw
 lib/firmware/emi62/midi.fw
 lib/firmware/emi62/spdif.fw
+#lib/firmware/ene-ub6250
+lib/firmware/ene-ub6250/ms_init.bin
+lib/firmware/ene-ub6250/ms_rdwr.bin
+lib/firmware/ene-ub6250/msp_rdwr.bin
+lib/firmware/ene-ub6250/sd_init1.bin
+lib/firmware/ene-ub6250/sd_init2.bin
+lib/firmware/ene-ub6250/sd_rdwr.bin
 #lib/firmware/ess
 lib/firmware/ess/maestro3_assp_kernel.fw
 lib/firmware/ess/maestro3_assp_minisrc.fw
@@ -214,8 +301,20 @@ lib/firmware/i2400m-fw-usb-1.4.sbcf
 lib/firmware/i2400m-fw-usb-1.5.sbcf
 lib/firmware/i6050-fw-usb-1.5.sbcf
 lib/firmware/intelliport2.bin
+#lib/firmware/isci
+#lib/firmware/isci/Makefile
+lib/firmware/isci/README
+#lib/firmware/isci/create_fw.c
+#lib/firmware/isci/create_fw.h
+lib/firmware/isci/isci_firmware.bin
+#lib/firmware/isci/probe_roms.h
 lib/firmware/iwlwifi-100-5.ucode
 lib/firmware/iwlwifi-1000-3.ucode
+lib/firmware/iwlwifi-1000-5.ucode
+lib/firmware/iwlwifi-105-6.ucode
+lib/firmware/iwlwifi-135-6.ucode
+lib/firmware/iwlwifi-2000-6.ucode
+lib/firmware/iwlwifi-2030-6.ucode
 lib/firmware/iwlwifi-3945-2.ucode
 lib/firmware/iwlwifi-4965-2.ucode
 lib/firmware/iwlwifi-5000-1.ucode
@@ -224,7 +323,9 @@ lib/firmware/iwlwifi-5000-5.ucode
 lib/firmware/iwlwifi-5150-2.ucode
 lib/firmware/iwlwifi-6000-4.ucode
 lib/firmware/iwlwifi-6000g2a-5.ucode
+lib/firmware/iwlwifi-6000g2a-6.ucode
 lib/firmware/iwlwifi-6000g2b-5.ucode
+lib/firmware/iwlwifi-6000g2b-6.ucode
 lib/firmware/iwlwifi-6050-4.ucode
 lib/firmware/iwlwifi-6050-5.ucode
 #lib/firmware/kaweth
@@ -246,14 +347,18 @@ lib/firmware/keyspan/usa28xb.fw
 lib/firmware/keyspan/usa49w.fw
 lib/firmware/keyspan/usa49wlc.fw
 #lib/firmware/keyspan_pda
+#lib/firmware/keyspan_pda/Makefile
 #lib/firmware/keyspan_pda/keyspan_pda.S
 lib/firmware/keyspan_pda/keyspan_pda.fw
 #lib/firmware/keyspan_pda/xircom_pgs.S
 lib/firmware/keyspan_pda/xircom_pgs.fw
 #lib/firmware/korg
 lib/firmware/korg/k1212.dsp
+lib/firmware/lbtf_usb.bin
 lib/firmware/lgs8g75.fw
 #lib/firmware/libertas
+lib/firmware/libertas/cf8381.bin
+lib/firmware/libertas/cf8381_helper.bin
 lib/firmware/libertas/cf8385.bin
 lib/firmware/libertas/cf8385_helper.bin
 lib/firmware/libertas/gspi8682.bin
@@ -262,6 +367,7 @@ lib/firmware/libertas/gspi8686_v9.bin
 lib/firmware/libertas/gspi8686_v9_helper.bin
 lib/firmware/libertas/gspi8688.bin
 lib/firmware/libertas/gspi8688_helper.bin
+lib/firmware/libertas/lbtf_sdio.bin
 lib/firmware/libertas/sd8385.bin
 lib/firmware/libertas/sd8385_helper.bin
 lib/firmware/libertas/sd8682.bin
@@ -272,6 +378,7 @@ lib/firmware/libertas/sd8686_v9.bin
 lib/firmware/libertas/sd8686_v9_helper.bin
 lib/firmware/libertas/sd8688.bin
 lib/firmware/libertas/sd8688_helper.bin
+lib/firmware/libertas/usb8388_olpc.bin
 lib/firmware/libertas/usb8388_v5.bin
 lib/firmware/libertas/usb8388_v9.bin
 lib/firmware/libertas/usb8682.bin
@@ -285,7 +392,6 @@ lib/firmware/mts_edge.fw
 lib/firmware/mts_gsm.fw
 lib/firmware/mts_mt9234mu.fw
 lib/firmware/mts_mt9234zba.fw
-lib/firmware/mwl8335_duplex.fw
 #lib/firmware/mwl8k
 lib/firmware/mwl8k/fmimage_8366.fw
 lib/firmware/mwl8k/fmimage_8366_ap-1.fw
@@ -317,6 +423,9 @@ lib/firmware/qlogic/sd7220.fw
 #lib/firmware/r128
 lib/firmware/r128/r128_cce.bin
 #lib/firmware/radeon
+lib/firmware/radeon/ARUBA_me.bin
+lib/firmware/radeon/ARUBA_pfp.bin
+lib/firmware/radeon/ARUBA_rlc.bin
 lib/firmware/radeon/BARTS_mc.bin
 lib/firmware/radeon/BARTS_me.bin
 lib/firmware/radeon/BARTS_pfp.bin
@@ -339,6 +448,11 @@ lib/firmware/radeon/JUNIPER_pfp.bin
 lib/firmware/radeon/JUNIPER_rlc.bin
 lib/firmware/radeon/PALM_me.bin
 lib/firmware/radeon/PALM_pfp.bin
+lib/firmware/radeon/PITCAIRN_ce.bin
+lib/firmware/radeon/PITCAIRN_mc.bin
+lib/firmware/radeon/PITCAIRN_me.bin
+lib/firmware/radeon/PITCAIRN_pfp.bin
+lib/firmware/radeon/PITCAIRN_rlc.bin
 lib/firmware/radeon/R100_cp.bin
 lib/firmware/radeon/R200_cp.bin
 lib/firmware/radeon/R300_cp.bin
@@ -371,10 +485,24 @@ lib/firmware/radeon/RV730_me.bin
 lib/firmware/radeon/RV730_pfp.bin
 lib/firmware/radeon/RV770_me.bin
 lib/firmware/radeon/RV770_pfp.bin
+lib/firmware/radeon/SUMO2_me.bin
+lib/firmware/radeon/SUMO2_pfp.bin
+lib/firmware/radeon/SUMO_me.bin
+lib/firmware/radeon/SUMO_pfp.bin
 lib/firmware/radeon/SUMO_rlc.bin
+lib/firmware/radeon/TAHITI_ce.bin
+lib/firmware/radeon/TAHITI_mc.bin
+lib/firmware/radeon/TAHITI_me.bin
+lib/firmware/radeon/TAHITI_pfp.bin
+lib/firmware/radeon/TAHITI_rlc.bin
 lib/firmware/radeon/TURKS_mc.bin
 lib/firmware/radeon/TURKS_me.bin
 lib/firmware/radeon/TURKS_pfp.bin
+lib/firmware/radeon/VERDE_ce.bin
+lib/firmware/radeon/VERDE_mc.bin
+lib/firmware/radeon/VERDE_me.bin
+lib/firmware/radeon/VERDE_pfp.bin
+lib/firmware/radeon/VERDE_rlc.bin
 lib/firmware/rt2561.bin
 lib/firmware/rt2561s.bin
 lib/firmware/rt2661.bin
@@ -383,20 +511,31 @@ lib/firmware/rt2870.bin
 lib/firmware/rt3070.bin
 lib/firmware/rt3071.bin
 lib/firmware/rt3090.bin
+lib/firmware/rt3290.bin
 lib/firmware/rt73.bin
 #lib/firmware/rtl_nic
 lib/firmware/rtl_nic/rtl8105e-1.fw
+lib/firmware/rtl_nic/rtl8106e-1.fw
 lib/firmware/rtl_nic/rtl8168d-1.fw
 lib/firmware/rtl_nic/rtl8168d-2.fw
 lib/firmware/rtl_nic/rtl8168e-1.fw
 lib/firmware/rtl_nic/rtl8168e-2.fw
 lib/firmware/rtl_nic/rtl8168e-3.fw
+lib/firmware/rtl_nic/rtl8168f-1.fw
+lib/firmware/rtl_nic/rtl8168f-2.fw
+lib/firmware/rtl_nic/rtl8168g-1.fw
+lib/firmware/rtl_nic/rtl8402-1.fw
+lib/firmware/rtl_nic/rtl8411-1.fw
 #lib/firmware/rtlwifi
 lib/firmware/rtlwifi/rtl8192cfw.bin
+lib/firmware/rtlwifi/rtl8192cfwU.bin
+lib/firmware/rtlwifi/rtl8192cfwU_B.bin
 lib/firmware/rtlwifi/rtl8192cufw.bin
 lib/firmware/rtlwifi/rtl8192defw.bin
 lib/firmware/rtlwifi/rtl8192sefw.bin
 lib/firmware/rtlwifi/rtl8712u.bin
+lib/firmware/rtlwifi/rtl8723fw.bin
+lib/firmware/rtlwifi/rtl8723fw_B.bin
 lib/firmware/s2250.fw
 lib/firmware/s2250_loader.fw
 #lib/firmware/sb16
@@ -423,10 +562,29 @@ lib/firmware/ti-connectivity/TIInit_7.2.31.bts
 lib/firmware/ti-connectivity/wl1271-fw-2.bin
 lib/firmware/ti-connectivity/wl1271-fw-ap.bin
 lib/firmware/ti-connectivity/wl1271-fw.bin
-lib/firmware/ti-connectivity/wl1271-nvs-example-wl128x.bin
 lib/firmware/ti-connectivity/wl1271-nvs.bin
+lib/firmware/ti-connectivity/wl127x-fw-3.bin
+lib/firmware/ti-connectivity/wl127x-fw-4-mr.bin
+lib/firmware/ti-connectivity/wl127x-fw-4-plt.bin
+lib/firmware/ti-connectivity/wl127x-fw-4-sr.bin
+lib/firmware/ti-connectivity/wl127x-fw-5-mr.bin
+lib/firmware/ti-connectivity/wl127x-fw-5-plt.bin
+lib/firmware/ti-connectivity/wl127x-fw-5-sr.bin
+lib/firmware/ti-connectivity/wl127x-fw-plt-3.bin
+lib/firmware/ti-connectivity/wl127x-nvs.bin
+lib/firmware/ti-connectivity/wl128x-fw-3.bin
+lib/firmware/ti-connectivity/wl128x-fw-4-mr.bin
+lib/firmware/ti-connectivity/wl128x-fw-4-plt.bin
+lib/firmware/ti-connectivity/wl128x-fw-4-sr.bin
+lib/firmware/ti-connectivity/wl128x-fw-5-mr.bin
+lib/firmware/ti-connectivity/wl128x-fw-5-plt.bin
+lib/firmware/ti-connectivity/wl128x-fw-5-sr.bin
 lib/firmware/ti-connectivity/wl128x-fw-ap.bin
+lib/firmware/ti-connectivity/wl128x-fw-plt-3.bin
 lib/firmware/ti-connectivity/wl128x-fw.bin
+lib/firmware/ti-connectivity/wl128x-nvs.bin
+lib/firmware/ti-connectivity/wl12xx-nvs.bin
+lib/firmware/ti-connectivity/wl18xx-fw.bin
 lib/firmware/ti_3410.fw
 lib/firmware/ti_5052.fw
 #lib/firmware/tigon
@@ -468,8 +626,10 @@ lib/firmware/ueagle-atm/eagleIV.fw
 #lib/firmware/usbdux/fx2-include.asm
 #lib/firmware/usbdux/usbdux_firmware.asm
 #lib/firmware/usbdux/usbduxfast_firmware.asm
+#lib/firmware/usbdux/usbduxsigma_firmware.asm
 lib/firmware/usbdux_firmware.bin
 lib/firmware/usbduxfast_firmware.bin
+lib/firmware/usbduxsigma_firmware.bin
 lib/firmware/v4l-cx231xx-avcore-01.fw
 lib/firmware/v4l-cx23418-apu.fw
 lib/firmware/v4l-cx23418-cpu.fw
diff --git a/config/rootfiles/common/linux-libc-header b/config/rootfiles/common/linux-libc-header
deleted file mode 100644 (file)
index 4fbe3e0..0000000
+++ /dev/null
@@ -1,1745 +0,0 @@
-#usr/include/asm
-#usr/include/asm/8253pit.h
-#usr/include/asm/a.out.h
-#usr/include/asm/agp.h
-#usr/include/asm/apic.h
-#usr/include/asm/apicdef.h
-#usr/include/asm/arch_hooks.h
-#usr/include/asm/atomic.h
-#usr/include/asm/bitops.h
-#usr/include/asm/boot.h
-#usr/include/asm/byteorder.h
-#usr/include/asm/cache.h
-#usr/include/asm/cacheflush.h
-#usr/include/asm/checksum.h
-#usr/include/asm/cpu.h
-#usr/include/asm/cpufeature.h
-#usr/include/asm/debugreg.h
-#usr/include/asm/desc.h
-#usr/include/asm/dma.h
-#usr/include/asm/e820.h
-#usr/include/asm/elf.h
-#usr/include/asm/errno.h
-#usr/include/asm/fcntl.h
-#usr/include/asm/fixmap.h
-#usr/include/asm/floppy.h
-#usr/include/asm/genapic.h
-#usr/include/asm/hardirq.h
-#usr/include/asm/hdreg.h
-#usr/include/asm/hw_irq.h
-#usr/include/asm/i8259.h
-#usr/include/asm/init.h
-#usr/include/asm/io.h
-#usr/include/asm/io_apic.h
-#usr/include/asm/ioctl.h
-#usr/include/asm/ioctls.h
-#usr/include/asm/ipc.h
-#usr/include/asm/ipcbuf.h
-#usr/include/asm/irq.h
-#usr/include/asm/kdebug.h
-#usr/include/asm/kprobes.h
-#usr/include/asm/ldt.h
-#usr/include/asm/linkage.h
-#usr/include/asm/mach-bigsmp
-#usr/include/asm/mach-bigsmp/mach_apic.h
-#usr/include/asm/mach-bigsmp/mach_apicdef.h
-#usr/include/asm/mach-bigsmp/mach_ipi.h
-#usr/include/asm/mach-bigsmp/mach_mpspec.h
-#usr/include/asm/mach-default
-#usr/include/asm/mach-default/apm.h
-#usr/include/asm/mach-default/bios_ebda.h
-#usr/include/asm/mach-default/do_timer.h
-#usr/include/asm/mach-default/entry_arch.h
-#usr/include/asm/mach-default/io_ports.h
-#usr/include/asm/mach-default/irq_vectors.h
-#usr/include/asm/mach-default/mach_apic.h
-#usr/include/asm/mach-default/mach_apicdef.h
-#usr/include/asm/mach-default/mach_ipi.h
-#usr/include/asm/mach-default/mach_mpparse.h
-#usr/include/asm/mach-default/mach_mpspec.h
-#usr/include/asm/mach-default/mach_reboot.h
-#usr/include/asm/mach-default/mach_time.h
-#usr/include/asm/mach-default/mach_timer.h
-#usr/include/asm/mach-default/mach_traps.h
-#usr/include/asm/mach-default/mach_wakecpu.h
-#usr/include/asm/mach-default/pci-functions.h
-#usr/include/asm/mach-default/setup_arch_post.h
-#usr/include/asm/mach-default/setup_arch_pre.h
-#usr/include/asm/mach-default/smpboot_hooks.h
-#usr/include/asm/mach-es7000
-#usr/include/asm/mach-es7000/mach_apic.h
-#usr/include/asm/mach-es7000/mach_apicdef.h
-#usr/include/asm/mach-es7000/mach_ipi.h
-#usr/include/asm/mach-es7000/mach_mpparse.h
-#usr/include/asm/mach-es7000/mach_mpspec.h
-#usr/include/asm/mach-es7000/mach_wakecpu.h
-#usr/include/asm/mach-generic
-#usr/include/asm/mach-generic/mach_apic.h
-#usr/include/asm/mach-generic/mach_apicdef.h
-#usr/include/asm/mach-generic/mach_ipi.h
-#usr/include/asm/mach-generic/mach_mpparse.h
-#usr/include/asm/mach-generic/mach_mpspec.h
-#usr/include/asm/mach-numaq
-#usr/include/asm/mach-numaq/mach_apic.h
-#usr/include/asm/mach-numaq/mach_apicdef.h
-#usr/include/asm/mach-numaq/mach_ipi.h
-#usr/include/asm/mach-numaq/mach_mpparse.h
-#usr/include/asm/mach-numaq/mach_mpspec.h
-#usr/include/asm/mach-numaq/mach_wakecpu.h
-#usr/include/asm/mach-summit
-#usr/include/asm/mach-summit/mach_apic.h
-#usr/include/asm/mach-summit/mach_apicdef.h
-#usr/include/asm/mach-summit/mach_ipi.h
-#usr/include/asm/mach-summit/mach_mpparse.h
-#usr/include/asm/mach-summit/mach_mpspec.h
-#usr/include/asm/mach-visws
-#usr/include/asm/mach-visws/cobalt.h
-#usr/include/asm/mach-visws/do_timer.h
-#usr/include/asm/mach-visws/entry_arch.h
-#usr/include/asm/mach-visws/irq_vectors.h
-#usr/include/asm/mach-visws/lithium.h
-#usr/include/asm/mach-visws/mach_apic.h
-#usr/include/asm/mach-visws/mach_apicdef.h
-#usr/include/asm/mach-visws/piix4.h
-#usr/include/asm/mach-visws/setup_arch_post.h
-#usr/include/asm/mach-visws/setup_arch_pre.h
-#usr/include/asm/mach-visws/smpboot_hooks.h
-#usr/include/asm/mach-voyager
-#usr/include/asm/mach-voyager/do_timer.h
-#usr/include/asm/mach-voyager/entry_arch.h
-#usr/include/asm/mach-voyager/irq_vectors.h
-#usr/include/asm/mach-voyager/setup_arch_post.h
-#usr/include/asm/mach-voyager/setup_arch_pre.h
-#usr/include/asm/math_emu.h
-#usr/include/asm/mca.h
-#usr/include/asm/mca_dma.h
-#usr/include/asm/mman.h
-#usr/include/asm/mmu.h
-#usr/include/asm/mmu_context.h
-#usr/include/asm/mmx.h
-#usr/include/asm/module.h
-#usr/include/asm/mpspec.h
-#usr/include/asm/mpspec_def.h
-#usr/include/asm/msgbuf.h
-#usr/include/asm/msr.h
-#usr/include/asm/mtrr.h
-#usr/include/asm/namei.h
-#usr/include/asm/nmi.h
-#usr/include/asm/node.h
-#usr/include/asm/numaq.h
-#usr/include/asm/numnodes.h
-#usr/include/asm/page.h
-#usr/include/asm/param.h
-#usr/include/asm/parport.h
-#usr/include/asm/pgalloc.h
-#usr/include/asm/poll.h
-#usr/include/asm/posix_types.h
-#usr/include/asm/processor.h
-#usr/include/asm/ptrace.h
-#usr/include/asm/rwlock.h
-#usr/include/asm/segment.h
-#usr/include/asm/semaphore.h
-#usr/include/asm/sembuf.h
-#usr/include/asm/serial.h
-#usr/include/asm/shmbuf.h
-#usr/include/asm/shmparam.h
-#usr/include/asm/sigcontext.h
-#usr/include/asm/siginfo.h
-#usr/include/asm/socket.h
-#usr/include/asm/sockios.h
-#usr/include/asm/spinlock.h
-#usr/include/asm/srat.h
-#usr/include/asm/stat.h
-#usr/include/asm/suspend.h
-#usr/include/asm/system.h
-#usr/include/asm/termbits.h
-#usr/include/asm/termios.h
-#usr/include/asm/timer.h
-#usr/include/asm/timex.h
-#usr/include/asm/tlbflush.h
-#usr/include/asm/types.h
-#usr/include/asm/ucontext.h
-#usr/include/asm/unaligned.h
-#usr/include/asm/unistd.h
-#usr/include/asm/user.h
-#usr/include/asm/vga.h
-#usr/include/asm/vic.h
-#usr/include/asm/vm86.h
-#usr/include/asm/voyager.h
-#usr/include/linux
-#usr/include/linux/8250_pci.h
-#usr/include/linux/a.out.h
-#usr/include/linux/acct.h
-#usr/include/linux/acpi.h
-#usr/include/linux/adb.h
-#usr/include/linux/adfs_fs.h
-#usr/include/linux/adfs_fs_sb.h
-#usr/include/linux/affs_fs.h
-#usr/include/linux/affs_hardblocks.h
-#usr/include/linux/agpgart.h
-#usr/include/linux/aio.h
-#usr/include/linux/aio_abi.h
-#usr/include/linux/amifd.h
-#usr/include/linux/amifdreg.h
-#usr/include/linux/amigaffs.h
-#usr/include/linux/apm_bios.h
-#usr/include/linux/ata.h
-#usr/include/linux/atalk.h
-#usr/include/linux/atm.h
-#usr/include/linux/atm_eni.h
-#usr/include/linux/atm_he.h
-#usr/include/linux/atm_idt77105.h
-#usr/include/linux/atm_nicstar.h
-#usr/include/linux/atm_suni.h
-#usr/include/linux/atm_tcp.h
-#usr/include/linux/atm_zatm.h
-#usr/include/linux/atmapi.h
-#usr/include/linux/atmarp.h
-#usr/include/linux/atmbr2684.h
-#usr/include/linux/atmclip.h
-#usr/include/linux/atmdev.h
-#usr/include/linux/atmioc.h
-#usr/include/linux/atmlec.h
-#usr/include/linux/atmmpc.h
-#usr/include/linux/atmppp.h
-#usr/include/linux/atmsap.h
-#usr/include/linux/atmsvc.h
-#usr/include/linux/audit.h
-#usr/include/linux/auto_fs.h
-#usr/include/linux/auto_fs4.h
-#usr/include/linux/autoconf.h
-#usr/include/linux/awe_voice.h
-#usr/include/linux/ax25.h
-#usr/include/linux/b1lli.h
-#usr/include/linux/backing-dev.h
-#usr/include/linux/backlight.h
-#usr/include/linux/baycom.h
-#usr/include/linux/bcd.h
-#usr/include/linux/bfs_fs.h
-#usr/include/linux/binfmts.h
-#usr/include/linux/bitmap.h
-#usr/include/linux/bitops.h
-#usr/include/linux/blkpg.h
-#usr/include/linux/blockgroup_lock.h
-#usr/include/linux/bootmem.h
-#usr/include/linux/bpqether.h
-#usr/include/linux/byteorder
-#usr/include/linux/byteorder/big_endian.h
-#usr/include/linux/byteorder/generic.h
-#usr/include/linux/byteorder/little_endian.h
-#usr/include/linux/byteorder/pdp_endian.h
-#usr/include/linux/byteorder/swab.h
-#usr/include/linux/byteorder/swabb.h
-#usr/include/linux/cache.h
-#usr/include/linux/capability.h
-#usr/include/linux/capi.h
-#usr/include/linux/cciss_ioctl.h
-#usr/include/linux/cd1400.h
-#usr/include/linux/cdk.h
-#usr/include/linux/cdrom.h
-#usr/include/linux/circ_buf.h
-#usr/include/linux/cobalt-nvram.h
-#usr/include/linux/coda.h
-#usr/include/linux/coda_proc.h
-#usr/include/linux/coda_psdev.h
-#usr/include/linux/coff.h
-#usr/include/linux/com20020.h
-#usr/include/linux/compat.h
-#usr/include/linux/compat_ioctl.h
-#usr/include/linux/compiler.h
-#usr/include/linux/comstats.h
-#usr/include/linux/config.h
-#usr/include/linux/console.h
-#usr/include/linux/console_struct.h
-#usr/include/linux/consolemap.h
-#usr/include/linux/cpu.h
-#usr/include/linux/cpufreq.h
-#usr/include/linux/cramfs_fs.h
-#usr/include/linux/cramfs_fs_sb.h
-#usr/include/linux/crc32.h
-#usr/include/linux/crypto.h
-#usr/include/linux/ctype.h
-#usr/include/linux/cuda.h
-#usr/include/linux/cyclades.h
-#usr/include/linux/cycx_cfm.h
-#usr/include/linux/cycx_drv.h
-#usr/include/linux/cycx_x25.h
-#usr/include/linux/devfs_fs.h
-#usr/include/linux/devfs_fs_kernel.h
-#usr/include/linux/device-mapper.h
-#usr/include/linux/device.h
-#usr/include/linux/devpts_fs.h
-#usr/include/linux/dirent.h
-#usr/include/linux/divert.h
-#usr/include/linux/dm-ioctl.h
-#usr/include/linux/dn.h
-#usr/include/linux/dnotify.h
-#usr/include/linux/dqblk_v1.h
-#usr/include/linux/dqblk_v2.h
-#usr/include/linux/dqblk_xfs.h
-#usr/include/linux/dtlk.h
-#usr/include/linux/dvb
-#usr/include/linux/dvb/audio.h
-#usr/include/linux/dvb/ca.h
-#usr/include/linux/dvb/dmx.h
-#usr/include/linux/dvb/frontend.h
-#usr/include/linux/dvb/net.h
-#usr/include/linux/dvb/osd.h
-#usr/include/linux/dvb/version.h
-#usr/include/linux/dvb/video.h
-#usr/include/linux/eeprom.h
-#usr/include/linux/efi.h
-#usr/include/linux/efs_dir.h
-#usr/include/linux/efs_fs.h
-#usr/include/linux/efs_fs_i.h
-#usr/include/linux/efs_fs_sb.h
-#usr/include/linux/efs_vh.h
-#usr/include/linux/eisa.h
-#usr/include/linux/elevator.h
-#usr/include/linux/elf-fdpic.h
-#usr/include/linux/elf.h
-#usr/include/linux/elfcore.h
-#usr/include/linux/err.h
-#usr/include/linux/err_kernel_only.h
-#usr/include/linux/errno.h
-#usr/include/linux/errqueue.h
-#usr/include/linux/ethtool.h
-#usr/include/linux/eventpoll.h
-#usr/include/linux/ext2_fs.h
-#usr/include/linux/ext3_fs.h
-#usr/include/linux/ext3_jbd.h
-#usr/include/linux/fadvise.h
-#usr/include/linux/fb.h
-#usr/include/linux/fcntl.h
-#usr/include/linux/fd.h
-#usr/include/linux/fd1772.h
-#usr/include/linux/fdreg.h
-#usr/include/linux/file.h
-#usr/include/linux/filter.h
-#usr/include/linux/firmware.h
-#usr/include/linux/flat.h
-#usr/include/linux/font.h
-#usr/include/linux/fs.h
-#usr/include/linux/fs_struct.h
-#usr/include/linux/ftape-header-segment.h
-#usr/include/linux/ftape-vendors.h
-#usr/include/linux/ftape.h
-#usr/include/linux/futex.h
-#usr/include/linux/gameport.h
-#usr/include/linux/gen_stats.h
-#usr/include/linux/generic_serial.h
-#usr/include/linux/genhd.h
-#usr/include/linux/gfp.h
-#usr/include/linux/hash.h
-#usr/include/linux/hayesesp.h
-#usr/include/linux/hdlc
-#usr/include/linux/hdlc.h
-#usr/include/linux/hdlc/ioctl.h
-#usr/include/linux/hdlcdrv.h
-#usr/include/linux/hdreg.h
-#usr/include/linux/hdsmart.h
-#usr/include/linux/hiddev.h
-#usr/include/linux/highuid.h
-#usr/include/linux/hpfs_fs.h
-#usr/include/linux/hysdn_if.h
-#usr/include/linux/i2c-algo-bit.h
-#usr/include/linux/i2c-algo-ite.h
-#usr/include/linux/i2c-algo-pcf.h
-#usr/include/linux/i2c-algo-sgi.h
-#usr/include/linux/i2c-algo-sibyte.h
-#usr/include/linux/i2c-dev.h
-#usr/include/linux/i2c-id.h
-#usr/include/linux/i2c-sensor.h
-#usr/include/linux/i2c-vid.h
-#usr/include/linux/i2c.h
-#usr/include/linux/i2o-dev.h
-#usr/include/linux/i8k.h
-#usr/include/linux/ibmtr.h
-#usr/include/linux/icmp.h
-#usr/include/linux/icmpv6.h
-#usr/include/linux/ide.h
-#usr/include/linux/idr.h
-#usr/include/linux/if.h
-#usr/include/linux/if_arcnet.h
-#usr/include/linux/if_arp.h
-#usr/include/linux/if_bonding.h
-#usr/include/linux/if_bridge.h
-#usr/include/linux/if_cablemodem.h
-#usr/include/linux/if_ec.h
-#usr/include/linux/if_eql.h
-#usr/include/linux/if_ether.h
-#usr/include/linux/if_fc.h
-#usr/include/linux/if_fddi.h
-#usr/include/linux/if_frad.h
-#usr/include/linux/if_hippi.h
-#usr/include/linux/if_infiniband.h
-#usr/include/linux/if_ltalk.h
-#usr/include/linux/if_packet.h
-#usr/include/linux/if_plip.h
-#usr/include/linux/if_ppp.h
-#usr/include/linux/if_pppox.h
-#usr/include/linux/if_shaper.h
-#usr/include/linux/if_slip.h
-#usr/include/linux/if_strip.h
-#usr/include/linux/if_tr.h
-#usr/include/linux/if_tun.h
-#usr/include/linux/if_tunnel.h
-#usr/include/linux/if_vlan.h
-#usr/include/linux/if_wanpipe.h
-#usr/include/linux/if_wanpipe_common.h
-#usr/include/linux/igmp.h
-#usr/include/linux/in.h
-#usr/include/linux/in6.h
-#usr/include/linux/in_route.h
-#usr/include/linux/inetdevice.h
-#usr/include/linux/init.h
-#usr/include/linux/init_task.h
-#usr/include/linux/initrd.h
-#usr/include/linux/inotify.h
-#usr/include/linux/input.h
-#usr/include/linux/interrupt.h
-#usr/include/linux/ioctl.h
-#usr/include/linux/ioctl32.h
-#usr/include/linux/ioport.h
-#usr/include/linux/ip.h
-#usr/include/linux/ip6_tunnel.h
-#usr/include/linux/ip_mp_alg.h
-#usr/include/linux/ipc.h
-#usr/include/linux/ipmi.h
-#usr/include/linux/ipmi_msgdefs.h
-#usr/include/linux/ipmi_smi.h
-#usr/include/linux/ipsec.h
-#usr/include/linux/ipv6.h
-#usr/include/linux/ipv6_route.h
-#usr/include/linux/ipx.h
-#usr/include/linux/irda.h
-#usr/include/linux/irq.h
-#usr/include/linux/irq_cpustat.h
-#usr/include/linux/isapnp.h
-#usr/include/linux/isdn
-#usr/include/linux/isdn.h
-#usr/include/linux/isdn/capicmd.h
-#usr/include/linux/isdn/capilli.h
-#usr/include/linux/isdn/capiutil.h
-#usr/include/linux/isdn/tpam.h
-#usr/include/linux/isdn_divertif.h
-#usr/include/linux/isdn_ppp.h
-#usr/include/linux/isdnif.h
-#usr/include/linux/isicom.h
-#usr/include/linux/iso_fs.h
-#usr/include/linux/istallion.h
-#usr/include/linux/ite_gpio.h
-#usr/include/linux/ixjuser.h
-#usr/include/linux/jbd.h
-#usr/include/linux/jffs.h
-#usr/include/linux/jffs2.h
-#usr/include/linux/jffs2_fs_sb.h
-#usr/include/linux/jhash.h
-#usr/include/linux/jiffies.h
-#usr/include/linux/journal-head.h
-#usr/include/linux/joystick.h
-#usr/include/linux/kallsyms.h
-#usr/include/linux/kbd_diacr.h
-#usr/include/linux/kbd_kern.h
-#usr/include/linux/kd.h
-#usr/include/linux/kdev_t.h
-#usr/include/linux/kernel.h
-#usr/include/linux/kernel_stat.h
-#usr/include/linux/kernelcapi.h
-#usr/include/linux/keyboard.h
-#usr/include/linux/keyctl.h
-#usr/include/linux/kmalloc_sizes.h
-#usr/include/linux/kmod.h
-#usr/include/linux/kprobes.h
-#usr/include/linux/lapb.h
-#usr/include/linux/lcd.h
-#usr/include/linux/libata.h
-#usr/include/linux/libps2.h
-#usr/include/linux/limits.h
-#usr/include/linux/linkage.h
-#usr/include/linux/linux_logo.h
-#usr/include/linux/list.h
-#usr/include/linux/llc.h
-#usr/include/linux/lockd
-#usr/include/linux/lockd/bind.h
-#usr/include/linux/lockd/debug.h
-#usr/include/linux/lockd/nlm.h
-#usr/include/linux/lockd/share.h
-#usr/include/linux/lockd/sm_inter.h
-#usr/include/linux/lockd/xdr.h
-#usr/include/linux/lockd/xdr4.h
-#usr/include/linux/loop.h
-#usr/include/linux/lp.h
-#usr/include/linux/major.h
-#usr/include/linux/matroxfb.h
-#usr/include/linux/mbcache.h
-#usr/include/linux/mc6821.h
-#usr/include/linux/mca-legacy.h
-#usr/include/linux/mca.h
-#usr/include/linux/mempool.h
-#usr/include/linux/meye.h
-#usr/include/linux/mii.h
-#usr/include/linux/minix_fs.h
-#usr/include/linux/miscdevice.h
-#usr/include/linux/mm.h
-#usr/include/linux/mm_inline.h
-#usr/include/linux/mman.h
-#usr/include/linux/mod_devicetable.h
-#usr/include/linux/module.h
-#usr/include/linux/moduleloader.h
-#usr/include/linux/moduleparam.h
-#usr/include/linux/mount.h
-#usr/include/linux/mroute.h
-#usr/include/linux/msdos_fs.h
-#usr/include/linux/msg.h
-#usr/include/linux/mtd
-#usr/include/linux/mtd/blktrans.h
-#usr/include/linux/mtd/cfi.h
-#usr/include/linux/mtd/cfi_endian.h
-#usr/include/linux/mtd/compatmac.h
-#usr/include/linux/mtd/concat.h
-#usr/include/linux/mtd/doc2000.h
-#usr/include/linux/mtd/flashchip.h
-#usr/include/linux/mtd/ftl.h
-#usr/include/linux/mtd/gen_probe.h
-#usr/include/linux/mtd/iflash.h
-#usr/include/linux/mtd/jedec.h
-#usr/include/linux/mtd/map.h
-#usr/include/linux/mtd/nand.h
-#usr/include/linux/mtd/nand_ecc.h
-#usr/include/linux/mtd/nftl.h
-#usr/include/linux/mtd/partitions.h
-#usr/include/linux/mtd/pmc551.h
-#usr/include/linux/mtio.h
-#usr/include/linux/n_r3964.h
-#usr/include/linux/namei.h
-#usr/include/linux/nbd.h
-#usr/include/linux/ncp.h
-#usr/include/linux/ncp_fs.h
-#usr/include/linux/ncp_mount.h
-#usr/include/linux/ncp_no.h
-#usr/include/linux/net.h
-#usr/include/linux/netdevice.h
-#usr/include/linux/netfilter.h
-#usr/include/linux/netfilter_arp
-#usr/include/linux/netfilter_arp.h
-#usr/include/linux/netfilter_arp/arp_tables.h
-#usr/include/linux/netfilter_arp/arpt_mangle.h
-#usr/include/linux/netfilter_bridge
-#usr/include/linux/netfilter_bridge.h
-#usr/include/linux/netfilter_bridge/ebt_802_3.h
-#usr/include/linux/netfilter_bridge/ebt_among.h
-#usr/include/linux/netfilter_bridge/ebt_arp.h
-#usr/include/linux/netfilter_bridge/ebt_arpreply.h
-#usr/include/linux/netfilter_bridge/ebt_ip.h
-#usr/include/linux/netfilter_bridge/ebt_limit.h
-#usr/include/linux/netfilter_bridge/ebt_log.h
-#usr/include/linux/netfilter_bridge/ebt_mark_m.h
-#usr/include/linux/netfilter_bridge/ebt_mark_t.h
-#usr/include/linux/netfilter_bridge/ebt_nat.h
-#usr/include/linux/netfilter_bridge/ebt_pkttype.h
-#usr/include/linux/netfilter_bridge/ebt_redirect.h
-#usr/include/linux/netfilter_bridge/ebt_stp.h
-#usr/include/linux/netfilter_bridge/ebt_ulog.h
-#usr/include/linux/netfilter_bridge/ebt_vlan.h
-#usr/include/linux/netfilter_bridge/ebtables.h
-#usr/include/linux/netfilter_decnet.h
-#usr/include/linux/netfilter_ipv4
-#usr/include/linux/netfilter_ipv4.h
-#usr/include/linux/netfilter_ipv4/ip_conntrack.h
-#usr/include/linux/netfilter_ipv4/ip_conntrack_amanda.h
-#usr/include/linux/netfilter_ipv4/ip_conntrack_core.h
-#usr/include/linux/netfilter_ipv4/ip_conntrack_ftp.h
-#usr/include/linux/netfilter_ipv4/ip_conntrack_helper.h
-#usr/include/linux/netfilter_ipv4/ip_conntrack_icmp.h
-#usr/include/linux/netfilter_ipv4/ip_conntrack_irc.h
-#usr/include/linux/netfilter_ipv4/ip_conntrack_protocol.h
-#usr/include/linux/netfilter_ipv4/ip_conntrack_sctp.h
-#usr/include/linux/netfilter_ipv4/ip_conntrack_tcp.h
-#usr/include/linux/netfilter_ipv4/ip_conntrack_tftp.h
-#usr/include/linux/netfilter_ipv4/ip_conntrack_tuple.h
-#usr/include/linux/netfilter_ipv4/ip_nat.h
-#usr/include/linux/netfilter_ipv4/ip_nat_core.h
-#usr/include/linux/netfilter_ipv4/ip_nat_helper.h
-#usr/include/linux/netfilter_ipv4/ip_nat_protocol.h
-#usr/include/linux/netfilter_ipv4/ip_nat_rule.h
-#usr/include/linux/netfilter_ipv4/ip_queue.h
-#usr/include/linux/netfilter_ipv4/ip_tables.h
-#usr/include/linux/netfilter_ipv4/ipt_CLASSIFY.h
-#usr/include/linux/netfilter_ipv4/ipt_CLUSTERIP.h
-#usr/include/linux/netfilter_ipv4/ipt_CONNMARK.h
-#usr/include/linux/netfilter_ipv4/ipt_DSCP.h
-#usr/include/linux/netfilter_ipv4/ipt_ECN.h
-#usr/include/linux/netfilter_ipv4/ipt_LOG.h
-#usr/include/linux/netfilter_ipv4/ipt_MARK.h
-#usr/include/linux/netfilter_ipv4/ipt_REJECT.h
-#usr/include/linux/netfilter_ipv4/ipt_SAME.h
-#usr/include/linux/netfilter_ipv4/ipt_TCPMSS.h
-#usr/include/linux/netfilter_ipv4/ipt_TOS.h
-#usr/include/linux/netfilter_ipv4/ipt_ULOG.h
-#usr/include/linux/netfilter_ipv4/ipt_addrtype.h
-#usr/include/linux/netfilter_ipv4/ipt_ah.h
-#usr/include/linux/netfilter_ipv4/ipt_comment.h
-#usr/include/linux/netfilter_ipv4/ipt_connmark.h
-#usr/include/linux/netfilter_ipv4/ipt_conntrack.h
-#usr/include/linux/netfilter_ipv4/ipt_dscp.h
-#usr/include/linux/netfilter_ipv4/ipt_ecn.h
-#usr/include/linux/netfilter_ipv4/ipt_esp.h
-#usr/include/linux/netfilter_ipv4/ipt_hashlimit.h
-#usr/include/linux/netfilter_ipv4/ipt_helper.h
-#usr/include/linux/netfilter_ipv4/ipt_iprange.h
-#usr/include/linux/netfilter_ipv4/ipt_length.h
-#usr/include/linux/netfilter_ipv4/ipt_limit.h
-#usr/include/linux/netfilter_ipv4/ipt_mac.h
-#usr/include/linux/netfilter_ipv4/ipt_mark.h
-#usr/include/linux/netfilter_ipv4/ipt_multiport.h
-#usr/include/linux/netfilter_ipv4/ipt_owner.h
-#usr/include/linux/netfilter_ipv4/ipt_physdev.h
-#usr/include/linux/netfilter_ipv4/ipt_pkttype.h
-#usr/include/linux/netfilter_ipv4/ipt_realm.h
-#usr/include/linux/netfilter_ipv4/ipt_recent.h
-#usr/include/linux/netfilter_ipv4/ipt_sctp.h
-#usr/include/linux/netfilter_ipv4/ipt_state.h
-#usr/include/linux/netfilter_ipv4/ipt_tcpmss.h
-#usr/include/linux/netfilter_ipv4/ipt_tos.h
-#usr/include/linux/netfilter_ipv4/ipt_ttl.h
-#usr/include/linux/netfilter_ipv4/listhelp.h
-#usr/include/linux/netfilter_ipv4/lockhelp.h
-#usr/include/linux/netfilter_ipv6
-#usr/include/linux/netfilter_ipv6.h
-#usr/include/linux/netfilter_ipv6/ip6_tables.h
-#usr/include/linux/netfilter_ipv6/ip6t_LOG.h
-#usr/include/linux/netfilter_ipv6/ip6t_MARK.h
-#usr/include/linux/netfilter_ipv6/ip6t_ah.h
-#usr/include/linux/netfilter_ipv6/ip6t_esp.h
-#usr/include/linux/netfilter_ipv6/ip6t_frag.h
-#usr/include/linux/netfilter_ipv6/ip6t_hl.h
-#usr/include/linux/netfilter_ipv6/ip6t_ipv6header.h
-#usr/include/linux/netfilter_ipv6/ip6t_length.h
-#usr/include/linux/netfilter_ipv6/ip6t_limit.h
-#usr/include/linux/netfilter_ipv6/ip6t_mac.h
-#usr/include/linux/netfilter_ipv6/ip6t_mark.h
-#usr/include/linux/netfilter_ipv6/ip6t_multiport.h
-#usr/include/linux/netfilter_ipv6/ip6t_opts.h
-#usr/include/linux/netfilter_ipv6/ip6t_owner.h
-#usr/include/linux/netfilter_ipv6/ip6t_physdev.h
-#usr/include/linux/netfilter_ipv6/ip6t_rt.h
-#usr/include/linux/netlink.h
-#usr/include/linux/netrom.h
-#usr/include/linux/nfs.h
-#usr/include/linux/nfs2.h
-#usr/include/linux/nfs3.h
-#usr/include/linux/nfs4.h
-#usr/include/linux/nfs4_mount.h
-#usr/include/linux/nfs_fs.h
-#usr/include/linux/nfs_fs_i.h
-#usr/include/linux/nfs_fs_sb.h
-#usr/include/linux/nfs_idmap.h
-#usr/include/linux/nfs_mount.h
-#usr/include/linux/nfs_xdr.h
-#usr/include/linux/nfsd
-#usr/include/linux/nfsd/const.h
-#usr/include/linux/nfsd/debug.h
-#usr/include/linux/nfsd/export.h
-#usr/include/linux/nfsd/interface.h
-#usr/include/linux/nfsd/nfsd.h
-#usr/include/linux/nfsd/nfsfh.h
-#usr/include/linux/nfsd/state.h
-#usr/include/linux/nfsd/stats.h
-#usr/include/linux/nfsd/syscall.h
-#usr/include/linux/nfsd/xdr.h
-#usr/include/linux/nfsd/xdr3.h
-#usr/include/linux/nfsd/xdr4.h
-#usr/include/linux/nls.h
-#usr/include/linux/nmi.h
-#usr/include/linux/node.h
-#usr/include/linux/notifier.h
-#usr/include/linux/nubus.h
-#usr/include/linux/numa.h
-#usr/include/linux/nvram.h
-#usr/include/linux/openprom_fs.h
-#usr/include/linux/oprofile.h
-#usr/include/linux/pagemap.h
-#usr/include/linux/pagevec.h
-#usr/include/linux/param.h
-#usr/include/linux/parport.h
-#usr/include/linux/parport_pc.h
-#usr/include/linux/parser.h
-#usr/include/linux/patchkey.h
-#usr/include/linux/pci-dynids.h
-#usr/include/linux/pci.h
-#usr/include/linux/pci_ids.h
-#usr/include/linux/pcieport_if.h
-#usr/include/linux/percpu.h
-#usr/include/linux/percpu_counter.h
-#usr/include/linux/personality.h
-#usr/include/linux/pfkeyv2.h
-#usr/include/linux/pg.h
-#usr/include/linux/pipe_fs_i.h
-#usr/include/linux/pkt_cls.h
-#usr/include/linux/pkt_sched.h
-#usr/include/linux/pktcdvd.h
-#usr/include/linux/pmu.h
-#usr/include/linux/poll.h
-#usr/include/linux/posix-timers.h
-#usr/include/linux/posix_acl.h
-#usr/include/linux/posix_acl_xattr.h
-#usr/include/linux/posix_types.h
-#usr/include/linux/ppdev.h
-#usr/include/linux/ppp-comp.h
-#usr/include/linux/ppp_channel.h
-#usr/include/linux/ppp_defs.h
-#usr/include/linux/prctl.h
-#usr/include/linux/preempt.h
-#usr/include/linux/prefetch.h
-#usr/include/linux/proc_fs.h
-#usr/include/linux/ps2esdi.h
-#usr/include/linux/ptrace.h
-#usr/include/linux/qic117.h
-#usr/include/linux/qnx4_fs.h
-#usr/include/linux/qnxtypes.h
-#usr/include/linux/quota.h
-#usr/include/linux/quotaio_v1.h
-#usr/include/linux/quotaio_v2.h
-#usr/include/linux/radeonfb.h
-#usr/include/linux/raid
-#usr/include/linux/raid/linear.h
-#usr/include/linux/raid/md.h
-#usr/include/linux/raid/md_p.h
-#usr/include/linux/raid/md_u.h
-#usr/include/linux/raid/multipath.h
-#usr/include/linux/raid/raid0.h
-#usr/include/linux/raid/raid1.h
-#usr/include/linux/raid/raid5.h
-#usr/include/linux/raid/xor.h
-#usr/include/linux/random.h
-#usr/include/linux/raw.h
-#usr/include/linux/rbtree.h
-#usr/include/linux/reboot.h
-#usr/include/linux/reiserfs_acl.h
-#usr/include/linux/reiserfs_fs.h
-#usr/include/linux/reiserfs_xattr.h
-#usr/include/linux/resource.h
-#usr/include/linux/romfs_fs.h
-#usr/include/linux/root_dev.h
-#usr/include/linux/rose.h
-#usr/include/linux/route.h
-#usr/include/linux/rtc.h
-#usr/include/linux/rtnetlink.h
-#usr/include/linux/sc26198.h
-#usr/include/linux/scc.h
-#usr/include/linux/sched.h
-#usr/include/linux/sctp.h
-#usr/include/linux/scx200.h
-#usr/include/linux/scx200_gpio.h
-#usr/include/linux/sdla.h
-#usr/include/linux/sdla_asy.h
-#usr/include/linux/sdla_chdlc.h
-#usr/include/linux/sdla_fr.h
-#usr/include/linux/sdla_ppp.h
-#usr/include/linux/sdla_x25.h
-#usr/include/linux/sdladrv.h
-#usr/include/linux/sdlapci.h
-#usr/include/linux/sdlasfm.h
-#usr/include/linux/securebits.h
-#usr/include/linux/security.h
-#usr/include/linux/selection.h
-#usr/include/linux/selinux_netlink.h
-#usr/include/linux/sem.h
-#usr/include/linux/seqlock.h
-#usr/include/linux/serial.h
-#usr/include/linux/serial167.h
-#usr/include/linux/serialP.h
-#usr/include/linux/serial_8250.h
-#usr/include/linux/serial_core.h
-#usr/include/linux/serial_reg.h
-#usr/include/linux/serio.h
-#usr/include/linux/shm.h
-#usr/include/linux/siginfo.h
-#usr/include/linux/signal.h
-#usr/include/linux/skbuff.h
-#usr/include/linux/smb.h
-#usr/include/linux/smb_fs.h
-#usr/include/linux/smb_mount.h
-#usr/include/linux/smbno.h
-#usr/include/linux/smp_lock.h
-#usr/include/linux/snmp.h
-#usr/include/linux/socket.h
-#usr/include/linux/sockios.h
-#usr/include/linux/som.h
-#usr/include/linux/sonet.h
-#usr/include/linux/sonypi.h
-#usr/include/linux/sound.h
-#usr/include/linux/soundcard.h
-#usr/include/linux/spinlock.h
-#usr/include/linux/stallion.h
-#usr/include/linux/stddef.h
-#usr/include/linux/stringify.h
-#usr/include/linux/sunrpc
-#usr/include/linux/sunrpc/cache.h
-#usr/include/linux/sunrpc/clnt.h
-#usr/include/linux/sunrpc/debug.h
-#usr/include/linux/sunrpc/gss_asn1.h
-#usr/include/linux/sunrpc/gss_krb5.h
-#usr/include/linux/sunrpc/gss_spkm3.h
-#usr/include/linux/sunrpc/sched.h
-#usr/include/linux/sunrpc/stats.h
-#usr/include/linux/sunrpc/svc.h
-#usr/include/linux/sunrpc/svcsock.h
-#usr/include/linux/sunrpc/timer.h
-#usr/include/linux/sunrpc/types.h
-#usr/include/linux/sunrpc/xprt.h
-#usr/include/linux/superhyway.h
-#usr/include/linux/suspend.h
-#usr/include/linux/swap.h
-#usr/include/linux/swapops.h
-#usr/include/linux/synclink.h
-#usr/include/linux/sys.h
-#usr/include/linux/syscalls.h
-#usr/include/linux/sysctl.h
-#usr/include/linux/sysdev.h
-#usr/include/linux/sysfs.h
-#usr/include/linux/sysrq.h
-#usr/include/linux/sysv_fs.h
-#usr/include/linux/tc_act
-#usr/include/linux/tc_act/tc_defact.h
-#usr/include/linux/tc_act/tc_gact.h
-#usr/include/linux/tc_act/tc_ipt.h
-#usr/include/linux/tc_act/tc_mirred.h
-#usr/include/linux/tc_act/tc_pedit.h
-#usr/include/linux/tc_ematch
-#usr/include/linux/tc_ematch/tc_em_cmp.h
-#usr/include/linux/tc_ematch/tc_em_meta.h
-#usr/include/linux/tc_ematch/tc_em_nbyte.h
-#usr/include/linux/tcp.h
-#usr/include/linux/tcp_diag.h
-#usr/include/linux/telephony.h
-#usr/include/linux/termios.h
-#usr/include/linux/threads.h
-#usr/include/linux/ticable.h
-#usr/include/linux/time.h
-#usr/include/linux/times.h
-#usr/include/linux/timex.h
-#usr/include/linux/tiocl.h
-#usr/include/linux/toshiba.h
-#usr/include/linux/tty.h
-#usr/include/linux/types.h
-#usr/include/linux/udf_fs.h
-#usr/include/linux/udf_fs_i.h
-#usr/include/linux/udf_fs_sb.h
-#usr/include/linux/udp.h
-#usr/include/linux/ufs_fs.h
-#usr/include/linux/uinput.h
-#usr/include/linux/uio.h
-#usr/include/linux/ultrasound.h
-#usr/include/linux/umem.h
-#usr/include/linux/un.h
-#usr/include/linux/unistd.h
-#usr/include/linux/usb.h
-#usr/include/linux/usb_cdc.h
-#usr/include/linux/usb_ch9.h
-#usr/include/linux/usb_gadgetfs.h
-#usr/include/linux/usbdevice_fs.h
-#usr/include/linux/user.h
-#usr/include/linux/utime.h
-#usr/include/linux/uts.h
-#usr/include/linux/utsname.h
-#usr/include/linux/version.h
-#usr/include/linux/video_decoder.h
-#usr/include/linux/video_encoder.h
-#usr/include/linux/videodev.h
-#usr/include/linux/videodev2.h
-#usr/include/linux/videotext.h
-#usr/include/linux/vmalloc.h
-#usr/include/linux/vt.h
-#usr/include/linux/vt_buffer.h
-#usr/include/linux/vt_kern.h
-#usr/include/linux/wait.h
-#usr/include/linux/wanpipe.h
-#usr/include/linux/wanrouter.h
-#usr/include/linux/watchdog.h
-#usr/include/linux/wavefront.h
-#usr/include/linux/wireless.h
-#usr/include/linux/workqueue.h
-#usr/include/linux/x25.h
-#usr/include/linux/xattr.h
-#usr/include/linux/xattr_acl.h
-#usr/include/linux/xfrm.h
-#usr/include/linux/yam.h
-#usr/include/linux/zftape.h
-#usr/include/linux/zorro.h
-#usr/include/linux/zorro_ids.h
-#opt/MACHINE-uClibc
-#opt/MACHINE-uClibc/usr
-#opt/MACHINE-uClibc/usr/include
-#opt/MACHINE-uClibc/usr/include/asm
-#opt/MACHINE-uClibc/usr/include/asm/8253pit.h
-#opt/MACHINE-uClibc/usr/include/asm/a.out.h
-#opt/MACHINE-uClibc/usr/include/asm/agp.h
-#opt/MACHINE-uClibc/usr/include/asm/apic.h
-#opt/MACHINE-uClibc/usr/include/asm/apicdef.h
-#opt/MACHINE-uClibc/usr/include/asm/arch_hooks.h
-#opt/MACHINE-uClibc/usr/include/asm/atomic.h
-#opt/MACHINE-uClibc/usr/include/asm/bitops.h
-#opt/MACHINE-uClibc/usr/include/asm/boot.h
-#opt/MACHINE-uClibc/usr/include/asm/byteorder.h
-#opt/MACHINE-uClibc/usr/include/asm/cache.h
-#opt/MACHINE-uClibc/usr/include/asm/cacheflush.h
-#opt/MACHINE-uClibc/usr/include/asm/checksum.h
-#opt/MACHINE-uClibc/usr/include/asm/cpu.h
-#opt/MACHINE-uClibc/usr/include/asm/cpufeature.h
-#opt/MACHINE-uClibc/usr/include/asm/debugreg.h
-#opt/MACHINE-uClibc/usr/include/asm/desc.h
-#opt/MACHINE-uClibc/usr/include/asm/dma.h
-#opt/MACHINE-uClibc/usr/include/asm/e820.h
-#opt/MACHINE-uClibc/usr/include/asm/elf.h
-#opt/MACHINE-uClibc/usr/include/asm/errno.h
-#opt/MACHINE-uClibc/usr/include/asm/fcntl.h
-#opt/MACHINE-uClibc/usr/include/asm/fixmap.h
-#opt/MACHINE-uClibc/usr/include/asm/floppy.h
-#opt/MACHINE-uClibc/usr/include/asm/genapic.h
-#opt/MACHINE-uClibc/usr/include/asm/hardirq.h
-#opt/MACHINE-uClibc/usr/include/asm/hdreg.h
-#opt/MACHINE-uClibc/usr/include/asm/hw_irq.h
-#opt/MACHINE-uClibc/usr/include/asm/i8259.h
-#opt/MACHINE-uClibc/usr/include/asm/init.h
-#opt/MACHINE-uClibc/usr/include/asm/io.h
-#opt/MACHINE-uClibc/usr/include/asm/io_apic.h
-#opt/MACHINE-uClibc/usr/include/asm/ioctl.h
-#opt/MACHINE-uClibc/usr/include/asm/ioctls.h
-#opt/MACHINE-uClibc/usr/include/asm/ipc.h
-#opt/MACHINE-uClibc/usr/include/asm/ipcbuf.h
-#opt/MACHINE-uClibc/usr/include/asm/irq.h
-#opt/MACHINE-uClibc/usr/include/asm/kdebug.h
-#opt/MACHINE-uClibc/usr/include/asm/kprobes.h
-#opt/MACHINE-uClibc/usr/include/asm/ldt.h
-#opt/MACHINE-uClibc/usr/include/asm/linkage.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-bigsmp
-#opt/MACHINE-uClibc/usr/include/asm/mach-bigsmp/mach_apic.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-bigsmp/mach_apicdef.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-bigsmp/mach_ipi.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-bigsmp/mach_mpspec.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-default
-#opt/MACHINE-uClibc/usr/include/asm/mach-default/apm.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-default/bios_ebda.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-default/do_timer.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-default/entry_arch.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-default/io_ports.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-default/irq_vectors.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-default/mach_apic.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-default/mach_apicdef.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-default/mach_ipi.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-default/mach_mpparse.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-default/mach_mpspec.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-default/mach_reboot.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-default/mach_time.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-default/mach_timer.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-default/mach_traps.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-default/mach_wakecpu.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-default/pci-functions.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-default/setup_arch_post.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-default/setup_arch_pre.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-default/smpboot_hooks.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-es7000
-#opt/MACHINE-uClibc/usr/include/asm/mach-es7000/mach_apic.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-es7000/mach_apicdef.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-es7000/mach_ipi.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-es7000/mach_mpparse.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-es7000/mach_mpspec.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-es7000/mach_wakecpu.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-generic
-#opt/MACHINE-uClibc/usr/include/asm/mach-generic/mach_apic.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-generic/mach_apicdef.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-generic/mach_ipi.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-generic/mach_mpparse.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-generic/mach_mpspec.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-numaq
-#opt/MACHINE-uClibc/usr/include/asm/mach-numaq/mach_apic.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-numaq/mach_apicdef.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-numaq/mach_ipi.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-numaq/mach_mpparse.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-numaq/mach_mpspec.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-numaq/mach_wakecpu.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-summit
-#opt/MACHINE-uClibc/usr/include/asm/mach-summit/mach_apic.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-summit/mach_apicdef.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-summit/mach_ipi.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-summit/mach_mpparse.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-summit/mach_mpspec.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-visws
-#opt/MACHINE-uClibc/usr/include/asm/mach-visws/cobalt.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-visws/do_timer.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-visws/entry_arch.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-visws/irq_vectors.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-visws/lithium.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-visws/mach_apic.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-visws/mach_apicdef.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-visws/piix4.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-visws/setup_arch_post.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-visws/setup_arch_pre.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-visws/smpboot_hooks.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-voyager
-#opt/MACHINE-uClibc/usr/include/asm/mach-voyager/do_timer.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-voyager/entry_arch.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-voyager/irq_vectors.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-voyager/setup_arch_post.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-voyager/setup_arch_pre.h
-#opt/MACHINE-uClibc/usr/include/asm/math_emu.h
-#opt/MACHINE-uClibc/usr/include/asm/mca.h
-#opt/MACHINE-uClibc/usr/include/asm/mca_dma.h
-#opt/MACHINE-uClibc/usr/include/asm/mman.h
-#opt/MACHINE-uClibc/usr/include/asm/mmu.h
-#opt/MACHINE-uClibc/usr/include/asm/mmu_context.h
-#opt/MACHINE-uClibc/usr/include/asm/mmx.h
-#opt/MACHINE-uClibc/usr/include/asm/module.h
-#opt/MACHINE-uClibc/usr/include/asm/mpspec.h
-#opt/MACHINE-uClibc/usr/include/asm/mpspec_def.h
-#opt/MACHINE-uClibc/usr/include/asm/msgbuf.h
-#opt/MACHINE-uClibc/usr/include/asm/msr.h
-#opt/MACHINE-uClibc/usr/include/asm/mtrr.h
-#opt/MACHINE-uClibc/usr/include/asm/namei.h
-#opt/MACHINE-uClibc/usr/include/asm/nmi.h
-#opt/MACHINE-uClibc/usr/include/asm/node.h
-#opt/MACHINE-uClibc/usr/include/asm/numaq.h
-#opt/MACHINE-uClibc/usr/include/asm/numnodes.h
-#opt/MACHINE-uClibc/usr/include/asm/page.h
-#opt/MACHINE-uClibc/usr/include/asm/param.h
-#opt/MACHINE-uClibc/usr/include/asm/parport.h
-#opt/MACHINE-uClibc/usr/include/asm/pgalloc.h
-#opt/MACHINE-uClibc/usr/include/asm/poll.h
-#opt/MACHINE-uClibc/usr/include/asm/posix_types.h
-#opt/MACHINE-uClibc/usr/include/asm/processor.h
-#opt/MACHINE-uClibc/usr/include/asm/ptrace.h
-#opt/MACHINE-uClibc/usr/include/asm/rwlock.h
-#opt/MACHINE-uClibc/usr/include/asm/segment.h
-#opt/MACHINE-uClibc/usr/include/asm/semaphore.h
-#opt/MACHINE-uClibc/usr/include/asm/sembuf.h
-#opt/MACHINE-uClibc/usr/include/asm/serial.h
-#opt/MACHINE-uClibc/usr/include/asm/shmbuf.h
-#opt/MACHINE-uClibc/usr/include/asm/shmparam.h
-#opt/MACHINE-uClibc/usr/include/asm/sigcontext.h
-#opt/MACHINE-uClibc/usr/include/asm/siginfo.h
-#opt/MACHINE-uClibc/usr/include/asm/socket.h
-#opt/MACHINE-uClibc/usr/include/asm/sockios.h
-#opt/MACHINE-uClibc/usr/include/asm/spinlock.h
-#opt/MACHINE-uClibc/usr/include/asm/srat.h
-#opt/MACHINE-uClibc/usr/include/asm/stat.h
-#opt/MACHINE-uClibc/usr/include/asm/suspend.h
-#opt/MACHINE-uClibc/usr/include/asm/system.h
-#opt/MACHINE-uClibc/usr/include/asm/termbits.h
-#opt/MACHINE-uClibc/usr/include/asm/termios.h
-#opt/MACHINE-uClibc/usr/include/asm/timer.h
-#opt/MACHINE-uClibc/usr/include/asm/timex.h
-#opt/MACHINE-uClibc/usr/include/asm/tlbflush.h
-#opt/MACHINE-uClibc/usr/include/asm/types.h
-#opt/MACHINE-uClibc/usr/include/asm/ucontext.h
-#opt/MACHINE-uClibc/usr/include/asm/unaligned.h
-#opt/MACHINE-uClibc/usr/include/asm/unistd.h
-#opt/MACHINE-uClibc/usr/include/asm/user.h
-#opt/MACHINE-uClibc/usr/include/asm/vga.h
-#opt/MACHINE-uClibc/usr/include/asm/vic.h
-#opt/MACHINE-uClibc/usr/include/asm/vm86.h
-#opt/MACHINE-uClibc/usr/include/asm/voyager.h
-#opt/MACHINE-uClibc/usr/include/linux
-#opt/MACHINE-uClibc/usr/include/linux/8250_pci.h
-#opt/MACHINE-uClibc/usr/include/linux/a.out.h
-#opt/MACHINE-uClibc/usr/include/linux/acct.h
-#opt/MACHINE-uClibc/usr/include/linux/acpi.h
-#opt/MACHINE-uClibc/usr/include/linux/adb.h
-#opt/MACHINE-uClibc/usr/include/linux/adfs_fs.h
-#opt/MACHINE-uClibc/usr/include/linux/adfs_fs_sb.h
-#opt/MACHINE-uClibc/usr/include/linux/affs_fs.h
-#opt/MACHINE-uClibc/usr/include/linux/affs_hardblocks.h
-#opt/MACHINE-uClibc/usr/include/linux/agpgart.h
-#opt/MACHINE-uClibc/usr/include/linux/aio.h
-#opt/MACHINE-uClibc/usr/include/linux/aio_abi.h
-#opt/MACHINE-uClibc/usr/include/linux/amifd.h
-#opt/MACHINE-uClibc/usr/include/linux/amifdreg.h
-#opt/MACHINE-uClibc/usr/include/linux/amigaffs.h
-#opt/MACHINE-uClibc/usr/include/linux/apm_bios.h
-#opt/MACHINE-uClibc/usr/include/linux/ata.h
-#opt/MACHINE-uClibc/usr/include/linux/atalk.h
-#opt/MACHINE-uClibc/usr/include/linux/atm.h
-#opt/MACHINE-uClibc/usr/include/linux/atm_eni.h
-#opt/MACHINE-uClibc/usr/include/linux/atm_he.h
-#opt/MACHINE-uClibc/usr/include/linux/atm_idt77105.h
-#opt/MACHINE-uClibc/usr/include/linux/atm_nicstar.h
-#opt/MACHINE-uClibc/usr/include/linux/atm_suni.h
-#opt/MACHINE-uClibc/usr/include/linux/atm_tcp.h
-#opt/MACHINE-uClibc/usr/include/linux/atm_zatm.h
-#opt/MACHINE-uClibc/usr/include/linux/atmapi.h
-#opt/MACHINE-uClibc/usr/include/linux/atmarp.h
-#opt/MACHINE-uClibc/usr/include/linux/atmbr2684.h
-#opt/MACHINE-uClibc/usr/include/linux/atmclip.h
-#opt/MACHINE-uClibc/usr/include/linux/atmdev.h
-#opt/MACHINE-uClibc/usr/include/linux/atmioc.h
-#opt/MACHINE-uClibc/usr/include/linux/atmlec.h
-#opt/MACHINE-uClibc/usr/include/linux/atmmpc.h
-#opt/MACHINE-uClibc/usr/include/linux/atmppp.h
-#opt/MACHINE-uClibc/usr/include/linux/atmsap.h
-#opt/MACHINE-uClibc/usr/include/linux/atmsvc.h
-#opt/MACHINE-uClibc/usr/include/linux/audit.h
-#opt/MACHINE-uClibc/usr/include/linux/auto_fs.h
-#opt/MACHINE-uClibc/usr/include/linux/auto_fs4.h
-#opt/MACHINE-uClibc/usr/include/linux/autoconf.h
-#opt/MACHINE-uClibc/usr/include/linux/awe_voice.h
-#opt/MACHINE-uClibc/usr/include/linux/ax25.h
-#opt/MACHINE-uClibc/usr/include/linux/b1lli.h
-#opt/MACHINE-uClibc/usr/include/linux/backing-dev.h
-#opt/MACHINE-uClibc/usr/include/linux/backlight.h
-#opt/MACHINE-uClibc/usr/include/linux/baycom.h
-#opt/MACHINE-uClibc/usr/include/linux/bcd.h
-#opt/MACHINE-uClibc/usr/include/linux/bfs_fs.h
-#opt/MACHINE-uClibc/usr/include/linux/binfmts.h
-#opt/MACHINE-uClibc/usr/include/linux/bitmap.h
-#opt/MACHINE-uClibc/usr/include/linux/bitops.h
-#opt/MACHINE-uClibc/usr/include/linux/blkpg.h
-#opt/MACHINE-uClibc/usr/include/linux/blockgroup_lock.h
-#opt/MACHINE-uClibc/usr/include/linux/bootmem.h
-#opt/MACHINE-uClibc/usr/include/linux/bpqether.h
-#opt/MACHINE-uClibc/usr/include/linux/byteorder
-#opt/MACHINE-uClibc/usr/include/linux/byteorder/big_endian.h
-#opt/MACHINE-uClibc/usr/include/linux/byteorder/generic.h
-#opt/MACHINE-uClibc/usr/include/linux/byteorder/little_endian.h
-#opt/MACHINE-uClibc/usr/include/linux/byteorder/pdp_endian.h
-#opt/MACHINE-uClibc/usr/include/linux/byteorder/swab.h
-#opt/MACHINE-uClibc/usr/include/linux/byteorder/swabb.h
-#opt/MACHINE-uClibc/usr/include/linux/cache.h
-#opt/MACHINE-uClibc/usr/include/linux/capability.h
-#opt/MACHINE-uClibc/usr/include/linux/capi.h
-#opt/MACHINE-uClibc/usr/include/linux/cciss_ioctl.h
-#opt/MACHINE-uClibc/usr/include/linux/cd1400.h
-#opt/MACHINE-uClibc/usr/include/linux/cdk.h
-#opt/MACHINE-uClibc/usr/include/linux/cdrom.h
-#opt/MACHINE-uClibc/usr/include/linux/circ_buf.h
-#opt/MACHINE-uClibc/usr/include/linux/cobalt-nvram.h
-#opt/MACHINE-uClibc/usr/include/linux/coda.h
-#opt/MACHINE-uClibc/usr/include/linux/coda_proc.h
-#opt/MACHINE-uClibc/usr/include/linux/coda_psdev.h
-#opt/MACHINE-uClibc/usr/include/linux/coff.h
-#opt/MACHINE-uClibc/usr/include/linux/com20020.h
-#opt/MACHINE-uClibc/usr/include/linux/compat.h
-#opt/MACHINE-uClibc/usr/include/linux/compat_ioctl.h
-#opt/MACHINE-uClibc/usr/include/linux/compiler.h
-#opt/MACHINE-uClibc/usr/include/linux/comstats.h
-#opt/MACHINE-uClibc/usr/include/linux/config.h
-#opt/MACHINE-uClibc/usr/include/linux/console.h
-#opt/MACHINE-uClibc/usr/include/linux/console_struct.h
-#opt/MACHINE-uClibc/usr/include/linux/consolemap.h
-#opt/MACHINE-uClibc/usr/include/linux/cpu.h
-#opt/MACHINE-uClibc/usr/include/linux/cpufreq.h
-#opt/MACHINE-uClibc/usr/include/linux/cramfs_fs.h
-#opt/MACHINE-uClibc/usr/include/linux/cramfs_fs_sb.h
-#opt/MACHINE-uClibc/usr/include/linux/crc32.h
-#opt/MACHINE-uClibc/usr/include/linux/crypto.h
-#opt/MACHINE-uClibc/usr/include/linux/ctype.h
-#opt/MACHINE-uClibc/usr/include/linux/cuda.h
-#opt/MACHINE-uClibc/usr/include/linux/cyclades.h
-#opt/MACHINE-uClibc/usr/include/linux/cycx_cfm.h
-#opt/MACHINE-uClibc/usr/include/linux/cycx_drv.h
-#opt/MACHINE-uClibc/usr/include/linux/cycx_x25.h
-#opt/MACHINE-uClibc/usr/include/linux/devfs_fs.h
-#opt/MACHINE-uClibc/usr/include/linux/devfs_fs_kernel.h
-#opt/MACHINE-uClibc/usr/include/linux/device-mapper.h
-#opt/MACHINE-uClibc/usr/include/linux/device.h
-#opt/MACHINE-uClibc/usr/include/linux/devpts_fs.h
-#opt/MACHINE-uClibc/usr/include/linux/dirent.h
-#opt/MACHINE-uClibc/usr/include/linux/divert.h
-#opt/MACHINE-uClibc/usr/include/linux/dm-ioctl.h
-#opt/MACHINE-uClibc/usr/include/linux/dn.h
-#opt/MACHINE-uClibc/usr/include/linux/dnotify.h
-#opt/MACHINE-uClibc/usr/include/linux/dqblk_v1.h
-#opt/MACHINE-uClibc/usr/include/linux/dqblk_v2.h
-#opt/MACHINE-uClibc/usr/include/linux/dqblk_xfs.h
-#opt/MACHINE-uClibc/usr/include/linux/dtlk.h
-#opt/MACHINE-uClibc/usr/include/linux/dvb
-#opt/MACHINE-uClibc/usr/include/linux/dvb/audio.h
-#opt/MACHINE-uClibc/usr/include/linux/dvb/ca.h
-#opt/MACHINE-uClibc/usr/include/linux/dvb/dmx.h
-#opt/MACHINE-uClibc/usr/include/linux/dvb/frontend.h
-#opt/MACHINE-uClibc/usr/include/linux/dvb/net.h
-#opt/MACHINE-uClibc/usr/include/linux/dvb/osd.h
-#opt/MACHINE-uClibc/usr/include/linux/dvb/version.h
-#opt/MACHINE-uClibc/usr/include/linux/dvb/video.h
-#opt/MACHINE-uClibc/usr/include/linux/eeprom.h
-#opt/MACHINE-uClibc/usr/include/linux/efi.h
-#opt/MACHINE-uClibc/usr/include/linux/efs_dir.h
-#opt/MACHINE-uClibc/usr/include/linux/efs_fs.h
-#opt/MACHINE-uClibc/usr/include/linux/efs_fs_i.h
-#opt/MACHINE-uClibc/usr/include/linux/efs_fs_sb.h
-#opt/MACHINE-uClibc/usr/include/linux/efs_vh.h
-#opt/MACHINE-uClibc/usr/include/linux/eisa.h
-#opt/MACHINE-uClibc/usr/include/linux/elevator.h
-#opt/MACHINE-uClibc/usr/include/linux/elf-fdpic.h
-#opt/MACHINE-uClibc/usr/include/linux/elf.h
-#opt/MACHINE-uClibc/usr/include/linux/elfcore.h
-#opt/MACHINE-uClibc/usr/include/linux/err.h
-#opt/MACHINE-uClibc/usr/include/linux/err_kernel_only.h
-#opt/MACHINE-uClibc/usr/include/linux/errno.h
-#opt/MACHINE-uClibc/usr/include/linux/errqueue.h
-#opt/MACHINE-uClibc/usr/include/linux/ethtool.h
-#opt/MACHINE-uClibc/usr/include/linux/eventpoll.h
-#opt/MACHINE-uClibc/usr/include/linux/ext2_fs.h
-#opt/MACHINE-uClibc/usr/include/linux/ext3_fs.h
-#opt/MACHINE-uClibc/usr/include/linux/ext3_jbd.h
-#opt/MACHINE-uClibc/usr/include/linux/fadvise.h
-#opt/MACHINE-uClibc/usr/include/linux/fb.h
-#opt/MACHINE-uClibc/usr/include/linux/fcntl.h
-#opt/MACHINE-uClibc/usr/include/linux/fd.h
-#opt/MACHINE-uClibc/usr/include/linux/fd1772.h
-#opt/MACHINE-uClibc/usr/include/linux/fdreg.h
-#opt/MACHINE-uClibc/usr/include/linux/file.h
-#opt/MACHINE-uClibc/usr/include/linux/filter.h
-#opt/MACHINE-uClibc/usr/include/linux/firmware.h
-#opt/MACHINE-uClibc/usr/include/linux/flat.h
-#opt/MACHINE-uClibc/usr/include/linux/font.h
-#opt/MACHINE-uClibc/usr/include/linux/fs.h
-#opt/MACHINE-uClibc/usr/include/linux/fs_struct.h
-#opt/MACHINE-uClibc/usr/include/linux/ftape-header-segment.h
-#opt/MACHINE-uClibc/usr/include/linux/ftape-vendors.h
-#opt/MACHINE-uClibc/usr/include/linux/ftape.h
-#opt/MACHINE-uClibc/usr/include/linux/futex.h
-#opt/MACHINE-uClibc/usr/include/linux/gameport.h
-#opt/MACHINE-uClibc/usr/include/linux/gen_stats.h
-#opt/MACHINE-uClibc/usr/include/linux/generic_serial.h
-#opt/MACHINE-uClibc/usr/include/linux/genhd.h
-#opt/MACHINE-uClibc/usr/include/linux/gfp.h
-#opt/MACHINE-uClibc/usr/include/linux/hash.h
-#opt/MACHINE-uClibc/usr/include/linux/hayesesp.h
-#opt/MACHINE-uClibc/usr/include/linux/hdlc
-#opt/MACHINE-uClibc/usr/include/linux/hdlc.h
-#opt/MACHINE-uClibc/usr/include/linux/hdlc/ioctl.h
-#opt/MACHINE-uClibc/usr/include/linux/hdlcdrv.h
-#opt/MACHINE-uClibc/usr/include/linux/hdreg.h
-#opt/MACHINE-uClibc/usr/include/linux/hdsmart.h
-#opt/MACHINE-uClibc/usr/include/linux/hiddev.h
-#opt/MACHINE-uClibc/usr/include/linux/highuid.h
-#opt/MACHINE-uClibc/usr/include/linux/hpfs_fs.h
-#opt/MACHINE-uClibc/usr/include/linux/hysdn_if.h
-#opt/MACHINE-uClibc/usr/include/linux/i2c-algo-bit.h
-#opt/MACHINE-uClibc/usr/include/linux/i2c-algo-ite.h
-#opt/MACHINE-uClibc/usr/include/linux/i2c-algo-pcf.h
-#opt/MACHINE-uClibc/usr/include/linux/i2c-algo-sgi.h
-#opt/MACHINE-uClibc/usr/include/linux/i2c-algo-sibyte.h
-#opt/MACHINE-uClibc/usr/include/linux/i2c-dev.h
-#opt/MACHINE-uClibc/usr/include/linux/i2c-id.h
-#opt/MACHINE-uClibc/usr/include/linux/i2c-sensor.h
-#opt/MACHINE-uClibc/usr/include/linux/i2c-vid.h
-#opt/MACHINE-uClibc/usr/include/linux/i2c.h
-#opt/MACHINE-uClibc/usr/include/linux/i2o-dev.h
-#opt/MACHINE-uClibc/usr/include/linux/i8k.h
-#opt/MACHINE-uClibc/usr/include/linux/ibmtr.h
-#opt/MACHINE-uClibc/usr/include/linux/icmp.h
-#opt/MACHINE-uClibc/usr/include/linux/icmpv6.h
-#opt/MACHINE-uClibc/usr/include/linux/ide.h
-#opt/MACHINE-uClibc/usr/include/linux/idr.h
-#opt/MACHINE-uClibc/usr/include/linux/if.h
-#opt/MACHINE-uClibc/usr/include/linux/if_arcnet.h
-#opt/MACHINE-uClibc/usr/include/linux/if_arp.h
-#opt/MACHINE-uClibc/usr/include/linux/if_bonding.h
-#opt/MACHINE-uClibc/usr/include/linux/if_bridge.h
-#opt/MACHINE-uClibc/usr/include/linux/if_cablemodem.h
-#opt/MACHINE-uClibc/usr/include/linux/if_ec.h
-#opt/MACHINE-uClibc/usr/include/linux/if_eql.h
-#opt/MACHINE-uClibc/usr/include/linux/if_ether.h
-#opt/MACHINE-uClibc/usr/include/linux/if_fc.h
-#opt/MACHINE-uClibc/usr/include/linux/if_fddi.h
-#opt/MACHINE-uClibc/usr/include/linux/if_frad.h
-#opt/MACHINE-uClibc/usr/include/linux/if_hippi.h
-#opt/MACHINE-uClibc/usr/include/linux/if_infiniband.h
-#opt/MACHINE-uClibc/usr/include/linux/if_ltalk.h
-#opt/MACHINE-uClibc/usr/include/linux/if_packet.h
-#opt/MACHINE-uClibc/usr/include/linux/if_plip.h
-#opt/MACHINE-uClibc/usr/include/linux/if_ppp.h
-#opt/MACHINE-uClibc/usr/include/linux/if_pppox.h
-#opt/MACHINE-uClibc/usr/include/linux/if_shaper.h
-#opt/MACHINE-uClibc/usr/include/linux/if_slip.h
-#opt/MACHINE-uClibc/usr/include/linux/if_strip.h
-#opt/MACHINE-uClibc/usr/include/linux/if_tr.h
-#opt/MACHINE-uClibc/usr/include/linux/if_tun.h
-#opt/MACHINE-uClibc/usr/include/linux/if_tunnel.h
-#opt/MACHINE-uClibc/usr/include/linux/if_vlan.h
-#opt/MACHINE-uClibc/usr/include/linux/if_wanpipe.h
-#opt/MACHINE-uClibc/usr/include/linux/if_wanpipe_common.h
-#opt/MACHINE-uClibc/usr/include/linux/igmp.h
-#opt/MACHINE-uClibc/usr/include/linux/in.h
-#opt/MACHINE-uClibc/usr/include/linux/in6.h
-#opt/MACHINE-uClibc/usr/include/linux/in_route.h
-#opt/MACHINE-uClibc/usr/include/linux/inetdevice.h
-#opt/MACHINE-uClibc/usr/include/linux/init.h
-#opt/MACHINE-uClibc/usr/include/linux/init_task.h
-#opt/MACHINE-uClibc/usr/include/linux/initrd.h
-#opt/MACHINE-uClibc/usr/include/linux/inotify.h
-#opt/MACHINE-uClibc/usr/include/linux/input.h
-#opt/MACHINE-uClibc/usr/include/linux/interrupt.h
-#opt/MACHINE-uClibc/usr/include/linux/ioctl.h
-#opt/MACHINE-uClibc/usr/include/linux/ioctl32.h
-#opt/MACHINE-uClibc/usr/include/linux/ioport.h
-#opt/MACHINE-uClibc/usr/include/linux/ip.h
-#opt/MACHINE-uClibc/usr/include/linux/ip6_tunnel.h
-#opt/MACHINE-uClibc/usr/include/linux/ip_mp_alg.h
-#opt/MACHINE-uClibc/usr/include/linux/ipc.h
-#opt/MACHINE-uClibc/usr/include/linux/ipmi.h
-#opt/MACHINE-uClibc/usr/include/linux/ipmi_msgdefs.h
-#opt/MACHINE-uClibc/usr/include/linux/ipmi_smi.h
-#opt/MACHINE-uClibc/usr/include/linux/ipsec.h
-#opt/MACHINE-uClibc/usr/include/linux/ipv6.h
-#opt/MACHINE-uClibc/usr/include/linux/ipv6_route.h
-#opt/MACHINE-uClibc/usr/include/linux/ipx.h
-#opt/MACHINE-uClibc/usr/include/linux/irda.h
-#opt/MACHINE-uClibc/usr/include/linux/irq.h
-#opt/MACHINE-uClibc/usr/include/linux/irq_cpustat.h
-#opt/MACHINE-uClibc/usr/include/linux/isapnp.h
-#opt/MACHINE-uClibc/usr/include/linux/isdn
-#opt/MACHINE-uClibc/usr/include/linux/isdn.h
-#opt/MACHINE-uClibc/usr/include/linux/isdn/capicmd.h
-#opt/MACHINE-uClibc/usr/include/linux/isdn/capilli.h
-#opt/MACHINE-uClibc/usr/include/linux/isdn/capiutil.h
-#opt/MACHINE-uClibc/usr/include/linux/isdn/tpam.h
-#opt/MACHINE-uClibc/usr/include/linux/isdn_divertif.h
-#opt/MACHINE-uClibc/usr/include/linux/isdn_ppp.h
-#opt/MACHINE-uClibc/usr/include/linux/isdnif.h
-#opt/MACHINE-uClibc/usr/include/linux/isicom.h
-#opt/MACHINE-uClibc/usr/include/linux/iso_fs.h
-#opt/MACHINE-uClibc/usr/include/linux/istallion.h
-#opt/MACHINE-uClibc/usr/include/linux/ite_gpio.h
-#opt/MACHINE-uClibc/usr/include/linux/ixjuser.h
-#opt/MACHINE-uClibc/usr/include/linux/jbd.h
-#opt/MACHINE-uClibc/usr/include/linux/jffs.h
-#opt/MACHINE-uClibc/usr/include/linux/jffs2.h
-#opt/MACHINE-uClibc/usr/include/linux/jffs2_fs_sb.h
-#opt/MACHINE-uClibc/usr/include/linux/jhash.h
-#opt/MACHINE-uClibc/usr/include/linux/jiffies.h
-#opt/MACHINE-uClibc/usr/include/linux/journal-head.h
-#opt/MACHINE-uClibc/usr/include/linux/joystick.h
-#opt/MACHINE-uClibc/usr/include/linux/kallsyms.h
-#opt/MACHINE-uClibc/usr/include/linux/kbd_diacr.h
-#opt/MACHINE-uClibc/usr/include/linux/kbd_kern.h
-#opt/MACHINE-uClibc/usr/include/linux/kd.h
-#opt/MACHINE-uClibc/usr/include/linux/kdev_t.h
-#opt/MACHINE-uClibc/usr/include/linux/kernel.h
-#opt/MACHINE-uClibc/usr/include/linux/kernel_stat.h
-#opt/MACHINE-uClibc/usr/include/linux/kernelcapi.h
-#opt/MACHINE-uClibc/usr/include/linux/keyboard.h
-#opt/MACHINE-uClibc/usr/include/linux/keyctl.h
-#opt/MACHINE-uClibc/usr/include/linux/kmalloc_sizes.h
-#opt/MACHINE-uClibc/usr/include/linux/kmod.h
-#opt/MACHINE-uClibc/usr/include/linux/kprobes.h
-#opt/MACHINE-uClibc/usr/include/linux/lapb.h
-#opt/MACHINE-uClibc/usr/include/linux/lcd.h
-#opt/MACHINE-uClibc/usr/include/linux/libata.h
-#opt/MACHINE-uClibc/usr/include/linux/libps2.h
-#opt/MACHINE-uClibc/usr/include/linux/limits.h
-#opt/MACHINE-uClibc/usr/include/linux/linkage.h
-#opt/MACHINE-uClibc/usr/include/linux/linux_logo.h
-#opt/MACHINE-uClibc/usr/include/linux/list.h
-#opt/MACHINE-uClibc/usr/include/linux/llc.h
-#opt/MACHINE-uClibc/usr/include/linux/lockd
-#opt/MACHINE-uClibc/usr/include/linux/lockd/bind.h
-#opt/MACHINE-uClibc/usr/include/linux/lockd/debug.h
-#opt/MACHINE-uClibc/usr/include/linux/lockd/nlm.h
-#opt/MACHINE-uClibc/usr/include/linux/lockd/share.h
-#opt/MACHINE-uClibc/usr/include/linux/lockd/sm_inter.h
-#opt/MACHINE-uClibc/usr/include/linux/lockd/xdr.h
-#opt/MACHINE-uClibc/usr/include/linux/lockd/xdr4.h
-#opt/MACHINE-uClibc/usr/include/linux/loop.h
-#opt/MACHINE-uClibc/usr/include/linux/lp.h
-#opt/MACHINE-uClibc/usr/include/linux/major.h
-#opt/MACHINE-uClibc/usr/include/linux/matroxfb.h
-#opt/MACHINE-uClibc/usr/include/linux/mbcache.h
-#opt/MACHINE-uClibc/usr/include/linux/mc6821.h
-#opt/MACHINE-uClibc/usr/include/linux/mca-legacy.h
-#opt/MACHINE-uClibc/usr/include/linux/mca.h
-#opt/MACHINE-uClibc/usr/include/linux/mempool.h
-#opt/MACHINE-uClibc/usr/include/linux/meye.h
-#opt/MACHINE-uClibc/usr/include/linux/mii.h
-#opt/MACHINE-uClibc/usr/include/linux/minix_fs.h
-#opt/MACHINE-uClibc/usr/include/linux/miscdevice.h
-#opt/MACHINE-uClibc/usr/include/linux/mm.h
-#opt/MACHINE-uClibc/usr/include/linux/mm_inline.h
-#opt/MACHINE-uClibc/usr/include/linux/mman.h
-#opt/MACHINE-uClibc/usr/include/linux/mod_devicetable.h
-#opt/MACHINE-uClibc/usr/include/linux/module.h
-#opt/MACHINE-uClibc/usr/include/linux/moduleloader.h
-#opt/MACHINE-uClibc/usr/include/linux/moduleparam.h
-#opt/MACHINE-uClibc/usr/include/linux/mount.h
-#opt/MACHINE-uClibc/usr/include/linux/mroute.h
-#opt/MACHINE-uClibc/usr/include/linux/msdos_fs.h
-#opt/MACHINE-uClibc/usr/include/linux/msg.h
-#opt/MACHINE-uClibc/usr/include/linux/mtd
-#opt/MACHINE-uClibc/usr/include/linux/mtd/blktrans.h
-#opt/MACHINE-uClibc/usr/include/linux/mtd/cfi.h
-#opt/MACHINE-uClibc/usr/include/linux/mtd/cfi_endian.h
-#opt/MACHINE-uClibc/usr/include/linux/mtd/compatmac.h
-#opt/MACHINE-uClibc/usr/include/linux/mtd/concat.h
-#opt/MACHINE-uClibc/usr/include/linux/mtd/doc2000.h
-#opt/MACHINE-uClibc/usr/include/linux/mtd/flashchip.h
-#opt/MACHINE-uClibc/usr/include/linux/mtd/ftl.h
-#opt/MACHINE-uClibc/usr/include/linux/mtd/gen_probe.h
-#opt/MACHINE-uClibc/usr/include/linux/mtd/iflash.h
-#opt/MACHINE-uClibc/usr/include/linux/mtd/jedec.h
-#opt/MACHINE-uClibc/usr/include/linux/mtd/map.h
-#opt/MACHINE-uClibc/usr/include/linux/mtd/nand.h
-#opt/MACHINE-uClibc/usr/include/linux/mtd/nand_ecc.h
-#opt/MACHINE-uClibc/usr/include/linux/mtd/nftl.h
-#opt/MACHINE-uClibc/usr/include/linux/mtd/partitions.h
-#opt/MACHINE-uClibc/usr/include/linux/mtd/pmc551.h
-#opt/MACHINE-uClibc/usr/include/linux/mtio.h
-#opt/MACHINE-uClibc/usr/include/linux/n_r3964.h
-#opt/MACHINE-uClibc/usr/include/linux/namei.h
-#opt/MACHINE-uClibc/usr/include/linux/nbd.h
-#opt/MACHINE-uClibc/usr/include/linux/ncp.h
-#opt/MACHINE-uClibc/usr/include/linux/ncp_fs.h
-#opt/MACHINE-uClibc/usr/include/linux/ncp_mount.h
-#opt/MACHINE-uClibc/usr/include/linux/ncp_no.h
-#opt/MACHINE-uClibc/usr/include/linux/net.h
-#opt/MACHINE-uClibc/usr/include/linux/netdevice.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_arp
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_arp.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_arp/arp_tables.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_arp/arpt_mangle.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge/ebt_802_3.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge/ebt_among.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge/ebt_arp.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge/ebt_arpreply.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge/ebt_ip.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge/ebt_limit.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge/ebt_log.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge/ebt_mark_m.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge/ebt_mark_t.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge/ebt_nat.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge/ebt_pkttype.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge/ebt_redirect.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge/ebt_stp.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge/ebt_ulog.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge/ebt_vlan.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge/ebtables.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_decnet.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_conntrack.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_conntrack_amanda.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_conntrack_core.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_conntrack_ftp.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_conntrack_helper.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_conntrack_icmp.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_conntrack_irc.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_conntrack_protocol.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_conntrack_sctp.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_conntrack_tcp.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_conntrack_tftp.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_conntrack_tuple.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_nat.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_nat_core.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_nat_helper.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_nat_protocol.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_nat_rule.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_queue.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_tables.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_CLASSIFY.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_CLUSTERIP.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_CONNMARK.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_DSCP.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_ECN.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_LOG.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_MARK.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_REJECT.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_SAME.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_TCPMSS.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_TOS.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_ULOG.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_addrtype.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_ah.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_comment.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_connmark.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_conntrack.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_dscp.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_ecn.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_esp.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_hashlimit.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_helper.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_iprange.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_length.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_limit.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_mac.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_mark.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_multiport.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_owner.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_physdev.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_pkttype.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_realm.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_recent.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_sctp.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_state.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_tcpmss.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_tos.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_ttl.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/listhelp.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/lockhelp.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6_tables.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6t_LOG.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6t_MARK.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6t_ah.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6t_esp.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6t_frag.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6t_hl.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6t_ipv6header.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6t_length.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6t_limit.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6t_mac.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6t_mark.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6t_multiport.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6t_opts.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6t_owner.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6t_physdev.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6t_rt.h
-#opt/MACHINE-uClibc/usr/include/linux/netlink.h
-#opt/MACHINE-uClibc/usr/include/linux/netrom.h
-#opt/MACHINE-uClibc/usr/include/linux/nfs.h
-#opt/MACHINE-uClibc/usr/include/linux/nfs2.h
-#opt/MACHINE-uClibc/usr/include/linux/nfs3.h
-#opt/MACHINE-uClibc/usr/include/linux/nfs4.h
-#opt/MACHINE-uClibc/usr/include/linux/nfs4_mount.h
-#opt/MACHINE-uClibc/usr/include/linux/nfs_fs.h
-#opt/MACHINE-uClibc/usr/include/linux/nfs_fs_i.h
-#opt/MACHINE-uClibc/usr/include/linux/nfs_fs_sb.h
-#opt/MACHINE-uClibc/usr/include/linux/nfs_idmap.h
-#opt/MACHINE-uClibc/usr/include/linux/nfs_mount.h
-#opt/MACHINE-uClibc/usr/include/linux/nfs_xdr.h
-#opt/MACHINE-uClibc/usr/include/linux/nfsd
-#opt/MACHINE-uClibc/usr/include/linux/nfsd/const.h
-#opt/MACHINE-uClibc/usr/include/linux/nfsd/debug.h
-#opt/MACHINE-uClibc/usr/include/linux/nfsd/export.h
-#opt/MACHINE-uClibc/usr/include/linux/nfsd/interface.h
-#opt/MACHINE-uClibc/usr/include/linux/nfsd/nfsd.h
-#opt/MACHINE-uClibc/usr/include/linux/nfsd/nfsfh.h
-#opt/MACHINE-uClibc/usr/include/linux/nfsd/state.h
-#opt/MACHINE-uClibc/usr/include/linux/nfsd/stats.h
-#opt/MACHINE-uClibc/usr/include/linux/nfsd/syscall.h
-#opt/MACHINE-uClibc/usr/include/linux/nfsd/xdr.h
-#opt/MACHINE-uClibc/usr/include/linux/nfsd/xdr3.h
-#opt/MACHINE-uClibc/usr/include/linux/nfsd/xdr4.h
-#opt/MACHINE-uClibc/usr/include/linux/nls.h
-#opt/MACHINE-uClibc/usr/include/linux/nmi.h
-#opt/MACHINE-uClibc/usr/include/linux/node.h
-#opt/MACHINE-uClibc/usr/include/linux/notifier.h
-#opt/MACHINE-uClibc/usr/include/linux/nubus.h
-#opt/MACHINE-uClibc/usr/include/linux/numa.h
-#opt/MACHINE-uClibc/usr/include/linux/nvram.h
-#opt/MACHINE-uClibc/usr/include/linux/openprom_fs.h
-#opt/MACHINE-uClibc/usr/include/linux/oprofile.h
-#opt/MACHINE-uClibc/usr/include/linux/pagemap.h
-#opt/MACHINE-uClibc/usr/include/linux/pagevec.h
-#opt/MACHINE-uClibc/usr/include/linux/param.h
-#opt/MACHINE-uClibc/usr/include/linux/parport.h
-#opt/MACHINE-uClibc/usr/include/linux/parport_pc.h
-#opt/MACHINE-uClibc/usr/include/linux/parser.h
-#opt/MACHINE-uClibc/usr/include/linux/patchkey.h
-#opt/MACHINE-uClibc/usr/include/linux/pci-dynids.h
-#opt/MACHINE-uClibc/usr/include/linux/pci.h
-#opt/MACHINE-uClibc/usr/include/linux/pci_ids.h
-#opt/MACHINE-uClibc/usr/include/linux/pcieport_if.h
-#opt/MACHINE-uClibc/usr/include/linux/percpu.h
-#opt/MACHINE-uClibc/usr/include/linux/percpu_counter.h
-#opt/MACHINE-uClibc/usr/include/linux/personality.h
-#opt/MACHINE-uClibc/usr/include/linux/pfkeyv2.h
-#opt/MACHINE-uClibc/usr/include/linux/pg.h
-#opt/MACHINE-uClibc/usr/include/linux/pipe_fs_i.h
-#opt/MACHINE-uClibc/usr/include/linux/pkt_cls.h
-#opt/MACHINE-uClibc/usr/include/linux/pkt_sched.h
-#opt/MACHINE-uClibc/usr/include/linux/pktcdvd.h
-#opt/MACHINE-uClibc/usr/include/linux/pmu.h
-#opt/MACHINE-uClibc/usr/include/linux/poll.h
-#opt/MACHINE-uClibc/usr/include/linux/posix-timers.h
-#opt/MACHINE-uClibc/usr/include/linux/posix_acl.h
-#opt/MACHINE-uClibc/usr/include/linux/posix_acl_xattr.h
-#opt/MACHINE-uClibc/usr/include/linux/posix_types.h
-#opt/MACHINE-uClibc/usr/include/linux/ppdev.h
-#opt/MACHINE-uClibc/usr/include/linux/ppp-comp.h
-#opt/MACHINE-uClibc/usr/include/linux/ppp_channel.h
-#opt/MACHINE-uClibc/usr/include/linux/ppp_defs.h
-#opt/MACHINE-uClibc/usr/include/linux/prctl.h
-#opt/MACHINE-uClibc/usr/include/linux/preempt.h
-#opt/MACHINE-uClibc/usr/include/linux/prefetch.h
-#opt/MACHINE-uClibc/usr/include/linux/proc_fs.h
-#opt/MACHINE-uClibc/usr/include/linux/ps2esdi.h
-#opt/MACHINE-uClibc/usr/include/linux/ptrace.h
-#opt/MACHINE-uClibc/usr/include/linux/qic117.h
-#opt/MACHINE-uClibc/usr/include/linux/qnx4_fs.h
-#opt/MACHINE-uClibc/usr/include/linux/qnxtypes.h
-#opt/MACHINE-uClibc/usr/include/linux/quota.h
-#opt/MACHINE-uClibc/usr/include/linux/quotaio_v1.h
-#opt/MACHINE-uClibc/usr/include/linux/quotaio_v2.h
-#opt/MACHINE-uClibc/usr/include/linux/radeonfb.h
-#opt/MACHINE-uClibc/usr/include/linux/raid
-#opt/MACHINE-uClibc/usr/include/linux/raid/linear.h
-#opt/MACHINE-uClibc/usr/include/linux/raid/md.h
-#opt/MACHINE-uClibc/usr/include/linux/raid/md_p.h
-#opt/MACHINE-uClibc/usr/include/linux/raid/md_u.h
-#opt/MACHINE-uClibc/usr/include/linux/raid/multipath.h
-#opt/MACHINE-uClibc/usr/include/linux/raid/raid0.h
-#opt/MACHINE-uClibc/usr/include/linux/raid/raid1.h
-#opt/MACHINE-uClibc/usr/include/linux/raid/raid5.h
-#opt/MACHINE-uClibc/usr/include/linux/raid/xor.h
-#opt/MACHINE-uClibc/usr/include/linux/random.h
-#opt/MACHINE-uClibc/usr/include/linux/raw.h
-#opt/MACHINE-uClibc/usr/include/linux/rbtree.h
-#opt/MACHINE-uClibc/usr/include/linux/reboot.h
-#opt/MACHINE-uClibc/usr/include/linux/reiserfs_acl.h
-#opt/MACHINE-uClibc/usr/include/linux/reiserfs_fs.h
-#opt/MACHINE-uClibc/usr/include/linux/reiserfs_xattr.h
-#opt/MACHINE-uClibc/usr/include/linux/resource.h
-#opt/MACHINE-uClibc/usr/include/linux/romfs_fs.h
-#opt/MACHINE-uClibc/usr/include/linux/root_dev.h
-#opt/MACHINE-uClibc/usr/include/linux/rose.h
-#opt/MACHINE-uClibc/usr/include/linux/route.h
-#opt/MACHINE-uClibc/usr/include/linux/rtc.h
-#opt/MACHINE-uClibc/usr/include/linux/rtnetlink.h
-#opt/MACHINE-uClibc/usr/include/linux/sc26198.h
-#opt/MACHINE-uClibc/usr/include/linux/scc.h
-#opt/MACHINE-uClibc/usr/include/linux/sched.h
-#opt/MACHINE-uClibc/usr/include/linux/sctp.h
-#opt/MACHINE-uClibc/usr/include/linux/scx200.h
-#opt/MACHINE-uClibc/usr/include/linux/scx200_gpio.h
-#opt/MACHINE-uClibc/usr/include/linux/sdla.h
-#opt/MACHINE-uClibc/usr/include/linux/sdla_asy.h
-#opt/MACHINE-uClibc/usr/include/linux/sdla_chdlc.h
-#opt/MACHINE-uClibc/usr/include/linux/sdla_fr.h
-#opt/MACHINE-uClibc/usr/include/linux/sdla_ppp.h
-#opt/MACHINE-uClibc/usr/include/linux/sdla_x25.h
-#opt/MACHINE-uClibc/usr/include/linux/sdladrv.h
-#opt/MACHINE-uClibc/usr/include/linux/sdlapci.h
-#opt/MACHINE-uClibc/usr/include/linux/sdlasfm.h
-#opt/MACHINE-uClibc/usr/include/linux/securebits.h
-#opt/MACHINE-uClibc/usr/include/linux/security.h
-#opt/MACHINE-uClibc/usr/include/linux/selection.h
-#opt/MACHINE-uClibc/usr/include/linux/selinux_netlink.h
-#opt/MACHINE-uClibc/usr/include/linux/sem.h
-#opt/MACHINE-uClibc/usr/include/linux/seqlock.h
-#opt/MACHINE-uClibc/usr/include/linux/serial.h
-#opt/MACHINE-uClibc/usr/include/linux/serial167.h
-#opt/MACHINE-uClibc/usr/include/linux/serialP.h
-#opt/MACHINE-uClibc/usr/include/linux/serial_8250.h
-#opt/MACHINE-uClibc/usr/include/linux/serial_core.h
-#opt/MACHINE-uClibc/usr/include/linux/serial_reg.h
-#opt/MACHINE-uClibc/usr/include/linux/serio.h
-#opt/MACHINE-uClibc/usr/include/linux/shm.h
-#opt/MACHINE-uClibc/usr/include/linux/siginfo.h
-#opt/MACHINE-uClibc/usr/include/linux/signal.h
-#opt/MACHINE-uClibc/usr/include/linux/skbuff.h
-#opt/MACHINE-uClibc/usr/include/linux/smb.h
-#opt/MACHINE-uClibc/usr/include/linux/smb_fs.h
-#opt/MACHINE-uClibc/usr/include/linux/smb_mount.h
-#opt/MACHINE-uClibc/usr/include/linux/smbno.h
-#opt/MACHINE-uClibc/usr/include/linux/smp_lock.h
-#opt/MACHINE-uClibc/usr/include/linux/snmp.h
-#opt/MACHINE-uClibc/usr/include/linux/socket.h
-#opt/MACHINE-uClibc/usr/include/linux/sockios.h
-#opt/MACHINE-uClibc/usr/include/linux/som.h
-#opt/MACHINE-uClibc/usr/include/linux/sonet.h
-#opt/MACHINE-uClibc/usr/include/linux/sonypi.h
-#opt/MACHINE-uClibc/usr/include/linux/sound.h
-#opt/MACHINE-uClibc/usr/include/linux/soundcard.h
-#opt/MACHINE-uClibc/usr/include/linux/spinlock.h
-#opt/MACHINE-uClibc/usr/include/linux/stallion.h
-#opt/MACHINE-uClibc/usr/include/linux/stddef.h
-#opt/MACHINE-uClibc/usr/include/linux/stringify.h
-#opt/MACHINE-uClibc/usr/include/linux/sunrpc
-#opt/MACHINE-uClibc/usr/include/linux/sunrpc/cache.h
-#opt/MACHINE-uClibc/usr/include/linux/sunrpc/clnt.h
-#opt/MACHINE-uClibc/usr/include/linux/sunrpc/debug.h
-#opt/MACHINE-uClibc/usr/include/linux/sunrpc/gss_asn1.h
-#opt/MACHINE-uClibc/usr/include/linux/sunrpc/gss_krb5.h
-#opt/MACHINE-uClibc/usr/include/linux/sunrpc/gss_spkm3.h
-#opt/MACHINE-uClibc/usr/include/linux/sunrpc/sched.h
-#opt/MACHINE-uClibc/usr/include/linux/sunrpc/stats.h
-#opt/MACHINE-uClibc/usr/include/linux/sunrpc/svc.h
-#opt/MACHINE-uClibc/usr/include/linux/sunrpc/svcsock.h
-#opt/MACHINE-uClibc/usr/include/linux/sunrpc/timer.h
-#opt/MACHINE-uClibc/usr/include/linux/sunrpc/types.h
-#opt/MACHINE-uClibc/usr/include/linux/sunrpc/xprt.h
-#opt/MACHINE-uClibc/usr/include/linux/superhyway.h
-#opt/MACHINE-uClibc/usr/include/linux/suspend.h
-#opt/MACHINE-uClibc/usr/include/linux/swap.h
-#opt/MACHINE-uClibc/usr/include/linux/swapops.h
-#opt/MACHINE-uClibc/usr/include/linux/synclink.h
-#opt/MACHINE-uClibc/usr/include/linux/sys.h
-#opt/MACHINE-uClibc/usr/include/linux/syscalls.h
-#opt/MACHINE-uClibc/usr/include/linux/sysctl.h
-#opt/MACHINE-uClibc/usr/include/linux/sysdev.h
-#opt/MACHINE-uClibc/usr/include/linux/sysfs.h
-#opt/MACHINE-uClibc/usr/include/linux/sysrq.h
-#opt/MACHINE-uClibc/usr/include/linux/sysv_fs.h
-#opt/MACHINE-uClibc/usr/include/linux/tc_act
-#opt/MACHINE-uClibc/usr/include/linux/tc_act/tc_defact.h
-#opt/MACHINE-uClibc/usr/include/linux/tc_act/tc_gact.h
-#opt/MACHINE-uClibc/usr/include/linux/tc_act/tc_ipt.h
-#opt/MACHINE-uClibc/usr/include/linux/tc_act/tc_mirred.h
-#opt/MACHINE-uClibc/usr/include/linux/tc_act/tc_pedit.h
-#opt/MACHINE-uClibc/usr/include/linux/tc_ematch
-#opt/MACHINE-uClibc/usr/include/linux/tc_ematch/tc_em_cmp.h
-#opt/MACHINE-uClibc/usr/include/linux/tc_ematch/tc_em_meta.h
-#opt/MACHINE-uClibc/usr/include/linux/tc_ematch/tc_em_nbyte.h
-#opt/MACHINE-uClibc/usr/include/linux/tcp.h
-#opt/MACHINE-uClibc/usr/include/linux/tcp_diag.h
-#opt/MACHINE-uClibc/usr/include/linux/telephony.h
-#opt/MACHINE-uClibc/usr/include/linux/termios.h
-#opt/MACHINE-uClibc/usr/include/linux/threads.h
-#opt/MACHINE-uClibc/usr/include/linux/ticable.h
-#opt/MACHINE-uClibc/usr/include/linux/time.h
-#opt/MACHINE-uClibc/usr/include/linux/times.h
-#opt/MACHINE-uClibc/usr/include/linux/timex.h
-#opt/MACHINE-uClibc/usr/include/linux/tiocl.h
-#opt/MACHINE-uClibc/usr/include/linux/toshiba.h
-#opt/MACHINE-uClibc/usr/include/linux/tty.h
-#opt/MACHINE-uClibc/usr/include/linux/types.h
-#opt/MACHINE-uClibc/usr/include/linux/udf_fs.h
-#opt/MACHINE-uClibc/usr/include/linux/udf_fs_i.h
-#opt/MACHINE-uClibc/usr/include/linux/udf_fs_sb.h
-#opt/MACHINE-uClibc/usr/include/linux/udp.h
-#opt/MACHINE-uClibc/usr/include/linux/ufs_fs.h
-#opt/MACHINE-uClibc/usr/include/linux/uinput.h
-#opt/MACHINE-uClibc/usr/include/linux/uio.h
-#opt/MACHINE-uClibc/usr/include/linux/ultrasound.h
-#opt/MACHINE-uClibc/usr/include/linux/umem.h
-#opt/MACHINE-uClibc/usr/include/linux/un.h
-#opt/MACHINE-uClibc/usr/include/linux/unistd.h
-#opt/MACHINE-uClibc/usr/include/linux/usb.h
-#opt/MACHINE-uClibc/usr/include/linux/usb_cdc.h
-#opt/MACHINE-uClibc/usr/include/linux/usb_ch9.h
-#opt/MACHINE-uClibc/usr/include/linux/usb_gadgetfs.h
-#opt/MACHINE-uClibc/usr/include/linux/usbdevice_fs.h
-#opt/MACHINE-uClibc/usr/include/linux/user.h
-#opt/MACHINE-uClibc/usr/include/linux/utime.h
-#opt/MACHINE-uClibc/usr/include/linux/uts.h
-#opt/MACHINE-uClibc/usr/include/linux/utsname.h
-#opt/MACHINE-uClibc/usr/include/linux/version.h
-#opt/MACHINE-uClibc/usr/include/linux/video_decoder.h
-#opt/MACHINE-uClibc/usr/include/linux/video_encoder.h
-#opt/MACHINE-uClibc/usr/include/linux/videodev.h
-#opt/MACHINE-uClibc/usr/include/linux/videodev2.h
-#opt/MACHINE-uClibc/usr/include/linux/videotext.h
-#opt/MACHINE-uClibc/usr/include/linux/vmalloc.h
-#opt/MACHINE-uClibc/usr/include/linux/vt.h
-#opt/MACHINE-uClibc/usr/include/linux/vt_buffer.h
-#opt/MACHINE-uClibc/usr/include/linux/vt_kern.h
-#opt/MACHINE-uClibc/usr/include/linux/wait.h
-#opt/MACHINE-uClibc/usr/include/linux/wanpipe.h
-#opt/MACHINE-uClibc/usr/include/linux/wanrouter.h
-#opt/MACHINE-uClibc/usr/include/linux/watchdog.h
-#opt/MACHINE-uClibc/usr/include/linux/wavefront.h
-#opt/MACHINE-uClibc/usr/include/linux/wireless.h
-#opt/MACHINE-uClibc/usr/include/linux/workqueue.h
-#opt/MACHINE-uClibc/usr/include/linux/x25.h
-#opt/MACHINE-uClibc/usr/include/linux/xattr.h
-#opt/MACHINE-uClibc/usr/include/linux/xattr_acl.h
-#opt/MACHINE-uClibc/usr/include/linux/xfrm.h
-#opt/MACHINE-uClibc/usr/include/linux/yam.h
-#opt/MACHINE-uClibc/usr/include/linux/zftape.h
-#opt/MACHINE-uClibc/usr/include/linux/zorro.h
-#opt/MACHINE-uClibc/usr/include/linux/zorro_ids.h
index d75a666073c5a60a559d241a2a2009107a21a007..9c424c4a536562ff1de160bd62094b91201fd1fa 100644 (file)
@@ -1,7 +1,13 @@
+usr/bin/isdn_text2wireshark
 usr/bin/l1oipctrl
+usr/bin/misdn_E1test
 usr/bin/misdn_bridge
 usr/bin/misdn_info
 usr/bin/misdn_log
+#usr/etc
+#usr/etc/udev
+#usr/etc/udev/rules.d
+#usr/etc/udev/rules.d/45-misdn.rules
 #usr/include/mISDN
 #usr/include/mISDN/l3dss1.h
 #usr/include/mISDN/mISDNcompat.h
@@ -13,13 +19,8 @@ usr/bin/misdn_log
 #usr/lib/libmisdn.a
 #usr/lib/libmisdn.la
 usr/lib/libmisdn.so
-usr/lib/libmisdn.so.0
-usr/lib/libmisdn.so.0.2.1
-#usr/lib/libsuppserv.a
-#usr/lib/libsuppserv.la
-usr/lib/libsuppserv.so
-usr/lib/libsuppserv.so.0
-usr/lib/libsuppserv.so.0.1.1
+usr/lib/libmisdn.so.1
+usr/lib/libmisdn.so.1.0.0
 usr/sbin/misdn_cleanl2
 usr/sbin/misdn_rename
 etc/rc.d/init.d/mISDN
index 29544b6eeb589aa44b43aa704d06d94b81d8df0c..231e27da8b8e028eac2fe8d538b0757c64b5b22b 100644 (file)
@@ -1,3 +1,2 @@
-#usr/local/man/man8
-#usr/local/man/man8/install-mbr.8
-#usr/local/sbin/install-mbr
+#usr/sbin/install-mbr
+#usr/share/man/man8/install-mbr.8
index 3c0b398d3aaf3270193dae2d9299103c12f14bb1..2d6b2e2cb4b863b7799ba978d068c94378f90da3 100644 (file)
@@ -7,7 +7,6 @@ usr/local/bin/extrahdctrl
 usr/local/bin/fireinfoctrl
 usr/local/bin/getconntracktable
 usr/local/bin/getipstat
-usr/local/bin/getiptstate
 #usr/local/bin/iowrap
 usr/local/bin/ipfirereboot
 usr/local/bin/ipsecctrl
diff --git a/config/rootfiles/common/mpfr b/config/rootfiles/common/mpfr
new file mode 100644 (file)
index 0000000..e4f3337
--- /dev/null
@@ -0,0 +1,21 @@
+#usr/include/mpf2mpfr.h
+#usr/include/mpfr.h
+#usr/lib/libmpfr.a
+#usr/lib/libmpfr.la
+#usr/lib/libmpfr.so
+usr/lib/libmpfr.so.1
+usr/lib/libmpfr.so.1.2.2
+#usr/share/doc/mpfr
+#usr/share/doc/mpfr/AUTHORS
+#usr/share/doc/mpfr/BUGS
+#usr/share/doc/mpfr/COPYING
+#usr/share/doc/mpfr/COPYING.LIB
+#usr/share/doc/mpfr/FAQ.html
+#usr/share/doc/mpfr/NEWS
+#usr/share/doc/mpfr/TODO
+#usr/share/doc/mpfr/examples
+#usr/share/doc/mpfr/examples/ReadMe
+#usr/share/doc/mpfr/examples/divworst.c
+#usr/share/doc/mpfr/examples/rndo-add.c
+#usr/share/doc/mpfr/examples/sample.c
+#usr/share/info/mpfr.info
index ed892d6d00d8d03e4eba1794ebd9a8e6b8669cd8..46b3bd9c967078a9cda4d75e2eff69fe7eef0326 100644 (file)
@@ -1,15 +1,15 @@
-lib/libncursesw.so.5
-lib/libncursesw.so.5.5
 #usr/bin/captoinfo
 usr/bin/clear
 #usr/bin/infocmp
 #usr/bin/infotocap
-#usr/bin/reset
-#usr/bin/tack
+#usr/bin/ncurses5-config
+#usr/bin/ncursesw5-config
+usr/bin/reset
+#usr/bin/tabs
 #usr/bin/tic
 #usr/bin/toe
 usr/bin/tput
-#usr/bin/tset
+usr/bin/tset
 #usr/include/curses.h
 #usr/include/cursesapp.h
 #usr/include/cursesf.h
@@ -21,64 +21,107 @@ usr/bin/tput
 #usr/include/etip.h
 #usr/include/form.h
 #usr/include/menu.h
+#usr/include/nc_tparm.h
 #usr/include/ncurses.h
 #usr/include/ncurses_dll.h
 #usr/include/panel.h
 #usr/include/term.h
+#usr/include/term_entry.h
 #usr/include/termcap.h
+#usr/include/tic.h
 #usr/include/unctrl.h
 #usr/lib/libcurses.a
 #usr/lib/libcurses.so
-#usr/lib/libcursesw.a
 #usr/lib/libcursesw.so
 #usr/lib/libform.a
-usr/lib/libform.so
+#usr/lib/libform.so
+usr/lib/libform.so.5
+usr/lib/libform.so.5.9
 #usr/lib/libformw.a
-usr/lib/libformw.so
+#usr/lib/libformw.so
 usr/lib/libformw.so.5
-usr/lib/libformw.so.5.5
+usr/lib/libformw.so.5.9
 #usr/lib/libmenu.a
 #usr/lib/libmenu.so
+usr/lib/libmenu.so.5
+usr/lib/libmenu.so.5.9
 #usr/lib/libmenuw.a
-usr/lib/libmenuw.so
+#usr/lib/libmenuw.so
 usr/lib/libmenuw.so.5
-usr/lib/libmenuw.so.5.5
-#usr/lib/libncurses++.a4
+usr/lib/libmenuw.so.5.9
+#usr/lib/libncurses++.a
 #usr/lib/libncurses++w.a
 #usr/lib/libncurses.a
-usr/lib/libncurses.so
+#usr/lib/libncurses.so
+usr/lib/libncurses.so.5
+usr/lib/libncurses.so.5.9
 #usr/lib/libncursesw.a
 #usr/lib/libncursesw.so
-#usr/lib/libncursesw.so.5.5
+usr/lib/libncursesw.so.5
+usr/lib/libncursesw.so.5.9
 #usr/lib/libpanel.a
-usr/lib/libpanel.so
+#usr/lib/libpanel.so
+usr/lib/libpanel.so.5
+usr/lib/libpanel.so.5.9
 #usr/lib/libpanelw.a
-usr/lib/libpanelw.so
+#usr/lib/libpanelw.so
 usr/lib/libpanelw.so.5
-usr/lib/libpanelw.so.5.5
+usr/lib/libpanelw.so.5.9
+#usr/lib/libtermcap.so
+#usr/lib/libtic.a
+#usr/lib/libtic.so
+usr/lib/libtic.so.5
+usr/lib/libtic.so.5.9
+#usr/lib/libtinfo.a
+#usr/lib/libtinfo.so
+usr/lib/libtinfo.so.5
+usr/lib/libtinfo.so.5.9
 #usr/lib/terminfo
 #usr/man/man1/captoinfo.1m
 #usr/man/man1/clear.1
 #usr/man/man1/infocmp.1m
 #usr/man/man1/infotocap.1m
+#usr/man/man1/ncursesw5-config.1
 #usr/man/man1/reset.1
-#usr/man/man1/tack.1
+#usr/man/man1/tabs.1
 #usr/man/man1/tic.1m
 #usr/man/man1/toe.1m
 #usr/man/man1/tput.1
 #usr/man/man1/tset.1
 #usr/man/man3
+#usr/man/man3/BC.3x
+#usr/man/man3/COLORS.3x
 #usr/man/man3/COLOR_PAIR.3x
+#usr/man/man3/COLOR_PAIRS.3x
+#usr/man/man3/COLS.3x
+#usr/man/man3/ESCDELAY.3x
+#usr/man/man3/LINES.3x
 #usr/man/man3/PAIR_NUMBER.3x
+#usr/man/man3/PC.3x
+#usr/man/man3/SP.3x
+#usr/man/man3/TABSIZE.3x
+#usr/man/man3/TYPE_ALNUM.3x
+#usr/man/man3/TYPE_ALPHA.3x
+#usr/man/man3/TYPE_ENUM.3x
+#usr/man/man3/TYPE_INTEGER.3x
+#usr/man/man3/TYPE_IPV4.3x
+#usr/man/man3/TYPE_NUMERIC.3x
+#usr/man/man3/TYPE_REGEXP.3x
+#usr/man/man3/UP.3x
+#usr/man/man3/_nc_free_and_exit.3x
+#usr/man/man3/_nc_freeall.3x
 #usr/man/man3/_nc_tracebits.3x
 #usr/man/man3/_traceattr.3x
 #usr/man/man3/_traceattr2.3x
+#usr/man/man3/_tracecchar_t.3x
+#usr/man/man3/_tracecchar_t2.3x
 #usr/man/man3/_tracechar.3x
 #usr/man/man3/_tracechtype.3x
 #usr/man/man3/_tracechtype2.3x
 #usr/man/man3/_tracedump.3x
 #usr/man/man3/_tracef.3x
 #usr/man/man3/_tracemouse.3x
+#usr/man/man3/acs_map.3x
 #usr/man/man3/add_wch.3x
 #usr/man/man3/add_wchnstr.3x
 #usr/man/man3/add_wchstr.3x
@@ -90,6 +133,7 @@ usr/lib/libpanelw.so.5.5
 #usr/man/man3/addstr.3x
 #usr/man/man3/addwstr.3x
 #usr/man/man3/assume_default_colors.3x
+#usr/man/man3/assume_default_colors_sp.3x
 #usr/man/man3/attr_get.3x
 #usr/man/man3/attr_off.3x
 #usr/man/man3/attr_on.3x
@@ -98,26 +142,36 @@ usr/lib/libpanelw.so.5.5
 #usr/man/man3/attron.3x
 #usr/man/man3/attrset.3x
 #usr/man/man3/baudrate.3x
+#usr/man/man3/baudrate_sp.3x
 #usr/man/man3/beep.3x
+#usr/man/man3/beep_sp.3x
 #usr/man/man3/bkgd.3x
 #usr/man/man3/bkgdset.3x
 #usr/man/man3/bkgrnd.3x
 #usr/man/man3/bkgrndset.3x
+#usr/man/man3/boolcodes.3x
+#usr/man/man3/boolfnames.3x
+#usr/man/man3/boolnames.3x
 #usr/man/man3/border.3x
 #usr/man/man3/border_set.3x
 #usr/man/man3/bottom_panel.3x
 #usr/man/man3/box.3x
 #usr/man/man3/box_set.3x
 #usr/man/man3/can_change_color.3x
+#usr/man/man3/can_change_color_sp.3x
 #usr/man/man3/cbreak.3x
+#usr/man/man3/cbreak_sp.3x
+#usr/man/man3/ceiling_panel.3x
 #usr/man/man3/chgat.3x
 #usr/man/man3/clear.3x
 #usr/man/man3/clearok.3x
 #usr/man/man3/clrtobot.3x
 #usr/man/man3/clrtoeol.3x
 #usr/man/man3/color_content.3x
+#usr/man/man3/color_content_sp.3x
 #usr/man/man3/color_set.3x
 #usr/man/man3/copywin.3x
+#usr/man/man3/cur_term.3x
 #usr/man/man3/current_field.3x
 #usr/man/man3/current_item.3x
 #usr/man/man3/curs_add_wch.3x
@@ -156,8 +210,11 @@ usr/lib/libpanelw.so.5.5
 #usr/man/man3/curs_instr.3x
 #usr/man/man3/curs_inwstr.3x
 #usr/man/man3/curs_kernel.3x
+#usr/man/man3/curs_legacy.3x
+#usr/man/man3/curs_memleaks.3x
 #usr/man/man3/curs_mouse.3x
 #usr/man/man3/curs_move.3x
+#usr/man/man3/curs_opaque.3x
 #usr/man/man3/curs_outopts.3x
 #usr/man/man3/curs_overlay.3x
 #usr/man/man3/curs_pad.3x
@@ -168,39 +225,53 @@ usr/lib/libpanelw.so.5.5
 #usr/man/man3/curs_scr_dump.3x
 #usr/man/man3/curs_scroll.3x
 #usr/man/man3/curs_set.3x
+#usr/man/man3/curs_set_sp.3x
 #usr/man/man3/curs_slk.3x
+#usr/man/man3/curs_sp_funcs.3x
 #usr/man/man3/curs_termattrs.3x
 #usr/man/man3/curs_termcap.3x
 #usr/man/man3/curs_terminfo.3x
+#usr/man/man3/curs_threads.3x
 #usr/man/man3/curs_touch.3x
 #usr/man/man3/curs_trace.3x
 #usr/man/man3/curs_util.3x
+#usr/man/man3/curs_variables.3x
 #usr/man/man3/curs_window.3x
+#usr/man/man3/curscr.3x
 #usr/man/man3/curses_version.3x
 #usr/man/man3/data_ahead.3x
 #usr/man/man3/data_behind.3x
 #usr/man/man3/def_prog_mode.3x
+#usr/man/man3/def_prog_mode_sp.3x
 #usr/man/man3/def_shell_mode.3x
+#usr/man/man3/def_shell_mode_sp.3x
 #usr/man/man3/default_colors.3x
 #usr/man/man3/define_key.3x
+#usr/man/man3/define_key_sp.3x
 #usr/man/man3/del_curterm.3x
+#usr/man/man3/del_curterm_sp.3x
 #usr/man/man3/del_panel.3x
 #usr/man/man3/delay_output.3x
+#usr/man/man3/delay_output_sp.3x
 #usr/man/man3/delch.3x
 #usr/man/man3/deleteln.3x
 #usr/man/man3/delscreen.3x
 #usr/man/man3/delwin.3x
 #usr/man/man3/derwin.3x
 #usr/man/man3/doupdate.3x
+#usr/man/man3/doupdate_sp.3x
 #usr/man/man3/dup_field.3x
 #usr/man/man3/dupwin.3x
 #usr/man/man3/dynamic_field_info.3x
 #usr/man/man3/echo.3x
+#usr/man/man3/echo_sp.3x
 #usr/man/man3/echo_wchar.3x
 #usr/man/man3/echochar.3x
 #usr/man/man3/endwin.3x
+#usr/man/man3/endwin_sp.3x
 #usr/man/man3/erase.3x
 #usr/man/man3/erasechar.3x
+#usr/man/man3/erasechar_sp.3x
 #usr/man/man3/erasewchar.3x
 #usr/man/man3/field_arg.3x
 #usr/man/man3/field_back.3x
@@ -220,8 +291,11 @@ usr/lib/libpanelw.so.5.5
 #usr/man/man3/field_type.3x
 #usr/man/man3/field_userptr.3x
 #usr/man/man3/filter.3x
+#usr/man/man3/filter_sp.3x
 #usr/man/man3/flash.3x
+#usr/man/man3/flash_sp.3x
 #usr/man/man3/flushinp.3x
+#usr/man/man3/flushinp_sp.3x
 #usr/man/man3/form.3x
 #usr/man/man3/form_cursor.3x
 #usr/man/man3/form_data.3x
@@ -252,33 +326,55 @@ usr/lib/libpanelw.so.5.5
 #usr/man/man3/form_sub.3x
 #usr/man/man3/form_term.3x
 #usr/man/man3/form_userptr.3x
+#usr/man/man3/form_variables.3x
 #usr/man/man3/form_win.3x
 #usr/man/man3/free_field.3x
 #usr/man/man3/free_fieldtype.3x
 #usr/man/man3/free_form.3x
 #usr/man/man3/free_item.3x
 #usr/man/man3/free_menu.3x
+#usr/man/man3/get_escdelay.3x
+#usr/man/man3/get_escdelay_sp.3x
 #usr/man/man3/get_wch.3x
 #usr/man/man3/get_wstr.3x
+#usr/man/man3/getattrs.3x
+#usr/man/man3/getbegx.3x
+#usr/man/man3/getbegy.3x
 #usr/man/man3/getbegyx.3x
 #usr/man/man3/getbkgd.3x
 #usr/man/man3/getbkgrnd.3x
 #usr/man/man3/getcchar.3x
 #usr/man/man3/getch.3x
+#usr/man/man3/getcurx.3x
+#usr/man/man3/getcury.3x
+#usr/man/man3/getmaxx.3x
+#usr/man/man3/getmaxy.3x
 #usr/man/man3/getmaxyx.3x
 #usr/man/man3/getmouse.3x
+#usr/man/man3/getmouse_sp.3x
 #usr/man/man3/getn_wstr.3x
 #usr/man/man3/getnstr.3x
+#usr/man/man3/getparx.3x
+#usr/man/man3/getpary.3x
 #usr/man/man3/getparyx.3x
 #usr/man/man3/getstr.3x
 #usr/man/man3/getsyx.3x
 #usr/man/man3/getwin.3x
+#usr/man/man3/getwin_sp.3x
 #usr/man/man3/getyx.3x
+#usr/man/man3/ground_panel.3x
 #usr/man/man3/halfdelay.3x
+#usr/man/man3/halfdelay_sp.3x
 #usr/man/man3/has_colors.3x
+#usr/man/man3/has_colors_sp.3x
 #usr/man/man3/has_ic.3x
+#usr/man/man3/has_ic_sp.3x
 #usr/man/man3/has_il.3x
+#usr/man/man3/has_il_sp.3x
 #usr/man/man3/has_key.3x
+#usr/man/man3/has_key_sp.3x
+#usr/man/man3/has_mouse.3x
+#usr/man/man3/has_mouse_sp.3x
 #usr/man/man3/hide_panel.3x
 #usr/man/man3/hline.3x
 #usr/man/man3/hline_set.3x
@@ -292,7 +388,9 @@ usr/lib/libpanelw.so.5.5
 #usr/man/man3/inchnstr.3x
 #usr/man/man3/inchstr.3x
 #usr/man/man3/init_color.3x
+#usr/man/man3/init_color_sp.3x
 #usr/man/man3/init_pair.3x
+#usr/man/man3/init_pair_sp.3x
 #usr/man/man3/initscr.3x
 #usr/man/man3/innstr.3x
 #usr/man/man3/innwstr.3x
@@ -306,11 +404,26 @@ usr/lib/libpanelw.so.5.5
 #usr/man/man3/insstr.3x
 #usr/man/man3/instr.3x
 #usr/man/man3/intrflush.3x
+#usr/man/man3/intrflush_sp.3x
 #usr/man/man3/inwstr.3x
+#usr/man/man3/is_cleared.3x
+#usr/man/man3/is_idcok.3x
+#usr/man/man3/is_idlok.3x
+#usr/man/man3/is_immedok.3x
+#usr/man/man3/is_keypad.3x
+#usr/man/man3/is_leaveok.3x
 #usr/man/man3/is_linetouched.3x
+#usr/man/man3/is_nodelay.3x
+#usr/man/man3/is_notimeout.3x
+#usr/man/man3/is_pad.3x
+#usr/man/man3/is_scrollok.3x
+#usr/man/man3/is_subwin.3x
+#usr/man/man3/is_syncok.3x
 #usr/man/man3/is_term_resized.3x
+#usr/man/man3/is_term_resized_sp.3x
 #usr/man/man3/is_wintouched.3x
 #usr/man/man3/isendwin.3x
+#usr/man/man3/isendwin_sp.3x
 #usr/man/man3/item_count.3x
 #usr/man/man3/item_description.3x
 #usr/man/man3/item_index.3x
@@ -324,18 +437,25 @@ usr/lib/libpanelw.so.5.5
 #usr/man/man3/item_value.3x
 #usr/man/man3/item_visible.3x
 #usr/man/man3/key_defined.3x
+#usr/man/man3/key_defined_sp.3x
 #usr/man/man3/key_name.3x
 #usr/man/man3/keybound.3x
+#usr/man/man3/keybound_sp.3x
 #usr/man/man3/keyname.3x
+#usr/man/man3/keyname_sp.3x
 #usr/man/man3/keyok.3x
+#usr/man/man3/keyok_sp.3x
 #usr/man/man3/keypad.3x
 #usr/man/man3/killchar.3x
+#usr/man/man3/killchar_sp.3x
 #usr/man/man3/killwchar.3x
 #usr/man/man3/leaveok.3x
+#usr/man/man3/legacy_coding.3x
 #usr/man/man3/link_field.3x
 #usr/man/man3/link_fieldtype.3x
 #usr/man/man3/longname.3x
 #usr/man/man3/mcprint.3x
+#usr/man/man3/mcprint_sp.3x
 #usr/man/man3/menu.3x
 #usr/man/man3/menu_attributes.3x
 #usr/man/man3/menu_back.3x
@@ -373,7 +493,9 @@ usr/lib/libpanelw.so.5.5
 #usr/man/man3/mitem_visible.3x
 #usr/man/man3/mouse_trafo.3x
 #usr/man/man3/mouseinterval.3x
+#usr/man/man3/mouseinterval_sp.3x
 #usr/man/man3/mousemask.3x
+#usr/man/man3/mousemask_sp.3x
 #usr/man/man3/move.3x
 #usr/man/man3/move_field.3x
 #usr/man/man3/move_panel.3x
@@ -389,6 +511,7 @@ usr/lib/libpanelw.so.5.5
 #usr/man/man3/mvaddwstr.3x
 #usr/man/man3/mvchgat.3x
 #usr/man/man3/mvcur.3x
+#usr/man/man3/mvcur_sp.3x
 #usr/man/man3/mvdelch.3x
 #usr/man/man3/mvderwin.3x
 #usr/man/man3/mvget_wch.3x
@@ -461,28 +584,49 @@ usr/lib/libpanelw.so.5.5
 #usr/man/man3/mvwvline.3x
 #usr/man/man3/mvwvline_set.3x
 #usr/man/man3/napms.3x
+#usr/man/man3/napms_sp.3x
 #usr/man/man3/ncurses.3x
 #usr/man/man3/new_field.3x
 #usr/man/man3/new_fieldtype.3x
 #usr/man/man3/new_form.3x
+#usr/man/man3/new_form_sp.3x
 #usr/man/man3/new_item.3x
 #usr/man/man3/new_menu.3x
+#usr/man/man3/new_menu_sp.3x
 #usr/man/man3/new_page.3x
 #usr/man/man3/new_panel.3x
+#usr/man/man3/new_prescr.3x
 #usr/man/man3/newpad.3x
+#usr/man/man3/newpad_sp.3x
+#usr/man/man3/newscr.3x
 #usr/man/man3/newterm.3x
+#usr/man/man3/newterm_sp.3x
 #usr/man/man3/newwin.3x
+#usr/man/man3/newwin_sp.3x
 #usr/man/man3/nl.3x
+#usr/man/man3/nl_sp.3x
 #usr/man/man3/nocbreak.3x
+#usr/man/man3/nocbreak_sp.3x
 #usr/man/man3/nodelay.3x
 #usr/man/man3/noecho.3x
+#usr/man/man3/noecho_sp.3x
+#usr/man/man3/nofilter.3x
+#usr/man/man3/nofilter_sp.3x
 #usr/man/man3/nonl.3x
+#usr/man/man3/nonl_sp.3x
 #usr/man/man3/noqiflush.3x
+#usr/man/man3/noqiflush_sp.3x
 #usr/man/man3/noraw.3x
+#usr/man/man3/noraw_sp.3x
 #usr/man/man3/notimeout.3x
+#usr/man/man3/numcodes.3x
+#usr/man/man3/numfnames.3x
+#usr/man/man3/numnames.3x
+#usr/man/man3/ospeed.3x
 #usr/man/man3/overlay.3x
 #usr/man/man3/overwrite.3x
 #usr/man/man3/pair_content.3x
+#usr/man/man3/pair_content_sp.3x
 #usr/man/man3/panel.3x
 #usr/man/man3/panel_above.3x
 #usr/man/man3/panel_below.3x
@@ -499,33 +643,50 @@ usr/lib/libpanelw.so.5.5
 #usr/man/man3/prefresh.3x
 #usr/man/man3/printw.3x
 #usr/man/man3/putp.3x
+#usr/man/man3/putp_sp.3x
 #usr/man/man3/putwin.3x
 #usr/man/man3/qiflush.3x
+#usr/man/man3/qiflush_sp.3x
 #usr/man/man3/raw.3x
+#usr/man/man3/raw_sp.3x
 #usr/man/man3/redrawwin.3x
 #usr/man/man3/refresh.3x
 #usr/man/man3/replace_panel.3x
 #usr/man/man3/reset_prog_mode.3x
+#usr/man/man3/reset_prog_mode_sp.3x
 #usr/man/man3/reset_shell_mode.3x
+#usr/man/man3/reset_shell_mode_sp.3x
 #usr/man/man3/resetty.3x
+#usr/man/man3/resetty_sp.3x
 #usr/man/man3/resize_term.3x
+#usr/man/man3/resize_term_sp.3x
 #usr/man/man3/resizeterm.3x
+#usr/man/man3/resizeterm_sp.3x
 #usr/man/man3/restartterm.3x
+#usr/man/man3/restartterm_sp.3x
 #usr/man/man3/ripoffline.3x
+#usr/man/man3/ripoffline_sp.3x
 #usr/man/man3/savetty.3x
+#usr/man/man3/savetty_sp.3x
 #usr/man/man3/scale_form.3x
 #usr/man/man3/scale_menu.3x
 #usr/man/man3/scanw.3x
 #usr/man/man3/scr_dump.3x
 #usr/man/man3/scr_init.3x
+#usr/man/man3/scr_init_sp.3x
 #usr/man/man3/scr_restore.3x
+#usr/man/man3/scr_restore_sp.3x
 #usr/man/man3/scr_set.3x
+#usr/man/man3/scr_set_sp.3x
 #usr/man/man3/scrl.3x
 #usr/man/man3/scroll.3x
 #usr/man/man3/scrollok.3x
 #usr/man/man3/set_current_field.3x
 #usr/man/man3/set_current_item.3x
 #usr/man/man3/set_curterm.3x
+#usr/man/man3/set_curterm_sp.3x
+#usr/man/man3/set_escdelay.3x
+#usr/man/man3/set_escdelay_sp.3x
 #usr/man/man3/set_field_back.3x
 #usr/man/man3/set_field_buffer.3x
 #usr/man/man3/set_field_fore.3x
@@ -570,6 +731,8 @@ usr/lib/libpanelw.so.5.5
 #usr/man/man3/set_menu_win.3x
 #usr/man/man3/set_new_page.3x
 #usr/man/man3/set_panel_userptr.3x
+#usr/man/man3/set_tabsize.3x
+#usr/man/man3/set_tabsize_sp.3x
 #usr/man/man3/set_term.3x
 #usr/man/man3/set_top_row.3x
 #usr/man/man3/setcchar.3x
@@ -582,59 +745,109 @@ usr/lib/libpanelw.so.5.5
 #usr/man/man3/slk_attr_off.3x
 #usr/man/man3/slk_attr_on.3x
 #usr/man/man3/slk_attr_set.3x
+#usr/man/man3/slk_attr_set_sp.3x
+#usr/man/man3/slk_attr_sp.3x
 #usr/man/man3/slk_attroff.3x
+#usr/man/man3/slk_attroff_sp.3x
 #usr/man/man3/slk_attron.3x
+#usr/man/man3/slk_attron_sp.3x
 #usr/man/man3/slk_attrset.3x
+#usr/man/man3/slk_attrset_sp.3x
 #usr/man/man3/slk_clear.3x
+#usr/man/man3/slk_clear_sp.3x
 #usr/man/man3/slk_color.3x
+#usr/man/man3/slk_color_sp.3x
 #usr/man/man3/slk_init.3x
+#usr/man/man3/slk_init_sp.3x
 #usr/man/man3/slk_label.3x
+#usr/man/man3/slk_label_sp.3x
 #usr/man/man3/slk_noutrefresh.3x
+#usr/man/man3/slk_noutrefresh_sp.3x
 #usr/man/man3/slk_refresh.3x
+#usr/man/man3/slk_refresh_sp.3x
 #usr/man/man3/slk_restore.3x
+#usr/man/man3/slk_restore_sp.3x
 #usr/man/man3/slk_set.3x
+#usr/man/man3/slk_set_sp.3x
 #usr/man/man3/slk_touch.3x
+#usr/man/man3/slk_touch_sp.3x
+#usr/man/man3/slk_wset.3x
 #usr/man/man3/standend.3x
 #usr/man/man3/standout.3x
 #usr/man/man3/start_color.3x
+#usr/man/man3/start_color_sp.3x
+#usr/man/man3/stdscr.3x
+#usr/man/man3/strcodes.3x
+#usr/man/man3/strfnames.3x
+#usr/man/man3/strnames.3x
 #usr/man/man3/subpad.3x
 #usr/man/man3/subwin.3x
 #usr/man/man3/syncok.3x
 #usr/man/man3/term_attrs.3x
+#usr/man/man3/term_attrs_sp.3x
+#usr/man/man3/term_variables.3x
 #usr/man/man3/termattrs.3x
+#usr/man/man3/termattrs_sp.3x
 #usr/man/man3/termname.3x
+#usr/man/man3/termname_sp.3x
 #usr/man/man3/tgetent.3x
+#usr/man/man3/tgetent_sp.3x
 #usr/man/man3/tgetflag.3x
+#usr/man/man3/tgetflag_sp.3x
 #usr/man/man3/tgetnum.3x
+#usr/man/man3/tgetnum_sp.3x
 #usr/man/man3/tgetstr.3x
+#usr/man/man3/tgetstr_sp.3x
 #usr/man/man3/tgoto.3x
 #usr/man/man3/tigetflag.3x
+#usr/man/man3/tigetflag_sp.3x
 #usr/man/man3/tigetnum.3x
+#usr/man/man3/tigetnum_sp.3x
 #usr/man/man3/tigetstr.3x
+#usr/man/man3/tigetstr_sp.3x
 #usr/man/man3/timeout.3x
+#usr/man/man3/tiparm.3x
 #usr/man/man3/top_panel.3x
 #usr/man/man3/top_row.3x
 #usr/man/man3/touchline.3x
 #usr/man/man3/touchwin.3x
 #usr/man/man3/tparm.3x
 #usr/man/man3/tputs.3x
+#usr/man/man3/tputs_sp.3x
 #usr/man/man3/trace.3x
+#usr/man/man3/ttytype.3x
 #usr/man/man3/typeahead.3x
+#usr/man/man3/typeahead_sp.3x
 #usr/man/man3/unctrl.3x
+#usr/man/man3/unctrl_sp.3x
 #usr/man/man3/unget_wch.3x
+#usr/man/man3/unget_wch_sp.3x
 #usr/man/man3/ungetch.3x
+#usr/man/man3/ungetch_sp.3x
 #usr/man/man3/ungetmouse.3x
+#usr/man/man3/ungetmouse_sp.3x
 #usr/man/man3/unpost_form.3x
 #usr/man/man3/unpost_menu.3x
 #usr/man/man3/untouchwin.3x
 #usr/man/man3/update_panels.3x
+#usr/man/man3/update_panels_sp.3x
 #usr/man/man3/use_default_colors.3x
+#usr/man/man3/use_default_colors_sp.3x
 #usr/man/man3/use_env.3x
+#usr/man/man3/use_env_sp.3x
 #usr/man/man3/use_extended_names.3x
+#usr/man/man3/use_legacy_coding.3x
+#usr/man/man3/use_legacy_coding_sp.3x
+#usr/man/man3/use_screen.3x
+#usr/man/man3/use_window.3x
 #usr/man/man3/vid_attr.3x
+#usr/man/man3/vid_attr_sp.3x
 #usr/man/man3/vid_puts.3x
+#usr/man/man3/vid_puts_sp.3x
 #usr/man/man3/vidattr.3x
+#usr/man/man3/vidattr_sp.3x
 #usr/man/man3/vidputs.3x
+#usr/man/man3/vidputs_sp.3x
 #usr/man/man3/vline.3x
 #usr/man/man3/vline_set.3x
 #usr/man/man3/vw_printw.3x
@@ -682,6 +895,8 @@ usr/lib/libpanelw.so.5.5
 #usr/man/man3/wgetch.3x
 #usr/man/man3/wgetn_wstr.3x
 #usr/man/man3/wgetnstr.3x
+#usr/man/man3/wgetparent.3x
+#usr/man/man3/wgetscrreg.3x
 #usr/man/man3/wgetstr.3x
 #usr/man/man3/whline.3x
 #usr/man/man3/whline_set.3x
@@ -720,6 +935,7 @@ usr/lib/libpanelw.so.5.5
 #usr/man/man3/wtimeout.3x
 #usr/man/man3/wtouchln.3x
 #usr/man/man3/wunctrl.3x
+#usr/man/man3/wunctrl_sp.3x
 #usr/man/man3/wvline.3x
 #usr/man/man3/wvline_set.3x
 #usr/man/man5
@@ -770,11 +986,14 @@ usr/lib/libpanelw.so.5.5
 #usr/share/terminfo/9
 #usr/share/terminfo/9/955-hb
 #usr/share/terminfo/9/955-w
+#usr/share/terminfo/9/9term
 #usr/share/terminfo/A
 #usr/share/terminfo/A/Apple_Terminal
 #usr/share/terminfo/E
-#usr/share/terminfo/E/Eterm
-#usr/share/terminfo/E/Eterm-color
+usr/share/terminfo/E/Eterm
+usr/share/terminfo/E/Eterm-256color
+usr/share/terminfo/E/Eterm-88color
+usr/share/terminfo/E/Eterm-color
 #usr/share/terminfo/L
 #usr/share/terminfo/L/LFT-PC850
 #usr/share/terminfo/M
@@ -937,10 +1156,11 @@ usr/lib/libpanelw.so.5.5
 #usr/share/terminfo/a/ampex232w
 #usr/share/terminfo/a/ampex80
 #usr/share/terminfo/a/annarbor4080
-#usr/share/terminfo/a/ansi
+usr/share/terminfo/a/ansi
 #usr/share/terminfo/a/ansi+arrows
 #usr/share/terminfo/a/ansi+csr
 #usr/share/terminfo/a/ansi+cup
+#usr/share/terminfo/a/ansi+enq
 #usr/share/terminfo/a/ansi+erase
 #usr/share/terminfo/a/ansi+idc
 #usr/share/terminfo/a/ansi+idl
@@ -1015,8 +1235,18 @@ usr/lib/libpanelw.so.5.5
 #usr/share/terminfo/a/arm100-am
 #usr/share/terminfo/a/arm100-w
 #usr/share/terminfo/a/arm100-wam
+#usr/share/terminfo/a/at
+#usr/share/terminfo/a/at-color
+#usr/share/terminfo/a/at-m
 #usr/share/terminfo/a/at386
 #usr/share/terminfo/a/atari
+#usr/share/terminfo/a/atari-color
+#usr/share/terminfo/a/atari-m
+#usr/share/terminfo/a/atari-old
+#usr/share/terminfo/a/atari_st
+#usr/share/terminfo/a/atari_st-color
+#usr/share/terminfo/a/atarist-m
+usr/share/terminfo/a/aterm
 #usr/share/terminfo/a/att2300
 #usr/share/terminfo/a/att2350
 #usr/share/terminfo/a/att4410
@@ -1171,6 +1401,7 @@ usr/lib/libpanelw.so.5.5
 #usr/share/terminfo/b/bsdos-pc-nobold
 #usr/share/terminfo/b/bsdos-ppc
 #usr/share/terminfo/b/bsdos-sparc
+usr/share/terminfo/b/bterm
 #usr/share/terminfo/c
 #usr/share/terminfo/c/c100
 #usr/share/terminfo/c/c100-1p
@@ -1240,7 +1471,8 @@ usr/lib/libpanelw.so.5.5
 #usr/share/terminfo/c/concept108-w-8
 #usr/share/terminfo/c/concept108-w8p
 #usr/share/terminfo/c/concept108rv4p
-#usr/share/terminfo/c/cons25
+usr/share/terminfo/c/cons25
+#usr/share/terminfo/c/cons25-debian
 #usr/share/terminfo/c/cons25-iso-m
 #usr/share/terminfo/c/cons25-iso8859
 #usr/share/terminfo/c/cons25-koi8-r
@@ -1293,7 +1525,7 @@ usr/lib/libpanelw.so.5.5
 #usr/share/terminfo/c/cx100
 #usr/share/terminfo/c/cyb110
 #usr/share/terminfo/c/cyb83
-#usr/share/terminfo/c/cygwin
+usr/share/terminfo/c/cygwin
 #usr/share/terminfo/c/cygwinB19
 #usr/share/terminfo/c/cygwinDBG
 #usr/share/terminfo/d
@@ -1576,7 +1808,7 @@ usr/lib/libpanelw.so.5.5
 #usr/share/terminfo/d/dtc300s
 #usr/share/terminfo/d/dtc382
 #usr/share/terminfo/d/dtterm
-#usr/share/terminfo/d/dumb
+usr/share/terminfo/d/dumb
 #usr/share/terminfo/d/dw
 #usr/share/terminfo/d/dw1
 #usr/share/terminfo/d/dw2
@@ -1604,7 +1836,8 @@ usr/lib/libpanelw.so.5.5
 #usr/share/terminfo/e/ergo4000
 #usr/share/terminfo/e/esprit
 #usr/share/terminfo/e/esprit-am
-#usr/share/terminfo/e/eterm
+usr/share/terminfo/e/eterm
+usr/share/terminfo/e/eterm-color
 #usr/share/terminfo/e/ex155
 #usr/share/terminfo/e/excel62
 #usr/share/terminfo/e/excel62-rv
@@ -1646,7 +1879,12 @@ usr/lib/libpanelw.so.5.5
 #usr/share/terminfo/g/gator-t
 #usr/share/terminfo/g/gigi
 #usr/share/terminfo/g/glasstty
-#usr/share/terminfo/g/gnome
+usr/share/terminfo/g/gnome
+#usr/share/terminfo/g/gnome+pcfkeys
+#usr/share/terminfo/g/gnome-2007
+#usr/share/terminfo/g/gnome-2008
+usr/share/terminfo/g/gnome-256color
+#usr/share/terminfo/g/gnome-fc5
 #usr/share/terminfo/g/gnome-rh62
 #usr/share/terminfo/g/gnome-rh72
 #usr/share/terminfo/g/gnome-rh80
@@ -1817,8 +2055,9 @@ usr/lib/libpanelw.so.5.5
 #usr/share/terminfo/h/hpgeneric
 #usr/share/terminfo/h/hpsub
 #usr/share/terminfo/h/hpterm
+#usr/share/terminfo/h/hpterm-color
 #usr/share/terminfo/h/htx11
-#usr/share/terminfo/h/hurd
+usr/share/terminfo/h/hurd
 #usr/share/terminfo/h/hz1000
 #usr/share/terminfo/h/hz1420
 #usr/share/terminfo/h/hz1500
@@ -1833,6 +2072,7 @@ usr/lib/libpanelw.so.5.5
 #usr/share/terminfo/i/i3101
 #usr/share/terminfo/i/i3164
 #usr/share/terminfo/i/i400
+#usr/share/terminfo/i/iTerm.app
 #usr/share/terminfo/i/ibcs2
 #usr/share/terminfo/i/ibm+16color
 #usr/share/terminfo/i/ibm+color
@@ -1913,6 +2153,7 @@ usr/lib/libpanelw.so.5.5
 #usr/share/terminfo/j/jaixterm
 #usr/share/terminfo/j/jaixterm-m
 #usr/share/terminfo/j/jerq
+usr/share/terminfo/j/jfbterm
 #usr/share/terminfo/k
 #usr/share/terminfo/k/k45
 #usr/share/terminfo/k/kaypro
@@ -1927,10 +2168,16 @@ usr/lib/libpanelw.so.5.5
 #usr/share/terminfo/k/klone+koi8acs
 #usr/share/terminfo/k/klone+sgr
 #usr/share/terminfo/k/klone+sgr-dumb
-#usr/share/terminfo/k/konsole
+#usr/share/terminfo/k/klone+sgr8
+#usr/share/terminfo/k/kon
+#usr/share/terminfo/k/kon2
+usr/share/terminfo/k/konsole
+#usr/share/terminfo/k/konsole+pcfkeys
 #usr/share/terminfo/k/konsole-16color
+usr/share/terminfo/k/konsole-256color
 #usr/share/terminfo/k/konsole-base
 #usr/share/terminfo/k/konsole-linux
+#usr/share/terminfo/k/konsole-solaris
 #usr/share/terminfo/k/konsole-vt100
 #usr/share/terminfo/k/konsole-vt420pc
 #usr/share/terminfo/k/konsole-xf3x
@@ -1948,15 +2195,17 @@ usr/lib/libpanelw.so.5.5
 #usr/share/terminfo/l/lft
 #usr/share/terminfo/l/lft-pc850
 usr/share/terminfo/l/linux
-usr/share/terminfo/l/linux-basic
+#usr/share/terminfo/l/linux-16color
+#usr/share/terminfo/l/linux-basic
 #usr/share/terminfo/l/linux-c
 #usr/share/terminfo/l/linux-c-nc
 #usr/share/terminfo/l/linux-koi8
 #usr/share/terminfo/l/linux-koi8r
-usr/share/terminfo/l/linux-lat
-usr/share/terminfo/l/linux-m
-usr/share/terminfo/l/linux-nic
-usr/share/terminfo/l/linux-vt
+#usr/share/terminfo/l/linux-lat
+#usr/share/terminfo/l/linux-m
+#usr/share/terminfo/l/linux-nic
+#usr/share/terminfo/l/linux-vt
+#usr/share/terminfo/l/linux2.6.26
 #usr/share/terminfo/l/lisa
 #usr/share/terminfo/l/lisaterm
 #usr/share/terminfo/l/lisaterm-w
@@ -1970,9 +2219,9 @@ usr/share/terminfo/l/linux-vt
 #usr/share/terminfo/m/m2-nam
 #usr/share/terminfo/m/mac
 #usr/share/terminfo/m/mac-w
-#usr/share/terminfo/m/mach
-#usr/share/terminfo/m/mach-bold
-#usr/share/terminfo/m/mach-color
+usr/share/terminfo/m/mach
+usr/share/terminfo/m/mach-bold
+usr/share/terminfo/m/mach-color
 #usr/share/terminfo/m/macintosh
 #usr/share/terminfo/m/macterminal-w
 #usr/share/terminfo/m/mai
@@ -1985,6 +2234,7 @@ usr/share/terminfo/l/linux-vt
 #usr/share/terminfo/m/mgr
 #usr/share/terminfo/m/mgr-linux
 #usr/share/terminfo/m/mgr-sun
+#usr/share/terminfo/m/mgt
 #usr/share/terminfo/m/mgterm
 #usr/share/terminfo/m/microb
 #usr/share/terminfo/m/microbee
@@ -2012,9 +2262,13 @@ usr/share/terminfo/l/linux-vt
 #usr/share/terminfo/m/minitel1b
 #usr/share/terminfo/m/minitel1b-80
 #usr/share/terminfo/m/minix
+#usr/share/terminfo/m/minix-1.5
+#usr/share/terminfo/m/minix-1.7
 #usr/share/terminfo/m/minix-old
 #usr/share/terminfo/m/minix-old-am
-#usr/share/terminfo/m/mlterm
+usr/share/terminfo/m/mlterm
+#usr/share/terminfo/m/mlterm+pcfkeys
+#usr/share/terminfo/m/mlterm-256color
 #usr/share/terminfo/m/mm314
 #usr/share/terminfo/m/mm340
 #usr/share/terminfo/m/mod
@@ -2025,6 +2279,8 @@ usr/share/terminfo/l/linux-vt
 #usr/share/terminfo/m/mono-emx
 #usr/share/terminfo/m/morphos
 #usr/share/terminfo/m/mouse-sun
+usr/share/terminfo/m/mrxvt
+#usr/share/terminfo/m/mrxvt-256color
 #usr/share/terminfo/m/ms-vt-utf8
 #usr/share/terminfo/m/ms-vt100
 #usr/share/terminfo/m/ms-vt100+
@@ -2104,6 +2360,15 @@ usr/share/terminfo/l/linux-vt
 #usr/share/terminfo/n/ncsa-ns
 #usr/share/terminfo/n/ncsa-vt220
 #usr/share/terminfo/n/ncsa-vt220-8
+#usr/share/terminfo/n/nd9500
+#usr/share/terminfo/n/ndr9500
+#usr/share/terminfo/n/ndr9500-25
+#usr/share/terminfo/n/ndr9500-25-mc
+#usr/share/terminfo/n/ndr9500-25-mc-nl
+#usr/share/terminfo/n/ndr9500-25-nl
+#usr/share/terminfo/n/ndr9500-mc
+#usr/share/terminfo/n/ndr9500-mc-nl
+#usr/share/terminfo/n/ndr9500-nl
 #usr/share/terminfo/n/nec
 #usr/share/terminfo/n/nec5520
 #usr/share/terminfo/n/newhp
@@ -2140,13 +2405,14 @@ usr/share/terminfo/l/linux-vt
 #usr/share/terminfo/n/next
 #usr/share/terminfo/n/nextshell
 #usr/share/terminfo/n/northstar
-#usr/share/terminfo/n/nsterm
+usr/share/terminfo/n/nsterm
 #usr/share/terminfo/n/nsterm+7
 #usr/share/terminfo/n/nsterm+acs
 #usr/share/terminfo/n/nsterm+c
 #usr/share/terminfo/n/nsterm+c41
 #usr/share/terminfo/n/nsterm+mac
 #usr/share/terminfo/n/nsterm+s
+#usr/share/terminfo/n/nsterm-16color
 #usr/share/terminfo/n/nsterm-7
 #usr/share/terminfo/n/nsterm-7-c
 #usr/share/terminfo/n/nsterm-7-c-s
@@ -2159,6 +2425,7 @@ usr/share/terminfo/l/linux-vt
 #usr/share/terminfo/n/nsterm-acs-m
 #usr/share/terminfo/n/nsterm-acs-m-s
 #usr/share/terminfo/n/nsterm-acs-s
+#usr/share/terminfo/n/nsterm-bce
 #usr/share/terminfo/n/nsterm-c
 #usr/share/terminfo/n/nsterm-c-7
 #usr/share/terminfo/n/nsterm-c-acs
@@ -2171,6 +2438,7 @@ usr/share/terminfo/l/linux-vt
 #usr/share/terminfo/n/nsterm-m-s
 #usr/share/terminfo/n/nsterm-m-s-7
 #usr/share/terminfo/n/nsterm-m-s-acs
+#usr/share/terminfo/n/nsterm-old
 #usr/share/terminfo/n/nsterm-s
 #usr/share/terminfo/n/nsterm-s-7
 #usr/share/terminfo/n/nsterm-s-acs
@@ -2292,7 +2560,7 @@ usr/share/terminfo/l/linux-vt
 #usr/share/terminfo/p/pc3r-m
 #usr/share/terminfo/p/pc6300plus
 #usr/share/terminfo/p/pc7300
-#usr/share/terminfo/p/pcansi
+usr/share/terminfo/p/pcansi
 #usr/share/terminfo/p/pcansi-25
 #usr/share/terminfo/p/pcansi-25-m
 #usr/share/terminfo/p/pcansi-33
@@ -2381,7 +2649,9 @@ usr/share/terminfo/l/linux-vt
 #usr/share/terminfo/p/pt505-22
 #usr/share/terminfo/p/pt505-24
 #usr/share/terminfo/p/pty
-#usr/share/terminfo/p/putty
+usr/share/terminfo/p/putty
+usr/share/terminfo/p/putty-256color
+usr/share/terminfo/p/putty-vt100
 #usr/share/terminfo/q
 #usr/share/terminfo/q/qansi
 #usr/share/terminfo/q/qansi-g
@@ -2443,14 +2713,16 @@ usr/share/terminfo/l/linux-vt
 #usr/share/terminfo/r/rt6221
 #usr/share/terminfo/r/rt6221-w
 #usr/share/terminfo/r/rtpc
-#usr/share/terminfo/r/rxvt
+usr/share/terminfo/r/rxvt
 #usr/share/terminfo/r/rxvt+pcfkeys
-#usr/share/terminfo/r/rxvt-16color
-#usr/share/terminfo/r/rxvt-basic
-#usr/share/terminfo/r/rxvt-color
-#usr/share/terminfo/r/rxvt-cygwin
-#usr/share/terminfo/r/rxvt-cygwin-native
-#usr/share/terminfo/r/rxvt-xpm
+usr/share/terminfo/r/rxvt-16color
+usr/share/terminfo/r/rxvt-256color
+usr/share/terminfo/r/rxvt-88color
+usr/share/terminfo/r/rxvt-basic
+usr/share/terminfo/r/rxvt-color
+usr/share/terminfo/r/rxvt-cygwin
+usr/share/terminfo/r/rxvt-cygwin-native
+usr/share/terminfo/r/rxvt-xpm
 #usr/share/terminfo/s
 #usr/share/terminfo/s/s4
 #usr/share/terminfo/s/sb1
@@ -2465,11 +2737,35 @@ usr/share/terminfo/l/linux-vt
 #usr/share/terminfo/s/scoansi-new
 #usr/share/terminfo/s/scoansi-old
 usr/share/terminfo/s/screen
+#usr/share/terminfo/s/screen+fkeys
+usr/share/terminfo/s/screen-16color
+#usr/share/terminfo/s/screen-16color-bce
+#usr/share/terminfo/s/screen-16color-bce-s
+#usr/share/terminfo/s/screen-16color-s
+usr/share/terminfo/s/screen-256color
+#usr/share/terminfo/s/screen-256color-bce
+#usr/share/terminfo/s/screen-256color-bce-s
+#usr/share/terminfo/s/screen-256color-s
 usr/share/terminfo/s/screen-bce
+#usr/share/terminfo/s/screen-bce.Eterm
+#usr/share/terminfo/s/screen-bce.gnome
+#usr/share/terminfo/s/screen-bce.konsole
+#usr/share/terminfo/s/screen-bce.linux
+#usr/share/terminfo/s/screen-bce.mlterm
+#usr/share/terminfo/s/screen-bce.mrxvt
+#usr/share/terminfo/s/screen-bce.rxvt
+#usr/share/terminfo/s/screen-bce.xterm-new
 usr/share/terminfo/s/screen-s
 usr/share/terminfo/s/screen-w
+usr/share/terminfo/s/screen.Eterm
+usr/share/terminfo/s/screen.gnome
+usr/share/terminfo/s/screen.konsole
 usr/share/terminfo/s/screen.linux
+usr/share/terminfo/s/screen.mlterm
+usr/share/terminfo/s/screen.mrxvt
+usr/share/terminfo/s/screen.rxvt
 usr/share/terminfo/s/screen.teraterm
+usr/share/terminfo/s/screen.vte
 usr/share/terminfo/s/screen.xterm-new
 usr/share/terminfo/s/screen.xterm-r6
 usr/share/terminfo/s/screen.xterm-xfree86
@@ -2484,7 +2780,12 @@ usr/share/terminfo/s/screen3
 #usr/share/terminfo/s/soroc140
 #usr/share/terminfo/s/spinwriter
 #usr/share/terminfo/s/st52
-#usr/share/terminfo/s/sun
+#usr/share/terminfo/s/st52-color
+#usr/share/terminfo/s/st52-m
+#usr/share/terminfo/s/st52-old
+#usr/share/terminfo/s/stv52
+#usr/share/terminfo/s/stv52pc
+usr/share/terminfo/s/sun
 #usr/share/terminfo/s/sun-1
 #usr/share/terminfo/s/sun-12
 #usr/share/terminfo/s/sun-17
@@ -2572,7 +2873,9 @@ usr/share/terminfo/s/screen3
 #usr/share/terminfo/t/tek4404
 #usr/share/terminfo/t/teleray
 #usr/share/terminfo/t/teletec
-#usr/share/terminfo/t/teraterm
+usr/share/terminfo/t/teraterm
+usr/share/terminfo/t/teraterm2.3
+#usr/share/terminfo/t/teraterm4.59
 #usr/share/terminfo/t/terminet
 #usr/share/terminfo/t/terminet1200
 #usr/share/terminfo/t/terminet300
@@ -2614,6 +2917,7 @@ usr/share/terminfo/s/screen3
 #usr/share/terminfo/t/ts1p
 #usr/share/terminfo/t/tt
 #usr/share/terminfo/t/tt505-22
+#usr/share/terminfo/t/tt52
 #usr/share/terminfo/t/tty33
 #usr/share/terminfo/t/tty35
 #usr/share/terminfo/t/tty37
@@ -2751,6 +3055,10 @@ usr/share/terminfo/s/screen3
 #usr/share/terminfo/t/tvi970-2p
 #usr/share/terminfo/t/tvi970-vb
 #usr/share/terminfo/t/tvipt
+#usr/share/terminfo/t/tw100
+#usr/share/terminfo/t/tw52
+#usr/share/terminfo/t/tw52-color
+#usr/share/terminfo/t/tw52-m
 #usr/share/terminfo/t/tws-generic
 #usr/share/terminfo/t/tws2102-sna
 #usr/share/terminfo/t/tws2103
@@ -2819,42 +3127,44 @@ usr/share/terminfo/s/screen3
 #usr/share/terminfo/v/vt-61
 #usr/share/terminfo/v/vt-utf8
 usr/share/terminfo/v/vt100
-usr/share/terminfo/v/vt100+
-usr/share/terminfo/v/vt100+fnkeys
-usr/share/terminfo/v/vt100+keypad
-usr/share/terminfo/v/vt100+pfkeys
-usr/share/terminfo/v/vt100-am
-usr/share/terminfo/v/vt100-bm
-usr/share/terminfo/v/vt100-bm-o
-usr/share/terminfo/v/vt100-bot-s
-usr/share/terminfo/v/vt100-nam
-usr/share/terminfo/v/vt100-nam-w
+#usr/share/terminfo/v/vt100+
+#usr/share/terminfo/v/vt100+enq
+#usr/share/terminfo/v/vt100+fnkeys
+#usr/share/terminfo/v/vt100+keypad
+#usr/share/terminfo/v/vt100+pfkeys
+#usr/share/terminfo/v/vt100-am
+#usr/share/terminfo/v/vt100-bm
+#usr/share/terminfo/v/vt100-bm-o
+#usr/share/terminfo/v/vt100-bot-s
+#usr/share/terminfo/v/vt100-nam
+#usr/share/terminfo/v/vt100-nam-w
 usr/share/terminfo/v/vt100-nav
-usr/share/terminfo/v/vt100-nav-w
-usr/share/terminfo/v/vt100-putty
-usr/share/terminfo/v/vt100-s
-usr/share/terminfo/v/vt100-s-bot
-usr/share/terminfo/v/vt100-s-top
-usr/share/terminfo/v/vt100-top-s
-usr/share/terminfo/v/vt100-vb
-usr/share/terminfo/v/vt100-w
-usr/share/terminfo/v/vt100-w-am
-usr/share/terminfo/v/vt100-w-nam
-usr/share/terminfo/v/vt100-w-nav
-usr/share/terminfo/v/vt100nam
+#usr/share/terminfo/v/vt100-nav-w
+#usr/share/terminfo/v/vt100-putty
+#usr/share/terminfo/v/vt100-s
+#usr/share/terminfo/v/vt100-s-bot
+#usr/share/terminfo/v/vt100-s-top
+#usr/share/terminfo/v/vt100-top-s
+#usr/share/terminfo/v/vt100-vb
+#usr/share/terminfo/v/vt100-w
+#usr/share/terminfo/v/vt100-w-am
+#usr/share/terminfo/v/vt100-w-nam
+#usr/share/terminfo/v/vt100-w-nav
+#usr/share/terminfo/v/vt100nam
 usr/share/terminfo/v/vt102
-usr/share/terminfo/v/vt102-nsgr
-usr/share/terminfo/v/vt102-w
+#usr/share/terminfo/v/vt102+enq
+#usr/share/terminfo/v/vt102-nsgr
+#usr/share/terminfo/v/vt102-w
 #usr/share/terminfo/v/vt125
 #usr/share/terminfo/v/vt131
 #usr/share/terminfo/v/vt132
-usr/share/terminfo/v/vt200
-usr/share/terminfo/v/vt200-8
-usr/share/terminfo/v/vt200-8bit
-usr/share/terminfo/v/vt200-js
+#usr/share/terminfo/v/vt200
+#usr/share/terminfo/v/vt200-8
+#usr/share/terminfo/v/vt200-8bit
+#usr/share/terminfo/v/vt200-js
 #usr/share/terminfo/v/vt200-old
-usr/share/terminfo/v/vt200-w
-#usr/share/terminfo/v/vt220
+#usr/share/terminfo/v/vt200-w
+usr/share/terminfo/v/vt220
 #usr/share/terminfo/v/vt220+keypad
 #usr/share/terminfo/v/vt220-8
 #usr/share/terminfo/v/vt220-8bit
@@ -2887,13 +3197,19 @@ usr/share/terminfo/v/vt200-w
 #usr/share/terminfo/v/vt510
 #usr/share/terminfo/v/vt510pc
 #usr/share/terminfo/v/vt510pcdos
-#usr/share/terminfo/v/vt52
+usr/share/terminfo/v/vt52
 #usr/share/terminfo/v/vt520
 #usr/share/terminfo/v/vt525
 #usr/share/terminfo/v/vt61
 #usr/share/terminfo/v/vt61.5
+usr/share/terminfo/v/vte
+#usr/share/terminfo/v/vte+pcfkeys
+#usr/share/terminfo/v/vte-2007
+#usr/share/terminfo/v/vte-2008
+usr/share/terminfo/v/vte-256color
 #usr/share/terminfo/v/vtnt
 #usr/share/terminfo/v/vv100
+usr/share/terminfo/v/vwmterm
 #usr/share/terminfo/w
 #usr/share/terminfo/w/wren
 #usr/share/terminfo/w/wrenw
@@ -3147,6 +3463,8 @@ usr/share/terminfo/v/vt200-w
 #usr/share/terminfo/x/xerox-lm
 #usr/share/terminfo/x/xerox1720
 #usr/share/terminfo/x/xerox820
+usr/share/terminfo/x/xfce
+#usr/share/terminfo/x/xiterm
 #usr/share/terminfo/x/xl83
 #usr/share/terminfo/x/xnuppc
 #usr/share/terminfo/x/xnuppc+100x37
@@ -3199,39 +3517,55 @@ usr/share/terminfo/v/vt200-w
 #usr/share/terminfo/x/xnuppc-m-f2
 #usr/share/terminfo/x/xtalk
 usr/share/terminfo/x/xterm
-usr/share/terminfo/x/xterm+pcfkeys
-usr/share/terminfo/x/xterm+sl
-usr/share/terminfo/x/xterm+sl-twm
-#usr/share/terminfo/x/xterm-1002
-#usr/share/terminfo/x/xterm-1003
-#usr/share/terminfo/x/xterm-16color
-#usr/share/terminfo/x/xterm-24
+#usr/share/terminfo/x/xterm+256color
+#usr/share/terminfo/x/xterm+88color
+#usr/share/terminfo/x/xterm+app
+#usr/share/terminfo/x/xterm+edit
+#usr/share/terminfo/x/xterm+noapp
+#usr/share/terminfo/x/xterm+pc+edit
+#usr/share/terminfo/x/xterm+pcc0
+#usr/share/terminfo/x/xterm+pcc1
+#usr/share/terminfo/x/xterm+pcc2
+#usr/share/terminfo/x/xterm+pcc3
+#usr/share/terminfo/x/xterm+pce2
+#usr/share/terminfo/x/xterm+pcf0
+#usr/share/terminfo/x/xterm+pcf2
+#usr/share/terminfo/x/xterm+pcfkeys
+#usr/share/terminfo/x/xterm+r6f2
+#usr/share/terminfo/x/xterm+sl
+#usr/share/terminfo/x/xterm+sl-twm
+#usr/share/terminfo/x/xterm+vt+edit
+usr/share/terminfo/x/xterm-1002
+usr/share/terminfo/x/xterm-1003
+usr/share/terminfo/x/xterm-16color
+usr/share/terminfo/x/xterm-24
 usr/share/terminfo/x/xterm-256color
 usr/share/terminfo/x/xterm-88color
-#usr/share/terminfo/x/xterm-8bit
-#usr/share/terminfo/x/xterm-basic
-#usr/share/terminfo/x/xterm-bold
+usr/share/terminfo/x/xterm-8bit
+usr/share/terminfo/x/xterm-basic
+usr/share/terminfo/x/xterm-bold
 usr/share/terminfo/x/xterm-color
-#usr/share/terminfo/x/xterm-hp
-#usr/share/terminfo/x/xterm-new
-#usr/share/terminfo/x/xterm-nic
-#usr/share/terminfo/x/xterm-noapp
-#usr/share/terminfo/x/xterm-old
-#usr/share/terminfo/x/xterm-pcolor
-#usr/share/terminfo/x/xterm-r5
-#usr/share/terminfo/x/xterm-r6
-#usr/share/terminfo/x/xterm-sco
-#usr/share/terminfo/x/xterm-sun
+usr/share/terminfo/x/xterm-hp
+usr/share/terminfo/x/xterm-new
+usr/share/terminfo/x/xterm-nic
+usr/share/terminfo/x/xterm-noapp
+usr/share/terminfo/x/xterm-old
+usr/share/terminfo/x/xterm-pcolor
+usr/share/terminfo/x/xterm-r5
+usr/share/terminfo/x/xterm-r6
+usr/share/terminfo/x/xterm-sco
+usr/share/terminfo/x/xterm-sun
+usr/share/terminfo/x/xterm-utf8
 usr/share/terminfo/x/xterm-vt220
 usr/share/terminfo/x/xterm-vt52
-#usr/share/terminfo/x/xterm-xf86-v32
-#usr/share/terminfo/x/xterm-xf86-v33
-#usr/share/terminfo/x/xterm-xf86-v333
-#usr/share/terminfo/x/xterm-xf86-v40
-#usr/share/terminfo/x/xterm-xf86-v43
-#usr/share/terminfo/x/xterm-xf86-v44
-#usr/share/terminfo/x/xterm-xfree86
-#usr/share/terminfo/x/xterm-xi
+usr/share/terminfo/x/xterm-xf86-v32
+usr/share/terminfo/x/xterm-xf86-v33
+usr/share/terminfo/x/xterm-xf86-v333
+usr/share/terminfo/x/xterm-xf86-v40
+usr/share/terminfo/x/xterm-xf86-v43
+usr/share/terminfo/x/xterm-xf86-v44
+usr/share/terminfo/x/xterm-xfree86
+usr/share/terminfo/x/xterm-xi
 #usr/share/terminfo/x/xterm1
 #usr/share/terminfo/x/xtermc
 #usr/share/terminfo/x/xtermm
index f5f0fa4f3ea7b620b5e0f3a2bb221c178090aabd..08fb2ce0c4ae45f1eba192b816b9153145bb5d8d 100644 (file)
@@ -1,4 +1,4 @@
-#usr/bin/whiptail
+usr/bin/whiptail
 #usr/include/newt.h
 #usr/lib/libnewt.a
 usr/lib/libnewt.so
index bb43588b18ea6cebac854cf24cef13a185f5ef4f..6a72df8b1c060d4194e30ccfa9d8401fb1e1335f 100644 (file)
 #usr/include/slapi-plugin.h
 usr/lib/liblber-2.3.so.0
 usr/lib/liblber-2.3.so.0.2.8
-#usr/lib/liblber.a
 #usr/lib/liblber.la
-usr/lib/liblber.so
+#usr/lib/liblber.so
 usr/lib/libldap-2.3.so.0
 usr/lib/libldap-2.3.so.0.2.8
-#usr/lib/libldap.a
 #usr/lib/libldap.la
-usr/lib/libldap.so
+#usr/lib/libldap.so
 usr/lib/libldap_r-2.3.so.0
 usr/lib/libldap_r-2.3.so.0.2.8
-#usr/lib/libldap_r.a
 #usr/lib/libldap_r.la
-usr/lib/libldap_r.so
+#usr/lib/libldap_r.so
+#usr/lib/openldap
+#usr/lib/openldap/accesslog-2.3.so.0
+#usr/lib/openldap/accesslog-2.3.so.0.2.8
+#usr/lib/openldap/accesslog.la
+#usr/lib/openldap/accesslog.so
+#usr/lib/openldap/back_bdb-2.3.so.0
+#usr/lib/openldap/back_bdb-2.3.so.0.2.8
+#usr/lib/openldap/back_bdb.la
+#usr/lib/openldap/back_bdb.so
+#usr/lib/openldap/back_dnssrv-2.3.so.0
+#usr/lib/openldap/back_dnssrv-2.3.so.0.2.8
+#usr/lib/openldap/back_dnssrv.la
+#usr/lib/openldap/back_dnssrv.so
+#usr/lib/openldap/back_hdb-2.3.so.0
+#usr/lib/openldap/back_hdb-2.3.so.0.2.8
+#usr/lib/openldap/back_hdb.la
+#usr/lib/openldap/back_hdb.so
+#usr/lib/openldap/back_ldap-2.3.so.0
+#usr/lib/openldap/back_ldap-2.3.so.0.2.8
+#usr/lib/openldap/back_ldap.la
+#usr/lib/openldap/back_ldap.so
+#usr/lib/openldap/back_ldbm-2.3.so.0
+#usr/lib/openldap/back_ldbm-2.3.so.0.2.8
+#usr/lib/openldap/back_ldbm.la
+#usr/lib/openldap/back_ldbm.so
+#usr/lib/openldap/back_meta-2.3.so.0
+#usr/lib/openldap/back_meta-2.3.so.0.2.8
+#usr/lib/openldap/back_meta.la
+#usr/lib/openldap/back_meta.so
+#usr/lib/openldap/back_monitor-2.3.so.0
+#usr/lib/openldap/back_monitor-2.3.so.0.2.8
+#usr/lib/openldap/back_monitor.la
+#usr/lib/openldap/back_monitor.so
+#usr/lib/openldap/back_null-2.3.so.0
+#usr/lib/openldap/back_null-2.3.so.0.2.8
+#usr/lib/openldap/back_null.la
+#usr/lib/openldap/back_null.so
+#usr/lib/openldap/back_passwd-2.3.so.0
+#usr/lib/openldap/back_passwd-2.3.so.0.2.8
+#usr/lib/openldap/back_passwd.la
+#usr/lib/openldap/back_passwd.so
+#usr/lib/openldap/back_relay-2.3.so.0
+#usr/lib/openldap/back_relay-2.3.so.0.2.8
+#usr/lib/openldap/back_relay.la
+#usr/lib/openldap/back_relay.so
+#usr/lib/openldap/back_shell-2.3.so.0
+#usr/lib/openldap/back_shell-2.3.so.0.2.8
+#usr/lib/openldap/back_shell.la
+#usr/lib/openldap/back_shell.so
+#usr/lib/openldap/denyop-2.3.so.0
+#usr/lib/openldap/denyop-2.3.so.0.2.8
+#usr/lib/openldap/denyop.la
+#usr/lib/openldap/denyop.so
+#usr/lib/openldap/dyngroup-2.3.so.0
+#usr/lib/openldap/dyngroup-2.3.so.0.2.8
+#usr/lib/openldap/dyngroup.la
+#usr/lib/openldap/dyngroup.so
+#usr/lib/openldap/dynlist-2.3.so.0
+#usr/lib/openldap/dynlist-2.3.so.0.2.8
+#usr/lib/openldap/dynlist.la
+#usr/lib/openldap/dynlist.so
+#usr/lib/openldap/lastmod-2.3.so.0
+#usr/lib/openldap/lastmod-2.3.so.0.2.8
+#usr/lib/openldap/lastmod.la
+#usr/lib/openldap/lastmod.so
+#usr/lib/openldap/pcache-2.3.so.0
+#usr/lib/openldap/pcache-2.3.so.0.2.8
+#usr/lib/openldap/pcache.la
+#usr/lib/openldap/pcache.so
+#usr/lib/openldap/ppolicy-2.3.so.0
+#usr/lib/openldap/ppolicy-2.3.so.0.2.8
+#usr/lib/openldap/ppolicy.la
+#usr/lib/openldap/ppolicy.so
+#usr/lib/openldap/refint-2.3.so.0
+#usr/lib/openldap/refint-2.3.so.0.2.8
+#usr/lib/openldap/refint.la
+#usr/lib/openldap/refint.so
+#usr/lib/openldap/retcode-2.3.so.0
+#usr/lib/openldap/retcode-2.3.so.0.2.8
+#usr/lib/openldap/retcode.la
+#usr/lib/openldap/retcode.so
+#usr/lib/openldap/rwm-2.3.so.0
+#usr/lib/openldap/rwm-2.3.so.0.2.8
+#usr/lib/openldap/rwm.la
+#usr/lib/openldap/rwm.so
+#usr/lib/openldap/syncprov-2.3.so.0
+#usr/lib/openldap/syncprov-2.3.so.0.2.8
+#usr/lib/openldap/syncprov.la
+#usr/lib/openldap/syncprov.so
+#usr/lib/openldap/translucent-2.3.so.0
+#usr/lib/openldap/translucent-2.3.so.0.2.8
+#usr/lib/openldap/translucent.la
+#usr/lib/openldap/translucent.so
+#usr/lib/openldap/unique-2.3.so.0
+#usr/lib/openldap/unique-2.3.so.0.2.8
+#usr/lib/openldap/unique.la
+#usr/lib/openldap/unique.so
+#usr/lib/openldap/valsort-2.3.so.0
+#usr/lib/openldap/valsort-2.3.so.0.2.8
+#usr/lib/openldap/valsort.la
+#usr/lib/openldap/valsort.so
+#usr/lib/slapd
+#usr/lib/slurpd
 #usr/man/man1/ldapadd.1
 #usr/man/man1/ldapcompare.1
 #usr/man/man1/ldapdelete.1
@@ -257,9 +357,7 @@ usr/lib/libldap_r.so
 #usr/sbin/slapadd
 #usr/sbin/slapauth
 #usr/sbin/slapcat
-#usr/sbin/slapd
 #usr/sbin/slapdn
 #usr/sbin/slapindex
 #usr/sbin/slappasswd
 #usr/sbin/slaptest
-#usr/sbin/slurpd
index 02e4c1cdd9509e37590cb8f903262f14b86f7119..296a0c05c7b103fad5ecb7865e893577ff317bac 100644 (file)
@@ -1116,6 +1116,7 @@ usr/lib/libssl.so.0.9.8
 #usr/share/man/man3/dsa.3
 #usr/share/man/man3/ecdsa.3
 #usr/share/man/man3/engine.3
+#usr/share/man/man3/err.3
 #usr/share/man/man3/evp.3
 #usr/share/man/man3/hmac.3
 #usr/share/man/man3/i2d_ASN1_OBJECT.3
index a14302aab8b4b59500b34709187cd8eb89c8b864..3335a544abaaefe3e785947fedf655aefebbd449 100644 (file)
@@ -11,7 +11,9 @@ etc/security
 #etc/security/group.conf
 #etc/security/limits.conf
 #etc/security/limits.d
+#etc/security/namespace.conf
 #etc/security/namespace.d
+#etc/security/namespace.init
 #etc/security/pam_env.conf
 #etc/security/time.conf
 lib/libpam.so.0
@@ -63,6 +65,8 @@ lib/security/pam_mail.so
 #lib/security/pam_mkhomedir.so
 #lib/security/pam_motd.la
 #lib/security/pam_motd.so
+#lib/security/pam_namespace.la
+#lib/security/pam_namespace.so
 #lib/security/pam_nologin.la
 lib/security/pam_nologin.so
 #lib/security/pam_permit.la
@@ -161,6 +165,7 @@ usr/lib/libpamc.so
 #usr/share/man/man5/access.conf.5
 #usr/share/man/man5/group.conf.5
 #usr/share/man/man5/limits.conf.5
+#usr/share/man/man5/namespace.conf.5
 #usr/share/man/man5/pam.conf.5
 #usr/share/man/man5/pam.d.5
 #usr/share/man/man5/pam_env.conf.5
@@ -188,6 +193,7 @@ usr/lib/libpamc.so
 #usr/share/man/man8/pam_mail.8
 #usr/share/man/man8/pam_mkhomedir.8
 #usr/share/man/man8/pam_motd.8
+#usr/share/man/man8/pam_namespace.8
 #usr/share/man/man8/pam_nologin.8
 #usr/share/man/man8/pam_permit.8
 #usr/share/man/man8/pam_rhosts.8
diff --git a/config/rootfiles/common/pango b/config/rootfiles/common/pango
new file mode 100644 (file)
index 0000000..286aa35
--- /dev/null
@@ -0,0 +1,143 @@
+etc/pango
+etc/pango/pango.modules
+usr/bin/pango-querymodules
+usr/bin/pango-view
+#usr/include/pango-1.0
+#usr/include/pango-1.0/pango
+#usr/include/pango-1.0/pango/pango-attributes.h
+#usr/include/pango-1.0/pango/pango-bidi-type.h
+#usr/include/pango-1.0/pango/pango-break.h
+#usr/include/pango-1.0/pango/pango-context.h
+#usr/include/pango-1.0/pango/pango-coverage.h
+#usr/include/pango-1.0/pango/pango-engine.h
+#usr/include/pango-1.0/pango/pango-enum-types.h
+#usr/include/pango-1.0/pango/pango-features.h
+#usr/include/pango-1.0/pango/pango-font.h
+#usr/include/pango-1.0/pango/pango-fontmap.h
+#usr/include/pango-1.0/pango/pango-fontset.h
+#usr/include/pango-1.0/pango/pango-glyph-item.h
+#usr/include/pango-1.0/pango/pango-glyph.h
+#usr/include/pango-1.0/pango/pango-gravity.h
+#usr/include/pango-1.0/pango/pango-item.h
+#usr/include/pango-1.0/pango/pango-language.h
+#usr/include/pango-1.0/pango/pango-layout.h
+#usr/include/pango-1.0/pango/pango-matrix.h
+#usr/include/pango-1.0/pango/pango-modules.h
+#usr/include/pango-1.0/pango/pango-ot.h
+#usr/include/pango-1.0/pango/pango-renderer.h
+#usr/include/pango-1.0/pango/pango-script.h
+#usr/include/pango-1.0/pango/pango-tabs.h
+#usr/include/pango-1.0/pango/pango-types.h
+#usr/include/pango-1.0/pango/pango-utils.h
+#usr/include/pango-1.0/pango/pango.h
+#usr/include/pango-1.0/pango/pangocairo.h
+#usr/include/pango-1.0/pango/pangofc-decoder.h
+#usr/include/pango-1.0/pango/pangofc-font.h
+#usr/include/pango-1.0/pango/pangofc-fontmap.h
+#usr/include/pango-1.0/pango/pangoft2.h
+#usr/lib/libpango-1.0.la
+#usr/lib/libpango-1.0.so
+usr/lib/libpango-1.0.so.0
+usr/lib/libpango-1.0.so.0.3000.1
+#usr/lib/libpangocairo-1.0.la
+#usr/lib/libpangocairo-1.0.so
+usr/lib/libpangocairo-1.0.so.0
+usr/lib/libpangocairo-1.0.so.0.3000.1
+#usr/lib/libpangoft2-1.0.la
+#usr/lib/libpangoft2-1.0.so
+usr/lib/libpangoft2-1.0.so.0
+usr/lib/libpangoft2-1.0.so.0.3000.1
+usr/lib/pango
+usr/lib/pango/1.6.0
+usr/lib/pango/1.6.0/modules
+#usr/lib/pango/1.6.0/modules/pango-arabic-fc.la
+usr/lib/pango/1.6.0/modules/pango-arabic-fc.so
+#usr/lib/pango/1.6.0/modules/pango-arabic-lang.la
+usr/lib/pango/1.6.0/modules/pango-arabic-lang.so
+#usr/lib/pango/1.6.0/modules/pango-basic-fc.la
+usr/lib/pango/1.6.0/modules/pango-basic-fc.so
+#usr/lib/pango/1.6.0/modules/pango-hangul-fc.la
+usr/lib/pango/1.6.0/modules/pango-hangul-fc.so
+#usr/lib/pango/1.6.0/modules/pango-hebrew-fc.la
+usr/lib/pango/1.6.0/modules/pango-hebrew-fc.so
+#usr/lib/pango/1.6.0/modules/pango-indic-fc.la
+usr/lib/pango/1.6.0/modules/pango-indic-fc.so
+#usr/lib/pango/1.6.0/modules/pango-indic-lang.la
+usr/lib/pango/1.6.0/modules/pango-indic-lang.so
+#usr/lib/pango/1.6.0/modules/pango-khmer-fc.la
+usr/lib/pango/1.6.0/modules/pango-khmer-fc.so
+#usr/lib/pango/1.6.0/modules/pango-syriac-fc.la
+usr/lib/pango/1.6.0/modules/pango-syriac-fc.so
+#usr/lib/pango/1.6.0/modules/pango-thai-fc.la
+usr/lib/pango/1.6.0/modules/pango-thai-fc.so
+#usr/lib/pango/1.6.0/modules/pango-tibetan-fc.la
+usr/lib/pango/1.6.0/modules/pango-tibetan-fc.so
+#usr/lib/pkgconfig/pango.pc
+#usr/lib/pkgconfig/pangocairo.pc
+#usr/lib/pkgconfig/pangoft2.pc
+#usr/share/gtk-doc/html/pango
+#usr/share/gtk-doc/html/pango/PangoEngineLang.html
+#usr/share/gtk-doc/html/pango/PangoEngineShape.html
+#usr/share/gtk-doc/html/pango/PangoFcDecoder.html
+#usr/share/gtk-doc/html/pango/PangoFcFont.html
+#usr/share/gtk-doc/html/pango/PangoFcFontMap.html
+#usr/share/gtk-doc/html/pango/PangoMarkupFormat.html
+#usr/share/gtk-doc/html/pango/annotation-glossary.html
+#usr/share/gtk-doc/html/pango/api-index-1-10.html
+#usr/share/gtk-doc/html/pango/api-index-1-12.html
+#usr/share/gtk-doc/html/pango/api-index-1-14.html
+#usr/share/gtk-doc/html/pango/api-index-1-16.html
+#usr/share/gtk-doc/html/pango/api-index-1-18.html
+#usr/share/gtk-doc/html/pango/api-index-1-2.html
+#usr/share/gtk-doc/html/pango/api-index-1-20.html
+#usr/share/gtk-doc/html/pango/api-index-1-22.html
+#usr/share/gtk-doc/html/pango/api-index-1-24.html
+#usr/share/gtk-doc/html/pango/api-index-1-26.html
+#usr/share/gtk-doc/html/pango/api-index-1-28.html
+#usr/share/gtk-doc/html/pango/api-index-1-30.html
+#usr/share/gtk-doc/html/pango/api-index-1-4.html
+#usr/share/gtk-doc/html/pango/api-index-1-6.html
+#usr/share/gtk-doc/html/pango/api-index-1-8.html
+#usr/share/gtk-doc/html/pango/api-index-deprecated.html
+#usr/share/gtk-doc/html/pango/api-index-full.html
+#usr/share/gtk-doc/html/pango/home.png
+#usr/share/gtk-doc/html/pango/index.html
+#usr/share/gtk-doc/html/pango/index.sgml
+#usr/share/gtk-doc/html/pango/layout.gif
+#usr/share/gtk-doc/html/pango/left.png
+#usr/share/gtk-doc/html/pango/lowlevel.html
+#usr/share/gtk-doc/html/pango/pango-ATSUI-Fonts.html
+#usr/share/gtk-doc/html/pango/pango-Bidirectional-Text.html
+#usr/share/gtk-doc/html/pango/pango-Cairo-Rendering.html
+#usr/share/gtk-doc/html/pango/pango-CoreText-Fonts.html
+#usr/share/gtk-doc/html/pango/pango-Coverage-Maps.html
+#usr/share/gtk-doc/html/pango/pango-Engines.html
+#usr/share/gtk-doc/html/pango/pango-Fonts.html
+#usr/share/gtk-doc/html/pango/pango-FreeType-Fonts-and-Rendering.html
+#usr/share/gtk-doc/html/pango/pango-Glyph-Storage.html
+#usr/share/gtk-doc/html/pango/pango-Layout-Objects.html
+#usr/share/gtk-doc/html/pango/pango-Miscellaneous-Utilities.html
+#usr/share/gtk-doc/html/pango/pango-Modules.html
+#usr/share/gtk-doc/html/pango/pango-OpenType-Font-Handling.html
+#usr/share/gtk-doc/html/pango/pango-Scripts-and-Languages.html
+#usr/share/gtk-doc/html/pango/pango-Tab-Stops.html
+#usr/share/gtk-doc/html/pango/pango-Text-Attributes.html
+#usr/share/gtk-doc/html/pango/pango-Text-Processing.html
+#usr/share/gtk-doc/html/pango/pango-Version-Checking.html
+#usr/share/gtk-doc/html/pango/pango-Vertical-Text.html
+#usr/share/gtk-doc/html/pango/pango-Win32-Fonts-and-Rendering.html
+#usr/share/gtk-doc/html/pango/pango-X-Fonts-and-Rendering.html
+#usr/share/gtk-doc/html/pango/pango-Xft-Fonts-and-Rendering.html
+#usr/share/gtk-doc/html/pango/pango-hierarchy.html
+#usr/share/gtk-doc/html/pango/pango-pango-renderer.html
+#usr/share/gtk-doc/html/pango/pango-querymodules.html
+#usr/share/gtk-doc/html/pango/pango.devhelp2
+#usr/share/gtk-doc/html/pango/pango.html
+#usr/share/gtk-doc/html/pango/rendering.html
+#usr/share/gtk-doc/html/pango/right.png
+#usr/share/gtk-doc/html/pango/rotated-text.png
+#usr/share/gtk-doc/html/pango/style.css
+#usr/share/gtk-doc/html/pango/tools.html
+#usr/share/gtk-doc/html/pango/up.png
+#usr/share/man/man1/pango-querymodules.1
+#usr/share/man/man1/pango-view.1
index 260f2717c09c2d29597b73cb8ecb4a3d90249857..43c31a1a2e7679534e8e95c3ab069b6533f8512e 100644 (file)
@@ -1,21 +1,12 @@
+bin/lspci
+bin/setpci
+lib/libpci.so.3
+lib/libpci.so.3.1.10
+sbin/update-pciids
 #usr/include/pci
 #usr/include/pci/config.h
 #usr/include/pci/header.h
-#usr/include/pci/i386-io-hurd.h
-#usr/include/pci/i386-io-linux.h
-#usr/include/pci/i386-io-sunos.h
-#usr/include/pci/i386-io-windows.h
-#usr/include/pci/internal.h
 #usr/include/pci/pci.h
-#usr/include/pci/pread.h
-#usr/include/pci/sysdep.h
 #usr/include/pci/types.h
-#usr/lib/libpci.a
-usr/sbin/lspci
-usr/sbin/setpci
-usr/sbin/update-pciids
-#usr/share/hwdata
-#usr/share/hwdata/pci.ids
-#usr/share/man/man8/lspci.8
-#usr/share/man/man8/setpci.8
-#usr/share/man/man8/update-pciids.8
+#usr/lib/libpci.so
+#usr/lib/pkgconfig/libpci.pc
index d031bd3dd0273913e2dc15fe4a1d250307432b09..5c292700c77ce6d28e70b913f1190d8692baa33d 100644 (file)
@@ -1,5 +1,3 @@
-lib/libpcre.so.0
-lib/libpcre.so.0.0.1
 #usr/bin/pcre-config
 #usr/bin/pcregrep
 #usr/bin/pcretest
@@ -9,57 +7,21 @@ lib/libpcre.so.0.0.1
 #usr/include/pcrecpp.h
 #usr/include/pcrecpparg.h
 #usr/include/pcreposix.h
-#usr/lib/libpcre.a
 #usr/lib/libpcre.la
 usr/lib/libpcre.so
-#usr/lib/libpcrecpp.a
+usr/lib/libpcre.so.1
+usr/lib/libpcre.so.1.0.1
 #usr/lib/libpcrecpp.la
 usr/lib/libpcrecpp.so
 usr/lib/libpcrecpp.so.0
 usr/lib/libpcrecpp.so.0.0.0
-#usr/lib/libpcreposix.a
 #usr/lib/libpcreposix.la
 usr/lib/libpcreposix.so
 usr/lib/libpcreposix.so.0
-usr/lib/libpcreposix.so.0.0.0
+usr/lib/libpcreposix.so.0.0.1
 #usr/lib/pkgconfig/libpcre.pc
-#usr/man/man1/pcregrep.1
-#usr/man/man1/pcretest.1
-#usr/man/man3/pcre.3
-#usr/man/man3/pcre_compile.3
-#usr/man/man3/pcre_compile2.3
-#usr/man/man3/pcre_config.3
-#usr/man/man3/pcre_copy_named_substring.3
-#usr/man/man3/pcre_copy_substring.3
-#usr/man/man3/pcre_dfa_exec.3
-#usr/man/man3/pcre_exec.3
-#usr/man/man3/pcre_free_substring.3
-#usr/man/man3/pcre_free_substring_list.3
-#usr/man/man3/pcre_fullinfo.3
-#usr/man/man3/pcre_get_named_substring.3
-#usr/man/man3/pcre_get_stringnumber.3
-#usr/man/man3/pcre_get_stringtable_entries.3
-#usr/man/man3/pcre_get_substring.3
-#usr/man/man3/pcre_get_substring_list.3
-#usr/man/man3/pcre_info.3
-#usr/man/man3/pcre_maketables.3
-#usr/man/man3/pcre_refcount.3
-#usr/man/man3/pcre_study.3
-#usr/man/man3/pcre_version.3
-#usr/man/man3/pcreapi.3
-#usr/man/man3/pcrebuild.3
-#usr/man/man3/pcrecallout.3
-#usr/man/man3/pcrecompat.3
-#usr/man/man3/pcrecpp.3
-#usr/man/man3/pcrematching.3
-#usr/man/man3/pcrepartial.3
-#usr/man/man3/pcrepattern.3
-#usr/man/man3/pcreperform.3
-#usr/man/man3/pcreposix.3
-#usr/man/man3/pcreprecompile.3
-#usr/man/man3/pcresample.3
-#usr/man/man3/pcrestack.3
 #usr/lib/pkgconfig/libpcrecpp.pc
+#usr/lib/pkgconfig/libpcreposix.pc
 #usr/share/doc/pcre
 #usr/share/doc/pcre/AUTHORS
 #usr/share/doc/pcre/COPYING
@@ -71,6 +33,8 @@ usr/lib/libpcreposix.so.0.0.0
 #usr/share/doc/pcre/html/index.html
 #usr/share/doc/pcre/html/pcre-config.html
 #usr/share/doc/pcre/html/pcre.html
+#usr/share/doc/pcre/html/pcre16.html
+#usr/share/doc/pcre/html/pcre_assign_jit_stack.html
 #usr/share/doc/pcre/html/pcre_compile.html
 #usr/share/doc/pcre/html/pcre_compile2.html
 #usr/share/doc/pcre/html/pcre_config.html
@@ -78,6 +42,7 @@ usr/lib/libpcreposix.so.0.0.0
 #usr/share/doc/pcre/html/pcre_copy_substring.html
 #usr/share/doc/pcre/html/pcre_dfa_exec.html
 #usr/share/doc/pcre/html/pcre_exec.html
+#usr/share/doc/pcre/html/pcre_free_study.html
 #usr/share/doc/pcre/html/pcre_free_substring.html
 #usr/share/doc/pcre/html/pcre_free_substring_list.html
 #usr/share/doc/pcre/html/pcre_fullinfo.html
@@ -86,17 +51,23 @@ usr/lib/libpcreposix.so.0.0.0
 #usr/share/doc/pcre/html/pcre_get_stringtable_entries.html
 #usr/share/doc/pcre/html/pcre_get_substring.html
 #usr/share/doc/pcre/html/pcre_get_substring_list.html
-#usr/share/doc/pcre/html/pcre_info.html
+#usr/share/doc/pcre/html/pcre_jit_stack_alloc.html
+#usr/share/doc/pcre/html/pcre_jit_stack_free.html
 #usr/share/doc/pcre/html/pcre_maketables.html
+#usr/share/doc/pcre/html/pcre_pattern_to_host_byte_order.html
 #usr/share/doc/pcre/html/pcre_refcount.html
 #usr/share/doc/pcre/html/pcre_study.html
+#usr/share/doc/pcre/html/pcre_utf16_to_host_byte_order.html
 #usr/share/doc/pcre/html/pcre_version.html
 #usr/share/doc/pcre/html/pcreapi.html
 #usr/share/doc/pcre/html/pcrebuild.html
 #usr/share/doc/pcre/html/pcrecallout.html
 #usr/share/doc/pcre/html/pcrecompat.html
 #usr/share/doc/pcre/html/pcrecpp.html
+#usr/share/doc/pcre/html/pcredemo.html
 #usr/share/doc/pcre/html/pcregrep.html
+#usr/share/doc/pcre/html/pcrejit.html
+#usr/share/doc/pcre/html/pcrelimits.html
 #usr/share/doc/pcre/html/pcrematching.html
 #usr/share/doc/pcre/html/pcrepartial.html
 #usr/share/doc/pcre/html/pcrepattern.html
@@ -107,6 +78,7 @@ usr/lib/libpcreposix.so.0.0.0
 #usr/share/doc/pcre/html/pcrestack.html
 #usr/share/doc/pcre/html/pcresyntax.html
 #usr/share/doc/pcre/html/pcretest.html
+#usr/share/doc/pcre/html/pcreunicode.html
 #usr/share/doc/pcre/pcre-config.txt
 #usr/share/doc/pcre/pcre.txt
 #usr/share/doc/pcre/pcregrep.txt
@@ -115,6 +87,33 @@ usr/lib/libpcreposix.so.0.0.0
 #usr/share/man/man1/pcregrep.1
 #usr/share/man/man1/pcretest.1
 #usr/share/man/man3/pcre.3
+#usr/share/man/man3/pcre16.3
+#usr/share/man/man3/pcre16_assign_jit_stack.3
+#usr/share/man/man3/pcre16_compile.3
+#usr/share/man/man3/pcre16_compile2.3
+#usr/share/man/man3/pcre16_config.3
+#usr/share/man/man3/pcre16_copy_named_substring.3
+#usr/share/man/man3/pcre16_copy_substring.3
+#usr/share/man/man3/pcre16_dfa_exec.3
+#usr/share/man/man3/pcre16_exec.3
+#usr/share/man/man3/pcre16_free_study.3
+#usr/share/man/man3/pcre16_free_substring.3
+#usr/share/man/man3/pcre16_free_substring_list.3
+#usr/share/man/man3/pcre16_fullinfo.3
+#usr/share/man/man3/pcre16_get_named_substring.3
+#usr/share/man/man3/pcre16_get_stringnumber.3
+#usr/share/man/man3/pcre16_get_stringtable_entries.3
+#usr/share/man/man3/pcre16_get_substring.3
+#usr/share/man/man3/pcre16_get_substring_list.3
+#usr/share/man/man3/pcre16_jit_stack_alloc.3
+#usr/share/man/man3/pcre16_jit_stack_free.3
+#usr/share/man/man3/pcre16_maketables.3
+#usr/share/man/man3/pcre16_pattern_to_host_byte_order.3
+#usr/share/man/man3/pcre16_refcount.3
+#usr/share/man/man3/pcre16_study.3
+#usr/share/man/man3/pcre16_utf16_to_host_byte_order.3
+#usr/share/man/man3/pcre16_version.3
+#usr/share/man/man3/pcre_assign_jit_stack.3
 #usr/share/man/man3/pcre_compile.3
 #usr/share/man/man3/pcre_compile2.3
 #usr/share/man/man3/pcre_config.3
@@ -122,6 +121,7 @@ usr/lib/libpcreposix.so.0.0.0
 #usr/share/man/man3/pcre_copy_substring.3
 #usr/share/man/man3/pcre_dfa_exec.3
 #usr/share/man/man3/pcre_exec.3
+#usr/share/man/man3/pcre_free_study.3
 #usr/share/man/man3/pcre_free_substring.3
 #usr/share/man/man3/pcre_free_substring_list.3
 #usr/share/man/man3/pcre_fullinfo.3
@@ -130,16 +130,21 @@ usr/lib/libpcreposix.so.0.0.0
 #usr/share/man/man3/pcre_get_stringtable_entries.3
 #usr/share/man/man3/pcre_get_substring.3
 #usr/share/man/man3/pcre_get_substring_list.3
-#usr/share/man/man3/pcre_info.3
+#usr/share/man/man3/pcre_jit_stack_alloc.3
+#usr/share/man/man3/pcre_jit_stack_free.3
 #usr/share/man/man3/pcre_maketables.3
+#usr/share/man/man3/pcre_pattern_to_host_byte_order.3
 #usr/share/man/man3/pcre_refcount.3
 #usr/share/man/man3/pcre_study.3
+#usr/share/man/man3/pcre_utf16_to_host_byte_order.3
 #usr/share/man/man3/pcre_version.3
 #usr/share/man/man3/pcreapi.3
 #usr/share/man/man3/pcrebuild.3
 #usr/share/man/man3/pcrecallout.3
 #usr/share/man/man3/pcrecompat.3
 #usr/share/man/man3/pcrecpp.3
+#usr/share/man/man3/pcrejit.3
+#usr/share/man/man3/pcrelimits.3
 #usr/share/man/man3/pcrematching.3
 #usr/share/man/man3/pcrepartial.3
 #usr/share/man/man3/pcrepattern.3
@@ -149,3 +154,4 @@ usr/lib/libpcreposix.so.0.0.0
 #usr/share/man/man3/pcresample.3
 #usr/share/man/man3/pcrestack.3
 #usr/share/man/man3/pcresyntax.3
+#usr/share/man/man3/pcreunicode.3
diff --git a/config/rootfiles/common/pcre-compat b/config/rootfiles/common/pcre-compat
new file mode 100644 (file)
index 0000000..ff1b776
--- /dev/null
@@ -0,0 +1,2 @@
+lib/libpcre.so.0
+lib/libpcre.so.0.0.1
diff --git a/config/rootfiles/common/pixman b/config/rootfiles/common/pixman
new file mode 100644 (file)
index 0000000..ea44cd8
--- /dev/null
@@ -0,0 +1,9 @@
+#usr/include/pixman-1
+#usr/include/pixman-1/pixman-version.h
+#usr/include/pixman-1/pixman.h
+#usr/lib/libpixman-1.a
+#usr/lib/libpixman-1.la
+usr/lib/libpixman-1.so
+usr/lib/libpixman-1.so.0
+usr/lib/libpixman-1.so.0.26.0
+#usr/lib/pkgconfig/pixman-1.pc
index 267e8be40404e1784dd6789d5cdfc9a1af683a2c..d5e5ad3e16c148e0319e12eb90fc7a9ba11f551d 100644 (file)
@@ -15,7 +15,7 @@ usr/bin/top
 usr/bin/uptime
 usr/bin/vmstat
 usr/bin/w
-#usr/bin/watch
+usr/bin/watch
 #usr/share/man/man1/free.1
 #usr/share/man/man1/kill.1
 #usr/share/man/man1/pgrep.1
index edf003534d14a158abb915f5eb651568272667af..7bef2c18faf091d69ad3991e0e204af885f32aff 100644 (file)
@@ -1,7 +1,3 @@
-lib/libhistory.so.5
-lib/libhistory.so.5.1
-lib/libreadline.so.5
-lib/libreadline.so.5.1
 #usr/include/readline
 #usr/include/readline/chardefs.h
 #usr/include/readline/history.h
@@ -11,12 +7,14 @@ lib/libreadline.so.5.1
 #usr/include/readline/rlstdc.h
 #usr/include/readline/rltypedefs.h
 #usr/include/readline/tilde.h
-#usr/info/history.info
-#usr/info/readline.info
-#usr/info/rluserman.info
-#usr/lib/libhistory.a
-usr/lib/libhistory.so
-#usr/lib/libreadline.a
-usr/lib/libreadline.so
-#usr/man/man3/history.3
-#usr/man/man3/readline.3
+#usr/lib/libhistory.so
+usr/lib/libhistory.so.6
+usr/lib/libhistory.so.6.2
+#usr/lib/libreadline.so
+usr/lib/libreadline.so.6
+usr/lib/libreadline.so.6.2
+#usr/share/info/history.info
+#usr/share/info/readline.info
+#usr/share/info/rluserman.info
+#usr/share/man/man3/history.3
+#usr/share/man/man3/readline.3
diff --git a/config/rootfiles/common/readline-compat b/config/rootfiles/common/readline-compat
new file mode 100644 (file)
index 0000000..1ff7325
--- /dev/null
@@ -0,0 +1,4 @@
+lib/libhistory.so.5
+lib/libhistory.so.5.2
+lib/libreadline.so.5
+lib/libreadline.so.5.2
diff --git a/config/rootfiles/common/reiser4progs b/config/rootfiles/common/reiser4progs
deleted file mode 100644 (file)
index e01e4f8..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-#sbin/debugfs.reiser4
-sbin/fsck.reiser4
-#sbin/make_reiser4
-sbin/measurefs.reiser4
-sbin/mkfs.reiser4
-#usr/include/reiser4
-#usr/include/reiser4/alloc.h
-#usr/include/reiser4/backup.h
-#usr/include/reiser4/bitmap.h
-#usr/include/reiser4/factory.h
-#usr/include/reiser4/fake.h
-#usr/include/reiser4/filesystem.h
-#usr/include/reiser4/flow.h
-#usr/include/reiser4/format.h
-#usr/include/reiser4/item.h
-#usr/include/reiser4/journal.h
-#usr/include/reiser4/key.h
-#usr/include/reiser4/libreiser4.h
-#usr/include/reiser4/master.h
-#usr/include/reiser4/node.h
-#usr/include/reiser4/object.h
-#usr/include/reiser4/oid.h
-#usr/include/reiser4/place.h
-#usr/include/reiser4/plugin.h
-#usr/include/reiser4/print.h
-#usr/include/reiser4/profile.h
-#usr/include/reiser4/pset.h
-#usr/include/reiser4/semantic.h
-#usr/include/reiser4/status.h
-#usr/include/reiser4/tree.h
-#usr/include/reiser4/types.h
-#usr/include/repair
-#usr/include/repair/add_missing.h
-#usr/include/repair/alloc.h
-#usr/include/repair/backup.h
-#usr/include/repair/cleanup.h
-#usr/include/repair/disk_scan.h
-#usr/include/repair/filesystem.h
-#usr/include/repair/filter.h
-#usr/include/repair/format.h
-#usr/include/repair/item.h
-#usr/include/repair/journal.h
-#usr/include/repair/librepair.h
-#usr/include/repair/lost_found.h
-#usr/include/repair/master.h
-#usr/include/repair/node.h
-#usr/include/repair/object.h
-#usr/include/repair/oid.h
-#usr/include/repair/place.h
-#usr/include/repair/plugin.h
-#usr/include/repair/pset.h
-#usr/include/repair/repair.h
-#usr/include/repair/semantic.h
-#usr/include/repair/status.h
-#usr/include/repair/tree.h
-#usr/include/repair/twig_scan.h
-usr/lib/libreiser4-1.0.so.6
-usr/lib/libreiser4-1.0.so.6.0.0
-usr/lib/libreiser4-minimal-1.0.so.6
-usr/lib/libreiser4-minimal-1.0.so.6.0.0
-#usr/lib/libreiser4-minimal.a
-#usr/lib/libreiser4-minimal.la
-usr/lib/libreiser4-minimal.so
-#usr/lib/libreiser4.a
-#usr/lib/libreiser4.la
-usr/lib/libreiser4.so
-usr/lib/librepair-1.0.so.6
-usr/lib/librepair-1.0.so.6.0.0
-#usr/lib/librepair.a
-#usr/lib/librepair.la
-usr/lib/librepair.so
-#usr/man/man8
-#usr/man/man8/debugfs.reiser4.8
-#usr/man/man8/fsck.reiser4.8
-#usr/man/man8/measurefs.reiser4.8
-#usr/man/man8/mkfs.reiser4.8
-#usr/share/aclocal/libreiser4.m4
index faa0dca8440eeffdc019c0abd7018676ddd4c0d2..c957d523bdfa7a25644a0217f536db4924bb8da0 100644 (file)
@@ -1,17 +1,20 @@
 #srv/web/ipfire/html/graphs
-#usr/bin/rrdcgi
+usr/bin/rrdcached
 usr/bin/rrdtool
 usr/bin/rrdupdate
+#usr/include/rrd.h
+#usr/include/rrd_client.h
+#usr/include/rrd_format.h
 #usr/lib/librrd.a
 #usr/lib/librrd.la
-usr/lib/librrd.so
-usr/lib/librrd.so.2
-usr/lib/librrd.so.2.0.15
+#usr/lib/librrd.so
+usr/lib/librrd.so.4
+usr/lib/librrd.so.4.2.0
 #usr/lib/librrd_th.a
 #usr/lib/librrd_th.la
-usr/lib/librrd_th.so
-usr/lib/librrd_th.so.2
-usr/lib/librrd_th.so.2.0.13
+#usr/lib/librrd_th.so
+usr/lib/librrd_th.so.4
+usr/lib/librrd_th.so.4.2.0
 usr/lib/perl5/site_perl/5.12.3/RRDp.pm
 usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/RRDs.pm
 #usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/RRDp
@@ -20,17 +23,111 @@ usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/RRDs.pm
 #usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/RRDs/.packlist
 #usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/RRDs/RRDs.bs
 usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/RRDs/RRDs.so
-#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/ntmake.pl
+#usr/lib/pkgconfig/librrd.pc
+#usr/share/doc/rrdtool-1.4.7
+#usr/share/doc/rrdtool-1.4.7/html
+#usr/share/doc/rrdtool-1.4.7/html/RRDp.html
+#usr/share/doc/rrdtool-1.4.7/html/RRDs.html
+#usr/share/doc/rrdtool-1.4.7/html/bin_dec_hex.html
+#usr/share/doc/rrdtool-1.4.7/html/cdeftutorial.html
+#usr/share/doc/rrdtool-1.4.7/html/index.html
+#usr/share/doc/rrdtool-1.4.7/html/librrd.html
+#usr/share/doc/rrdtool-1.4.7/html/rpntutorial.html
+#usr/share/doc/rrdtool-1.4.7/html/rrd-beginners.html
+#usr/share/doc/rrdtool-1.4.7/html/rrdbuild.html
+#usr/share/doc/rrdtool-1.4.7/html/rrdcached.html
+#usr/share/doc/rrdtool-1.4.7/html/rrdcgi.html
+#usr/share/doc/rrdtool-1.4.7/html/rrdcreate.html
+#usr/share/doc/rrdtool-1.4.7/html/rrddump.html
+#usr/share/doc/rrdtool-1.4.7/html/rrdfetch.html
+#usr/share/doc/rrdtool-1.4.7/html/rrdfirst.html
+#usr/share/doc/rrdtool-1.4.7/html/rrdflushcached.html
+#usr/share/doc/rrdtool-1.4.7/html/rrdgraph.html
+#usr/share/doc/rrdtool-1.4.7/html/rrdgraph_data.html
+#usr/share/doc/rrdtool-1.4.7/html/rrdgraph_examples.html
+#usr/share/doc/rrdtool-1.4.7/html/rrdgraph_graph.html
+#usr/share/doc/rrdtool-1.4.7/html/rrdgraph_rpn.html
+#usr/share/doc/rrdtool-1.4.7/html/rrdinfo.html
+#usr/share/doc/rrdtool-1.4.7/html/rrdlast.html
+#usr/share/doc/rrdtool-1.4.7/html/rrdlastupdate.html
+#usr/share/doc/rrdtool-1.4.7/html/rrdresize.html
+#usr/share/doc/rrdtool-1.4.7/html/rrdrestore.html
+#usr/share/doc/rrdtool-1.4.7/html/rrdthreads.html
+#usr/share/doc/rrdtool-1.4.7/html/rrdtool.html
+#usr/share/doc/rrdtool-1.4.7/html/rrdtune.html
+#usr/share/doc/rrdtool-1.4.7/html/rrdtutorial.html
+#usr/share/doc/rrdtool-1.4.7/html/rrdupdate.html
+#usr/share/doc/rrdtool-1.4.7/html/rrdxport.html
+#usr/share/doc/rrdtool-1.4.7/txt
+#usr/share/doc/rrdtool-1.4.7/txt/bin_dec_hex.pod
+#usr/share/doc/rrdtool-1.4.7/txt/bin_dec_hex.txt
+#usr/share/doc/rrdtool-1.4.7/txt/cdeftutorial.pod
+#usr/share/doc/rrdtool-1.4.7/txt/cdeftutorial.txt
+#usr/share/doc/rrdtool-1.4.7/txt/librrd.txt
+#usr/share/doc/rrdtool-1.4.7/txt/rpntutorial.pod
+#usr/share/doc/rrdtool-1.4.7/txt/rpntutorial.txt
+#usr/share/doc/rrdtool-1.4.7/txt/rrd-beginners.pod
+#usr/share/doc/rrdtool-1.4.7/txt/rrd-beginners.txt
+#usr/share/doc/rrdtool-1.4.7/txt/rrdbuild.pod
+#usr/share/doc/rrdtool-1.4.7/txt/rrdbuild.txt
+#usr/share/doc/rrdtool-1.4.7/txt/rrdcached.pod
+#usr/share/doc/rrdtool-1.4.7/txt/rrdcached.txt
+#usr/share/doc/rrdtool-1.4.7/txt/rrdcgi.pod
+#usr/share/doc/rrdtool-1.4.7/txt/rrdcgi.txt
+#usr/share/doc/rrdtool-1.4.7/txt/rrdcreate.pod
+#usr/share/doc/rrdtool-1.4.7/txt/rrdcreate.txt
+#usr/share/doc/rrdtool-1.4.7/txt/rrddump.pod
+#usr/share/doc/rrdtool-1.4.7/txt/rrddump.txt
+#usr/share/doc/rrdtool-1.4.7/txt/rrdfetch.pod
+#usr/share/doc/rrdtool-1.4.7/txt/rrdfetch.txt
+#usr/share/doc/rrdtool-1.4.7/txt/rrdfirst.pod
+#usr/share/doc/rrdtool-1.4.7/txt/rrdfirst.txt
+#usr/share/doc/rrdtool-1.4.7/txt/rrdflushcached.pod
+#usr/share/doc/rrdtool-1.4.7/txt/rrdflushcached.txt
+#usr/share/doc/rrdtool-1.4.7/txt/rrdgraph.pod
+#usr/share/doc/rrdtool-1.4.7/txt/rrdgraph.txt
+#usr/share/doc/rrdtool-1.4.7/txt/rrdgraph_data.pod
+#usr/share/doc/rrdtool-1.4.7/txt/rrdgraph_data.txt
+#usr/share/doc/rrdtool-1.4.7/txt/rrdgraph_examples.pod
+#usr/share/doc/rrdtool-1.4.7/txt/rrdgraph_examples.txt
+#usr/share/doc/rrdtool-1.4.7/txt/rrdgraph_graph.pod
+#usr/share/doc/rrdtool-1.4.7/txt/rrdgraph_graph.txt
+#usr/share/doc/rrdtool-1.4.7/txt/rrdgraph_rpn.pod
+#usr/share/doc/rrdtool-1.4.7/txt/rrdgraph_rpn.txt
+#usr/share/doc/rrdtool-1.4.7/txt/rrdinfo.pod
+#usr/share/doc/rrdtool-1.4.7/txt/rrdinfo.txt
+#usr/share/doc/rrdtool-1.4.7/txt/rrdlast.pod
+#usr/share/doc/rrdtool-1.4.7/txt/rrdlast.txt
+#usr/share/doc/rrdtool-1.4.7/txt/rrdlastupdate.pod
+#usr/share/doc/rrdtool-1.4.7/txt/rrdlastupdate.txt
+#usr/share/doc/rrdtool-1.4.7/txt/rrdresize.pod
+#usr/share/doc/rrdtool-1.4.7/txt/rrdresize.txt
+#usr/share/doc/rrdtool-1.4.7/txt/rrdrestore.pod
+#usr/share/doc/rrdtool-1.4.7/txt/rrdrestore.txt
+#usr/share/doc/rrdtool-1.4.7/txt/rrdthreads.pod
+#usr/share/doc/rrdtool-1.4.7/txt/rrdthreads.txt
+#usr/share/doc/rrdtool-1.4.7/txt/rrdtool.pod
+#usr/share/doc/rrdtool-1.4.7/txt/rrdtool.txt
+#usr/share/doc/rrdtool-1.4.7/txt/rrdtune.pod
+#usr/share/doc/rrdtool-1.4.7/txt/rrdtune.txt
+#usr/share/doc/rrdtool-1.4.7/txt/rrdtutorial.pod
+#usr/share/doc/rrdtool-1.4.7/txt/rrdtutorial.txt
+#usr/share/doc/rrdtool-1.4.7/txt/rrdupdate.pod
+#usr/share/doc/rrdtool-1.4.7/txt/rrdupdate.txt
+#usr/share/doc/rrdtool-1.4.7/txt/rrdxport.pod
+#usr/share/doc/rrdtool-1.4.7/txt/rrdxport.txt
 #usr/share/man/man1/bin_dec_hex.1
 #usr/share/man/man1/cdeftutorial.1
 #usr/share/man/man1/rpntutorial.1
 #usr/share/man/man1/rrd-beginners.1
 #usr/share/man/man1/rrdbuild.1
+#usr/share/man/man1/rrdcached.1
 #usr/share/man/man1/rrdcgi.1
 #usr/share/man/man1/rrdcreate.1
 #usr/share/man/man1/rrddump.1
 #usr/share/man/man1/rrdfetch.1
 #usr/share/man/man1/rrdfirst.1
+#usr/share/man/man1/rrdflushcached.1
 #usr/share/man/man1/rrdgraph.1
 #usr/share/man/man1/rrdgraph_data.1
 #usr/share/man/man1/rrdgraph_examples.1
@@ -49,105 +146,18 @@ usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/RRDs/RRDs.so
 #usr/share/man/man1/rrdxport.1
 #usr/share/man/man3/RRDp.3
 #usr/share/man/man3/RRDs.3
-#usr/share/rrdtool-1.2.30
-#usr/share/rrdtool-1.2.30/include
-#usr/share/rrdtool-1.2.30/include/rrd.h
-#usr/share/rrdtool-1.2.30/share
-#usr/share/rrdtool-1.2.30/share/doc
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/RRDp.html
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/RRDs.html
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/bin_dec_hex.html
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/cdeftutorial.html
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/index.html
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rpntutorial.html
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrd-beginners.html
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdbuild.html
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdcgi.html
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdcreate.html
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrddump.html
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdfetch.html
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdfirst.html
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdgraph.html
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdgraph_data.html
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdgraph_examples.html
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdgraph_graph.html
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdgraph_rpn.html
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdinfo.html
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdlast.html
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdlastupdate.html
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdresize.html
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdrestore.html
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdthreads.html
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdtool.html
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdtune.html
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdtutorial.html
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdupdate.html
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdxport.html
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/bin_dec_hex.pod
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/bin_dec_hex.txt
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/cdeftutorial.pod
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/cdeftutorial.txt
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rpntutorial.pod
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rpntutorial.txt
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrd-beginners.pod
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrd-beginners.txt
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdbuild.pod
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdbuild.txt
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdcgi.pod
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdcgi.txt
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdcreate.pod
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdcreate.txt
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrddump.pod
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrddump.txt
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdfetch.pod
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdfetch.txt
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdfirst.pod
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdfirst.txt
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdgraph.pod
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdgraph.txt
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdgraph_data.pod
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdgraph_data.txt
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdgraph_examples.pod
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdgraph_examples.txt
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdgraph_graph.pod
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdgraph_graph.txt
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdgraph_rpn.pod
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdgraph_rpn.txt
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdinfo.pod
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdinfo.txt
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdlast.pod
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdlast.txt
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdlastupdate.pod
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdlastupdate.txt
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdresize.pod
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdresize.txt
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdrestore.pod
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdrestore.txt
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdthreads.pod
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdthreads.txt
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdtool.pod
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdtool.txt
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdtune.pod
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdtune.txt
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdtutorial.pod
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdtutorial.txt
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdupdate.pod
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdupdate.txt
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdxport.pod
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdxport.txt
-#usr/share/rrdtool-1.2.30/share/rrdtool
-#usr/share/rrdtool-1.2.30/share/rrdtool/examples
-#usr/share/rrdtool-1.2.30/share/rrdtool/examples/4charts.pl
-#usr/share/rrdtool-1.2.30/share/rrdtool/examples/bigtops.pl
-#usr/share/rrdtool-1.2.30/share/rrdtool/examples/cgi-demo.cgi
-#usr/share/rrdtool-1.2.30/share/rrdtool/examples/minmax.pl
-#usr/share/rrdtool-1.2.30/share/rrdtool/examples/perftest.pl
-#usr/share/rrdtool-1.2.30/share/rrdtool/examples/piped-demo.pl
-#usr/share/rrdtool-1.2.30/share/rrdtool/examples/shared-demo.pl
-#usr/share/rrdtool-1.2.30/share/rrdtool/examples/stripes.pl
-#usr/share/rrdtool-1.2.30/share/rrdtool/fonts
-usr/share/rrdtool-1.2.30/share/rrdtool/fonts/DejaVuSansMono-Roman.ttf
+#usr/share/man/man3/librrd.3
+#usr/share/rrdtool
+#usr/share/rrdtool/examples
+#usr/share/rrdtool/examples/4charts.pl
+#usr/share/rrdtool/examples/bigtops.pl
+#usr/share/rrdtool/examples/cgi-demo.cgi
+#usr/share/rrdtool/examples/minmax.pl
+#usr/share/rrdtool/examples/perftest.pl
+#usr/share/rrdtool/examples/piped-demo.pl
+#usr/share/rrdtool/examples/rrdcached
+#usr/share/rrdtool/examples/rrdcached/RRDCached.pm
+#usr/share/rrdtool/examples/rrdcached/rrdcached-size.pl
+#usr/share/rrdtool/examples/shared-demo.pl
+#usr/share/rrdtool/examples/stripes.pl
 var/log/rrd
index cf5caa5061f28d2a3dd1c26301101a71bc14d281..1bfb6a9abf10cc08645c2ad74d7315f85299eb55 100644 (file)
@@ -1,2 +1,2 @@
 usr/bin/sdparm
-#usr/man/man8/sdparm.8
+#usr/share/man/man8/sdparm.8
index 5cd180bef74f7e6292e74bc4b9ed863b2cc94570..8db08fa39d3cc5053853ec50b74f3b54396db369 100644 (file)
@@ -1,5 +1,3 @@
 bin/sed
-#usr/info/sed.info
-#usr/info/sed.info-1
-#usr/info/sed.info-2
-#usr/man/man1/sed.1
+#usr/share/info/sed.info
+#usr/share/man/man1/sed.1
index 31a273f862e7a507f24ab4563dbfd6791573a003..ec9054efea51408cdfbff231d7aec1b62ffe6610 100644 (file)
@@ -23,7 +23,7 @@ lib/libshadow.so.0.0.0
 #usr/bin/sg
 #usr/lib/libshadow.a
 #usr/lib/libshadow.la
-usr/lib/libshadow.so
+#usr/lib/libshadow.so
 #usr/man/man1/chage.1
 #usr/man/man1/chfn.1
 #usr/man/man1/chsh.1
@@ -45,6 +45,7 @@ usr/lib/libshadow.so
 #usr/man/man5/porttime.5
 #usr/man/man5/shadow.5
 #usr/man/man5/suauth.5
+#usr/man/man8
 #usr/man/man8/chpasswd.8
 #usr/man/man8/faillog.8
 #usr/man/man8/groupadd.8
index d06ea9eaff54364ff8aa20d35565b624d5596bdd..e37be6dcebe32175439601e06d722ce956653e2d 100644 (file)
@@ -2,9 +2,6 @@
 #usr/etc/rc.d/init.d
 #usr/etc/rc.d/init.d/smartd
 #usr/etc/smartd.conf
-#usr/man/man5/smartd.conf.5
-#usr/man/man8/smartctl.8
-#usr/man/man8/smartd.8
 usr/sbin/smartctl
 #usr/sbin/smartd
 usr/sbin/update-smart-drivedb
@@ -24,5 +21,8 @@ usr/sbin/update-smart-drivedb
 #usr/share/doc/smartmontools/examplescripts/Example4
 #usr/share/doc/smartmontools/examplescripts/README
 #usr/share/doc/smartmontools/smartd.conf
+#usr/share/man/man5/smartd.conf.5
+#usr/share/man/man8/smartctl.8
+#usr/share/man/man8/smartd.8
 #usr/share/smartmontools
 usr/share/smartmontools/drivedb.h
index 6871cc9c65fa8aa69ba7f3727da5dfa066096262..e10c649b19fb242b32209d7ff26f68a14adf049d 100644 (file)
@@ -1,6 +1,6 @@
 bin/bash
 bin/cat
-bin/grep
+bin/echo
 bin/pwd
 bin/stty
 #boot
@@ -13,11 +13,10 @@ etc/hddtemp.db
 etc/host.conf
 etc/inittab
 etc/inputrc
-#etc/ipsec.user.conf
-#etc/ipsec.user.secrets
+etc/ipsec.user.conf
+etc/ipsec.user.secrets
 etc/issue
 etc/ld.so.conf
-etc/localtime
 etc/logrotate.conf
 etc/mime.types
 etc/modprobe.d
@@ -30,11 +29,13 @@ etc/nsswitch.conf
 etc/passwd
 etc/profile
 #etc/profile.d
-etc/profile.d/bashrc.sh
-etc/profile.d/dircolors.sh
+etc/profile.d/colorls.sh
 etc/profile.d/extrapaths.sh
+etc/profile.d/glib2-locale.sh
 etc/profile.d/i18n.sh
+etc/profile.d/lang.sh
 etc/profile.d/readline.sh
+etc/profile.d/term256.sh
 etc/profile.d/umask.sh
 etc/resolv.conf
 etc/securetty
@@ -50,14 +51,23 @@ media/usbkey
 mnt
 #opt
 #root
+root/.bash_logout
+root/.bash_profile
+root/.bashrc
 root/ipfire
 #sbin
 #srv
+#usr/bin
 #usr/bin/perl
 #usr/include
 #usr/lib
-usr/lib/libgcc_s.so
+#usr/lib/libgcc_s.so
 usr/lib/libgcc_s.so.1
+#usr/lib/libstdc++.la
+#usr/lib/libstdc++.so
+usr/lib/libstdc++.so.6
+#usr/local
+#usr/local/bin
 #usr/local/bin/archive.files
 usr/local/bin/backupiso
 usr/local/bin/connscheduler
@@ -76,13 +86,15 @@ usr/local/bin/settime
 usr/local/bin/timecheck
 #usr/local/bin/uname
 usr/local/bin/update-lang-cache
-usr/local/bin/vpn-watch
 #usr/local/include
 #usr/local/lib
 #usr/local/sbin
+#usr/local/share
 #usr/local/share/doc
 #usr/local/share/info
 #usr/local/share/locale
+#usr/local/share/man
+#usr/local/share/man/man1
 #usr/local/share/man/man2
 #usr/local/share/man/man3
 #usr/local/share/man/man4
@@ -135,6 +147,6 @@ var/run
 var/run/utmp
 #var/spool
 var/tmp
-dev/null
 dev/console
+dev/null
 tmp
index 4c7d558b1a0b3f6882c3ab38c9c70a416ec7f13f..9dbf4fb66516f9a6c4d404a1bfc6890099bf3db4 100644 (file)
@@ -21,125 +21,60 @@ usr/lib/ipsec/libcharon.so.0.0.0
 usr/lib/ipsec/libhydra.so
 usr/lib/ipsec/libhydra.so.0
 usr/lib/ipsec/libhydra.so.0.0.0
+#usr/lib/ipsec/libradius.a
+#usr/lib/ipsec/libradius.la
+usr/lib/ipsec/libradius.so
+usr/lib/ipsec/libradius.so.0
+usr/lib/ipsec/libradius.so.0.0.0
 #usr/lib/ipsec/libstrongswan.a
 #usr/lib/ipsec/libstrongswan.la
 usr/lib/ipsec/libstrongswan.so
 usr/lib/ipsec/libstrongswan.so.0
 usr/lib/ipsec/libstrongswan.so.0.0.0
 #usr/lib/ipsec/plugins
-#usr/lib/ipsec/plugins/libstrongswan-aes.a
-#usr/lib/ipsec/plugins/libstrongswan-aes.la
 usr/lib/ipsec/plugins/libstrongswan-aes.so
-#usr/lib/ipsec/plugins/libstrongswan-attr.a
-#usr/lib/ipsec/plugins/libstrongswan-attr.la
 usr/lib/ipsec/plugins/libstrongswan-attr.so
-#usr/lib/ipsec/plugins/libstrongswan-cmac.a
-#usr/lib/ipsec/plugins/libstrongswan-cmac.la
 usr/lib/ipsec/plugins/libstrongswan-cmac.so
-#usr/lib/ipsec/plugins/libstrongswan-constraints.a
-#usr/lib/ipsec/plugins/libstrongswan-constraints.la
 usr/lib/ipsec/plugins/libstrongswan-constraints.so
-#usr/lib/ipsec/plugins/libstrongswan-curl.a
-#usr/lib/ipsec/plugins/libstrongswan-curl.la
 usr/lib/ipsec/plugins/libstrongswan-curl.so
-#usr/lib/ipsec/plugins/libstrongswan-des.a
-#usr/lib/ipsec/plugins/libstrongswan-des.la
 usr/lib/ipsec/plugins/libstrongswan-des.so
-#usr/lib/ipsec/plugins/libstrongswan-dnskey.a
-#usr/lib/ipsec/plugins/libstrongswan-dnskey.la
 usr/lib/ipsec/plugins/libstrongswan-dnskey.so
-#usr/lib/ipsec/plugins/libstrongswan-fips-prf.a
-#usr/lib/ipsec/plugins/libstrongswan-fips-prf.la
+usr/lib/ipsec/plugins/libstrongswan-eap-radius.so
 usr/lib/ipsec/plugins/libstrongswan-fips-prf.so
-#usr/lib/ipsec/plugins/libstrongswan-gmp.a
-#usr/lib/ipsec/plugins/libstrongswan-gmp.la
 usr/lib/ipsec/plugins/libstrongswan-gmp.so
-#usr/lib/ipsec/plugins/libstrongswan-hmac.a
-#usr/lib/ipsec/plugins/libstrongswan-hmac.la
 usr/lib/ipsec/plugins/libstrongswan-hmac.so
-#usr/lib/ipsec/plugins/libstrongswan-kernel-netlink.a
-#usr/lib/ipsec/plugins/libstrongswan-kernel-netlink.la
 usr/lib/ipsec/plugins/libstrongswan-kernel-netlink.so
-#usr/lib/ipsec/plugins/libstrongswan-md5.a
-#usr/lib/ipsec/plugins/libstrongswan-md5.la
 usr/lib/ipsec/plugins/libstrongswan-md5.so
-#usr/lib/ipsec/plugins/libstrongswan-pem.a
-#usr/lib/ipsec/plugins/libstrongswan-pem.la
+usr/lib/ipsec/plugins/libstrongswan-nonce.so
+usr/lib/ipsec/plugins/libstrongswan-openssl.so
+#usr/lib/ipsec/plugins/libstrongswan-padlock.so
 usr/lib/ipsec/plugins/libstrongswan-pem.so
-#usr/lib/ipsec/plugins/libstrongswan-pgp.a
-#usr/lib/ipsec/plugins/libstrongswan-pgp.la
 usr/lib/ipsec/plugins/libstrongswan-pgp.so
-#usr/lib/ipsec/plugins/libstrongswan-pkcs1.a
-#usr/lib/ipsec/plugins/libstrongswan-pkcs1.la
 usr/lib/ipsec/plugins/libstrongswan-pkcs1.so
-#usr/lib/ipsec/plugins/libstrongswan-pkcs8.a
-#usr/lib/ipsec/plugins/libstrongswan-pkcs8.la
 usr/lib/ipsec/plugins/libstrongswan-pkcs8.so
-#usr/lib/ipsec/plugins/libstrongswan-pubkey.a
-#usr/lib/ipsec/plugins/libstrongswan-pubkey.la
 usr/lib/ipsec/plugins/libstrongswan-pubkey.so
-#usr/lib/ipsec/plugins/libstrongswan-random.a
-#usr/lib/ipsec/plugins/libstrongswan-random.la
 usr/lib/ipsec/plugins/libstrongswan-random.so
-#usr/lib/ipsec/plugins/libstrongswan-resolve.a
-#usr/lib/ipsec/plugins/libstrongswan-resolve.la
 usr/lib/ipsec/plugins/libstrongswan-resolve.so
-#usr/lib/ipsec/plugins/libstrongswan-revocation.a
-#usr/lib/ipsec/plugins/libstrongswan-revocation.la
 usr/lib/ipsec/plugins/libstrongswan-revocation.so
-#usr/lib/ipsec/plugins/libstrongswan-sha1.a
-#usr/lib/ipsec/plugins/libstrongswan-sha1.la
 usr/lib/ipsec/plugins/libstrongswan-sha1.so
-#usr/lib/ipsec/plugins/libstrongswan-sha2.a
-#usr/lib/ipsec/plugins/libstrongswan-sha2.la
 usr/lib/ipsec/plugins/libstrongswan-sha2.so
-#usr/lib/ipsec/plugins/libstrongswan-socket-raw.a
-#usr/lib/ipsec/plugins/libstrongswan-socket-raw.la
-usr/lib/ipsec/plugins/libstrongswan-socket-raw.so
-#usr/lib/ipsec/plugins/libstrongswan-stroke.a
-#usr/lib/ipsec/plugins/libstrongswan-stroke.la
+usr/lib/ipsec/plugins/libstrongswan-socket-default.so
 usr/lib/ipsec/plugins/libstrongswan-stroke.so
-#usr/lib/ipsec/plugins/libstrongswan-updown.a
-#usr/lib/ipsec/plugins/libstrongswan-updown.la
 usr/lib/ipsec/plugins/libstrongswan-updown.so
-#usr/lib/ipsec/plugins/libstrongswan-x509.a
-#usr/lib/ipsec/plugins/libstrongswan-x509.la
 usr/lib/ipsec/plugins/libstrongswan-x509.so
-#usr/lib/ipsec/plugins/libstrongswan-xauth.a
-#usr/lib/ipsec/plugins/libstrongswan-xauth.la
-usr/lib/ipsec/plugins/libstrongswan-xauth.so
-#usr/lib/ipsec/plugins/libstrongswan-xcbc.a
-#usr/lib/ipsec/plugins/libstrongswan-xcbc.la
+usr/lib/ipsec/plugins/libstrongswan-xauth-generic.so
 usr/lib/ipsec/plugins/libstrongswan-xcbc.so
 #usr/libexec/ipsec
 usr/libexec/ipsec/_copyright
-usr/libexec/ipsec/_pluto_adns
 usr/libexec/ipsec/_updown
 usr/libexec/ipsec/_updown_espmark
 usr/libexec/ipsec/charon
 usr/libexec/ipsec/openac
 usr/libexec/ipsec/pki
-usr/libexec/ipsec/pluto
 usr/libexec/ipsec/scepclient
 usr/libexec/ipsec/starter
 usr/libexec/ipsec/stroke
-usr/libexec/ipsec/whack
 usr/sbin/ipsec
-#usr/share/man/man3/anyaddr.3
-#usr/share/man/man3/atoaddr.3
-#usr/share/man/man3/atoasr.3
-#usr/share/man/man3/atoul.3
-#usr/share/man/man3/goodmask.3
-#usr/share/man/man3/initaddr.3
-#usr/share/man/man3/initsubnet.3
-#usr/share/man/man3/portof.3
-#usr/share/man/man3/rangetosubnet.3
-#usr/share/man/man3/sameaddr.3
-#usr/share/man/man3/subnetof.3
-#usr/share/man/man3/ttoaddr.3
-#usr/share/man/man3/ttodata.3
-#usr/share/man/man3/ttosa.3
-#usr/share/man/man3/ttoul.3
 #usr/share/man/man5/ipsec.conf.5
 #usr/share/man/man5/ipsec.secrets.5
 #usr/share/man/man5/strongswan.conf.5
@@ -147,7 +82,4 @@ usr/sbin/ipsec
 #usr/share/man/man8/_updown_espmark.8
 #usr/share/man/man8/ipsec.8
 #usr/share/man/man8/openac.8
-#usr/share/man/man8/pluto.8
 #usr/share/man/man8/scepclient.8
-etc/ipsec.user.conf
-etc/ipsec.user.secrets
index c749e481aa0fea1dbd7614673435a6831d879613..32eca4ed5711267704024cd68a17c57beb7d5f22 100644 (file)
@@ -1,18 +1,3 @@
-#opt/MACHINE-uClibc/bin/dlist_test
-#opt/MACHINE-uClibc/bin/get_bus_devices_list
-#opt/MACHINE-uClibc/bin/get_class_dev
-#opt/MACHINE-uClibc/bin/get_classdev_parent
-#opt/MACHINE-uClibc/bin/get_device
-#opt/MACHINE-uClibc/bin/get_driver
-#opt/MACHINE-uClibc/bin/systool
-#opt/MACHINE-uClibc/bin/testlibsysfs
-#opt/MACHINE-uClibc/bin/write_attr
-#opt/MACHINE-uClibc/lib/libsysfs.a
-#opt/MACHINE-uClibc/lib/libsysfs.la
-#opt/MACHINE-uClibc/man/man1/systool.1
-#opt/MACHINE-uClibc/usr/include/sysfs
-#opt/MACHINE-uClibc/usr/include/sysfs/dlist.h
-#opt/MACHINE-uClibc/usr/include/sysfs/libsysfs.h
 #bin/dlist_test
 #bin/get_bus_devices_list
 #bin/get_class_dev
index 8bd60efbdcbb1d2d6d45e6df2bd745af8e6131b6..ede5aa50d3935032867ee58c08f2b10abd4a4702 100644 (file)
@@ -1,6 +1,7 @@
 bin/mountpoint
 bin/pidof
 #sbin/bootlogd
+#sbin/fstab-decode
 sbin/halt
 sbin/init
 sbin/killall5
@@ -20,10 +21,12 @@ usr/bin/wall
 #usr/share/man/man1/lastb.1
 #usr/share/man/man1/mesg.1
 #usr/share/man/man1/mountpoint.1
+#usr/share/man/man1/utmpdump.1
 #usr/share/man/man1/wall.1
 #usr/share/man/man5/initscript.5
 #usr/share/man/man5/inittab.5
 #usr/share/man/man8/bootlogd.8
+#usr/share/man/man8/fstab-decode.8
 #usr/share/man/man8/halt.8
 #usr/share/man/man8/init.8
 #usr/share/man/man8/killall5.8
index e7de4b7a91f700d03ef8cf3d1f10a4996fb45363..00e9aedf8ba17b7ec89153a22905c6b058c761f0 100644 (file)
@@ -2,23 +2,26 @@
 #usr/bin/infokey
 #usr/bin/install-info
 #usr/bin/makeinfo
+#usr/bin/pdftexi2dvi
 #usr/bin/texi2dvi
 #usr/bin/texi2pdf
 #usr/bin/texindex
-#usr/info/info-stnd.info
-#usr/info/info.info
-#usr/info/texinfo
-#usr/info/texinfo-1
-#usr/info/texinfo-2
-#usr/info/texinfo-3
-#usr/man/man1/info.1
-#usr/man/man1/infokey.1
-#usr/man/man1/install-info.1
-#usr/man/man1/makeinfo.1
-#usr/man/man1/texi2dvi.1
-#usr/man/man1/texindex.1
-#usr/man/man5/info.5
-#usr/man/man5/texinfo.5
+#usr/share/info/info-stnd.info
+#usr/share/info/info.info
+#usr/share/info/texinfo
+#usr/share/info/texinfo-1
+#usr/share/info/texinfo-2
+#usr/share/info/texinfo-3
+#usr/share/man/man1/info.1
+#usr/share/man/man1/infokey.1
+#usr/share/man/man1/install-info.1
+#usr/share/man/man1/makeinfo.1
+#usr/share/man/man1/pdftexi2dvi.1
+#usr/share/man/man1/texi2dvi.1
+#usr/share/man/man1/texi2pdf.1
+#usr/share/man/man1/texindex.1
+#usr/share/man/man5/info.5
+#usr/share/man/man5/texinfo.5
 #usr/share/texinfo
 #usr/share/texinfo/texinfo.cat
 #usr/share/texinfo/texinfo.dtd
index 9df54d94d7ce8189383b3b2ebeca5dc8b04da247..7362a0f8a5c7ce023f33cb1617c3bbc1225f323c 100644 (file)
@@ -100,6 +100,7 @@ usr/share/zoneinfo
 #usr/share/zoneinfo/America/Coral_Harbour
 #usr/share/zoneinfo/America/Cordoba
 #usr/share/zoneinfo/America/Costa_Rica
+#usr/share/zoneinfo/America/Creston
 #usr/share/zoneinfo/America/Cuiaba
 #usr/share/zoneinfo/America/Curacao
 #usr/share/zoneinfo/America/Danmarkshavn
@@ -594,12 +595,14 @@ usr/share/zoneinfo
 #usr/share/zoneinfo/US/Michigan
 #usr/share/zoneinfo/US/Mountain
 #usr/share/zoneinfo/US/Pacific
+#usr/share/zoneinfo/US/Pacific-New
 #usr/share/zoneinfo/US/Samoa
 #usr/share/zoneinfo/UTC
 #usr/share/zoneinfo/Universal
 #usr/share/zoneinfo/W-SU
 #usr/share/zoneinfo/WET
 #usr/share/zoneinfo/Zulu
+#usr/share/zoneinfo/iso3166.tab
 #usr/share/zoneinfo/posix
 #usr/share/zoneinfo/posix/Africa
 #usr/share/zoneinfo/posix/Africa/Abidjan
@@ -702,6 +705,7 @@ usr/share/zoneinfo
 #usr/share/zoneinfo/posix/America/Coral_Harbour
 #usr/share/zoneinfo/posix/America/Cordoba
 #usr/share/zoneinfo/posix/America/Costa_Rica
+#usr/share/zoneinfo/posix/America/Creston
 #usr/share/zoneinfo/posix/America/Cuiaba
 #usr/share/zoneinfo/posix/America/Curacao
 #usr/share/zoneinfo/posix/America/Danmarkshavn
@@ -1196,6 +1200,7 @@ usr/share/zoneinfo
 #usr/share/zoneinfo/posix/US/Michigan
 #usr/share/zoneinfo/posix/US/Mountain
 #usr/share/zoneinfo/posix/US/Pacific
+#usr/share/zoneinfo/posix/US/Pacific-New
 #usr/share/zoneinfo/posix/US/Samoa
 #usr/share/zoneinfo/posix/UTC
 #usr/share/zoneinfo/posix/Universal
@@ -1305,6 +1310,7 @@ usr/share/zoneinfo
 #usr/share/zoneinfo/right/America/Coral_Harbour
 #usr/share/zoneinfo/right/America/Cordoba
 #usr/share/zoneinfo/right/America/Costa_Rica
+#usr/share/zoneinfo/right/America/Creston
 #usr/share/zoneinfo/right/America/Cuiaba
 #usr/share/zoneinfo/right/America/Curacao
 #usr/share/zoneinfo/right/America/Danmarkshavn
@@ -1799,9 +1805,11 @@ usr/share/zoneinfo
 #usr/share/zoneinfo/right/US/Michigan
 #usr/share/zoneinfo/right/US/Mountain
 #usr/share/zoneinfo/right/US/Pacific
+#usr/share/zoneinfo/right/US/Pacific-New
 #usr/share/zoneinfo/right/US/Samoa
 #usr/share/zoneinfo/right/UTC
 #usr/share/zoneinfo/right/Universal
 #usr/share/zoneinfo/right/W-SU
 #usr/share/zoneinfo/right/WET
 #usr/share/zoneinfo/right/Zulu
+#usr/share/zoneinfo/zone.tab
diff --git a/config/rootfiles/common/uClibc b/config/rootfiles/common/uClibc
deleted file mode 100644 (file)
index 373caa9..0000000
+++ /dev/null
@@ -1,1353 +0,0 @@
-#lib/ld-uClibc-0.9.28.so
-#lib/ld-uClibc.so.0
-#lib/libc.so
-#lib/libc.so.0
-#lib/libm.so.0
-#lib/libuClibc-0.9.28.so
-#opt/MACHINE-uClibc/include/a.out.h
-#opt/MACHINE-uClibc/include/alloca.h
-#opt/MACHINE-uClibc/include/ar.h
-#opt/MACHINE-uClibc/include/arpa
-#opt/MACHINE-uClibc/include/arpa/ftp.h
-#opt/MACHINE-uClibc/include/arpa/inet.h
-#opt/MACHINE-uClibc/include/arpa/nameser.h
-#opt/MACHINE-uClibc/include/arpa/nameser_compat.h
-#opt/MACHINE-uClibc/include/arpa/telnet.h
-#opt/MACHINE-uClibc/include/arpa/tftp.h
-#opt/MACHINE-uClibc/include/asm
-#opt/MACHINE-uClibc/include/asm-generic
-#opt/MACHINE-uClibc/include/asm-generic/errno-base.h
-#opt/MACHINE-uClibc/include/asm-generic/errno.h
-#opt/MACHINE-uClibc/include/asm/8253pit.h
-#opt/MACHINE-uClibc/include/asm/a.out.h
-#opt/MACHINE-uClibc/include/asm/agp.h
-#opt/MACHINE-uClibc/include/asm/apic.h
-#opt/MACHINE-uClibc/include/asm/apicdef.h
-#opt/MACHINE-uClibc/include/asm/arch_hooks.h
-#opt/MACHINE-uClibc/include/asm/atomic.h
-#opt/MACHINE-uClibc/include/asm/bitops.h
-#opt/MACHINE-uClibc/include/asm/boot.h
-#opt/MACHINE-uClibc/include/asm/byteorder.h
-#opt/MACHINE-uClibc/include/asm/cache.h
-#opt/MACHINE-uClibc/include/asm/cacheflush.h
-#opt/MACHINE-uClibc/include/asm/checksum.h
-#opt/MACHINE-uClibc/include/asm/cpu.h
-#opt/MACHINE-uClibc/include/asm/cpufeature.h
-#opt/MACHINE-uClibc/include/asm/debugreg.h
-#opt/MACHINE-uClibc/include/asm/desc.h
-#opt/MACHINE-uClibc/include/asm/dma.h
-#opt/MACHINE-uClibc/include/asm/e820.h
-#opt/MACHINE-uClibc/include/asm/elf.h
-#opt/MACHINE-uClibc/include/asm/errno.h
-#opt/MACHINE-uClibc/include/asm/fcntl.h
-#opt/MACHINE-uClibc/include/asm/fixmap.h
-#opt/MACHINE-uClibc/include/asm/floppy.h
-#opt/MACHINE-uClibc/include/asm/genapic.h
-#opt/MACHINE-uClibc/include/asm/hardirq.h
-#opt/MACHINE-uClibc/include/asm/hdreg.h
-#opt/MACHINE-uClibc/include/asm/hw_irq.h
-#opt/MACHINE-uClibc/include/asm/i8259.h
-#opt/MACHINE-uClibc/include/asm/init.h
-#opt/MACHINE-uClibc/include/asm/io.h
-#opt/MACHINE-uClibc/include/asm/io_apic.h
-#opt/MACHINE-uClibc/include/asm/ioctl.h
-#opt/MACHINE-uClibc/include/asm/ioctls.h
-#opt/MACHINE-uClibc/include/asm/ipc.h
-#opt/MACHINE-uClibc/include/asm/ipcbuf.h
-#opt/MACHINE-uClibc/include/asm/irq.h
-#opt/MACHINE-uClibc/include/asm/kdebug.h
-#opt/MACHINE-uClibc/include/asm/kprobes.h
-#opt/MACHINE-uClibc/include/asm/kvm.h
-#opt/MACHINE-uClibc/include/asm/kvm_emulate.h
-#opt/MACHINE-uClibc/include/asm/kvm_host.h
-#opt/MACHINE-uClibc/include/asm/kvm_para.h
-#opt/MACHINE-uClibc/include/asm/ldt.h
-#opt/MACHINE-uClibc/include/asm/linkage.h
-#opt/MACHINE-uClibc/include/asm/mach-bigsmp
-#opt/MACHINE-uClibc/include/asm/mach-bigsmp/mach_apic.h
-#opt/MACHINE-uClibc/include/asm/mach-bigsmp/mach_apicdef.h
-#opt/MACHINE-uClibc/include/asm/mach-bigsmp/mach_ipi.h
-#opt/MACHINE-uClibc/include/asm/mach-bigsmp/mach_mpspec.h
-#opt/MACHINE-uClibc/include/asm/mach-default
-#opt/MACHINE-uClibc/include/asm/mach-default/apm.h
-#opt/MACHINE-uClibc/include/asm/mach-default/bios_ebda.h
-#opt/MACHINE-uClibc/include/asm/mach-default/do_timer.h
-#opt/MACHINE-uClibc/include/asm/mach-default/entry_arch.h
-#opt/MACHINE-uClibc/include/asm/mach-default/io_ports.h
-#opt/MACHINE-uClibc/include/asm/mach-default/irq_vectors.h
-#opt/MACHINE-uClibc/include/asm/mach-default/mach_apic.h
-#opt/MACHINE-uClibc/include/asm/mach-default/mach_apicdef.h
-#opt/MACHINE-uClibc/include/asm/mach-default/mach_ipi.h
-#opt/MACHINE-uClibc/include/asm/mach-default/mach_mpparse.h
-#opt/MACHINE-uClibc/include/asm/mach-default/mach_mpspec.h
-#opt/MACHINE-uClibc/include/asm/mach-default/mach_reboot.h
-#opt/MACHINE-uClibc/include/asm/mach-default/mach_time.h
-#opt/MACHINE-uClibc/include/asm/mach-default/mach_timer.h
-#opt/MACHINE-uClibc/include/asm/mach-default/mach_traps.h
-#opt/MACHINE-uClibc/include/asm/mach-default/mach_wakecpu.h
-#opt/MACHINE-uClibc/include/asm/mach-default/pci-functions.h
-#opt/MACHINE-uClibc/include/asm/mach-default/setup_arch_post.h
-#opt/MACHINE-uClibc/include/asm/mach-default/setup_arch_pre.h
-#opt/MACHINE-uClibc/include/asm/mach-default/smpboot_hooks.h
-#opt/MACHINE-uClibc/include/asm/mach-es7000
-#opt/MACHINE-uClibc/include/asm/mach-es7000/mach_apic.h
-#opt/MACHINE-uClibc/include/asm/mach-es7000/mach_apicdef.h
-#opt/MACHINE-uClibc/include/asm/mach-es7000/mach_ipi.h
-#opt/MACHINE-uClibc/include/asm/mach-es7000/mach_mpparse.h
-#opt/MACHINE-uClibc/include/asm/mach-es7000/mach_mpspec.h
-#opt/MACHINE-uClibc/include/asm/mach-es7000/mach_wakecpu.h
-#opt/MACHINE-uClibc/include/asm/mach-generic
-#opt/MACHINE-uClibc/include/asm/mach-generic/mach_apic.h
-#opt/MACHINE-uClibc/include/asm/mach-generic/mach_apicdef.h
-#opt/MACHINE-uClibc/include/asm/mach-generic/mach_ipi.h
-#opt/MACHINE-uClibc/include/asm/mach-generic/mach_mpparse.h
-#opt/MACHINE-uClibc/include/asm/mach-generic/mach_mpspec.h
-#opt/MACHINE-uClibc/include/asm/mach-numaq
-#opt/MACHINE-uClibc/include/asm/mach-numaq/mach_apic.h
-#opt/MACHINE-uClibc/include/asm/mach-numaq/mach_apicdef.h
-#opt/MACHINE-uClibc/include/asm/mach-numaq/mach_ipi.h
-#opt/MACHINE-uClibc/include/asm/mach-numaq/mach_mpparse.h
-#opt/MACHINE-uClibc/include/asm/mach-numaq/mach_mpspec.h
-#opt/MACHINE-uClibc/include/asm/mach-numaq/mach_wakecpu.h
-#opt/MACHINE-uClibc/include/asm/mach-summit
-#opt/MACHINE-uClibc/include/asm/mach-summit/mach_apic.h
-#opt/MACHINE-uClibc/include/asm/mach-summit/mach_apicdef.h
-#opt/MACHINE-uClibc/include/asm/mach-summit/mach_ipi.h
-#opt/MACHINE-uClibc/include/asm/mach-summit/mach_mpparse.h
-#opt/MACHINE-uClibc/include/asm/mach-summit/mach_mpspec.h
-#opt/MACHINE-uClibc/include/asm/mach-visws
-#opt/MACHINE-uClibc/include/asm/mach-visws/cobalt.h
-#opt/MACHINE-uClibc/include/asm/mach-visws/do_timer.h
-#opt/MACHINE-uClibc/include/asm/mach-visws/entry_arch.h
-#opt/MACHINE-uClibc/include/asm/mach-visws/irq_vectors.h
-#opt/MACHINE-uClibc/include/asm/mach-visws/lithium.h
-#opt/MACHINE-uClibc/include/asm/mach-visws/mach_apic.h
-#opt/MACHINE-uClibc/include/asm/mach-visws/mach_apicdef.h
-#opt/MACHINE-uClibc/include/asm/mach-visws/piix4.h
-#opt/MACHINE-uClibc/include/asm/mach-visws/setup_arch_post.h
-#opt/MACHINE-uClibc/include/asm/mach-visws/setup_arch_pre.h
-#opt/MACHINE-uClibc/include/asm/mach-visws/smpboot_hooks.h
-#opt/MACHINE-uClibc/include/asm/mach-voyager
-#opt/MACHINE-uClibc/include/asm/mach-voyager/do_timer.h
-#opt/MACHINE-uClibc/include/asm/mach-voyager/entry_arch.h
-#opt/MACHINE-uClibc/include/asm/mach-voyager/irq_vectors.h
-#opt/MACHINE-uClibc/include/asm/mach-voyager/setup_arch_post.h
-#opt/MACHINE-uClibc/include/asm/mach-voyager/setup_arch_pre.h
-#opt/MACHINE-uClibc/include/asm/math_emu.h
-#opt/MACHINE-uClibc/include/asm/mca.h
-#opt/MACHINE-uClibc/include/asm/mca_dma.h
-#opt/MACHINE-uClibc/include/asm/mman.h
-#opt/MACHINE-uClibc/include/asm/mmu.h
-#opt/MACHINE-uClibc/include/asm/mmu_context.h
-#opt/MACHINE-uClibc/include/asm/mmx.h
-#opt/MACHINE-uClibc/include/asm/module.h
-#opt/MACHINE-uClibc/include/asm/mpspec.h
-#opt/MACHINE-uClibc/include/asm/mpspec_def.h
-#opt/MACHINE-uClibc/include/asm/msgbuf.h
-#opt/MACHINE-uClibc/include/asm/msr.h
-#opt/MACHINE-uClibc/include/asm/mtrr.h
-#opt/MACHINE-uClibc/include/asm/namei.h
-#opt/MACHINE-uClibc/include/asm/nmi.h
-#opt/MACHINE-uClibc/include/asm/node.h
-#opt/MACHINE-uClibc/include/asm/numaq.h
-#opt/MACHINE-uClibc/include/asm/numnodes.h
-#opt/MACHINE-uClibc/include/asm/page.h
-#opt/MACHINE-uClibc/include/asm/param.h
-#opt/MACHINE-uClibc/include/asm/parport.h
-#opt/MACHINE-uClibc/include/asm/pgalloc.h
-#opt/MACHINE-uClibc/include/asm/poll.h
-#opt/MACHINE-uClibc/include/asm/posix_types.h
-#opt/MACHINE-uClibc/include/asm/processor.h
-#opt/MACHINE-uClibc/include/asm/ptrace.h
-#opt/MACHINE-uClibc/include/asm/rwlock.h
-#opt/MACHINE-uClibc/include/asm/segment.h
-#opt/MACHINE-uClibc/include/asm/semaphore.h
-#opt/MACHINE-uClibc/include/asm/sembuf.h
-#opt/MACHINE-uClibc/include/asm/serial.h
-#opt/MACHINE-uClibc/include/asm/shmbuf.h
-#opt/MACHINE-uClibc/include/asm/shmparam.h
-#opt/MACHINE-uClibc/include/asm/sigcontext.h
-#opt/MACHINE-uClibc/include/asm/siginfo.h
-#opt/MACHINE-uClibc/include/asm/socket.h
-#opt/MACHINE-uClibc/include/asm/sockios.h
-#opt/MACHINE-uClibc/include/asm/spinlock.h
-#opt/MACHINE-uClibc/include/asm/srat.h
-#opt/MACHINE-uClibc/include/asm/stat.h
-#opt/MACHINE-uClibc/include/asm/suspend.h
-#opt/MACHINE-uClibc/include/asm/svm.h
-#opt/MACHINE-uClibc/include/asm/system.h
-#opt/MACHINE-uClibc/include/asm/termbits.h
-#opt/MACHINE-uClibc/include/asm/termios.h
-#opt/MACHINE-uClibc/include/asm/timer.h
-#opt/MACHINE-uClibc/include/asm/timex.h
-#opt/MACHINE-uClibc/include/asm/tlbflush.h
-#opt/MACHINE-uClibc/include/asm/types.h
-#opt/MACHINE-uClibc/include/asm/ucontext.h
-#opt/MACHINE-uClibc/include/asm/unaligned.h
-#opt/MACHINE-uClibc/include/asm/unistd.h
-#opt/MACHINE-uClibc/include/asm/user.h
-#opt/MACHINE-uClibc/include/asm/vga.h
-#opt/MACHINE-uClibc/include/asm/vic.h
-#opt/MACHINE-uClibc/include/asm/virtext.h
-#opt/MACHINE-uClibc/include/asm/vm86.h
-#opt/MACHINE-uClibc/include/asm/vmx.h
-#opt/MACHINE-uClibc/include/asm/voyager.h
-#opt/MACHINE-uClibc/include/assert.h
-#opt/MACHINE-uClibc/include/atomic.h
-#opt/MACHINE-uClibc/include/bits
-#opt/MACHINE-uClibc/include/bits/atomic.h
-#opt/MACHINE-uClibc/include/bits/atomicity.h
-#opt/MACHINE-uClibc/include/bits/byteswap.h
-#opt/MACHINE-uClibc/include/bits/cmathcalls.h
-#opt/MACHINE-uClibc/include/bits/confname.h
-#opt/MACHINE-uClibc/include/bits/dirent.h
-#opt/MACHINE-uClibc/include/bits/dlfcn.h
-#opt/MACHINE-uClibc/include/bits/elfclass.h
-#opt/MACHINE-uClibc/include/bits/endian.h
-#opt/MACHINE-uClibc/include/bits/environments.h
-#opt/MACHINE-uClibc/include/bits/errno.h
-#opt/MACHINE-uClibc/include/bits/errno_values.h
-#opt/MACHINE-uClibc/include/bits/fcntl.h
-#opt/MACHINE-uClibc/include/bits/fenv.h
-#opt/MACHINE-uClibc/include/bits/fenvinline.h
-#opt/MACHINE-uClibc/include/bits/getopt.h
-#opt/MACHINE-uClibc/include/bits/huge_val.h
-#opt/MACHINE-uClibc/include/bits/in.h
-#opt/MACHINE-uClibc/include/bits/initspin.h
-#opt/MACHINE-uClibc/include/bits/ioctl-types.h
-#opt/MACHINE-uClibc/include/bits/ioctls.h
-#opt/MACHINE-uClibc/include/bits/ipc.h
-#opt/MACHINE-uClibc/include/bits/kernel_sigaction.h
-#opt/MACHINE-uClibc/include/bits/kernel_stat.h
-#opt/MACHINE-uClibc/include/bits/kernel_types.h
-#opt/MACHINE-uClibc/include/bits/local_lim.h
-#opt/MACHINE-uClibc/include/bits/locale.h
-#opt/MACHINE-uClibc/include/bits/mathcalls.h
-#opt/MACHINE-uClibc/include/bits/mathdef.h
-#opt/MACHINE-uClibc/include/bits/mathinline.h
-#opt/MACHINE-uClibc/include/bits/mman.h
-#opt/MACHINE-uClibc/include/bits/msq.h
-#opt/MACHINE-uClibc/include/bits/nan.h
-#opt/MACHINE-uClibc/include/bits/netdb.h
-#opt/MACHINE-uClibc/include/bits/poll.h
-#opt/MACHINE-uClibc/include/bits/posix1_lim.h
-#opt/MACHINE-uClibc/include/bits/posix2_lim.h
-#opt/MACHINE-uClibc/include/bits/posix_opt.h
-#opt/MACHINE-uClibc/include/bits/profil-counter.h
-#opt/MACHINE-uClibc/include/bits/pthreadtypes.h
-#opt/MACHINE-uClibc/include/bits/resource.h
-#opt/MACHINE-uClibc/include/bits/sched.h
-#opt/MACHINE-uClibc/include/bits/select.h
-#opt/MACHINE-uClibc/include/bits/sem.h
-#opt/MACHINE-uClibc/include/bits/setjmp.h
-#opt/MACHINE-uClibc/include/bits/shm.h
-#opt/MACHINE-uClibc/include/bits/sigaction.h
-#opt/MACHINE-uClibc/include/bits/sigcontext.h
-#opt/MACHINE-uClibc/include/bits/sigcontextinfo.h
-#opt/MACHINE-uClibc/include/bits/siginfo.h
-#opt/MACHINE-uClibc/include/bits/signum.h
-#opt/MACHINE-uClibc/include/bits/sigset.h
-#opt/MACHINE-uClibc/include/bits/sigstack.h
-#opt/MACHINE-uClibc/include/bits/sigthread.h
-#opt/MACHINE-uClibc/include/bits/sockaddr.h
-#opt/MACHINE-uClibc/include/bits/socket.h
-#opt/MACHINE-uClibc/include/bits/stackinfo.h
-#opt/MACHINE-uClibc/include/bits/stat.h
-#opt/MACHINE-uClibc/include/bits/statfs.h
-#opt/MACHINE-uClibc/include/bits/statvfs.h
-#opt/MACHINE-uClibc/include/bits/stdio.h
-#opt/MACHINE-uClibc/include/bits/stdio_lim.h
-#opt/MACHINE-uClibc/include/bits/syscalls.h
-#opt/MACHINE-uClibc/include/bits/sysnum.h
-#opt/MACHINE-uClibc/include/bits/termios.h
-#opt/MACHINE-uClibc/include/bits/time.h
-#opt/MACHINE-uClibc/include/bits/types.h
-#opt/MACHINE-uClibc/include/bits/uClibc_clk_tck.h
-#opt/MACHINE-uClibc/include/bits/uClibc_config.h
-#opt/MACHINE-uClibc/include/bits/uClibc_ctype.h
-#opt/MACHINE-uClibc/include/bits/uClibc_fpmax.h
-#opt/MACHINE-uClibc/include/bits/uClibc_locale.h
-#opt/MACHINE-uClibc/include/bits/uClibc_locale_data.h
-#opt/MACHINE-uClibc/include/bits/uClibc_page.h
-#opt/MACHINE-uClibc/include/bits/uClibc_pthread.h
-#opt/MACHINE-uClibc/include/bits/uClibc_stdio.h
-#opt/MACHINE-uClibc/include/bits/uClibc_touplow.h
-#opt/MACHINE-uClibc/include/bits/uClibc_uintmaxtostr.h
-#opt/MACHINE-uClibc/include/bits/uClibc_uwchar.h
-#opt/MACHINE-uClibc/include/bits/uClibc_va_copy.h
-#opt/MACHINE-uClibc/include/bits/uio.h
-#opt/MACHINE-uClibc/include/bits/ustat.h
-#opt/MACHINE-uClibc/include/bits/utmp.h
-#opt/MACHINE-uClibc/include/bits/utmpx.h
-#opt/MACHINE-uClibc/include/bits/utsname.h
-#opt/MACHINE-uClibc/include/bits/waitflags.h
-#opt/MACHINE-uClibc/include/bits/waitstatus.h
-#opt/MACHINE-uClibc/include/bits/wchar.h
-#opt/MACHINE-uClibc/include/bits/wordsize.h
-#opt/MACHINE-uClibc/include/bits/xopen_lim.h
-#opt/MACHINE-uClibc/include/byteswap.h
-#opt/MACHINE-uClibc/include/complex.h
-#opt/MACHINE-uClibc/include/cpio.h
-#opt/MACHINE-uClibc/include/crypt.h
-#opt/MACHINE-uClibc/include/ctype.h
-#opt/MACHINE-uClibc/include/dirent.h
-#opt/MACHINE-uClibc/include/dlfcn.h
-#opt/MACHINE-uClibc/include/elf.h
-#opt/MACHINE-uClibc/include/endian.h
-#opt/MACHINE-uClibc/include/err.h
-#opt/MACHINE-uClibc/include/errno.h
-#opt/MACHINE-uClibc/include/error.h
-#opt/MACHINE-uClibc/include/fcntl.h
-#opt/MACHINE-uClibc/include/features.h
-#opt/MACHINE-uClibc/include/fnmatch.h
-#opt/MACHINE-uClibc/include/fpu_control.h
-#opt/MACHINE-uClibc/include/ftw.h
-#opt/MACHINE-uClibc/include/getopt.h
-#opt/MACHINE-uClibc/include/glob.h
-#opt/MACHINE-uClibc/include/gnu-versions.h
-#opt/MACHINE-uClibc/include/grp.h
-#opt/MACHINE-uClibc/include/iconv.h
-#opt/MACHINE-uClibc/include/ieee754.h
-#opt/MACHINE-uClibc/include/inttypes.h
-#opt/MACHINE-uClibc/include/langinfo.h
-#opt/MACHINE-uClibc/include/lastlog.h
-#opt/MACHINE-uClibc/include/libgen.h
-#opt/MACHINE-uClibc/include/limits.h
-#opt/MACHINE-uClibc/include/link.h
-#opt/MACHINE-uClibc/include/linux
-#opt/MACHINE-uClibc/include/linux/8250_pci.h
-#opt/MACHINE-uClibc/include/linux/a.out.h
-#opt/MACHINE-uClibc/include/linux/acct.h
-#opt/MACHINE-uClibc/include/linux/acpi.h
-#opt/MACHINE-uClibc/include/linux/adb.h
-#opt/MACHINE-uClibc/include/linux/adfs_fs.h
-#opt/MACHINE-uClibc/include/linux/adfs_fs_sb.h
-#opt/MACHINE-uClibc/include/linux/affs_fs.h
-#opt/MACHINE-uClibc/include/linux/affs_hardblocks.h
-#opt/MACHINE-uClibc/include/linux/agpgart.h
-#opt/MACHINE-uClibc/include/linux/aio.h
-#opt/MACHINE-uClibc/include/linux/aio_abi.h
-#opt/MACHINE-uClibc/include/linux/amifd.h
-#opt/MACHINE-uClibc/include/linux/amifdreg.h
-#opt/MACHINE-uClibc/include/linux/amigaffs.h
-#opt/MACHINE-uClibc/include/linux/apm_bios.h
-#opt/MACHINE-uClibc/include/linux/ata.h
-#opt/MACHINE-uClibc/include/linux/atalk.h
-#opt/MACHINE-uClibc/include/linux/atm.h
-#opt/MACHINE-uClibc/include/linux/atm_eni.h
-#opt/MACHINE-uClibc/include/linux/atm_he.h
-#opt/MACHINE-uClibc/include/linux/atm_idt77105.h
-#opt/MACHINE-uClibc/include/linux/atm_nicstar.h
-#opt/MACHINE-uClibc/include/linux/atm_suni.h
-#opt/MACHINE-uClibc/include/linux/atm_tcp.h
-#opt/MACHINE-uClibc/include/linux/atm_zatm.h
-#opt/MACHINE-uClibc/include/linux/atmapi.h
-#opt/MACHINE-uClibc/include/linux/atmarp.h
-#opt/MACHINE-uClibc/include/linux/atmbr2684.h
-#opt/MACHINE-uClibc/include/linux/atmclip.h
-#opt/MACHINE-uClibc/include/linux/atmdev.h
-#opt/MACHINE-uClibc/include/linux/atmioc.h
-#opt/MACHINE-uClibc/include/linux/atmlec.h
-#opt/MACHINE-uClibc/include/linux/atmmpc.h
-#opt/MACHINE-uClibc/include/linux/atmppp.h
-#opt/MACHINE-uClibc/include/linux/atmsap.h
-#opt/MACHINE-uClibc/include/linux/atmsvc.h
-#opt/MACHINE-uClibc/include/linux/audit.h
-#opt/MACHINE-uClibc/include/linux/auto_fs.h
-#opt/MACHINE-uClibc/include/linux/auto_fs4.h
-#opt/MACHINE-uClibc/include/linux/autoconf.h
-#opt/MACHINE-uClibc/include/linux/awe_voice.h
-#opt/MACHINE-uClibc/include/linux/ax25.h
-#opt/MACHINE-uClibc/include/linux/b1lli.h
-#opt/MACHINE-uClibc/include/linux/backing-dev.h
-#opt/MACHINE-uClibc/include/linux/backlight.h
-#opt/MACHINE-uClibc/include/linux/baycom.h
-#opt/MACHINE-uClibc/include/linux/bcd.h
-#opt/MACHINE-uClibc/include/linux/bfs_fs.h
-#opt/MACHINE-uClibc/include/linux/binfmts.h
-#opt/MACHINE-uClibc/include/linux/bitmap.h
-#opt/MACHINE-uClibc/include/linux/bitops.h
-#opt/MACHINE-uClibc/include/linux/blkpg.h
-#opt/MACHINE-uClibc/include/linux/blockgroup_lock.h
-#opt/MACHINE-uClibc/include/linux/bootmem.h
-#opt/MACHINE-uClibc/include/linux/bpqether.h
-#opt/MACHINE-uClibc/include/linux/byteorder
-#opt/MACHINE-uClibc/include/linux/byteorder/big_endian.h
-#opt/MACHINE-uClibc/include/linux/byteorder/generic.h
-#opt/MACHINE-uClibc/include/linux/byteorder/little_endian.h
-#opt/MACHINE-uClibc/include/linux/byteorder/pdp_endian.h
-#opt/MACHINE-uClibc/include/linux/byteorder/swab.h
-#opt/MACHINE-uClibc/include/linux/byteorder/swabb.h
-#opt/MACHINE-uClibc/include/linux/cache.h
-#opt/MACHINE-uClibc/include/linux/capability.h
-#opt/MACHINE-uClibc/include/linux/capi.h
-#opt/MACHINE-uClibc/include/linux/cciss_ioctl.h
-#opt/MACHINE-uClibc/include/linux/cd1400.h
-#opt/MACHINE-uClibc/include/linux/cdk.h
-#opt/MACHINE-uClibc/include/linux/cdrom.h
-#opt/MACHINE-uClibc/include/linux/circ_buf.h
-#opt/MACHINE-uClibc/include/linux/cobalt-nvram.h
-#opt/MACHINE-uClibc/include/linux/coda.h
-#opt/MACHINE-uClibc/include/linux/coda_proc.h
-#opt/MACHINE-uClibc/include/linux/coda_psdev.h
-#opt/MACHINE-uClibc/include/linux/coff.h
-#opt/MACHINE-uClibc/include/linux/com20020.h
-#opt/MACHINE-uClibc/include/linux/compat.h
-#opt/MACHINE-uClibc/include/linux/compat_ioctl.h
-#opt/MACHINE-uClibc/include/linux/compiler.h
-#opt/MACHINE-uClibc/include/linux/comstats.h
-#opt/MACHINE-uClibc/include/linux/config.h
-#opt/MACHINE-uClibc/include/linux/console.h
-#opt/MACHINE-uClibc/include/linux/console_struct.h
-#opt/MACHINE-uClibc/include/linux/consolemap.h
-#opt/MACHINE-uClibc/include/linux/cpu.h
-#opt/MACHINE-uClibc/include/linux/cpufreq.h
-#opt/MACHINE-uClibc/include/linux/cramfs_fs.h
-#opt/MACHINE-uClibc/include/linux/cramfs_fs_sb.h
-#opt/MACHINE-uClibc/include/linux/crc32.h
-#opt/MACHINE-uClibc/include/linux/crypto.h
-#opt/MACHINE-uClibc/include/linux/cryptodev.h
-#opt/MACHINE-uClibc/include/linux/ctype.h
-#opt/MACHINE-uClibc/include/linux/cuda.h
-#opt/MACHINE-uClibc/include/linux/cyclades.h
-#opt/MACHINE-uClibc/include/linux/cycx_cfm.h
-#opt/MACHINE-uClibc/include/linux/cycx_drv.h
-#opt/MACHINE-uClibc/include/linux/cycx_x25.h
-#opt/MACHINE-uClibc/include/linux/devfs_fs.h
-#opt/MACHINE-uClibc/include/linux/devfs_fs_kernel.h
-#opt/MACHINE-uClibc/include/linux/device-mapper.h
-#opt/MACHINE-uClibc/include/linux/device.h
-#opt/MACHINE-uClibc/include/linux/devpts_fs.h
-#opt/MACHINE-uClibc/include/linux/dirent.h
-#opt/MACHINE-uClibc/include/linux/divert.h
-#opt/MACHINE-uClibc/include/linux/dm-ioctl.h
-#opt/MACHINE-uClibc/include/linux/dn.h
-#opt/MACHINE-uClibc/include/linux/dnotify.h
-#opt/MACHINE-uClibc/include/linux/dqblk_v1.h
-#opt/MACHINE-uClibc/include/linux/dqblk_v2.h
-#opt/MACHINE-uClibc/include/linux/dqblk_xfs.h
-#opt/MACHINE-uClibc/include/linux/dtlk.h
-#opt/MACHINE-uClibc/include/linux/dvb
-#opt/MACHINE-uClibc/include/linux/dvb/audio.h
-#opt/MACHINE-uClibc/include/linux/dvb/ca.h
-#opt/MACHINE-uClibc/include/linux/dvb/dmx.h
-#opt/MACHINE-uClibc/include/linux/dvb/frontend.h
-#opt/MACHINE-uClibc/include/linux/dvb/net.h
-#opt/MACHINE-uClibc/include/linux/dvb/osd.h
-#opt/MACHINE-uClibc/include/linux/dvb/version.h
-#opt/MACHINE-uClibc/include/linux/dvb/video.h
-#opt/MACHINE-uClibc/include/linux/eeprom.h
-#opt/MACHINE-uClibc/include/linux/efi.h
-#opt/MACHINE-uClibc/include/linux/efs_dir.h
-#opt/MACHINE-uClibc/include/linux/efs_fs.h
-#opt/MACHINE-uClibc/include/linux/efs_fs_i.h
-#opt/MACHINE-uClibc/include/linux/efs_fs_sb.h
-#opt/MACHINE-uClibc/include/linux/efs_vh.h
-#opt/MACHINE-uClibc/include/linux/eisa.h
-#opt/MACHINE-uClibc/include/linux/elevator.h
-#opt/MACHINE-uClibc/include/linux/elf-fdpic.h
-#opt/MACHINE-uClibc/include/linux/elf.h
-#opt/MACHINE-uClibc/include/linux/elfcore.h
-#opt/MACHINE-uClibc/include/linux/err.h
-#opt/MACHINE-uClibc/include/linux/err_kernel_only.h
-#opt/MACHINE-uClibc/include/linux/errno.h
-#opt/MACHINE-uClibc/include/linux/errqueue.h
-#opt/MACHINE-uClibc/include/linux/ethtool.h
-#opt/MACHINE-uClibc/include/linux/eventpoll.h
-#opt/MACHINE-uClibc/include/linux/ext2_fs.h
-#opt/MACHINE-uClibc/include/linux/ext3_fs.h
-#opt/MACHINE-uClibc/include/linux/ext3_jbd.h
-#opt/MACHINE-uClibc/include/linux/fadvise.h
-#opt/MACHINE-uClibc/include/linux/fb.h
-#opt/MACHINE-uClibc/include/linux/fcntl.h
-#opt/MACHINE-uClibc/include/linux/fd.h
-#opt/MACHINE-uClibc/include/linux/fd1772.h
-#opt/MACHINE-uClibc/include/linux/fdreg.h
-#opt/MACHINE-uClibc/include/linux/file.h
-#opt/MACHINE-uClibc/include/linux/filter.h
-#opt/MACHINE-uClibc/include/linux/firmware.h
-#opt/MACHINE-uClibc/include/linux/flat.h
-#opt/MACHINE-uClibc/include/linux/font.h
-#opt/MACHINE-uClibc/include/linux/fs.h
-#opt/MACHINE-uClibc/include/linux/fs_struct.h
-#opt/MACHINE-uClibc/include/linux/ftape-header-segment.h
-#opt/MACHINE-uClibc/include/linux/ftape-vendors.h
-#opt/MACHINE-uClibc/include/linux/ftape.h
-#opt/MACHINE-uClibc/include/linux/futex.h
-#opt/MACHINE-uClibc/include/linux/gameport.h
-#opt/MACHINE-uClibc/include/linux/gen_stats.h
-#opt/MACHINE-uClibc/include/linux/generic_serial.h
-#opt/MACHINE-uClibc/include/linux/genetlink.h
-#opt/MACHINE-uClibc/include/linux/genhd.h
-#opt/MACHINE-uClibc/include/linux/gfp.h
-#opt/MACHINE-uClibc/include/linux/hash.h
-#opt/MACHINE-uClibc/include/linux/hayesesp.h
-#opt/MACHINE-uClibc/include/linux/hdlc
-#opt/MACHINE-uClibc/include/linux/hdlc.h
-#opt/MACHINE-uClibc/include/linux/hdlc/ioctl.h
-#opt/MACHINE-uClibc/include/linux/hdlcdrv.h
-#opt/MACHINE-uClibc/include/linux/hdreg.h
-#opt/MACHINE-uClibc/include/linux/hdsmart.h
-#opt/MACHINE-uClibc/include/linux/hiddev.h
-#opt/MACHINE-uClibc/include/linux/highuid.h
-#opt/MACHINE-uClibc/include/linux/hpfs_fs.h
-#opt/MACHINE-uClibc/include/linux/hysdn_if.h
-#opt/MACHINE-uClibc/include/linux/i2c-algo-bit.h
-#opt/MACHINE-uClibc/include/linux/i2c-algo-ite.h
-#opt/MACHINE-uClibc/include/linux/i2c-algo-pcf.h
-#opt/MACHINE-uClibc/include/linux/i2c-algo-sgi.h
-#opt/MACHINE-uClibc/include/linux/i2c-algo-sibyte.h
-#opt/MACHINE-uClibc/include/linux/i2c-dev.h
-#opt/MACHINE-uClibc/include/linux/i2c-id.h
-#opt/MACHINE-uClibc/include/linux/i2c-sensor.h
-#opt/MACHINE-uClibc/include/linux/i2c-vid.h
-#opt/MACHINE-uClibc/include/linux/i2c.h
-#opt/MACHINE-uClibc/include/linux/i2o-dev.h
-#opt/MACHINE-uClibc/include/linux/i8k.h
-#opt/MACHINE-uClibc/include/linux/ibmtr.h
-#opt/MACHINE-uClibc/include/linux/icmp.h
-#opt/MACHINE-uClibc/include/linux/icmpv6.h
-#opt/MACHINE-uClibc/include/linux/ide.h
-#opt/MACHINE-uClibc/include/linux/idr.h
-#opt/MACHINE-uClibc/include/linux/if.h
-#opt/MACHINE-uClibc/include/linux/if_arcnet.h
-#opt/MACHINE-uClibc/include/linux/if_arp.h
-#opt/MACHINE-uClibc/include/linux/if_bonding.h
-#opt/MACHINE-uClibc/include/linux/if_bridge.h
-#opt/MACHINE-uClibc/include/linux/if_cablemodem.h
-#opt/MACHINE-uClibc/include/linux/if_ec.h
-#opt/MACHINE-uClibc/include/linux/if_eql.h
-#opt/MACHINE-uClibc/include/linux/if_ether.h
-#opt/MACHINE-uClibc/include/linux/if_fc.h
-#opt/MACHINE-uClibc/include/linux/if_fddi.h
-#opt/MACHINE-uClibc/include/linux/if_frad.h
-#opt/MACHINE-uClibc/include/linux/if_hippi.h
-#opt/MACHINE-uClibc/include/linux/if_infiniband.h
-#opt/MACHINE-uClibc/include/linux/if_ltalk.h
-#opt/MACHINE-uClibc/include/linux/if_packet.h
-#opt/MACHINE-uClibc/include/linux/if_plip.h
-#opt/MACHINE-uClibc/include/linux/if_ppp.h
-#opt/MACHINE-uClibc/include/linux/if_pppox.h
-#opt/MACHINE-uClibc/include/linux/if_shaper.h
-#opt/MACHINE-uClibc/include/linux/if_slip.h
-#opt/MACHINE-uClibc/include/linux/if_strip.h
-#opt/MACHINE-uClibc/include/linux/if_tr.h
-#opt/MACHINE-uClibc/include/linux/if_tun.h
-#opt/MACHINE-uClibc/include/linux/if_tunnel.h
-#opt/MACHINE-uClibc/include/linux/if_vlan.h
-#opt/MACHINE-uClibc/include/linux/if_wanpipe.h
-#opt/MACHINE-uClibc/include/linux/if_wanpipe_common.h
-#opt/MACHINE-uClibc/include/linux/igmp.h
-#opt/MACHINE-uClibc/include/linux/in.h
-#opt/MACHINE-uClibc/include/linux/in6.h
-#opt/MACHINE-uClibc/include/linux/in_route.h
-#opt/MACHINE-uClibc/include/linux/inetdevice.h
-#opt/MACHINE-uClibc/include/linux/init.h
-#opt/MACHINE-uClibc/include/linux/init_task.h
-#opt/MACHINE-uClibc/include/linux/initrd.h
-#opt/MACHINE-uClibc/include/linux/inotify.h
-#opt/MACHINE-uClibc/include/linux/input.h
-#opt/MACHINE-uClibc/include/linux/interrupt.h
-#opt/MACHINE-uClibc/include/linux/ioctl.h
-#opt/MACHINE-uClibc/include/linux/ioctl32.h
-#opt/MACHINE-uClibc/include/linux/ioport.h
-#opt/MACHINE-uClibc/include/linux/ip.h
-#opt/MACHINE-uClibc/include/linux/ip6_tunnel.h
-#opt/MACHINE-uClibc/include/linux/ip_mp_alg.h
-#opt/MACHINE-uClibc/include/linux/ipc.h
-#opt/MACHINE-uClibc/include/linux/ipmi.h
-#opt/MACHINE-uClibc/include/linux/ipmi_msgdefs.h
-#opt/MACHINE-uClibc/include/linux/ipmi_smi.h
-#opt/MACHINE-uClibc/include/linux/ipsec.h
-#opt/MACHINE-uClibc/include/linux/ipv6.h
-#opt/MACHINE-uClibc/include/linux/ipv6_route.h
-#opt/MACHINE-uClibc/include/linux/ipx.h
-#opt/MACHINE-uClibc/include/linux/irda.h
-#opt/MACHINE-uClibc/include/linux/irq.h
-#opt/MACHINE-uClibc/include/linux/irq_cpustat.h
-#opt/MACHINE-uClibc/include/linux/isapnp.h
-#opt/MACHINE-uClibc/include/linux/isdn
-#opt/MACHINE-uClibc/include/linux/isdn.h
-#opt/MACHINE-uClibc/include/linux/isdn/capicmd.h
-#opt/MACHINE-uClibc/include/linux/isdn/capilli.h
-#opt/MACHINE-uClibc/include/linux/isdn/capiutil.h
-#opt/MACHINE-uClibc/include/linux/isdn/tpam.h
-#opt/MACHINE-uClibc/include/linux/isdn_divertif.h
-#opt/MACHINE-uClibc/include/linux/isdn_ppp.h
-#opt/MACHINE-uClibc/include/linux/isdnif.h
-#opt/MACHINE-uClibc/include/linux/isicom.h
-#opt/MACHINE-uClibc/include/linux/iso_fs.h
-#opt/MACHINE-uClibc/include/linux/istallion.h
-#opt/MACHINE-uClibc/include/linux/ite_gpio.h
-#opt/MACHINE-uClibc/include/linux/ixjuser.h
-#opt/MACHINE-uClibc/include/linux/jbd.h
-#opt/MACHINE-uClibc/include/linux/jffs.h
-#opt/MACHINE-uClibc/include/linux/jffs2.h
-#opt/MACHINE-uClibc/include/linux/jffs2_fs_sb.h
-#opt/MACHINE-uClibc/include/linux/jhash.h
-#opt/MACHINE-uClibc/include/linux/jiffies.h
-#opt/MACHINE-uClibc/include/linux/journal-head.h
-#opt/MACHINE-uClibc/include/linux/joystick.h
-#opt/MACHINE-uClibc/include/linux/kallsyms.h
-#opt/MACHINE-uClibc/include/linux/kbd_diacr.h
-#opt/MACHINE-uClibc/include/linux/kbd_kern.h
-#opt/MACHINE-uClibc/include/linux/kd.h
-#opt/MACHINE-uClibc/include/linux/kdev_t.h
-#opt/MACHINE-uClibc/include/linux/kernel.h
-#opt/MACHINE-uClibc/include/linux/kernel_stat.h
-#opt/MACHINE-uClibc/include/linux/kernelcapi.h
-#opt/MACHINE-uClibc/include/linux/keyboard.h
-#opt/MACHINE-uClibc/include/linux/keyctl.h
-#opt/MACHINE-uClibc/include/linux/kmalloc_sizes.h
-#opt/MACHINE-uClibc/include/linux/kmod.h
-#opt/MACHINE-uClibc/include/linux/kprobes.h
-#opt/MACHINE-uClibc/include/linux/kvm.h
-#opt/MACHINE-uClibc/include/linux/kvm_host.h
-#opt/MACHINE-uClibc/include/linux/kvm_para.h
-#opt/MACHINE-uClibc/include/linux/kvm_types.h
-#opt/MACHINE-uClibc/include/linux/lapb.h
-#opt/MACHINE-uClibc/include/linux/lcd.h
-#opt/MACHINE-uClibc/include/linux/libata.h
-#opt/MACHINE-uClibc/include/linux/libps2.h
-#opt/MACHINE-uClibc/include/linux/limits.h
-#opt/MACHINE-uClibc/include/linux/linkage.h
-#opt/MACHINE-uClibc/include/linux/linux_logo.h
-#opt/MACHINE-uClibc/include/linux/list.h
-#opt/MACHINE-uClibc/include/linux/llc.h
-#opt/MACHINE-uClibc/include/linux/lockd
-#opt/MACHINE-uClibc/include/linux/lockd/bind.h
-#opt/MACHINE-uClibc/include/linux/lockd/debug.h
-#opt/MACHINE-uClibc/include/linux/lockd/nlm.h
-#opt/MACHINE-uClibc/include/linux/lockd/share.h
-#opt/MACHINE-uClibc/include/linux/lockd/sm_inter.h
-#opt/MACHINE-uClibc/include/linux/lockd/xdr.h
-#opt/MACHINE-uClibc/include/linux/lockd/xdr4.h
-#opt/MACHINE-uClibc/include/linux/loop.h
-#opt/MACHINE-uClibc/include/linux/lp.h
-#opt/MACHINE-uClibc/include/linux/major.h
-#opt/MACHINE-uClibc/include/linux/matroxfb.h
-#opt/MACHINE-uClibc/include/linux/mbcache.h
-#opt/MACHINE-uClibc/include/linux/mc6821.h
-#opt/MACHINE-uClibc/include/linux/mca-legacy.h
-#opt/MACHINE-uClibc/include/linux/mca.h
-#opt/MACHINE-uClibc/include/linux/mempool.h
-#opt/MACHINE-uClibc/include/linux/meye.h
-#opt/MACHINE-uClibc/include/linux/mii.h
-#opt/MACHINE-uClibc/include/linux/minix_fs.h
-#opt/MACHINE-uClibc/include/linux/miscdevice.h
-#opt/MACHINE-uClibc/include/linux/mm.h
-#opt/MACHINE-uClibc/include/linux/mm_inline.h
-#opt/MACHINE-uClibc/include/linux/mman.h
-#opt/MACHINE-uClibc/include/linux/mod_devicetable.h
-#opt/MACHINE-uClibc/include/linux/module.h
-#opt/MACHINE-uClibc/include/linux/moduleloader.h
-#opt/MACHINE-uClibc/include/linux/moduleparam.h
-#opt/MACHINE-uClibc/include/linux/mount.h
-#opt/MACHINE-uClibc/include/linux/mroute.h
-#opt/MACHINE-uClibc/include/linux/msdos_fs.h
-#opt/MACHINE-uClibc/include/linux/msg.h
-#opt/MACHINE-uClibc/include/linux/mtd
-#opt/MACHINE-uClibc/include/linux/mtd/blktrans.h
-#opt/MACHINE-uClibc/include/linux/mtd/cfi.h
-#opt/MACHINE-uClibc/include/linux/mtd/cfi_endian.h
-#opt/MACHINE-uClibc/include/linux/mtd/compatmac.h
-#opt/MACHINE-uClibc/include/linux/mtd/concat.h
-#opt/MACHINE-uClibc/include/linux/mtd/doc2000.h
-#opt/MACHINE-uClibc/include/linux/mtd/flashchip.h
-#opt/MACHINE-uClibc/include/linux/mtd/ftl.h
-#opt/MACHINE-uClibc/include/linux/mtd/gen_probe.h
-#opt/MACHINE-uClibc/include/linux/mtd/iflash.h
-#opt/MACHINE-uClibc/include/linux/mtd/jedec.h
-#opt/MACHINE-uClibc/include/linux/mtd/map.h
-#opt/MACHINE-uClibc/include/linux/mtd/nand.h
-#opt/MACHINE-uClibc/include/linux/mtd/nand_ecc.h
-#opt/MACHINE-uClibc/include/linux/mtd/nftl.h
-#opt/MACHINE-uClibc/include/linux/mtd/partitions.h
-#opt/MACHINE-uClibc/include/linux/mtd/pmc551.h
-#opt/MACHINE-uClibc/include/linux/mtio.h
-#opt/MACHINE-uClibc/include/linux/n_r3964.h
-#opt/MACHINE-uClibc/include/linux/namei.h
-#opt/MACHINE-uClibc/include/linux/nbd.h
-#opt/MACHINE-uClibc/include/linux/ncp.h
-#opt/MACHINE-uClibc/include/linux/ncp_fs.h
-#opt/MACHINE-uClibc/include/linux/ncp_mount.h
-#opt/MACHINE-uClibc/include/linux/ncp_no.h
-#opt/MACHINE-uClibc/include/linux/net.h
-#opt/MACHINE-uClibc/include/linux/netdevice.h
-#opt/MACHINE-uClibc/include/linux/netfilter
-#opt/MACHINE-uClibc/include/linux/netfilter.h
-#opt/MACHINE-uClibc/include/linux/netfilter/Kbuild
-#opt/MACHINE-uClibc/include/linux/netfilter/nf_conntrack_amanda.h
-#opt/MACHINE-uClibc/include/linux/netfilter/nf_conntrack_common.h
-#opt/MACHINE-uClibc/include/linux/netfilter/nf_conntrack_dccp.h
-#opt/MACHINE-uClibc/include/linux/netfilter/nf_conntrack_ftp.h
-#opt/MACHINE-uClibc/include/linux/netfilter/nf_conntrack_h323.h
-#opt/MACHINE-uClibc/include/linux/netfilter/nf_conntrack_h323_asn1.h
-#opt/MACHINE-uClibc/include/linux/netfilter/nf_conntrack_h323_types.h
-#opt/MACHINE-uClibc/include/linux/netfilter/nf_conntrack_irc.h
-#opt/MACHINE-uClibc/include/linux/netfilter/nf_conntrack_pptp.h
-#opt/MACHINE-uClibc/include/linux/netfilter/nf_conntrack_proto_gre.h
-#opt/MACHINE-uClibc/include/linux/netfilter/nf_conntrack_sane.h
-#opt/MACHINE-uClibc/include/linux/netfilter/nf_conntrack_sctp.h
-#opt/MACHINE-uClibc/include/linux/netfilter/nf_conntrack_sip.h
-#opt/MACHINE-uClibc/include/linux/netfilter/nf_conntrack_tcp.h
-#opt/MACHINE-uClibc/include/linux/netfilter/nf_conntrack_tftp.h
-#opt/MACHINE-uClibc/include/linux/netfilter/nf_conntrack_tuple_common.h
-#opt/MACHINE-uClibc/include/linux/netfilter/nfnetlink.h
-#opt/MACHINE-uClibc/include/linux/netfilter/nfnetlink_compat.h
-#opt/MACHINE-uClibc/include/linux/netfilter/nfnetlink_conntrack.h
-#opt/MACHINE-uClibc/include/linux/netfilter/nfnetlink_log.h
-#opt/MACHINE-uClibc/include/linux/netfilter/nfnetlink_queue.h
-#opt/MACHINE-uClibc/include/linux/netfilter/x_tables.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_CLASSIFY.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_CONNMARK.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_CONNSECMARK.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_DSCP.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_IMQ.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_LED.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_MARK.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_NFLOG.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_NFQUEUE.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_RATEEST.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_SECMARK.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_TCPMSS.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_TCPOPTSTRIP.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_TPROXY.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_cluster.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_comment.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_connbytes.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_connlimit.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_connmark.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_conntrack.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_dccp.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_dscp.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_esp.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_hashlimit.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_helper.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_iprange.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_layer7.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_length.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_limit.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_mac.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_mark.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_multiport.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_osf.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_owner.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_physdev.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_pkttype.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_policy.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_quota.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_rateest.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_realm.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_recent.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_sctp.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_socket.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_state.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_statistic.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_string.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_tcpmss.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_tcpudp.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_time.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_u32.h
-#opt/MACHINE-uClibc/include/linux/netfilter_arp
-#opt/MACHINE-uClibc/include/linux/netfilter_arp.h
-#opt/MACHINE-uClibc/include/linux/netfilter_arp/arp_tables.h
-#opt/MACHINE-uClibc/include/linux/netfilter_arp/arpt_mangle.h
-#opt/MACHINE-uClibc/include/linux/netfilter_bridge
-#opt/MACHINE-uClibc/include/linux/netfilter_bridge.h
-#opt/MACHINE-uClibc/include/linux/netfilter_bridge/ebt_802_3.h
-#opt/MACHINE-uClibc/include/linux/netfilter_bridge/ebt_among.h
-#opt/MACHINE-uClibc/include/linux/netfilter_bridge/ebt_arp.h
-#opt/MACHINE-uClibc/include/linux/netfilter_bridge/ebt_arpreply.h
-#opt/MACHINE-uClibc/include/linux/netfilter_bridge/ebt_ip.h
-#opt/MACHINE-uClibc/include/linux/netfilter_bridge/ebt_limit.h
-#opt/MACHINE-uClibc/include/linux/netfilter_bridge/ebt_log.h
-#opt/MACHINE-uClibc/include/linux/netfilter_bridge/ebt_mark_m.h
-#opt/MACHINE-uClibc/include/linux/netfilter_bridge/ebt_mark_t.h
-#opt/MACHINE-uClibc/include/linux/netfilter_bridge/ebt_nat.h
-#opt/MACHINE-uClibc/include/linux/netfilter_bridge/ebt_pkttype.h
-#opt/MACHINE-uClibc/include/linux/netfilter_bridge/ebt_redirect.h
-#opt/MACHINE-uClibc/include/linux/netfilter_bridge/ebt_stp.h
-#opt/MACHINE-uClibc/include/linux/netfilter_bridge/ebt_ulog.h
-#opt/MACHINE-uClibc/include/linux/netfilter_bridge/ebt_vlan.h
-#opt/MACHINE-uClibc/include/linux/netfilter_bridge/ebtables.h
-#opt/MACHINE-uClibc/include/linux/netfilter_decnet.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_conntrack.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_conntrack_amanda.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_conntrack_core.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_conntrack_ftp.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_conntrack_helper.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_conntrack_icmp.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_conntrack_irc.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_conntrack_protocol.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_conntrack_sctp.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_conntrack_tcp.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_conntrack_tftp.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_conntrack_tuple.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_nat.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_nat_core.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_nat_helper.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_nat_protocol.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_nat_rule.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_queue.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_tables.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_CLASSIFY.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_CLUSTERIP.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_CONNMARK.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_DSCP.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_ECN.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_LOG.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_MARK.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_REJECT.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_SAME.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_TCPMSS.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_TOS.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_ULOG.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_addrtype.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_ah.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_comment.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_connmark.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_conntrack.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_dscp.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_ecn.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_esp.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_hashlimit.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_helper.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_iprange.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_length.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_limit.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_mac.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_mark.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_multiport.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_owner.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_physdev.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_pkttype.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_realm.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_recent.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_sctp.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_state.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_tcpmss.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_tos.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_ttl.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/listhelp.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/lockhelp.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv6
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv6.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6_tables.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6t_LOG.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6t_MARK.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6t_ah.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6t_esp.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6t_frag.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6t_hl.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6t_ipv6header.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6t_length.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6t_limit.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6t_mac.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6t_mark.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6t_multiport.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6t_opts.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6t_owner.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6t_physdev.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6t_rt.h
-#opt/MACHINE-uClibc/include/linux/netlink.h
-#opt/MACHINE-uClibc/include/linux/netrom.h
-#opt/MACHINE-uClibc/include/linux/nfs.h
-#opt/MACHINE-uClibc/include/linux/nfs2.h
-#opt/MACHINE-uClibc/include/linux/nfs3.h
-#opt/MACHINE-uClibc/include/linux/nfs4.h
-#opt/MACHINE-uClibc/include/linux/nfs4_mount.h
-#opt/MACHINE-uClibc/include/linux/nfs_fs.h
-#opt/MACHINE-uClibc/include/linux/nfs_fs_i.h
-#opt/MACHINE-uClibc/include/linux/nfs_fs_sb.h
-#opt/MACHINE-uClibc/include/linux/nfs_idmap.h
-#opt/MACHINE-uClibc/include/linux/nfs_mount.h
-#opt/MACHINE-uClibc/include/linux/nfs_xdr.h
-#opt/MACHINE-uClibc/include/linux/nfsd
-#opt/MACHINE-uClibc/include/linux/nfsd/const.h
-#opt/MACHINE-uClibc/include/linux/nfsd/debug.h
-#opt/MACHINE-uClibc/include/linux/nfsd/export.h
-#opt/MACHINE-uClibc/include/linux/nfsd/interface.h
-#opt/MACHINE-uClibc/include/linux/nfsd/nfsd.h
-#opt/MACHINE-uClibc/include/linux/nfsd/nfsfh.h
-#opt/MACHINE-uClibc/include/linux/nfsd/state.h
-#opt/MACHINE-uClibc/include/linux/nfsd/stats.h
-#opt/MACHINE-uClibc/include/linux/nfsd/syscall.h
-#opt/MACHINE-uClibc/include/linux/nfsd/xdr.h
-#opt/MACHINE-uClibc/include/linux/nfsd/xdr3.h
-#opt/MACHINE-uClibc/include/linux/nfsd/xdr4.h
-#opt/MACHINE-uClibc/include/linux/nls.h
-#opt/MACHINE-uClibc/include/linux/nmi.h
-#opt/MACHINE-uClibc/include/linux/node.h
-#opt/MACHINE-uClibc/include/linux/notifier.h
-#opt/MACHINE-uClibc/include/linux/nubus.h
-#opt/MACHINE-uClibc/include/linux/numa.h
-#opt/MACHINE-uClibc/include/linux/nvram.h
-#opt/MACHINE-uClibc/include/linux/openprom_fs.h
-#opt/MACHINE-uClibc/include/linux/oprofile.h
-#opt/MACHINE-uClibc/include/linux/pagemap.h
-#opt/MACHINE-uClibc/include/linux/pagevec.h
-#opt/MACHINE-uClibc/include/linux/param.h
-#opt/MACHINE-uClibc/include/linux/parport.h
-#opt/MACHINE-uClibc/include/linux/parport_pc.h
-#opt/MACHINE-uClibc/include/linux/parser.h
-#opt/MACHINE-uClibc/include/linux/patchkey.h
-#opt/MACHINE-uClibc/include/linux/pci-dynids.h
-#opt/MACHINE-uClibc/include/linux/pci.h
-#opt/MACHINE-uClibc/include/linux/pci_ids.h
-#opt/MACHINE-uClibc/include/linux/pcieport_if.h
-#opt/MACHINE-uClibc/include/linux/percpu.h
-#opt/MACHINE-uClibc/include/linux/percpu_counter.h
-#opt/MACHINE-uClibc/include/linux/personality.h
-#opt/MACHINE-uClibc/include/linux/pfkeyv2.h
-#opt/MACHINE-uClibc/include/linux/pg.h
-#opt/MACHINE-uClibc/include/linux/pipe_fs_i.h
-#opt/MACHINE-uClibc/include/linux/pkt_cls.h
-#opt/MACHINE-uClibc/include/linux/pkt_sched.h
-#opt/MACHINE-uClibc/include/linux/pktcdvd.h
-#opt/MACHINE-uClibc/include/linux/pmu.h
-#opt/MACHINE-uClibc/include/linux/poll.h
-#opt/MACHINE-uClibc/include/linux/posix-timers.h
-#opt/MACHINE-uClibc/include/linux/posix_acl.h
-#opt/MACHINE-uClibc/include/linux/posix_acl_xattr.h
-#opt/MACHINE-uClibc/include/linux/posix_types.h
-#opt/MACHINE-uClibc/include/linux/ppdev.h
-#opt/MACHINE-uClibc/include/linux/ppp-comp.h
-#opt/MACHINE-uClibc/include/linux/ppp_channel.h
-#opt/MACHINE-uClibc/include/linux/ppp_defs.h
-#opt/MACHINE-uClibc/include/linux/prctl.h
-#opt/MACHINE-uClibc/include/linux/preempt.h
-#opt/MACHINE-uClibc/include/linux/prefetch.h
-#opt/MACHINE-uClibc/include/linux/proc_fs.h
-#opt/MACHINE-uClibc/include/linux/ps2esdi.h
-#opt/MACHINE-uClibc/include/linux/ptrace.h
-#opt/MACHINE-uClibc/include/linux/qic117.h
-#opt/MACHINE-uClibc/include/linux/qnx4_fs.h
-#opt/MACHINE-uClibc/include/linux/qnxtypes.h
-#opt/MACHINE-uClibc/include/linux/quota.h
-#opt/MACHINE-uClibc/include/linux/quotaio_v1.h
-#opt/MACHINE-uClibc/include/linux/quotaio_v2.h
-#opt/MACHINE-uClibc/include/linux/radeonfb.h
-#opt/MACHINE-uClibc/include/linux/raid
-#opt/MACHINE-uClibc/include/linux/raid/linear.h
-#opt/MACHINE-uClibc/include/linux/raid/md.h
-#opt/MACHINE-uClibc/include/linux/raid/md_p.h
-#opt/MACHINE-uClibc/include/linux/raid/md_u.h
-#opt/MACHINE-uClibc/include/linux/raid/multipath.h
-#opt/MACHINE-uClibc/include/linux/raid/raid0.h
-#opt/MACHINE-uClibc/include/linux/raid/raid1.h
-#opt/MACHINE-uClibc/include/linux/raid/raid5.h
-#opt/MACHINE-uClibc/include/linux/raid/xor.h
-#opt/MACHINE-uClibc/include/linux/random.h
-#opt/MACHINE-uClibc/include/linux/raw.h
-#opt/MACHINE-uClibc/include/linux/rbtree.h
-#opt/MACHINE-uClibc/include/linux/reboot.h
-#opt/MACHINE-uClibc/include/linux/reiserfs_acl.h
-#opt/MACHINE-uClibc/include/linux/reiserfs_fs.h
-#opt/MACHINE-uClibc/include/linux/reiserfs_xattr.h
-#opt/MACHINE-uClibc/include/linux/resource.h
-#opt/MACHINE-uClibc/include/linux/romfs_fs.h
-#opt/MACHINE-uClibc/include/linux/root_dev.h
-#opt/MACHINE-uClibc/include/linux/rose.h
-#opt/MACHINE-uClibc/include/linux/route.h
-#opt/MACHINE-uClibc/include/linux/rtc.h
-#opt/MACHINE-uClibc/include/linux/rtnetlink.h
-#opt/MACHINE-uClibc/include/linux/sc26198.h
-#opt/MACHINE-uClibc/include/linux/scc.h
-#opt/MACHINE-uClibc/include/linux/sched.h
-#opt/MACHINE-uClibc/include/linux/sctp.h
-#opt/MACHINE-uClibc/include/linux/scx200.h
-#opt/MACHINE-uClibc/include/linux/scx200_gpio.h
-#opt/MACHINE-uClibc/include/linux/sdla.h
-#opt/MACHINE-uClibc/include/linux/sdla_asy.h
-#opt/MACHINE-uClibc/include/linux/sdla_chdlc.h
-#opt/MACHINE-uClibc/include/linux/sdla_fr.h
-#opt/MACHINE-uClibc/include/linux/sdla_ppp.h
-#opt/MACHINE-uClibc/include/linux/sdla_x25.h
-#opt/MACHINE-uClibc/include/linux/sdladrv.h
-#opt/MACHINE-uClibc/include/linux/sdlapci.h
-#opt/MACHINE-uClibc/include/linux/sdlasfm.h
-#opt/MACHINE-uClibc/include/linux/securebits.h
-#opt/MACHINE-uClibc/include/linux/security.h
-#opt/MACHINE-uClibc/include/linux/selection.h
-#opt/MACHINE-uClibc/include/linux/selinux_netlink.h
-#opt/MACHINE-uClibc/include/linux/sem.h
-#opt/MACHINE-uClibc/include/linux/seqlock.h
-#opt/MACHINE-uClibc/include/linux/serial.h
-#opt/MACHINE-uClibc/include/linux/serial167.h
-#opt/MACHINE-uClibc/include/linux/serialP.h
-#opt/MACHINE-uClibc/include/linux/serial_8250.h
-#opt/MACHINE-uClibc/include/linux/serial_core.h
-#opt/MACHINE-uClibc/include/linux/serial_reg.h
-#opt/MACHINE-uClibc/include/linux/serio.h
-#opt/MACHINE-uClibc/include/linux/shm.h
-#opt/MACHINE-uClibc/include/linux/siginfo.h
-#opt/MACHINE-uClibc/include/linux/signal.h
-#opt/MACHINE-uClibc/include/linux/skbuff.h
-#opt/MACHINE-uClibc/include/linux/smb.h
-#opt/MACHINE-uClibc/include/linux/smb_fs.h
-#opt/MACHINE-uClibc/include/linux/smb_mount.h
-#opt/MACHINE-uClibc/include/linux/smbno.h
-#opt/MACHINE-uClibc/include/linux/smp_lock.h
-#opt/MACHINE-uClibc/include/linux/snmp.h
-#opt/MACHINE-uClibc/include/linux/socket.h
-#opt/MACHINE-uClibc/include/linux/sockios.h
-#opt/MACHINE-uClibc/include/linux/som.h
-#opt/MACHINE-uClibc/include/linux/sonet.h
-#opt/MACHINE-uClibc/include/linux/sonypi.h
-#opt/MACHINE-uClibc/include/linux/sound.h
-#opt/MACHINE-uClibc/include/linux/soundcard.h
-#opt/MACHINE-uClibc/include/linux/spinlock.h
-#opt/MACHINE-uClibc/include/linux/stallion.h
-#opt/MACHINE-uClibc/include/linux/stddef.h
-#opt/MACHINE-uClibc/include/linux/stringify.h
-#opt/MACHINE-uClibc/include/linux/sunrpc
-#opt/MACHINE-uClibc/include/linux/sunrpc/cache.h
-#opt/MACHINE-uClibc/include/linux/sunrpc/clnt.h
-#opt/MACHINE-uClibc/include/linux/sunrpc/debug.h
-#opt/MACHINE-uClibc/include/linux/sunrpc/gss_asn1.h
-#opt/MACHINE-uClibc/include/linux/sunrpc/gss_krb5.h
-#opt/MACHINE-uClibc/include/linux/sunrpc/gss_spkm3.h
-#opt/MACHINE-uClibc/include/linux/sunrpc/sched.h
-#opt/MACHINE-uClibc/include/linux/sunrpc/stats.h
-#opt/MACHINE-uClibc/include/linux/sunrpc/svc.h
-#opt/MACHINE-uClibc/include/linux/sunrpc/svcsock.h
-#opt/MACHINE-uClibc/include/linux/sunrpc/timer.h
-#opt/MACHINE-uClibc/include/linux/sunrpc/types.h
-#opt/MACHINE-uClibc/include/linux/sunrpc/xprt.h
-#opt/MACHINE-uClibc/include/linux/superhyway.h
-#opt/MACHINE-uClibc/include/linux/suspend.h
-#opt/MACHINE-uClibc/include/linux/swap.h
-#opt/MACHINE-uClibc/include/linux/swapops.h
-#opt/MACHINE-uClibc/include/linux/synclink.h
-#opt/MACHINE-uClibc/include/linux/sys.h
-#opt/MACHINE-uClibc/include/linux/syscalls.h
-#opt/MACHINE-uClibc/include/linux/sysctl.h
-#opt/MACHINE-uClibc/include/linux/sysdev.h
-#opt/MACHINE-uClibc/include/linux/sysfs.h
-#opt/MACHINE-uClibc/include/linux/sysrq.h
-#opt/MACHINE-uClibc/include/linux/sysv_fs.h
-#opt/MACHINE-uClibc/include/linux/tc_act
-#opt/MACHINE-uClibc/include/linux/tc_act/tc_defact.h
-#opt/MACHINE-uClibc/include/linux/tc_act/tc_gact.h
-#opt/MACHINE-uClibc/include/linux/tc_act/tc_ipt.h
-#opt/MACHINE-uClibc/include/linux/tc_act/tc_mirred.h
-#opt/MACHINE-uClibc/include/linux/tc_act/tc_pedit.h
-#opt/MACHINE-uClibc/include/linux/tc_ematch
-#opt/MACHINE-uClibc/include/linux/tc_ematch/tc_em_cmp.h
-#opt/MACHINE-uClibc/include/linux/tc_ematch/tc_em_meta.h
-#opt/MACHINE-uClibc/include/linux/tc_ematch/tc_em_nbyte.h
-#opt/MACHINE-uClibc/include/linux/tcp.h
-#opt/MACHINE-uClibc/include/linux/tcp_diag.h
-#opt/MACHINE-uClibc/include/linux/telephony.h
-#opt/MACHINE-uClibc/include/linux/termios.h
-#opt/MACHINE-uClibc/include/linux/threads.h
-#opt/MACHINE-uClibc/include/linux/ticable.h
-#opt/MACHINE-uClibc/include/linux/time.h
-#opt/MACHINE-uClibc/include/linux/times.h
-#opt/MACHINE-uClibc/include/linux/timex.h
-#opt/MACHINE-uClibc/include/linux/tiocl.h
-#opt/MACHINE-uClibc/include/linux/toshiba.h
-#opt/MACHINE-uClibc/include/linux/tty.h
-#opt/MACHINE-uClibc/include/linux/types.h
-#opt/MACHINE-uClibc/include/linux/udf_fs.h
-#opt/MACHINE-uClibc/include/linux/udf_fs_i.h
-#opt/MACHINE-uClibc/include/linux/udf_fs_sb.h
-#opt/MACHINE-uClibc/include/linux/udp.h
-#opt/MACHINE-uClibc/include/linux/ufs_fs.h
-#opt/MACHINE-uClibc/include/linux/uinput.h
-#opt/MACHINE-uClibc/include/linux/uio.h
-#opt/MACHINE-uClibc/include/linux/ultrasound.h
-#opt/MACHINE-uClibc/include/linux/umem.h
-#opt/MACHINE-uClibc/include/linux/un.h
-#opt/MACHINE-uClibc/include/linux/unistd.h
-#opt/MACHINE-uClibc/include/linux/usb.h
-#opt/MACHINE-uClibc/include/linux/usb_cdc.h
-#opt/MACHINE-uClibc/include/linux/usb_ch9.h
-#opt/MACHINE-uClibc/include/linux/usb_gadgetfs.h
-#opt/MACHINE-uClibc/include/linux/usbdevice_fs.h
-#opt/MACHINE-uClibc/include/linux/user.h
-#opt/MACHINE-uClibc/include/linux/utime.h
-#opt/MACHINE-uClibc/include/linux/uts.h
-#opt/MACHINE-uClibc/include/linux/utsname.h
-#opt/MACHINE-uClibc/include/linux/version.h
-#opt/MACHINE-uClibc/include/linux/video_decoder.h
-#opt/MACHINE-uClibc/include/linux/video_encoder.h
-#opt/MACHINE-uClibc/include/linux/videodev.h
-#opt/MACHINE-uClibc/include/linux/videodev2.h
-#opt/MACHINE-uClibc/include/linux/videotext.h
-#opt/MACHINE-uClibc/include/linux/vmalloc.h
-#opt/MACHINE-uClibc/include/linux/vt.h
-#opt/MACHINE-uClibc/include/linux/vt_buffer.h
-#opt/MACHINE-uClibc/include/linux/vt_kern.h
-#opt/MACHINE-uClibc/include/linux/wait.h
-#opt/MACHINE-uClibc/include/linux/wanpipe.h
-#opt/MACHINE-uClibc/include/linux/wanrouter.h
-#opt/MACHINE-uClibc/include/linux/watchdog.h
-#opt/MACHINE-uClibc/include/linux/wavefront.h
-#opt/MACHINE-uClibc/include/linux/wireless.h
-#opt/MACHINE-uClibc/include/linux/workqueue.h
-#opt/MACHINE-uClibc/include/linux/x25.h
-#opt/MACHINE-uClibc/include/linux/xattr.h
-#opt/MACHINE-uClibc/include/linux/xattr_acl.h
-#opt/MACHINE-uClibc/include/linux/xfrm.h
-#opt/MACHINE-uClibc/include/linux/yam.h
-#opt/MACHINE-uClibc/include/linux/zftape.h
-#opt/MACHINE-uClibc/include/linux/zorro.h
-#opt/MACHINE-uClibc/include/linux/zorro_ids.h
-#opt/MACHINE-uClibc/include/locale.h
-#opt/MACHINE-uClibc/include/malloc.h
-#opt/MACHINE-uClibc/include/math.h
-#opt/MACHINE-uClibc/include/memory.h
-#opt/MACHINE-uClibc/include/mntent.h
-#opt/MACHINE-uClibc/include/mqueue.h
-#opt/MACHINE-uClibc/include/net
-#opt/MACHINE-uClibc/include/net/ethernet.h
-#opt/MACHINE-uClibc/include/net/if.h
-#opt/MACHINE-uClibc/include/net/if_arp.h
-#opt/MACHINE-uClibc/include/net/if_packet.h
-#opt/MACHINE-uClibc/include/net/if_ppp.h
-#opt/MACHINE-uClibc/include/net/if_shaper.h
-#opt/MACHINE-uClibc/include/net/if_slip.h
-#opt/MACHINE-uClibc/include/net/ppp-comp.h
-#opt/MACHINE-uClibc/include/net/ppp_defs.h
-#opt/MACHINE-uClibc/include/net/route.h
-#opt/MACHINE-uClibc/include/netax25
-#opt/MACHINE-uClibc/include/netax25/ax25.h
-#opt/MACHINE-uClibc/include/netdb.h
-#opt/MACHINE-uClibc/include/neteconet
-#opt/MACHINE-uClibc/include/neteconet/ec.h
-#opt/MACHINE-uClibc/include/netinet
-#opt/MACHINE-uClibc/include/netinet/ether.h
-#opt/MACHINE-uClibc/include/netinet/icmp6.h
-#opt/MACHINE-uClibc/include/netinet/if_ether.h
-#opt/MACHINE-uClibc/include/netinet/if_fddi.h
-#opt/MACHINE-uClibc/include/netinet/if_tr.h
-#opt/MACHINE-uClibc/include/netinet/igmp.h
-#opt/MACHINE-uClibc/include/netinet/in.h
-#opt/MACHINE-uClibc/include/netinet/in_systm.h
-#opt/MACHINE-uClibc/include/netinet/ip.h
-#opt/MACHINE-uClibc/include/netinet/ip6.h
-#opt/MACHINE-uClibc/include/netinet/ip_fw.h
-#opt/MACHINE-uClibc/include/netinet/ip_icmp.h
-#opt/MACHINE-uClibc/include/netinet/ip_tcp.h
-#opt/MACHINE-uClibc/include/netinet/ip_udp.h
-#opt/MACHINE-uClibc/include/netinet/protocols.h
-#opt/MACHINE-uClibc/include/netinet/tcp.h
-#opt/MACHINE-uClibc/include/netinet/udp.h
-#opt/MACHINE-uClibc/include/netipx
-#opt/MACHINE-uClibc/include/netipx/ipx.h
-#opt/MACHINE-uClibc/include/netpacket
-#opt/MACHINE-uClibc/include/netpacket/packet.h
-#opt/MACHINE-uClibc/include/nl_types.h
-#opt/MACHINE-uClibc/include/obstack.h
-#opt/MACHINE-uClibc/include/paths.h
-#opt/MACHINE-uClibc/include/poll.h
-#opt/MACHINE-uClibc/include/printf.h
-#opt/MACHINE-uClibc/include/protocols
-#opt/MACHINE-uClibc/include/protocols/routed.h
-#opt/MACHINE-uClibc/include/protocols/rwhod.h
-#opt/MACHINE-uClibc/include/protocols/talkd.h
-#opt/MACHINE-uClibc/include/protocols/timed.h
-#opt/MACHINE-uClibc/include/pthread.h
-#opt/MACHINE-uClibc/include/pty.h
-#opt/MACHINE-uClibc/include/pwd.h
-#opt/MACHINE-uClibc/include/regex.h
-#opt/MACHINE-uClibc/include/regexp.h
-#opt/MACHINE-uClibc/include/resolv.h
-#opt/MACHINE-uClibc/include/rpc
-#opt/MACHINE-uClibc/include/rpc/auth.h
-#opt/MACHINE-uClibc/include/rpc/auth_des.h
-#opt/MACHINE-uClibc/include/rpc/auth_unix.h
-#opt/MACHINE-uClibc/include/rpc/clnt.h
-#opt/MACHINE-uClibc/include/rpc/des_crypt.h
-#opt/MACHINE-uClibc/include/rpc/key_prot.h
-#opt/MACHINE-uClibc/include/rpc/netdb.h
-#opt/MACHINE-uClibc/include/rpc/pmap_clnt.h
-#opt/MACHINE-uClibc/include/rpc/pmap_prot.h
-#opt/MACHINE-uClibc/include/rpc/pmap_rmt.h
-#opt/MACHINE-uClibc/include/rpc/rpc.h
-#opt/MACHINE-uClibc/include/rpc/rpc_des.h
-#opt/MACHINE-uClibc/include/rpc/rpc_msg.h
-#opt/MACHINE-uClibc/include/rpc/svc.h
-#opt/MACHINE-uClibc/include/rpc/svc_auth.h
-#opt/MACHINE-uClibc/include/rpc/types.h
-#opt/MACHINE-uClibc/include/rpc/xdr.h
-#opt/MACHINE-uClibc/include/sched.h
-#opt/MACHINE-uClibc/include/scsi
-#opt/MACHINE-uClibc/include/scsi/scsi.h
-#opt/MACHINE-uClibc/include/scsi/scsi_ioctl.h
-#opt/MACHINE-uClibc/include/scsi/sg.h
-#opt/MACHINE-uClibc/include/search.h
-#opt/MACHINE-uClibc/include/semaphore.h
-#opt/MACHINE-uClibc/include/setjmp.h
-#opt/MACHINE-uClibc/include/sgtty.h
-#opt/MACHINE-uClibc/include/shadow.h
-#opt/MACHINE-uClibc/include/signal.h
-#opt/MACHINE-uClibc/include/stdint.h
-#opt/MACHINE-uClibc/include/stdio.h
-#opt/MACHINE-uClibc/include/stdio_ext.h
-#opt/MACHINE-uClibc/include/stdlib.h
-#opt/MACHINE-uClibc/include/string.h
-#opt/MACHINE-uClibc/include/strings.h
-#opt/MACHINE-uClibc/include/sys
-#opt/MACHINE-uClibc/include/sys/bitypes.h
-#opt/MACHINE-uClibc/include/sys/cdefs.h
-#opt/MACHINE-uClibc/include/sys/debugreg.h
-#opt/MACHINE-uClibc/include/sys/dir.h
-#opt/MACHINE-uClibc/include/sys/elf.h
-#opt/MACHINE-uClibc/include/sys/epoll.h
-#opt/MACHINE-uClibc/include/sys/errno.h
-#opt/MACHINE-uClibc/include/sys/fcntl.h
-#opt/MACHINE-uClibc/include/sys/file.h
-#opt/MACHINE-uClibc/include/sys/fsuid.h
-#opt/MACHINE-uClibc/include/sys/io.h
-#opt/MACHINE-uClibc/include/sys/ioctl.h
-#opt/MACHINE-uClibc/include/sys/ipc.h
-#opt/MACHINE-uClibc/include/sys/kd.h
-#opt/MACHINE-uClibc/include/sys/kdaemon.h
-#opt/MACHINE-uClibc/include/sys/klog.h
-#opt/MACHINE-uClibc/include/sys/mman.h
-#opt/MACHINE-uClibc/include/sys/mount.h
-#opt/MACHINE-uClibc/include/sys/msg.h
-#opt/MACHINE-uClibc/include/sys/mtio.h
-#opt/MACHINE-uClibc/include/sys/param.h
-#opt/MACHINE-uClibc/include/sys/perm.h
-#opt/MACHINE-uClibc/include/sys/personality.h
-#opt/MACHINE-uClibc/include/sys/poll.h
-#opt/MACHINE-uClibc/include/sys/prctl.h
-#opt/MACHINE-uClibc/include/sys/procfs.h
-#opt/MACHINE-uClibc/include/sys/ptrace.h
-#opt/MACHINE-uClibc/include/sys/queue.h
-#opt/MACHINE-uClibc/include/sys/quota.h
-#opt/MACHINE-uClibc/include/sys/reboot.h
-#opt/MACHINE-uClibc/include/sys/reg.h
-#opt/MACHINE-uClibc/include/sys/resource.h
-#opt/MACHINE-uClibc/include/sys/select.h
-#opt/MACHINE-uClibc/include/sys/sem.h
-#opt/MACHINE-uClibc/include/sys/sendfile.h
-#opt/MACHINE-uClibc/include/sys/shm.h
-#opt/MACHINE-uClibc/include/sys/signal.h
-#opt/MACHINE-uClibc/include/sys/socket.h
-#opt/MACHINE-uClibc/include/sys/socketvar.h
-#opt/MACHINE-uClibc/include/sys/soundcard.h
-#opt/MACHINE-uClibc/include/sys/stat.h
-#opt/MACHINE-uClibc/include/sys/statfs.h
-#opt/MACHINE-uClibc/include/sys/statvfs.h
-#opt/MACHINE-uClibc/include/sys/swap.h
-#opt/MACHINE-uClibc/include/sys/syscall.h
-#opt/MACHINE-uClibc/include/sys/sysctl.h
-#opt/MACHINE-uClibc/include/sys/sysinfo.h
-#opt/MACHINE-uClibc/include/sys/syslog.h
-#opt/MACHINE-uClibc/include/sys/sysmacros.h
-#opt/MACHINE-uClibc/include/sys/termios.h
-#opt/MACHINE-uClibc/include/sys/time.h
-#opt/MACHINE-uClibc/include/sys/timeb.h
-#opt/MACHINE-uClibc/include/sys/times.h
-#opt/MACHINE-uClibc/include/sys/timex.h
-#opt/MACHINE-uClibc/include/sys/ttydefaults.h
-#opt/MACHINE-uClibc/include/sys/types.h
-#opt/MACHINE-uClibc/include/sys/ucontext.h
-#opt/MACHINE-uClibc/include/sys/uio.h
-#opt/MACHINE-uClibc/include/sys/un.h
-#opt/MACHINE-uClibc/include/sys/unistd.h
-#opt/MACHINE-uClibc/include/sys/user.h
-#opt/MACHINE-uClibc/include/sys/ustat.h
-#opt/MACHINE-uClibc/include/sys/utsname.h
-#opt/MACHINE-uClibc/include/sys/vfs.h
-#opt/MACHINE-uClibc/include/sys/vm86.h
-#opt/MACHINE-uClibc/include/sys/vt.h
-#opt/MACHINE-uClibc/include/sys/wait.h
-#opt/MACHINE-uClibc/include/sys/xattr.h
-#opt/MACHINE-uClibc/include/syscall.h
-#opt/MACHINE-uClibc/include/sysexits.h
-#opt/MACHINE-uClibc/include/syslog.h
-#opt/MACHINE-uClibc/include/tar.h
-#opt/MACHINE-uClibc/include/termio.h
-#opt/MACHINE-uClibc/include/termios.h
-#opt/MACHINE-uClibc/include/tgmath.h
-#opt/MACHINE-uClibc/include/thread_db.h
-#opt/MACHINE-uClibc/include/time.h
-#opt/MACHINE-uClibc/include/ttyent.h
-#opt/MACHINE-uClibc/include/ucontext.h
-#opt/MACHINE-uClibc/include/ulimit.h
-#opt/MACHINE-uClibc/include/unistd.h
-#opt/MACHINE-uClibc/include/ustat.h
-#opt/MACHINE-uClibc/include/utime.h
-#opt/MACHINE-uClibc/include/utmp.h
-#opt/MACHINE-uClibc/include/values.h
-#opt/MACHINE-uClibc/include/wait.h
-#opt/MACHINE-uClibc/include/wchar.h
-#opt/MACHINE-uClibc/include/wctype.h
-#opt/MACHINE-uClibc/include/xlocale.h
-#opt/MACHINE-uClibc/lib/Scrt1.o
-#opt/MACHINE-uClibc/lib/crt1.o
-#opt/MACHINE-uClibc/lib/crti.o
-#opt/MACHINE-uClibc/lib/crtn.o
-#opt/MACHINE-uClibc/lib/ld-uClibc-0.9.28.so
-#opt/MACHINE-uClibc/lib/ld-uClibc.so.0
-#opt/MACHINE-uClibc/lib/ldscripts
-#opt/MACHINE-uClibc/lib/ldscripts/elf_i386.x
-#opt/MACHINE-uClibc/lib/ldscripts/elf_i386.xbn
-#opt/MACHINE-uClibc/lib/ldscripts/elf_i386.xc
-#opt/MACHINE-uClibc/lib/ldscripts/elf_i386.xd
-#opt/MACHINE-uClibc/lib/ldscripts/elf_i386.xdc
-#opt/MACHINE-uClibc/lib/ldscripts/elf_i386.xdw
-#opt/MACHINE-uClibc/lib/ldscripts/elf_i386.xn
-#opt/MACHINE-uClibc/lib/ldscripts/elf_i386.xr
-#opt/MACHINE-uClibc/lib/ldscripts/elf_i386.xs
-#opt/MACHINE-uClibc/lib/ldscripts/elf_i386.xsc
-#opt/MACHINE-uClibc/lib/ldscripts/elf_i386.xsw
-#opt/MACHINE-uClibc/lib/ldscripts/elf_i386.xu
-#opt/MACHINE-uClibc/lib/ldscripts/elf_i386.xw
-#opt/MACHINE-uClibc/lib/ldscripts/i386linux.x
-#opt/MACHINE-uClibc/lib/ldscripts/i386linux.xbn
-#opt/MACHINE-uClibc/lib/ldscripts/i386linux.xn
-#opt/MACHINE-uClibc/lib/ldscripts/i386linux.xr
-#opt/MACHINE-uClibc/lib/ldscripts/i386linux.xu
-#opt/MACHINE-uClibc/lib/libc.a
-#opt/MACHINE-uClibc/lib/libc.so
-#opt/MACHINE-uClibc/lib/libc.so.0
-#opt/MACHINE-uClibc/lib/libc_pic.a
-#opt/MACHINE-uClibc/lib/libcrypt-0.9.28.so
-#opt/MACHINE-uClibc/lib/libcrypt.a
-#opt/MACHINE-uClibc/lib/libcrypt.so
-#opt/MACHINE-uClibc/lib/libcrypt.so.0
-#opt/MACHINE-uClibc/lib/libcrypt_pic.a
-#opt/MACHINE-uClibc/lib/libdl-0.9.28.so
-#opt/MACHINE-uClibc/lib/libdl.a
-#opt/MACHINE-uClibc/lib/libdl.so
-#opt/MACHINE-uClibc/lib/libdl.so.0
-#opt/MACHINE-uClibc/lib/libm-0.9.28.so
-#opt/MACHINE-uClibc/lib/libm.a
-#opt/MACHINE-uClibc/lib/libm.so
-#opt/MACHINE-uClibc/lib/libm.so.0
-#opt/MACHINE-uClibc/lib/libm_pic.a
-#opt/MACHINE-uClibc/lib/libnsl-0.9.28.so
-#opt/MACHINE-uClibc/lib/libnsl.a
-#opt/MACHINE-uClibc/lib/libnsl.so
-#opt/MACHINE-uClibc/lib/libnsl.so.0
-#opt/MACHINE-uClibc/lib/libnsl_pic.a
-#opt/MACHINE-uClibc/lib/libpthread-0.9.28.so
-#opt/MACHINE-uClibc/lib/libpthread.a
-#opt/MACHINE-uClibc/lib/libpthread.so
-#opt/MACHINE-uClibc/lib/libpthread.so.0
-#opt/MACHINE-uClibc/lib/libpthread_pic.a
-#opt/MACHINE-uClibc/lib/libresolv-0.9.28.so
-#opt/MACHINE-uClibc/lib/libresolv.a
-#opt/MACHINE-uClibc/lib/libresolv.so
-#opt/MACHINE-uClibc/lib/libresolv.so.0
-#opt/MACHINE-uClibc/lib/libresolv_pic.a
-#opt/MACHINE-uClibc/lib/librt-0.9.28.so
-#opt/MACHINE-uClibc/lib/librt.a
-#opt/MACHINE-uClibc/lib/librt.so
-#opt/MACHINE-uClibc/lib/librt.so.0
-#opt/MACHINE-uClibc/lib/librt_pic.a
-#opt/MACHINE-uClibc/lib/libuClibc-0.9.28.so
-#opt/MACHINE-uClibc/lib/libutil-0.9.28.so
-#opt/MACHINE-uClibc/lib/libutil.a
-#opt/MACHINE-uClibc/lib/libutil.so
-#opt/MACHINE-uClibc/lib/libutil.so.0
-#opt/MACHINE-uClibc/lib/libutil_pic.a
index 5e5cb5a0d8b9b2a9e2d8db4d01c32f3a548413ed..bacd0cbbe3c9323379b9cd1f28f169abe8f002ab 100644 (file)
@@ -1,25 +1,18 @@
 etc/modprobe.d/blacklist
 etc/scsi_id.config
 etc/udev
-#etc/udev/dvb.sh
 #etc/udev/rules.d
-#etc/udev/rules.d/05-udev-early.rules
-#etc/udev/rules.d/10-dvb.rules
-#etc/udev/rules.d/25-lfs.rules
-#etc/udev/rules.d/26-modprobe.rules
-#etc/udev/rules.d/27-firmware.rules
 #etc/udev/rules.d/30-persistent-network.rules
-#etc/udev/rules.d/55-scsi-cdrom.rules
-#etc/udev/rules.d/60-persistent-storage.rules
-#etc/udev/rules.d/81-cdrom.rules
 #etc/udev/udev.conf
 #lib/firmware
-lib/firmware/dirinfo
-lib/libvolume_id.so.0
-lib/libvolume_id.so.0.85.0
+lib/libudev.so.0
+lib/libudev.so.0.2.0
+lib/libvolume_id.so.1
+lib/libvolume_id.so.1.1.0
 lib/udev
 #lib/udev/ata_id
 #lib/udev/cdrom_id
+#lib/udev/collect
 #lib/udev/create_floppy_devices
 #lib/udev/devices
 #lib/udev/devices/core
@@ -31,27 +24,39 @@ lib/udev
 #lib/udev/devices/stdin
 #lib/udev/devices/stdout
 #lib/udev/edd_id
+#lib/udev/enable_codel
 #lib/udev/firmware.sh
+#lib/udev/fstab_import
 #lib/udev/path_id
+#lib/udev/rule_generator.functions
 #lib/udev/rules.d
+#lib/udev/rules.d/25-alsa.rules
+#lib/udev/rules.d/50-firmware.rules
 #lib/udev/rules.d/50-udev-default.rules
 #lib/udev/rules.d/60-cdrom_id.rules
 #lib/udev/rules.d/60-persistent-input.rules
+#lib/udev/rules.d/60-persistent-serial.rules
 #lib/udev/rules.d/60-persistent-storage-tape.rules
 #lib/udev/rules.d/60-persistent-storage.rules
 #lib/udev/rules.d/60-persistent-v4l.rules
 #lib/udev/rules.d/61-persistent-storage-edd.rules
+#lib/udev/rules.d/75-cd-aliases-generator.rules
+#lib/udev/rules.d/79-fstab_import.rules
 #lib/udev/rules.d/80-drivers.rules
 #lib/udev/rules.d/95-udev-late.rules
+#lib/udev/rules.d/99-codel.rules
 #lib/udev/scsi_id
 #lib/udev/usb_id
 #lib/udev/vol_id
+#lib/udev/write_cd_rules
+#lib/udev/write_net_rules
 sbin/udevadm
 sbin/udevd
-sbin/udevsettle
-usr/bin/udevinfo
+#usr/include/libudev.h
 #usr/include/libvolume_id.h
+usr/lib/libudev.so
 usr/lib/libvolume_id.so
+#usr/lib/pkgconfig/libudev.pc
 #usr/lib/pkgconfig/libvolume_id.pc
 #usr/share/man/man7/udev.7
 #usr/share/man/man8/ata_id.8
@@ -62,4 +67,5 @@ usr/lib/libvolume_id.so
 #usr/share/man/man8/scsi_id.8
 #usr/share/man/man8/udevadm.8
 #usr/share/man/man8/udevd.8
+#usr/share/man/man8/usb_id.8
 #usr/share/man/man8/vol_id.8
index d5b0f475c865397d222977590471bec0b21f3007..3858b3964fba81e0cf84cbb0b8a27527053d2f16 100644 (file)
@@ -1,4 +1,5 @@
 #usr/man/man8/lsusb.8
 usr/sbin/lsusb
 usr/sbin/update-usbids
+#usr/share/hwdata
 #usr/share/hwdata/usb.ids
index ef419c5901b5f7753316a051f0e4e1c04fd1b8d4..a8fa20bebd7638b875770befa9a2d0b0f2bc062a 100644 (file)
@@ -30,18 +30,18 @@ usr/bin/xzmore
 #usr/include/lzma/container.h
 #usr/include/lzma/delta.h
 #usr/include/lzma/filter.h
+#usr/include/lzma/hardware.h
 #usr/include/lzma/index.h
 #usr/include/lzma/index_hash.h
 #usr/include/lzma/lzma.h
 #usr/include/lzma/stream_flags.h
-#usr/include/lzma/subblock.h
 #usr/include/lzma/version.h
 #usr/include/lzma/vli.h
 #usr/lib/liblzma.a
 #usr/lib/liblzma.la
 usr/lib/liblzma.so
-usr/lib/liblzma.so.0
-usr/lib/liblzma.so.0.0.0
+usr/lib/liblzma.so.5
+usr/lib/liblzma.so.5.0.4
 #usr/lib/pkgconfig/liblzma.pc
 #usr/share/doc/xz
 #usr/share/doc/xz/AUTHORS
@@ -51,10 +51,24 @@ usr/lib/liblzma.so.0.0.0
 #usr/share/doc/xz/README
 #usr/share/doc/xz/THANKS
 #usr/share/doc/xz/TODO
+#usr/share/doc/xz/examples
+#usr/share/doc/xz/examples/00_README.txt
+#usr/share/doc/xz/examples/01_compress_easy.c
+#usr/share/doc/xz/examples/02_decompress.c
+#usr/share/doc/xz/examples/03_compress_custom.c
+#usr/share/doc/xz/examples/Makefile
+#usr/share/doc/xz/examples_old
+#usr/share/doc/xz/examples_old/xz_pipe_comp.c
+#usr/share/doc/xz/examples_old/xz_pipe_decomp.c
 #usr/share/doc/xz/faq.txt
 #usr/share/doc/xz/history.txt
 #usr/share/doc/xz/lzma-file-format.txt
 #usr/share/doc/xz/xz-file-format.txt
+#usr/share/locale/cs/LC_MESSAGES/xz.mo
+#usr/share/locale/de/LC_MESSAGES/xz.mo
+#usr/share/locale/fr/LC_MESSAGES/xz.mo
+#usr/share/locale/it/LC_MESSAGES/xz.mo
+#usr/share/locale/pl/LC_MESSAGES/xz.mo
 #usr/share/man/man1/lzcat.1
 #usr/share/man/man1/lzcmp.1
 #usr/share/man/man1/lzdiff.1
index b275de54b94f24af488d45e6319563d9243794b0..13cf704415be35fb6442878cd863bb6bfd400700 100644 (file)
@@ -1,7 +1,10 @@
+lib/libz.so
 lib/libz.so.1
-lib/libz.so.1.2.3
+lib/libz.so.1.2.7
 #usr/include/zconf.h
 #usr/include/zlib.h
 #usr/lib/libz.a
-usr/lib/libz.so
+#usr/lib/libz.so
+#usr/lib/pkgconfig
+#usr/lib/pkgconfig/zlib.pc
 #usr/share/man/man3/zlib.3
diff --git a/config/rootfiles/core/66/exclude b/config/rootfiles/core/66/exclude
new file mode 100644 (file)
index 0000000..0b54d05
--- /dev/null
@@ -0,0 +1,15 @@
+srv/web/ipfire/html/proxy.pac
+etc/udev/rules.d/30-persistent-network.rules
+etc/collectd.custom
+etc/shadow
+etc/ipsec.conf
+etc/ipsec.secrets
+etc/ipsec.user.conf
+etc/ipsec.user.secrets
+var/updatecache
+etc/localtime
+var/ipfire/ovpn
+etc/ssh/ssh_config
+etc/ssh/sshd_config
+etc/ssl/openssl.cnf
+var/state/dhcp/dhcpd.leases
diff --git a/config/rootfiles/core/66/filelists/GeoIP b/config/rootfiles/core/66/filelists/GeoIP
new file mode 100644 (file)
index 0000000..0258236
--- /dev/null
@@ -0,0 +1 @@
+usr/local/share/GeoIP/GeoIP.dat
diff --git a/config/rootfiles/core/66/filelists/armv5tel/binutils b/config/rootfiles/core/66/filelists/armv5tel/binutils
new file mode 120000 (symlink)
index 0000000..ac971f9
--- /dev/null
@@ -0,0 +1 @@
+../../../../common/armv5tel/binutils
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/armv5tel/dracut b/config/rootfiles/core/66/filelists/armv5tel/dracut
new file mode 120000 (symlink)
index 0000000..861df3f
--- /dev/null
@@ -0,0 +1 @@
+../../../../common/armv5tel/dracut
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/armv5tel/gcc b/config/rootfiles/core/66/filelists/armv5tel/gcc
new file mode 120000 (symlink)
index 0000000..84f7b93
--- /dev/null
@@ -0,0 +1 @@
+../../../../common/armv5tel/gcc
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/armv5tel/glibc b/config/rootfiles/core/66/filelists/armv5tel/glibc
new file mode 120000 (symlink)
index 0000000..4c70d72
--- /dev/null
@@ -0,0 +1 @@
+../../../../common/armv5tel/glibc
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/armv5tel/linux-kirkwood b/config/rootfiles/core/66/filelists/armv5tel/linux-kirkwood
new file mode 120000 (symlink)
index 0000000..7217107
--- /dev/null
@@ -0,0 +1 @@
+../../../../common/armv5tel/linux-kirkwood
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/armv5tel/linux-omap b/config/rootfiles/core/66/filelists/armv5tel/linux-omap
new file mode 120000 (symlink)
index 0000000..50bf786
--- /dev/null
@@ -0,0 +1 @@
+../../../../common/armv5tel/linux-omap
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/armv5tel/linux-rpi b/config/rootfiles/core/66/filelists/armv5tel/linux-rpi
new file mode 120000 (symlink)
index 0000000..a651a49
--- /dev/null
@@ -0,0 +1 @@
+../../../../common/armv5tel/linux-rpi
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/armv5tel/rpi-firmware b/config/rootfiles/core/66/filelists/armv5tel/rpi-firmware
new file mode 120000 (symlink)
index 0000000..428fdf8
--- /dev/null
@@ -0,0 +1 @@
+../../../../common/armv5tel/rpi-firmware
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/armv5tel/u-boot b/config/rootfiles/core/66/filelists/armv5tel/u-boot
new file mode 120000 (symlink)
index 0000000..3df31a8
--- /dev/null
@@ -0,0 +1 @@
+../../../../common/armv5tel/u-boot
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/armv5tel/util-linux b/config/rootfiles/core/66/filelists/armv5tel/util-linux
new file mode 120000 (symlink)
index 0000000..2596908
--- /dev/null
@@ -0,0 +1 @@
+../../../../common/armv5tel/util-linux
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/autoconf b/config/rootfiles/core/66/filelists/autoconf
new file mode 120000 (symlink)
index 0000000..aa39ce6
--- /dev/null
@@ -0,0 +1 @@
+../../../common/autoconf
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/automake b/config/rootfiles/core/66/filelists/automake
new file mode 120000 (symlink)
index 0000000..df3ee42
--- /dev/null
@@ -0,0 +1 @@
+../../../common/automake
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/bash b/config/rootfiles/core/66/filelists/bash
new file mode 120000 (symlink)
index 0000000..de970cb
--- /dev/null
@@ -0,0 +1 @@
+../../../common/bash
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/bridge-utils b/config/rootfiles/core/66/filelists/bridge-utils
new file mode 120000 (symlink)
index 0000000..3dee211
--- /dev/null
@@ -0,0 +1 @@
+../../../common/bridge-utils
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/cairo b/config/rootfiles/core/66/filelists/cairo
new file mode 120000 (symlink)
index 0000000..bf48d25
--- /dev/null
@@ -0,0 +1 @@
+../../../common/cairo
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/capi4k-utils b/config/rootfiles/core/66/filelists/capi4k-utils
new file mode 120000 (symlink)
index 0000000..82982c4
--- /dev/null
@@ -0,0 +1 @@
+../../../common/capi4k-utils
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/cmake b/config/rootfiles/core/66/filelists/cmake
new file mode 120000 (symlink)
index 0000000..491d25f
--- /dev/null
@@ -0,0 +1 @@
+../../../common/cmake
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/collectd b/config/rootfiles/core/66/filelists/collectd
new file mode 120000 (symlink)
index 0000000..871b32f
--- /dev/null
@@ -0,0 +1 @@
+../../../common/collectd
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/compat-wireless b/config/rootfiles/core/66/filelists/compat-wireless
new file mode 120000 (symlink)
index 0000000..5b5ac9e
--- /dev/null
@@ -0,0 +1 @@
+../../../common/compat-wireless
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/coreutils b/config/rootfiles/core/66/filelists/coreutils
new file mode 120000 (symlink)
index 0000000..7351ed2
--- /dev/null
@@ -0,0 +1 @@
+../../../common/coreutils
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/curl b/config/rootfiles/core/66/filelists/curl
new file mode 120000 (symlink)
index 0000000..4b84bef
--- /dev/null
@@ -0,0 +1 @@
+../../../common/curl
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/cyrus-sasl b/config/rootfiles/core/66/filelists/cyrus-sasl
new file mode 120000 (symlink)
index 0000000..bb51b4c
--- /dev/null
@@ -0,0 +1 @@
+../../../common/cyrus-sasl
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/daq b/config/rootfiles/core/66/filelists/daq
new file mode 120000 (symlink)
index 0000000..d0e0956
--- /dev/null
@@ -0,0 +1 @@
+../../../common/daq
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/dejavu-fonts-ttf b/config/rootfiles/core/66/filelists/dejavu-fonts-ttf
new file mode 120000 (symlink)
index 0000000..0007a8b
--- /dev/null
@@ -0,0 +1 @@
+../../../common/dejavu-fonts-ttf
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/dhcp b/config/rootfiles/core/66/filelists/dhcp
new file mode 120000 (symlink)
index 0000000..32d8da4
--- /dev/null
@@ -0,0 +1 @@
+../../../common/dhcp
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/dvb-firmwares b/config/rootfiles/core/66/filelists/dvb-firmwares
new file mode 120000 (symlink)
index 0000000..69d0cdc
--- /dev/null
@@ -0,0 +1 @@
+../../../common/dvb-firmwares
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/e2fsprogs b/config/rootfiles/core/66/filelists/e2fsprogs
new file mode 120000 (symlink)
index 0000000..37b55de
--- /dev/null
@@ -0,0 +1 @@
+../../../common/e2fsprogs
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/file b/config/rootfiles/core/66/filelists/file
new file mode 120000 (symlink)
index 0000000..0c60e43
--- /dev/null
@@ -0,0 +1 @@
+../../../common/file
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/files b/config/rootfiles/core/66/filelists/files
new file mode 100644 (file)
index 0000000..d923c5b
--- /dev/null
@@ -0,0 +1,39 @@
+etc/httpd/conf/vhosts.d/ipfire-interface-ssl.conf
+etc/issue
+etc/rc.d/init.d/firewall
+etc/rc.d/init.d/fsresize
+etc/rc.d/init.d/halt
+etc/rc.d/init.d/mountfs
+etc/rc.d/init.d/network
+etc/rc.d/init.d/partresize
+etc/rc.d/init.d/reboot
+etc/rc.d/init.d/sendsignals
+etc/rc.d/init.d/setclock
+etc/rc.d/init.d/tmpfs
+etc/rc.d/init.d/udev
+etc/rc.d/init.d/udev_retry
+etc/rc.d/rc0.d/K47setclock
+etc/rc.d/rc6.d/K47setclock
+etc/securetty
+etc/sysctl.conf
+etc/system-release
+opt/pakfire/db/core/mine
+opt/pakfire/etc/pakfire.conf
+opt/pakfire/lib/functions.sh
+srv/web/ipfire/cgi-bin/credits.cgi
+srv/web/ipfire/cgi-bin/ids.cgi
+srv/web/ipfire/cgi-bin/logs.cgi/calamaris.dat
+srv/web/ipfire/cgi-bin/ovpnmain.cgi
+srv/web/ipfire/cgi-bin/qos.cgi
+srv/web/ipfire/cgi-bin/services.cgi
+srv/web/ipfire/cgi-bin/updatexlrator.cgi
+srv/web/ipfire/cgi-bin/vpnmain.cgi
+usr/bin/watch
+usr/local/bin/readhash
+usr/local/bin/scanhd
+usr/sbin/ovpn-ccd-convert
+var/ipfire/backup/include
+var/ipfire/general-functions.pl
+var/ipfire/langs
+var/ipfire/outgoing/bin/outgoingfw.pl
+var/ipfire/qos/bin/makeqosscripts.pl
diff --git a/config/rootfiles/core/66/filelists/fontconfig b/config/rootfiles/core/66/filelists/fontconfig
new file mode 120000 (symlink)
index 0000000..6daeffd
--- /dev/null
@@ -0,0 +1 @@
+../../../common/fontconfig
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/gawk b/config/rootfiles/core/66/filelists/gawk
new file mode 120000 (symlink)
index 0000000..a3bbe32
--- /dev/null
@@ -0,0 +1 @@
+../../../common/gawk
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/gettext b/config/rootfiles/core/66/filelists/gettext
new file mode 120000 (symlink)
index 0000000..b6c6c6f
--- /dev/null
@@ -0,0 +1 @@
+../../../common/gettext
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/glib b/config/rootfiles/core/66/filelists/glib
new file mode 120000 (symlink)
index 0000000..4466574
--- /dev/null
@@ -0,0 +1 @@
+../../../common/glib
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/gmp b/config/rootfiles/core/66/filelists/gmp
new file mode 120000 (symlink)
index 0000000..8662a89
--- /dev/null
@@ -0,0 +1 @@
+../../../common/gmp
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/gmp-compat b/config/rootfiles/core/66/filelists/gmp-compat
new file mode 120000 (symlink)
index 0000000..10093cd
--- /dev/null
@@ -0,0 +1 @@
+../../../common/gmp-compat
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/gnupg b/config/rootfiles/core/66/filelists/gnupg
new file mode 120000 (symlink)
index 0000000..a1a1564
--- /dev/null
@@ -0,0 +1 @@
+../../../common/gnupg
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/grep b/config/rootfiles/core/66/filelists/grep
new file mode 120000 (symlink)
index 0000000..ab5ef8b
--- /dev/null
@@ -0,0 +1 @@
+../../../common/grep
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/hdparm b/config/rootfiles/core/66/filelists/hdparm
new file mode 120000 (symlink)
index 0000000..b644751
--- /dev/null
@@ -0,0 +1 @@
+../../../common/hdparm
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/i586/acpi-init b/config/rootfiles/core/66/filelists/i586/acpi-init
new file mode 100644 (file)
index 0000000..982638a
--- /dev/null
@@ -0,0 +1,4 @@
+etc/rc.d/init.d/acpid
+etc/rc.d/rc0.d/K87acpid
+etc/rc.d/rc3.d/S12acpid
+etc/rc.d/rc6.d/K87acpid
diff --git a/config/rootfiles/core/66/filelists/i586/acpid b/config/rootfiles/core/66/filelists/i586/acpid
new file mode 120000 (symlink)
index 0000000..21d36ee
--- /dev/null
@@ -0,0 +1 @@
+../../../../common/i586/acpid
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/i586/binutils b/config/rootfiles/core/66/filelists/i586/binutils
new file mode 120000 (symlink)
index 0000000..78695d7
--- /dev/null
@@ -0,0 +1 @@
+../../../../common/i586/binutils
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/i586/dracut b/config/rootfiles/core/66/filelists/i586/dracut
new file mode 120000 (symlink)
index 0000000..9a09010
--- /dev/null
@@ -0,0 +1 @@
+../../../../common/i586/dracut
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/i586/gcc b/config/rootfiles/core/66/filelists/i586/gcc
new file mode 120000 (symlink)
index 0000000..ba328e3
--- /dev/null
@@ -0,0 +1 @@
+../../../../common/i586/gcc
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/i586/glibc b/config/rootfiles/core/66/filelists/i586/glibc
new file mode 120000 (symlink)
index 0000000..943021f
--- /dev/null
@@ -0,0 +1 @@
+../../../../common/i586/glibc
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/i586/grub b/config/rootfiles/core/66/filelists/i586/grub
new file mode 120000 (symlink)
index 0000000..feb236a
--- /dev/null
@@ -0,0 +1 @@
+../../../../common/i586/grub
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/i586/linux b/config/rootfiles/core/66/filelists/i586/linux
new file mode 120000 (symlink)
index 0000000..693ec4b
--- /dev/null
@@ -0,0 +1 @@
+../../../../common/i586/linux
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/i586/strongswan-padlock b/config/rootfiles/core/66/filelists/i586/strongswan-padlock
new file mode 120000 (symlink)
index 0000000..2412824
--- /dev/null
@@ -0,0 +1 @@
+../../../../common/i586/strongswan-padlock
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/i586/util-linux b/config/rootfiles/core/66/filelists/i586/util-linux
new file mode 120000 (symlink)
index 0000000..c973106
--- /dev/null
@@ -0,0 +1 @@
+../../../../common/i586/util-linux
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/inetutils b/config/rootfiles/core/66/filelists/inetutils
new file mode 120000 (symlink)
index 0000000..bcd329b
--- /dev/null
@@ -0,0 +1 @@
+../../../common/inetutils
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/iproute2 b/config/rootfiles/core/66/filelists/iproute2
new file mode 120000 (symlink)
index 0000000..05f0f71
--- /dev/null
@@ -0,0 +1 @@
+../../../common/iproute2
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/iptables b/config/rootfiles/core/66/filelists/iptables
new file mode 120000 (symlink)
index 0000000..8caf12b
--- /dev/null
@@ -0,0 +1 @@
+../../../common/iptables
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/kbd b/config/rootfiles/core/66/filelists/kbd
new file mode 120000 (symlink)
index 0000000..9b85839
--- /dev/null
@@ -0,0 +1 @@
+../../../common/kbd
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/less b/config/rootfiles/core/66/filelists/less
new file mode 120000 (symlink)
index 0000000..65c0e07
--- /dev/null
@@ -0,0 +1 @@
+../../../common/less
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/libffi b/config/rootfiles/core/66/filelists/libffi
new file mode 120000 (symlink)
index 0000000..c391acd
--- /dev/null
@@ -0,0 +1 @@
+../../../common/libffi
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/libnl b/config/rootfiles/core/66/filelists/libnl
new file mode 120000 (symlink)
index 0000000..7181849
--- /dev/null
@@ -0,0 +1 @@
+../../../common/libnl
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/libsigc++ b/config/rootfiles/core/66/filelists/libsigc++
new file mode 120000 (symlink)
index 0000000..51f4c75
--- /dev/null
@@ -0,0 +1 @@
+../../../common/libsigc++
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/libtool b/config/rootfiles/core/66/filelists/libtool
new file mode 120000 (symlink)
index 0000000..54f5666
--- /dev/null
@@ -0,0 +1 @@
+../../../common/libtool
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/linux-atm b/config/rootfiles/core/66/filelists/linux-atm
new file mode 120000 (symlink)
index 0000000..8adccaf
--- /dev/null
@@ -0,0 +1 @@
+../../../common/linux-atm
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/linux-firmware b/config/rootfiles/core/66/filelists/linux-firmware
new file mode 120000 (symlink)
index 0000000..4bf91bc
--- /dev/null
@@ -0,0 +1 @@
+../../../common/linux-firmware
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/m4 b/config/rootfiles/core/66/filelists/m4
new file mode 120000 (symlink)
index 0000000..3f009cc
--- /dev/null
@@ -0,0 +1 @@
+../../../common/m4
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/mISDNuser b/config/rootfiles/core/66/filelists/mISDNuser
new file mode 120000 (symlink)
index 0000000..78537d4
--- /dev/null
@@ -0,0 +1 @@
+../../../common/mISDNuser
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/man b/config/rootfiles/core/66/filelists/man
new file mode 120000 (symlink)
index 0000000..b04d65c
--- /dev/null
@@ -0,0 +1 @@
+../../../common/man
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/misc-progs b/config/rootfiles/core/66/filelists/misc-progs
new file mode 120000 (symlink)
index 0000000..7223cad
--- /dev/null
@@ -0,0 +1 @@
+../../../common/misc-progs
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/mpfr b/config/rootfiles/core/66/filelists/mpfr
new file mode 120000 (symlink)
index 0000000..c8468bf
--- /dev/null
@@ -0,0 +1 @@
+../../../common/mpfr
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/ncurses b/config/rootfiles/core/66/filelists/ncurses
new file mode 120000 (symlink)
index 0000000..512faef
--- /dev/null
@@ -0,0 +1 @@
+../../../common/ncurses
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/newt b/config/rootfiles/core/66/filelists/newt
new file mode 120000 (symlink)
index 0000000..fb3eb20
--- /dev/null
@@ -0,0 +1 @@
+../../../common/newt
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/openldap b/config/rootfiles/core/66/filelists/openldap
new file mode 120000 (symlink)
index 0000000..80c324f
--- /dev/null
@@ -0,0 +1 @@
+../../../common/openldap
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/openssl b/config/rootfiles/core/66/filelists/openssl
new file mode 120000 (symlink)
index 0000000..e011a92
--- /dev/null
@@ -0,0 +1 @@
+../../../common/openssl
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/pam b/config/rootfiles/core/66/filelists/pam
new file mode 120000 (symlink)
index 0000000..660a1d8
--- /dev/null
@@ -0,0 +1 @@
+../../../common/pam
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/pango b/config/rootfiles/core/66/filelists/pango
new file mode 120000 (symlink)
index 0000000..6c37231
--- /dev/null
@@ -0,0 +1 @@
+../../../common/pango
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/pciutils b/config/rootfiles/core/66/filelists/pciutils
new file mode 120000 (symlink)
index 0000000..aeb45e7
--- /dev/null
@@ -0,0 +1 @@
+../../../common/pciutils
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/pcmciautils b/config/rootfiles/core/66/filelists/pcmciautils
new file mode 120000 (symlink)
index 0000000..7cbf821
--- /dev/null
@@ -0,0 +1 @@
+../../../common/pcmciautils
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/pcre b/config/rootfiles/core/66/filelists/pcre
new file mode 120000 (symlink)
index 0000000..b390d9a
--- /dev/null
@@ -0,0 +1 @@
+../../../common/pcre
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/pcre-compat b/config/rootfiles/core/66/filelists/pcre-compat
new file mode 120000 (symlink)
index 0000000..eff8a7d
--- /dev/null
@@ -0,0 +1 @@
+../../../common/pcre-compat
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/pixman b/config/rootfiles/core/66/filelists/pixman
new file mode 120000 (symlink)
index 0000000..fdb6346
--- /dev/null
@@ -0,0 +1 @@
+../../../common/pixman
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/popt b/config/rootfiles/core/66/filelists/popt
new file mode 120000 (symlink)
index 0000000..d71a9ab
--- /dev/null
@@ -0,0 +1 @@
+../../../common/popt
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/pptp b/config/rootfiles/core/66/filelists/pptp
new file mode 120000 (symlink)
index 0000000..2b3dfad
--- /dev/null
@@ -0,0 +1 @@
+../../../common/pptp
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/readline b/config/rootfiles/core/66/filelists/readline
new file mode 120000 (symlink)
index 0000000..84209f1
--- /dev/null
@@ -0,0 +1 @@
+../../../common/readline
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/readline-compat b/config/rootfiles/core/66/filelists/readline-compat
new file mode 120000 (symlink)
index 0000000..f96bc80
--- /dev/null
@@ -0,0 +1 @@
+../../../common/readline-compat
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/reiserfsprogs b/config/rootfiles/core/66/filelists/reiserfsprogs
new file mode 120000 (symlink)
index 0000000..008c3e8
--- /dev/null
@@ -0,0 +1 @@
+../../../common/reiserfsprogs
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/rrdtool b/config/rootfiles/core/66/filelists/rrdtool
new file mode 120000 (symlink)
index 0000000..7a82e41
--- /dev/null
@@ -0,0 +1 @@
+../../../common/rrdtool
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/screen b/config/rootfiles/core/66/filelists/screen
new file mode 120000 (symlink)
index 0000000..81008f4
--- /dev/null
@@ -0,0 +1 @@
+../../../common/screen
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/sdparm b/config/rootfiles/core/66/filelists/sdparm
new file mode 120000 (symlink)
index 0000000..86d9c24
--- /dev/null
@@ -0,0 +1 @@
+../../../common/sdparm
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/sed b/config/rootfiles/core/66/filelists/sed
new file mode 120000 (symlink)
index 0000000..fc5f5c6
--- /dev/null
@@ -0,0 +1 @@
+../../../common/sed
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/setup b/config/rootfiles/core/66/filelists/setup
new file mode 120000 (symlink)
index 0000000..209374b
--- /dev/null
@@ -0,0 +1 @@
+../../../common/setup
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/shadow b/config/rootfiles/core/66/filelists/shadow
new file mode 120000 (symlink)
index 0000000..c0824b7
--- /dev/null
@@ -0,0 +1 @@
+../../../common/shadow
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/slang b/config/rootfiles/core/66/filelists/slang
new file mode 120000 (symlink)
index 0000000..228e45e
--- /dev/null
@@ -0,0 +1 @@
+../../../common/slang
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/smartmontools b/config/rootfiles/core/66/filelists/smartmontools
new file mode 120000 (symlink)
index 0000000..fb66daf
--- /dev/null
@@ -0,0 +1 @@
+../../../common/smartmontools
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/snort b/config/rootfiles/core/66/filelists/snort
new file mode 120000 (symlink)
index 0000000..9406ce0
--- /dev/null
@@ -0,0 +1 @@
+../../../common/snort
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/stage2-partial b/config/rootfiles/core/66/filelists/stage2-partial
new file mode 100644 (file)
index 0000000..df9ad8f
--- /dev/null
@@ -0,0 +1,17 @@
+etc/bashrc
+etc/profile
+etc/profile.d/colorls.sh
+etc/profile.d/extrapaths.sh
+etc/profile.d/glib2-locale.sh
+etc/profile.d/i18n.sh
+etc/profile.d/lang.sh
+etc/profile.d/readline.sh
+etc/profile.d/term256.sh
+etc/profile.d/umask.sh
+etc/securetty
+etc/sysctl.conf
+root/.bash_logout
+root/.bash_profile
+root/.bashrc
+usr/lib/libgcc_s.so.1
+usr/lib/libstdc++.so.6
diff --git a/config/rootfiles/core/66/filelists/strongswan b/config/rootfiles/core/66/filelists/strongswan
new file mode 120000 (symlink)
index 0000000..90c727e
--- /dev/null
@@ -0,0 +1 @@
+../../../common/strongswan
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/sysfsutils b/config/rootfiles/core/66/filelists/sysfsutils
new file mode 120000 (symlink)
index 0000000..8f3ee3e
--- /dev/null
@@ -0,0 +1 @@
+../../../common/sysfsutils
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/sysvinit b/config/rootfiles/core/66/filelists/sysvinit
new file mode 120000 (symlink)
index 0000000..f3fb330
--- /dev/null
@@ -0,0 +1 @@
+../../../common/sysvinit
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/texinfo b/config/rootfiles/core/66/filelists/texinfo
new file mode 120000 (symlink)
index 0000000..fa9df02
--- /dev/null
@@ -0,0 +1 @@
+../../../common/texinfo
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/tzdata b/config/rootfiles/core/66/filelists/tzdata
new file mode 120000 (symlink)
index 0000000..5a6e325
--- /dev/null
@@ -0,0 +1 @@
+../../../common/tzdata
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/udev b/config/rootfiles/core/66/filelists/udev
new file mode 120000 (symlink)
index 0000000..e967a1c
--- /dev/null
@@ -0,0 +1 @@
+../../../common/udev
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/usbutils b/config/rootfiles/core/66/filelists/usbutils
new file mode 120000 (symlink)
index 0000000..31db5a7
--- /dev/null
@@ -0,0 +1 @@
+../../../common/usbutils
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/vim b/config/rootfiles/core/66/filelists/vim
new file mode 120000 (symlink)
index 0000000..9861317
--- /dev/null
@@ -0,0 +1 @@
+../../../common/vim
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/wget b/config/rootfiles/core/66/filelists/wget
new file mode 120000 (symlink)
index 0000000..fcb57df
--- /dev/null
@@ -0,0 +1 @@
+../../../common/wget
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/wpa_supplicant b/config/rootfiles/core/66/filelists/wpa_supplicant
new file mode 120000 (symlink)
index 0000000..1d04c03
--- /dev/null
@@ -0,0 +1 @@
+../../../common/wpa_supplicant
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/xz b/config/rootfiles/core/66/filelists/xz
new file mode 120000 (symlink)
index 0000000..734e926
--- /dev/null
@@ -0,0 +1 @@
+../../../common/xz
\ No newline at end of file
diff --git a/config/rootfiles/core/66/filelists/zlib b/config/rootfiles/core/66/filelists/zlib
new file mode 120000 (symlink)
index 0000000..e345663
--- /dev/null
@@ -0,0 +1 @@
+../../../common/zlib
\ No newline at end of file
diff --git a/config/rootfiles/core/66/meta b/config/rootfiles/core/66/meta
new file mode 100644 (file)
index 0000000..d547fa8
--- /dev/null
@@ -0,0 +1 @@
+DEPS=""
diff --git a/config/rootfiles/core/66/update.sh b/config/rootfiles/core/66/update.sh
new file mode 100644 (file)
index 0000000..19036b1
--- /dev/null
@@ -0,0 +1,362 @@
+#!/bin/bash
+############################################################################
+#                                                                          #
+# This file is part of the IPFire Firewall.                                #
+#                                                                          #
+# 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 3 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 #
+#                                                                          #
+# Copyright (C) 2012 IPFire-Team <info@ipfire.org>.                        #
+#                                                                          #
+############################################################################
+#
+. /opt/pakfire/lib/functions.sh
+/usr/local/bin/backupctrl exclude >/dev/null 2>&1
+
+function add_to_backup ()
+{
+       # Add path to ROOTFILES but remove old entries to prevent double
+       # files in the tar
+       grep -v "^$1" /opt/pakfire/tmp/ROOTFILES > /opt/pakfire/tmp/ROOTFILES.tmp
+       mv /opt/pakfire/tmp/ROOTFILES.tmp /opt/pakfire/tmp/ROOTFILES
+       echo $1 >> /opt/pakfire/tmp/ROOTFILES
+}
+
+#
+# Remove old core updates from pakfire cache to save space...
+#
+core=66
+for (( i=1; i<=$core; i++ ))
+do
+       rm -f /var/cache/pakfire/core-upgrade-*-$i.ipfire
+done
+
+#
+# Do some sanity checks.
+case $(uname -r) in
+       *-ipfire-versatile )
+               /usr/bin/logger -p syslog.emerg -t ipfire \
+                       "core-update-$core: ERROR cannot update. versatile support is dropped."
+               # Report no error to pakfire. So it does not try to install it again.
+               exit 0
+               ;;
+       *-ipfire-xen )
+               BOOTSIZE=`df /boot -Pk | sed "s| * | |g" | cut -d" " -f2 | tail -n 1`
+               if [ $BOOTSIZE -lt 28000 ]; then
+                       /usr/bin/logger -p syslog.emerg -t ipfire \
+                               "core-update-$core: ERROR cannot update because not enough space on boot."
+                       exit 2
+               fi
+               ;;
+       *-ipfire* )
+               # Ok.
+               ;;
+       * )
+               /usr/bin/logger -p syslog.emerg -t ipfire \
+                       "core-update-$core: ERROR cannot update. No IPFire Kernel."
+               # Report no error to pakfire. So it does not try to install it again.
+               exit 0
+       ;;
+esac
+
+if [ ! "$(mount | grep " reiser4 (")" == "" ]; then
+       /usr/bin/logger -p syslog.emerg -t ipfire \
+               "core-update-$core: ERROR cannot update because there is a reiser4 fs mounted."
+       exit 1
+fi
+
+#
+#
+KVER="3.2.35"
+MOUNT=`grep "kernel" /boot/grub/grub.conf 2>/dev/null | tail -n 1 `
+# Nur den letzten Parameter verwenden
+echo $MOUNT > /dev/null
+MOUNT=$_
+if [ ! $MOUNT == "rw" ]; then
+       MOUNT="ro"
+fi
+
+#
+# check if we the backup file already exist
+if [ -e /var/ipfire/backup/core-upgrade$core_$KVER.tar.xz ]; then
+    echo Moving backup to backup-old ...
+    mv -f /var/ipfire/backup/core-upgrade$core_$KVER.tar.xz \
+       /var/ipfire/backup/core-upgrade$core_$KVER-old.tar.xz
+fi
+echo First we made a backup of all files that was inside of the
+echo update archive. This may take a while ...
+# Add some files that are not in the package to backup
+add_to_backup lib/modules
+add_to_backup etc/udev
+add_to_backup lib/udev
+add_to_backup boot
+add_to_backup etc/snort
+add_to_backup usr/lib/snort_*
+add_to_backup usr/share/zoneinfo
+add_to_backup lib/libncurses*
+add_to_backup etc/dircolors
+add_to_backup etc/profile.d
+add_to_backup usr/share/terminfo
+add_to_backup etc/sysconfig/lm_sensors
+add_to_backup etc/sysconfig/rc.local
+add_to_backup usr/local/bin/vpn-watch
+add_to_backup usr/libexec/ipsec
+
+# Backup the files
+tar cJvf /var/ipfire/backup/core-upgrade_$KVER.tar.xz \
+    -C / -T /opt/pakfire/tmp/ROOTFILES --exclude='#*' --exclude='/var/cache' > /dev/null 2>&1
+
+# Check diskspace on root
+ROOTSPACE=`df / -Pk | sed "s| * | |g" | cut -d" " -f4 | tail -n 1`
+
+if [ $ROOTSPACE -lt 70000 ]; then
+       /usr/bin/logger -p syslog.emerg -t ipfire \
+               "core-update-$core: ERROR cannot update because not enough free space on root."
+       exit 2
+fi
+
+echo
+echo Update Kernel to $KVER ...
+#
+# Remove old kernel, configs, initrd, modules ...
+#
+rm -rf /boot/System.map-*
+rm -rf /boot/config-*
+rm -rf /boot/ipfirerd-*
+rm -rf /boot/vmlinuz-*
+rm -rf /boot/uImage-ipfire-*
+rm -rf /boot/uInit-ipfire-*
+rm -rf /lib/modules
+rm -rf /etc/dircolors
+rm -rf /etc/profile.d
+rm -rf /usr/share/terminfo
+rm -rf /bin/[
+
+#
+# Remove old udev rules.
+#
+if [ -e /etc/udev/rules.d/29-ct-server-network.rules ]; then
+       cp /etc/udev/rules.d/29-ct-server-network.rules /tmp/
+fi
+cp /etc/udev/rules.d/30-persistent-network.rules /tmp/
+rm -rf /etc/udev
+rm -rf /lib/udev
+mkdir -p /etc/udev/rules.d
+if [ -e /tmp/rules.d/29-ct-server-network.rules ]; then
+       mv /tmp/29-ct-server-network.rules /etc/udev/rules.d/
+fi
+mv /tmp/30-persistent-network.rules /etc/udev/rules.d/
+
+case $(uname -m) in
+       i?86 )
+               #
+               # Backup grub.conf
+               #
+               cp -vf /boot/grub/grub.conf /boot/grub/grub.conf.org
+       ;;
+esac
+#
+#Stop services
+/etc/init.d/snort stop
+/etc/init.d/squid stop
+/etc/init.d/ipsec stop
+/etc/init.d/apache stop
+
+
+#Remove old snort, zoneinfo and ncurses-libs(wrong path).
+rm -rf /etc/snort
+rm -rf /usr/lib/snort_*
+rm -rf /usr/share/zoneinfo
+rm -rf /lib/libncurses*
+
+# Remove old pluto binaries.
+rm -f /usr/libexec/ipsec/{pluto,_pluto_adns,whack}
+rm -f /usr/local/bin/vpn-watch
+
+#
+#Extract files
+tar xavf /opt/pakfire/tmp/files* --no-overwrite-dir -p --numeric-owner -C /
+
+# Check diskspace on boot
+BOOTSPACE=`df /boot -Pk | sed "s| * | |g" | cut -d" " -f4 | tail -n 1`
+
+if [ $BOOTSPACE -lt 1000 ]; then
+       case $(uname -r) in
+               *-ipfire-kirkwood )
+                       # Special handling for old kirkwood images.
+                       # (install only kirkwood kernel)
+                       rm -rf /boot/*
+                       tar xavf /opt/pakfire/tmp/files* --no-overwrite-dir -p \
+                               --numeric-owner -C / --wildcards 'boot/*-kirkwood*'
+                       ;;
+               * )
+                       /usr/bin/logger -p syslog.emerg -t ipfire \
+                               "core-update-$core: FATAL-ERROR space run out on boot. System is not bootable..."
+                       /etc/init.d/apache start
+                       exit 4
+                       ;;
+       esac
+fi
+
+#
+#Reload init to close old linker/glibc
+telinit u
+
+# Regenerate ipsec configuration files.
+/srv/web/ipfire/cgi-bin/vpnmain.cgi
+
+# Convert OpenVPN RW connections.
+/usr/sbin/ovpn-ccd-convert
+
+# Update crontab.
+sed -i /var/spool/cron/root.orig \
+       -e 's@^.*fcron.weekly.*$@\&nice(10),bootrun 47 2 \* \* 1\ttest -x /usr/local/bin/run-parts \&\& /usr/local/bin/run-parts /etc/fcron.weekly@'
+fcrontab -z &>/dev/null
+
+#
+# Start services
+#
+/etc/init.d/apache start
+/etc/init.d/squid start
+/etc/init.d/snort start
+if [ `grep "ENABLED=on" /var/ipfire/vpn/settings` ]; then
+       /etc/init.d/ipsec start
+fi
+
+#
+# Rebuild qosscript if enabled
+#
+if [ -e /var/ipfire/qos/enable ]; then
+       /usr/local/bin/qosctrl stop
+       /usr/local/bin/qosctrl generate
+       /usr/local/bin/qosctrl start
+fi
+
+# Remove preloading libsafe.
+rm -f /etc/ld.so.preload
+
+case $(uname -m) in
+       i?86 )
+               #
+               # Modify grub.conf
+               #
+               echo
+               echo Update grub configuration ...
+               ROOT=`mount | grep " / " | cut -d" " -f1`
+
+               if [ ! -z $ROOT ]; then
+                       ROOTUUID=`blkid -c /dev/null -sUUID $ROOT | cut -d'"' -f2`
+               fi
+
+               if [ ! -z $ROOTUUID ]; then
+                       sed -i "s|ROOT|UUID=$ROOTUUID|g" /boot/grub/grub.conf
+               else
+                       sed -i "s|ROOT|$ROOT|g" /boot/grub/grub.conf
+               fi
+               sed -i "s|KVER|$KVER|g" /boot/grub/grub.conf
+               sed -i "s|MOUNT|$MOUNT|g" /boot/grub/grub.conf
+
+               if [ "$(grep "^serial" /boot/grub/grub.conf.org)" == "" ]; then
+                       echo "grub use default console ..."
+               else
+                       echo "grub use serial console ..."
+                       sed -i -e "s|splashimage|#splashimage|g" /boot/grub/grub.conf
+                       sed -i -e "s|#serial|serial|g" /boot/grub/grub.conf
+                       sed -i -e "s|#terminal|terminal|g" /boot/grub/grub.conf
+                       sed -i -e "s| panic=10 | console=ttyS0,115200n8 panic=10 |g" /boot/grub/grub.conf
+               fi
+
+               #
+               # ReInstall grub
+               #
+                       grub-install --no-floppy ${ROOT::`expr length $ROOT`-1}
+       ;;
+esac
+#
+# Delete old lm-sensor modullist to force search at next boot
+#
+rm -rf /etc/sysconfig/lm_sensors
+
+#
+# Remove powerbutton loop from rc local.
+#
+sed -i "/# power button shutdown/,+3d" /etc/sysconfig/rc.local
+
+#
+#Update Language cache
+perl -e "require '/var/ipfire/lang.pl'; &Lang::BuildCacheLang"
+
+#
+# Remove meta's of packages that are now common...
+#
+rm -rf /opt/pakfire/db/*/meta-fontconfig
+rm -rf /opt/pakfire/db/*/meta-glib
+
+# Force (re)install pae kernel if pae is supported
+rm -rf /opt/pakfire/db/*/meta-linux-pae
+if [ ! "$(grep "^flags.* pae " /proc/cpuinfo)" == "" ]; then
+       ROOTSPACE=`df / -Pk | sed "s| * | |g" | cut -d" " -f4 | tail -n 1`
+       BOOTSPACE=`df /boot -Pk | sed "s| * | |g" | cut -d" " -f4 | tail -n 1`
+       if [ $BOOTSPACE -lt 8000 -o $ROOTSPACE -lt 70000 ]; then
+               /usr/bin/logger -p syslog.emerg -t ipfire \
+                       "core-update-$core: WARNING not enough space for pae kernel."
+       else
+               echo "Name: linux-pae" > /opt/pakfire/db/installed/meta-linux-pae
+               echo "ProgVersion: 3.2.35" >> /opt/pakfire/db/installed/meta-linux-pae
+               echo "Release: 24"     >> /opt/pakfire/db/installed/meta-linux-pae
+       fi
+fi
+
+# Force reinstall xen kernel if it was installed
+if [ -e "/opt/pakfire/db/installed/meta-linux-xen" ]; then
+       echo "Name: linux-xen" > /opt/pakfire/db/installed/meta-linux-xen
+       echo "ProgVersion: 2.6.32.60" >> /opt/pakfire/db/installed/meta-linux-xen
+       echo "Release: 23"     >> /opt/pakfire/db/installed/meta-linux-xen
+fi
+
+#
+# After pakfire has ended run it again and update the lists and do upgrade
+#
+echo '#!/bin/bash'                                        >  /tmp/pak_update
+echo 'while [ "$(ps -A | grep " update.sh")" != "" ]; do' >> /tmp/pak_update
+echo '    sleep 1'                                        >> /tmp/pak_update
+echo 'done'                                               >> /tmp/pak_update
+echo 'while [ "$(ps -A | grep " pakfire")" != "" ]; do'   >> /tmp/pak_update
+echo '    sleep 1'                                        >> /tmp/pak_update
+echo 'done'                                               >> /tmp/pak_update
+echo '/opt/pakfire/pakfire update -y --force'             >> /tmp/pak_update
+echo '/opt/pakfire/pakfire upgrade -y'                    >> /tmp/pak_update
+echo '/opt/pakfire/pakfire upgrade -y'                    >> /tmp/pak_update
+echo '/opt/pakfire/pakfire upgrade -y'                    >> /tmp/pak_update
+echo '/usr/bin/logger -p syslog.emerg -t ipfire "Core-upgrade finished. If you use a customized grub.cfg"' >> /tmp/pak_update
+echo '/usr/bin/logger -p syslog.emerg -t ipfire "Check it before reboot !!!"' >> /tmp/pak_update
+echo '/usr/bin/logger -p syslog.emerg -t ipfire " *** Please reboot... *** "' >> /tmp/pak_update
+echo 'touch /var/run/need_reboot ' >> /tmp/pak_update
+#
+chmod +x /tmp/pak_update
+/tmp/pak_update &
+
+sync
+
+#
+#Finish
+/etc/init.d/fireinfo start
+sendprofile
+
+echo
+echo Please wait until pakfire has ended...
+echo
+#Don't report the exitcode last command
+exit 0
+
diff --git a/config/rootfiles/installer/findutils b/config/rootfiles/installer/findutils
new file mode 120000 (symlink)
index 0000000..1114c4c
--- /dev/null
@@ -0,0 +1 @@
+../common/findutils
\ No newline at end of file
diff --git a/config/rootfiles/installer/kudzu b/config/rootfiles/installer/kudzu
deleted file mode 120000 (symlink)
index da66b91..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../common/kudzu
\ No newline at end of file
diff --git a/config/rootfiles/installer/libsafe b/config/rootfiles/installer/libsafe
deleted file mode 120000 (symlink)
index c31e31d..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../common/libsafe
\ No newline at end of file
diff --git a/config/rootfiles/installer/pcre b/config/rootfiles/installer/pcre
new file mode 120000 (symlink)
index 0000000..ffd8616
--- /dev/null
@@ -0,0 +1 @@
+../common/pcre
\ No newline at end of file
index c9db15008c853ce7cc0e189977dfd870d758d6ad..33e935bc1eaf1fce278ba1f7bf2b4201ebed3024 100644 (file)
@@ -1,4 +1,3 @@
-etc/rc.d/init.d/alsa
 lib/firmware/aica_firmware.bin
 #lib/firmware/asihpi
 lib/firmware/asihpi/dsp2400.bin
@@ -46,25 +45,22 @@ lib/firmware/emagic/emi26-bitstream.bin
 lib/firmware/emagic/emi26-firmware.bin
 lib/firmware/emagic/emi26-loader.bin
 lib/firmware/emagic/emi62-bitstream.bin
-lib/firmware/emagic/emi62-firmware.bin
 lib/firmware/emagic/emi62-firmware-midi.bin
 lib/firmware/emagic/emi62-firmware-spdif.bin
+lib/firmware/emagic/emi62-firmware.bin
 lib/firmware/emagic/emi62-loader.bin
 lib/firmware/emagic/license.txt
 #lib/firmware/emu
 lib/firmware/emu/audio_dock.fw
 lib/firmware/emu/emu0404.fw
-lib/firmware/emu/emu1010b.fw
 lib/firmware/emu/emu1010_notebook.fw
+lib/firmware/emu/emu1010b.fw
 lib/firmware/emu/hana.fw
 lib/firmware/emu/micro_dock.fw
-lib/firmware/ess/maestro3_assp_kernel.fw
-lib/firmware/ess/maestro3_assp_minisrc.fw
-lib/firmware/korg/k1212.dsp
 #lib/firmware/mixart
-lib/firmware/mixart/miXart8AES.xlx
 lib/firmware/mixart/miXart8.elf
 lib/firmware/mixart/miXart8.xlx
+lib/firmware/mixart/miXart8AES.xlx
 lib/firmware/multiface_firmware.bin
 lib/firmware/multiface_firmware_rev11.bin
 #lib/firmware/pcxhr
@@ -91,11 +87,6 @@ lib/firmware/pcxhr/xlxc882hr.dat
 lib/firmware/pcxhr/xlxc924.dat
 lib/firmware/pcxhr/xlxint.dat
 lib/firmware/rpm_firmware.bin
-lib/firmware/sb16/alaw_main.csp
-lib/firmware/sb16/ima_adpcm_capture.csp
-lib/firmware/sb16/ima_adpcm_init.csp
-lib/firmware/sb16/ima_adpcm_playback.csp
-lib/firmware/sb16/mulaw_main.csp
 #lib/firmware/turtlebeach
 lib/firmware/turtlebeach/msndinit.bin
 lib/firmware/turtlebeach/msndperm.bin
@@ -115,10 +106,6 @@ lib/firmware/vx/x1_1_vp4.xlx
 lib/firmware/vx/x1_1_vx2.xlx
 lib/firmware/vx/x1_1_vxp.xlx
 lib/firmware/vx/x1_2_v22.xlx
-lib/firmware/yamaha/ds1_ctrl.fw
-lib/firmware/yamaha/ds1_dsp.fw
-lib/firmware/yamaha/ds1e_ctrl.fw
-lib/firmware/yamaha/yss225_registers.bin
 lib/udev/rules.d/90-alsa-restore.rules
 usr/bin/aconnect
 usr/bin/alsaloop
@@ -140,28 +127,28 @@ usr/bin/speaker-test
 #usr/include/alsa/asoundef.h
 #usr/include/alsa/asoundlib.h
 #usr/include/alsa/conf.h
-#usr/include/alsa/control_external.h
 #usr/include/alsa/control.h
+#usr/include/alsa/control_external.h
 #usr/include/alsa/error.h
 #usr/include/alsa/global.h
 #usr/include/alsa/hwdep.h
 #usr/include/alsa/iatomic.h
 #usr/include/alsa/input.h
-#usr/include/alsa/mixer_abst.h
 #usr/include/alsa/mixer.h
+#usr/include/alsa/mixer_abst.h
 #usr/include/alsa/output.h
+#usr/include/alsa/pcm.h
 #usr/include/alsa/pcm_external.h
 #usr/include/alsa/pcm_extplug.h
-#usr/include/alsa/pcm.h
 #usr/include/alsa/pcm_ioplug.h
 #usr/include/alsa/pcm_old.h
 #usr/include/alsa/pcm_plugin.h
 #usr/include/alsa/pcm_rate.h
 #usr/include/alsa/rawmidi.h
-#usr/include/alsa/seq_event.h
 #usr/include/alsa/seq.h
-#usr/include/alsa/seqmid.h
+#usr/include/alsa/seq_event.h
 #usr/include/alsa/seq_midi_event.h
+#usr/include/alsa/seqmid.h
 #usr/include/alsa/sound
 #usr/include/alsa/sound/asound_fm.h
 #usr/include/alsa/sound/emu10k1.h
@@ -176,19 +163,14 @@ usr/include/alsa/sound/hdspm.h
 #usr/include/sys/asoundlib.h
 #usr/lib/alsa-lib
 #usr/lib/alsa-lib/smixer
-#usr/lib/alsa-lib/smixer/smixer-ac97.a
 #usr/lib/alsa-lib/smixer/smixer-ac97.la
 usr/lib/alsa-lib/smixer/smixer-ac97.so
-#usr/lib/alsa-lib/smixer/smixer-hda.a
 #usr/lib/alsa-lib/smixer/smixer-hda.la
 usr/lib/alsa-lib/smixer/smixer-hda.so
-#usr/lib/alsa-lib/smixer/smixer-python.a
 #usr/lib/alsa-lib/smixer/smixer-python.la
 usr/lib/alsa-lib/smixer/smixer-python.so
-#usr/lib/alsa-lib/smixer/smixer-sbase.a
 #usr/lib/alsa-lib/smixer/smixer-sbase.la
 usr/lib/alsa-lib/smixer/smixer-sbase.so
-#usr/lib/libasound.a
 #usr/lib/libasound.la
 usr/lib/libasound.so
 usr/lib/libasound.so.2
@@ -203,10 +185,10 @@ usr/local/share/alsa
 #usr/local/share/alsa/firmware/hdsploader/multiface_firmware_rev11.bin
 usr/local/share/alsa/firmware/hdsploader/rpm_firmware.bin
 #usr/local/share/alsa/firmware/mixartloader
-#usr/local/share/alsa/firmware/mixartloader/miXart8AES.xlx
+#usr/local/share/alsa/firmware/mixartloader/miXart.conf
 #usr/local/share/alsa/firmware/mixartloader/miXart8.elf
 #usr/local/share/alsa/firmware/mixartloader/miXart8.xlx
-#usr/local/share/alsa/firmware/mixartloader/miXart.conf
+#usr/local/share/alsa/firmware/mixartloader/miXart8AES.xlx
 #usr/local/share/alsa/firmware/pcxhrloader
 #usr/local/share/alsa/firmware/pcxhrloader/b321_512.b56
 #usr/local/share/alsa/firmware/pcxhrloader/d321_512.d56
@@ -221,13 +203,13 @@ usr/local/share/alsa/firmware/hdsploader/rpm_firmware.bin
 #usr/local/share/alsa/firmware/pcxhrloader/dspe882.e56
 #usr/local/share/alsa/firmware/pcxhrloader/dspe924.e56
 #usr/local/share/alsa/firmware/pcxhrloader/e321_512.e56
+#usr/local/share/alsa/firmware/pcxhrloader/pcxhr.conf
 #usr/local/share/alsa/firmware/pcxhrloader/pcxhr0.conf
 #usr/local/share/alsa/firmware/pcxhrloader/pcxhr1.conf
 #usr/local/share/alsa/firmware/pcxhrloader/pcxhr2.conf
 #usr/local/share/alsa/firmware/pcxhrloader/pcxhr3.conf
 #usr/local/share/alsa/firmware/pcxhrloader/pcxhr4.conf
 #usr/local/share/alsa/firmware/pcxhrloader/pcxhr5.conf
-#usr/local/share/alsa/firmware/pcxhrloader/pcxhr.conf
 #usr/local/share/alsa/firmware/pcxhrloader/xc_1_882.dat
 #usr/local/share/alsa/firmware/pcxhrloader/xi_1_882.dat
 #usr/local/share/alsa/firmware/pcxhrloader/xlxc1222e.dat
@@ -240,17 +222,17 @@ usr/local/share/alsa/firmware/hdsploader/rpm_firmware.bin
 #usr/local/share/alsa/firmware/usx2yloader
 #usr/local/share/alsa/firmware/usx2yloader/tascam_loader.ihx
 #usr/local/share/alsa/firmware/usx2yloader/us122.conf
-#usr/local/share/alsa/firmware/usx2yloader/us122fw.ihx
 #usr/local/share/alsa/firmware/usx2yloader/us122.prepad
 #usr/local/share/alsa/firmware/usx2yloader/us122.rbt
+#usr/local/share/alsa/firmware/usx2yloader/us122fw.ihx
 #usr/local/share/alsa/firmware/usx2yloader/us224.conf
-#usr/local/share/alsa/firmware/usx2yloader/us224fw.ihx
 #usr/local/share/alsa/firmware/usx2yloader/us224.prepad
 #usr/local/share/alsa/firmware/usx2yloader/us224.rbt
+#usr/local/share/alsa/firmware/usx2yloader/us224fw.ihx
 #usr/local/share/alsa/firmware/usx2yloader/us428.conf
-#usr/local/share/alsa/firmware/usx2yloader/us428fw.ihx
 #usr/local/share/alsa/firmware/usx2yloader/us428.prepad
 #usr/local/share/alsa/firmware/usx2yloader/us428.rbt
+#usr/local/share/alsa/firmware/usx2yloader/us428fw.ihx
 #usr/local/share/alsa/firmware/vxloader
 #usr/local/share/alsa/firmware/vxloader/bd56002.boot
 #usr/local/share/alsa/firmware/vxloader/bd563s3.boot
@@ -274,23 +256,23 @@ usr/sbin/alsactl
 #usr/share/aclocal/alsa.m4
 usr/share/alsa
 #usr/share/alsa/alsa.conf
+#usr/share/alsa/alsa.conf.d
+usr/share/alsa/alsa.conf.d/README
 #usr/share/alsa/cards
 #usr/share/alsa/cards/AACI.conf
-#usr/share/alsa/cards/aliases.alisp
-#usr/share/alsa/cards/aliases.conf
-#usr/share/alsa/cards/ATIIXP.conf
 #usr/share/alsa/cards/ATIIXP-MODEM.conf
 #usr/share/alsa/cards/ATIIXP-SPDMA.conf
+#usr/share/alsa/cards/ATIIXP.conf
 #usr/share/alsa/cards/AU8810.conf
 #usr/share/alsa/cards/AU8820.conf
 #usr/share/alsa/cards/AU8830.conf
-#usr/share/alsa/cards/Audigy2.conf
 #usr/share/alsa/cards/Audigy.conf
+#usr/share/alsa/cards/Audigy2.conf
 #usr/share/alsa/cards/Aureon51.conf
 #usr/share/alsa/cards/Aureon71.conf
 #usr/share/alsa/cards/CA0106.conf
-#usr/share/alsa/cards/CMI8338.conf
 #usr/share/alsa/cards/CMI8338-SWIEC.conf
+#usr/share/alsa/cards/CMI8338.conf
 #usr/share/alsa/cards/CMI8738-MC6.conf
 #usr/share/alsa/cards/CMI8738-MC8.conf
 #usr/share/alsa/cards/CMI8788.conf
@@ -300,14 +282,17 @@ usr/share/alsa
 #usr/share/alsa/cards/ENS1370.conf
 #usr/share/alsa/cards/ENS1371.conf
 #usr/share/alsa/cards/ES1968.conf
+#usr/share/alsa/cards/Echo_Echo3G.conf
 #usr/share/alsa/cards/FM801.conf
+#usr/share/alsa/cards/FWSpeakers.conf
+#usr/share/alsa/cards/FireWave.conf
 #usr/share/alsa/cards/GUS.conf
 #usr/share/alsa/cards/HDA-Intel.conf
 #usr/share/alsa/cards/ICE1712.conf
 #usr/share/alsa/cards/ICE1724.conf
-#usr/share/alsa/cards/ICH4.conf
-#usr/share/alsa/cards/ICH.conf
 #usr/share/alsa/cards/ICH-MODEM.conf
+#usr/share/alsa/cards/ICH.conf
+#usr/share/alsa/cards/ICH4.conf
 #usr/share/alsa/cards/Maestro3.conf
 #usr/share/alsa/cards/NFORCE.conf
 #usr/share/alsa/cards/PC-Speaker.conf
@@ -324,13 +309,15 @@ usr/share/alsa
 #usr/share/alsa/cards/TRID4DWAVENX.conf
 #usr/share/alsa/cards/USB-Audio.conf
 #usr/share/alsa/cards/VIA686A.conf
-#usr/share/alsa/cards/VIA8233A.conf
 #usr/share/alsa/cards/VIA8233.conf
+#usr/share/alsa/cards/VIA8233A.conf
 #usr/share/alsa/cards/VIA8237.conf
 #usr/share/alsa/cards/VX222.conf
-#usr/share/alsa/cards/VXPocket440.conf
 #usr/share/alsa/cards/VXPocket.conf
+#usr/share/alsa/cards/VXPocket440.conf
 #usr/share/alsa/cards/YMF744.conf
+#usr/share/alsa/cards/aliases.alisp
+#usr/share/alsa/cards/aliases.conf
 #usr/share/alsa/init
 #usr/share/alsa/init/00main
 #usr/share/alsa/init/default
@@ -361,8 +348,8 @@ usr/share/alsa
 #usr/share/alsa/speaker-test/sample_map.csv
 #usr/share/locale/de/LC_MESSAGES/alsa-utils.mo
 #usr/share/locale/fr/LC_MESSAGES/alsa-utils.mo
-#usr/share/locale/ja/LC_MESSAGES/alsaconf.mo
 #usr/share/locale/ja/LC_MESSAGES/alsa-utils.mo
+#usr/share/locale/ja/LC_MESSAGES/alsaconf.mo
 #usr/share/locale/ru/LC_MESSAGES/alsaconf.mo
 #usr/share/man/fr/man8/alsaconf.8
 #usr/share/man/man1/aconnect.1
@@ -392,3 +379,16 @@ usr/share/sounds/alsa
 #usr/share/sounds/alsa/Side_Left.wav
 #usr/share/sounds/alsa/Side_Right.wav
 var/lib/alsa
+etc/rc.d/init.d/alsa
+lib/firmware/ess/maestro3_assp_kernel.fw
+lib/firmware/ess/maestro3_assp_minisrc.fw
+lib/firmware/korg/k1212.dsp
+lib/firmware/sb16/alaw_main.csp
+lib/firmware/sb16/ima_adpcm_capture.csp
+lib/firmware/sb16/ima_adpcm_init.csp
+lib/firmware/sb16/ima_adpcm_playback.csp
+lib/firmware/sb16/mulaw_main.csp
+lib/firmware/yamaha/ds1_ctrl.fw
+lib/firmware/yamaha/ds1_dsp.fw
+lib/firmware/yamaha/ds1e_ctrl.fw
+lib/firmware/yamaha/yss225_registers.bin
diff --git a/config/rootfiles/packages/applejuice b/config/rootfiles/packages/applejuice
deleted file mode 100644 (file)
index ca14dee..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-etc/httpd/conf/vhosts.d/phpaj.conf
-etc/rc.d/init.d/applejuice
-opt/applejuice
-opt/applejuice/ajcore.jar
-opt/applejuice/libajnetmask.so
-srv/web/phpaj
-srv/web/phpaj/export
-srv/web/phpaj/export/Default.php
-srv/web/phpaj/export/ajl.php
-srv/web/phpaj/export/bb.php
-srv/web/phpaj/export/html.php
-srv/web/phpaj/index.php
-srv/web/phpaj/language
-srv/web/phpaj/language/deutsch.xml
-srv/web/phpaj/language/english.xml
-srv/web/phpaj/main
-srv/web/phpaj/main/classes
-srv/web/phpaj/main/classes/class_core.php
-srv/web/phpaj/main/classes/class_downloads.php
-srv/web/phpaj/main/classes/class_icons.php
-srv/web/phpaj/main/classes/class_search.php
-srv/web/phpaj/main/classes/class_server.php
-srv/web/phpaj/main/classes/class_share.php
-srv/web/phpaj/main/classes/class_uploads.php
-srv/web/phpaj/main/directory.php
-srv/web/phpaj/main/dl_parts.php
-srv/web/phpaj/main/dl_users.php
-srv/web/phpaj/main/downloads.php
-srv/web/phpaj/main/extras.php
-srv/web/phpaj/main/index.php
-srv/web/phpaj/main/progressbar.php
-srv/web/phpaj/main/search.php
-srv/web/phpaj/main/server.php
-srv/web/phpaj/main/settings.php
-srv/web/phpaj/main/shareexport.php
-srv/web/phpaj/main/sharefiles.php
-srv/web/phpaj/main/shares.php
-srv/web/phpaj/main/showparts.php
-srv/web/phpaj/main/start.php
-srv/web/phpaj/main/status.php
-srv/web/phpaj/main/subs.php
-srv/web/phpaj/main/top.php
-srv/web/phpaj/main/uploads.php
-srv/web/phpaj/minigui
-srv/web/phpaj/minigui/downloads.php
-srv/web/phpaj/minigui/index.php
-srv/web/phpaj/minigui/minigui.php
-srv/web/phpaj/plugins
-srv/web/phpaj/plugins/ajl
-srv/web/phpaj/plugins/ajl/ajl.php
-srv/web/phpaj/plugins/ajl/icon.gif
-srv/web/phpaj/plugins/ajl/info.php
-srv/web/phpaj/plugins/register.php
-srv/web/phpaj/plugins/sharestats
-srv/web/phpaj/plugins/sharestats/info.php
-srv/web/phpaj/plugins/sharestats/sharestats.php
-srv/web/phpaj/plugins/versionchecker
-srv/web/phpaj/plugins/versionchecker/info.php
-srv/web/phpaj/plugins/versionchecker/versionchecker.php
-srv/web/phpaj/plugins/wizard
-srv/web/phpaj/plugins/wizard/icon.gif
-srv/web/phpaj/plugins/wizard/info.php
-srv/web/phpaj/plugins/wizard/wizard.php
-srv/web/phpaj/plugins/wizard/wizard.xml
-srv/web/phpaj/style
-srv/web/phpaj/style/default
-srv/web/phpaj/style/default/default_blue.css
-srv/web/phpaj/style/default/default_green.css
-srv/web/phpaj/style/default/default_grey.css
-srv/web/phpaj/style/default/info.png
-srv/web/phpaj/style/default/minus.png
-srv/web/phpaj/style/default/os
-srv/web/phpaj/style/default/os/bsd.png
-srv/web/phpaj/style/default/os/linux.png
-srv/web/phpaj/style/default/os/mac.png
-srv/web/phpaj/style/default/os/na.png
-srv/web/phpaj/style/default/os/netware.png
-srv/web/phpaj/style/default/os/os2.png
-srv/web/phpaj/style/default/os/solaris.png
-srv/web/phpaj/style/default/os/win.png
-srv/web/phpaj/style/default/plus.png
-srv/web/phpaj/style/default/server
-srv/web/phpaj/style/default/server/alt.gif
-srv/web/phpaj/style/default/server/neu.gif
-srv/web/phpaj/style/default/server/verbinde.gif
-srv/web/phpaj/style/default/server/verbunden.gif
-srv/web/phpaj/style/default/stop.png
-srv/web/phpaj/style/default/tabs
-srv/web/phpaj/style/default/tabs/download.gif
-srv/web/phpaj/style/default/tabs/extras.gif
-srv/web/phpaj/style/default/tabs/kill.gif
-srv/web/phpaj/style/default/tabs/logout.gif
-srv/web/phpaj/style/default/tabs/meinshare.gif
-srv/web/phpaj/style/default/tabs/optionen.gif
-srv/web/phpaj/style/default/tabs/server.gif
-srv/web/phpaj/style/default/tabs/start.gif
-srv/web/phpaj/style/default/tabs/suchen.gif
-srv/web/phpaj/style/default/tabs/upload.gif
-srv/web/phpaj/style/default/user
-srv/web/phpaj/style/default/user/direct.png
-srv/web/phpaj/style/default/user/indirect.png
-srv/web/phpaj/style/default/user/tryindirect.png
-srv/web/phpaj/style/default/user/unknown.png
-srv/web/phpaj/style/default/warnung.gif
-srv/web/phpaj/style/default/x.png
-srv/web/phpaj/style/default_blue.php
-srv/web/phpaj/style/default_green.php
-srv/web/phpaj/style/default_grey.php
-srv/web/phpaj/style/new
-srv/web/phpaj/style/new.php
-srv/web/phpaj/style/new/bg.png
-srv/web/phpaj/style/new/new.css
-srv/web/phpaj/style/tango
-srv/web/phpaj/style/tango.php
-srv/web/phpaj/style/tango/bg.png
-srv/web/phpaj/style/tango/icons
-srv/web/phpaj/style/tango/icons/direct.png
-srv/web/phpaj/style/tango/icons/down.png
-srv/web/phpaj/style/tango/icons/empty.png
-srv/web/phpaj/style/tango/icons/extras.png
-srv/web/phpaj/style/tango/icons/home.png
-srv/web/phpaj/style/tango/icons/indirect.png
-srv/web/phpaj/style/tango/icons/info.png
-srv/web/phpaj/style/tango/icons/kill.png
-srv/web/phpaj/style/tango/icons/logout.png
-srv/web/phpaj/style/tango/icons/minus.png
-srv/web/phpaj/style/tango/icons/plus.png
-srv/web/phpaj/style/tango/icons/preferences.png
-srv/web/phpaj/style/tango/icons/search.png
-srv/web/phpaj/style/tango/icons/server.png
-srv/web/phpaj/style/tango/icons/share.png
-srv/web/phpaj/style/tango/icons/stop.png
-srv/web/phpaj/style/tango/icons/up.png
-srv/web/phpaj/style/tango/icons/warning.png
-srv/web/phpaj/style/tango/icons/x.png
-srv/web/phpaj/style/tango/tango.css
-srv/web/phpaj/vars.php
-usr/local/bin/applejuicectrl
-var/ipfire/applejuice
-var/ipfire/applejuice/settings
-#usr/lib/libajnetmask.so
index 7e7b25e963dc2c128e69b551ee4606e412230257..7a02653b1766e532fff76d5df2977514526acf2e 100644 (file)
@@ -156,8 +156,6 @@ usr/lib/asterisk/modules/app_channelredirect.so
 usr/lib/asterisk/modules/app_chanspy.so
 usr/lib/asterisk/modules/app_confbridge.so
 usr/lib/asterisk/modules/app_controlplayback.so
-usr/lib/asterisk/modules/app_dahdibarge.so
-usr/lib/asterisk/modules/app_dahdiras.so
 usr/lib/asterisk/modules/app_db.so
 usr/lib/asterisk/modules/app_dial.so
 usr/lib/asterisk/modules/app_dictate.so
@@ -169,7 +167,6 @@ usr/lib/asterisk/modules/app_echo.so
 usr/lib/asterisk/modules/app_exec.so
 usr/lib/asterisk/modules/app_externalivr.so
 usr/lib/asterisk/modules/app_festival.so
-usr/lib/asterisk/modules/app_flash.so
 usr/lib/asterisk/modules/app_followme.so
 usr/lib/asterisk/modules/app_forkcdr.so
 usr/lib/asterisk/modules/app_getcpeid.so
@@ -177,7 +174,6 @@ usr/lib/asterisk/modules/app_ices.so
 usr/lib/asterisk/modules/app_image.so
 usr/lib/asterisk/modules/app_ivrdemo.so
 usr/lib/asterisk/modules/app_macro.so
-usr/lib/asterisk/modules/app_meetme.so
 usr/lib/asterisk/modules/app_milliwatt.so
 usr/lib/asterisk/modules/app_minivm.so
 usr/lib/asterisk/modules/app_mixmonitor.so
@@ -186,7 +182,6 @@ usr/lib/asterisk/modules/app_mp3.so
 usr/lib/asterisk/modules/app_mysql.so
 usr/lib/asterisk/modules/app_nbscat.so
 usr/lib/asterisk/modules/app_originate.so
-usr/lib/asterisk/modules/app_page.so
 usr/lib/asterisk/modules/app_parkandannounce.so
 usr/lib/asterisk/modules/app_playback.so
 usr/lib/asterisk/modules/app_playtones.so
@@ -237,7 +232,6 @@ usr/lib/asterisk/modules/chan_agent.so
 usr/lib/asterisk/modules/chan_alsa.so
 usr/lib/asterisk/modules/chan_bridge.so
 usr/lib/asterisk/modules/chan_capi.so
-usr/lib/asterisk/modules/chan_dahdi.so
 usr/lib/asterisk/modules/chan_iax2.so
 usr/lib/asterisk/modules/chan_local.so
 usr/lib/asterisk/modules/chan_mgcp.so
@@ -252,10 +246,10 @@ usr/lib/asterisk/modules/chan_unistim.so
 usr/lib/asterisk/modules/codec_a_mu.so
 usr/lib/asterisk/modules/codec_adpcm.so
 usr/lib/asterisk/modules/codec_alaw.so
-usr/lib/asterisk/modules/codec_dahdi.so
 usr/lib/asterisk/modules/codec_g722.so
 usr/lib/asterisk/modules/codec_g726.so
 usr/lib/asterisk/modules/codec_gsm.so
+usr/lib/asterisk/modules/codec_ilbc.so
 usr/lib/asterisk/modules/codec_lpc10.so
 usr/lib/asterisk/modules/codec_ulaw.so
 usr/lib/asterisk/modules/format_g719.so
@@ -351,18 +345,32 @@ usr/lib/asterisk/modules/res_smdi.so
 usr/lib/asterisk/modules/res_snmp.so
 usr/lib/asterisk/modules/res_speech.so
 usr/lib/asterisk/modules/res_stun_monitor.so
-usr/lib/asterisk/modules/res_timing_dahdi.so
 usr/lib/asterisk/modules/res_timing_pthread.so
+usr/lib/asterisk/modules/res_timing_timerfd.so
 #usr/lib/pkgconfig/asterisk.pc
+usr/sbin/aelparse
+usr/sbin/astcanary
 usr/sbin/asterisk
 usr/sbin/astgenkey
+usr/sbin/astman
 usr/sbin/autosupport
+usr/sbin/check_expr
+usr/sbin/check_expr2
+usr/sbin/conf2ael
+usr/sbin/hashtest
+usr/sbin/hashtest2
+usr/sbin/muted
 usr/sbin/rasterisk
+usr/sbin/refcounter
 usr/sbin/safe_asterisk
+usr/sbin/smsq
+usr/sbin/stereorize
+usr/sbin/streamplayer
 #usr/share/man/man8/asterisk.8
 #usr/share/man/man8/astgenkey.8
 #usr/share/man/man8/autosupport.8
 #usr/share/man/man8/safe_asterisk.8
+#var/ipfire/asterisk
 var/ipfire/asterisk/adsi.conf
 var/ipfire/asterisk/agents.conf
 var/ipfire/asterisk/ais.conf
index 278cbea28771a6713cb3589ddce4f813396dba20..267e40ea1af3338a4fdaf3a25057cfe92117a32c 100644 (file)
@@ -6,7 +6,7 @@ etc/bluetooth/main.conf
 etc/bluetooth/network.conf
 etc/bluetooth/rfcomm.conf
 etc/dbus-1/system.d/bluetooth.conf
-etc/udev/rules.d/24-bluetooth.rules
+#lib/udev/rules.d/24-bluetooth.rules
 lib/firmware/BCM-LEGAL.txt
 lib/firmware/BCM2033-FW.bin
 lib/firmware/BCM2033-MD.hex
diff --git a/config/rootfiles/packages/centerim b/config/rootfiles/packages/centerim
deleted file mode 100644 (file)
index 26f9b48..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-usr/bin/centerim
-usr/bin/cicqconv
-#usr/share/centerim
-usr/share/centerim/email.wav
-usr/share/centerim/msg.wav
-usr/share/centerim/offline.wav
-usr/share/centerim/online.wav
-usr/share/centerim/sms.wav
-usr/share/centerim/url.wav
-#usr/share/man/man1/cicqconv.1
index 5f9004790806cdf5a0c7f7c2e9c79deb13f7a280..742cd8fbba797e3e7da18edbaf5573327431e9ca 100644 (file)
@@ -978,6 +978,7 @@ usr/share/doc/cups/robots.txt
 #usr/share/locale/ja/cups_ja.po
 #usr/share/locale/ko/cups_ko.po
 #usr/share/locale/nl/cups_nl.po
+#usr/share/locale/no
 #usr/share/locale/no/cups_no.po
 #usr/share/locale/pl/cups_pl.po
 #usr/share/locale/pt/cups_pt.po
diff --git a/config/rootfiles/packages/dahdi b/config/rootfiles/packages/dahdi
deleted file mode 100644 (file)
index 8e7b8d7..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-etc/dahdi
-#etc/hotplug
-#etc/hotplug/usb
-etc/hotplug/usb/xpp_fxloader
-etc/hotplug/usb/xpp_fxloader.usermap
-etc/modprobe.d/dahdi
-etc/modprobe.d/dahdi.blacklist
-etc/rc.d/init.d/dahdi
-etc/rc.d/rc0.d/K30dahdi
-etc/rc.d/rc3.d/S15dahdi
-etc/rc.d/rc6.d/K30dahdi
-etc/udev/rules.d/dahdi.rules
-etc/udev/rules.d/xpp.rules
-lib/firmware/.dahdi-fw-oct6114-064-1.05.01
-lib/firmware/.dahdi-fw-oct6114-128-1.05.01
-lib/firmware/.dahdi-fw-tc400m-MR6.12
-lib/firmware/dahdi-fw-oct6114-064.bin
-lib/firmware/dahdi-fw-oct6114-128.bin
-lib/firmware/dahdi-fw-tc400m.bin
-#usr/include/dahdi
-#usr/include/dahdi/dahdi_config.h
-#usr/include/dahdi/fasthdlc.h
-#usr/include/dahdi/kernel.h
-#usr/include/dahdi/tonezone.h
-#usr/include/dahdi/user.h
-#usr/include/dahdi/wctdm_user.h
-#usr/lib/hotplug
-#usr/lib/hotplug/firmware
-#usr/lib/hotplug/firmware/.dahdi-fw-oct6114-064-1.05.01
-#usr/lib/hotplug/firmware/.dahdi-fw-oct6114-128-1.05.01
-#usr/lib/hotplug/firmware/.dahdi-fw-tc400m-MR6.12
-#usr/lib/hotplug/firmware/dahdi-fw-oct6114-064.bin
-#usr/lib/hotplug/firmware/dahdi-fw-oct6114-128.bin
-#usr/lib/hotplug/firmware/dahdi-fw-tc400m.bin
-#usr/lib/libtonezone.a
-usr/lib/libtonezone.so
-usr/lib/libtonezone.so.1
-usr/lib/libtonezone.so.1.0
-usr/lib/libtonezone.so.2
-usr/lib/libtonezone.so.2.0
-#usr/lib/perl5/site_perl/5.12.3/Dahdi
-usr/lib/perl5/site_perl/5.12.3/Dahdi.pm
-usr/lib/perl5/site_perl/5.12.3/Dahdi/Chans.pm
-#usr/lib/perl5/site_perl/5.12.3/Dahdi/Config
-#usr/lib/perl5/site_perl/5.12.3/Dahdi/Config/Gen
-usr/lib/perl5/site_perl/5.12.3/Dahdi/Config/Gen.pm
-usr/lib/perl5/site_perl/5.12.3/Dahdi/Config/Gen/Chandahdi.pm
-usr/lib/perl5/site_perl/5.12.3/Dahdi/Config/Gen/Modules.pm
-usr/lib/perl5/site_perl/5.12.3/Dahdi/Config/Gen/System.pm
-usr/lib/perl5/site_perl/5.12.3/Dahdi/Config/Gen/Unicall.pm
-usr/lib/perl5/site_perl/5.12.3/Dahdi/Config/Gen/Users.pm
-usr/lib/perl5/site_perl/5.12.3/Dahdi/Config/Gen/Xpporder.pm
-usr/lib/perl5/site_perl/5.12.3/Dahdi/Config/Params.pm
-#usr/lib/perl5/site_perl/5.12.3/Dahdi/Hardware
-usr/lib/perl5/site_perl/5.12.3/Dahdi/Hardware.pm
-usr/lib/perl5/site_perl/5.12.3/Dahdi/Hardware/PCI.pm
-usr/lib/perl5/site_perl/5.12.3/Dahdi/Hardware/USB.pm
-usr/lib/perl5/site_perl/5.12.3/Dahdi/Span.pm
-usr/lib/perl5/site_perl/5.12.3/Dahdi/Utils.pm
-#usr/lib/perl5/site_perl/5.12.3/Dahdi/Xpp
-usr/lib/perl5/site_perl/5.12.3/Dahdi/Xpp.pm
-usr/lib/perl5/site_perl/5.12.3/Dahdi/Xpp/Line.pm
-usr/lib/perl5/site_perl/5.12.3/Dahdi/Xpp/Mpp.pm
-usr/lib/perl5/site_perl/5.12.3/Dahdi/Xpp/Xbus.pm
-usr/lib/perl5/site_perl/5.12.3/Dahdi/Xpp/Xpd.pm
-usr/sbin/astribank_allow
-usr/sbin/astribank_hexload
-usr/sbin/astribank_is_starting
-usr/sbin/astribank_tool
-usr/sbin/dahdi_cfg
-usr/sbin/dahdi_genconf
-usr/sbin/dahdi_hardware
-usr/sbin/dahdi_monitor
-usr/sbin/dahdi_registration
-usr/sbin/dahdi_scan
-usr/sbin/dahdi_speed
-usr/sbin/dahdi_test
-usr/sbin/dahdi_tool
-usr/sbin/fpga_load
-usr/sbin/fxotune
-usr/sbin/lsdahdi
-usr/sbin/sethdlc
-usr/sbin/twinstar
-usr/sbin/xpp_blink
-usr/sbin/xpp_sync
-#usr/share/dahdi
-usr/share/dahdi/FPGA_1141.hex
-usr/share/dahdi/FPGA_1151.hex
-usr/share/dahdi/FPGA_1161.hex
-usr/share/dahdi/FPGA_FXS.hex
-usr/share/dahdi/PIC_TYPE_1.hex
-usr/share/dahdi/PIC_TYPE_2.hex
-usr/share/dahdi/PIC_TYPE_3.hex
-usr/share/dahdi/PIC_TYPE_4.hex
-usr/share/dahdi/USB_FW.hex
-usr/share/dahdi/XppConfig.pm
-usr/share/dahdi/astribank_hook
-usr/share/dahdi/init_card_1_30
-usr/share/dahdi/init_card_2_30
-usr/share/dahdi/init_card_3_30
-usr/share/dahdi/init_card_4_30
-usr/share/dahdi/waitfor_xpds
-usr/share/dahdi/xpp_fxloader
-#usr/share/man/man8/astribank_allow.8
-#usr/share/man/man8/astribank_hexload.8
-#usr/share/man/man8/astribank_is_starting.8
-#usr/share/man/man8/astribank_tool.8
-#usr/share/man/man8/dahdi_cfg.8
-#usr/share/man/man8/dahdi_genconf.8
-#usr/share/man/man8/dahdi_hardware.8
-#usr/share/man/man8/dahdi_monitor.8
-#usr/share/man/man8/dahdi_registration.8
-#usr/share/man/man8/dahdi_scan.8
-#usr/share/man/man8/dahdi_test.8
-#usr/share/man/man8/dahdi_tool.8
-#usr/share/man/man8/fpga_load.8
-#usr/share/man/man8/fxotune.8
-#usr/share/man/man8/lsdahdi.8
-#usr/share/man/man8/twinstar.8
-#usr/share/man/man8/xpp_blink.8
-#usr/share/man/man8/xpp_sync.8
-#var/ipfire/asterisk
-#var/ipfire/asterisk/dahdi
-var/ipfire/asterisk/dahdi/genconf_parameters
-var/ipfire/asterisk/dahdi/init.conf
-var/ipfire/asterisk/dahdi/modules
-var/ipfire/asterisk/dahdi/system.conf
diff --git a/config/rootfiles/packages/directfb b/config/rootfiles/packages/directfb
deleted file mode 100644 (file)
index e69de29..0000000
index 65c346bdade9b01b80793fcbfa5bdb74ad362aa4..7e10eee41f87ff07ff2adcafc9b86084025acb59 100644 (file)
@@ -6,11 +6,13 @@ usr/lib/libebt_among.so
 usr/lib/libebt_arp.so
 usr/lib/libebt_arpreply.so
 usr/lib/libebt_ip.so
+usr/lib/libebt_ip6.so
 usr/lib/libebt_limit.so
 usr/lib/libebt_log.so
 usr/lib/libebt_mark.so
 usr/lib/libebt_mark_m.so
 usr/lib/libebt_nat.so
+usr/lib/libebt_nflog.so
 usr/lib/libebt_pkttype.so
 usr/lib/libebt_redirect.so
 usr/lib/libebt_standard.so
index d5ca870976bf04d3eb5909d59e33cf5ead21d546..e841bbff87e245728a0af3d4364462fa5a02371c 100644 (file)
@@ -28,8 +28,6 @@ usr/lib/libFLAC.so.8
 usr/lib/libFLAC.so.8.2.0
 #usr/lib/pkgconfig/flac++.pc
 #usr/lib/pkgconfig/flac.pc
-#usr/man/man1/flac.1
-#usr/man/man1/metaflac.1
 #usr/share/aclocal/libFLAC++.m4
 #usr/share/aclocal/libFLAC.m4
 #usr/share/doc/flac-1.2.1
@@ -312,3 +310,5 @@ usr/lib/libFLAC.so.8.2.0
 #usr/share/doc/flac-1.2.1/html/ru/index.html
 #usr/share/doc/flac-1.2.1/html/ru/links.html
 #usr/share/doc/flac-1.2.1/html/ru/news.html
+#usr/share/man/man1/flac.1
+#usr/share/man/man1/metaflac.1
index b92070e074dcbb150cb3f34bd5ff578458bd9f26..a2691df55536d5a6bcdcd97d8f65fbd66acf5ca8 100644 (file)
@@ -9,8 +9,8 @@ usr/lib/perl5/site_perl/5.12.3/Error.pm
 usr/lib/perl5/site_perl/5.12.3/Git
 usr/lib/perl5/site_perl/5.12.3/Git.pm
 usr/lib/perl5/site_perl/5.12.3/Git/I18N.pm
-#usr/lib/perl5/site_perl/5.12.3/i586-linux-thread-multi/auto/Git
-#usr/lib/perl5/site_perl/5.12.3/i586-linux-thread-multi/auto/Git/.packlist
+#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Git
+#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Git/.packlist
 usr/lib/python2.7/site-packages/git_remote_helpers
 #usr/lib/python2.7/site-packages/git_remote_helpers-0.1.0-py2.7.egg-info
 usr/lib/python2.7/site-packages/git_remote_helpers/__init__.py
index f7b18a7c9aef808f49a79505ed7d053ca8099020..450adfb49a9bf7cf21a6faff8c1218226f03fe3d 100644 (file)
@@ -1,9 +1,9 @@
+etc/fcron.daily/gnump3d-index
 #etc/gnump3d
 etc/gnump3d/file.types
 etc/gnump3d/gnump3d.conf
 etc/gnump3d/mime.types
 etc/rc.d/init.d/gnump3d
-etc/fcron.daily/gnump3d-index
 usr/bin/gnump3d
 usr/bin/gnump3d-index
 usr/bin/gnump3d-top
@@ -43,7 +43,8 @@ usr/lib/perl5/5.12.3/gnump3d/readtags.pm
 usr/lib/perl5/5.12.3/gnump3d/sorting.pm
 usr/lib/perl5/5.12.3/gnump3d/tagcache.pm
 usr/lib/perl5/5.12.3/gnump3d/url.pm
-usr/lib/perl5/5.12.3/Pod
+#usr/local/man
+#usr/local/man/man1
 #usr/local/man/man1/gnump3d-index.1
 #usr/local/man/man1/gnump3d-top.1
 #usr/local/man/man1/gnump3d.1
@@ -53,7 +54,6 @@ usr/share/gnump3d
 #usr/share/gnump3d/Avalon/AUTHOR
 #usr/share/gnump3d/Avalon/COPYING.html
 #usr/share/gnump3d/Avalon/base.css
-#usr/share/gnump3d/Avalon/bug.html
 #usr/share/gnump3d/Avalon/error.html
 #usr/share/gnump3d/Avalon/gnump3d-logo.jpg
 #usr/share/gnump3d/Avalon/html_footer.tmpl
@@ -77,7 +77,6 @@ usr/share/gnump3d
 #usr/share/gnump3d/BlueBox/AUTHOR
 #usr/share/gnump3d/BlueBox/BlueBox.css
 #usr/share/gnump3d/BlueBox/COPYING.html
-#usr/share/gnump3d/BlueBox/bug.html
 #usr/share/gnump3d/BlueBox/error.html
 #usr/share/gnump3d/BlueBox/extras.html
 #usr/share/gnump3d/BlueBox/footer.tmpl
@@ -99,7 +98,6 @@ usr/share/gnump3d
 #usr/share/gnump3d/Clean
 #usr/share/gnump3d/Clean/AUTHOR
 #usr/share/gnump3d/Clean/COPYING.html
-#usr/share/gnump3d/Clean/bug.html
 #usr/share/gnump3d/Clean/error.html
 #usr/share/gnump3d/Clean/index.html
 #usr/share/gnump3d/Clean/info.html
@@ -118,7 +116,6 @@ usr/share/gnump3d
 #usr/share/gnump3d/LaFrere
 #usr/share/gnump3d/LaFrere/AUTHOR
 #usr/share/gnump3d/LaFrere/COPYING.html
-#usr/share/gnump3d/LaFrere/bug.html
 #usr/share/gnump3d/LaFrere/error.html
 #usr/share/gnump3d/LaFrere/index.html
 #usr/share/gnump3d/LaFrere/info.html
@@ -137,7 +134,6 @@ usr/share/gnump3d
 #usr/share/gnump3d/Liquid/AUTHOR
 #usr/share/gnump3d/Liquid/COPYING.html
 #usr/share/gnump3d/Liquid/bck.gif
-#usr/share/gnump3d/Liquid/bug.html
 #usr/share/gnump3d/Liquid/cel-bar-anthrazite-act.gif
 #usr/share/gnump3d/Liquid/cel-bar-anthrazite.gif
 #usr/share/gnump3d/Liquid/cel-bar-aqua-act.gif
@@ -188,7 +184,6 @@ usr/share/gnump3d
 #usr/share/gnump3d/Musicus
 #usr/share/gnump3d/Musicus/AUTHOR
 #usr/share/gnump3d/Musicus/COPYING.html
-#usr/share/gnump3d/Musicus/bug.html
 #usr/share/gnump3d/Musicus/error.html
 #usr/share/gnump3d/Musicus/extras.html
 #usr/share/gnump3d/Musicus/footer.tmpl
@@ -214,7 +209,6 @@ usr/share/gnump3d
 #usr/share/gnump3d/Nomad/Nomad_theme.css
 #usr/share/gnump3d/Nomad/SmallHome.gif
 #usr/share/gnump3d/Nomad/bg.gif
-#usr/share/gnump3d/Nomad/bug.html
 #usr/share/gnump3d/Nomad/error.html
 #usr/share/gnump3d/Nomad/gnump3d_themes_footer.tmpl
 #usr/share/gnump3d/Nomad/gnump3d_themes_header.tmpl
@@ -235,7 +229,6 @@ usr/share/gnump3d
 #usr/share/gnump3d/SchwartzNGrau
 #usr/share/gnump3d/SchwartzNGrau/AUTHOR
 #usr/share/gnump3d/SchwartzNGrau/COPYING.html
-#usr/share/gnump3d/SchwartzNGrau/bug.html
 #usr/share/gnump3d/SchwartzNGrau/clear.gif
 #usr/share/gnump3d/SchwartzNGrau/error.html
 #usr/share/gnump3d/SchwartzNGrau/index.html
@@ -254,7 +247,6 @@ usr/share/gnump3d
 #usr/share/gnump3d/Tabular
 #usr/share/gnump3d/Tabular/AUTHOR
 #usr/share/gnump3d/Tabular/COPYING.html
-#usr/share/gnump3d/Tabular/bug.html
 #usr/share/gnump3d/Tabular/error.html
 #usr/share/gnump3d/Tabular/extras.html
 #usr/share/gnump3d/Tabular/footer.tmpl
@@ -276,7 +268,6 @@ usr/share/gnump3d
 #usr/share/gnump3d/Thexder
 #usr/share/gnump3d/Thexder/AUTHOR
 #usr/share/gnump3d/Thexder/COPYING.html
-#usr/share/gnump3d/Thexder/bug.html
 #usr/share/gnump3d/Thexder/dig_temp2_01.jpg
 #usr/share/gnump3d/Thexder/dig_temp2_02.jpg
 #usr/share/gnump3d/Thexder/dig_temp2_03.gif
@@ -308,7 +299,6 @@ usr/share/gnump3d
 #usr/share/gnump3d/default
 #usr/share/gnump3d/default/AUTHOR
 #usr/share/gnump3d/default/COPYING.html
-#usr/share/gnump3d/default/bug.html
 #usr/share/gnump3d/default/error.html
 #usr/share/gnump3d/default/footer.tmpl
 #usr/share/gnump3d/default/header.tmpl
@@ -328,7 +318,6 @@ usr/share/gnump3d
 #usr/share/gnump3d/dotNET
 #usr/share/gnump3d/dotNET/AUTHOR
 #usr/share/gnump3d/dotNET/COPYING.html
-#usr/share/gnump3d/dotNET/bug.html
 #usr/share/gnump3d/dotNET/content.tmpl
 #usr/share/gnump3d/dotNET/error.html
 #usr/share/gnump3d/dotNET/header.tmpl
@@ -365,7 +354,6 @@ usr/share/gnump3d
 #usr/share/gnump3d/nausicaa
 #usr/share/gnump3d/nausicaa/AUTHOR
 #usr/share/gnump3d/nausicaa/COPYING.html
-#usr/share/gnump3d/nausicaa/bug.html
 #usr/share/gnump3d/nausicaa/error.html
 #usr/share/gnump3d/nausicaa/extras.html
 #usr/share/gnump3d/nausicaa/index.html
@@ -382,7 +370,6 @@ usr/share/gnump3d
 #usr/share/gnump3d/redgrey
 #usr/share/gnump3d/redgrey/AUTHOR
 #usr/share/gnump3d/redgrey/COPYING.html
-#usr/share/gnump3d/redgrey/bug.html
 #usr/share/gnump3d/redgrey/error.html
 #usr/share/gnump3d/redgrey/header.tmpl
 #usr/share/gnump3d/redgrey/index.html
@@ -400,5 +387,4 @@ usr/share/gnump3d
 var/cache/gnump3d
 var/cache/gnump3d/serving
 var/log/gnump3d
-#var/mp3
 var/mp3/info
diff --git a/config/rootfiles/packages/gpgme b/config/rootfiles/packages/gpgme
new file mode 100644 (file)
index 0000000..2a03523
--- /dev/null
@@ -0,0 +1,18 @@
+usr/bin/gpgme-config
+#usr/include/gpgme.h
+#usr/lib/libgpgme-pthread.la
+usr/lib/libgpgme-pthread.so
+usr/lib/libgpgme-pthread.so.11
+usr/lib/libgpgme-pthread.so.11.8.1
+#usr/lib/libgpgme.la
+usr/lib/libgpgme.so
+usr/lib/libgpgme.so.11
+usr/lib/libgpgme.so.11.8.1
+#usr/share/aclocal/gpgme.m4
+usr/share/common-lisp/source/gpgme
+usr/share/common-lisp/source/gpgme/gpgme-package.lisp
+usr/share/common-lisp/source/gpgme/gpgme.asd
+usr/share/common-lisp/source/gpgme/gpgme.lisp
+#usr/share/info/gpgme.info
+#usr/share/info/gpgme.info-1
+#usr/share/info/gpgme.info-2
index 551afa73a617deaf7566001864a49c74efe34d3f..74a271140b9f9bd2396ae9af5fde411393cbd4fa 100644 (file)
-usr/bin/hpijs
-#usr/share/doc/hplip-2.7.10
-#usr/share/doc/hplip-2.7.10/COPYING
-#usr/share/doc/hplip-2.7.10/README_LIBJPG
-#usr/share/doc/hplip-2.7.10/about.html
-#usr/share/doc/hplip-2.7.10/contacts.html
-#usr/share/doc/hplip-2.7.10/downloads.html
-#usr/share/doc/hplip-2.7.10/faqs.html
-#usr/share/doc/hplip-2.7.10/features.html
-#usr/share/doc/hplip-2.7.10/howtos
-#usr/share/doc/hplip-2.7.10/howtos/build.html
-#usr/share/doc/hplip-2.7.10/howtos/faxing.html
-#usr/share/doc/hplip-2.7.10/howtos/index.html
-#usr/share/doc/hplip-2.7.10/howtos/install.html
-#usr/share/doc/hplip-2.7.10/howtos/io.html
-#usr/share/doc/hplip-2.7.10/howtos/known.html
-#usr/share/doc/hplip-2.7.10/howtos/negative.html
-#usr/share/doc/hplip-2.7.10/howtos/other.html
-#usr/share/doc/hplip-2.7.10/howtos/pcard.html
-#usr/share/doc/hplip-2.7.10/howtos/printing.html
-#usr/share/doc/hplip-2.7.10/howtos/scanning.html
-#usr/share/doc/hplip-2.7.10/howtos/toolbox.html
-#usr/share/doc/hplip-2.7.10/howtos/uninstall.html
-#usr/share/doc/hplip-2.7.10/images
-#usr/share/doc/hplip-2.7.10/images/Screenshot-xsane.png
-#usr/share/doc/hplip-2.7.10/images/back.png
-#usr/share/doc/hplip-2.7.10/images/button.png
-#usr/share/doc/hplip-2.7.10/images/circular.gif
-#usr/share/doc/hplip-2.7.10/images/cups_device_list.png
-#usr/share/doc/hplip-2.7.10/images/cups_left.png
-#usr/share/doc/hplip-2.7.10/images/cups_model_list.png
-#usr/share/doc/hplip-2.7.10/images/cups_opening.png
-#usr/share/doc/hplip-2.7.10/images/cups_printer_model.png
-#usr/share/doc/hplip-2.7.10/images/download.png
-#usr/share/doc/hplip-2.7.10/images/favicon.ico
-#usr/share/doc/hplip-2.7.10/images/favicon2.ico
-#usr/share/doc/hplip-2.7.10/images/fullbleed_1.png
-#usr/share/doc/hplip-2.7.10/images/fullbleed_2.png
-#usr/share/doc/hplip-2.7.10/images/fullbleed_3.png
-#usr/share/doc/hplip-2.7.10/images/fullbleed_4.png
-#usr/share/doc/hplip-2.7.10/images/gs_hpijs.png
-#usr/share/doc/hplip-2.7.10/images/hp-tux-printer.png
-#usr/share/doc/hplip-2.7.10/images/hp_invent_logo.png
-#usr/share/doc/hplip-2.7.10/images/hplip_overview.png
-#usr/share/doc/hplip-2.7.10/images/hpliplogo.png
-#usr/share/doc/hplip-2.7.10/images/hplogo.png
-#usr/share/doc/hplip-2.7.10/images/hplogo2.png
-#usr/share/doc/hplip-2.7.10/images/linux_printing_logo.png
-#usr/share/doc/hplip-2.7.10/images/linuxlogo.png
-#usr/share/doc/hplip-2.7.10/images/network_appssocket.png
-#usr/share/doc/hplip-2.7.10/images/network_device_list.png
-#usr/share/doc/hplip-2.7.10/images/network_device_uri.png
-#usr/share/doc/hplip-2.7.10/images/network_model_list.png
-#usr/share/doc/hplip-2.7.10/images/osi_certified.png
-#usr/share/doc/hplip-2.7.10/images/python-logo.png
-#usr/share/doc/hplip-2.7.10/images/rest2web.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_functions_copies.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_functions_fax.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_functions_unload.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_functions_xsane.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_hp_setup_step1.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_hp_setup_step2.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_hp_setup_step3.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_hp_setup_step4.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_hp_setup_step5.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_hp_setup_step6.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_installer_1.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_installer_10_postfix.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_installer_11.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_installer_12.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_installer_13.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_installer_14.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_installer_15.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_installer_2.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_installer_3.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_installer_4.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_installer_5.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_installer_6.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_installer_7_postfix.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_installer_9_postfix.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_toolbox_emailalerts.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_toolbox_functions.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_toolbox_functions_autorefresh.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_toolbox_functions_commands.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_toolbox_print_control.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_toolbox_print_functions.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_toolbox_print_print.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_toolbox_print_print1.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_toolbox_print_settings.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_toolbox_settings.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_toolbox_status.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_toolbox_supplies.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_toolbox_tools.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_functions_copies.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_functions_fax.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_functions_unload.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_functions_xsane.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_hp_setup_step1.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_hp_setup_step2.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_hp_setup_step3.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_hp_setup_step4.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_hp_setup_step5.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_hp_setup_step6.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_installer_1.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_installer_10_postfix.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_installer_11.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_installer_12.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_installer_13.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_installer_14.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_installer_15.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_installer_2.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_installer_3.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_installer_4.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_installer_5.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_installer_6.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_installer_7_postfix.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_installer_9_postfix.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_toolbox_emailalerts.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_toolbox_functions.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_toolbox_functions_autorefresh.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_toolbox_functions_commands.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_toolbox_print_control.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_toolbox_print_functions.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_toolbox_print_print.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_toolbox_print_print1.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_toolbox_print_settings.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_toolbox_settings.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_toolbox_status.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_toolbox_supplies.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_toolbox_tools.png
-#usr/share/doc/hplip-2.7.10/images/sflogo.png
-#usr/share/doc/hplip-2.7.10/images/topbar.png
-#usr/share/doc/hplip-2.7.10/images/tux.png
-#usr/share/doc/hplip-2.7.10/images/tuxlogo.png
-#usr/share/doc/hplip-2.7.10/images/tuxlogo2.png
-#usr/share/doc/hplip-2.7.10/images/view.png
-#usr/share/doc/hplip-2.7.10/images/yast_hardware.png
-#usr/share/doc/hplip-2.7.10/images/yast_opening_hw.png
-#usr/share/doc/hplip-2.7.10/images/yast_other_configure.png
-#usr/share/doc/hplip-2.7.10/images/yast_other_kind.png
-#usr/share/doc/hplip-2.7.10/images/yast_other_printer.png
-#usr/share/doc/hplip-2.7.10/images/yast_printer_model.png
-#usr/share/doc/hplip-2.7.10/index.html
-#usr/share/doc/hplip-2.7.10/install
-#usr/share/doc/hplip-2.7.10/install/index.html
-#usr/share/doc/hplip-2.7.10/install/install
-#usr/share/doc/hplip-2.7.10/install/install/index.html
-#usr/share/doc/hplip-2.7.10/install/manual
-#usr/share/doc/hplip-2.7.10/install/manual/configure.html
-#usr/share/doc/hplip-2.7.10/install/manual/distros
-#usr/share/doc/hplip-2.7.10/install/manual/distros/centos.html
-#usr/share/doc/hplip-2.7.10/install/manual/distros/debian.html
-#usr/share/doc/hplip-2.7.10/install/manual/distros/fedora_core.html
-#usr/share/doc/hplip-2.7.10/install/manual/distros/freebsd.html
-#usr/share/doc/hplip-2.7.10/install/manual/distros/gentoo.html
-#usr/share/doc/hplip-2.7.10/install/manual/distros/index.html
-#usr/share/doc/hplip-2.7.10/install/manual/distros/lfs.html
-#usr/share/doc/hplip-2.7.10/install/manual/distros/linspire.html
-#usr/share/doc/hplip-2.7.10/install/manual/distros/mac.html
-#usr/share/doc/hplip-2.7.10/install/manual/distros/mandriva.html
-#usr/share/doc/hplip-2.7.10/install/manual/distros/mepis.html
-#usr/share/doc/hplip-2.7.10/install/manual/distros/novell.html
-#usr/share/doc/hplip-2.7.10/install/manual/distros/other.html
-#usr/share/doc/hplip-2.7.10/install/manual/distros/redhat.html
-#usr/share/doc/hplip-2.7.10/install/manual/distros/redhatenterprise.html
-#usr/share/doc/hplip-2.7.10/install/manual/distros/slackware.html
-#usr/share/doc/hplip-2.7.10/install/manual/distros/ubuntu.html
-#usr/share/doc/hplip-2.7.10/install/manual/distros/windows.html
-#usr/share/doc/hplip-2.7.10/install/manual/distros/xandros.html
-#usr/share/doc/hplip-2.7.10/install/manual/download.html
-#usr/share/doc/hplip-2.7.10/install/manual/final.html
-#usr/share/doc/hplip-2.7.10/install/manual/hp_setup.html
-#usr/share/doc/hplip-2.7.10/install/manual/index.html
-#usr/share/doc/hplip-2.7.10/install/manual/make.html
-#usr/share/doc/hplip-2.7.10/install/manual/make_install.html
-#usr/share/doc/hplip-2.7.10/install/manual/permissions.html
-#usr/share/doc/hplip-2.7.10/install/step1
-#usr/share/doc/hplip-2.7.10/install/step1/apt.html
-#usr/share/doc/hplip-2.7.10/install/step1/index.html
-#usr/share/doc/hplip-2.7.10/install/step1/rpm.html
-#usr/share/doc/hplip-2.7.10/install/step2
-#usr/share/doc/hplip-2.7.10/install/step2/debian.html
-#usr/share/doc/hplip-2.7.10/install/step2/fc4.html
-#usr/share/doc/hplip-2.7.10/install/step2/freebsd.html
-#usr/share/doc/hplip-2.7.10/install/step2/index.html
-#usr/share/doc/hplip-2.7.10/install/step2/mandriva06.html
-#usr/share/doc/hplip-2.7.10/install/step2/other.html
-#usr/share/doc/hplip-2.7.10/install/step2/slackware.html
-#usr/share/doc/hplip-2.7.10/install/step2/suse10.html
-#usr/share/doc/hplip-2.7.10/install/step2/ubuntu510.html
-#usr/share/doc/hplip-2.7.10/install/step2/ubuntu606.html
-#usr/share/doc/hplip-2.7.10/install/step3
-#usr/share/doc/hplip-2.7.10/install/step3/index.html
-#usr/share/doc/hplip-2.7.10/install/step4
-#usr/share/doc/hplip-2.7.10/install/step4/cups
-#usr/share/doc/hplip-2.7.10/install/step4/cups/index.html
-#usr/share/doc/hplip-2.7.10/install/step4/cups/local.html
-#usr/share/doc/hplip-2.7.10/install/step4/cups/net.html
-#usr/share/doc/hplip-2.7.10/install/step4/index.html
-#usr/share/doc/hplip-2.7.10/install/step4/setup
-#usr/share/doc/hplip-2.7.10/install/step4/setup/index.html
-#usr/share/doc/hplip-2.7.10/install/step4/setup/local.html
-#usr/share/doc/hplip-2.7.10/install/step4/setup/net.html
-#usr/share/doc/hplip-2.7.10/install/step4/suse
-#usr/share/doc/hplip-2.7.10/install/step4/suse/index.html
-#usr/share/doc/hplip-2.7.10/legal.html
-#usr/share/doc/hplip-2.7.10/license.html
-#usr/share/doc/hplip-2.7.10/mailing_lists.html
-#usr/share/doc/hplip-2.7.10/other_support.html
-#usr/share/doc/hplip-2.7.10/release_notes.html
-#usr/share/doc/hplip-2.7.10/screenshots.html
-#usr/share/doc/hplip-2.7.10/styles
-#usr/share/doc/hplip-2.7.10/styles/default.css
-#usr/share/doc/hplip-2.7.10/styles/rest.css
-#usr/share/doc/hplip-2.7.10/support_statement.html
-#usr/share/doc/hplip-2.7.10/supported_devices
-#usr/share/doc/hplip-2.7.10/supported_devices/color_laser.html
-#usr/share/doc/hplip-2.7.10/supported_devices/color_laser_mfp.html
-#usr/share/doc/hplip-2.7.10/supported_devices/combined.html
-#usr/share/doc/hplip-2.7.10/supported_devices/edgeline.html
-#usr/share/doc/hplip-2.7.10/supported_devices/index.html
-#usr/share/doc/hplip-2.7.10/supported_devices/inkjet.html
-#usr/share/doc/hplip-2.7.10/supported_devices/inkjet_aio.html
-#usr/share/doc/hplip-2.7.10/supported_devices/laser.html
-#usr/share/doc/hplip-2.7.10/supported_devices/mono_laser_mfp.html
-#usr/share/doc/hplip-2.7.10/supported_devices/photosmart.html
-#usr/share/doc/hplip-2.7.10/supported_devices/scanjet.html
-#usr/share/doc/hplip-2.7.10/supported_devices/unsupported.html
-#usr/share/doc/hplip-2.7.10/system_requirements.html
-#usr/share/doc/hplip-2.7.10/tech_docs
-#usr/share/doc/hplip-2.7.10/tech_docs/device_classes.html
-#usr/share/doc/hplip-2.7.10/tech_docs/hpijs.html
-#usr/share/doc/hplip-2.7.10/tech_docs/index.html
-#usr/share/doc/hplip-2.7.10/tech_docs/man_pages
-#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/align.html
-#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/check.html
-#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/clean.html
-#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/colorcal.html
-#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/fab.html
-#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/firmware.html
-#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/hpssd.html
-#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/index.html
-#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/info.html
-#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/install.html
-#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/levels.html
-#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/makecopies.html
-#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/makeuri.html
-#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/print.html
-#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/probe.html
-#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/scan.html
-#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/sendfax.html
-#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/setup.html
-#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/testpage.html
-#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/timedate.html
-#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/toolbox.html
-#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/unload.html
-#usr/share/doc/hplip-2.7.10/tech_docs/overview.html
-#usr/share/doc/hplip-2.7.10/tech_docs/page_sizes.html
-#usr/share/doc/hplip-2.7.10/tech_docs/printable_areas.html
-#usr/share/doc/hplip-2.7.10/tech_docs/tarball_install.html
-#usr/share/doc/hplip-2.7.10/troubleshooting
-#usr/share/doc/hplip-2.7.10/troubleshooting/build.html
-#usr/share/doc/hplip-2.7.10/troubleshooting/distro.html
-#usr/share/doc/hplip-2.7.10/troubleshooting/faxing.html
-#usr/share/doc/hplip-2.7.10/troubleshooting/index.html
-#usr/share/doc/hplip-2.7.10/troubleshooting/install.html
-#usr/share/doc/hplip-2.7.10/troubleshooting/io.html
-#usr/share/doc/hplip-2.7.10/troubleshooting/network.html
-#usr/share/doc/hplip-2.7.10/troubleshooting/other.html
-#usr/share/doc/hplip-2.7.10/troubleshooting/parallel.html
-#usr/share/doc/hplip-2.7.10/troubleshooting/pcard.html
-#usr/share/doc/hplip-2.7.10/troubleshooting/printing.html
-#usr/share/doc/hplip-2.7.10/troubleshooting/scanning.html
-#usr/share/doc/hplip-2.7.10/troubleshooting/toolbox.html
-usr/share/foomatic/db/source/PPD/HP/HP_Color_LaserJet_3800.ppd.gz
-usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_4Si_v2011.110.ppd.gz
-usr/share/foomatic/db/source/PPD/HP/hp_LaserJet_4200_Series.ppd.gz
-usr/share/foomatic/db/source/printer/HP-OfficeJet_J3600.xml
-usr/share/foomatic/db/source/printer/HP-OfficeJet_J5500.xml
-usr/share/foomatic/db/source/printer/HP-OfficeJet_Pro_K8600.xml
-usr/share/foomatic/db/source/printer/HP-Officejet_K7100.xml
-usr/share/foomatic/db/source/printer/HP-PhotoSmart_C4380.xml
-usr/share/foomatic/db/source/printer/HP-PhotoSmart_C6200.xml
-usr/share/foomatic/db/source/printer/HP-PhotoSmart_C7200.xml
-usr/share/foomatic/db/source/printer/HP-PhotoSmart_C8100.xml
-usr/share/foomatic/db/source/printer/HP-PhotoSmart_D5300.xml
-usr/share/foomatic/db/source/printer/HP-PhotoSmart_D7200.xml
-usr/share/foomatic/db/source/printer/HP-PhotoSmart_D7400.xml
+#usr/share/doc/hplip-3.12.6
+#usr/share/doc/hplip-3.12.6/COPYING
+#usr/share/doc/hplip-3.12.6/README_LIBJPG
+#usr/share/doc/hplip-3.12.6/commandline.html
+#usr/share/doc/hplip-3.12.6/copying.html
+#usr/share/doc/hplip-3.12.6/copyright
+#usr/share/doc/hplip-3.12.6/devicemanager.html
+#usr/share/doc/hplip-3.12.6/faxtrouble.html
+#usr/share/doc/hplip-3.12.6/gettinghelp.html
+#usr/share/doc/hplip-3.12.6/hpscan.html
+#usr/share/doc/hplip-3.12.6/images
+#usr/share/doc/hplip-3.12.6/images/favicon.ico
+#usr/share/doc/hplip-3.12.6/images/print.png
+#usr/share/doc/hplip-3.12.6/images/toolbox_actions.png
+#usr/share/doc/hplip-3.12.6/images/toolbox_fax.png
+#usr/share/doc/hplip-3.12.6/images/toolbox_print_control.png
+#usr/share/doc/hplip-3.12.6/images/toolbox_print_settings.png
+#usr/share/doc/hplip-3.12.6/images/toolbox_status.png
+#usr/share/doc/hplip-3.12.6/images/toolbox_supplies.png
+#usr/share/doc/hplip-3.12.6/images/xsane.png
+#usr/share/doc/hplip-3.12.6/index.html
+#usr/share/doc/hplip-3.12.6/mainttask.html
+#usr/share/doc/hplip-3.12.6/plugins.html
+#usr/share/doc/hplip-3.12.6/print.html
+#usr/share/doc/hplip-3.12.6/printing.html
+#usr/share/doc/hplip-3.12.6/printoptions.html
+#usr/share/doc/hplip-3.12.6/printtroubleshooting.html
+#usr/share/doc/hplip-3.12.6/scanning.html
+#usr/share/doc/hplip-3.12.6/scantrouble.html
+#usr/share/doc/hplip-3.12.6/sendfax.html
+#usr/share/doc/hplip-3.12.6/setup.html
+#usr/share/doc/hplip-3.12.6/styles
+#usr/share/doc/hplip-3.12.6/styles/css.css
+#usr/share/doc/hplip-3.12.6/systray.html
+#usr/share/doc/hplip-3.12.6/troubleshooting.html
+#usr/share/doc/hplip-3.12.6/uninstalling.html
+#usr/share/doc/hplip-3.12.6/upgrading.html
 usr/share/hplip
+#usr/share/ppd
+usr/share/ppd/HP
+#usr/share/ppd/HP/hp-business_inkjet_2250-ps.ppd.gz
+#usr/share/ppd/HP/hp-business_inkjet_2280-ps.ppd.gz
+#usr/share/ppd/HP/hp-business_inkjet_2300-ps.ppd.gz
+#usr/share/ppd/HP/hp-business_inkjet_2600-ps.ppd.gz
+#usr/share/ppd/HP/hp-business_inkjet_2800-ps.ppd.gz
+#usr/share/ppd/HP/hp-business_inkjet_3000-ps.ppd.gz
+#usr/share/ppd/HP/hp-cm8050_mfp_with_edgeline-ps.ppd.gz
+#usr/share/ppd/HP/hp-cm8060_mfp_with_edgeline-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_2500-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_2500_series-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_2550_series-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_2605-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_2605dn-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_2605dtn-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_2700-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_2700n-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_2800-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_2820-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_2830-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_2840-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_3000-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_3700-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_3700n-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_3800-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_4500-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_4550-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_4600-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_4600_series-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_4610-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_4650-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_4700-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_4730mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_5500-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_5550-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_5m-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_8500-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_8550-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_9500-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_9500_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_cm1015-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_cm1017-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_cm1312_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_cm1312nfi_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_cm2320_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_cm2320fxi_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_cm2320n_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_cm2320nf_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_cm3530_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_cm4540_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_cm4730_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_cm6030_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_cm6040_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_cm6049_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_cp1514n-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_cp1515n-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_cp1518ni-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_cp2025-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_cp2025dn-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_cp2025n-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_cp2025x-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_cp3505-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_cp3525-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_cp4005-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_cp4020_series-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_cp4520_series-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_cp5225-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_cp5225dn-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_cp5225n-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_cp5520_series-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_cp6015-ps.ppd.gz
+#usr/share/ppd/HP/hp-designjet_4000ps.ppd.gz
+#usr/share/ppd/HP/hp-designjet_4020ps-ps.ppd.gz
+#usr/share/ppd/HP/hp-designjet_4500mfp.ppd.gz
+#usr/share/ppd/HP/hp-designjet_4500ps.ppd.gz
+#usr/share/ppd/HP/hp-designjet_4520mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-designjet_4520ps-ps.ppd.gz
+#usr/share/ppd/HP/hp-designjet_t1100ps_24in-ps.ppd.gz
+#usr/share/ppd/HP/hp-designjet_t1100ps_44in-ps.ppd.gz
+#usr/share/ppd/HP/hp-designjet_t1120ps_24in-ps.ppd.gz
+#usr/share/ppd/HP/hp-designjet_t1120ps_44in-ps.ppd.gz
+#usr/share/ppd/HP/hp-designjet_t1200_postscript-ps.ppd.gz
+#usr/share/ppd/HP/hp-designjet_t1300_postscript-ps.ppd.gz
+#usr/share/ppd/HP/hp-designjet_t2300_postscript-ps.ppd.gz
+#usr/share/ppd/HP/hp-designjet_t7100ps-ps.ppd.gz
+#usr/share/ppd/HP/hp-designjet_t7100ps_monochrome-ps.ppd.gz
+#usr/share/ppd/HP/hp-designjet_t770_postscript-ps.ppd.gz
+#usr/share/ppd/HP/hp-designjet_t770ps_24in-ps.ppd.gz
+#usr/share/ppd/HP/hp-designjet_t790ps_24in-ps.ppd.gz
+#usr/share/ppd/HP/hp-designjet_t790ps_44in-ps.ppd.gz
+#usr/share/ppd/HP/hp-designjet_z6100ps_42in_photo-ps.ppd.gz
+#usr/share/ppd/HP/hp-designjet_z6100ps_60in_photo-ps.ppd.gz
+#usr/share/ppd/HP/hp-designjet_z6200_42in_photo-ps.ppd.gz
+#usr/share/ppd/HP/hp-designjet_z6200_60in_photo-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_100_color_mfp_m175-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_1200-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_1200n-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_1220-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_1220se-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_1300-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_1300n-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_1300xi-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_1320-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_1320_series-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_1320n-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_1320nw-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_1320tn-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_200_colormfp_m275-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_2100-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_2100_series-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_2200-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_2200_series-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_2300-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_2300_series-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_2410-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_2420-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_2430-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_3015-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_3020-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_3030-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_3050-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_3052-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_3200m-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_3300_3310_3320-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_3380-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_3390-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_4-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_4000_series-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_400_m401-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_400_m401d-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_400_mfp_m425-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_4050_series-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_4100_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_4100_series-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_4200-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_4240-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_4250-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_4300-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_4345_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_4350-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_4_plus-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_4ml-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_4mp-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_4si-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_4v-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_5000-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_5000_series-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_500_color_m551-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_500_color_mfp_m575-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_500_mfp_m525-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_5100_series-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_5200-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_5200l-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_5200lx-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_5mp-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_5p-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_5si-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_5si_mopier-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_600_m601_m602_m603-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_6mp-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_6p-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_8000-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_8000_series-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_8100_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_8100_series-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_8150_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_9000_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_9000_series-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_9040-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_9040_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_9050-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_9050_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_9055mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_9065mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_cm1410_series-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_cp1520_series-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_m1522_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_m1522n_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_m1522nf_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_m1530_mfp_series-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_m2727_mfp_series-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_m3027_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_m3035_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_m4345_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_m4349_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_m4555_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_m5025_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_m5035_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_m9040_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_m9050_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_m9059_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_p2015_series-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_p2055_series-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_p3004-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_p3005-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_p3010_series-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_p4010_series-ps.ppd.gz
+#usr/share/ppd/HP/hp-lj_300_400_color_m351_m451-ps.ppd.gz
+#usr/share/ppd/HP/hp-lj_300_400_color_mfp_m375_m475-ps.ppd.gz
+#usr/share/ppd/HP/hp-mopier_240-ps.ppd.gz
+#usr/share/ppd/HP/hp-mopier_320-ps.ppd.gz
+#usr/share/ppd/HP/hp-officejet_pro_8000_enterprise_a811a-ps.ppd.gz
diff --git a/config/rootfiles/packages/ipfireseeder b/config/rootfiles/packages/ipfireseeder
deleted file mode 100644 (file)
index 0577ade..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-etc/rc.d/init.d/ipfireseeder
-#var/ipfire/seeder
-var/ipfire/seeder/ipfire-2.9.MACHINE-full-core51.iso.torrent
-#var/log/seeder
-var/log/seeder/info
index 2633518b294d45e812d198fc5c14e770f40438b9..0739db44517956552b5ae0291f0a4c8606ac047d 100644 (file)
@@ -385,6 +385,7 @@ var/ipfire/lcr/vbox_german/record_play.isdn
 var/ipfire/lcr/vbox_german/record_record.isdn
 var/ipfire/lcr/vbox_german/store_ask.isdn
 var/ipfire/lcr/vbox_german/store_done.isdn
+var/log/lcr
 usr/sbin/genextension
 usr/sbin/genrc
 usr/sbin/lcr
diff --git a/config/rootfiles/packages/libassuan b/config/rootfiles/packages/libassuan
new file mode 100644 (file)
index 0000000..efe0df5
--- /dev/null
@@ -0,0 +1,8 @@
+usr/bin/libassuan-config
+#usr/include/assuan.h
+#usr/lib/libassuan.la
+usr/lib/libassuan.so
+usr/lib/libassuan.so.0
+usr/lib/libassuan.so.0.3.0
+#usr/share/aclocal/libassuan.m4
+#usr/share/info/assuan.info
diff --git a/config/rootfiles/packages/libgpg-error b/config/rootfiles/packages/libgpg-error
new file mode 100644 (file)
index 0000000..dad751c
--- /dev/null
@@ -0,0 +1,25 @@
+usr/bin/gpg-error
+usr/bin/gpg-error-config
+#usr/include/gpg-error.h
+#usr/lib/libgpg-error.la
+usr/lib/libgpg-error.so
+usr/lib/libgpg-error.so.0
+usr/lib/libgpg-error.so.0.8.0
+#usr/share/aclocal/gpg-error.m4
+usr/share/common-lisp
+usr/share/common-lisp/source
+usr/share/common-lisp/source/gpg-error
+usr/share/common-lisp/source/gpg-error/gpg-error-codes.lisp
+usr/share/common-lisp/source/gpg-error/gpg-error-package.lisp
+usr/share/common-lisp/source/gpg-error/gpg-error.asd
+usr/share/common-lisp/source/gpg-error/gpg-error.lisp
+#usr/share/locale/cs/LC_MESSAGES/libgpg-error.mo
+usr/share/locale/de/LC_MESSAGES/libgpg-error.mo
+usr/share/locale/fr/LC_MESSAGES/libgpg-error.mo
+#usr/share/locale/it/LC_MESSAGES/libgpg-error.mo
+#usr/share/locale/nl/LC_MESSAGES/libgpg-error.mo
+#usr/share/locale/pl/LC_MESSAGES/libgpg-error.mo
+#usr/share/locale/ro/LC_MESSAGES/libgpg-error.mo
+#usr/share/locale/sv/LC_MESSAGES/libgpg-error.mo
+#usr/share/locale/vi/LC_MESSAGES/libgpg-error.mo
+#usr/share/locale/zh_CN/LC_MESSAGES/libgpg-error.mo
index e9ba57a439724fc8edbfe34694112f8ce08754b3..21a8d63a5360a4e2b73f134cd8a422d1b72e2829 100644 (file)
@@ -4,85 +4,83 @@
 #usr/include/ogg/os_types.h
 #usr/lib/libogg.a
 #usr/lib/libogg.la
-usr/lib/libogg.so
+#usr/lib/libogg.so
 usr/lib/libogg.so.0
-usr/lib/libogg.so.0.6.0
+usr/lib/libogg.so.0.8.0
 #usr/lib/pkgconfig/ogg.pc
 #usr/share/aclocal/ogg.m4
-#usr/share/doc/libogg-1.1.4
-#usr/share/doc/libogg-1.1.4/framing.html
-#usr/share/doc/libogg-1.1.4/index.html
-#usr/share/doc/libogg-1.1.4/ogg
-#usr/share/doc/libogg-1.1.4/ogg-multiplex.html
-#usr/share/doc/libogg-1.1.4/ogg/bitpacking.html
-#usr/share/doc/libogg-1.1.4/ogg/datastructures.html
-#usr/share/doc/libogg-1.1.4/ogg/decoding.html
-#usr/share/doc/libogg-1.1.4/ogg/encoding.html
-#usr/share/doc/libogg-1.1.4/ogg/general.html
-#usr/share/doc/libogg-1.1.4/ogg/index.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_packet.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_packet_clear.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_page.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_page_bos.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_page_checksum_set.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_page_continued.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_page_eos.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_page_granulepos.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_page_packets.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_page_pageno.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_page_serialno.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_page_version.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_stream_clear.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_stream_destroy.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_stream_eos.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_stream_flush.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_stream_init.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_stream_packetin.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_stream_packetout.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_stream_packetpeek.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_stream_pagein.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_stream_pageout.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_stream_reset.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_stream_reset_serialno.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_stream_state.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_sync_buffer.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_sync_clear.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_sync_destroy.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_sync_init.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_sync_pageout.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_sync_pageseek.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_sync_reset.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_sync_state.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_sync_wrote.html
-#usr/share/doc/libogg-1.1.4/ogg/oggpack_adv.html
-#usr/share/doc/libogg-1.1.4/ogg/oggpack_adv1.html
-#usr/share/doc/libogg-1.1.4/ogg/oggpack_bits.html
-#usr/share/doc/libogg-1.1.4/ogg/oggpack_buffer.html
-#usr/share/doc/libogg-1.1.4/ogg/oggpack_bytes.html
-#usr/share/doc/libogg-1.1.4/ogg/oggpack_get_buffer.html
-#usr/share/doc/libogg-1.1.4/ogg/oggpack_look.html
-#usr/share/doc/libogg-1.1.4/ogg/oggpack_look1.html
-#usr/share/doc/libogg-1.1.4/ogg/oggpack_read.html
-#usr/share/doc/libogg-1.1.4/ogg/oggpack_read1.html
-#usr/share/doc/libogg-1.1.4/ogg/oggpack_readinit.html
-#usr/share/doc/libogg-1.1.4/ogg/oggpack_reset.html
-#usr/share/doc/libogg-1.1.4/ogg/oggpack_write.html
-#usr/share/doc/libogg-1.1.4/ogg/oggpack_writealign.html
-#usr/share/doc/libogg-1.1.4/ogg/oggpack_writeclear.html
-#usr/share/doc/libogg-1.1.4/ogg/oggpack_writecopy.html
-#usr/share/doc/libogg-1.1.4/ogg/oggpack_writeinit.html
-#usr/share/doc/libogg-1.1.4/ogg/oggpack_writetrunc.html
-#usr/share/doc/libogg-1.1.4/ogg/overview.html
-#usr/share/doc/libogg-1.1.4/ogg/reference.html
-#usr/share/doc/libogg-1.1.4/ogg/style.css
-#usr/share/doc/libogg-1.1.4/ogg/vorbis_comment.html
-#usr/share/doc/libogg-1.1.4/ogg/vorbis_info.html
-#usr/share/doc/libogg-1.1.4/oggstream.html
-#usr/share/doc/libogg-1.1.4/rfc3533.txt
-#usr/share/doc/libogg-1.1.4/rfc3534.txt
-#usr/share/doc/libogg-1.1.4/stream.png
-#usr/share/doc/libogg-1.1.4/vorbisword2.png
-#usr/share/doc/libogg-1.1.4/white-ogg.png
-#usr/share/doc/libogg-1.1.4/white-xifish.png
-#usr/share/doc/libogg-1.1.4/rfc5334.txt
-#usr/share/doc/libogg-1.1.4/skeleton.html
+#usr/share/doc/libogg-1.3.0
+#usr/share/doc/libogg-1.3.0/framing.html
+#usr/share/doc/libogg-1.3.0/index.html
+#usr/share/doc/libogg-1.3.0/ogg
+#usr/share/doc/libogg-1.3.0/ogg-multiplex.html
+#usr/share/doc/libogg-1.3.0/ogg/bitpacking.html
+#usr/share/doc/libogg-1.3.0/ogg/datastructures.html
+#usr/share/doc/libogg-1.3.0/ogg/decoding.html
+#usr/share/doc/libogg-1.3.0/ogg/encoding.html
+#usr/share/doc/libogg-1.3.0/ogg/general.html
+#usr/share/doc/libogg-1.3.0/ogg/index.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_packet.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_packet_clear.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_page.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_page_bos.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_page_checksum_set.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_page_continued.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_page_eos.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_page_granulepos.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_page_packets.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_page_pageno.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_page_serialno.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_page_version.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_stream_clear.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_stream_destroy.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_stream_eos.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_stream_flush.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_stream_init.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_stream_packetin.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_stream_packetout.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_stream_packetpeek.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_stream_pagein.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_stream_pageout.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_stream_pageout_fill.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_stream_reset.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_stream_reset_serialno.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_stream_state.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_sync_buffer.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_sync_clear.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_sync_destroy.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_sync_init.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_sync_pageout.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_sync_pageseek.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_sync_reset.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_sync_state.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_sync_wrote.html
+#usr/share/doc/libogg-1.3.0/ogg/oggpack_adv.html
+#usr/share/doc/libogg-1.3.0/ogg/oggpack_adv1.html
+#usr/share/doc/libogg-1.3.0/ogg/oggpack_bits.html
+#usr/share/doc/libogg-1.3.0/ogg/oggpack_buffer.html
+#usr/share/doc/libogg-1.3.0/ogg/oggpack_bytes.html
+#usr/share/doc/libogg-1.3.0/ogg/oggpack_get_buffer.html
+#usr/share/doc/libogg-1.3.0/ogg/oggpack_look.html
+#usr/share/doc/libogg-1.3.0/ogg/oggpack_look1.html
+#usr/share/doc/libogg-1.3.0/ogg/oggpack_read.html
+#usr/share/doc/libogg-1.3.0/ogg/oggpack_read1.html
+#usr/share/doc/libogg-1.3.0/ogg/oggpack_readinit.html
+#usr/share/doc/libogg-1.3.0/ogg/oggpack_reset.html
+#usr/share/doc/libogg-1.3.0/ogg/oggpack_write.html
+#usr/share/doc/libogg-1.3.0/ogg/oggpack_writealign.html
+#usr/share/doc/libogg-1.3.0/ogg/oggpack_writeclear.html
+#usr/share/doc/libogg-1.3.0/ogg/oggpack_writecopy.html
+#usr/share/doc/libogg-1.3.0/ogg/oggpack_writeinit.html
+#usr/share/doc/libogg-1.3.0/ogg/oggpack_writetrunc.html
+#usr/share/doc/libogg-1.3.0/ogg/overview.html
+#usr/share/doc/libogg-1.3.0/ogg/reference.html
+#usr/share/doc/libogg-1.3.0/ogg/style.css
+#usr/share/doc/libogg-1.3.0/oggstream.html
+#usr/share/doc/libogg-1.3.0/rfc3533.txt
+#usr/share/doc/libogg-1.3.0/rfc5334.txt
+#usr/share/doc/libogg-1.3.0/skeleton.html
+#usr/share/doc/libogg-1.3.0/stream.png
+#usr/share/doc/libogg-1.3.0/vorbisword2.png
+#usr/share/doc/libogg-1.3.0/white-ogg.png
+#usr/share/doc/libogg-1.3.0/white-xifish.png
index 587d5149f9acb5f59825b56521c57ed621051803..de1d12d05540556ef5e1919b5122669e0b6eb04e 100644 (file)
@@ -1,13 +1,13 @@
 #usr/include/solv
 #usr/include/solv/bitmap.h
 #usr/include/solv/chksum.h
+#usr/include/solv/dataiterator.h
 #usr/include/solv/dirpool.h
 #usr/include/solv/evr.h
 #usr/include/solv/hash.h
 #usr/include/solv/knownid.h
 #usr/include/solv/policy.h
 #usr/include/solv/pool.h
-#usr/include/solv/pool_fileconflicts.h
 #usr/include/solv/poolarch.h
 #usr/include/solv/poolid.h
 #usr/include/solv/pooltypes.h
 #usr/include/solv/problems.h
 #usr/include/solv/queue.h
 #usr/include/solv/repo.h
-#usr/include/solv/repo_content.h
-#usr/include/solv/repo_deb.h
-#usr/include/solv/repo_deltainfoxml.h
-#usr/include/solv/repo_helix.h
-#usr/include/solv/repo_products.h
-#usr/include/solv/repo_releasefile_products.h
-#usr/include/solv/repo_repomdxml.h
-#usr/include/solv/repo_rpmdb.h
-#usr/include/solv/repo_rpmmd.h
 #usr/include/solv/repo_solv.h
-#usr/include/solv/repo_susetags.h
-#usr/include/solv/repo_updateinfoxml.h
 #usr/include/solv/repo_write.h
-#usr/include/solv/repo_zyppdb.h
 #usr/include/solv/repodata.h
-#usr/include/solv/repopage.h
 #usr/include/solv/rules.h
 #usr/include/solv/solv_xfopen.h
 #usr/include/solv/solvable.h
 #usr/include/solv/solverdebug.h
 #usr/include/solv/solvversion.h
 #usr/include/solv/strpool.h
+#usr/include/solv/testcase.h
 #usr/include/solv/tools_util.h
 #usr/include/solv/transaction.h
 #usr/include/solv/util.h
-usr/lib/libsolv.so
+#usr/lib/libsolv.so
 usr/lib/libsolv.so.0
-usr/lib/libsolvext.so
+#usr/lib/libsolvext.so
 usr/lib/libsolvext.so.0
+#usr/share/cmake
+#usr/share/cmake/Modules
+#usr/share/cmake/Modules/FindLibSolv.cmake
diff --git a/config/rootfiles/packages/libtool b/config/rootfiles/packages/libtool
deleted file mode 100644 (file)
index 528eac7..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-#usr/bin/libtool
-#usr/bin/libtoolize
-#usr/include/ltdl.h
-#usr/lib/libltdl.a
-#usr/lib/libltdl.la
-usr/lib/libltdl.so
-usr/lib/libltdl.so.3
-usr/lib/libltdl.so.3.1.4
-#usr/share/aclocal/libtool.m4
-#usr/share/aclocal/ltdl.m4
-#usr/share/info/libtool.info
-#usr/share/libtool
-#usr/share/libtool/config.guess
-#usr/share/libtool/config.sub
-#usr/share/libtool/install-sh
-#usr/share/libtool/libltdl
-#usr/share/libtool/libltdl/COPYING.LIB
-#usr/share/libtool/libltdl/Makefile.am
-#usr/share/libtool/libltdl/Makefile.in
-#usr/share/libtool/libltdl/README
-#usr/share/libtool/libltdl/acinclude.m4
-#usr/share/libtool/libltdl/aclocal.m4
-#usr/share/libtool/libltdl/config-h.in
-#usr/share/libtool/libltdl/config.guess
-#usr/share/libtool/libltdl/config.sub
-#usr/share/libtool/libltdl/configure
-#usr/share/libtool/libltdl/configure.ac
-#usr/share/libtool/libltdl/install-sh
-#usr/share/libtool/libltdl/ltdl.c
-#usr/share/libtool/libltdl/ltdl.h
-#usr/share/libtool/libltdl/ltmain.sh
-#usr/share/libtool/libltdl/missing
-#usr/share/libtool/ltmain.sh
index 212e864162c73cdcddcb4901164f78e829f0045a..e7f7c3c1bc9c53ce08def7bd288dfb47cf03579c 100644 (file)
 #usr/include/vorbis/vorbisfile.h
 #usr/lib/libvorbis.a
 #usr/lib/libvorbis.la
-usr/lib/libvorbis.so
+#usr/lib/libvorbis.so
 usr/lib/libvorbis.so.0
-usr/lib/libvorbis.so.0.4.3
+usr/lib/libvorbis.so.0.4.6
 #usr/lib/libvorbisenc.a
 #usr/lib/libvorbisenc.la
-usr/lib/libvorbisenc.so
+#usr/lib/libvorbisenc.so
 usr/lib/libvorbisenc.so.2
-usr/lib/libvorbisenc.so.2.0.6
+usr/lib/libvorbisenc.so.2.0.9
 #usr/lib/libvorbisfile.a
 #usr/lib/libvorbisfile.la
-usr/lib/libvorbisfile.so
+#usr/lib/libvorbisfile.so
 usr/lib/libvorbisfile.so.3
-usr/lib/libvorbisfile.so.3.3.2
+usr/lib/libvorbisfile.so.3.3.5
 #usr/lib/pkgconfig/vorbis.pc
 #usr/lib/pkgconfig/vorbisenc.pc
 #usr/lib/pkgconfig/vorbisfile.pc
 #usr/share/aclocal/vorbis.m4
-#usr/share/doc/libvorbis-1.2.3
-#usr/share/doc/libvorbis-1.2.3/Vorbis_I_spec.cfg
-#usr/share/doc/libvorbis-1.2.3/Vorbis_I_spec.css
-#usr/share/doc/libvorbis-1.2.3/Vorbis_I_spec.html
-#usr/share/doc/libvorbis-1.2.3/Vorbis_I_spec.pdf
-#usr/share/doc/libvorbis-1.2.3/Vorbis_I_spec.tex
-#usr/share/doc/libvorbis-1.2.3/eightphase.png
-#usr/share/doc/libvorbis-1.2.3/evenlsp.png
-#usr/share/doc/libvorbis-1.2.3/fish_xiph_org.png
-#usr/share/doc/libvorbis-1.2.3/floor1_inverse_dB_table.html
-#usr/share/doc/libvorbis-1.2.3/floorval.png
-#usr/share/doc/libvorbis-1.2.3/fourphase.png
-#usr/share/doc/libvorbis-1.2.3/framing.html
-#usr/share/doc/libvorbis-1.2.3/helper.html
-#usr/share/doc/libvorbis-1.2.3/index.html
-#usr/share/doc/libvorbis-1.2.3/lspmap.png
-#usr/share/doc/libvorbis-1.2.3/oddlsp.png
-#usr/share/doc/libvorbis-1.2.3/oggstream.html
-#usr/share/doc/libvorbis-1.2.3/programming.html
-#usr/share/doc/libvorbis-1.2.3/rfc5215.txt
-#usr/share/doc/libvorbis-1.2.3/rfc5215.xml
-#usr/share/doc/libvorbis-1.2.3/squarepolar.png
-#usr/share/doc/libvorbis-1.2.3/stereo.html
-#usr/share/doc/libvorbis-1.2.3/stream.png
-#usr/share/doc/libvorbis-1.2.3/v-comment.html
-#usr/share/doc/libvorbis-1.2.3/vorbis-clip.txt
-#usr/share/doc/libvorbis-1.2.3/vorbis-errors.txt
-#usr/share/doc/libvorbis-1.2.3/vorbis-fidelity.html
-#usr/share/doc/libvorbis-1.2.3/vorbis.html
-#usr/share/doc/libvorbis-1.2.3/vorbisenc
-#usr/share/doc/libvorbis-1.2.3/vorbisenc/changes.html
-#usr/share/doc/libvorbis-1.2.3/vorbisenc/examples.html
-#usr/share/doc/libvorbis-1.2.3/vorbisenc/index.html
-#usr/share/doc/libvorbis-1.2.3/vorbisenc/ov_ectl_ratemanage2_arg.html
-#usr/share/doc/libvorbis-1.2.3/vorbisenc/ov_ectl_ratemanage_arg.html
-#usr/share/doc/libvorbis-1.2.3/vorbisenc/overview.html
-#usr/share/doc/libvorbis-1.2.3/vorbisenc/reference.html
-#usr/share/doc/libvorbis-1.2.3/vorbisenc/style.css
-#usr/share/doc/libvorbis-1.2.3/vorbisenc/vorbis_encode_ctl.html
-#usr/share/doc/libvorbis-1.2.3/vorbisenc/vorbis_encode_init.html
-#usr/share/doc/libvorbis-1.2.3/vorbisenc/vorbis_encode_init_vbr.html
-#usr/share/doc/libvorbis-1.2.3/vorbisenc/vorbis_encode_setup_init.html
-#usr/share/doc/libvorbis-1.2.3/vorbisenc/vorbis_encode_setup_managed.html
-#usr/share/doc/libvorbis-1.2.3/vorbisenc/vorbis_encode_setup_vbr.html
-#usr/share/doc/libvorbis-1.2.3/vorbisenc/vorbis_info.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/OggVorbis_File.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/callbacks.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/chaining_example_c.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/chainingexample.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/crosslap.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/datastructures.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/decoding.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/example.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/exampleindex.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/fileinfo.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/index.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/initialization.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_bitrate.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_bitrate_instant.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_callbacks.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_clear.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_comment.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_crosslap.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_fopen.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_info.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_open.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_open_callbacks.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_pcm_seek.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_pcm_seek_lap.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_pcm_seek_page.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_pcm_seek_page_lap.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_pcm_tell.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_pcm_total.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_raw_seek.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_raw_seek_lap.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_raw_tell.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_raw_total.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_read.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_read_float.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_seekable.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_serialnumber.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_streams.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_test.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_test_callbacks.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_test_open.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_time_seek.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_time_seek_lap.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_time_seek_page.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_time_seek_page_lap.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_time_tell.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_time_total.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/overview.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/reference.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/return.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/seekexample.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/seeking.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/seeking_example_c.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/seeking_test_c.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/seekingexample.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/style.css
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/threads.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/vorbis_comment.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/vorbis_info.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/vorbisfile_example_c.html
-#usr/share/doc/libvorbis-1.2.3/vorbisword2.png
-#usr/share/doc/libvorbis-1.2.3/wait.png
-#usr/share/doc/libvorbis-1.2.3/white-xifish.png
+#usr/share/doc/libvorbis-1.3.3
+#usr/share/doc/libvorbis-1.3.3/doxygen-build.stamp
+#usr/share/doc/libvorbis-1.3.3/eightphase.png
+#usr/share/doc/libvorbis-1.3.3/evenlsp.png
+#usr/share/doc/libvorbis-1.3.3/fish_xiph_org.png
+#usr/share/doc/libvorbis-1.3.3/floor1_inverse_dB_table.html
+#usr/share/doc/libvorbis-1.3.3/floorval.png
+#usr/share/doc/libvorbis-1.3.3/fourphase.png
+#usr/share/doc/libvorbis-1.3.3/framing.html
+#usr/share/doc/libvorbis-1.3.3/helper.html
+#usr/share/doc/libvorbis-1.3.3/index.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis
+#usr/share/doc/libvorbis-1.3.3/libvorbis/index.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/overview.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/reference.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/return.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/style.css
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_analysis.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_analysis_blockout.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_analysis_buffer.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_analysis_headerout.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_analysis_init.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_analysis_wrote.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_bitrate_addblock.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_bitrate_flushpacket.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_block.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_block_clear.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_block_init.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_comment.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_comment_add.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_comment_add_tag.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_comment_clear.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_comment_init.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_comment_query.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_comment_query_count.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_commentheader_out.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_dsp_clear.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_dsp_state.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_granule_time.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_info.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_info_blocksize.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_info_clear.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_info_init.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_packet_blocksize.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_synthesis.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_synthesis_blockin.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_synthesis_halfrate.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_synthesis_halfrate_p.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_synthesis_headerin.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_synthesis_idheader.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_synthesis_init.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_synthesis_lapout.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_synthesis_pcmout.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_synthesis_read.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_synthesis_restart.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_synthesis_trackonly.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_version_string.html
+#usr/share/doc/libvorbis-1.3.3/lspmap.png
+#usr/share/doc/libvorbis-1.3.3/oddlsp.png
+#usr/share/doc/libvorbis-1.3.3/oggstream.html
+#usr/share/doc/libvorbis-1.3.3/programming.html
+#usr/share/doc/libvorbis-1.3.3/rfc5215.txt
+#usr/share/doc/libvorbis-1.3.3/rfc5215.xml
+#usr/share/doc/libvorbis-1.3.3/squarepolar.png
+#usr/share/doc/libvorbis-1.3.3/stereo.html
+#usr/share/doc/libvorbis-1.3.3/stream.png
+#usr/share/doc/libvorbis-1.3.3/v-comment.html
+#usr/share/doc/libvorbis-1.3.3/vorbis-clip.txt
+#usr/share/doc/libvorbis-1.3.3/vorbis-errors.txt
+#usr/share/doc/libvorbis-1.3.3/vorbis-fidelity.html
+#usr/share/doc/libvorbis-1.3.3/vorbis.html
+#usr/share/doc/libvorbis-1.3.3/vorbisenc
+#usr/share/doc/libvorbis-1.3.3/vorbisenc/changes.html
+#usr/share/doc/libvorbis-1.3.3/vorbisenc/examples.html
+#usr/share/doc/libvorbis-1.3.3/vorbisenc/index.html
+#usr/share/doc/libvorbis-1.3.3/vorbisenc/ovectl_ratemanage2_arg.html
+#usr/share/doc/libvorbis-1.3.3/vorbisenc/ovectl_ratemanage_arg.html
+#usr/share/doc/libvorbis-1.3.3/vorbisenc/overview.html
+#usr/share/doc/libvorbis-1.3.3/vorbisenc/reference.html
+#usr/share/doc/libvorbis-1.3.3/vorbisenc/style.css
+#usr/share/doc/libvorbis-1.3.3/vorbisenc/vorbis_encode_ctl.html
+#usr/share/doc/libvorbis-1.3.3/vorbisenc/vorbis_encode_init.html
+#usr/share/doc/libvorbis-1.3.3/vorbisenc/vorbis_encode_init_vbr.html
+#usr/share/doc/libvorbis-1.3.3/vorbisenc/vorbis_encode_setup_init.html
+#usr/share/doc/libvorbis-1.3.3/vorbisenc/vorbis_encode_setup_managed.html
+#usr/share/doc/libvorbis-1.3.3/vorbisenc/vorbis_encode_setup_vbr.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/OggVorbis_File.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/callbacks.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/chaining_example_c.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/chainingexample.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/crosslap.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/datastructures.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/decoding.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/example.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/exampleindex.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/fileinfo.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/index.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/initialization.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_bitrate.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_bitrate_instant.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_callbacks.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_clear.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_comment.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_crosslap.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_fopen.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_info.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_open.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_open_callbacks.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_pcm_seek.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_pcm_seek_lap.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_pcm_seek_page.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_pcm_seek_page_lap.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_pcm_tell.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_pcm_total.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_raw_seek.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_raw_seek_lap.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_raw_tell.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_raw_total.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_read.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_read_filter.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_read_float.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_seekable.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_serialnumber.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_streams.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_test.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_test_callbacks.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_test_open.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_time_seek.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_time_seek_lap.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_time_seek_page.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_time_seek_page_lap.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_time_tell.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_time_total.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/overview.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/reference.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/seekexample.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/seeking.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/seeking_example_c.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/seeking_test_c.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/seekingexample.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/style.css
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/threads.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/vorbisfile_example_c.html
+#usr/share/doc/libvorbis-1.3.3/vorbisword2.png
+#usr/share/doc/libvorbis-1.3.3/wait.png
+#usr/share/doc/libvorbis-1.3.3/white-xifish.png
index c4899a4d2d4011b45679c9fc1e58662821c0cef3..5a54f2487aa7fb3b20232911e0c213ba0a9dead3 100644 (file)
@@ -10,38 +10,29 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/arch/x86
 #lib/modules/KVER-ipfire-pae/kernel/arch/x86/crypto
 #lib/modules/KVER-ipfire-pae/kernel/arch/x86/crypto/aes-i586.ko
+#lib/modules/KVER-ipfire-pae/kernel/arch/x86/crypto/aesni-intel.ko
 #lib/modules/KVER-ipfire-pae/kernel/arch/x86/crypto/crc32c-intel.ko
 #lib/modules/KVER-ipfire-pae/kernel/arch/x86/crypto/salsa20-i586.ko
 #lib/modules/KVER-ipfire-pae/kernel/arch/x86/crypto/twofish-i586.ko
 #lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel
 #lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/apm.ko
 #lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/cpu
-#lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/cpu/cpufreq
-#lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.ko
-#lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/cpu/cpufreq/cpufreq-nforce2.ko
-#lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/cpu/cpufreq/e_powersaver.ko
-#lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/cpu/cpufreq/gx-suspmod.ko
-#lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/cpu/cpufreq/longhaul.ko
-#lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/cpu/cpufreq/longrun.ko
-#lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/cpu/cpufreq/p4-clockmod.ko
-#lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/cpu/cpufreq/powernow-k6.ko
-#lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/cpu/cpufreq/powernow-k7.ko
-#lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/cpu/cpufreq/powernow-k8.ko
-#lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.ko
-#lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/cpu/cpufreq/speedstep-ich.ko
-#lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/cpu/cpufreq/speedstep-lib.ko
-#lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/cpu/cpufreq/speedstep-smi.ko
 #lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/cpu/mcheck
 #lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/cpu/mcheck/mce-inject.ko
 #lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/microcode.ko
 #lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/msr.ko
-#lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/scx200.ko
 #lib/modules/KVER-ipfire-pae/kernel/arch/x86/kvm
 #lib/modules/KVER-ipfire-pae/kernel/arch/x86/kvm/kvm-amd.ko
 #lib/modules/KVER-ipfire-pae/kernel/arch/x86/kvm/kvm-intel.ko
 #lib/modules/KVER-ipfire-pae/kernel/arch/x86/kvm/kvm.ko
+#lib/modules/KVER-ipfire-pae/kernel/arch/x86/platform
+#lib/modules/KVER-ipfire-pae/kernel/arch/x86/platform/scx200
+#lib/modules/KVER-ipfire-pae/kernel/arch/x86/platform/scx200/scx200.ko
 #lib/modules/KVER-ipfire-pae/kernel/crypto
 #lib/modules/KVER-ipfire-pae/kernel/crypto/aes_generic.ko
+#lib/modules/KVER-ipfire-pae/kernel/crypto/af_alg.ko
+#lib/modules/KVER-ipfire-pae/kernel/crypto/algif_hash.ko
+#lib/modules/KVER-ipfire-pae/kernel/crypto/algif_skcipher.ko
 #lib/modules/KVER-ipfire-pae/kernel/crypto/ansi_cprng.ko
 #lib/modules/KVER-ipfire-pae/kernel/crypto/anubis.ko
 #lib/modules/KVER-ipfire-pae/kernel/crypto/arc4.ko
@@ -53,7 +44,9 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/crypto/async_tx/async_xor.ko
 #lib/modules/KVER-ipfire-pae/kernel/crypto/async_tx/raid6test.ko
 #lib/modules/KVER-ipfire-pae/kernel/crypto/authenc.ko
-#lib/modules/KVER-ipfire-pae/kernel/crypto/blowfish.ko
+#lib/modules/KVER-ipfire-pae/kernel/crypto/authencesn.ko
+#lib/modules/KVER-ipfire-pae/kernel/crypto/blowfish_common.ko
+#lib/modules/KVER-ipfire-pae/kernel/crypto/blowfish_generic.ko
 #lib/modules/KVER-ipfire-pae/kernel/crypto/camellia.ko
 #lib/modules/KVER-ipfire-pae/kernel/crypto/cast5.ko
 #lib/modules/KVER-ipfire-pae/kernel/crypto/cast6.ko
@@ -61,6 +54,7 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/crypto/ccm.ko
 #lib/modules/KVER-ipfire-pae/kernel/crypto/crc32c.ko
 #lib/modules/KVER-ipfire-pae/kernel/crypto/cryptd.ko
+#lib/modules/KVER-ipfire-pae/kernel/crypto/crypto_user.ko
 #lib/modules/KVER-ipfire-pae/kernel/crypto/ctr.ko
 #lib/modules/KVER-ipfire-pae/kernel/crypto/cts.ko
 #lib/modules/KVER-ipfire-pae/kernel/crypto/des_generic.ko
@@ -72,9 +66,11 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/crypto/khazad.ko
 #lib/modules/KVER-ipfire-pae/kernel/crypto/lrw.ko
 #lib/modules/KVER-ipfire-pae/kernel/crypto/lzo.ko
+#lib/modules/KVER-ipfire-pae/kernel/crypto/md4.ko
 #lib/modules/KVER-ipfire-pae/kernel/crypto/md5.ko
 #lib/modules/KVER-ipfire-pae/kernel/crypto/michael_mic.ko
 #lib/modules/KVER-ipfire-pae/kernel/crypto/pcbc.ko
+#lib/modules/KVER-ipfire-pae/kernel/crypto/pcrypt.ko
 #lib/modules/KVER-ipfire-pae/kernel/crypto/rmd128.ko
 #lib/modules/KVER-ipfire-pae/kernel/crypto/rmd160.ko
 #lib/modules/KVER-ipfire-pae/kernel/crypto/rmd256.ko
@@ -88,8 +84,8 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/crypto/sha512_generic.ko
 #lib/modules/KVER-ipfire-pae/kernel/crypto/tea.ko
 #lib/modules/KVER-ipfire-pae/kernel/crypto/tgr192.ko
-#lib/modules/KVER-ipfire-pae/kernel/crypto/twofish.ko
 #lib/modules/KVER-ipfire-pae/kernel/crypto/twofish_common.ko
+#lib/modules/KVER-ipfire-pae/kernel/crypto/twofish_generic.ko
 #lib/modules/KVER-ipfire-pae/kernel/crypto/vmac.ko
 #lib/modules/KVER-ipfire-pae/kernel/crypto/wp512.ko
 #lib/modules/KVER-ipfire-pae/kernel/crypto/xcbc.ko
@@ -99,26 +95,31 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/drivers
 #lib/modules/KVER-ipfire-pae/kernel/drivers/acpi
 #lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/ac.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/acpi_ipmi.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/acpi_pad.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/battery.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/button.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/container.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/ec_sys.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/fan.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/pci_slot.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/power_meter.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/processor.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/sbs.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/sbshc.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/thermal.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/video.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/ata
+#lib/modules/KVER-ipfire-pae/kernel/drivers/ata/acard-ahci.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/ahci.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/ata/ahci_platform.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/ata_generic.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/ata_piix.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/ata/libahci.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/libata.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_acpi.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_ali.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_amd.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_arasan_cf.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_artop.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_atiixp.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_atp867x.ko
@@ -151,7 +152,7 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_pcmcia.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_pdc2027x.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_pdc202xx_old.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_qdi.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_piccolo.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_radisys.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_rdc.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_rz1000.ko
@@ -163,7 +164,6 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_sl82c105.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_triflex.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_via.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_winbond.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pdc_adma.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/sata_inic162x.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/sata_mv.ko
@@ -195,6 +195,11 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/drivers/atm/suni.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/atm/uPD98402.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/atm/zatm.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/base
+#lib/modules/KVER-ipfire-pae/kernel/drivers/base/regmap
+#lib/modules/KVER-ipfire-pae/kernel/drivers/base/regmap/regmap-i2c.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/bcma
+#lib/modules/KVER-ipfire-pae/kernel/drivers/bcma/bcma.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/block
 #lib/modules/KVER-ipfire-pae/kernel/drivers/block/DAC960.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/block/aoe
@@ -205,9 +210,11 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/drivers/block/floppy.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/block/nbd.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/block/osdblk.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/block/rbd.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/block/sx8.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/block/virtio_blk.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth
+#lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth/ath3k.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth/bcm203x.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth/bfusb.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth/bluecard_cs.ko
@@ -218,6 +225,7 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth/btsdio.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth/btuart_cs.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth/btusb.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth/btwilink.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth/dtl1_cs.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth/hci_uart.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth/hci_vhci.ko
@@ -232,11 +240,11 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/drivers/char/agp/ati-agp.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/char/agp/efficeon-agp.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/char/agp/intel-agp.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/char/agp/intel-gtt.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/char/agp/nvidia-agp.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/char/agp/sis-agp.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/char/agp/sworks-agp.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/char/agp/via-agp.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/char/cs5535_gpio.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/char/hangcheck-timer.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/char/hw_random
 #lib/modules/KVER-ipfire-pae/kernel/drivers/char/hw_random/amd-rng.ko
@@ -256,56 +264,91 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/drivers/char/lp.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/char/mwave
 #lib/modules/KVER-ipfire-pae/kernel/drivers/char/mwave/mwave.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/char/nozomi.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/char/nsc_gpio.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/char/nvram.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/char/pc8736x_gpio.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/char/pcmcia
-#lib/modules/KVER-ipfire-pae/kernel/drivers/char/pcmcia/ipwireless
-#lib/modules/KVER-ipfire-pae/kernel/drivers/char/pcmcia/ipwireless/ipwireless.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/char/pcmcia/synclink_cs.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/char/ppdev.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/char/scx200_gpio.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/char/toshiba.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/clocksource
+#lib/modules/KVER-ipfire-pae/kernel/drivers/clocksource/cs5535-clockevt.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/clocksource/scx200_hrt.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/connector
 #lib/modules/KVER-ipfire-pae/kernel/drivers/connector/cn.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq
+#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/acpi-cpufreq.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/cpufreq-nforce2.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/cpufreq_conservative.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/cpufreq_ondemand.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/cpufreq_powersave.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/cpufreq_userspace.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/e_powersaver.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/gx-suspmod.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/longhaul.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/longrun.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/mperf.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/p4-clockmod.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/pcc-cpufreq.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/powernow-k6.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/powernow-k7.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/powernow-k8.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/speedstep-centrino.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/speedstep-ich.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/speedstep-lib.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/speedstep-smi.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/crypto
 #lib/modules/KVER-ipfire-pae/kernel/drivers/crypto/geode-aes.ko.off
-#lib/modules/KVER-ipfire-pae/kernel/drivers/crypto/hifn_795x.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/crypto/padlock-aes.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/crypto/padlock-sha.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/dca
 #lib/modules/KVER-ipfire-pae/kernel/drivers/dca/dca.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/dma
 #lib/modules/KVER-ipfire-pae/kernel/drivers/dma/dmatest.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/dma/intel_mid_dma.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/dma/ioat
 #lib/modules/KVER-ipfire-pae/kernel/drivers/dma/ioat/ioatdma.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/dma/pch_dma.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/dma/timb_dma.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/firewire
 #lib/modules/KVER-ipfire-pae/kernel/drivers/firewire/firewire-core.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/firewire/firewire-net.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/firewire/firewire-ohci.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/firewire/firewire-sbp2.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/firmware
+#lib/modules/KVER-ipfire-pae/kernel/drivers/firmware/dmi-sysfs.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/firmware/iscsi_ibft.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/firmware/sigma.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio
+#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-adp5588.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-cs5535.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-generic.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-it8761e.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-janz-ttl.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-max7300.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-max730x.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-max732x.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-mcp23s08.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-ml-ioh.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-pca953x.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-pcf857x.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-pch.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-rdc321x.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-sch.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-vx855.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu
 #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm
 #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/drm.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/drm_kms_helper.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/i810
 #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/i810/i810.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/i830
-#lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/i830/i830.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/i915
 #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/i915/i915.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/mga
 #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/mga/mga.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/nouveau
+#lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/nouveau/nouveau.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/r128
 #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/r128/r128.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/radeon
@@ -320,39 +363,72 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/ttm/ttm.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/via
 #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/via/via.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/vmwgfx
+#lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/vmwgfx/vmwgfx.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/stub
+#lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/stub/poulsbo.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hid
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-a4tech.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-apple.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-axff.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-belkin.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-cherry.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-chicony.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-cypress.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-drff.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-dr.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-elecom.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-ezkey.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-gaff.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-gyration.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-holtekff.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-kensington.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-keytouch.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-kye.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-lcpower.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-logitech-dj.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-logitech.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-magicmouse.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-microsoft.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-monterey.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-multitouch.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-ntrig.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-ortek.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-petalynx.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-picolcd.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-pl.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-primax.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-prodikeys.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-quanta.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-roccat-arvo.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-roccat-common.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-roccat-kone.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-roccat-koneplus.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-roccat-kovaplus.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-roccat-pyra.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-roccat.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-samsung.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-sjoy.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-sony.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-speedlink.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-sunplus.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-tmff.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-topseed.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-twinhan.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-uclogic.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-wacom.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-waltop.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-wiimote.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-zpff.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-zydacron.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/usbhid
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/usbhid/usbhid.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hv
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hv/hv_utils.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hv/hv_vmbus.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/abituguru.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/abituguru3.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/acpi_power_meter.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/ad7414.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/ad7418.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/adm1021.ko
@@ -361,36 +437,46 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/adm1029.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/adm1031.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/adm9240.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/ads1015.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/ads7828.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/adt7411.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/adt7462.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/adt7470.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/adt7473.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/adt7475.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/amc6821.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/applesmc.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/asb100.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/asc7621.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/asus_atk0110.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/atxp1.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/coretemp.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/dme1737.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/ds1621.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/ds620.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/emc1403.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/emc2103.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/emc6w201.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/f71805f.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/f71882fg.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/f75375s.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/fam15h_power.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/fschmd.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/g760a.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/gl518sm.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/gl520sm.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/hdaps.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/hp_accel.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/gpio-fan.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/hwmon-vid.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/hwmon.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/i5k_amb.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/ibmaem.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/ibmpex.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/it87.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/jc42.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/k10temp.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/k8temp.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/lis3lv02d.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/lineage-pem.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/lm63.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/lm73.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/lm75.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/lm77.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/lm78.ko
@@ -402,20 +488,48 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/lm92.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/lm93.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/lm95241.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/lm95245.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/ltc4151.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/ltc4215.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/ltc4245.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/ltc4261.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/max16065.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/max1619.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/max1668.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/max6639.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/max6642.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/max6650.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/ntc_thermistor.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pc87360.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pc87427.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pcf8591.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pmbus
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pmbus/adm1275.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pmbus/lm25066.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pmbus/ltc2978.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pmbus/max16064.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pmbus/max34440.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pmbus/max8688.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pmbus/pmbus.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pmbus/pmbus_core.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pmbus/ucd9000.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pmbus/ucd9200.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pmbus/zl6100.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/sch5627.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/sch5636.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/sch56xx-common.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/sht15.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/sht21.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/sis5595.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/smm665.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/smsc47b397.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/smsc47m1.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/smsc47m192.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/thmc50.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/tmp102.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/tmp401.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/tmp421.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/via-cputemp.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/via686a.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/vt1211.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/vt8231.ko
@@ -425,10 +539,9 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/w83791d.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/w83792d.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/w83793.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/w83795.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/w83l785ts.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/w83l786ng.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/wm831x-hwmon.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/wm8350-hwmon.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c
 #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/algos
 #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/algos/i2c-algo-bit.ko
@@ -440,7 +553,13 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-amd756-s4882.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-amd756.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-amd8111.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-designware-core.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-designware-pci.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-diolan-u2c.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-eg20t.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-gpio.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-i801.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-intel-mid.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-isch.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-nforce2-s4985.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-nforce2.ko
@@ -456,16 +575,20 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-sis630.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-sis96x.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-stub.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-taos-evm.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-tiny-usb.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-via.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-viapro.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-voodoo3.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-xiic.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/scx200_acb.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/chips
-#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/chips/ds1682.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/chips/tsl2550.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/i2c-core.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/i2c-dev.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/i2c-mux.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/i2c-smbus.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/muxes
+#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/muxes/gpio-i2cmux.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/muxes/pca9541.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/muxes/pca954x.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/ieee802154
 #lib/modules/KVER-ipfire-pae/kernel/drivers/ieee802154/fakehard.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/input
@@ -473,34 +596,48 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/drivers/input/input-polldev.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard
 #lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/adp5588-keys.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/adp5589-keys.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/gpio_keys.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/gpio_keys_polled.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/lkkbd.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/lm8323.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/matrix_keypad.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/max7359_keypad.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/mcs_touchkey.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/mpr121_touchkey.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/newtonkbd.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/opencores-kbd.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/qt1070.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/qt2160.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/stowaway.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/sunkbd.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/tca6416-keypad.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/xtkbd.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc
+#lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/ad714x-i2c.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/ad714x.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/apanel.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/ati_remote.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/ati_remote2.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/bma150.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/cm109.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/keyspan_remote.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/pcf50633-input.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/pcf8574_keypad.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/pcspkr.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/powermate.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/winbond-cir.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/wm831x-on.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/rotary_encoder.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/xen-kbdfront.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/yealink.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/input/xen-kbdfront.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/input/serio
+#lib/modules/KVER-ipfire-pae/kernel/drivers/input/serio/altera_ps2.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/input/serio/ps2mult.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/input/sparse-keymap.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn
 #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/act2000
 #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/act2000/act2000.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/capi
 #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/capi/capi.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/capi/capidrv.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/capi/capifs.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/capi/kernelcapi.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/divert
 #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/divert/dss1_divert.ko
@@ -526,6 +663,17 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/eicon/divacapi.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/eicon/divadidd.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/eicon/divas.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/mISDN
+#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/mISDN/avmfritz.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/mISDN/hfcmulti.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/mISDN/hfcpci.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/mISDN/hfcsusb.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/mISDN/mISDNinfineon.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/mISDN/mISDNipac.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/mISDN/mISDNisar.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/mISDN/netjet.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/mISDN/speedfax.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/mISDN/w6692.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hisax
 #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hisax/avma1_cs.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hisax/elsa_cs.ko
@@ -545,56 +693,73 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/i4l/isdnhdlc.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/icn
 #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/icn/icn.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/mISDN
+#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/mISDN/l1oip.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/mISDN/mISDN_core.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/mISDN/mISDN_dsp.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/pcbit
 #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/pcbit/pcbit.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/sc
 #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/sc/sc.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/leds
-#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/led-class.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-alix2.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/dell-led.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-bd2802.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-clevo-mail.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-gpio.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-lm3530.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-lp3944.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-lp5521.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-lp5523.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-lt3593.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-net48xx.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-net5501.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-pca9532.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-pca955x.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-wm831x-status.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-wm8350.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-regulator.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-ss4200.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-wrap.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/leds/ledtrig-backlight.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/leds/ledtrig-default-on.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/ledtrig-gpio.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/leds/ledtrig-heartbeat.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/leds/ledtrig-netdev.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/leds/ledtrig-timer.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/lguest
 #lib/modules/KVER-ipfire-pae/kernel/drivers/lguest/lg.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/md
+#lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-bufio.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-crypt.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-delay.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-flakey.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-log-userspace.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-log.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-mirror.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-mod.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-multipath.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-queue-length.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-raid.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-region-hash.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-round-robin.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-service-time.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-snapshot.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-thin-pool.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-zero.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/md/linear.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/md/md-mod.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/md/multipath.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/md/persistent-data
+#lib/modules/KVER-ipfire-pae/kernel/drivers/md/persistent-data/dm-persistent-data.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/md/raid0.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/md/raid1.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/md/raid10.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/md/raid456.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/md/raid6_pq.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/media
 #lib/modules/KVER-ipfire-pae/kernel/drivers/media/common
 #lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners
 #lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners/mc44s803.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners/mt20xx.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners/tda18271.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners/tda827x.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners/tda8290.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners/tda9887.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners/tea5761.ko
@@ -602,12 +767,110 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners/tuner-simple.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners/tuner-types.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners/tuner-xc2028.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners/xc4000.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners/xc5000.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb
 #lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb/dvb-core
 #lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb/dvb-core/dvb-core.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/media.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-adstech-dvb-t-pci.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-alink-dtu-m.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-anysee.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-apac-viewcomp.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-asus-pc39.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-ati-tv-wonder-hd-600.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-ati-x10.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-avermedia-a16d.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-avermedia-cardbus.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-avermedia-dvbt.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-avermedia-m135a.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-avermedia-m733a-rm-k6.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-avermedia-rm-ks.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-avermedia.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-avertv-303.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-azurewave-ad-tu700.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-behold-columbus.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-behold.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-budget-ci-old.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-cinergy-1400.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-cinergy.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-dib0700-nec.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-dib0700-rc5.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-digitalnow-tinytwin.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-digittrade.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-dm1105-nec.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-dntv-live-dvb-t.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-dntv-live-dvbt-pro.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-em-terratec.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-encore-enltv-fm53.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-encore-enltv.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-encore-enltv2.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-evga-indtube.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-eztv.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-flydvb.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-flyvideo.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-fusionhdtv-mce.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-gadmei-rm008z.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-genius-tvgo-a11mce.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-gotview7135.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-hauppauge.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-imon-mce.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-imon-pad.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-iodata-bctv7e.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-kaiomy.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-kworld-315u.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-kworld-plus-tv-analog.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-leadtek-y04g0051.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-lirc.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-lme2510.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-manli.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-medion-x10.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-msi-digivox-ii.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-msi-digivox-iii.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-msi-tvanywhere-plus.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-msi-tvanywhere.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-nebula.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-nec-terratec-cinergy-xs.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-norwood.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-npgtech.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-pctv-sedna.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-pinnacle-color.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-pinnacle-grey.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-pinnacle-pctv-hd.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-pixelview-002t.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-pixelview-mk12.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-pixelview-new.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-pixelview.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-powercolor-real-angel.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-proteus-2309.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-purpletv.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-pv951.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-rc6-mce.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-real-audio-220-32-keys.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-snapstream-firefly.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-streamzap.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-tbs-nec.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-technisat-usb2.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-terratec-cinergy-xs.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-terratec-slim-2.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-terratec-slim.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-tevii-nec.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-tivo.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-total-media-in-hand.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-trekstor.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-tt-1500.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-twinhan1027.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-videomate-m1f.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-videomate-s350.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-videomate-tv-pvr.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-winfast-usbii-deluxe.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-winfast.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/lirc_dev.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/rc-core.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/media/video
-#lib/modules/KVER-ipfire-pae/kernel/drivers/media/video/v4l1-compat.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/media/video/ir-kbd-i2c.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/media/video/v4l2-common.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/media/video/v4l2-int-device.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/media/video/videodev.ko
@@ -617,6 +880,7 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/drivers/memstick/core/mspro_block.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/memstick/host
 #lib/modules/KVER-ipfire-pae/kernel/drivers/memstick/host/jmb38x_ms.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/memstick/host/r592.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/memstick/host/tifm_ms.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/message
 #lib/modules/KVER-ipfire-pae/kernel/drivers/message/fusion
@@ -627,35 +891,61 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/drivers/message/fusion/mptscsih.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/message/fusion/mptspi.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/mfd
-#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/ab3100-core.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/ab3100-otp.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/cs5535-mfd.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/htc-pasic3.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/janz-cmodio.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/lpc_sch.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/mfd-core.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/pcf50633-adc.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/pcf50633-core.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/pcf50633-gpio.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/pcf50633.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/rdc321x-southbridge.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/sm501.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/wm831x.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/wm8350-i2c.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/wm8350.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/timberdale.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/tps6105x.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/tps65010.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/tps6507x.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/ucb1400_core.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/vx855.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/wl1273-core.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/wm8400-core.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/misc
+#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/apds9802als.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/apds990x.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/bh1770glc.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/bh1780gli.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/bmp085.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/c2port
 #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/c2port/c2port-duramar2150.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/c2port/core.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/cb710
 #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/cb710/cb710.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/cs5535-mfgpt.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/ds1682.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/eeprom
 #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/eeprom/at24.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/eeprom/eeprom.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/eeprom/eeprom_93cx6.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/eeprom/max6875.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/enclosure.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/fsa9480.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/hmc6352.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/hpilo.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/ics932s401.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/isl29003.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/isl29020.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/iwmc3200top
+#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/iwmc3200top/iwmc3200top.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/lis3lv02d
+#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/lis3lv02d/lis3lv02d.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/lis3lv02d/lis3lv02d_i2c.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/pch_phub.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/ti-st
+#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/ti-st/st_drv.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/tifm_7xx1.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/tifm_core.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/tsl2550.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/vmw_balloon.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc
 #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/card
 #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/card/mmc_block.ko
@@ -665,13 +955,14 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/core/mmc_core.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host
 #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host/cb710-mmc.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host/ricoh_mmc.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host/sdhci-pci.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host/sdhci-pltfm.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host/sdhci.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host/sdricoh_cs.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host/tifm_sd.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host/ushc.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host/via-sdmmc.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host/vub300.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host/wbsd.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/mtd
 #lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/ar7part.ko
@@ -686,8 +977,11 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/mtd_blkdevs.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/mtdblock.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/mtdchar.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/mtdconcat.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/nand
+#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/nand/nand_ecc.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/sm_ftl.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/tests
+#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/tests/mtd_nandecctest.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/tests/mtd_oobtest.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/tests/mtd_pagetest.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/tests/mtd_readtest.ko
@@ -698,83 +992,217 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/ubi
 #lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/ubi/ubi.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/3c501.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/3c503.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/3c505.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/3c507.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/3c509.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/3c515.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/3c523.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/3c527.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/3c59x.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/8139cp.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/8139too.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/82596.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/8390.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/8390p.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ac3200.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/acenic.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/amd8111e.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/at1700.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/atl1c
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/atl1c/atl1c.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/atl1e
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/atl1e/atl1e.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/atlx
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/atlx/atl1.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/atlx/atl2.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/atp.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/b44.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/benet
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/benet/be2net.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/bnx2.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/bnx2x.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/bonding
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/bonding/bonding.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/bsd_comp.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/cassini.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/chelsio
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/chelsio/cxgb.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/cnic.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/cs89x0.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/cxgb3
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/cxgb3/cxgb3.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/de600.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/de620.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/depca.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/dl2k.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/dnet.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/dummy.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/e100.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/e1000
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/e1000/e1000.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/e1000e
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/e1000e/e1000e.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/e2100.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/eepro.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/eexpress.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/enic
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/enic/enic.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/epic100.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/eql.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/es3210.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/eth16i.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethoc.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ewrk3.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/fealnx.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/forcedeth.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/hamachi.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/hp-plus.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/hp.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/hp100.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ibmlana.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/3com
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/3com/3c501.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/3com/3c509.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/3com/3c515.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/3com/3c574_cs.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/3com/3c589_cs.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/3com/3c59x.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/3com/typhoon.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/3c503.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/8390.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/8390p.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/ac3200.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/axnet_cs.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/e2100.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/es3210.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/hp-plus.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/hp.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/lne390.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/ne.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/ne2.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/ne2k-pci.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/ne3210.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/pcnet_cs.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/smc-mca.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/smc-ultra.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/smc-ultra32.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/wd.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/adaptec
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/adaptec/starfire.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/alteon
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/alteon/acenic.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/amd
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/amd/amd8111e.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/amd/depca.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/amd/lance.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/amd/ni65.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/amd/nmclan_cs.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/amd/pcnet32.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/atheros
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/atheros/atl1c
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/atheros/atl1c/atl1c.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/atheros/atl1e
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/atheros/atl1e/atl1e.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/atheros/atlx
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/atheros/atlx/atl1.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/atheros/atlx/atl2.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/broadcom
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/broadcom/b44.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/broadcom/bnx2.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/broadcom/bnx2x
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/broadcom/bnx2x/bnx2x.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/broadcom/cnic.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/broadcom/tg3.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/brocade
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/brocade/bna
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/brocade/bna/bna.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/chelsio
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/chelsio/cxgb
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/chelsio/cxgb/cxgb.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/chelsio/cxgb3
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/chelsio/cxgb3/cxgb3.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/chelsio/cxgb4
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/chelsio/cxgb4/cxgb4.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/chelsio/cxgb4vf
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/cirrus
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/cirrus/cs89x0.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/cisco
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/cisco/enic
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/cisco/enic/enic.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dec
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dec/ewrk3.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dec/tulip
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dec/tulip/de2104x.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dec/tulip/de4x5.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dec/tulip/dmfe.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dec/tulip/tulip.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dec/tulip/uli526x.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dec/tulip/winbond-840.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dec/tulip/xircom_cb.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dlink
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dlink/de600.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dlink/de620.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dlink/dl2k.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dlink/sundance.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dnet.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/emulex
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/emulex/benet
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/emulex/benet/be2net.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/ethoc.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/fealnx.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/fujitsu
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/fujitsu/at1700.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/fujitsu/eth16i.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/fujitsu/fmvj18x_cs.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/hp
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/hp/hp100.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/i825xx
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/i825xx/3c505.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/i825xx/3c507.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/i825xx/3c523.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/i825xx/3c527.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/i825xx/82596.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/i825xx/eepro.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/i825xx/eexpress.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/i825xx/lp486e.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/i825xx/ni52.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/i825xx/znet.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/icplus
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/icplus/ipg.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/intel
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/intel/e100.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/intel/e1000
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/intel/e1000/e1000.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/intel/e1000e
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/intel/e1000e/e1000e.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/intel/igb
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/intel/igb/igb.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/intel/igbvf
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/intel/igbvf/igbvf.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/intel/ixgb
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/intel/ixgb/ixgb.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/intel/ixgbe
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/intel/ixgbe/ixgbe.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/intel/ixgbevf
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/intel/ixgbevf/ixgbevf.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/jme.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/marvell
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/marvell/skge.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/marvell/sky2.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/mellanox
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/mellanox/mlx4
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/mellanox/mlx4/mlx4_core.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/mellanox/mlx4/mlx4_en.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/micrel
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/micrel/ks8842.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/micrel/ks8851_mll.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/micrel/ksz884x.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/myricom
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/myricom/myri10ge
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/myricom/myri10ge/myri10ge.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/natsemi
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/natsemi/ibmlana.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/natsemi/natsemi.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/natsemi/ns83820.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/neterion
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/neterion/s2io.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/neterion/vxge
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/neterion/vxge/vxge.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/nvidia
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/nvidia/forcedeth.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/oki-semi
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/oki-semi/pch_gbe
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/packetengines
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/packetengines/hamachi.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/packetengines/yellowfin.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/qlogic
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/qlogic/netxen
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/qlogic/netxen/netxen_nic.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/qlogic/qla3xxx.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/qlogic/qlcnic
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/qlogic/qlcnic/qlcnic.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/qlogic/qlge
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/qlogic/qlge/qlge.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/rdc
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/rdc/r6040.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/realtek
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/realtek/8139cp.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/realtek/8139too.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/realtek/atp.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/realtek/r8169.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/seeq
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/seeq/seeq8005.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/sfc
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/sfc/sfc.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/silan
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/silan/sc92031.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/sis
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/sis/sis190.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/sis/sis900.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/smsc
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/smsc/epic100.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/smsc/smc9194.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/smsc/smc91c92_cs.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/smsc/smsc9420.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/stmicro
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/stmicro/stmmac
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/stmicro/stmmac/stmmac.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/sun
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/sun/cassini.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/sun/niu.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/sun/sungem.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/sun/sunhme.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/tehuti
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/tehuti/tehuti.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/ti
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/ti/tlan.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/via
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/via/via-rhine.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/via/via-velocity.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/xircom
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/xircom/xirc2ps_cs.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ifb.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/igb
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/igb/igb.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/igbvf
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/igbvf/igbvf.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/imq.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ipg.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/irda
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/irda/ali-ircc.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/irda/donauboe.ko
@@ -791,137 +1219,74 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/irda/via-ircc.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/irda/vlsi_ir.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/irda/w83977af_ir.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ixgb
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ixgb/ixgb.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ixgbe
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ixgbe/ixgbe.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/jme.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ks8842.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ks8851_mll.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/lance.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/lne390.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/lp486e.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/macvlan.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/macvtap.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/mdio.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/mii.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/mlx4
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/mlx4/mlx4_core.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/mlx4/mlx4_en.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/myri10ge
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/myri10ge/myri10ge.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/natsemi.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ne.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ne2.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ne2k-pci.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ne3210.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/netxen
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/netxen/netxen_nic.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ni52.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ni65.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/niu.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ns83820.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/pcmcia
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/pcmcia/3c574_cs.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/pcmcia/3c589_cs.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/pcmcia/axnet_cs.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/pcmcia/fmvj18x_cs.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/pcmcia/nmclan_cs.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/pcmcia/pcnet_cs.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/pcmcia/smc91c92_cs.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/pcmcia/xirc2ps_cs.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/pcnet32.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/broadcom.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/cicada.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/davicom.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/dp83640.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/et1011c.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/icplus.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/lxt.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/marvell.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/mdio-bitbang.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/mdio-gpio.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/micrel.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/national.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/qsemi.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/realtek.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/smsc.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/ste10Xp.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/vitesse.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ppp_async.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ppp_deflate.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ppp_generic.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ppp_mppe.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ppp_synctty.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/pppoe.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/pppol2tp.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/pppox.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/qla3xxx.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/qlge
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/qlge/qlge.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/r6040.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/r8169.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/s2io.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ppp
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ppp/bsd_comp.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ppp/ppp_async.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ppp/ppp_deflate.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ppp/ppp_generic.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ppp/ppp_mppe.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ppp/ppp_synctty.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ppp/pppoe.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ppp/pppox.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ppp/pptp.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/sb1000.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/sc92031.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/seeq8005.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/sfc
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/sfc/sfc.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/sis190.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/sis900.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/skge.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/sky2.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/slhc.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/slip.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/smc-mca.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/smc-ultra.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/smc-ultra32.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/smc9194.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/smsc9420.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/starfire.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/sundance.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/sungem.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/slip
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/slip/slhc.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/slip/slip.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/sungem_phy.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/sunhme.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/tehuti.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/tg3.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/tlan.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/tulip
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/tulip/de2104x.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/tulip/de4x5.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/tulip/dmfe.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/tulip/tulip.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/tulip/uli526x.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/tulip/winbond-840.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/tulip/xircom_cb.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/tun.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/typhoon.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/asix.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/catc.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/cdc-phonet.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/cdc_eem.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/cdc_ether.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/cdc_ncm.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/cdc_subset.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/cx82310_eth.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/dm9601.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/gl620a.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/hso.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/int51x1.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/kalmia.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/kaweth.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/lg-vl600.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/mcs7830.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/net1080.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/pegasus.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/plusb.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/rndis_host.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/rtl8150.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/sierra_net.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/smsc75xx.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/smsc95xx.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/usbnet.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/zaurus.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/veth.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/via-rhine.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/via-velocity.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/virtio_net.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/vmxnet3
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/vmxnet3/vmxnet3.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/vxge
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/vxge/vxge.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wan
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wan/c101.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wan/cosa.ko
@@ -945,95 +1310,25 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wan/sealevel.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wan/wanxl.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wan/z85230.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wd.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wimax
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wimax/i2400m
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wimax/i2400m/i2400m-sdio.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wimax/i2400m/i2400m-usb.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wimax/i2400m/i2400m.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/adm8211.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/airo.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/airo_cs.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/at76c50x-usb.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ath
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ath/ar9170
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ath/ar9170/ar9170usb.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ath/ath.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ath/ath5k
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ath/ath5k/ath5k.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ath/ath9k
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ath/ath9k/ath9k.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/atmel.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/atmel_cs.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/atmel_pci.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/b43
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/b43/b43.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/b43legacy
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/b43legacy/b43legacy.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/hostap
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/hostap/hostap.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/hostap/hostap_cs.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/hostap/hostap_pci.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/hostap/hostap_plx.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ipw2x00
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ipw2x00/ipw2100.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ipw2x00/ipw2200.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ipw2x00/libipw.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/iwlwifi
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/iwlwifi/iwl3945.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/iwlwifi/iwlagn.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/iwlwifi/iwlcore.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/iwmc3200wifi
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/iwmc3200wifi/iwmc3200wifi.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/libertas
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/libertas/libertas.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/libertas/libertas_cs.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/libertas/libertas_sdio.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/libertas/usb8xxx.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/libertas_tf
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/libertas_tf/libertas_tf.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/libertas_tf/libertas_tf_usb.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/mwl8k.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/orinoco
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/orinoco/orinoco.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/orinoco/orinoco_cs.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/orinoco/orinoco_nortel.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/orinoco/orinoco_pci.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/orinoco/orinoco_plx.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/orinoco/orinoco_tmd.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/orinoco/spectrum_cs.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/p54
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/p54/p54common.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/p54/p54pci.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/p54/p54usb.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/prism54
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/prism54/prism54.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ray_cs.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rndis_wlan.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rt2x00
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rt2x00/rt2400pci.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rt2x00/rt2500pci.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rt2x00/rt2500usb.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rt2x00/rt2800usb.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rt2x00/rt2x00lib.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rt2x00/rt2x00pci.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rt2x00/rt2x00usb.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rt2x00/rt61pci.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rt2x00/rt73usb.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rtl818x
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rtl818x/rtl8180.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rtl818x/rtl8187.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/wl12xx
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/wl12xx/wl1251.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/wl12xx/wl1251_sdio.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/wl3501_cs.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/zd1201.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/zd1211rw
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/zd1211rw/zd1211rw.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/xen-netback
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/xen-netback/xen-netback.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/xen-netfront.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/yellowfin.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/net/znet.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/parport
 #lib/modules/KVER-ipfire-pae/kernel/drivers/parport/parport.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/parport/parport_ax88796.ko
@@ -1047,42 +1342,53 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/drivers/pcmcia/i82365.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/pcmcia/pcmcia.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/pcmcia/pcmcia_core.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/pcmcia/pcmcia_rsrc.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/pcmcia/pd6729.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/pcmcia/rsrc_nonstatic.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/pcmcia/tcic.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/pcmcia/yenta_socket.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/platform
 #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86
 #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/acer-wmi.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/acerhdf.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/asus-laptop.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/asus_acpi.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/classmate-laptop.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/compal-laptop.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/dell-wmi-aio.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/dell-wmi.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/fujitsu-laptop.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/hdaps.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/hp-wmi.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/hp_accel.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/ibm_rtl.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/ideapad-laptop.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/intel_ips.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/intel_menlow.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/intel_oaktrail.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/msi-laptop.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/msi-wmi.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/mxm-wmi.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/panasonic-laptop.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/samsung-laptop.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/samsung-q10.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/sony-laptop.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/tc1100-wmi.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/thinkpad_acpi.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/topstar-laptop.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/toshiba_acpi.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/toshiba_bluetooth.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/wmi.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/power
-#lib/modules/KVER-ipfire-pae/kernel/drivers/power/bq27x00_battery.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/power/ds2782_battery.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/power/max17040_battery.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/power/pcf50633-charger.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/power/wm831x_power.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/power/wm8350_power.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/xo15-ebook.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/pps
 #lib/modules/KVER-ipfire-pae/kernel/drivers/pps/pps_core.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/ptp
+#lib/modules/KVER-ipfire-pae/kernel/drivers/ptp/ptp.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/regulator
+#lib/modules/KVER-ipfire-pae/kernel/drivers/regulator/fixed.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/regulator/gpio-regulator.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc
-#lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-ab3100.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-bq32k.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-bq4802.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-cmos.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-core.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-ds1286.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-ds1307.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-ds1374.ko
@@ -1090,29 +1396,32 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-ds1553.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-ds1672.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-ds1742.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-ds3232.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-em3027.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-fm3130.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-isl12022.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-isl1208.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-lib.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-m41t80.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-m48t35.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-m48t59.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-m48t86.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-max6900.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-msm6242.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-pcf50633.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-pcf8563.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-pcf8583.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-rp5c01.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-rs5c372.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-rv3029c2.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-rx8025.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-rx8581.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-s35390a.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-stk17ta8.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-test.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-v3020.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-wm831x.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-wm8350.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-x1205.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi
 #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/3w-9xxx.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/3w-sas.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/3w-xxxx.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/53c700.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/BusLogic.ko
@@ -1138,11 +1447,17 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/be2iscsi/be2iscsi.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/bfa
 #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/bfa/bfa.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/bnx2fc
+#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/bnx2fc/bnx2fc.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/bnx2i
 #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/bnx2i/bnx2i.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/ch.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/cxgb3i
-#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/cxgb3i/cxgb3i.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/cxgbi
+#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/cxgbi/cxgb3i
+#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/cxgbi/cxgb3i/cxgb3i.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/cxgbi/cxgb4i
+#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/cxgbi/cxgb4i/cxgb4i.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/cxgbi/libcxgbi.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/dc395x.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/device_handler
 #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/device_handler/scsi_dh.ko
@@ -1164,6 +1479,7 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/g_NCR5380.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/g_NCR5380_mmio.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/gdth.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/hpsa.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/hptiop.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/ibmmca.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/imm.ko
@@ -1171,6 +1487,9 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/initio.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/ipr.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/ips.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/isci
+#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/isci/isci.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/iscsi_boot_sysfs.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/iscsi_tcp.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/libfc
 #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/libfc/libfc.ko
@@ -1189,6 +1508,7 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/mpt2sas/mpt2sas.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/mvsas
 #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/mvsas/mvsas.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/mvumi.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/nsp32.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/osd
 #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/osd/libosd.ko
@@ -1200,6 +1520,8 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/pcmcia/nsp_cs.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/pcmcia/qlogic_cs.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/pcmcia/sym53c500_cs.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/pm8001
+#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/pm8001/pm8001.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/pmcraid.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/ppa.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/qla1280.ko
@@ -1209,6 +1531,7 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/qla4xxx/qla4xxx.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/qlogicfas.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/qlogicfas408.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/raid_class.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/scsi_mod.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/scsi_transport_fc.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/scsi_transport_iscsi.ko
@@ -1229,37 +1552,55 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/tmscsim.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/u14-34f.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/ultrastor.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/vmw_pvscsi.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/wd7000.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/serial
-#lib/modules/KVER-ipfire-pae/kernel/drivers/serial/8250_accent.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/serial/8250_boca.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/serial/8250_exar_st16c554.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/serial/8250_fourport.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/serial/8250_hub6.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/serial/serial_cs.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/ssb
 #lib/modules/KVER-ipfire-pae/kernel/drivers/ssb/ssb.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/staging
 #lib/modules/KVER-ipfire-pae/kernel/drivers/staging/et131x
 #lib/modules/KVER-ipfire-pae/kernel/drivers/staging/et131x/et131x.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/staging/hv
-#lib/modules/KVER-ipfire-pae/kernel/drivers/staging/hv/hv_blkvsc.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/staging/hv/hv_mouse.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/staging/hv/hv_netvsc.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/staging/hv/hv_storvsc.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/staging/hv/hv_vmbus.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/staging/mei
+#lib/modules/KVER-ipfire-pae/kernel/drivers/staging/mei/mei.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/staging/phison
 #lib/modules/KVER-ipfire-pae/kernel/drivers/staging/phison/phison.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/staging/slicoss
 #lib/modules/KVER-ipfire-pae/kernel/drivers/staging/slicoss/slicoss.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/staging/usbip
+#lib/modules/KVER-ipfire-pae/kernel/drivers/staging/usbip/usbip-core.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/staging/usbip/usbip-host.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/staging/usbip/vhci-hcd.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/tty
+#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/ipwireless
+#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/ipwireless/ipwireless.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/n_gsm.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/nozomi.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial
+#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/8250_accent.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/8250_boca.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/8250_exar_st16c554.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/8250_fourport.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/8250_hub6.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/altera_jtaguart.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/altera_uart.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/mfd.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/pch_uart.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/serial_cs.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/timbuart.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/uartlite.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/xilinx_uartps.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/uio
 #lib/modules/KVER-ipfire-pae/kernel/drivers/uio/uio.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/uio/uio_aec.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/uio/uio_cif.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/uio/uio_netx.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/uio/uio_pci_generic.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/uio/uio_pdrv.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/uio/uio_pdrv_genirq.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/uio/uio_sercos3.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/uio/uio_smx.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/usb
 #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/atm
 #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/atm/cxacru.ko
@@ -1272,24 +1613,22 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/class/cdc-wdm.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/class/usblp.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/class/usbtmc.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/core
-#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/core/usbcore.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/dwc3
+#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/dwc3/dwc3-omap.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/dwc3/dwc3-pci.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/dwc3/dwc3.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host
-#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host/ehci-hcd.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host/hwa-hc.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host/isp116x-hcd.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host/isp1362-hcd.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host/ohci-hcd.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host/oxu210hp-hcd.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host/r8a66597-hcd.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host/sl811-hcd.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host/u132-hcd.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host/uhci-hcd.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host/whci
 #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host/whci/whci-hcd.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host/xhci.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host/xhci-hcd.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc
-#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc/berry_charge.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc/cypress_cy7c63.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc/cytherm.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc/emi26.ko
@@ -1303,8 +1642,9 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc/usbled.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc/usbsevseg.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc/uss720.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc/vstusb.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc/yurex.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/otg
+#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/otg/gpio_vbus.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/otg/nop-usb-xceiv.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial
 #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/aircable.ko
@@ -1316,10 +1656,14 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/digi_acceleport.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/empeg.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/ftdi_sio.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/funsoft.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/garmin_gps.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/hp4x.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/io_edgeport.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/io_ti.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/ipaq.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/ipw.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/ir-usb.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/iuu_phoenix.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/keyspan_pda.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/mct_u232.ko
@@ -1330,23 +1674,33 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/option.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/oti6858.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/pl2303.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/qcaux.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/qcserial.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/safe_serial.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/siemens_mpi.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/sierra.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/spcp8x5.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/ssu100.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/symbolserial.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/ti_usb_3410_5052.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/usb_wwan.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/usbserial.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/visor.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/vivopay-serial.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/whiteheat.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/zio.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/storage
+#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/storage/uas.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/storage/ums-alauda.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/storage/ums-cypress.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/storage/ums-datafab.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/storage/ums-eneub6250.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/storage/ums-freecom.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/storage/ums-isd200.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/storage/ums-jumpshot.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/storage/ums-karma.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/storage/ums-onetouch.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/storage/ums-realtek.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/storage/ums-sddr09.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/storage/ums-sddr55.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/storage/ums-usbat.ko
@@ -1361,14 +1715,12 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/drivers/uwb/i1480/dfu
 #lib/modules/KVER-ipfire-pae/kernel/drivers/uwb/i1480/dfu/i1480-dfu-usb.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/uwb/i1480/i1480-est.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/uwb/i1480/i1480u-wlp
-#lib/modules/KVER-ipfire-pae/kernel/drivers/uwb/i1480/i1480u-wlp/i1480u-wlp.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/uwb/umc.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/uwb/uwb.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/uwb/whc-rc.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/uwb/whci.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/uwb/wlp
-#lib/modules/KVER-ipfire-pae/kernel/drivers/uwb/wlp/wlp.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/vhost
+#lib/modules/KVER-ipfire-pae/kernel/drivers/vhost/vhost_net.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/video
 #lib/modules/KVER-ipfire-pae/kernel/drivers/video/arkfb.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/video/aty
@@ -1376,14 +1728,16 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/drivers/video/aty/atyfb.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/video/aty/radeonfb.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/video/backlight
+#lib/modules/KVER-ipfire-pae/kernel/drivers/video/backlight/adp8860_bl.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/video/backlight/adp8870_bl.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/video/backlight/apple_bl.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/video/backlight/cr_bllcd.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/video/backlight/generic_bl.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/video/backlight/kb3886_bl.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/video/backlight/lcd.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/video/backlight/mbp_nvidia_bl.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/video/backlight/pcf50633-backlight.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/video/backlight/platform_lcd.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/video/backlight/progear_bl.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/video/backlight/wm831x_bl.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/video/cirrusfb.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/video/cyber2000fb.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/video/display
@@ -1425,6 +1779,7 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/drivers/video/sis
 #lib/modules/KVER-ipfire-pae/kernel/drivers/video/sis/sisfb.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/video/sm501fb.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/video/smscufx.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/video/sstfb.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/video/svgalib.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/video/syscopyarea.ko
@@ -1444,17 +1799,23 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/drivers/video/xen-fbfront.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/virtio
 #lib/modules/KVER-ipfire-pae/kernel/drivers/virtio/virtio_balloon.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/virtio/virtio_mmio.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/virtio/virtio_pci.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/w1
 #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/masters
+#lib/modules/KVER-ipfire-pae/kernel/drivers/w1/masters/ds1wm.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/masters/ds2482.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/masters/ds2490.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/masters/matrox_w1.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/w1/masters/w1-gpio.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/slaves
 #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/slaves/w1_bq27000.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/w1/slaves/w1_ds2408.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/w1/slaves/w1_ds2423.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/slaves/w1_ds2431.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/slaves/w1_ds2433.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/slaves/w1_ds2760.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/w1/slaves/w1_ds2780.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/slaves/w1_smem.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/slaves/w1_therm.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/wire.ko
@@ -1465,6 +1826,8 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/alim7101_wdt.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/cpu5wdt.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/eurotechwdt.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/f71808e_wdt.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/geodewdt.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/hpwdt.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/i6300esb.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/iTCO_wdt.ko
@@ -1473,6 +1836,7 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/it8712f_wdt.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/it87_wdt.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/machzwd.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/nv_tco.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/pc87413_wdt.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/pcwd_pci.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/pcwd_usb.ko
@@ -1487,6 +1851,7 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/scx200_wdt.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/smsc37b787_wdt.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/softdog.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/sp5100_tco.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/w83627hf_wdt.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/w83697hf_wdt.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/w83697ug_wdt.ko
@@ -1494,15 +1859,16 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/w83977f_wdt.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/wafer5823wdt.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/wdt_pci.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/wm831x_wdt.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/wm8350_wdt.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/xen_wdt.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/xen
-#lib/modules/KVER-ipfire-pae/kernel/drivers/xen/evtchn.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/xen/xen-evtchn.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/xen/xen-gntalloc.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/xen/xen-gntdev.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/xen/xen-pciback
+#lib/modules/KVER-ipfire-pae/kernel/drivers/xen/xen-pciback/xen-pciback.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/xen/xenfs
 #lib/modules/KVER-ipfire-pae/kernel/drivers/xen/xenfs/xenfs.ko
 #lib/modules/KVER-ipfire-pae/kernel/fs
-#lib/modules/KVER-ipfire-pae/kernel/fs/autofs
-#lib/modules/KVER-ipfire-pae/kernel/fs/autofs/autofs.ko
 #lib/modules/KVER-ipfire-pae/kernel/fs/autofs4
 #lib/modules/KVER-ipfire-pae/kernel/fs/autofs4/autofs4.ko
 #lib/modules/KVER-ipfire-pae/kernel/fs/cachefiles
@@ -1513,12 +1879,6 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/fs/ecryptfs/ecryptfs.ko
 #lib/modules/KVER-ipfire-pae/kernel/fs/exportfs
 #lib/modules/KVER-ipfire-pae/kernel/fs/exportfs/exportfs.ko
-#lib/modules/KVER-ipfire-pae/kernel/fs/ext2
-#lib/modules/KVER-ipfire-pae/kernel/fs/ext2/ext2.ko
-#lib/modules/KVER-ipfire-pae/kernel/fs/ext3
-#lib/modules/KVER-ipfire-pae/kernel/fs/ext3/ext3.ko
-#lib/modules/KVER-ipfire-pae/kernel/fs/ext4
-#lib/modules/KVER-ipfire-pae/kernel/fs/ext4/ext4.ko
 #lib/modules/KVER-ipfire-pae/kernel/fs/fat
 #lib/modules/KVER-ipfire-pae/kernel/fs/fat/fat.ko
 #lib/modules/KVER-ipfire-pae/kernel/fs/fat/vfat.ko
@@ -1529,17 +1889,12 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/fs/fuse/fuse.ko
 #lib/modules/KVER-ipfire-pae/kernel/fs/isofs
 #lib/modules/KVER-ipfire-pae/kernel/fs/isofs/isofs.ko
-#lib/modules/KVER-ipfire-pae/kernel/fs/jbd
-#lib/modules/KVER-ipfire-pae/kernel/fs/jbd/jbd.ko
-#lib/modules/KVER-ipfire-pae/kernel/fs/jbd2
-#lib/modules/KVER-ipfire-pae/kernel/fs/jbd2/jbd2.ko
 #lib/modules/KVER-ipfire-pae/kernel/fs/jffs2
 #lib/modules/KVER-ipfire-pae/kernel/fs/jffs2/jffs2.ko
 #lib/modules/KVER-ipfire-pae/kernel/fs/jfs
 #lib/modules/KVER-ipfire-pae/kernel/fs/jfs/jfs.ko
 #lib/modules/KVER-ipfire-pae/kernel/fs/lockd
 #lib/modules/KVER-ipfire-pae/kernel/fs/lockd/lockd.ko
-#lib/modules/KVER-ipfire-pae/kernel/fs/mbcache.ko
 #lib/modules/KVER-ipfire-pae/kernel/fs/nfs
 #lib/modules/KVER-ipfire-pae/kernel/fs/nfs/nfs.ko
 #lib/modules/KVER-ipfire-pae/kernel/fs/nfs_common
@@ -1550,26 +1905,24 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/fs/quota/quota_tree.ko
 #lib/modules/KVER-ipfire-pae/kernel/fs/quota/quota_v1.ko
 #lib/modules/KVER-ipfire-pae/kernel/fs/quota/quota_v2.ko
-#lib/modules/KVER-ipfire-pae/kernel/fs/reiser4
-#lib/modules/KVER-ipfire-pae/kernel/fs/reiser4/reiser4.ko
 #lib/modules/KVER-ipfire-pae/kernel/fs/reiserfs
 #lib/modules/KVER-ipfire-pae/kernel/fs/reiserfs/reiserfs.ko
-#lib/modules/KVER-ipfire-pae/kernel/fs/smbfs
-#lib/modules/KVER-ipfire-pae/kernel/fs/smbfs/smbfs.ko
 #lib/modules/KVER-ipfire-pae/kernel/fs/udf
 #lib/modules/KVER-ipfire-pae/kernel/fs/udf/udf.ko
+#lib/modules/KVER-ipfire-pae/kernel/fs/ufs
+#lib/modules/KVER-ipfire-pae/kernel/fs/ufs/ufs.ko
 #lib/modules/KVER-ipfire-pae/kernel/fs/xfs
 #lib/modules/KVER-ipfire-pae/kernel/fs/xfs/xfs.ko
 #lib/modules/KVER-ipfire-pae/kernel/lib
+#lib/modules/KVER-ipfire-pae/kernel/lib/cordic.ko
 #lib/modules/KVER-ipfire-pae/kernel/lib/crc-ccitt.ko
 #lib/modules/KVER-ipfire-pae/kernel/lib/crc-itu-t.ko
 #lib/modules/KVER-ipfire-pae/kernel/lib/crc-t10dif.ko
-#lib/modules/KVER-ipfire-pae/kernel/lib/crc16.ko
 #lib/modules/KVER-ipfire-pae/kernel/lib/crc7.ko
+#lib/modules/KVER-ipfire-pae/kernel/lib/crc8.ko
 #lib/modules/KVER-ipfire-pae/kernel/lib/libcrc32c.ko
-#lib/modules/KVER-ipfire-pae/kernel/lib/lzo
-#lib/modules/KVER-ipfire-pae/kernel/lib/lzo/lzo_compress.ko
-#lib/modules/KVER-ipfire-pae/kernel/lib/lzo/lzo_decompress.ko
+#lib/modules/KVER-ipfire-pae/kernel/lib/raid6
+#lib/modules/KVER-ipfire-pae/kernel/lib/raid6/raid6_pq.ko
 #lib/modules/KVER-ipfire-pae/kernel/lib/ts_bm.ko
 #lib/modules/KVER-ipfire-pae/kernel/lib/ts_fsm.ko
 #lib/modules/KVER-ipfire-pae/kernel/lib/ts_kmp.ko
@@ -1586,6 +1939,8 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/net/atm/br2684.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/atm/clip.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/atm/pppoatm.ko
+#lib/modules/KVER-ipfire-pae/kernel/net/batman-adv
+#lib/modules/KVER-ipfire-pae/kernel/net/batman-adv/batman-adv.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/bluetooth
 #lib/modules/KVER-ipfire-pae/kernel/net/bluetooth/bluetooth.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/bluetooth/bnep
@@ -1594,10 +1949,8 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/net/bluetooth/cmtp/cmtp.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/bluetooth/hidp
 #lib/modules/KVER-ipfire-pae/kernel/net/bluetooth/hidp/hidp.ko
-#lib/modules/KVER-ipfire-pae/kernel/net/bluetooth/l2cap.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/bluetooth/rfcomm
 #lib/modules/KVER-ipfire-pae/kernel/net/bluetooth/rfcomm/rfcomm.ko
-#lib/modules/KVER-ipfire-pae/kernel/net/bluetooth/sco.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/bridge
 #lib/modules/KVER-ipfire-pae/kernel/net/bridge/bridge.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/bridge/netfilter
@@ -1623,13 +1976,16 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/net/bridge/netfilter/ebtable_filter.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/bridge/netfilter/ebtable_nat.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/bridge/netfilter/ebtables.ko
+#lib/modules/KVER-ipfire-pae/kernel/net/ceph
+#lib/modules/KVER-ipfire-pae/kernel/net/ceph/libceph.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/ieee802154
+#lib/modules/KVER-ipfire-pae/kernel/net/ieee802154/6lowpan.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/ieee802154/af_802154.ko
-#lib/modules/KVER-ipfire-pae/kernel/net/ieee802154/nl802154.ko
-#lib/modules/KVER-ipfire-pae/kernel/net/ieee802154/wpan-class.ko
+#lib/modules/KVER-ipfire-pae/kernel/net/ieee802154/ieee802154.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/ipv4
 #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/ah4.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/esp4.ko
+#lib/modules/KVER-ipfire-pae/kernel/net/ipv4/gre.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/inet_diag.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/ip_gre.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/ipcomp.ko
@@ -1648,7 +2004,6 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/ipt_REDIRECT.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/ipt_REJECT.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/ipt_ULOG.ko
-#lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/ipt_addrtype.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/ipt_ah.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/ipt_ecn.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/ipt_ipp2p.ko
@@ -1691,7 +2046,6 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/esp6.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/ip6_tunnel.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/ipcomp6.ko
-#lib/modules/KVER-ipfire-pae/kernel/net/ipv6/ipv6.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/mip6.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/netfilter
 #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/netfilter/ip6_queue.ko
@@ -1709,6 +2063,7 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/netfilter/ip6table_mangle.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/netfilter/ip6table_raw.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/netfilter/nf_conntrack_ipv6.ko
+#lib/modules/KVER-ipfire-pae/kernel/net/ipv6/netfilter/nf_defrag_ipv6.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/sit.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/tunnel6.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/xfrm6_mode_beet.ko
@@ -1727,6 +2082,12 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/net/irda/irnet/irnet.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/key
 #lib/modules/KVER-ipfire-pae/kernel/net/key/af_key.ko
+#lib/modules/KVER-ipfire-pae/kernel/net/l2tp
+#lib/modules/KVER-ipfire-pae/kernel/net/l2tp/l2tp_core.ko
+#lib/modules/KVER-ipfire-pae/kernel/net/l2tp/l2tp_eth.ko
+#lib/modules/KVER-ipfire-pae/kernel/net/l2tp/l2tp_ip.ko
+#lib/modules/KVER-ipfire-pae/kernel/net/l2tp/l2tp_netlink.ko
+#lib/modules/KVER-ipfire-pae/kernel/net/l2tp/l2tp_ppp.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/llc
 #lib/modules/KVER-ipfire-pae/kernel/net/llc/llc.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/mac80211
@@ -1736,6 +2097,7 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/ipvs/ip_vs.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_conntrack.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_conntrack_amanda.ko
+#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_conntrack_broadcast.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_conntrack_ftp.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_conntrack_h323.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_conntrack_irc.ko
@@ -1748,40 +2110,48 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_conntrack_proto_udplite.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_conntrack_sane.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_conntrack_sip.ko
+#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_conntrack_snmp.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_conntrack_tftp.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_tproxy_core.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nfnetlink.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nfnetlink_log.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nfnetlink_queue.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/x_tables.ko
+#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_AUDIT.ko
+#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_CHECKSUM.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_CLASSIFY.ko
-#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_CONNMARK.ko
+#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_CT.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_DSCP.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_HL.ko
+#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_IDLETIMER.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_IMQ.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_LED.ko
-#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_MARK.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_NFLOG.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_NFQUEUE.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_NOTRACK.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_RATEEST.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_TCPMSS.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_TCPOPTSTRIP.ko
+#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_TEE.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_TPROXY.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_TRACE.ko
+#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_addrtype.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_cluster.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_comment.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_connbytes.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_connlimit.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_connmark.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_conntrack.ko
+#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_cpu.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_dccp.ko
+#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_devgroup.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_dscp.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_esp.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_hashlimit.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_helper.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_hl.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_iprange.ko
+#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_ipvs.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_layer7.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_length.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_limit.ko
@@ -1806,24 +2176,21 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_tcpudp.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_time.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_u32.ko
-#lib/modules/KVER-ipfire-pae/kernel/net/phonet
-#lib/modules/KVER-ipfire-pae/kernel/net/phonet/phonet.ko
-#lib/modules/KVER-ipfire-pae/kernel/net/phonet/pn_pep.ko
-#lib/modules/KVER-ipfire-pae/kernel/net/rds
-#lib/modules/KVER-ipfire-pae/kernel/net/rds/rds.ko
-#lib/modules/KVER-ipfire-pae/kernel/net/rds/rds_tcp.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/rfkill
+#lib/modules/KVER-ipfire-pae/kernel/net/rfkill/rfkill-regulator.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/rfkill/rfkill.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/rxrpc
 #lib/modules/KVER-ipfire-pae/kernel/net/rxrpc/af-rxrpc.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/rxrpc/rxkad.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/sched
+#lib/modules/KVER-ipfire-pae/kernel/net/sched/act_csum.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/sched/act_gact.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/sched/act_ipt.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/sched/act_mirred.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/sched/act_nat.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/sched/act_pedit.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/sched/act_police.ko
+#lib/modules/KVER-ipfire-pae/kernel/net/sched/act_simple.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/sched/act_skbedit.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/sched/cls_basic.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/sched/cls_flow.ko
@@ -1840,16 +2207,20 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/net/sched/em_u32.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_atm.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_cbq.ko
+#lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_choke.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_drr.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_dsmark.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_gred.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_hfsc.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_htb.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_ingress.ko
+#lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_mqprio.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_multiq.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_netem.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_prio.ko
+#lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_qfq.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_red.ko
+#lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_sfb.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_sfq.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_tbf.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_teql.ko
@@ -1858,8 +2229,6 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/net/sunrpc/auth_gss/auth_rpcgss.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/sunrpc/auth_gss/rpcsec_gss_krb5.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/sunrpc/sunrpc.ko
-#lib/modules/KVER-ipfire-pae/kernel/net/wimax
-#lib/modules/KVER-ipfire-pae/kernel/net/wimax/wimax.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/wireless
 #lib/modules/KVER-ipfire-pae/kernel/net/wireless/cfg80211.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/wireless/lib80211.ko
@@ -1870,6 +2239,7 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/net/xfrm/xfrm_ipcomp.ko
 #lib/modules/KVER-ipfire-pae/kernel/net/xfrm/xfrm_user.ko
 #lib/modules/KVER-ipfire-pae/kernel/sound
+#lib/modules/KVER-ipfire-pae/kernel/sound/ac97_bus.ko
 #lib/modules/KVER-ipfire-pae/kernel/sound/core
 #lib/modules/KVER-ipfire-pae/kernel/sound/core/oss
 #lib/modules/KVER-ipfire-pae/kernel/sound/core/oss/snd-mixer-oss.ko
@@ -1879,17 +2249,239 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/sound/core/seq/oss/snd-seq-oss.ko
 #lib/modules/KVER-ipfire-pae/kernel/sound/core/seq/snd-seq-device.ko
 #lib/modules/KVER-ipfire-pae/kernel/sound/core/seq/snd-seq-dummy.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/core/seq/snd-seq-midi-emul.ko
 #lib/modules/KVER-ipfire-pae/kernel/sound/core/seq/snd-seq-midi-event.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/core/seq/snd-seq-midi.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/core/seq/snd-seq-virmidi.ko
 #lib/modules/KVER-ipfire-pae/kernel/sound/core/seq/snd-seq.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/core/snd-hrtimer.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/core/snd-hwdep.ko
 #lib/modules/KVER-ipfire-pae/kernel/sound/core/snd-page-alloc.ko
 #lib/modules/KVER-ipfire-pae/kernel/sound/core/snd-pcm.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/core/snd-rawmidi.ko
 #lib/modules/KVER-ipfire-pae/kernel/sound/core/snd-timer.ko
 #lib/modules/KVER-ipfire-pae/kernel/sound/core/snd.ko
 #lib/modules/KVER-ipfire-pae/kernel/sound/drivers
+#lib/modules/KVER-ipfire-pae/kernel/sound/drivers/mpu401
+#lib/modules/KVER-ipfire-pae/kernel/sound/drivers/mpu401/snd-mpu401-uart.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/drivers/mpu401/snd-mpu401.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/drivers/opl3
+#lib/modules/KVER-ipfire-pae/kernel/sound/drivers/opl3/snd-opl3-lib.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/drivers/opl3/snd-opl3-synth.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/drivers/opl4
+#lib/modules/KVER-ipfire-pae/kernel/sound/drivers/opl4/snd-opl4-lib.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/drivers/opl4/snd-opl4-synth.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/drivers/snd-aloop.ko
 #lib/modules/KVER-ipfire-pae/kernel/sound/drivers/snd-dummy.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/drivers/snd-mtpav.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/drivers/snd-mts64.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/drivers/snd-portman2x4.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/drivers/snd-serial-u16550.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/drivers/snd-virmidi.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/drivers/vx
+#lib/modules/KVER-ipfire-pae/kernel/sound/drivers/vx/snd-vx-lib.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/firewire
+#lib/modules/KVER-ipfire-pae/kernel/sound/firewire/snd-firewire-lib.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/firewire/snd-firewire-speakers.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/firewire/snd-isight.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/i2c
+#lib/modules/KVER-ipfire-pae/kernel/sound/i2c/other
+#lib/modules/KVER-ipfire-pae/kernel/sound/i2c/other/snd-ak4113.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/i2c/other/snd-ak4114.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/i2c/other/snd-ak4117.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/i2c/other/snd-ak4xxx-adda.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/i2c/other/snd-pt2258.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/i2c/other/snd-tea575x-tuner.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/i2c/snd-cs8427.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/i2c/snd-i2c.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/i2c/snd-tea6330t.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/isa
+#lib/modules/KVER-ipfire-pae/kernel/sound/isa/ad1816a
+#lib/modules/KVER-ipfire-pae/kernel/sound/isa/ad1816a/snd-ad1816a.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/isa/ad1848
+#lib/modules/KVER-ipfire-pae/kernel/sound/isa/ad1848/snd-ad1848.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/isa/cs423x
+#lib/modules/KVER-ipfire-pae/kernel/sound/isa/cs423x/snd-cs4231.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/isa/cs423x/snd-cs4236.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/isa/es1688
+#lib/modules/KVER-ipfire-pae/kernel/sound/isa/es1688/snd-es1688-lib.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/isa/es1688/snd-es1688.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/isa/galaxy
+#lib/modules/KVER-ipfire-pae/kernel/sound/isa/galaxy/snd-azt1605.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/isa/galaxy/snd-azt2316.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/isa/gus
+#lib/modules/KVER-ipfire-pae/kernel/sound/isa/gus/snd-gus-lib.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/isa/gus/snd-gusclassic.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/isa/gus/snd-gusextreme.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/isa/gus/snd-gusmax.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/isa/gus/snd-interwave-stb.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/isa/gus/snd-interwave.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/isa/msnd
+#lib/modules/KVER-ipfire-pae/kernel/sound/isa/msnd/snd-msnd-classic.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/isa/msnd/snd-msnd-lib.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/isa/msnd/snd-msnd-pinnacle.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/isa/opti9xx
+#lib/modules/KVER-ipfire-pae/kernel/sound/isa/opti9xx/snd-miro.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/isa/opti9xx/snd-opti92x-ad1848.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/isa/opti9xx/snd-opti92x-cs4231.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/isa/opti9xx/snd-opti93x.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/isa/sb
+#lib/modules/KVER-ipfire-pae/kernel/sound/isa/sb/snd-emu8000-synth.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/isa/sb/snd-jazz16.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/isa/sb/snd-sb-common.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/isa/sb/snd-sb16-csp.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/isa/sb/snd-sb16-dsp.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/isa/sb/snd-sb16.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/isa/sb/snd-sb8-dsp.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/isa/sb/snd-sb8.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/isa/sb/snd-sbawe.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/isa/snd-adlib.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/isa/snd-als100.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/isa/snd-azt2320.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/isa/snd-cmi8330.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/isa/snd-es18xx.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/isa/snd-opl3sa2.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/isa/snd-sc6000.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/isa/snd-sscape.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/isa/wavefront
+#lib/modules/KVER-ipfire-pae/kernel/sound/isa/wavefront/snd-wavefront.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/isa/wss
+#lib/modules/KVER-ipfire-pae/kernel/sound/isa/wss/snd-wss-lib.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/ac97
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/ac97/snd-ac97-codec.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/ali5451
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/ali5451/snd-ali5451.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/asihpi
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/asihpi/snd-asihpi.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/au88x0
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/au88x0/snd-au8810.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/au88x0/snd-au8820.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/au88x0/snd-au8830.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/aw2
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/aw2/snd-aw2.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/ca0106
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/ca0106/snd-ca0106.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/cs46xx
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/cs46xx/snd-cs46xx.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/cs5535audio
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/cs5535audio/snd-cs5535audio.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/ctxfi
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/ctxfi/snd-ctxfi.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/echoaudio
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/echoaudio/snd-darla20.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/echoaudio/snd-darla24.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/echoaudio/snd-echo3g.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/echoaudio/snd-gina20.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/echoaudio/snd-gina24.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/echoaudio/snd-indigo.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/echoaudio/snd-indigodj.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/echoaudio/snd-indigodjx.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/echoaudio/snd-indigoio.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/echoaudio/snd-indigoiox.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/echoaudio/snd-layla20.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/echoaudio/snd-layla24.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/echoaudio/snd-mia.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/echoaudio/snd-mona.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/emu10k1
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/emu10k1/snd-emu10k1-synth.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/emu10k1/snd-emu10k1.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/emu10k1/snd-emu10k1x.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/hda
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/hda/snd-hda-codec-analog.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/hda/snd-hda-codec-ca0110.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/hda/snd-hda-codec-ca0132.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/hda/snd-hda-codec-cirrus.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/hda/snd-hda-codec-cmedia.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/hda/snd-hda-codec-conexant.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/hda/snd-hda-codec-hdmi.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/hda/snd-hda-codec-idt.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/hda/snd-hda-codec-realtek.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/hda/snd-hda-codec-si3054.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/hda/snd-hda-codec-via.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/hda/snd-hda-codec.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/hda/snd-hda-intel.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/ice1712
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/ice1712/snd-ice1712.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/ice1712/snd-ice1724.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/ice1712/snd-ice17xx-ak4xxx.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/korg1212
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/korg1212/snd-korg1212.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/lola
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/lola/snd-lola.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/lx6464es
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/lx6464es/snd-lx6464es.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/mixart
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/mixart/snd-mixart.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/nm256
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/nm256/snd-nm256.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/oxygen
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/oxygen/snd-oxygen-lib.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/oxygen/snd-oxygen.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/oxygen/snd-virtuoso.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/pcxhr
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/pcxhr/snd-pcxhr.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/riptide
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/riptide/snd-riptide.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/rme9652
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/rme9652/snd-hdsp.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/rme9652/snd-hdspm.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/rme9652/snd-rme9652.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-ad1889.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-als300.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-als4000.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-atiixp-modem.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-atiixp.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-azt3328.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-bt87x.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-cmipci.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-cs4281.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-cs5530.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-ens1370.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-ens1371.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-es1938.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-es1968.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-fm801.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-intel8x0.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-intel8x0m.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-maestro3.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-rme32.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-rme96.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-sis7019.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-sonicvibes.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-via82xx-modem.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-via82xx.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/trident
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/trident/snd-trident.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/vx222
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/vx222/snd-vx222.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/ymfpci
+#lib/modules/KVER-ipfire-pae/kernel/sound/pci/ymfpci/snd-ymfpci.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pcmcia
+#lib/modules/KVER-ipfire-pae/kernel/sound/pcmcia/pdaudiocf
+#lib/modules/KVER-ipfire-pae/kernel/sound/pcmcia/pdaudiocf/snd-pdaudiocf.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/pcmcia/vx
+#lib/modules/KVER-ipfire-pae/kernel/sound/pcmcia/vx/snd-vxpocket.ko
 #lib/modules/KVER-ipfire-pae/kernel/sound/soundcore.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/synth
+#lib/modules/KVER-ipfire-pae/kernel/sound/synth/emux
+#lib/modules/KVER-ipfire-pae/kernel/sound/synth/emux/snd-emux-synth.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/synth/snd-util-mem.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/usb
+#lib/modules/KVER-ipfire-pae/kernel/sound/usb/6fire
+#lib/modules/KVER-ipfire-pae/kernel/sound/usb/6fire/snd-usb-6fire.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/usb/caiaq
+#lib/modules/KVER-ipfire-pae/kernel/sound/usb/caiaq/snd-usb-caiaq.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/usb/misc
+#lib/modules/KVER-ipfire-pae/kernel/sound/usb/misc/snd-ua101.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/usb/snd-usb-audio.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/usb/snd-usbmidi-lib.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/usb/usx2y
+#lib/modules/KVER-ipfire-pae/kernel/sound/usb/usx2y/snd-usb-us122l.ko
+#lib/modules/KVER-ipfire-pae/kernel/sound/usb/usx2y/snd-usb-usx2y.ko
 #lib/modules/KVER-ipfire-pae/modules.alias
 #lib/modules/KVER-ipfire-pae/modules.alias.bin
+#lib/modules/KVER-ipfire-pae/modules.builtin
 #lib/modules/KVER-ipfire-pae/modules.ccwmap
 #lib/modules/KVER-ipfire-pae/modules.dep
 #lib/modules/KVER-ipfire-pae/modules.dep.bin
index 7a3bc21b87b203c4b7dc635e00a1685c2a86fd39..a05e1e72d2605287a00963a34a39f11600d1cd9f 100644 (file)
-boot/System.map-KVER-ipfire-xen
+boot/System.map-2.6.32.60-ipfire-xen
 boot/System.map-ipfire-xen
-boot/config-KVER-ipfire-xen
-boot/vmlinuz-KVER-ipfire-xen
+boot/config-2.6.32.60-ipfire-xen
+boot/vmlinuz-2.6.32.60-ipfire-xen
 boot/vmlinuz-ipfire-xen
 #lib/firmware/bnx2x-e1-5.0.21.0.fw
 #lib/firmware/bnx2x-e1h-5.0.21.0.fw
 #lib/modules
-lib/modules/KVER-ipfire-xen
-#lib/modules/KVER-ipfire-xen/build
-#lib/modules/KVER-ipfire-xen/kernel
-#lib/modules/KVER-ipfire-xen/kernel/arch
-#lib/modules/KVER-ipfire-xen/kernel/arch/x86
-#lib/modules/KVER-ipfire-xen/kernel/arch/x86/crypto
-#lib/modules/KVER-ipfire-xen/kernel/arch/x86/crypto/aes-i586.ko
-#lib/modules/KVER-ipfire-xen/kernel/arch/x86/crypto/crc32c-intel.ko
-#lib/modules/KVER-ipfire-xen/kernel/arch/x86/crypto/salsa20-i586.ko
-#lib/modules/KVER-ipfire-xen/kernel/arch/x86/crypto/twofish-i586.ko
-#lib/modules/KVER-ipfire-xen/kernel/arch/x86/kernel
-#lib/modules/KVER-ipfire-xen/kernel/arch/x86/kernel/microcode.ko
-#lib/modules/KVER-ipfire-xen/kernel/arch/x86/kernel/msr.ko
-#lib/modules/KVER-ipfire-xen/kernel/arch/x86/kernel/scx200.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto
-#lib/modules/KVER-ipfire-xen/kernel/crypto/aes_generic.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/ansi_cprng.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/anubis.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/arc4.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/async_tx
-#lib/modules/KVER-ipfire-xen/kernel/crypto/async_tx/async_memcpy.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/async_tx/async_pq.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/async_tx/async_raid6_recov.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/async_tx/async_tx.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/async_tx/async_xor.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/authenc.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/blowfish.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/camellia.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/cast5.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/cast6.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/cbc.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/ccm.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/crc32c.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/cryptd.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/ctr.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/cts.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/des_generic.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/ecb.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/fcrypt.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/gcm.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/gf128mul.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/ghash-generic.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/khazad.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/lrw.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/lzo.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/md5.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/michael_mic.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/pcbc.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/rmd128.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/rmd160.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/rmd256.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/rmd320.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/salsa20_generic.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/seed.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/seqiv.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/serpent.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/sha1_generic.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/sha256_generic.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/sha512_generic.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/tea.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/tgr192.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/twofish.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/twofish_common.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/vmac.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/wp512.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/xcbc.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/xor.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/xts.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/zlib.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers
-#lib/modules/KVER-ipfire-xen/kernel/drivers/acpi
-#lib/modules/KVER-ipfire-xen/kernel/drivers/acpi/ac.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/acpi/acpi_pad.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/acpi/battery.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/acpi/button.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/acpi/container.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/acpi/fan.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/acpi/pci_slot.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/acpi/power_meter.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/acpi/processor.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/acpi/sbs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/acpi/sbshc.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/acpi/thermal.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/acpi/video.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/ahci.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/ata_generic.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/ata_piix.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/libata.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_acpi.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_ali.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_amd.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_artop.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_atiixp.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_atp867x.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_cmd640.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_cmd64x.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_cs5520.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_cs5530.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_cs5535.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_cs5536.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_cypress.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_efar.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_hpt366.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_hpt37x.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_hpt3x2n.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_hpt3x3.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_it8213.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_it821x.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_jmicron.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_marvell.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_mpiix.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_netcell.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_ninja32.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_ns87410.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_ns87415.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_oldpiix.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_opti.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_optidma.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_pcmcia.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_pdc2027x.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_pdc202xx_old.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_radisys.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_rdc.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_rz1000.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_sc1200.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_sch.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_serverworks.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_sil680.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_sis.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_sl82c105.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_triflex.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_via.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pdc_adma.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/sata_inic162x.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/sata_mv.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/sata_nv.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/sata_promise.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/sata_qstor.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/sata_sil.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/sata_sil24.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/sata_sis.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/sata_svw.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/sata_sx4.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/sata_uli.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/sata_via.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/sata_vsc.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/atm
-#lib/modules/KVER-ipfire-xen/kernel/drivers/atm/ambassador.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/atm/atmtcp.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/atm/eni.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/atm/firestream.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/atm/fore_200e.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/atm/he.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/atm/horizon.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/atm/idt77105.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/atm/idt77252.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/atm/iphase.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/atm/lanai.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/atm/nicstar.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/atm/solos-pci.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/atm/suni.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/atm/uPD98402.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/atm/zatm.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/block
-#lib/modules/KVER-ipfire-xen/kernel/drivers/block/DAC960.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/block/aoe
-#lib/modules/KVER-ipfire-xen/kernel/drivers/block/aoe/aoe.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/block/cciss.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/block/cpqarray.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/block/cryptoloop.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/block/floppy.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/block/nbd.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/block/osdblk.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/block/sx8.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/bluetooth
-#lib/modules/KVER-ipfire-xen/kernel/drivers/bluetooth/bcm203x.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/bluetooth/bfusb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/bluetooth/bluecard_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/bluetooth/bpa10x.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/bluetooth/bt3c_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/bluetooth/btmrvl.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/bluetooth/btmrvl_sdio.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/bluetooth/btsdio.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/bluetooth/btuart_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/bluetooth/btusb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/bluetooth/dtl1_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/bluetooth/hci_uart.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/bluetooth/hci_vhci.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/agp
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/agp/agpgart.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/agp/ali-agp.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/agp/amd-k7-agp.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/agp/amd64-agp.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/agp/ati-agp.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/agp/efficeon-agp.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/agp/intel-agp.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/agp/nvidia-agp.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/agp/sis-agp.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/agp/sworks-agp.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/agp/via-agp.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/cs5535_gpio.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/hangcheck-timer.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/hw_random
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/hw_random/amd-rng.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/hw_random/geode-rng.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/hw_random/intel-rng.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/hw_random/rng-core.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/hw_random/timeriomem-rng.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/hw_random/via-rng.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/i8k.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/ipmi
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/ipmi/ipmi_devintf.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/ipmi/ipmi_msghandler.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/ipmi/ipmi_poweroff.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/ipmi/ipmi_si.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/ipmi/ipmi_watchdog.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/lp.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/nozomi.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/nsc_gpio.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/nvram.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/pc8736x_gpio.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/pcmcia
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/pcmcia/ipwireless
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/pcmcia/ipwireless/ipwireless.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/pcmcia/synclink_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/ppdev.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/scx200_gpio.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/toshiba.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/clocksource
-#lib/modules/KVER-ipfire-xen/kernel/drivers/clocksource/scx200_hrt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/connector
-#lib/modules/KVER-ipfire-xen/kernel/drivers/connector/cn.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/crypto
-#lib/modules/KVER-ipfire-xen/kernel/drivers/crypto/geode-aes.ko.off
-#lib/modules/KVER-ipfire-xen/kernel/drivers/crypto/hifn_795x.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/crypto/padlock-aes.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/crypto/padlock-sha.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/dca
-#lib/modules/KVER-ipfire-xen/kernel/drivers/dca/dca.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/dma
-#lib/modules/KVER-ipfire-xen/kernel/drivers/dma/dmatest.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/dma/ioat
-#lib/modules/KVER-ipfire-xen/kernel/drivers/dma/ioat/ioatdma.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/firewire
-#lib/modules/KVER-ipfire-xen/kernel/drivers/firewire/firewire-core.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/firewire/firewire-net.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/firewire/firewire-ohci.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/firewire/firewire-sbp2.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/firmware
-#lib/modules/KVER-ipfire-xen/kernel/drivers/firmware/iscsi_ibft.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu
-#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm
-#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/drm.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/drm_kms_helper.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/i810
-#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/i810/i810.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/i830
-#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/i830/i830.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/i915
-#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/i915/i915.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/mga
-#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/mga/mga.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/r128
-#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/r128/r128.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/radeon
-#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/radeon/radeon.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/savage
-#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/savage/savage.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/sis
-#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/sis/sis.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/tdfx
-#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/tdfx/tdfx.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/ttm
-#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/ttm/ttm.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/via
-#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/via/via.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hid
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-a4tech.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-apple.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-belkin.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-cherry.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-chicony.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-cypress.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-drff.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-ezkey.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-gaff.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-gyration.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-kensington.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-kye.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-logitech.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-microsoft.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-monterey.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-ntrig.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-petalynx.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-pl.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-samsung.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-sjoy.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-sony.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-sunplus.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-tmff.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-topseed.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-twinhan.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-wacom.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-zpff.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/usbhid
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/usbhid/usbhid.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/abituguru.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/abituguru3.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/ad7414.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/ad7418.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/adm1021.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/adm1025.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/adm1026.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/adm1029.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/adm1031.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/adm9240.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/ads7828.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/adt7462.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/adt7470.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/adt7473.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/adt7475.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/applesmc.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/asb100.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/asus_atk0110.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/atxp1.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/coretemp.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/dme1737.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/ds1621.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/f71805f.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/f71882fg.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/f75375s.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/fschmd.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/g760a.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/gl518sm.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/gl520sm.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/hdaps.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/hp_accel.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/hwmon-vid.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/hwmon.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/i5k_amb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/ibmaem.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/ibmpex.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/it87.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/k8temp.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/lis3lv02d.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/lm63.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/lm75.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/lm77.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/lm78.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/lm80.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/lm83.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/lm85.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/lm87.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/lm90.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/lm92.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/lm93.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/lm95241.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/ltc4215.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/ltc4245.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/max1619.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/max6650.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/pc87360.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/pc87427.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/pcf8591.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/sis5595.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/smsc47b397.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/smsc47m1.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/smsc47m192.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/thmc50.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/tmp401.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/tmp421.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/via686a.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/vt1211.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/vt8231.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/w83627ehf.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/w83627hf.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/w83781d.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/w83791d.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/w83792d.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/w83793.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/w83l785ts.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/w83l786ng.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/wm831x-hwmon.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/wm8350-hwmon.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/algos
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/algos/i2c-algo-bit.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/algos/i2c-algo-pca.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-ali1535.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-ali1563.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-ali15x3.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-amd756-s4882.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-amd756.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-amd8111.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-i801.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-isch.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-nforce2-s4985.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-nforce2.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-ocores.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-parport-light.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-parport.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-pca-platform.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-piix4.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-scmi.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-simtec.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-sis5595.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-sis630.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-sis96x.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-stub.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-tiny-usb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-via.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-viapro.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-voodoo3.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/scx200_acb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/chips
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/chips/ds1682.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/chips/tsl2550.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/i2c-core.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/i2c-dev.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ieee802154
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ieee802154/fakehard.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/input
-#lib/modules/KVER-ipfire-xen/kernel/drivers/input/ff-memless.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/input/input-polldev.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/input/keyboard
-#lib/modules/KVER-ipfire-xen/kernel/drivers/input/keyboard/adp5588-keys.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/input/keyboard/lkkbd.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/input/keyboard/lm8323.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/input/keyboard/max7359_keypad.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/input/keyboard/newtonkbd.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/input/keyboard/opencores-kbd.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/input/keyboard/stowaway.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/input/keyboard/sunkbd.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/input/keyboard/xtkbd.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/input/misc
-#lib/modules/KVER-ipfire-xen/kernel/drivers/input/misc/apanel.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/input/misc/ati_remote.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/input/misc/ati_remote2.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/input/misc/cm109.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/input/misc/keyspan_remote.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/input/misc/pcf50633-input.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/input/misc/pcspkr.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/input/misc/powermate.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/input/misc/winbond-cir.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/input/misc/wm831x-on.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/input/misc/yealink.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/capi
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/capi/capi.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/capi/capidrv.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/capi/kernelcapi.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/divert
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/divert/dss1_divert.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/gigaset
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/gigaset/bas_gigaset.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/gigaset/gigaset.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/gigaset/ser_gigaset.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/gigaset/usb_gigaset.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hardware
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hardware/avm
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hardware/avm/avm_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hardware/avm/b1.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hardware/avm/b1dma.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hardware/avm/b1pci.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hardware/avm/c4.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hardware/avm/t1pci.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hardware/eicon
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hardware/eicon/diva_idi.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hardware/eicon/diva_mnt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hardware/eicon/divacapi.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hardware/eicon/divadidd.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hardware/eicon/divas.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hisax
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hisax/avma1_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hisax/elsa_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hisax/hfc4s8s_l1.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hisax/hfc_usb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hisax/hisax.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hisax/hisax_fcpcipnp.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hisax/hisax_isac.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hisax/hisax_st5481.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hisax/sedlbauer_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hisax/teles_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hysdn
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hysdn/hysdn.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/i4l
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/i4l/isdn.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/i4l/isdn_bsdcomp.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/i4l/isdnhdlc.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/leds
-#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/led-class.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/leds-alix2.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/leds-bd2802.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/leds-clevo-mail.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/leds-lp3944.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/leds-net48xx.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/leds-pca9532.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/leds-pca955x.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/leds-wm831x-status.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/leds-wm8350.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/leds-wrap.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/ledtrig-backlight.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/ledtrig-default-on.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/ledtrig-heartbeat.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/ledtrig-netdev.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/ledtrig-timer.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/md
-#lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-crypt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-delay.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-log-userspace.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-log.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-mirror.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-mod.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-multipath.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-queue-length.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-region-hash.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-round-robin.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-service-time.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-snapshot.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-zero.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/md/linear.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/md/md-mod.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/md/multipath.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/md/raid0.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/md/raid1.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/md/raid10.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/md/raid456.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/md/raid6_pq.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/media
-#lib/modules/KVER-ipfire-xen/kernel/drivers/media/common
-#lib/modules/KVER-ipfire-xen/kernel/drivers/media/common/tuners
-#lib/modules/KVER-ipfire-xen/kernel/drivers/media/common/tuners/mc44s803.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/media/common/tuners/mt20xx.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/media/common/tuners/tda8290.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/media/common/tuners/tda9887.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/media/common/tuners/tea5761.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/media/common/tuners/tea5767.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/media/common/tuners/tuner-simple.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/media/common/tuners/tuner-types.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/media/common/tuners/tuner-xc2028.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/media/common/tuners/xc5000.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/media/dvb
-#lib/modules/KVER-ipfire-xen/kernel/drivers/media/dvb/dvb-core
-#lib/modules/KVER-ipfire-xen/kernel/drivers/media/dvb/dvb-core/dvb-core.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/media/video
-#lib/modules/KVER-ipfire-xen/kernel/drivers/media/video/v4l1-compat.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/media/video/v4l2-common.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/media/video/v4l2-int-device.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/media/video/videodev.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/memstick
-#lib/modules/KVER-ipfire-xen/kernel/drivers/memstick/core
-#lib/modules/KVER-ipfire-xen/kernel/drivers/memstick/core/memstick.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/memstick/core/mspro_block.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/memstick/host
-#lib/modules/KVER-ipfire-xen/kernel/drivers/memstick/host/jmb38x_ms.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/memstick/host/tifm_ms.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/message
-#lib/modules/KVER-ipfire-xen/kernel/drivers/message/fusion
-#lib/modules/KVER-ipfire-xen/kernel/drivers/message/fusion/mptbase.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/message/fusion/mptctl.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/message/fusion/mptfc.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/message/fusion/mptsas.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/message/fusion/mptscsih.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/message/fusion/mptspi.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mfd
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mfd/ab3100-core.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mfd/ab3100-otp.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mfd/htc-pasic3.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mfd/mfd-core.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mfd/pcf50633-adc.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mfd/pcf50633-core.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mfd/pcf50633-gpio.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mfd/sm501.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mfd/wm831x.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mfd/wm8350-i2c.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mfd/wm8350.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mfd/wm8400-core.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/misc
-#lib/modules/KVER-ipfire-xen/kernel/drivers/misc/c2port
-#lib/modules/KVER-ipfire-xen/kernel/drivers/misc/c2port/c2port-duramar2150.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/misc/c2port/core.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/misc/cb710
-#lib/modules/KVER-ipfire-xen/kernel/drivers/misc/cb710/cb710.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/misc/eeprom
-#lib/modules/KVER-ipfire-xen/kernel/drivers/misc/eeprom/at24.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/misc/eeprom/eeprom.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/misc/eeprom/eeprom_93cx6.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/misc/eeprom/max6875.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/misc/enclosure.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/misc/hpilo.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/misc/ics932s401.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/misc/isl29003.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/misc/tifm_7xx1.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/misc/tifm_core.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc/card
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc/card/mmc_block.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc/card/mmc_test.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc/card/sdio_uart.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc/core
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc/core/mmc_core.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc/host
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc/host/cb710-mmc.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc/host/ricoh_mmc.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc/host/sdhci-pci.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc/host/sdhci-pltfm.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc/host/sdhci.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc/host/sdricoh_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc/host/tifm_sd.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc/host/via-sdmmc.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc/host/wbsd.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/ar7part.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/chips
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/chips/chipreg.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/lpddr
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/lpddr/lpddr_cmds.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/lpddr/qinfo_probe.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/maps
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/maps/physmap.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/mtd.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/mtd_blkdevs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/mtdblock.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/mtdchar.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/mtdconcat.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/tests
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/tests/mtd_oobtest.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/tests/mtd_pagetest.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/tests/mtd_readtest.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/tests/mtd_speedtest.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/tests/mtd_stresstest.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/tests/mtd_subpagetest.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/tests/mtd_torturetest.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/ubi
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/ubi/ubi.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/3c59x.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/8139cp.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/8139too.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/8390.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/acenic.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/amd8111e.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/atl1c
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/atl1c/atl1c.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/atl1e
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/atl1e/atl1e.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/atlx
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/atlx/atl1.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/atlx/atl2.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/atp.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/b44.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/benet
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/benet/be2net.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/bnx2.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/bnx2x.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/bonding
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/bonding/bonding.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/bsd_comp.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/cassini.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/chelsio
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/chelsio/cxgb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/cnic.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/cxgb3
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/cxgb3/cxgb3.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/de600.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/de620.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/dl2k.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/dnet.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/dummy.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/e100.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/e1000
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/e1000/e1000.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/e1000e
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/e1000e/e1000e.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/enic
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/enic/enic.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/epic100.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/eql.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/ethoc.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/fealnx.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/forcedeth.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/hamachi.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/hp100.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/ifb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/igb
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/igb/igb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/igbvf
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/igbvf/igbvf.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/imq.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/ipg.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/irda
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/irda/ali-ircc.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/irda/donauboe.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/irda/irda-usb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/irda/irtty-sir.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/irda/kingsun-sir.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/irda/ks959-sir.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/irda/ksdazzle-sir.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/irda/mcs7780.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/irda/nsc-ircc.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/irda/sir-dev.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/irda/smsc-ircc2.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/irda/stir4200.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/irda/via-ircc.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/irda/vlsi_ir.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/irda/w83977af_ir.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/ixgb
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/ixgb/ixgb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/ixgbe
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/ixgbe/ixgbe.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/jme.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/ks8842.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/ks8851_mll.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/macvlan.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/mdio.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/mii.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/mlx4
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/mlx4/mlx4_core.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/mlx4/mlx4_en.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/myri10ge
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/myri10ge/myri10ge.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/natsemi.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/ne2k-pci.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/netxen
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/netxen/netxen_nic.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/niu.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/ns83820.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/pcmcia
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/pcmcia/3c574_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/pcmcia/3c589_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/pcmcia/axnet_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/pcmcia/fmvj18x_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/pcmcia/nmclan_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/pcmcia/pcnet_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/pcmcia/smc91c92_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/pcmcia/xirc2ps_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/pcnet32.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/phy
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/phy/broadcom.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/phy/cicada.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/phy/davicom.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/phy/et1011c.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/phy/icplus.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/phy/lxt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/phy/marvell.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/phy/mdio-bitbang.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/phy/national.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/phy/qsemi.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/phy/realtek.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/phy/smsc.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/phy/ste10Xp.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/phy/vitesse.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/ppp_async.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/ppp_deflate.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/ppp_generic.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/ppp_mppe.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/ppp_synctty.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/pppoe.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/pppol2tp.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/pppox.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/qla3xxx.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/qlge
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/qlge/qlge.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/r6040.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/r8169.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/s2io.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/sb1000.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/sc92031.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/sis190.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/sis900.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/skge.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/sky2.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/slhc.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/slip.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/smsc9420.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/starfire.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/sundance.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/sungem.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/sungem_phy.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/sunhme.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/tehuti.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/tg3.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/tlan.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/tulip
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/tulip/de2104x.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/tulip/de4x5.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/tulip/dmfe.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/tulip/tulip.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/tulip/uli526x.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/tulip/winbond-840.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/tulip/xircom_cb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/tun.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/typhoon.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/asix.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/catc.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/cdc-phonet.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/cdc_eem.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/cdc_ether.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/cdc_subset.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/dm9601.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/gl620a.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/hso.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/int51x1.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/kaweth.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/mcs7830.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/net1080.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/pegasus.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/plusb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/rndis_host.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/rtl8150.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/smsc95xx.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/usbnet.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/zaurus.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/veth.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/via-rhine.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/via-velocity.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/vxge
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/vxge/vxge.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wimax
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wimax/i2400m
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wimax/i2400m/i2400m-sdio.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wimax/i2400m/i2400m-usb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wimax/i2400m/i2400m.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/adm8211.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/airo.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/airo_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/at76c50x-usb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/ath
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/ath/ar9170
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/ath/ar9170/ar9170usb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/ath/ath.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/ath/ath5k
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/ath/ath5k/ath5k.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/ath/ath9k
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/ath/ath9k/ath9k.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/atmel.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/atmel_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/atmel_pci.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/b43
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/b43/b43.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/b43legacy
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/b43legacy/b43legacy.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/hostap
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/hostap/hostap.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/hostap/hostap_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/hostap/hostap_pci.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/hostap/hostap_plx.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/ipw2x00
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/ipw2x00/ipw2100.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/ipw2x00/ipw2200.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/ipw2x00/libipw.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/iwlwifi
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/iwlwifi/iwl3945.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/iwlwifi/iwlagn.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/iwlwifi/iwlcore.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/iwmc3200wifi
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/iwmc3200wifi/iwmc3200wifi.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/libertas
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/libertas/libertas.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/libertas/libertas_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/libertas/libertas_sdio.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/libertas/usb8xxx.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/libertas_tf
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/libertas_tf/libertas_tf.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/libertas_tf/libertas_tf_usb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/mwl8k.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/orinoco
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/orinoco/orinoco.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/orinoco/orinoco_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/orinoco/orinoco_nortel.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/orinoco/orinoco_pci.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/orinoco/orinoco_plx.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/orinoco/orinoco_tmd.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/orinoco/spectrum_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/p54
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/p54/p54common.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/p54/p54pci.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/p54/p54usb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/prism54
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/prism54/prism54.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/ray_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/rndis_wlan.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/rt2x00
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2400pci.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2500pci.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2500usb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2800usb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2x00lib.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2x00pci.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2x00usb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt61pci.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt73usb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/rtl818x
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/rtl818x/rtl8180.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/rtl818x/rtl8187.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/wl12xx
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/wl12xx/wl1251.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/wl12xx/wl1251_sdio.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/wl3501_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/zd1201.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/zd1211rw
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/zd1211rw/zd1211rw.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/yellowfin.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/parport
-#lib/modules/KVER-ipfire-xen/kernel/drivers/parport/parport.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/parport/parport_ax88796.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/parport/parport_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/parport/parport_pc.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/pci
-#lib/modules/KVER-ipfire-xen/kernel/drivers/pci/pci-stub.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/pcmcia
-#lib/modules/KVER-ipfire-xen/kernel/drivers/pcmcia/i82092.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/pcmcia/pcmcia.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/pcmcia/pcmcia_core.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/pcmcia/pd6729.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/pcmcia/rsrc_nonstatic.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/pcmcia/yenta_socket.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/platform
-#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86
-#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/acer-wmi.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/asus-laptop.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/asus_acpi.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/compal-laptop.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/dell-wmi.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/fujitsu-laptop.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/hp-wmi.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/intel_menlow.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/msi-laptop.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/panasonic-laptop.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/sony-laptop.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/tc1100-wmi.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/thinkpad_acpi.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/topstar-laptop.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/toshiba_acpi.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/wmi.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/power
-#lib/modules/KVER-ipfire-xen/kernel/drivers/power/bq27x00_battery.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/power/ds2782_battery.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/power/max17040_battery.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/power/pcf50633-charger.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/power/wm831x_power.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/power/wm8350_power.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/pps
-#lib/modules/KVER-ipfire-xen/kernel/drivers/pps/pps_core.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-ab3100.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-bq4802.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-cmos.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-core.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-ds1286.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-ds1307.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-ds1374.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-ds1511.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-ds1553.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-ds1672.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-ds1742.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-fm3130.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-isl1208.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-lib.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-m41t80.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-m48t35.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-m48t59.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-m48t86.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-max6900.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-pcf50633.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-pcf8563.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-pcf8583.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-rs5c372.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-rx8025.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-rx8581.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-s35390a.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-stk17ta8.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-test.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-v3020.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-wm831x.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-wm8350.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-x1205.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/3w-9xxx.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/3w-xxxx.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/BusLogic.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/a100u2w.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/aacraid
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/aacraid/aacraid.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/advansys.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/aic7xxx
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/aic7xxx/aic79xx.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/aic7xxx/aic7xxx.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/aic94xx
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/aic94xx/aic94xx.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/arcmsr
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/arcmsr/arcmsr.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/atp870u.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/be2iscsi
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/be2iscsi/be2iscsi.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/bfa
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/bfa/bfa.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/bnx2i
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/bnx2i/bnx2i.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/ch.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/cxgb3i
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/cxgb3i/cxgb3i.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/dc395x.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/device_handler
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/device_handler/scsi_dh.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/device_handler/scsi_dh_alua.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/device_handler/scsi_dh_emc.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/device_handler/scsi_dh_hp_sw.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/device_handler/scsi_dh_rdac.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/dmx3191d.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/dpt_i2o.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/eata.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/fcoe
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/fcoe/fcoe.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/fcoe/libfcoe.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/fdomain.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/fnic
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/fnic/fnic.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/gdth.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/hptiop.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/imm.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/initio.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/ipr.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/ips.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/iscsi_tcp.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/libfc
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/libfc/libfc.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/libiscsi.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/libiscsi_tcp.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/libsas
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/libsas/libsas.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/lpfc
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/lpfc/lpfc.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/megaraid
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/megaraid.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/megaraid/megaraid_mbox.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/megaraid/megaraid_mm.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/megaraid/megaraid_sas.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/mvsas
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/mvsas/mvsas.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/nsp32.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/osd
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/osd/libosd.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/osd/osd.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/pcmcia
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/pcmcia/aha152x_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/pcmcia/fdomain_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/pcmcia/nsp_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/pcmcia/qlogic_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/pcmcia/sym53c500_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/pmcraid.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/ppa.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/qla1280.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/qla2xxx
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/qla2xxx/qla2xxx.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/qla4xxx
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/qla4xxx/qla4xxx.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/qlogicfas408.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/scsi_mod.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/scsi_transport_fc.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/scsi_transport_iscsi.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/scsi_transport_sas.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/scsi_transport_spi.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/scsi_transport_srp.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/scsi_wait_scan.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/sd_mod.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/ses.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/sg.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/sr_mod.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/stex.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/sym53c8xx_2
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/sym53c8xx_2/sym53c8xx.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/tmscsim.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/serial
-#lib/modules/KVER-ipfire-xen/kernel/drivers/serial/jsm
-#lib/modules/KVER-ipfire-xen/kernel/drivers/serial/jsm/jsm.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/serial/serial_core.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ssb
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ssb/ssb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/staging
-#lib/modules/KVER-ipfire-xen/kernel/drivers/staging/et131x
-#lib/modules/KVER-ipfire-xen/kernel/drivers/staging/et131x/et131x.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/staging/slicoss
-#lib/modules/KVER-ipfire-xen/kernel/drivers/staging/slicoss/slicoss.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/uio
-#lib/modules/KVER-ipfire-xen/kernel/drivers/uio/uio.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/uio/uio_aec.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/uio/uio_cif.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/uio/uio_pci_generic.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/uio/uio_pdrv.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/uio/uio_pdrv_genirq.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/uio/uio_sercos3.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/uio/uio_smx.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/atm
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/atm/cxacru.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/atm/speedtch.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/atm/ueagle-atm.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/atm/usbatm.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/atm/xusbatm.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/class
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/class/cdc-acm.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/class/cdc-wdm.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/class/usblp.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/class/usbtmc.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/core
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/core/usbcore.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/host
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/host/ehci-hcd.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/host/hwa-hc.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/host/isp116x-hcd.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/host/isp1362-hcd.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/host/ohci-hcd.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/host/oxu210hp-hcd.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/host/r8a66597-hcd.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/host/sl811-hcd.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/host/u132-hcd.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/host/uhci-hcd.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/host/whci
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/host/whci/whci-hcd.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/host/xhci.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/misc
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/misc/berry_charge.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/misc/cypress_cy7c63.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/misc/cytherm.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/misc/emi26.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/misc/emi62.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/misc/ftdi-elan.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/misc/iowarrior.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/misc/isight_firmware.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/misc/sisusbvga
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/misc/sisusbvga/sisusbvga.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/misc/usblcd.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/misc/usbled.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/misc/usbsevseg.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/misc/uss720.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/misc/vstusb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/otg
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/otg/nop-usb-xceiv.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/aircable.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/ark3116.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/belkin_sa.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/ch341.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/cp210x.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/cypress_m8.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/digi_acceleport.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/empeg.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/ftdi_sio.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/garmin_gps.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/hp4x.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/io_edgeport.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/ipw.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/iuu_phoenix.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/keyspan_pda.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/mct_u232.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/mos7720.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/mos7840.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/moto_modem.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/opticon.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/option.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/oti6858.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/pl2303.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/safe_serial.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/siemens_mpi.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/sierra.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/spcp8x5.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/symbolserial.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/ti_usb_3410_5052.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/usbserial.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/whiteheat.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/storage
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/storage/ums-alauda.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/storage/ums-cypress.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/storage/ums-freecom.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/storage/ums-isd200.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/storage/ums-jumpshot.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/storage/ums-karma.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/storage/ums-onetouch.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/storage/ums-sddr09.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/storage/ums-sddr55.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/storage/ums-usbat.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/storage/usb-storage.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/wusbcore
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/wusbcore/wusb-cbaf.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/wusbcore/wusb-wa.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/wusbcore/wusbcore.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/uwb
-#lib/modules/KVER-ipfire-xen/kernel/drivers/uwb/hwa-rc.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/uwb/i1480
-#lib/modules/KVER-ipfire-xen/kernel/drivers/uwb/i1480/dfu
-#lib/modules/KVER-ipfire-xen/kernel/drivers/uwb/i1480/dfu/i1480-dfu-usb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/uwb/i1480/i1480-est.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/uwb/i1480/i1480u-wlp
-#lib/modules/KVER-ipfire-xen/kernel/drivers/uwb/i1480/i1480u-wlp/i1480u-wlp.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/uwb/umc.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/uwb/uwb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/uwb/whc-rc.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/uwb/whci.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/uwb/wlp
-#lib/modules/KVER-ipfire-xen/kernel/drivers/uwb/wlp/wlp.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/arkfb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/aty
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/aty/aty128fb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/aty/atyfb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/aty/radeonfb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/backlight
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/backlight/cr_bllcd.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/backlight/generic_bl.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/backlight/kb3886_bl.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/backlight/lcd.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/backlight/mbp_nvidia_bl.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/backlight/platform_lcd.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/backlight/progear_bl.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/backlight/wm831x_bl.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/broadsheetfb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/cirrusfb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/cyber2000fb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/display
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/display/display.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/fb_ddc.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/fb_sys_fops.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/geode
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/geode/gx1fb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/geode/gxfb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/geode/lxfb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/i810
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/i810/i810fb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/kyro
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/kyro/kyrofb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/macmodes.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/matrox
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/matrox/g450_pll.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/matrox/i2c-matroxfb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/matrox/matroxfb_DAC1064.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/matrox/matroxfb_Ti3026.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/matrox/matroxfb_accel.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/matrox/matroxfb_base.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/matrox/matroxfb_crtc2.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/matrox/matroxfb_g450.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/matrox/matroxfb_maven.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/matrox/matroxfb_misc.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/mb862xx
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/mb862xx/mb862xxfb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/metronomefb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/neofb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/nvidia
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/nvidia/nvidiafb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/output.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/pm2fb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/pm3fb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/riva
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/riva/rivafb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/s3fb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/savage
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/savage/savagefb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/sis
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/sis/sisfb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/sm501fb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/sstfb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/svgalib.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/syscopyarea.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/sysfillrect.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/sysimgblt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/tdfxfb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/tmiofb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/tridentfb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/uvesafb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/vermilion
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/vermilion/crvml.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/vermilion/vmlfb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/vgastate.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/via
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/via/viafb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/vt8623fb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/w1
-#lib/modules/KVER-ipfire-xen/kernel/drivers/w1/masters
-#lib/modules/KVER-ipfire-xen/kernel/drivers/w1/masters/ds2482.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/w1/masters/ds2490.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/w1/masters/matrox_w1.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/w1/slaves
-#lib/modules/KVER-ipfire-xen/kernel/drivers/w1/slaves/w1_bq27000.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/w1/slaves/w1_ds2431.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/w1/slaves/w1_ds2433.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/w1/slaves/w1_ds2760.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/w1/slaves/w1_smem.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/w1/slaves/w1_therm.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/w1/wire.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/acquirewdt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/advantechwdt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/alim1535_wdt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/alim7101_wdt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/cpu5wdt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/eurotechwdt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/hpwdt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/i6300esb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/iTCO_wdt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/ib700wdt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/ibmasr.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/it8712f_wdt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/it87_wdt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/machzwd.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/pc87413_wdt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/pcwd_pci.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/pcwd_usb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/sbc60xxwdt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/sbc7240_wdt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/sbc8360.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/sbc_epx_c3.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/sbc_fitpc2_wdt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/sc1200wdt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/sc520_wdt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/sch311x_wdt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/scx200_wdt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/smsc37b787_wdt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/softdog.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/w83627hf_wdt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/w83697hf_wdt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/w83697ug_wdt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/w83877f_wdt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/w83977f_wdt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/wafer5823wdt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/wdt_pci.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/wm831x_wdt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/wm8350_wdt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/xen
-#lib/modules/KVER-ipfire-xen/kernel/drivers/xen/blktap2
-#lib/modules/KVER-ipfire-xen/kernel/drivers/xen/blktap2/blktap.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/xen/scsiback
-#lib/modules/KVER-ipfire-xen/kernel/drivers/xen/scsiback/xen-scsibk.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/xen/scsifront
-#lib/modules/KVER-ipfire-xen/kernel/drivers/xen/scsifront/xenscsi.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/xen/usbback
-#lib/modules/KVER-ipfire-xen/kernel/drivers/xen/usbback/usbbk.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/xen/usbfront
-#lib/modules/KVER-ipfire-xen/kernel/drivers/xen/usbfront/xen-hcd.ko
-#lib/modules/KVER-ipfire-xen/kernel/fs
-#lib/modules/KVER-ipfire-xen/kernel/fs/autofs
-#lib/modules/KVER-ipfire-xen/kernel/fs/autofs/autofs.ko
-#lib/modules/KVER-ipfire-xen/kernel/fs/autofs4
-#lib/modules/KVER-ipfire-xen/kernel/fs/autofs4/autofs4.ko
-#lib/modules/KVER-ipfire-xen/kernel/fs/cifs
-#lib/modules/KVER-ipfire-xen/kernel/fs/cifs/cifs.ko
-#lib/modules/KVER-ipfire-xen/kernel/fs/ecryptfs
-#lib/modules/KVER-ipfire-xen/kernel/fs/ecryptfs/ecryptfs.ko
-#lib/modules/KVER-ipfire-xen/kernel/fs/exportfs
-#lib/modules/KVER-ipfire-xen/kernel/fs/exportfs/exportfs.ko
-#lib/modules/KVER-ipfire-xen/kernel/fs/ext2
-#lib/modules/KVER-ipfire-xen/kernel/fs/ext2/ext2.ko
-#lib/modules/KVER-ipfire-xen/kernel/fs/ext3
-#lib/modules/KVER-ipfire-xen/kernel/fs/ext3/ext3.ko
-#lib/modules/KVER-ipfire-xen/kernel/fs/ext4
-#lib/modules/KVER-ipfire-xen/kernel/fs/ext4/ext4.ko
-#lib/modules/KVER-ipfire-xen/kernel/fs/fat
-#lib/modules/KVER-ipfire-xen/kernel/fs/fat/fat.ko
-#lib/modules/KVER-ipfire-xen/kernel/fs/fat/vfat.ko
-#lib/modules/KVER-ipfire-xen/kernel/fs/fuse
-#lib/modules/KVER-ipfire-xen/kernel/fs/fuse/cuse.ko
-#lib/modules/KVER-ipfire-xen/kernel/fs/fuse/fuse.ko
-#lib/modules/KVER-ipfire-xen/kernel/fs/isofs
-#lib/modules/KVER-ipfire-xen/kernel/fs/isofs/isofs.ko
-#lib/modules/KVER-ipfire-xen/kernel/fs/jbd
-#lib/modules/KVER-ipfire-xen/kernel/fs/jbd/jbd.ko
-#lib/modules/KVER-ipfire-xen/kernel/fs/jbd2
-#lib/modules/KVER-ipfire-xen/kernel/fs/jbd2/jbd2.ko
-#lib/modules/KVER-ipfire-xen/kernel/fs/jffs2
-#lib/modules/KVER-ipfire-xen/kernel/fs/jffs2/jffs2.ko
-#lib/modules/KVER-ipfire-xen/kernel/fs/jfs
-#lib/modules/KVER-ipfire-xen/kernel/fs/jfs/jfs.ko
-#lib/modules/KVER-ipfire-xen/kernel/fs/lockd
-#lib/modules/KVER-ipfire-xen/kernel/fs/lockd/lockd.ko
-#lib/modules/KVER-ipfire-xen/kernel/fs/mbcache.ko
-#lib/modules/KVER-ipfire-xen/kernel/fs/nfs
-#lib/modules/KVER-ipfire-xen/kernel/fs/nfs/nfs.ko
-#lib/modules/KVER-ipfire-xen/kernel/fs/nfs_common
-#lib/modules/KVER-ipfire-xen/kernel/fs/nfs_common/nfs_acl.ko
-#lib/modules/KVER-ipfire-xen/kernel/fs/nfsd
-#lib/modules/KVER-ipfire-xen/kernel/fs/nfsd/nfsd.ko
-#lib/modules/KVER-ipfire-xen/kernel/fs/quota
-#lib/modules/KVER-ipfire-xen/kernel/fs/quota/quota_tree.ko
-#lib/modules/KVER-ipfire-xen/kernel/fs/quota/quota_v1.ko
-#lib/modules/KVER-ipfire-xen/kernel/fs/quota/quota_v2.ko
-#lib/modules/KVER-ipfire-xen/kernel/fs/reiser4
-#lib/modules/KVER-ipfire-xen/kernel/fs/reiser4/reiser4.ko
-#lib/modules/KVER-ipfire-xen/kernel/fs/reiserfs
-#lib/modules/KVER-ipfire-xen/kernel/fs/reiserfs/reiserfs.ko
-#lib/modules/KVER-ipfire-xen/kernel/fs/smbfs
-#lib/modules/KVER-ipfire-xen/kernel/fs/smbfs/smbfs.ko
-#lib/modules/KVER-ipfire-xen/kernel/fs/udf
-#lib/modules/KVER-ipfire-xen/kernel/fs/udf/udf.ko
-#lib/modules/KVER-ipfire-xen/kernel/fs/xfs
-#lib/modules/KVER-ipfire-xen/kernel/fs/xfs/xfs.ko
-#lib/modules/KVER-ipfire-xen/kernel/lib
-#lib/modules/KVER-ipfire-xen/kernel/lib/crc-ccitt.ko
-#lib/modules/KVER-ipfire-xen/kernel/lib/crc-itu-t.ko
-#lib/modules/KVER-ipfire-xen/kernel/lib/crc-t10dif.ko
-#lib/modules/KVER-ipfire-xen/kernel/lib/crc16.ko
-#lib/modules/KVER-ipfire-xen/kernel/lib/crc7.ko
-#lib/modules/KVER-ipfire-xen/kernel/lib/libcrc32c.ko
-#lib/modules/KVER-ipfire-xen/kernel/lib/lzo
-#lib/modules/KVER-ipfire-xen/kernel/lib/lzo/lzo_compress.ko
-#lib/modules/KVER-ipfire-xen/kernel/lib/lzo/lzo_decompress.ko
-#lib/modules/KVER-ipfire-xen/kernel/lib/ts_bm.ko
-#lib/modules/KVER-ipfire-xen/kernel/lib/ts_fsm.ko
-#lib/modules/KVER-ipfire-xen/kernel/lib/ts_kmp.ko
-#lib/modules/KVER-ipfire-xen/kernel/net
-#lib/modules/KVER-ipfire-xen/kernel/net/802
-#lib/modules/KVER-ipfire-xen/kernel/net/802/garp.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/802/p8022.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/802/psnap.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/802/stp.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/8021q
-#lib/modules/KVER-ipfire-xen/kernel/net/8021q/8021q.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/atm
-#lib/modules/KVER-ipfire-xen/kernel/net/atm/atm.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/atm/br2684.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/atm/clip.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/atm/pppoatm.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/bluetooth
-#lib/modules/KVER-ipfire-xen/kernel/net/bluetooth/bluetooth.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/bluetooth/bnep
-#lib/modules/KVER-ipfire-xen/kernel/net/bluetooth/bnep/bnep.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/bluetooth/cmtp
-#lib/modules/KVER-ipfire-xen/kernel/net/bluetooth/cmtp/cmtp.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/bluetooth/hidp
-#lib/modules/KVER-ipfire-xen/kernel/net/bluetooth/hidp/hidp.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/bluetooth/l2cap.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/bluetooth/rfcomm
-#lib/modules/KVER-ipfire-xen/kernel/net/bluetooth/rfcomm/rfcomm.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/bluetooth/sco.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/bridge
-#lib/modules/KVER-ipfire-xen/kernel/net/bridge/bridge.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter
-#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_802_3.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_among.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_arp.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_arpreply.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_dnat.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_ip.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_ip6.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_limit.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_log.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_mark.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_mark_m.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_nflog.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_pkttype.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_redirect.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_snat.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_stp.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_ulog.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_vlan.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebtable_broute.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebtable_filter.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebtable_nat.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebtables.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ieee802154
-#lib/modules/KVER-ipfire-xen/kernel/net/ieee802154/af_802154.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ieee802154/nl802154.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ieee802154/wpan-class.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/ah4.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/esp4.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/inet_diag.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/ip_gre.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/ipcomp.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/ipip.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/arp_tables.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/arpt_mangle.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/arptable_filter.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/ip_queue.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/ip_tables.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/ipt_CLUSTERIP.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/ipt_ECN.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/ipt_LOG.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/ipt_MASQUERADE.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/ipt_NETMAP.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/ipt_REDIRECT.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/ipt_REJECT.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/ipt_ULOG.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/ipt_addrtype.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/ipt_ah.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/ipt_ecn.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/ipt_ipp2p.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/iptable_filter.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/iptable_mangle.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/iptable_nat.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/iptable_raw.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/nf_conntrack_ipv4.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/nf_defrag_ipv4.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_amanda.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_ftp.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_h323.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_irc.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_pptp.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_proto_dccp.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_proto_gre.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_proto_sctp.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_proto_udplite.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_sip.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_snmp_basic.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_tftp.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/tcp_bic.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/tcp_cubic.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/tcp_diag.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/tcp_highspeed.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/tcp_htcp.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/tcp_hybla.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/tcp_illinois.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/tcp_lp.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/tcp_scalable.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/tcp_vegas.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/tcp_veno.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/tcp_westwood.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/tcp_yeah.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/tunnel4.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/xfrm4_tunnel.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv6
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/ah6.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/esp6.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/ip6_tunnel.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/ipcomp6.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/ipv6.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/mip6.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/netfilter
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/netfilter/ip6_queue.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/netfilter/ip6_tables.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_LOG.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_REJECT.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_ah.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_eui64.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_frag.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_hbh.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_ipv6header.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_mh.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_rt.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/netfilter/ip6table_filter.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/netfilter/ip6table_mangle.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/netfilter/ip6table_raw.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/netfilter/nf_conntrack_ipv6.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/sit.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/tunnel6.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/xfrm6_mode_beet.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/xfrm6_mode_ro.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/xfrm6_mode_transport.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/xfrm6_mode_tunnel.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/xfrm6_tunnel.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/irda
-#lib/modules/KVER-ipfire-xen/kernel/net/irda/ircomm
-#lib/modules/KVER-ipfire-xen/kernel/net/irda/ircomm/ircomm-tty.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/irda/ircomm/ircomm.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/irda/irda.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/irda/irlan
-#lib/modules/KVER-ipfire-xen/kernel/net/irda/irlan/irlan.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/irda/irnet
-#lib/modules/KVER-ipfire-xen/kernel/net/irda/irnet/irnet.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/key
-#lib/modules/KVER-ipfire-xen/kernel/net/key/af_key.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/llc
-#lib/modules/KVER-ipfire-xen/kernel/net/llc/llc.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/mac80211
-#lib/modules/KVER-ipfire-xen/kernel/net/mac80211/mac80211.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/ipvs
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/ipvs/ip_vs.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack_amanda.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack_ftp.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack_h323.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack_irc.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack_netbios_ns.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack_netlink.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack_pptp.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack_proto_dccp.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack_proto_gre.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack_proto_sctp.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack_proto_udplite.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack_sane.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack_sip.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack_tftp.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_tproxy_core.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nfnetlink.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nfnetlink_log.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nfnetlink_queue.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/x_tables.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_CLASSIFY.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_CONNMARK.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_DSCP.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_HL.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_IMQ.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_LED.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_MARK.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_NFLOG.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_NFQUEUE.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_NOTRACK.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_RATEEST.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_TCPMSS.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_TCPOPTSTRIP.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_TPROXY.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_TRACE.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_cluster.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_comment.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_connbytes.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_connlimit.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_connmark.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_conntrack.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_dccp.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_dscp.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_esp.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_hashlimit.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_helper.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_hl.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_iprange.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_layer7.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_length.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_limit.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_mac.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_mark.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_multiport.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_osf.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_owner.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_physdev.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_pkttype.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_policy.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_quota.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_rateest.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_realm.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_recent.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_sctp.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_socket.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_state.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_statistic.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_string.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_tcpmss.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_tcpudp.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_time.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_u32.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/phonet
-#lib/modules/KVER-ipfire-xen/kernel/net/phonet/phonet.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/phonet/pn_pep.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/rds
-#lib/modules/KVER-ipfire-xen/kernel/net/rds/rds.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/rds/rds_tcp.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/rfkill
-#lib/modules/KVER-ipfire-xen/kernel/net/rfkill/rfkill.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/rxrpc
-#lib/modules/KVER-ipfire-xen/kernel/net/rxrpc/af-rxrpc.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/rxrpc/rxkad.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/act_gact.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/act_ipt.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/act_mirred.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/act_nat.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/act_pedit.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/act_police.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/act_skbedit.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/cls_basic.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/cls_flow.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/cls_fw.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/cls_route.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/cls_rsvp.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/cls_rsvp6.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/cls_tcindex.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/cls_u32.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/em_cmp.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/em_meta.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/em_nbyte.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/em_text.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/em_u32.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/sch_atm.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/sch_cbq.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/sch_drr.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/sch_dsmark.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/sch_gred.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/sch_hfsc.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/sch_htb.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/sch_ingress.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/sch_multiq.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/sch_netem.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/sch_prio.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/sch_red.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/sch_sfq.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/sch_tbf.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/sch_teql.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sunrpc
-#lib/modules/KVER-ipfire-xen/kernel/net/sunrpc/auth_gss
-#lib/modules/KVER-ipfire-xen/kernel/net/sunrpc/auth_gss/auth_rpcgss.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sunrpc/auth_gss/rpcsec_gss_krb5.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sunrpc/sunrpc.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/wimax
-#lib/modules/KVER-ipfire-xen/kernel/net/wimax/wimax.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/wireless
-#lib/modules/KVER-ipfire-xen/kernel/net/wireless/cfg80211.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/wireless/lib80211.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/wireless/lib80211_crypt_ccmp.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/wireless/lib80211_crypt_tkip.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/wireless/lib80211_crypt_wep.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/xfrm
-#lib/modules/KVER-ipfire-xen/kernel/net/xfrm/xfrm_ipcomp.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/xfrm/xfrm_user.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound
-#lib/modules/KVER-ipfire-xen/kernel/sound/ac97_bus.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/core
-#lib/modules/KVER-ipfire-xen/kernel/sound/core/oss
-#lib/modules/KVER-ipfire-xen/kernel/sound/core/oss/snd-mixer-oss.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/core/oss/snd-pcm-oss.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/core/seq
-#lib/modules/KVER-ipfire-xen/kernel/sound/core/seq/oss
-#lib/modules/KVER-ipfire-xen/kernel/sound/core/seq/oss/snd-seq-oss.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/core/seq/snd-seq-device.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/core/seq/snd-seq-dummy.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/core/seq/snd-seq-midi-emul.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/core/seq/snd-seq-midi-event.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/core/seq/snd-seq-midi.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/core/seq/snd-seq-virmidi.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/core/seq/snd-seq.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/core/snd-hwdep.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/core/snd-page-alloc.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/core/snd-pcm.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/core/snd-rawmidi.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/core/snd-timer.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/core/snd.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/drivers
-#lib/modules/KVER-ipfire-xen/kernel/sound/drivers/mpu401
-#lib/modules/KVER-ipfire-xen/kernel/sound/drivers/mpu401/snd-mpu401-uart.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/drivers/mpu401/snd-mpu401.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/drivers/opl3
-#lib/modules/KVER-ipfire-xen/kernel/sound/drivers/opl3/snd-opl3-lib.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/drivers/opl3/snd-opl3-synth.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/drivers/snd-dummy.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/drivers/snd-mtpav.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/drivers/snd-mts64.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/drivers/snd-portman2x4.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/drivers/snd-serial-u16550.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/drivers/snd-virmidi.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/drivers/vx
-#lib/modules/KVER-ipfire-xen/kernel/sound/drivers/vx/snd-vx-lib.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/i2c
-#lib/modules/KVER-ipfire-xen/kernel/sound/i2c/other
-#lib/modules/KVER-ipfire-xen/kernel/sound/i2c/other/snd-ak4114.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/i2c/other/snd-ak4117.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/i2c/other/snd-ak4xxx-adda.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/i2c/other/snd-pt2258.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/i2c/snd-cs8427.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/i2c/snd-i2c.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/isa
-#lib/modules/KVER-ipfire-xen/kernel/sound/isa/sb
-#lib/modules/KVER-ipfire-xen/kernel/sound/isa/sb/snd-sb-common.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/isa/sb/snd-sb16-dsp.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/ac97
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/ac97/snd-ac97-codec.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/ali5451
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/ali5451/snd-ali5451.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/au88x0
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/au88x0/snd-au8810.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/au88x0/snd-au8820.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/au88x0/snd-au8830.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/ca0106
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/ca0106/snd-ca0106.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/cs46xx
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/cs46xx/snd-cs46xx.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/cs5535audio
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/cs5535audio/snd-cs5535audio.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/ctxfi
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/ctxfi/snd-ctxfi.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/echoaudio
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/echoaudio/snd-darla20.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/echoaudio/snd-darla24.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/echoaudio/snd-echo3g.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/echoaudio/snd-gina20.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/echoaudio/snd-gina24.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/echoaudio/snd-indigo.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/echoaudio/snd-indigodj.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/echoaudio/snd-indigodjx.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/echoaudio/snd-indigoio.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/echoaudio/snd-indigoiox.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/echoaudio/snd-layla20.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/echoaudio/snd-layla24.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/echoaudio/snd-mia.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/echoaudio/snd-mona.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/emu10k1
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/emu10k1/snd-emu10k1-synth.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/emu10k1/snd-emu10k1.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/emu10k1/snd-emu10k1x.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/hda
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-analog.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-atihdmi.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-ca0110.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-cirrus.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-cmedia.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-conexant.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-idt.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-intelhdmi.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-nvhdmi.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-realtek.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-si3054.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-via.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/hda/snd-hda-intel.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/ice1712
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/ice1712/snd-ice1712.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/ice1712/snd-ice1724.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/ice1712/snd-ice17xx-ak4xxx.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/korg1212
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/korg1212/snd-korg1212.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/lx6464es
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/lx6464es/snd-lx6464es.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/mixart
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/mixart/snd-mixart.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/nm256
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/nm256/snd-nm256.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/oxygen
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/oxygen/snd-hifier.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/oxygen/snd-oxygen-lib.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/oxygen/snd-oxygen.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/oxygen/snd-virtuoso.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/pcxhr
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/pcxhr/snd-pcxhr.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/riptide
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/riptide/snd-riptide.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/rme9652
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/rme9652/snd-hdsp.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/rme9652/snd-hdspm.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/rme9652/snd-rme9652.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-ad1889.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-als300.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-als4000.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-atiixp-modem.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-atiixp.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-bt87x.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-cmipci.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-cs4281.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-cs5530.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-ens1370.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-ens1371.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-es1938.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-es1968.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-fm801.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-intel8x0.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-intel8x0m.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-maestro3.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-rme32.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-rme96.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-sis7019.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-sonicvibes.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-via82xx-modem.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-via82xx.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/trident
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/trident/snd-trident.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/vx222
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/vx222/snd-vx222.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/ymfpci
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/ymfpci/snd-ymfpci.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pcmcia
-#lib/modules/KVER-ipfire-xen/kernel/sound/pcmcia/pdaudiocf
-#lib/modules/KVER-ipfire-xen/kernel/sound/pcmcia/pdaudiocf/snd-pdaudiocf.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pcmcia/vx
-#lib/modules/KVER-ipfire-xen/kernel/sound/pcmcia/vx/snd-vxpocket.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-ad73311.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-ak4535.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-ak4642.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-cs4270.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-l3.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-max9877.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-pcm3008.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-spdif.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-ssm2602.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-tlv320aic23.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-tlv320aic3x.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-uda134x.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-uda1380.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm-hubs.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8350.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8400.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8510.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8523.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8580.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8728.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8731.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8750.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8753.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8776.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8900.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8903.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8940.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8960.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8961.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8971.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8974.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8988.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8990.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8993.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm9081.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/snd-soc-core.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soundcore.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/synth
-#lib/modules/KVER-ipfire-xen/kernel/sound/synth/emux
-#lib/modules/KVER-ipfire-xen/kernel/sound/synth/emux/snd-emux-synth.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/synth/snd-util-mem.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/usb
-#lib/modules/KVER-ipfire-xen/kernel/sound/usb/caiaq
-#lib/modules/KVER-ipfire-xen/kernel/sound/usb/caiaq/snd-usb-caiaq.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/usb/snd-usb-audio.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/usb/snd-usb-lib.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/usb/usx2y
-#lib/modules/KVER-ipfire-xen/kernel/sound/usb/usx2y/snd-usb-us122l.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/usb/usx2y/snd-usb-usx2y.ko
-#lib/modules/KVER-ipfire-xen/modules.alias
-#lib/modules/KVER-ipfire-xen/modules.alias.bin
-#lib/modules/KVER-ipfire-xen/modules.ccwmap
-#lib/modules/KVER-ipfire-xen/modules.dep
-#lib/modules/KVER-ipfire-xen/modules.dep.bin
-#lib/modules/KVER-ipfire-xen/modules.ieee1394map
-#lib/modules/KVER-ipfire-xen/modules.inputmap
-#lib/modules/KVER-ipfire-xen/modules.isapnpmap
-#lib/modules/KVER-ipfire-xen/modules.ofmap
-#lib/modules/KVER-ipfire-xen/modules.order
-#lib/modules/KVER-ipfire-xen/modules.pcimap
-#lib/modules/KVER-ipfire-xen/modules.seriomap
-#lib/modules/KVER-ipfire-xen/modules.symbols
-#lib/modules/KVER-ipfire-xen/modules.symbols.bin
-#lib/modules/KVER-ipfire-xen/modules.usbmap
-#lib/modules/KVER-ipfire-xen/source
+lib/modules/2.6.32.60-ipfire-xen
+#lib/modules/2.6.32.60-ipfire-xen/build
+#lib/modules/2.6.32.60-ipfire-xen/kernel
+#lib/modules/2.6.32.60-ipfire-xen/kernel/arch
+#lib/modules/2.6.32.60-ipfire-xen/kernel/arch/x86
+#lib/modules/2.6.32.60-ipfire-xen/kernel/arch/x86/crypto
+#lib/modules/2.6.32.60-ipfire-xen/kernel/arch/x86/crypto/aes-i586.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/arch/x86/crypto/crc32c-intel.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/arch/x86/crypto/salsa20-i586.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/arch/x86/crypto/twofish-i586.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/arch/x86/kernel
+#lib/modules/2.6.32.60-ipfire-xen/kernel/arch/x86/kernel/microcode.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/arch/x86/kernel/msr.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/arch/x86/kernel/scx200.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto
+#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/aes_generic.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/ansi_cprng.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/anubis.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/arc4.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/async_tx
+#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/async_tx/async_memcpy.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/async_tx/async_pq.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/async_tx/async_raid6_recov.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/async_tx/async_tx.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/async_tx/async_xor.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/authenc.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/blowfish.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/camellia.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/cast5.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/cast6.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/cbc.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/ccm.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/crc32c.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/cryptd.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/ctr.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/cts.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/des_generic.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/ecb.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/fcrypt.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/gcm.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/gf128mul.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/ghash-generic.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/khazad.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/lrw.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/lzo.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/md5.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/michael_mic.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/pcbc.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/rmd128.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/rmd160.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/rmd256.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/rmd320.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/salsa20_generic.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/seed.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/seqiv.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/serpent.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/sha1_generic.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/sha256_generic.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/sha512_generic.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/tea.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/tgr192.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/twofish.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/twofish_common.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/vmac.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/wp512.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/xcbc.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/xor.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/xts.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/zlib.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/acpi
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/acpi/ac.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/acpi/acpi_pad.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/acpi/battery.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/acpi/button.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/acpi/container.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/acpi/fan.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/acpi/pci_slot.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/acpi/power_meter.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/acpi/processor.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/acpi/sbs.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/acpi/sbshc.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/acpi/thermal.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/acpi/video.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/ahci.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/ata_generic.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/ata_piix.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/libata.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_acpi.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_ali.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_amd.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_artop.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_atiixp.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_atp867x.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_cmd640.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_cmd64x.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_cs5520.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_cs5530.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_cs5535.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_cs5536.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_cypress.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_efar.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_hpt366.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_hpt37x.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_hpt3x2n.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_hpt3x3.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_it8213.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_it821x.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_jmicron.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_marvell.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_mpiix.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_netcell.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_ninja32.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_ns87410.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_ns87415.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_oldpiix.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_opti.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_optidma.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_pcmcia.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_pdc2027x.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_pdc202xx_old.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_radisys.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_rdc.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_rz1000.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_sc1200.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_sch.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_serverworks.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_sil680.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_sis.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_sl82c105.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_triflex.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_via.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pdc_adma.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/sata_inic162x.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/sata_mv.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/sata_nv.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/sata_promise.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/sata_qstor.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/sata_sil.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/sata_sil24.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/sata_sis.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/sata_svw.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/sata_sx4.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/sata_uli.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/sata_via.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/sata_vsc.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/atm
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/atm/ambassador.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/atm/atmtcp.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/atm/eni.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/atm/firestream.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/atm/fore_200e.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/atm/he.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/atm/horizon.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/atm/idt77105.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/atm/idt77252.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/atm/iphase.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/atm/lanai.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/atm/nicstar.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/atm/solos-pci.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/atm/suni.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/atm/uPD98402.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/atm/zatm.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/block
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/block/DAC960.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/block/aoe
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/block/aoe/aoe.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/block/cciss.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/block/cpqarray.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/block/cryptoloop.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/block/floppy.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/block/nbd.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/block/osdblk.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/block/sx8.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/bluetooth
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/bluetooth/bcm203x.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/bluetooth/bfusb.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/bluetooth/bluecard_cs.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/bluetooth/bpa10x.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/bluetooth/bt3c_cs.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/bluetooth/btmrvl.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/bluetooth/btmrvl_sdio.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/bluetooth/btsdio.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/bluetooth/btuart_cs.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/bluetooth/btusb.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/bluetooth/dtl1_cs.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/bluetooth/hci_uart.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/bluetooth/hci_vhci.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/agp
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/agp/agpgart.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/agp/ali-agp.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/agp/amd-k7-agp.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/agp/amd64-agp.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/agp/ati-agp.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/agp/efficeon-agp.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/agp/intel-agp.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/agp/nvidia-agp.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/agp/sis-agp.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/agp/sworks-agp.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/agp/via-agp.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/cs5535_gpio.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/hangcheck-timer.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/hw_random
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/hw_random/amd-rng.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/hw_random/geode-rng.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/hw_random/intel-rng.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/hw_random/rng-core.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/hw_random/timeriomem-rng.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/hw_random/via-rng.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/i8k.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/ipmi
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/ipmi/ipmi_devintf.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/ipmi/ipmi_msghandler.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/ipmi/ipmi_poweroff.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/ipmi/ipmi_si.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/ipmi/ipmi_watchdog.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/lp.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/nozomi.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/nsc_gpio.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/nvram.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/pc8736x_gpio.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/pcmcia
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/pcmcia/ipwireless
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/pcmcia/ipwireless/ipwireless.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/pcmcia/synclink_cs.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/ppdev.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/scx200_gpio.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/toshiba.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/clocksource
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/clocksource/scx200_hrt.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/connector
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/connector/cn.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/crypto
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/crypto/geode-aes.ko.off
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/crypto/hifn_795x.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/crypto/padlock-aes.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/crypto/padlock-sha.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/dca
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/dca/dca.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/dma
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/dma/dmatest.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/dma/ioat
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/dma/ioat/ioatdma.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/firewire
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/firewire/firewire-core.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/firewire/firewire-net.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/firewire/firewire-ohci.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/firewire/firewire-sbp2.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/firmware
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/firmware/iscsi_ibft.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/drm.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/drm_kms_helper.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/i810
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/i810/i810.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/i830
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/i830/i830.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/i915
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/i915/i915.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/mga
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/mga/mga.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/r128
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/r128/r128.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/radeon
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/radeon/radeon.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/savage
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/savage/savage.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/sis
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/sis/sis.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/tdfx
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/tdfx/tdfx.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/ttm
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/ttm/ttm.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/via
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/via/via.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-a4tech.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-apple.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-belkin.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-cherry.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-chicony.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-cypress.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-drff.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-ezkey.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-gaff.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-gyration.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-kensington.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-kye.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-logitech.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-microsoft.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-monterey.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-ntrig.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-petalynx.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-pl.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-samsung.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-sjoy.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-sony.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-sunplus.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-tmff.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-topseed.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-twinhan.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-wacom.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-zpff.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/usbhid
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/usbhid/usbhid.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/abituguru.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/abituguru3.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/ad7414.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/ad7418.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/adm1021.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/adm1025.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/adm1026.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/adm1029.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/adm1031.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/adm9240.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/ads7828.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/adt7462.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/adt7470.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/adt7473.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/adt7475.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/applesmc.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/asb100.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/asus_atk0110.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/atxp1.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/coretemp.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/dme1737.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/ds1621.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/f71805f.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/f71882fg.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/f75375s.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/fschmd.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/g760a.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/gl518sm.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/gl520sm.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/hdaps.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/hp_accel.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/hwmon-vid.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/hwmon.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/i5k_amb.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/ibmaem.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/ibmpex.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/it87.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/k8temp.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/lis3lv02d.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/lm63.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/lm75.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/lm77.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/lm78.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/lm80.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/lm83.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/lm85.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/lm87.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/lm90.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/lm92.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/lm93.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/lm95241.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/ltc4215.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/ltc4245.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/max1619.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/max6650.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/pc87360.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/pc87427.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/pcf8591.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/sis5595.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/smsc47b397.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/smsc47m1.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/smsc47m192.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/thmc50.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/tmp401.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/tmp421.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/via686a.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/vt1211.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/vt8231.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/w83627ehf.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/w83627hf.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/w83781d.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/w83791d.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/w83792d.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/w83793.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/w83l785ts.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/w83l786ng.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/wm831x-hwmon.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/wm8350-hwmon.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/algos
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/algos/i2c-algo-bit.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/algos/i2c-algo-pca.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-ali1535.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-ali1563.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-ali15x3.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-amd756-s4882.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-amd756.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-amd8111.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-i801.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-isch.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-nforce2-s4985.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-nforce2.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-ocores.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-parport-light.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-parport.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-pca-platform.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-piix4.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-scmi.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-simtec.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-sis5595.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-sis630.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-sis96x.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-stub.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-tiny-usb.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-via.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-viapro.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-voodoo3.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/scx200_acb.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/chips
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/chips/ds1682.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/chips/tsl2550.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/i2c-core.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/i2c-dev.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ieee802154
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ieee802154/fakehard.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/ff-memless.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/input-polldev.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/keyboard
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/keyboard/adp5588-keys.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/keyboard/lkkbd.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/keyboard/lm8323.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/keyboard/max7359_keypad.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/keyboard/newtonkbd.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/keyboard/opencores-kbd.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/keyboard/stowaway.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/keyboard/sunkbd.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/keyboard/xtkbd.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/misc
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/misc/apanel.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/misc/ati_remote.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/misc/ati_remote2.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/misc/cm109.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/misc/keyspan_remote.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/misc/pcf50633-input.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/misc/pcspkr.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/misc/powermate.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/misc/winbond-cir.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/misc/wm831x-on.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/misc/yealink.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/capi
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/capi/capi.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/capi/capidrv.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/capi/kernelcapi.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/divert
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/divert/dss1_divert.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/gigaset
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/gigaset/bas_gigaset.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/gigaset/gigaset.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/gigaset/ser_gigaset.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/gigaset/usb_gigaset.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hardware
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hardware/avm
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hardware/avm/avm_cs.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hardware/avm/b1.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hardware/avm/b1dma.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hardware/avm/b1pci.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hardware/avm/c4.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hardware/avm/t1pci.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hardware/eicon
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hardware/eicon/diva_idi.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hardware/eicon/diva_mnt.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hardware/eicon/divacapi.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hardware/eicon/divadidd.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hardware/eicon/divas.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hisax
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hisax/avma1_cs.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hisax/elsa_cs.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hisax/hfc4s8s_l1.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hisax/hfc_usb.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hisax/hisax.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hisax/hisax_fcpcipnp.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hisax/hisax_isac.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hisax/hisax_st5481.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hisax/sedlbauer_cs.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hisax/teles_cs.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hysdn
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hysdn/hysdn.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/i4l
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/i4l/isdn.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/i4l/isdn_bsdcomp.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/i4l/isdnhdlc.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/leds
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/leds/led-class.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/leds/leds-alix2.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/leds/leds-bd2802.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/leds/leds-clevo-mail.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/leds/leds-lp3944.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/leds/leds-net48xx.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/leds/leds-pca9532.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/leds/leds-pca955x.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/leds/leds-wm831x-status.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/leds/leds-wm8350.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/leds/leds-wrap.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/leds/ledtrig-backlight.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/leds/ledtrig-default-on.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/leds/ledtrig-heartbeat.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/leds/ledtrig-netdev.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/leds/ledtrig-timer.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md/dm-crypt.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md/dm-delay.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md/dm-log-userspace.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md/dm-log.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md/dm-mirror.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md/dm-mod.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md/dm-multipath.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md/dm-queue-length.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md/dm-region-hash.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md/dm-round-robin.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md/dm-service-time.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md/dm-snapshot.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md/dm-zero.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md/linear.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md/md-mod.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md/multipath.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md/raid0.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md/raid1.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md/raid10.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md/raid456.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md/raid6_pq.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/media
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/media/common
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/media/common/tuners
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/media/common/tuners/mc44s803.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/media/common/tuners/mt20xx.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/media/common/tuners/tda8290.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/media/common/tuners/tda9887.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/media/common/tuners/tea5761.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/media/common/tuners/tea5767.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/media/common/tuners/tuner-simple.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/media/common/tuners/tuner-types.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/media/common/tuners/tuner-xc2028.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/media/common/tuners/xc5000.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/media/dvb
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/media/dvb/dvb-core
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/media/dvb/dvb-core/dvb-core.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/media/video
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/media/video/v4l1-compat.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/media/video/v4l2-common.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/media/video/v4l2-int-device.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/media/video/videodev.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/memstick
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/memstick/core
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/memstick/core/memstick.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/memstick/core/mspro_block.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/memstick/host
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/memstick/host/jmb38x_ms.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/memstick/host/tifm_ms.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/message
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/message/fusion
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/message/fusion/mptbase.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/message/fusion/mptctl.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/message/fusion/mptfc.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/message/fusion/mptsas.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/message/fusion/mptscsih.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/message/fusion/mptspi.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mfd
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mfd/ab3100-core.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mfd/ab3100-otp.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mfd/htc-pasic3.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mfd/mfd-core.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mfd/pcf50633-adc.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mfd/pcf50633-core.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mfd/pcf50633-gpio.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mfd/sm501.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mfd/wm831x.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mfd/wm8350-i2c.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mfd/wm8350.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mfd/wm8400-core.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/misc
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/misc/c2port
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/misc/c2port/c2port-duramar2150.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/misc/c2port/core.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/misc/cb710
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/misc/cb710/cb710.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/misc/eeprom
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/misc/eeprom/at24.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/misc/eeprom/eeprom.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/misc/eeprom/eeprom_93cx6.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/misc/eeprom/max6875.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/misc/enclosure.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/misc/hpilo.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/misc/ics932s401.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/misc/isl29003.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/misc/tifm_7xx1.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/misc/tifm_core.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mmc
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mmc/card
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mmc/card/mmc_block.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mmc/card/mmc_test.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mmc/card/sdio_uart.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mmc/core
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mmc/core/mmc_core.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mmc/host
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mmc/host/cb710-mmc.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mmc/host/ricoh_mmc.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mmc/host/sdhci-pci.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mmc/host/sdhci-pltfm.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mmc/host/sdhci.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mmc/host/sdricoh_cs.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mmc/host/tifm_sd.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mmc/host/via-sdmmc.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mmc/host/wbsd.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/ar7part.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/chips
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/chips/chipreg.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/lpddr
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/lpddr/lpddr_cmds.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/lpddr/qinfo_probe.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/maps
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/maps/physmap.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/mtd.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/mtd_blkdevs.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/mtdblock.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/mtdchar.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/mtdconcat.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/tests
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/tests/mtd_oobtest.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/tests/mtd_pagetest.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/tests/mtd_readtest.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/tests/mtd_speedtest.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/tests/mtd_stresstest.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/tests/mtd_subpagetest.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/tests/mtd_torturetest.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/ubi
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/ubi/ubi.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/3c59x.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/8139cp.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/8139too.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/8390.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/acenic.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/amd8111e.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/atl1c
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/atl1c/atl1c.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/atl1e
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/atl1e/atl1e.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/atlx
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/atlx/atl1.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/atlx/atl2.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/atp.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/b44.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/benet
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/benet/be2net.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/bnx2.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/bnx2x.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/bonding
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/bonding/bonding.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/bsd_comp.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/cassini.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/chelsio
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/chelsio/cxgb.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/cnic.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/cxgb3
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/cxgb3/cxgb3.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/de600.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/de620.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/dl2k.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/dnet.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/dummy.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/e100.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/e1000
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/e1000/e1000.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/e1000e
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/e1000e/e1000e.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/enic
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/enic/enic.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/epic100.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/eql.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/ethoc.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/fealnx.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/forcedeth.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/hamachi.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/hp100.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/ifb.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/igb
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/igb/igb.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/igbvf
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/igbvf/igbvf.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/imq.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/ipg.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/irda
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/irda/ali-ircc.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/irda/donauboe.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/irda/irda-usb.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/irda/irtty-sir.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/irda/kingsun-sir.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/irda/ks959-sir.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/irda/ksdazzle-sir.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/irda/mcs7780.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/irda/nsc-ircc.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/irda/sir-dev.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/irda/smsc-ircc2.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/irda/stir4200.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/irda/via-ircc.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/irda/vlsi_ir.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/irda/w83977af_ir.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/ixgb
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/ixgb/ixgb.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/ixgbe
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/ixgbe/ixgbe.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/jme.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/ks8842.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/ks8851_mll.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/macvlan.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/mdio.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/mii.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/mlx4
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/mlx4/mlx4_core.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/mlx4/mlx4_en.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/myri10ge
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/myri10ge/myri10ge.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/natsemi.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/ne2k-pci.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/netxen
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/netxen/netxen_nic.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/niu.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/ns83820.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/pcmcia
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/pcmcia/3c574_cs.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/pcmcia/3c589_cs.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/pcmcia/axnet_cs.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/pcmcia/fmvj18x_cs.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/pcmcia/nmclan_cs.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/pcmcia/pcnet_cs.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/pcmcia/smc91c92_cs.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/pcmcia/xirc2ps_cs.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/pcnet32.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/phy
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/phy/broadcom.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/phy/cicada.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/phy/davicom.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/phy/et1011c.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/phy/icplus.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/phy/lxt.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/phy/marvell.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/phy/mdio-bitbang.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/phy/national.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/phy/qsemi.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/phy/realtek.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/phy/smsc.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/phy/ste10Xp.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/phy/vitesse.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/ppp_async.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/ppp_deflate.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/ppp_generic.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/ppp_mppe.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/ppp_synctty.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/pppoe.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/pppol2tp.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/pppox.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/qla3xxx.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/qlge
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/qlge/qlge.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/r6040.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/r8169.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/s2io.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/sb1000.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/sc92031.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/sis190.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/sis900.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/skge.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/sky2.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/slhc.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/slip.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/smsc9420.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/starfire.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/sundance.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/sungem.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/sungem_phy.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/sunhme.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/tehuti.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/tg3.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/tlan.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/tulip
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/tulip/de2104x.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/tulip/de4x5.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/tulip/dmfe.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/tulip/tulip.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/tulip/uli526x.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/tulip/winbond-840.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/tulip/xircom_cb.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/tun.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/typhoon.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/usb
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/usb/asix.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/usb/catc.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/usb/cdc-phonet.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/usb/cdc_eem.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/usb/cdc_ether.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/usb/cdc_subset.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/usb/dm9601.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/usb/gl620a.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/usb/hso.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/usb/int51x1.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/usb/kaweth.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/usb/mcs7830.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/usb/net1080.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/usb/pegasus.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/usb/plusb.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/usb/rndis_host.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/usb/rtl8150.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/usb/smsc95xx.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/usb/usbnet.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/usb/zaurus.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/veth.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/via-rhine.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/via-velocity.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/vxge
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/vxge/vxge.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wimax
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wimax/i2400m
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wimax/i2400m/i2400m-sdio.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wimax/i2400m/i2400m-usb.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wimax/i2400m/i2400m.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/adm8211.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/airo.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/airo_cs.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/at76c50x-usb.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/ath
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/ath/ar9170
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/ath/ar9170/ar9170usb.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/ath/ath.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/ath/ath5k
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/ath/ath5k/ath5k.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/ath/ath9k
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/ath/ath9k/ath9k.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/atmel.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/atmel_cs.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/atmel_pci.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/b43
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/b43/b43.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/b43legacy
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/b43legacy/b43legacy.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/hostap
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/hostap/hostap.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/hostap/hostap_cs.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/hostap/hostap_pci.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/hostap/hostap_plx.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/ipw2x00
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/ipw2x00/ipw2100.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/ipw2x00/ipw2200.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/ipw2x00/libipw.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/iwlwifi
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/iwlwifi/iwl3945.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/iwlwifi/iwlagn.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/iwlwifi/iwlcore.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/iwmc3200wifi
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/iwmc3200wifi/iwmc3200wifi.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/libertas
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/libertas/libertas.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/libertas/libertas_cs.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/libertas/libertas_sdio.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/libertas/usb8xxx.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/libertas_tf
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/libertas_tf/libertas_tf.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/libertas_tf/libertas_tf_usb.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/mwl8k.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/orinoco
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/orinoco/orinoco.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/orinoco/orinoco_cs.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/orinoco/orinoco_nortel.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/orinoco/orinoco_pci.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/orinoco/orinoco_plx.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/orinoco/orinoco_tmd.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/orinoco/spectrum_cs.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/p54
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/p54/p54common.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/p54/p54pci.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/p54/p54usb.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/prism54
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/prism54/prism54.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/ray_cs.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/rndis_wlan.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/rt2x00
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2400pci.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2500pci.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2500usb.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2800usb.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2x00lib.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2x00pci.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2x00usb.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt61pci.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt73usb.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/rtl818x
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/rtl818x/rtl8180.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/rtl818x/rtl8187.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/wl12xx
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/wl12xx/wl1251.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/wl12xx/wl1251_sdio.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/wl3501_cs.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/zd1201.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/zd1211rw
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/zd1211rw/zd1211rw.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/yellowfin.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/parport
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/parport/parport.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/parport/parport_ax88796.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/parport/parport_cs.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/parport/parport_pc.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/pci
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/pci/pci-stub.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/pcmcia
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/pcmcia/i82092.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/pcmcia/pcmcia.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/pcmcia/pcmcia_core.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/pcmcia/pd6729.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/pcmcia/rsrc_nonstatic.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/pcmcia/yenta_socket.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/platform
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/platform/x86
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/platform/x86/acer-wmi.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/platform/x86/asus-laptop.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/platform/x86/asus_acpi.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/platform/x86/compal-laptop.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/platform/x86/dell-wmi.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/platform/x86/fujitsu-laptop.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/platform/x86/hp-wmi.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/platform/x86/intel_menlow.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/platform/x86/msi-laptop.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/platform/x86/panasonic-laptop.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/platform/x86/sony-laptop.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/platform/x86/tc1100-wmi.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/platform/x86/thinkpad_acpi.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/platform/x86/topstar-laptop.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/platform/x86/toshiba_acpi.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/platform/x86/wmi.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/power
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/power/bq27x00_battery.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/power/ds2782_battery.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/power/max17040_battery.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/power/pcf50633-charger.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/power/wm831x_power.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/power/wm8350_power.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/pps
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/pps/pps_core.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-ab3100.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-bq4802.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-cmos.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-core.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-ds1286.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-ds1307.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-ds1374.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-ds1511.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-ds1553.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-ds1672.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-ds1742.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-fm3130.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-isl1208.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-lib.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-m41t80.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-m48t35.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-m48t59.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-m48t86.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-max6900.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-pcf50633.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-pcf8563.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-pcf8583.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-rs5c372.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-rx8025.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-rx8581.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-s35390a.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-stk17ta8.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-test.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-v3020.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-wm831x.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-wm8350.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-x1205.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/3w-9xxx.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/3w-xxxx.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/BusLogic.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/a100u2w.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/aacraid
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/aacraid/aacraid.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/advansys.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/aic7xxx
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/aic7xxx/aic79xx.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/aic7xxx/aic7xxx.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/aic94xx
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/aic94xx/aic94xx.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/arcmsr
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/arcmsr/arcmsr.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/atp870u.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/be2iscsi
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/be2iscsi/be2iscsi.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/bfa
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/bfa/bfa.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/bnx2i
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/bnx2i/bnx2i.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/ch.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/cxgb3i
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/cxgb3i/cxgb3i.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/dc395x.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/device_handler
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/device_handler/scsi_dh.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/device_handler/scsi_dh_alua.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/device_handler/scsi_dh_emc.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/device_handler/scsi_dh_hp_sw.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/device_handler/scsi_dh_rdac.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/dmx3191d.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/dpt_i2o.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/eata.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/fcoe
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/fcoe/fcoe.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/fcoe/libfcoe.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/fdomain.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/fnic
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/fnic/fnic.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/gdth.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/hptiop.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/imm.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/initio.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/ipr.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/ips.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/iscsi_tcp.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/libfc
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/libfc/libfc.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/libiscsi.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/libiscsi_tcp.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/libsas
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/libsas/libsas.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/lpfc
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/lpfc/lpfc.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/megaraid
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/megaraid.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/megaraid/megaraid_mbox.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/megaraid/megaraid_mm.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/megaraid/megaraid_sas.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/mvsas
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/mvsas/mvsas.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/nsp32.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/osd
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/osd/libosd.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/osd/osd.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/pcmcia
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/pcmcia/aha152x_cs.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/pcmcia/fdomain_cs.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/pcmcia/nsp_cs.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/pcmcia/qlogic_cs.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/pcmcia/sym53c500_cs.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/pmcraid.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/ppa.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/qla1280.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/qla2xxx
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/qla2xxx/qla2xxx.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/qla4xxx
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/qla4xxx/qla4xxx.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/qlogicfas408.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/scsi_mod.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/scsi_transport_fc.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/scsi_transport_iscsi.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/scsi_transport_sas.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/scsi_transport_spi.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/scsi_transport_srp.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/scsi_wait_scan.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/sd_mod.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/ses.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/sg.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/sr_mod.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/stex.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/sym53c8xx_2
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/sym53c8xx_2/sym53c8xx.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/tmscsim.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/serial
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/serial/jsm
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/serial/jsm/jsm.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/serial/serial_core.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ssb
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ssb/ssb.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/staging
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/staging/et131x
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/staging/et131x/et131x.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/staging/slicoss
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/staging/slicoss/slicoss.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uio
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uio/uio.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uio/uio_aec.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uio/uio_cif.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uio/uio_pci_generic.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uio/uio_pdrv.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uio/uio_pdrv_genirq.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uio/uio_sercos3.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uio/uio_smx.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/atm
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/atm/cxacru.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/atm/speedtch.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/atm/ueagle-atm.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/atm/usbatm.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/atm/xusbatm.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/class
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/class/cdc-acm.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/class/cdc-wdm.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/class/usblp.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/class/usbtmc.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/core
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/core/usbcore.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/host
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/host/ehci-hcd.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/host/hwa-hc.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/host/isp116x-hcd.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/host/isp1362-hcd.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/host/ohci-hcd.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/host/oxu210hp-hcd.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/host/r8a66597-hcd.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/host/sl811-hcd.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/host/u132-hcd.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/host/uhci-hcd.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/host/whci
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/host/whci/whci-hcd.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/host/xhci.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/misc
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/misc/berry_charge.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/misc/cypress_cy7c63.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/misc/cytherm.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/misc/emi26.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/misc/emi62.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/misc/ftdi-elan.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/misc/iowarrior.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/misc/isight_firmware.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/misc/sisusbvga
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/misc/sisusbvga/sisusbvga.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/misc/usblcd.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/misc/usbled.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/misc/usbsevseg.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/misc/uss720.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/misc/vstusb.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/otg
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/otg/nop-usb-xceiv.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/aircable.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/ark3116.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/belkin_sa.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/ch341.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/cp210x.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/cypress_m8.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/digi_acceleport.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/empeg.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/ftdi_sio.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/garmin_gps.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/hp4x.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/io_edgeport.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/ipw.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/iuu_phoenix.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/keyspan_pda.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/mct_u232.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/mos7720.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/mos7840.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/moto_modem.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/opticon.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/option.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/oti6858.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/pl2303.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/safe_serial.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/siemens_mpi.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/sierra.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/spcp8x5.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/symbolserial.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/ti_usb_3410_5052.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/usbserial.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/whiteheat.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/storage
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/storage/ums-alauda.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/storage/ums-cypress.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/storage/ums-freecom.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/storage/ums-isd200.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/storage/ums-jumpshot.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/storage/ums-karma.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/storage/ums-onetouch.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/storage/ums-sddr09.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/storage/ums-sddr55.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/storage/ums-usbat.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/storage/usb-storage.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/wusbcore
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/wusbcore/wusb-cbaf.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/wusbcore/wusb-wa.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/wusbcore/wusbcore.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uwb
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uwb/hwa-rc.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uwb/i1480
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uwb/i1480/dfu
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uwb/i1480/dfu/i1480-dfu-usb.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uwb/i1480/i1480-est.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uwb/i1480/i1480u-wlp
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uwb/i1480/i1480u-wlp/i1480u-wlp.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uwb/umc.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uwb/uwb.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uwb/whc-rc.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uwb/whci.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uwb/wlp
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uwb/wlp/wlp.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/arkfb.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/aty
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/aty/aty128fb.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/aty/atyfb.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/aty/radeonfb.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/backlight
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/backlight/cr_bllcd.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/backlight/generic_bl.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/backlight/kb3886_bl.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/backlight/lcd.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/backlight/mbp_nvidia_bl.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/backlight/platform_lcd.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/backlight/progear_bl.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/backlight/wm831x_bl.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/broadsheetfb.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/cirrusfb.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/cyber2000fb.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/display
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/display/display.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/fb_ddc.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/fb_sys_fops.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/geode
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/geode/gx1fb.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/geode/gxfb.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/geode/lxfb.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/i810
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/i810/i810fb.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/kyro
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/kyro/kyrofb.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/macmodes.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/matrox
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/matrox/g450_pll.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/matrox/i2c-matroxfb.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/matrox/matroxfb_DAC1064.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/matrox/matroxfb_Ti3026.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/matrox/matroxfb_accel.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/matrox/matroxfb_base.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/matrox/matroxfb_crtc2.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/matrox/matroxfb_g450.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/matrox/matroxfb_maven.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/matrox/matroxfb_misc.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/mb862xx
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/mb862xx/mb862xxfb.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/metronomefb.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/neofb.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/nvidia
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/nvidia/nvidiafb.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/output.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/pm2fb.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/pm3fb.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/riva
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/riva/rivafb.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/s3fb.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/savage
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/savage/savagefb.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/sis
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/sis/sisfb.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/sm501fb.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/sstfb.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/svgalib.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/syscopyarea.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/sysfillrect.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/sysimgblt.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/tdfxfb.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/tmiofb.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/tridentfb.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/uvesafb.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/vermilion
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/vermilion/crvml.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/vermilion/vmlfb.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/vgastate.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/via
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/via/viafb.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/vt8623fb.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/w1
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/w1/masters
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/w1/masters/ds2482.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/w1/masters/ds2490.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/w1/masters/matrox_w1.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/w1/slaves
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/w1/slaves/w1_bq27000.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/w1/slaves/w1_ds2431.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/w1/slaves/w1_ds2433.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/w1/slaves/w1_ds2760.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/w1/slaves/w1_smem.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/w1/slaves/w1_therm.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/w1/wire.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/acquirewdt.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/advantechwdt.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/alim1535_wdt.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/alim7101_wdt.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/cpu5wdt.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/eurotechwdt.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/hpwdt.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/i6300esb.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/iTCO_wdt.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/ib700wdt.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/ibmasr.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/it8712f_wdt.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/it87_wdt.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/machzwd.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/pc87413_wdt.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/pcwd_pci.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/pcwd_usb.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/sbc60xxwdt.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/sbc7240_wdt.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/sbc8360.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/sbc_epx_c3.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/sbc_fitpc2_wdt.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/sc1200wdt.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/sc520_wdt.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/sch311x_wdt.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/scx200_wdt.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/smsc37b787_wdt.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/softdog.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/w83627hf_wdt.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/w83697hf_wdt.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/w83697ug_wdt.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/w83877f_wdt.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/w83977f_wdt.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/wafer5823wdt.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/wdt_pci.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/wm831x_wdt.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/wm8350_wdt.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/xen
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/xen/blktap2
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/xen/blktap2/blktap.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/xen/scsiback
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/xen/scsiback/xen-scsibk.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/xen/scsifront
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/xen/scsifront/xenscsi.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/xen/usbback
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/xen/usbback/usbbk.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/xen/usbfront
+#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/xen/usbfront/xen-hcd.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/fs
+#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/autofs
+#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/autofs/autofs.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/autofs4
+#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/autofs4/autofs4.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/cifs
+#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/cifs/cifs.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/ecryptfs
+#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/ecryptfs/ecryptfs.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/exportfs
+#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/exportfs/exportfs.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/ext2
+#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/ext2/ext2.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/ext3
+#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/ext3/ext3.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/ext4
+#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/ext4/ext4.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/fat
+#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/fat/fat.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/fat/vfat.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/fuse
+#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/fuse/cuse.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/fuse/fuse.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/isofs
+#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/isofs/isofs.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/jbd
+#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/jbd/jbd.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/jbd2
+#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/jbd2/jbd2.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/jffs2
+#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/jffs2/jffs2.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/jfs
+#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/jfs/jfs.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/lockd
+#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/lockd/lockd.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/mbcache.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/nfs
+#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/nfs/nfs.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/nfs_common
+#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/nfs_common/nfs_acl.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/nfsd
+#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/nfsd/nfsd.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/quota
+#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/quota/quota_tree.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/quota/quota_v1.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/quota/quota_v2.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/reiser4
+#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/reiser4/reiser4.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/reiserfs
+#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/reiserfs/reiserfs.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/smbfs
+#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/smbfs/smbfs.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/udf
+#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/udf/udf.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/ufs
+#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/ufs/xfs.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/xfs
+#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/xfs/xfs.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/lib
+#lib/modules/2.6.32.60-ipfire-xen/kernel/lib/crc-ccitt.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/lib/crc-itu-t.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/lib/crc-t10dif.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/lib/crc16.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/lib/crc7.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/lib/libcrc32c.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/lib/lzo
+#lib/modules/2.6.32.60-ipfire-xen/kernel/lib/lzo/lzo_compress.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/lib/lzo/lzo_decompress.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/lib/ts_bm.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/lib/ts_fsm.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/lib/ts_kmp.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/802
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/802/garp.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/802/p8022.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/802/psnap.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/802/stp.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/8021q
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/8021q/8021q.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/atm
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/atm/atm.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/atm/br2684.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/atm/clip.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/atm/pppoatm.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bluetooth
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bluetooth/bluetooth.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bluetooth/bnep
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bluetooth/bnep/bnep.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bluetooth/cmtp
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bluetooth/cmtp/cmtp.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bluetooth/hidp
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bluetooth/hidp/hidp.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bluetooth/l2cap.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bluetooth/rfcomm
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bluetooth/rfcomm/rfcomm.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bluetooth/sco.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/bridge.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebt_802_3.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebt_among.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebt_arp.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebt_arpreply.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebt_dnat.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebt_ip.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebt_ip6.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebt_limit.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebt_log.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebt_mark.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebt_mark_m.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebt_nflog.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebt_pkttype.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebt_redirect.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebt_snat.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebt_stp.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebt_ulog.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebt_vlan.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebtable_broute.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebtable_filter.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebtable_nat.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebtables.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ieee802154
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ieee802154/af_802154.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ieee802154/nl802154.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ieee802154/wpan-class.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/ah4.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/esp4.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/inet_diag.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/ip_gre.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/ipcomp.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/ipip.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/arp_tables.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/arpt_mangle.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/arptable_filter.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/ip_queue.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/ip_tables.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/ipt_CLUSTERIP.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/ipt_ECN.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/ipt_LOG.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/ipt_MASQUERADE.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/ipt_NETMAP.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/ipt_REDIRECT.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/ipt_REJECT.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/ipt_ULOG.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/ipt_addrtype.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/ipt_ah.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/ipt_ecn.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/ipt_ipp2p.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/iptable_filter.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/iptable_mangle.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/iptable_nat.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/iptable_raw.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/nf_conntrack_ipv4.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/nf_defrag_ipv4.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_amanda.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_ftp.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_h323.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_irc.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_pptp.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_proto_dccp.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_proto_gre.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_proto_sctp.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_proto_udplite.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_sip.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_snmp_basic.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_tftp.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/tcp_bic.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/tcp_cubic.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/tcp_diag.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/tcp_highspeed.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/tcp_htcp.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/tcp_hybla.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/tcp_illinois.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/tcp_lp.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/tcp_scalable.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/tcp_vegas.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/tcp_veno.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/tcp_westwood.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/tcp_yeah.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/tunnel4.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/xfrm4_tunnel.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/ah6.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/esp6.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/ip6_tunnel.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/ipcomp6.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/ipv6.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/mip6.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/netfilter
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/netfilter/ip6_queue.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/netfilter/ip6_tables.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_LOG.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_REJECT.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_ah.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_eui64.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_frag.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_hbh.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_ipv6header.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_mh.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_rt.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/netfilter/ip6table_filter.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/netfilter/ip6table_mangle.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/netfilter/ip6table_raw.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/netfilter/nf_conntrack_ipv6.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/sit.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/tunnel6.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/xfrm6_mode_beet.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/xfrm6_mode_ro.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/xfrm6_mode_transport.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/xfrm6_mode_tunnel.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/xfrm6_tunnel.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/irda
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/irda/ircomm
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/irda/ircomm/ircomm-tty.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/irda/ircomm/ircomm.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/irda/irda.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/irda/irlan
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/irda/irlan/irlan.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/irda/irnet
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/irda/irnet/irnet.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/key
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/key/af_key.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/llc
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/llc/llc.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/mac80211
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/mac80211/mac80211.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/ipvs
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/ipvs/ip_vs.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/nf_conntrack.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/nf_conntrack_amanda.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/nf_conntrack_ftp.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/nf_conntrack_h323.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/nf_conntrack_irc.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/nf_conntrack_netbios_ns.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/nf_conntrack_netlink.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/nf_conntrack_pptp.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/nf_conntrack_proto_dccp.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/nf_conntrack_proto_gre.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/nf_conntrack_proto_sctp.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/nf_conntrack_proto_udplite.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/nf_conntrack_sane.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/nf_conntrack_sip.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/nf_conntrack_tftp.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/nf_tproxy_core.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/nfnetlink.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/nfnetlink_log.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/nfnetlink_queue.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/x_tables.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_CLASSIFY.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_CONNMARK.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_DSCP.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_HL.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_IMQ.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_LED.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_MARK.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_NFLOG.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_NFQUEUE.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_NOTRACK.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_RATEEST.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_TCPMSS.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_TCPOPTSTRIP.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_TPROXY.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_TRACE.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_cluster.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_comment.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_connbytes.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_connlimit.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_connmark.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_conntrack.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_dccp.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_dscp.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_esp.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_hashlimit.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_helper.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_hl.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_iprange.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_layer7.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_length.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_limit.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_mac.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_mark.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_multiport.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_osf.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_owner.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_physdev.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_pkttype.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_policy.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_quota.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_rateest.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_realm.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_recent.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_sctp.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_socket.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_state.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_statistic.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_string.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_tcpmss.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_tcpudp.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_time.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_u32.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/phonet
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/phonet/phonet.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/phonet/pn_pep.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/rds
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/rds/rds.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/rds/rds_tcp.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/rfkill
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/rfkill/rfkill.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/rxrpc
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/rxrpc/af-rxrpc.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/rxrpc/rxkad.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/act_gact.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/act_ipt.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/act_mirred.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/act_nat.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/act_pedit.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/act_police.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/act_skbedit.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/cls_basic.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/cls_flow.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/cls_fw.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/cls_route.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/cls_rsvp.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/cls_rsvp6.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/cls_tcindex.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/cls_u32.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/em_cmp.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/em_meta.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/em_nbyte.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/em_text.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/em_u32.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/sch_atm.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/sch_cbq.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/sch_drr.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/sch_dsmark.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/sch_gred.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/sch_hfsc.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/sch_htb.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/sch_ingress.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/sch_multiq.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/sch_netem.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/sch_prio.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/sch_red.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/sch_sfq.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/sch_tbf.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/sch_teql.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sunrpc
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sunrpc/auth_gss
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sunrpc/auth_gss/auth_rpcgss.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sunrpc/auth_gss/rpcsec_gss_krb5.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sunrpc/sunrpc.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/wimax
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/wimax/wimax.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/wireless
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/wireless/cfg80211.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/wireless/lib80211.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/wireless/lib80211_crypt_ccmp.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/wireless/lib80211_crypt_tkip.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/wireless/lib80211_crypt_wep.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/xfrm
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/xfrm/xfrm_ipcomp.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/net/xfrm/xfrm_user.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/ac97_bus.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/core
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/core/oss
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/core/oss/snd-mixer-oss.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/core/oss/snd-pcm-oss.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/core/seq
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/core/seq/oss
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/core/seq/oss/snd-seq-oss.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/core/seq/snd-seq-device.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/core/seq/snd-seq-dummy.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/core/seq/snd-seq-midi-emul.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/core/seq/snd-seq-midi-event.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/core/seq/snd-seq-midi.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/core/seq/snd-seq-virmidi.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/core/seq/snd-seq.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/core/snd-hwdep.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/core/snd-page-alloc.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/core/snd-pcm.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/core/snd-rawmidi.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/core/snd-timer.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/core/snd.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/drivers
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/drivers/mpu401
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/drivers/mpu401/snd-mpu401-uart.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/drivers/mpu401/snd-mpu401.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/drivers/opl3
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/drivers/opl3/snd-opl3-lib.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/drivers/opl3/snd-opl3-synth.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/drivers/snd-dummy.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/drivers/snd-mtpav.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/drivers/snd-mts64.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/drivers/snd-portman2x4.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/drivers/snd-serial-u16550.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/drivers/snd-virmidi.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/drivers/vx
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/drivers/vx/snd-vx-lib.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/i2c
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/i2c/other
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/i2c/other/snd-ak4114.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/i2c/other/snd-ak4117.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/i2c/other/snd-ak4xxx-adda.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/i2c/other/snd-pt2258.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/i2c/snd-cs8427.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/i2c/snd-i2c.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/isa
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/isa/sb
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/isa/sb/snd-sb-common.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/isa/sb/snd-sb16-dsp.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/ac97
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/ac97/snd-ac97-codec.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/ali5451
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/ali5451/snd-ali5451.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/au88x0
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/au88x0/snd-au8810.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/au88x0/snd-au8820.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/au88x0/snd-au8830.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/ca0106
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/ca0106/snd-ca0106.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/cs46xx
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/cs46xx/snd-cs46xx.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/cs5535audio
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/cs5535audio/snd-cs5535audio.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/ctxfi
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/ctxfi/snd-ctxfi.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/echoaudio
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/echoaudio/snd-darla20.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/echoaudio/snd-darla24.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/echoaudio/snd-echo3g.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/echoaudio/snd-gina20.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/echoaudio/snd-gina24.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/echoaudio/snd-indigo.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/echoaudio/snd-indigodj.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/echoaudio/snd-indigodjx.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/echoaudio/snd-indigoio.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/echoaudio/snd-indigoiox.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/echoaudio/snd-layla20.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/echoaudio/snd-layla24.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/echoaudio/snd-mia.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/echoaudio/snd-mona.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/emu10k1
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/emu10k1/snd-emu10k1-synth.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/emu10k1/snd-emu10k1.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/emu10k1/snd-emu10k1x.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/hda
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-analog.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-atihdmi.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-ca0110.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-cirrus.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-cmedia.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-conexant.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-idt.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-intelhdmi.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-nvhdmi.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-realtek.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-si3054.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-via.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/hda/snd-hda-intel.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/ice1712
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/ice1712/snd-ice1712.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/ice1712/snd-ice1724.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/ice1712/snd-ice17xx-ak4xxx.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/korg1212
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/korg1212/snd-korg1212.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/lx6464es
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/lx6464es/snd-lx6464es.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/mixart
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/mixart/snd-mixart.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/nm256
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/nm256/snd-nm256.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/oxygen
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/oxygen/snd-hifier.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/oxygen/snd-oxygen-lib.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/oxygen/snd-oxygen.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/oxygen/snd-virtuoso.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/pcxhr
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/pcxhr/snd-pcxhr.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/riptide
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/riptide/snd-riptide.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/rme9652
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/rme9652/snd-hdsp.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/rme9652/snd-hdspm.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/rme9652/snd-rme9652.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-ad1889.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-als300.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-als4000.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-atiixp-modem.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-atiixp.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-bt87x.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-cmipci.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-cs4281.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-cs5530.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-ens1370.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-ens1371.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-es1938.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-es1968.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-fm801.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-intel8x0.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-intel8x0m.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-maestro3.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-rme32.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-rme96.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-sis7019.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-sonicvibes.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-via82xx-modem.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-via82xx.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/trident
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/trident/snd-trident.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/vx222
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/vx222/snd-vx222.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/ymfpci
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/ymfpci/snd-ymfpci.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pcmcia
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pcmcia/pdaudiocf
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pcmcia/pdaudiocf/snd-pdaudiocf.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pcmcia/vx
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pcmcia/vx/snd-vxpocket.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-ad73311.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-ak4535.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-ak4642.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-cs4270.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-l3.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-max9877.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-pcm3008.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-spdif.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-ssm2602.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-tlv320aic23.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-tlv320aic3x.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-uda134x.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-uda1380.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm-hubs.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8350.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8400.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8510.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8523.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8580.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8728.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8731.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8750.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8753.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8776.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8900.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8903.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8940.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8960.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8961.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8971.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8974.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8988.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8990.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8993.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm9081.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/snd-soc-core.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soundcore.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/synth
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/synth/emux
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/synth/emux/snd-emux-synth.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/synth/snd-util-mem.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/usb
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/usb/caiaq
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/usb/caiaq/snd-usb-caiaq.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/usb/snd-usb-audio.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/usb/snd-usb-lib.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/usb/usx2y
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/usb/usx2y/snd-usb-us122l.ko
+#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/usb/usx2y/snd-usb-usx2y.ko
+#lib/modules/2.6.32.60-ipfire-xen/modules.alias
+#lib/modules/2.6.32.60-ipfire-xen/modules.alias.bin
+#lib/modules/2.6.32.60-ipfire-xen/modules.ccwmap
+#lib/modules/2.6.32.60-ipfire-xen/modules.dep
+#lib/modules/2.6.32.60-ipfire-xen/modules.dep.bin
+#lib/modules/2.6.32.60-ipfire-xen/modules.ieee1394map
+#lib/modules/2.6.32.60-ipfire-xen/modules.inputmap
+#lib/modules/2.6.32.60-ipfire-xen/modules.isapnpmap
+#lib/modules/2.6.32.60-ipfire-xen/modules.ofmap
+#lib/modules/2.6.32.60-ipfire-xen/modules.order
+#lib/modules/2.6.32.60-ipfire-xen/modules.pcimap
+#lib/modules/2.6.32.60-ipfire-xen/modules.seriomap
+#lib/modules/2.6.32.60-ipfire-xen/modules.symbols
+#lib/modules/2.6.32.60-ipfire-xen/modules.symbols.bin
+#lib/modules/2.6.32.60-ipfire-xen/modules.usbmap
+#lib/modules/2.6.32.60-ipfire-xen/source
diff --git a/config/rootfiles/packages/pakfire3 b/config/rootfiles/packages/pakfire3
new file mode 100644 (file)
index 0000000..effabc8
--- /dev/null
@@ -0,0 +1,118 @@
+#etc/pakfire
+etc/pakfire/builder.conf
+etc/pakfire/client.conf
+etc/pakfire/daemon.conf
+etc/pakfire/distros
+etc/pakfire/distros/ipfire3.conf
+etc/pakfire/general.conf
+etc/pakfire/repos
+usr/bin/pakfire-builder
+usr/bin/pakfire-client
+usr/bin/pakfire-daemon
+usr/bin/pakfire-key
+usr/bin/pakfire-server
+usr/lib/libpakfire_preload.so
+usr/lib/pakfire
+usr/lib/pakfire/builder
+usr/lib/pakfire/chroot-shell
+usr/lib/pakfire/cleanup
+usr/lib/pakfire/compress-man-pages
+usr/lib/pakfire/extract-debuginfo
+usr/lib/pakfire/find-common
+usr/lib/pakfire/find-prerequires
+usr/lib/pakfire/find-provides
+usr/lib/pakfire/find-requires
+usr/lib/pakfire/functions-common
+usr/lib/pakfire/functions-constants
+usr/lib/pakfire/functions-directories
+usr/lib/pakfire/functions-files
+usr/lib/pakfire/functions-lists
+usr/lib/pakfire/functions-logging
+usr/lib/pakfire/macros
+usr/lib/pakfire/macros/arch.macro
+usr/lib/pakfire/macros/build.macro
+usr/lib/pakfire/macros/cflags.macro
+usr/lib/pakfire/macros/constants.macro
+usr/lib/pakfire/macros/package-default.macro
+usr/lib/pakfire/macros/quality-agent.macro
+usr/lib/pakfire/macros/systemd.macro
+usr/lib/pakfire/macros/templates.macro
+usr/lib/pakfire/pakfire-multicall.py
+usr/lib/pakfire/patch
+usr/lib/pakfire/perl.prov
+usr/lib/pakfire/perl.req
+usr/lib/pakfire/py-compile
+usr/lib/pakfire/quality-agent
+usr/lib/pakfire/remove-static-libs
+usr/lib/python2.7/site-packages/pakfire
+usr/lib/python2.7/site-packages/pakfire/__init__.py
+usr/lib/python2.7/site-packages/pakfire/__version__.py
+usr/lib/python2.7/site-packages/pakfire/_lzma.so
+usr/lib/python2.7/site-packages/pakfire/_pakfire.so
+usr/lib/python2.7/site-packages/pakfire/actions.py
+usr/lib/python2.7/site-packages/pakfire/api.py
+usr/lib/python2.7/site-packages/pakfire/base.py
+usr/lib/python2.7/site-packages/pakfire/builder.py
+usr/lib/python2.7/site-packages/pakfire/cgroup.py
+usr/lib/python2.7/site-packages/pakfire/chroot.py
+usr/lib/python2.7/site-packages/pakfire/cli.py
+usr/lib/python2.7/site-packages/pakfire/client
+usr/lib/python2.7/site-packages/pakfire/client/__init__.py
+usr/lib/python2.7/site-packages/pakfire/client/base.py
+usr/lib/python2.7/site-packages/pakfire/client/builder.py
+usr/lib/python2.7/site-packages/pakfire/client/test.py
+usr/lib/python2.7/site-packages/pakfire/client/transport.py
+usr/lib/python2.7/site-packages/pakfire/compress.py
+usr/lib/python2.7/site-packages/pakfire/config.py
+usr/lib/python2.7/site-packages/pakfire/constants.py
+usr/lib/python2.7/site-packages/pakfire/distro.py
+usr/lib/python2.7/site-packages/pakfire/downloader.py
+usr/lib/python2.7/site-packages/pakfire/errors.py
+usr/lib/python2.7/site-packages/pakfire/filelist.py
+usr/lib/python2.7/site-packages/pakfire/i18n.py
+usr/lib/python2.7/site-packages/pakfire/keyring.py
+usr/lib/python2.7/site-packages/pakfire/logger.py
+usr/lib/python2.7/site-packages/pakfire/lzma.py
+usr/lib/python2.7/site-packages/pakfire/packages
+usr/lib/python2.7/site-packages/pakfire/packages/__init__.py
+usr/lib/python2.7/site-packages/pakfire/packages/base.py
+usr/lib/python2.7/site-packages/pakfire/packages/file.py
+usr/lib/python2.7/site-packages/pakfire/packages/installed.py
+usr/lib/python2.7/site-packages/pakfire/packages/lexer.py
+usr/lib/python2.7/site-packages/pakfire/packages/make.py
+usr/lib/python2.7/site-packages/pakfire/packages/packager.py
+usr/lib/python2.7/site-packages/pakfire/packages/solv.py
+usr/lib/python2.7/site-packages/pakfire/repository
+usr/lib/python2.7/site-packages/pakfire/repository/__init__.py
+usr/lib/python2.7/site-packages/pakfire/repository/base.py
+usr/lib/python2.7/site-packages/pakfire/repository/cache.py
+usr/lib/python2.7/site-packages/pakfire/repository/database.py
+usr/lib/python2.7/site-packages/pakfire/repository/index.py
+usr/lib/python2.7/site-packages/pakfire/repository/local.py
+usr/lib/python2.7/site-packages/pakfire/repository/metadata.py
+usr/lib/python2.7/site-packages/pakfire/repository/remote.py
+usr/lib/python2.7/site-packages/pakfire/repository/system.py
+usr/lib/python2.7/site-packages/pakfire/satsolver.py
+usr/lib/python2.7/site-packages/pakfire/server.py
+usr/lib/python2.7/site-packages/pakfire/system.py
+usr/lib/python2.7/site-packages/pakfire/transaction.py
+usr/lib/python2.7/site-packages/pakfire/util.py
+usr/lib/quality-agent
+usr/lib/quality-agent/001-include-files
+usr/lib/quality-agent/001-remove-info-files
+usr/lib/quality-agent/001-unsafe-files
+usr/lib/quality-agent/002-bad-symlinks
+usr/lib/quality-agent/003-libs-location
+usr/lib/quality-agent/050-canary
+usr/lib/quality-agent/050-execstacks
+usr/lib/quality-agent/050-invalid-interpreters
+usr/lib/quality-agent/050-libs-needed
+usr/lib/quality-agent/050-libs-soname
+usr/lib/quality-agent/050-libs-x86_64
+usr/lib/quality-agent/050-nx
+usr/lib/quality-agent/050-relro
+usr/lib/quality-agent/050-rpaths
+usr/lib/quality-agent/090-python-hardlinks
+usr/lib/quality-agent/095-directory-layout
+usr/lib/quality-agent/qa-include
+var/ipfire/backup/addons/includes/pakfire3
diff --git a/config/rootfiles/packages/pakfire3-deps b/config/rootfiles/packages/pakfire3-deps
deleted file mode 100644 (file)
index 464f5ca..0000000
+++ /dev/null
@@ -1 +0,0 @@
-var/ipfire/pakfire3-deps
diff --git a/config/rootfiles/packages/pycurl b/config/rootfiles/packages/pycurl
new file mode 100644 (file)
index 0000000..ddbe585
--- /dev/null
@@ -0,0 +1,53 @@
+usr/lib/python2.7/site-packages/curl
+usr/lib/python2.7/site-packages/curl/__init__.py
+usr/lib/python2.7/site-packages/curl/__init__.pyc
+#usr/lib/python2.7/site-packages/pycurl-7.19.0-py2.7.egg-info
+usr/lib/python2.7/site-packages/pycurl.so
+#usr/share/doc/pycurl
+#usr/share/doc/pycurl/COPYING
+#usr/share/doc/pycurl/COPYING2
+#usr/share/doc/pycurl/ChangeLog
+#usr/share/doc/pycurl/INSTALL
+#usr/share/doc/pycurl/README
+#usr/share/doc/pycurl/TODO
+#usr/share/doc/pycurl/examples
+#usr/share/doc/pycurl/examples/basicfirst.py
+#usr/share/doc/pycurl/examples/file_upload.py
+#usr/share/doc/pycurl/examples/linksys.py
+#usr/share/doc/pycurl/examples/retriever-multi.py
+#usr/share/doc/pycurl/examples/retriever.py
+#usr/share/doc/pycurl/examples/sfquery.py
+#usr/share/doc/pycurl/examples/xmlrpc_curl.py
+#usr/share/doc/pycurl/html
+#usr/share/doc/pycurl/html/callbacks.html
+#usr/share/doc/pycurl/html/curlmultiobject.html
+#usr/share/doc/pycurl/html/curlobject.html
+#usr/share/doc/pycurl/html/curlshareobject.html
+#usr/share/doc/pycurl/html/pycurl.html
+#usr/share/doc/pycurl/tests
+#usr/share/doc/pycurl/tests/test.py
+#usr/share/doc/pycurl/tests/test_cb.py
+#usr/share/doc/pycurl/tests/test_debug.py
+#usr/share/doc/pycurl/tests/test_ftp.py
+#usr/share/doc/pycurl/tests/test_getinfo.py
+#usr/share/doc/pycurl/tests/test_gtk.py
+#usr/share/doc/pycurl/tests/test_internals.py
+#usr/share/doc/pycurl/tests/test_memleak.py
+#usr/share/doc/pycurl/tests/test_multi.py
+#usr/share/doc/pycurl/tests/test_multi2.py
+#usr/share/doc/pycurl/tests/test_multi3.py
+#usr/share/doc/pycurl/tests/test_multi4.py
+#usr/share/doc/pycurl/tests/test_multi5.py
+#usr/share/doc/pycurl/tests/test_multi6.py
+#usr/share/doc/pycurl/tests/test_multi_socket.py
+#usr/share/doc/pycurl/tests/test_multi_socket_select.py
+#usr/share/doc/pycurl/tests/test_multi_timer.py
+#usr/share/doc/pycurl/tests/test_multi_vs_thread.py
+#usr/share/doc/pycurl/tests/test_post.py
+#usr/share/doc/pycurl/tests/test_post2.py
+#usr/share/doc/pycurl/tests/test_post3.py
+#usr/share/doc/pycurl/tests/test_share.py
+#usr/share/doc/pycurl/tests/test_socketopen.py
+#usr/share/doc/pycurl/tests/test_stringio.py
+#usr/share/doc/pycurl/tests/test_xmlrpc.py
+#usr/share/doc/pycurl/tests/util.py
diff --git a/config/rootfiles/packages/pygpgme b/config/rootfiles/packages/pygpgme
new file mode 100644 (file)
index 0000000..83ffaf8
--- /dev/null
@@ -0,0 +1,7 @@
+usr/lib/python2.7/site-packages/gpgme
+usr/lib/python2.7/site-packages/gpgme/__init__.py
+usr/lib/python2.7/site-packages/gpgme/__init__.pyc
+usr/lib/python2.7/site-packages/gpgme/_gpgme.so
+usr/lib/python2.7/site-packages/gpgme/editutil.py
+usr/lib/python2.7/site-packages/gpgme/editutil.pyc
+#usr/lib/python2.7/site-packages/pygpgme-0.3-py2.7.egg-info
index 0c8bf8dc07177af10e70020b8389fbb67f729301..e5e3e3bdc6550b785a120932dbf67c5130d5f207 100644 (file)
@@ -1,4 +1,5 @@
 usr/bin/rssdler
+#usr/lib/python2.7/site-packages/drv_libxml2.pyc
 #usr/lib/python2.7/site-packages/rssdler-0.4.0-py2.7.egg-info
 usr/lib/python2.7/site-packages/rssdler.py
-usr/lib/python2.7/site-packages/rssdler.pyc
+#usr/lib/python2.7/site-packages/rssdler.pyc
diff --git a/config/rootfiles/packages/qemu-kqemu b/config/rootfiles/packages/qemu-kqemu
deleted file mode 100644 (file)
index 7a908f7..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-usr/bin/qemu-kqemu
-usr/share/qemu/bios-kqemu.bin
diff --git a/config/rootfiles/packages/splix b/config/rootfiles/packages/splix
deleted file mode 100644 (file)
index f9c7579..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-usr/lib/cups/filter/pstoqpdl
-usr/lib/cups/filter/rastertoqpdl
-usr/share/cups/model/dell
-usr/share/cups/model/dell/1100.ppd
-usr/share/cups/model/dell/1100fr.ppd
-usr/share/cups/model/dell/1110.ppd
-usr/share/cups/model/dell/1110fr.ppd
-usr/share/cups/model/samsung
-usr/share/cups/model/samsung/clp200.ppd
-usr/share/cups/model/samsung/clp200fr.ppd
-usr/share/cups/model/samsung/clp300.ppd
-usr/share/cups/model/samsung/clp300fr.ppd
-usr/share/cups/model/samsung/clp500.ppd
-usr/share/cups/model/samsung/clp500fr.ppd
-usr/share/cups/model/samsung/clp510.ppd
-usr/share/cups/model/samsung/clp510fr.ppd
-usr/share/cups/model/samsung/clp550.ppd
-usr/share/cups/model/samsung/clp550fr.ppd
-usr/share/cups/model/samsung/clp600.ppd
-usr/share/cups/model/samsung/clp600fr.ppd
-usr/share/cups/model/samsung/clp610.ppd
-usr/share/cups/model/samsung/clp610fr.ppd
-usr/share/cups/model/samsung/clx216x.ppd
-usr/share/cups/model/samsung/clx216xfr.ppd
-usr/share/cups/model/samsung/clx2170.ppd
-usr/share/cups/model/samsung/clx2170fr.ppd
-usr/share/cups/model/samsung/clx3160.ppd
-usr/share/cups/model/samsung/clx3160fr.ppd
-usr/share/cups/model/samsung/ml1510.ppd
-usr/share/cups/model/samsung/ml1510fr.ppd
-usr/share/cups/model/samsung/ml1520.ppd
-usr/share/cups/model/samsung/ml1520fr.ppd
-usr/share/cups/model/samsung/ml1610.ppd
-usr/share/cups/model/samsung/ml1610fr.ppd
-usr/share/cups/model/samsung/ml1630.ppd
-usr/share/cups/model/samsung/ml1630fr.ppd
-usr/share/cups/model/samsung/ml1710.ppd
-usr/share/cups/model/samsung/ml1710fr.ppd
-usr/share/cups/model/samsung/ml1740.ppd
-usr/share/cups/model/samsung/ml1740fr.ppd
-usr/share/cups/model/samsung/ml1750.ppd
-usr/share/cups/model/samsung/ml1750fr.ppd
-usr/share/cups/model/samsung/ml2010.ppd
-usr/share/cups/model/samsung/ml2010fr.ppd
-usr/share/cups/model/samsung/ml2150.ppd
-usr/share/cups/model/samsung/ml2150fr.ppd
-usr/share/cups/model/samsung/ml2250.ppd
-usr/share/cups/model/samsung/ml2250fr.ppd
-usr/share/cups/model/samsung/ml2251.ppd
-usr/share/cups/model/samsung/ml2251fr.ppd
-usr/share/cups/model/samsung/ml2510.ppd
-usr/share/cups/model/samsung/ml2510fr.ppd
-usr/share/cups/model/samsung/ml2550.ppd
-usr/share/cups/model/samsung/ml2550fr.ppd
-usr/share/cups/model/samsung/ml3050.ppd
-usr/share/cups/model/samsung/ml3050fr.ppd
-usr/share/cups/model/samsung/ml3560.ppd
-usr/share/cups/model/samsung/ml3560fr.ppd
-usr/share/cups/model/xerox
-usr/share/cups/model/xerox/ph3115.ppd
-usr/share/cups/model/xerox/ph3115fr.ppd
-usr/share/cups/model/xerox/ph3116.ppd
-usr/share/cups/model/xerox/ph3116fr.ppd
-usr/share/cups/model/xerox/ph3117.ppd
-usr/share/cups/model/xerox/ph3117fr.ppd
-usr/share/cups/model/xerox/ph3120.ppd
-usr/share/cups/model/xerox/ph3120fr.ppd
-usr/share/cups/model/xerox/ph3121.ppd
-usr/share/cups/model/xerox/ph3121fr.ppd
-usr/share/cups/model/xerox/ph3122.ppd
-usr/share/cups/model/xerox/ph3122fr.ppd
-usr/share/cups/model/xerox/ph3130.ppd
-usr/share/cups/model/xerox/ph3130fr.ppd
-usr/share/cups/model/xerox/ph3150.ppd
-usr/share/cups/model/xerox/ph3150fr.ppd
-usr/share/cups/model/xerox/ph3160.ppd
-usr/share/cups/model/xerox/ph3160fr.ppd
-usr/share/cups/model/xerox/ph3420.ppd
-usr/share/cups/model/xerox/ph3420fr.ppd
-usr/share/cups/model/xerox/ph3425.ppd
-usr/share/cups/model/xerox/ph3425fr.ppd
-usr/share/cups/model/xerox/ph5500.ppd
-usr/share/cups/model/xerox/ph5500fr.ppd
-usr/share/cups/model/xerox/ph6100.ppd
-usr/share/cups/model/xerox/ph6100fr.ppd
-usr/share/cups/model/xerox/ph6110.ppd
-usr/share/cups/model/xerox/ph6110fr.ppd
index 66b9bb263ced60d61c1fa1c728c6c036241233cd..a98c7b14fa700f3d356b872fe444e5c4a4e2854d 100644 (file)
@@ -1,22 +1,18 @@
 usr/bin/urlgrabber
-#usr/lib/python2.7/site-packages/urlgrabber
-#usr/lib/python2.7/site-packages/urlgrabber-3.1.0-py2.7.egg-info
-#usr/lib/python2.7/site-packages/urlgrabber/__init__.py
+usr/lib/python2.7/site-packages/urlgrabber
+#usr/lib/python2.7/site-packages/urlgrabber-3.9.1-py2.7.egg-info
+usr/lib/python2.7/site-packages/urlgrabber/__init__.py
 usr/lib/python2.7/site-packages/urlgrabber/__init__.pyc
-#usr/lib/python2.7/site-packages/urlgrabber/byterange.py
+usr/lib/python2.7/site-packages/urlgrabber/byterange.py
 usr/lib/python2.7/site-packages/urlgrabber/byterange.pyc
-#usr/lib/python2.7/site-packages/urlgrabber/grabber.py
+usr/lib/python2.7/site-packages/urlgrabber/grabber.py
 usr/lib/python2.7/site-packages/urlgrabber/grabber.pyc
-#usr/lib/python2.7/site-packages/urlgrabber/keepalive.py
-usr/lib/python2.7/site-packages/urlgrabber/keepalive.pyc
-#usr/lib/python2.7/site-packages/urlgrabber/mirror.py
+usr/lib/python2.7/site-packages/urlgrabber/mirror.py
 usr/lib/python2.7/site-packages/urlgrabber/mirror.pyc
-#usr/lib/python2.7/site-packages/urlgrabber/progress.py
+usr/lib/python2.7/site-packages/urlgrabber/progress.py
 usr/lib/python2.7/site-packages/urlgrabber/progress.pyc
-#usr/lib/python2.7/site-packages/urlgrabber/sslfactory.py
-usr/lib/python2.7/site-packages/urlgrabber/sslfactory.pyc
-#usr/share/doc/urlgrabber-3.1.0
-#usr/share/doc/urlgrabber-3.1.0/ChangeLog
-#usr/share/doc/urlgrabber-3.1.0/LICENSE
-#usr/share/doc/urlgrabber-3.1.0/README
-#usr/share/doc/urlgrabber-3.1.0/TODO
+#usr/share/doc/urlgrabber-3.9.1
+#usr/share/doc/urlgrabber-3.9.1/ChangeLog
+#usr/share/doc/urlgrabber-3.9.1/LICENSE
+#usr/share/doc/urlgrabber-3.9.1/README
+#usr/share/doc/urlgrabber-3.9.1/TODO
diff --git a/config/rootfiles/packages/videolan b/config/rootfiles/packages/videolan
deleted file mode 100644 (file)
index 2b980f9..0000000
+++ /dev/null
@@ -1,415 +0,0 @@
-usr/bin/vlc
-usr/bin/vlc-config
-#usr/include/vlc
-#usr/include/vlc/aout.h
-#usr/include/vlc/decoder.h
-#usr/include/vlc/input.h
-#usr/include/vlc/intf.h
-#usr/include/vlc/libvlc.h
-#usr/include/vlc/mediacontrol.h
-#usr/include/vlc/mediacontrol_structures.h
-#usr/include/vlc/sout.h
-#usr/include/vlc/vlc.h
-#usr/include/vlc/vout.h
-#usr/lib/libvlc.a
-#usr/lib/vlc
-#usr/lib/vlc/access
-usr/lib/vlc/access/libaccess_directory_plugin.so
-usr/lib/vlc/access/libaccess_fake_plugin.so
-usr/lib/vlc/access/libaccess_file_plugin.so
-usr/lib/vlc/access/libaccess_ftp_plugin.so
-usr/lib/vlc/access/libaccess_http_plugin.so
-usr/lib/vlc/access/libaccess_mms_plugin.so
-usr/lib/vlc/access/libaccess_smb_plugin.so
-usr/lib/vlc/access/libaccess_tcp_plugin.so
-usr/lib/vlc/access/libaccess_udp_plugin.so
-usr/lib/vlc/access/libcdda_plugin.so
-usr/lib/vlc/access/libdvb_plugin.so
-usr/lib/vlc/access/libv4l_plugin.so
-usr/lib/vlc/access/libvcd_plugin.so
-#usr/lib/vlc/access_filter
-usr/lib/vlc/access_filter/libaccess_filter_dump_plugin.so
-usr/lib/vlc/access_filter/libaccess_filter_record_plugin.so
-usr/lib/vlc/access_filter/libaccess_filter_timeshift_plugin.so
-#usr/lib/vlc/access_output
-usr/lib/vlc/access_output/libaccess_output_dummy_plugin.so
-usr/lib/vlc/access_output/libaccess_output_file_plugin.so
-usr/lib/vlc/access_output/libaccess_output_http_plugin.so
-usr/lib/vlc/access_output/libaccess_output_shout_plugin.so
-usr/lib/vlc/access_output/libaccess_output_udp_plugin.so
-#usr/lib/vlc/audio_filter
-usr/lib/vlc/audio_filter/liba52tospdif_plugin.so
-usr/lib/vlc/audio_filter/libaudio_format_plugin.so
-usr/lib/vlc/audio_filter/libbandlimited_resampler_plugin.so
-usr/lib/vlc/audio_filter/libdolby_surround_decoder_plugin.so
-usr/lib/vlc/audio_filter/libdtstospdif_plugin.so
-usr/lib/vlc/audio_filter/libequalizer_plugin.so
-usr/lib/vlc/audio_filter/libfixed32tofloat32_plugin.so
-usr/lib/vlc/audio_filter/libfixed32tos16_plugin.so
-usr/lib/vlc/audio_filter/libfloat32tos16_plugin.so
-usr/lib/vlc/audio_filter/libfloat32tos8_plugin.so
-usr/lib/vlc/audio_filter/libfloat32tou16_plugin.so
-usr/lib/vlc/audio_filter/libfloat32tou8_plugin.so
-usr/lib/vlc/audio_filter/libheadphone_channel_mixer_plugin.so
-usr/lib/vlc/audio_filter/liblinear_resampler_plugin.so
-usr/lib/vlc/audio_filter/libmpgatofixed32_plugin.so
-usr/lib/vlc/audio_filter/libnormvol_plugin.so
-usr/lib/vlc/audio_filter/libparam_eq_plugin.so
-usr/lib/vlc/audio_filter/libs16tofixed32_plugin.so
-usr/lib/vlc/audio_filter/libs16tofloat32_plugin.so
-usr/lib/vlc/audio_filter/libs16tofloat32swab_plugin.so
-usr/lib/vlc/audio_filter/libs8tofloat32_plugin.so
-usr/lib/vlc/audio_filter/libsimple_channel_mixer_plugin.so
-usr/lib/vlc/audio_filter/libtrivial_channel_mixer_plugin.so
-usr/lib/vlc/audio_filter/libtrivial_resampler_plugin.so
-usr/lib/vlc/audio_filter/libu8tofixed32_plugin.so
-usr/lib/vlc/audio_filter/libu8tofloat32_plugin.so
-usr/lib/vlc/audio_filter/libugly_resampler_plugin.so
-#usr/lib/vlc/audio_mixer
-usr/lib/vlc/audio_mixer/libfloat32_mixer_plugin.so
-usr/lib/vlc/audio_mixer/libspdif_mixer_plugin.so
-usr/lib/vlc/audio_mixer/libtrivial_mixer_plugin.so
-#usr/lib/vlc/audio_output
-usr/lib/vlc/audio_output/libalsa_plugin.so
-usr/lib/vlc/audio_output/libaout_file_plugin.so
-usr/lib/vlc/audio_output/libaout_sdl_plugin.so
-usr/lib/vlc/audio_output/liboss_plugin.so
-#usr/lib/vlc/codec
-usr/lib/vlc/codec/liba52_plugin.so
-usr/lib/vlc/codec/libadpcm_plugin.so
-usr/lib/vlc/codec/libaraw_plugin.so
-usr/lib/vlc/codec/libcinepak_plugin.so
-usr/lib/vlc/codec/libcmml_plugin.so
-usr/lib/vlc/codec/libcvdsub_plugin.so
-usr/lib/vlc/codec/libdts_plugin.so
-usr/lib/vlc/codec/libdvbsub_plugin.so
-usr/lib/vlc/codec/libfaad_plugin.so
-usr/lib/vlc/codec/libfake_plugin.so
-usr/lib/vlc/codec/libflacdec_plugin.so
-usr/lib/vlc/codec/liblibmpeg2_plugin.so
-usr/lib/vlc/codec/liblpcm_plugin.so
-usr/lib/vlc/codec/libmpeg_audio_plugin.so
-usr/lib/vlc/codec/libpng_plugin.so
-usr/lib/vlc/codec/librawvideo_plugin.so
-usr/lib/vlc/codec/libspudec_plugin.so
-usr/lib/vlc/codec/libsubsdec_plugin.so
-usr/lib/vlc/codec/libsvcdsub_plugin.so
-usr/lib/vlc/codec/libtelx_plugin.so
-usr/lib/vlc/codec/libvorbis_plugin.so
-#usr/lib/vlc/control
-usr/lib/vlc/control/libgestures_plugin.so
-usr/lib/vlc/control/libhotkeys_plugin.so
-usr/lib/vlc/control/libhttp_plugin.so
-usr/lib/vlc/control/libnetsync_plugin.so
-usr/lib/vlc/control/librc_plugin.so
-usr/lib/vlc/control/libshowintf_plugin.so
-usr/lib/vlc/control/libtelnet_plugin.so
-#usr/lib/vlc/demux
-usr/lib/vlc/demux/liba52sys_plugin.so
-usr/lib/vlc/demux/libaiff_plugin.so
-usr/lib/vlc/demux/libasf_plugin.so
-usr/lib/vlc/demux/libau_plugin.so
-usr/lib/vlc/demux/libavi_plugin.so
-usr/lib/vlc/demux/libdemuxdump_plugin.so
-usr/lib/vlc/demux/libdtssys_plugin.so
-usr/lib/vlc/demux/libflac_plugin.so
-usr/lib/vlc/demux/libh264_plugin.so
-usr/lib/vlc/demux/libid3tag_plugin.so
-usr/lib/vlc/demux/libm3u_plugin.so
-usr/lib/vlc/demux/libm4a_plugin.so
-usr/lib/vlc/demux/libm4v_plugin.so
-usr/lib/vlc/demux/libmjpeg_plugin.so
-usr/lib/vlc/demux/libmp4_plugin.so
-usr/lib/vlc/demux/libmpga_plugin.so
-usr/lib/vlc/demux/libmpgv_plugin.so
-usr/lib/vlc/demux/libnsc_plugin.so
-usr/lib/vlc/demux/libnsv_plugin.so
-usr/lib/vlc/demux/libnuv_plugin.so
-usr/lib/vlc/demux/libogg_plugin.so
-usr/lib/vlc/demux/libplaylist_plugin.so
-usr/lib/vlc/demux/libps_plugin.so
-usr/lib/vlc/demux/libpva_plugin.so
-usr/lib/vlc/demux/librawdv_plugin.so
-usr/lib/vlc/demux/libreal_plugin.so
-usr/lib/vlc/demux/libsgimb_plugin.so
-usr/lib/vlc/demux/libsubtitle_plugin.so
-usr/lib/vlc/demux/libts_plugin.so
-usr/lib/vlc/demux/libtta_plugin.so
-usr/lib/vlc/demux/libty_plugin.so
-usr/lib/vlc/demux/libvobsub_plugin.so
-usr/lib/vlc/demux/libvoc_plugin.so
-usr/lib/vlc/demux/libwav_plugin.so
-usr/lib/vlc/demux/libxa_plugin.so
-#usr/lib/vlc/gui
-usr/lib/vlc/gui/libncurses_plugin.so
-#usr/lib/vlc/libffmpeg.a
-#usr/lib/vlc/libi420_rgb_mmx.a
-#usr/lib/vlc/libi420_ymga_mmx.a
-#usr/lib/vlc/libi420_yuy2_mmx.a
-#usr/lib/vlc/libi422_yuy2_mmx.a
-#usr/lib/vlc/libmemcpy3dn.a
-#usr/lib/vlc/libmemcpymmx.a
-#usr/lib/vlc/libmemcpymmxext.a
-#usr/lib/vlc/libmux_ts.a
-#usr/lib/vlc/libstream_out_switcher.a
-#usr/lib/vlc/misc
-usr/lib/vlc/misc/libdummy_plugin.so
-usr/lib/vlc/misc/libexport_plugin.so
-usr/lib/vlc/misc/libfreetype_plugin.so
-usr/lib/vlc/misc/libgrowl_plugin.so
-usr/lib/vlc/misc/libipv4_plugin.so
-usr/lib/vlc/misc/libipv6_plugin.so
-usr/lib/vlc/misc/liblogger_plugin.so
-usr/lib/vlc/misc/libmemcpy_plugin.so
-usr/lib/vlc/misc/libscreensaver_plugin.so
-usr/lib/vlc/misc/libvod_rtsp_plugin.so
-usr/lib/vlc/misc/libxml_plugin.so
-usr/lib/vlc/misc/libxtag_plugin.so
-#usr/lib/vlc/mux
-usr/lib/vlc/mux/libmux_asf_plugin.so
-usr/lib/vlc/mux/libmux_avi_plugin.so
-usr/lib/vlc/mux/libmux_dummy_plugin.so
-usr/lib/vlc/mux/libmux_mp4_plugin.so
-usr/lib/vlc/mux/libmux_mpjpeg_plugin.so
-usr/lib/vlc/mux/libmux_ogg_plugin.so
-usr/lib/vlc/mux/libmux_ps_plugin.so
-usr/lib/vlc/mux/libmux_wav_plugin.so
-#usr/lib/vlc/packetizer
-usr/lib/vlc/packetizer/libpacketizer_copy_plugin.so
-usr/lib/vlc/packetizer/libpacketizer_h264_plugin.so
-usr/lib/vlc/packetizer/libpacketizer_mpeg4audio_plugin.so
-usr/lib/vlc/packetizer/libpacketizer_mpeg4video_plugin.so
-usr/lib/vlc/packetizer/libpacketizer_mpegvideo_plugin.so
-#usr/lib/vlc/services_discovery
-usr/lib/vlc/services_discovery/libpodcast_plugin.so
-usr/lib/vlc/services_discovery/libsap_plugin.so
-usr/lib/vlc/services_discovery/libshout_plugin.so
-usr/lib/vlc/services_discovery/libupnp_intel_plugin.so
-#usr/lib/vlc/stream_out
-usr/lib/vlc/stream_out/libstream_out_bridge_plugin.so
-usr/lib/vlc/stream_out/libstream_out_description_plugin.so
-usr/lib/vlc/stream_out/libstream_out_display_plugin.so
-usr/lib/vlc/stream_out/libstream_out_dummy_plugin.so
-usr/lib/vlc/stream_out/libstream_out_duplicate_plugin.so
-usr/lib/vlc/stream_out/libstream_out_es_plugin.so
-usr/lib/vlc/stream_out/libstream_out_gather_plugin.so
-usr/lib/vlc/stream_out/libstream_out_mosaic_bridge_plugin.so
-usr/lib/vlc/stream_out/libstream_out_rtp_plugin.so
-usr/lib/vlc/stream_out/libstream_out_standard_plugin.so
-usr/lib/vlc/stream_out/libstream_out_transcode_plugin.so
-#usr/lib/vlc/video_chroma
-usr/lib/vlc/video_chroma/libi420_rgb_plugin.so
-usr/lib/vlc/video_chroma/libi420_ymga_plugin.so
-usr/lib/vlc/video_chroma/libi420_yuy2_plugin.so
-usr/lib/vlc/video_chroma/libi422_yuy2_plugin.so
-#usr/lib/vlc/video_filter
-usr/lib/vlc/video_filter/libadjust_plugin.so
-usr/lib/vlc/video_filter/libblend_plugin.so
-usr/lib/vlc/video_filter/libclone_plugin.so
-usr/lib/vlc/video_filter/libcrop_plugin.so
-usr/lib/vlc/video_filter/libdeinterlace_plugin.so
-usr/lib/vlc/video_filter/libdistort_plugin.so
-usr/lib/vlc/video_filter/libinvert_plugin.so
-usr/lib/vlc/video_filter/liblogo_plugin.so
-usr/lib/vlc/video_filter/libmagnify_plugin.so
-usr/lib/vlc/video_filter/libmarq_plugin.so
-usr/lib/vlc/video_filter/libmosaic_plugin.so
-usr/lib/vlc/video_filter/libmotionblur_plugin.so
-usr/lib/vlc/video_filter/libmotiondetect_plugin.so
-usr/lib/vlc/video_filter/libosdmenu_plugin.so
-usr/lib/vlc/video_filter/librss_plugin.so
-usr/lib/vlc/video_filter/librv32_plugin.so
-usr/lib/vlc/video_filter/libscale_plugin.so
-usr/lib/vlc/video_filter/libtime_plugin.so
-usr/lib/vlc/video_filter/libtransform_plugin.so
-usr/lib/vlc/video_filter/libwall_plugin.so
-#usr/lib/vlc/video_output
-usr/lib/vlc/video_output/libdirectfb_plugin.so
-usr/lib/vlc/video_output/libfb_plugin.so
-usr/lib/vlc/video_output/libimage_plugin.so
-usr/lib/vlc/video_output/libvout_sdl_plugin.so
-#usr/lib/vlc/visualization
-usr/lib/vlc/visualization/libvisual_plugin.so
-#usr/share/applications/vlc.desktop
-#usr/share/doc/vlc
-#usr/share/doc/vlc/bugreport-howto.txt
-#usr/share/doc/vlc/fortunes.txt
-#usr/share/doc/vlc/intf-cdda.txt
-#usr/share/doc/vlc/intf-vcd.txt
-#usr/share/vlc
-#usr/share/vlc/http
-usr/share/vlc/http/.hosts
-#usr/share/vlc/http/dialogs
-usr/share/vlc/http/dialogs/.hosts
-usr/share/vlc/http/dialogs/browse
-usr/share/vlc/http/dialogs/footer
-usr/share/vlc/http/dialogs/input
-usr/share/vlc/http/dialogs/main
-usr/share/vlc/http/dialogs/mosaic
-usr/share/vlc/http/dialogs/playlist
-usr/share/vlc/http/dialogs/sout
-usr/share/vlc/http/dialogs/vlm
-usr/share/vlc/http/favicon.ico
-usr/share/vlc/http/iehacks.css
-#usr/share/vlc/http/images
-usr/share/vlc/http/images/delete.png
-usr/share/vlc/http/images/delete_small.png
-usr/share/vlc/http/images/eject.png
-usr/share/vlc/http/images/empty.png
-usr/share/vlc/http/images/fullscreen.png
-usr/share/vlc/http/images/help.png
-usr/share/vlc/http/images/info.png
-usr/share/vlc/http/images/loop.png
-usr/share/vlc/http/images/minus.png
-usr/share/vlc/http/images/next.png
-usr/share/vlc/http/images/pause.png
-usr/share/vlc/http/images/play.png
-usr/share/vlc/http/images/playlist.png
-usr/share/vlc/http/images/playlist_small.png
-usr/share/vlc/http/images/plus.png
-usr/share/vlc/http/images/prev.png
-usr/share/vlc/http/images/refresh.png
-usr/share/vlc/http/images/repeat.png
-usr/share/vlc/http/images/sd.png
-usr/share/vlc/http/images/shuffle.png
-usr/share/vlc/http/images/slider_bar.png
-usr/share/vlc/http/images/slider_left.png
-usr/share/vlc/http/images/slider_point.png
-usr/share/vlc/http/images/slider_right.png
-usr/share/vlc/http/images/slow.png
-usr/share/vlc/http/images/snapshot.png
-usr/share/vlc/http/images/sort.png
-usr/share/vlc/http/images/sout.png
-usr/share/vlc/http/images/speaker.png
-usr/share/vlc/http/images/speaker_mute.png
-usr/share/vlc/http/images/stop.png
-usr/share/vlc/http/images/vlc16x16.png
-usr/share/vlc/http/images/volume_down.png
-usr/share/vlc/http/images/volume_up.png
-usr/share/vlc/http/images/white.png
-usr/share/vlc/http/images/white_cross_small.png
-usr/share/vlc/http/index.html
-#usr/share/vlc/http/js
-usr/share/vlc/http/js/functions.js
-usr/share/vlc/http/js/mosaic.js
-usr/share/vlc/http/js/vlm.js
-usr/share/vlc/http/mosaic.html
-#usr/share/vlc/http/old
-usr/share/vlc/http/old/.hosts
-#usr/share/vlc/http/old/admin
-usr/share/vlc/http/old/admin/.access
-usr/share/vlc/http/old/admin/browse.html
-usr/share/vlc/http/old/admin/dboxfiles.html
-usr/share/vlc/http/old/admin/index.html
-usr/share/vlc/http/old/cone_minus.png
-usr/share/vlc/http/old/cone_plus.png
-usr/share/vlc/http/old/index.html
-usr/share/vlc/http/old/info.html
-usr/share/vlc/http/old/style.css
-#usr/share/vlc/http/old/vlm
-usr/share/vlc/http/old/vlm/edit.html
-usr/share/vlc/http/old/vlm/index.html
-usr/share/vlc/http/old/vlm/new.html
-usr/share/vlc/http/old/vlm/show.html
-usr/share/vlc/http/old/webcam.html
-#usr/share/vlc/http/requests
-usr/share/vlc/http/requests/browse.xml
-usr/share/vlc/http/requests/playlist.xml
-usr/share/vlc/http/requests/readme
-usr/share/vlc/http/requests/status.xml
-usr/share/vlc/http/requests/vlm.xml
-usr/share/vlc/http/requests/vlm_cmd.xml
-usr/share/vlc/http/style.css
-usr/share/vlc/http/vlm.html
-usr/share/vlc/http/vlm_export.html
-#usr/share/vlc/osdmenu
-#usr/share/vlc/osdmenu/default
-usr/share/vlc/osdmenu/default.cfg
-#usr/share/vlc/osdmenu/default/selected
-usr/share/vlc/osdmenu/default/selected/bw.png
-usr/share/vlc/osdmenu/default/selected/esc.png
-usr/share/vlc/osdmenu/default/selected/fw.png
-usr/share/vlc/osdmenu/default/selected/next.png
-usr/share/vlc/osdmenu/default/selected/play_pause.png
-usr/share/vlc/osdmenu/default/selected/previous.png
-usr/share/vlc/osdmenu/default/selected/stop.png
-usr/share/vlc/osdmenu/default/selected/volume.png
-#usr/share/vlc/osdmenu/default/selection
-usr/share/vlc/osdmenu/default/selection/bw.png
-usr/share/vlc/osdmenu/default/selection/esc.png
-usr/share/vlc/osdmenu/default/selection/fw.png
-usr/share/vlc/osdmenu/default/selection/next.png
-usr/share/vlc/osdmenu/default/selection/play_pause.png
-usr/share/vlc/osdmenu/default/selection/previous.png
-usr/share/vlc/osdmenu/default/selection/stop.png
-usr/share/vlc/osdmenu/default/selection/volume.png
-usr/share/vlc/osdmenu/default/unselected.png
-#usr/share/vlc/osdmenu/default/volume
-usr/share/vlc/osdmenu/default/volume/volume_00.png
-usr/share/vlc/osdmenu/default/volume/volume_01.png
-usr/share/vlc/osdmenu/default/volume/volume_02.png
-usr/share/vlc/osdmenu/default/volume/volume_03.png
-usr/share/vlc/osdmenu/default/volume/volume_04.png
-usr/share/vlc/osdmenu/default/volume/volume_05.png
-usr/share/vlc/osdmenu/default/volume/volume_06.png
-usr/share/vlc/osdmenu/default/volume/volume_07.png
-usr/share/vlc/osdmenu/default/volume/volume_08.png
-usr/share/vlc/osdmenu/default/volume/volume_09.png
-usr/share/vlc/osdmenu/default/volume/volume_10.png
-#usr/share/vlc/osdmenu/dvd
-usr/share/vlc/osdmenu/dvd.cfg
-#usr/share/vlc/osdmenu/dvd/selected
-usr/share/vlc/osdmenu/dvd/selected/bw.png
-usr/share/vlc/osdmenu/dvd/selected/esc.png
-usr/share/vlc/osdmenu/dvd/selected/fw.png
-usr/share/vlc/osdmenu/dvd/selected/mute.png
-usr/share/vlc/osdmenu/dvd/selected/next.png
-usr/share/vlc/osdmenu/dvd/selected/pause.png
-usr/share/vlc/osdmenu/dvd/selected/play.png
-usr/share/vlc/osdmenu/dvd/selected/previous.png
-usr/share/vlc/osdmenu/dvd/selected/slow.png
-usr/share/vlc/osdmenu/dvd/selected/stop.png
-usr/share/vlc/osdmenu/dvd/selected/volume.png
-#usr/share/vlc/osdmenu/dvd/selection
-usr/share/vlc/osdmenu/dvd/selection/bw.png
-usr/share/vlc/osdmenu/dvd/selection/esc.png
-usr/share/vlc/osdmenu/dvd/selection/fw.png
-usr/share/vlc/osdmenu/dvd/selection/mute.png
-usr/share/vlc/osdmenu/dvd/selection/next.png
-usr/share/vlc/osdmenu/dvd/selection/pause.png
-usr/share/vlc/osdmenu/dvd/selection/play.png
-usr/share/vlc/osdmenu/dvd/selection/previous.png
-usr/share/vlc/osdmenu/dvd/selection/slow.png
-usr/share/vlc/osdmenu/dvd/selection/stop.png
-#usr/share/vlc/osdmenu/dvd/unselect
-usr/share/vlc/osdmenu/dvd/unselect/barroff.png
-#usr/share/vlc/osdmenu/dvd/volume
-usr/share/vlc/osdmenu/dvd/volume/volume00.png
-usr/share/vlc/osdmenu/dvd/volume/volume01.png
-usr/share/vlc/osdmenu/dvd/volume/volume02.png
-usr/share/vlc/osdmenu/dvd/volume/volume03.png
-usr/share/vlc/osdmenu/dvd/volume/volume04.png
-usr/share/vlc/osdmenu/dvd/volume/volume05.png
-usr/share/vlc/pda-forwardb16x16.xpm
-usr/share/vlc/pda-openb16x16.xpm
-usr/share/vlc/pda-pauseb16x16.xpm
-usr/share/vlc/pda-playb16x16.xpm
-usr/share/vlc/pda-playlistb16x16.xpm
-usr/share/vlc/pda-preferencesb16x16.xpm
-usr/share/vlc/pda-rewindb16x16.xpm
-usr/share/vlc/pda-stopb16x16.xpm
-#usr/share/vlc/skins2
-usr/share/vlc/skins2/default.vlt
-#usr/share/vlc/skins2/fonts
-usr/share/vlc/skins2/fonts/FreeSans.ttf
-usr/share/vlc/skins2/fonts/FreeSansBold.ttf
-usr/share/vlc/skins2/skin.catalog
-usr/share/vlc/skins2/skin.dtd
-usr/share/vlc/skins2/winamp2.xml
-usr/share/vlc/vlc128x128.png
-usr/share/vlc/vlc16x16.png
-usr/share/vlc/vlc16x16.xpm
-usr/share/vlc/vlc32x32.png
-usr/share/vlc/vlc32x32.xpm
-usr/share/vlc/vlc48x48.ico
-usr/share/vlc/vlc48x48.png
index 40d3546d3184391a9826bd074406035e908cedaf..b0744c261c7bbd26920d6963f3aa591a3df09617 100644 (file)
@@ -1,2 +1,3 @@
-opt/vdr/bin/w_scan
-opt/vdr/bin/w_scan_start
+usr/bin/w_scan
+usr/bin/w_scan_start
+#usr/share/man/man1/w_scan.1
diff --git a/config/rpi-firmware/config.txt b/config/rpi-firmware/config.txt
new file mode 100644 (file)
index 0000000..8d0674a
--- /dev/null
@@ -0,0 +1,36 @@
+###############################################################################
+#
+# Raspberry Pi - Videocore configuration file
+#
+###############################################################################
+
+###############################################################################
+#
+# GPU Memory Settings (16,32,64 ... )
+# 16MB has a issue at reboot so we use 32MB memory split
+###############################################################################
+gpu_mem_256=32
+gpu_mem_512=32
+
+###############################################################################
+#
+# Turbo Mode (cpufreq) Settings ...
+# default clocks are arm=700, core=250 and sdram=400
+#
+###############################################################################
+#
+# underclock at idle
+arm_freq_min=500
+sdram_freq_min=250
+#
+# use following paramters to overclock at load
+#arm_freq=1000
+#core_freq=450
+#sdram_freq=450
+#over_voltage=3
+
+################################################################################
+#
+# end
+#
+################################################################################
diff --git a/config/u-boot/boot.scr b/config/u-boot/boot.scr
new file mode 100755 (executable)
index 0000000..aad40ae
Binary files /dev/null and b/config/u-boot/boot.scr differ
diff --git a/config/u-boot/boot.script b/config/u-boot/boot.script
new file mode 100755 (executable)
index 0000000..0f71815
--- /dev/null
@@ -0,0 +1,4 @@
+fatload mmc 0:1 0x80000000 uImage-ipfire-omap
+fatload mmc 0:1 0x81600000 uInit-ipfire-omap
+setenv bootargs vram=32M console=tty1 rootwait smsc95xx.macaddr=$usbethaddr root=/dev/mmcblk0p3 ro
+bootm 0x80000000 0x81600000
diff --git a/config/u-boot/convert_bootscript b/config/u-boot/convert_bootscript
new file mode 100755 (executable)
index 0000000..962191f
--- /dev/null
@@ -0,0 +1 @@
+mkimage -A arm -T script -C none -d boot.script boot.scr
diff --git a/config/uClibc/busybox.config b/config/uClibc/busybox.config
deleted file mode 100644 (file)
index 9682385..0000000
+++ /dev/null
@@ -1,643 +0,0 @@
-#
-# Automatically generated make config: don't edit
-#
-HAVE_DOT_CONFIG=y
-
-#
-# Busybox Settings
-#
-
-#
-# General Configuration
-#
-# CONFIG_NITPICK is not set
-# CONFIG_FEATURE_BUFFERS_USE_MALLOC is not set
-# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set
-# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set
-CONFIG_SHOW_USAGE=y
-CONFIG_FEATURE_VERBOSE_USAGE=y
-CONFIG_FEATURE_COMPRESS_USAGE=y
-# CONFIG_FEATURE_INSTALLER is not set
-# CONFIG_LOCALE_SUPPORT is not set
-CONFIG_GETOPT_LONG=y
-# CONFIG_FEATURE_DEVPTS is not set
-# CONFIG_FEATURE_CLEAN_UP is not set
-# CONFIG_FEATURE_SUID is not set
-# CONFIG_FEATURE_SUID_CONFIG is not set
-# CONFIG_FEATURE_SUID_CONFIG_QUIET is not set
-# CONFIG_SELINUX is not set
-CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe"
-
-#
-# Build Options
-#
-# CONFIG_STATIC is not set
-# CONFIG_BUILD_LIBBUSYBOX is not set
-# CONFIG_FEATURE_FULL_LIBBUSYBOX is not set
-# CONFIG_FEATURE_SHARED_BUSYBOX is not set
-CONFIG_LFS=y
-USING_CROSS_COMPILER=y
-CROSS_COMPILER_PREFIX="/opt/i586-uClibc/bin/i586-linux-"
-# CONFIG_BUILD_AT_ONCE is not set
-
-#
-# Debugging Options
-#
-# CONFIG_DEBUG is not set
-# CONFIG_DEBUG_PESSIMIZE is not set
-# CONFIG_NO_DEBUG_LIB is not set
-# CONFIG_DMALLOC is not set
-# CONFIG_EFENCE is not set
-# CONFIG_DEBUG_YANK_SUSv2 is not set
-
-#
-# Installation Options
-#
-CONFIG_INSTALL_NO_USR=y
-CONFIG_INSTALL_APPLET_SYMLINKS=y
-# CONFIG_INSTALL_APPLET_HARDLINKS is not set
-# CONFIG_INSTALL_APPLET_DONT is not set
-PREFIX="/install/initrd"
-
-#
-# Busybox Library Tuning
-#
-CONFIG_MD5_SIZE_VS_SPEED=3
-
-#
-# Applets
-#
-
-#
-# Archival Utilities
-#
-# CONFIG_AR is not set
-# CONFIG_FEATURE_AR_LONG_FILENAMES is not set
-# CONFIG_BUNZIP2 is not set
-# CONFIG_CPIO is not set
-# CONFIG_DPKG is not set
-# CONFIG_DPKG_DEB is not set
-# CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set
-# CONFIG_GUNZIP is not set
-# CONFIG_FEATURE_GUNZIP_UNCOMPRESS is not set
-CONFIG_GZIP=y
-# CONFIG_RPM2CPIO is not set
-# CONFIG_RPM is not set
-CONFIG_TAR=y
-# CONFIG_FEATURE_TAR_CREATE is not set
-CONFIG_FEATURE_TAR_BZIP2=y
-CONFIG_FEATURE_TAR_LZMA=y
-# CONFIG_FEATURE_TAR_FROM is not set
-CONFIG_FEATURE_TAR_GZIP=y
-# CONFIG_FEATURE_TAR_COMPRESS is not set
-CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY=y
-CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y
-CONFIG_FEATURE_TAR_LONG_OPTIONS=y
-# CONFIG_UNCOMPRESS is not set
-# CONFIG_UNLZMA is not set
-# CONFIG_FEATURE_LZMA_FAST is not set
-CONFIG_UNZIP=y
-
-#
-# Common options for cpio and tar
-#
-# CONFIG_FEATURE_UNARCHIVE_TAPE is not set
-# CONFIG_FEATURE_DEB_TAR_GZ is not set
-# CONFIG_FEATURE_DEB_TAR_BZ2 is not set
-# CONFIG_FEATURE_DEB_TAR_LZMA is not set
-
-#
-# Coreutils
-#
-CONFIG_BASENAME=y
-# CONFIG_CAL is not set
-CONFIG_CAT=y
-# CONFIG_CATV is not set
-# CONFIG_CHGRP is not set
-CONFIG_CHMOD=y
-CONFIG_CHOWN=y
-CONFIG_CHROOT=y
-# CONFIG_CKSUM is not set
-# CONFIG_CMP is not set
-# CONFIG_COMM is not set
-CONFIG_CP=y
-CONFIG_CUT=y
-CONFIG_DATE=y
-CONFIG_FEATURE_DATE_ISOFMT=y
-CONFIG_DD=y
-CONFIG_FEATURE_DD_SIGNAL_HANDLING=y
-# CONFIG_FEATURE_DD_IBS_OBS is not set
-CONFIG_DF=y
-# CONFIG_DIFF is not set
-# CONFIG_FEATURE_DIFF_BINARY is not set
-# CONFIG_FEATURE_DIFF_DIR is not set
-# CONFIG_FEATURE_DIFF_MINIMAL is not set
-# CONFIG_DIRNAME is not set
-# CONFIG_DOS2UNIX is not set
-# CONFIG_UNIX2DOS is not set
-CONFIG_DU=y
-CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y
-CONFIG_ECHO=y
-CONFIG_FEATURE_FANCY_ECHO=y
-# CONFIG_ENV is not set
-# CONFIG_FEATURE_ENV_LONG_OPTIONS is not set
-# CONFIG_EXPR is not set
-# CONFIG_EXPR_MATH_SUPPORT_64 is not set
-# CONFIG_FALSE is not set
-# CONFIG_FOLD is not set
-CONFIG_HEAD=y
-# CONFIG_FEATURE_FANCY_HEAD is not set
-# CONFIG_HOSTID is not set
-# CONFIG_ID is not set
-# CONFIG_INSTALL is not set
-# CONFIG_FEATURE_INSTALL_LONG_OPTIONS is not set
-# CONFIG_LENGTH is not set
-CONFIG_LN=y
-# CONFIG_LOGNAME is not set
-CONFIG_LS=y
-CONFIG_FEATURE_LS_FILETYPES=y
-CONFIG_FEATURE_LS_FOLLOWLINKS=y
-CONFIG_FEATURE_LS_RECURSIVE=y
-CONFIG_FEATURE_LS_SORTFILES=y
-CONFIG_FEATURE_LS_TIMESTAMPS=y
-CONFIG_FEATURE_LS_USERNAME=y
-CONFIG_FEATURE_LS_COLOR=y
-# CONFIG_FEATURE_LS_COLOR_IS_DEFAULT is not set
-CONFIG_MD5SUM=y
-CONFIG_MKDIR=y
-# CONFIG_FEATURE_MKDIR_LONG_OPTIONS is not set
-CONFIG_MKFIFO=y
-CONFIG_MKNOD=y
-CONFIG_MV=y
-CONFIG_FEATURE_MV_LONG_OPTIONS=y
-CONFIG_NICE=y
-# CONFIG_NOHUP is not set
-# CONFIG_OD is not set
-# CONFIG_PRINTENV is not set
-# CONFIG_PRINTF is not set
-# CONFIG_PWD is not set
-# CONFIG_REALPATH is not set
-CONFIG_RM=y
-# CONFIG_RMDIR is not set
-CONFIG_SEQ=y
-# CONFIG_SHA1SUM is not set
-CONFIG_SLEEP=y
-# CONFIG_FEATURE_FANCY_SLEEP is not set
-CONFIG_SORT=y
-CONFIG_FEATURE_SORT_BIG=y
-# CONFIG_STAT is not set
-# CONFIG_FEATURE_STAT_FORMAT is not set
-# CONFIG_STTY is not set
-# CONFIG_SUM is not set
-CONFIG_SYNC=y
-CONFIG_TAIL=y
-CONFIG_FEATURE_FANCY_TAIL=y
-CONFIG_TEE=y
-# CONFIG_FEATURE_TEE_USE_BLOCK_IO is not set
-CONFIG_TEST=y
-# CONFIG_FEATURE_TEST_64 is not set
-CONFIG_TOUCH=y
-CONFIG_TR=y
-CONFIG_FEATURE_TR_CLASSES=y
-CONFIG_FEATURE_TR_EQUIV=y
-CONFIG_TRUE=y
-# CONFIG_TTY is not set
-CONFIG_UNAME=y
-CONFIG_UNIQ=y
-# CONFIG_USLEEP is not set
-# CONFIG_UUDECODE is not set
-# CONFIG_UUENCODE is not set
-# CONFIG_WATCH is not set
-CONFIG_WC=y
-# CONFIG_WHO is not set
-# CONFIG_WHOAMI is not set
-CONFIG_YES=y
-
-#
-# Common options for cp and mv
-#
-CONFIG_FEATURE_PRESERVE_HARDLINKS=y
-
-#
-# Common options for ls, more and telnet
-#
-CONFIG_FEATURE_AUTOWIDTH=y
-
-#
-# Common options for df, du, ls
-#
-CONFIG_FEATURE_HUMAN_READABLE=y
-
-#
-# Common options for md5sum, sha1sum
-#
-# CONFIG_FEATURE_MD5_SHA1_SUM_CHECK is not set
-
-#
-# Console Utilities
-#
-CONFIG_CHVT=y
-CONFIG_CLEAR=y
-# CONFIG_DEALLOCVT is not set
-# CONFIG_DUMPKMAP is not set
-CONFIG_LOADFONT=y
-CONFIG_LOADKMAP=y
-# CONFIG_OPENVT is not set
-# CONFIG_RESET is not set
-CONFIG_SETCONSOLE=y
-# CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS is not set
-CONFIG_SETKEYCODES=y
-# CONFIG_SETLOGCONS is not set
-
-#
-# Debian Utilities
-#
-# CONFIG_MKTEMP is not set
-# CONFIG_PIPE_PROGRESS is not set
-# CONFIG_READLINK is not set
-# CONFIG_FEATURE_READLINK_FOLLOW is not set
-# CONFIG_RUN_PARTS is not set
-# CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS is not set
-# CONFIG_START_STOP_DAEMON is not set
-# CONFIG_FEATURE_START_STOP_DAEMON_FANCY is not set
-# CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS is not set
-CONFIG_WHICH=y
-
-#
-# Editors
-#
-CONFIG_AWK=y
-# CONFIG_FEATURE_AWK_MATH is not set
-# CONFIG_ED is not set
-# CONFIG_PATCH is not set
-CONFIG_SED=y
-CONFIG_VI=y
-CONFIG_FEATURE_VI_COLON=y
-CONFIG_FEATURE_VI_YANKMARK=y
-CONFIG_FEATURE_VI_SEARCH=y
-CONFIG_FEATURE_VI_USE_SIGNALS=y
-CONFIG_FEATURE_VI_DOT_CMD=y
-CONFIG_FEATURE_VI_READONLY=y
-CONFIG_FEATURE_VI_SETOPTS=y
-CONFIG_FEATURE_VI_SET=y
-CONFIG_FEATURE_VI_WIN_RESIZE=y
-CONFIG_FEATURE_VI_OPTIMIZE_CURSOR=y
-
-#
-# Finding Utilities
-#
-CONFIG_FIND=y
-CONFIG_FEATURE_FIND_PRINT0=y
-CONFIG_FEATURE_FIND_MTIME=y
-CONFIG_FEATURE_FIND_MMIN=y
-CONFIG_FEATURE_FIND_PERM=y
-CONFIG_FEATURE_FIND_TYPE=y
-CONFIG_FEATURE_FIND_XDEV=y
-CONFIG_FEATURE_FIND_NEWER=y
-CONFIG_FEATURE_FIND_INUM=y
-CONFIG_FEATURE_FIND_EXEC=y
-CONFIG_GREP=y
-CONFIG_FEATURE_GREP_EGREP_ALIAS=y
-CONFIG_FEATURE_GREP_FGREP_ALIAS=y
-CONFIG_FEATURE_GREP_CONTEXT=y
-CONFIG_XARGS=y
-# CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION is not set
-# CONFIG_FEATURE_XARGS_SUPPORT_QUOTES is not set
-# CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT is not set
-# CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM is not set
-
-#
-# Init Utilities
-#
-CONFIG_INIT=y
-# CONFIG_DEBUG_INIT is not set
-CONFIG_FEATURE_USE_INITTAB=y
-# CONFIG_FEATURE_INIT_SCTTY is not set
-CONFIG_FEATURE_EXTRA_QUIET=y
-# CONFIG_FEATURE_INIT_COREDUMPS is not set
-CONFIG_FEATURE_INITRD=y
-CONFIG_HALT=y
-# CONFIG_MESG is not set
-
-#
-# Login/Password Management Utilities
-#
-# CONFIG_FEATURE_SHADOWPASSWDS is not set
-# CONFIG_USE_BB_SHADOW is not set
-# CONFIG_USE_BB_PWD_GRP is not set
-# CONFIG_ADDGROUP is not set
-# CONFIG_DELGROUP is not set
-# CONFIG_ADDUSER is not set
-# CONFIG_DELUSER is not set
-CONFIG_GETTY=y
-# CONFIG_FEATURE_UTMP is not set
-# CONFIG_FEATURE_WTMP is not set
-# CONFIG_LOGIN is not set
-# CONFIG_FEATURE_SECURETTY is not set
-# CONFIG_PASSWD is not set
-# CONFIG_SU is not set
-# CONFIG_SULOGIN is not set
-# CONFIG_VLOCK is not set
-
-#
-# Linux Ext2 FS Progs
-#
-# CONFIG_CHATTR is not set
-CONFIG_E2FSCK=y
-CONFIG_FSCK=y
-# CONFIG_LSATTR is not set
-CONFIG_MKE2FS=y
-CONFIG_TUNE2FS=y
-CONFIG_E2LABEL=y
-# CONFIG_FINDFS is not set
-
-#
-# Linux Module Utilities
-#
-CONFIG_INSMOD=y
-# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set
-# CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set
-# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set
-# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set
-# CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set
-CONFIG_RMMOD=y
-CONFIG_LSMOD=y
-CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT=y
-CONFIG_MODPROBE=y
-CONFIG_FEATURE_MODPROBE_MULTIPLE_OPTIONS=y
-
-#
-# Options common to multiple modutils
-#
-# CONFIG_FEATURE_CHECK_TAINTED_MODULE is not set
-# CONFIG_FEATURE_2_4_MODULES is not set
-CONFIG_FEATURE_2_6_MODULES=y
-# CONFIG_FEATURE_QUERY_MODULE_INTERFACE is not set
-
-#
-# Linux System Utilities
-#
-CONFIG_DMESG=y
-# CONFIG_FBSET is not set
-# CONFIG_FEATURE_FBSET_FANCY is not set
-# CONFIG_FEATURE_FBSET_READMODE is not set
-# CONFIG_FDFLUSH is not set
-# CONFIG_FDFORMAT is not set
-CONFIG_FDISK=y
-FDISK_SUPPORT_LARGE_DISKS=y
-CONFIG_FEATURE_FDISK_WRITABLE=y
-# CONFIG_FEATURE_AIX_LABEL is not set
-# CONFIG_FEATURE_SGI_LABEL is not set
-# CONFIG_FEATURE_SUN_LABEL is not set
-# CONFIG_FEATURE_OSF_LABEL is not set
-# CONFIG_FEATURE_FDISK_ADVANCED is not set
-# CONFIG_FREERAMDISK is not set
-# CONFIG_FSCK_MINIX is not set
-# CONFIG_MKFS_MINIX is not set
-# CONFIG_FEATURE_MINIX2 is not set
-# CONFIG_GETOPT is not set
-# CONFIG_HEXDUMP is not set
-# CONFIG_HWCLOCK is not set
-# CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS is not set
-# CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS is not set
-# CONFIG_IPCRM is not set
-# CONFIG_IPCS is not set
-CONFIG_LOSETUP=y
-# CONFIG_MDEV is not set
-# CONFIG_FEATURE_MDEV_CONF is not set
-# CONFIG_FEATURE_MDEV_EXEC is not set
-CONFIG_MKSWAP=y
-# CONFIG_FEATURE_MKSWAP_V0 is not set
-CONFIG_MORE=y
-CONFIG_FEATURE_USE_TERMIOS=y
-CONFIG_MOUNT=y
-# CONFIG_FEATURE_MOUNT_NFS is not set
-CONFIG_PIVOT_ROOT=y
-# CONFIG_RDATE is not set
-# CONFIG_READPROFILE is not set
-# CONFIG_SETARCH is not set
-CONFIG_SWAPONOFF=y
-# CONFIG_SWITCH_ROOT is not set
-CONFIG_UMOUNT=y
-CONFIG_FEATURE_UMOUNT_ALL=y
-
-#
-# Common options for mount/umount
-#
-CONFIG_FEATURE_MOUNT_LOOP=y
-# CONFIG_FEATURE_MTAB_SUPPORT is not set
-
-#
-# Miscellaneous Utilities
-#
-# CONFIG_ADJTIMEX is not set
-# CONFIG_BBCONFIG is not set
-# CONFIG_CROND is not set
-# CONFIG_DEBUG_CROND_OPTION is not set
-# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set
-# CONFIG_CRONTAB is not set
-# CONFIG_DC is not set
-# CONFIG_DEVFSD is not set
-# CONFIG_DEVFSD_MODLOAD is not set
-# CONFIG_DEVFSD_FG_NP is not set
-# CONFIG_DEVFSD_VERBOSE is not set
-# CONFIG_FEATURE_DEVFS is not set
-CONFIG_EJECT=y
-# CONFIG_LAST is not set
-CONFIG_LESS=y
-CONFIG_FEATURE_LESS_BRACKETS=y
-CONFIG_FEATURE_LESS_FLAGS=y
-# CONFIG_FEATURE_LESS_FLAGCS is not set
-# CONFIG_FEATURE_LESS_MARKS is not set
-# CONFIG_FEATURE_LESS_REGEXP is not set
-# CONFIG_HDPARM is not set
-# CONFIG_FEATURE_HDPARM_GET_IDENTITY is not set
-# CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF is not set
-# CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF is not set
-# CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET is not set
-# CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF is not set
-# CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA is not set
-# CONFIG_MAKEDEVS is not set
-# CONFIG_FEATURE_MAKEDEVS_LEAF is not set
-# CONFIG_FEATURE_MAKEDEVS_TABLE is not set
-# CONFIG_MOUNTPOINT is not set
-# CONFIG_MT is not set
-# CONFIG_RUNLEVEL is not set
-# CONFIG_RX is not set
-# CONFIG_STRINGS is not set
-# CONFIG_SETSID is not set
-# CONFIG_TASKSET is not set
-# CONFIG_TIME is not set
-# CONFIG_WATCHDOG is not set
-
-#
-# Networking Utilities
-#
-# CONFIG_FEATURE_IPV6 is not set
-# CONFIG_ARPING is not set
-# CONFIG_DNSD is not set
-# CONFIG_ETHER_WAKE is not set
-# CONFIG_FAKEIDENTD is not set
-# CONFIG_FTPGET is not set
-# CONFIG_FTPPUT is not set
-# CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS is not set
-CONFIG_HOSTNAME=y
-# CONFIG_HTTPD is not set
-# CONFIG_FEATURE_HTTPD_WITHOUT_INETD is not set
-# CONFIG_FEATURE_HTTPD_RELOAD_CONFIG_SIGHUP is not set
-# CONFIG_FEATURE_HTTPD_SETUID is not set
-# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set
-# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set
-# CONFIG_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES is not set
-# CONFIG_FEATURE_HTTPD_CGI is not set
-# CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set
-# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set
-# CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set
-CONFIG_IFCONFIG=y
-CONFIG_FEATURE_IFCONFIG_STATUS=y
-# CONFIG_FEATURE_IFCONFIG_SLIP is not set
-# CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ is not set
-# CONFIG_FEATURE_IFCONFIG_HW is not set
-CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS=y
-# CONFIG_IFUPDOWN is not set
-# CONFIG_FEATURE_IFUPDOWN_IP is not set
-# CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN is not set
-# CONFIG_FEATURE_IFUPDOWN_IPV4 is not set
-# CONFIG_FEATURE_IFUPDOWN_IPV6 is not set
-# CONFIG_FEATURE_IFUPDOWN_IPX is not set
-# CONFIG_FEATURE_IFUPDOWN_MAPPING is not set
-# CONFIG_INETD is not set
-# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO is not set
-# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD is not set
-# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME is not set
-# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME is not set
-# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN is not set
-# CONFIG_FEATURE_INETD_RPC is not set
-CONFIG_IP=y
-CONFIG_FEATURE_IP_ADDRESS=y
-CONFIG_FEATURE_IP_LINK=y
-CONFIG_FEATURE_IP_ROUTE=y
-# CONFIG_FEATURE_IP_TUNNEL is not set
-CONFIG_FEATURE_IP_SHORT_FORMS=y
-CONFIG_IPADDR=y
-CONFIG_IPLINK=y
-CONFIG_IPROUTE=y
-# CONFIG_IPTUNNEL is not set
-# CONFIG_IPCALC is not set
-# CONFIG_FEATURE_IPCALC_FANCY is not set
-# CONFIG_FEATURE_IPCALC_LONG_OPTIONS is not set
-# CONFIG_NAMEIF is not set
-# CONFIG_NC is not set
-# CONFIG_NC_GAPING_SECURITY_HOLE is not set
-# CONFIG_NETSTAT is not set
-# CONFIG_NSLOOKUP is not set
-CONFIG_PING=y
-# CONFIG_FEATURE_FANCY_PING is not set
-# CONFIG_PING6 is not set
-# CONFIG_FEATURE_FANCY_PING6 is not set
-CONFIG_ROUTE=y
-# CONFIG_TELNET is not set
-# CONFIG_FEATURE_TELNET_TTYPE is not set
-# CONFIG_FEATURE_TELNET_AUTOLOGIN is not set
-# CONFIG_TELNETD is not set
-# CONFIG_FEATURE_TELNETD_INETD is not set
-# CONFIG_TFTP is not set
-# CONFIG_FEATURE_TFTP_GET is not set
-# CONFIG_FEATURE_TFTP_PUT is not set
-# CONFIG_FEATURE_TFTP_BLOCKSIZE is not set
-# CONFIG_DEBUG_TFTP is not set
-# CONFIG_TRACEROUTE is not set
-# CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set
-# CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set
-# CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set
-
-#
-# udhcp Server/Client
-#
-# CONFIG_APP_UDHCPD is not set
-CONFIG_APP_UDHCPC=y
-# CONFIG_APP_DUMPLEASES is not set
-CONFIG_FEATURE_UDHCP_SYSLOG=y
-# CONFIG_FEATURE_UDHCP_DEBUG is not set
-CONFIG_VCONFIG=y
-# CONFIG_WGET is not set
-# CONFIG_FEATURE_WGET_STATUSBAR is not set
-# CONFIG_FEATURE_WGET_AUTHENTICATION is not set
-# CONFIG_FEATURE_WGET_IP6_LITERAL is not set
-# CONFIG_FEATURE_WGET_LONG_OPTIONS is not set
-# CONFIG_ZCIP is not set
-
-#
-# Process Utilities
-#
-CONFIG_FREE=y
-# CONFIG_FUSER is not set
-CONFIG_KILL=y
-CONFIG_KILLALL=y
-# CONFIG_PIDOF is not set
-# CONFIG_FEATURE_PIDOF_SINGLE is not set
-# CONFIG_FEATURE_PIDOF_OMIT is not set
-CONFIG_PS=y
-CONFIG_FEATURE_PS_WIDE=y
-CONFIG_RENICE=y
-# CONFIG_BB_SYSCTL is not set
-CONFIG_TOP=y
-CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y
-CONFIG_UPTIME=y
-
-#
-# Shells
-#
-CONFIG_FEATURE_SH_IS_ASH=y
-# CONFIG_FEATURE_SH_IS_HUSH is not set
-# CONFIG_FEATURE_SH_IS_LASH is not set
-# CONFIG_FEATURE_SH_IS_MSH is not set
-# CONFIG_FEATURE_SH_IS_NONE is not set
-CONFIG_ASH=y
-
-#
-# Ash Shell Options
-#
-CONFIG_ASH_JOB_CONTROL=y
-# CONFIG_ASH_READ_NCHARS is not set
-# CONFIG_ASH_READ_TIMEOUT is not set
-CONFIG_ASH_ALIAS=y
-CONFIG_ASH_MATH_SUPPORT=y
-# CONFIG_ASH_MATH_SUPPORT_64 is not set
-CONFIG_ASH_GETOPTS=y
-CONFIG_ASH_BUILTIN_ECHO=y
-CONFIG_ASH_BUILTIN_TEST=y
-# CONFIG_ASH_CMDCMD is not set
-# CONFIG_ASH_MAIL is not set
-CONFIG_ASH_OPTIMIZE_FOR_SIZE=y
-# CONFIG_ASH_RANDOM_SUPPORT is not set
-CONFIG_ASH_EXPAND_PRMT=y
-# CONFIG_HUSH is not set
-# CONFIG_LASH is not set
-# CONFIG_MSH is not set
-
-#
-# Bourne Shell Options
-#
-# CONFIG_FEATURE_SH_EXTRA_QUIET is not set
-# CONFIG_FEATURE_SH_STANDALONE_SHELL is not set
-CONFIG_FEATURE_COMMAND_EDITING=y
-# CONFIG_FEATURE_COMMAND_EDITING_VI is not set
-CONFIG_FEATURE_COMMAND_HISTORY=15
-CONFIG_FEATURE_COMMAND_SAVEHISTORY=y
-CONFIG_FEATURE_COMMAND_TAB_COMPLETION=y
-# CONFIG_FEATURE_COMMAND_USERNAME_COMPLETION is not set
-CONFIG_FEATURE_SH_FANCY_PROMPT=y
-
-#
-# System Logging Utilities
-#
-CONFIG_SYSLOGD=y
-# CONFIG_FEATURE_ROTATE_LOGFILE is not set
-# CONFIG_FEATURE_REMOTE_LOG is not set
-# CONFIG_FEATURE_IPC_SYSLOG is not set
-CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=0
-# CONFIG_LOGREAD is not set
-# CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING is not set
-CONFIG_KLOGD=y
-CONFIG_LOGGER=y
diff --git a/config/uClibc/codesets.txt b/config/uClibc/codesets.txt
deleted file mode 100644 (file)
index 98530d3..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-./charmaps/ASCII.pairs
-./charmaps/ISO-8859-1.pairs
diff --git a/config/uClibc/locales.txt b/config/uClibc/locales.txt
deleted file mode 100644 (file)
index a3100ec..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-@euro e
-@cyrillic c
-#---------------------------------------------------------------------------
-UTF-8 yes
-8-BIT yes
-#---------------------------------------------------------------------------
-en_US ISO-8859-1
-en_US.UTF-8 UTF-8
diff --git a/config/uClibc/uClibc.config-i586 b/config/uClibc/uClibc.config-i586
deleted file mode 100644 (file)
index f46b1fe..0000000
+++ /dev/null
@@ -1,175 +0,0 @@
-#
-# Automatically generated make config: don't edit
-#
-# TARGET_alpha is not set
-# TARGET_arm is not set
-# TARGET_bfin is not set
-# TARGET_cris is not set
-# TARGET_e1 is not set
-# TARGET_frv is not set
-# TARGET_h8300 is not set
-TARGET_i386=y
-# TARGET_i960 is not set
-# TARGET_m68k is not set
-# TARGET_microblaze is not set
-# TARGET_mips is not set
-# TARGET_nios is not set
-# TARGET_nios2 is not set
-# TARGET_powerpc is not set
-# TARGET_sh is not set
-# TARGET_sh64 is not set
-# TARGET_sparc is not set
-# TARGET_v850 is not set
-# TARGET_x86_64 is not set
-
-#
-# Target Architecture Features and Options
-#
-HAVE_ELF=y
-ARCH_SUPPORTS_LITTLE_ENDIAN=y
-TARGET_ARCH="i386"
-# CONFIG_GENERIC_386 is not set
-# CONFIG_386 is not set
-# CONFIG_486 is not set
-CONFIG_586=y
-# CONFIG_586MMX is not set
-# CONFIG_686 is not set
-# CONFIG_PENTIUMII is not set
-# CONFIG_PENTIUMIII is not set
-# CONFIG_PENTIUM4 is not set
-# CONFIG_K6 is not set
-# CONFIG_K7 is not set
-# CONFIG_ELAN is not set
-# CONFIG_CRUSOE is not set
-# CONFIG_WINCHIPC6 is not set
-# CONFIG_WINCHIP2 is not set
-# CONFIG_CYRIXIII is not set
-# CONFIG_NEHEMIAH is not set
-ARCH_LITTLE_ENDIAN=y
-# ARCH_BIG_ENDIAN is not set
-# ARCH_HAS_NO_MMU is not set
-ARCH_HAS_MMU=y
-UCLIBC_HAS_FLOATS=y
-HAS_FPU=y
-DO_C99_MATH=y
-KERNEL_SOURCE="/usr"
-C_SYMBOL_PREFIX=""
-HAVE_DOT_CONFIG=y
-
-#
-# General Library Settings
-#
-# HAVE_NO_PIC is not set
-DOPIC=y
-# HAVE_NO_SHARED is not set
-HAVE_SHARED=y
-# ARCH_HAS_NO_LDSO is not set
-BUILD_UCLIBC_LDSO=y
-FORCE_SHAREABLE_TEXT_SEGMENTS=y
-LDSO_LDD_SUPPORT=y
-LDSO_CACHE_SUPPORT=y
-# LDSO_PRELOAD_FILE_SUPPORT is not set
-LDSO_BASE_FILENAME="ld.so"
-LDSO_RUNPATH=y
-# DL_FINI_CRT_COMPAT is not set
-UCLIBC_CTOR_DTOR=y
-# HAS_NO_THREADS is not set
-UCLIBC_HAS_THREADS=y
-# PTHREADS_DEBUG_SUPPORT is not set
-UCLIBC_HAS_LFS=y
-# UCLIBC_STATIC_LDCONFIG is not set
-# MALLOC is not set
-# MALLOC_SIMPLE is not set
-MALLOC_STANDARD=y
-MALLOC_GLIBC_COMPAT=y
-UCLIBC_DYNAMIC_ATEXIT=y
-HAS_SHADOW=y
-UNIX98PTY_ONLY=y
-ASSUME_DEVPTS=y
-UCLIBC_HAS_TM_EXTENSIONS=y
-UCLIBC_HAS_TZ_CACHING=y
-UCLIBC_HAS_TZ_FILE=y
-UCLIBC_HAS_TZ_FILE_READ_MANY=y
-UCLIBC_TZ_FILE_PATH="/etc/TZ"
-
-#
-# Networking Support
-#
-# UCLIBC_HAS_IPV6 is not set
-# UCLIBC_HAS_RPC is not set
-
-#
-# String and Stdio Support
-#
-UCLIBC_HAS_STRING_GENERIC_OPT=y
-UCLIBC_HAS_STRING_ARCH_OPT=y
-UCLIBC_HAS_CTYPE_TABLES=y
-UCLIBC_HAS_CTYPE_SIGNED=y
-UCLIBC_HAS_CTYPE_UNSAFE=y
-# UCLIBC_HAS_CTYPE_CHECKED is not set
-# UCLIBC_HAS_CTYPE_ENFORCED is not set
-UCLIBC_HAS_WCHAR=y
-UCLIBC_HAS_LOCALE=y
-UCLIBC_PREGENERATED_LOCALE_DATA=y
-# UCLIBC_DOWNLOAD_PREGENERATED_LOCALE_DATA is not set
-UCLIBC_HAS_XLOCALE=y
-# UCLIBC_HAS_HEXADECIMAL_FLOATS is not set
-# UCLIBC_HAS_GLIBC_DIGIT_GROUPING is not set
-UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y
-UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9
-# UCLIBC_HAS_SCANF_GLIBC_A_FLAG is not set
-# UCLIBC_HAS_STDIO_BUFSIZ_NONE is not set
-# UCLIBC_HAS_STDIO_BUFSIZ_256 is not set
-# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set
-# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set
-# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set
-UCLIBC_HAS_STDIO_BUFSIZ_4096=y
-# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set
-UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y
-# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set
-# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set
-# UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT is not set
-UCLIBC_HAS_STDIO_GETC_MACRO=y
-UCLIBC_HAS_STDIO_PUTC_MACRO=y
-UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y
-# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set
-# UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE is not set
-# UCLIBC_HAS_GLIBC_CUSTOM_STREAMS is not set
-# UCLIBC_HAS_PRINTF_M_SPEC is not set
-UCLIBC_HAS_ERRNO_MESSAGES=y
-# UCLIBC_HAS_SYS_ERRLIST is not set
-UCLIBC_HAS_SIGNUM_MESSAGES=y
-UCLIBC_HAS_SYS_SIGLIST=y
-UCLIBC_HAS_GNU_GETOPT=y
-
-#
-# Big and Tall
-#
-UCLIBC_HAS_REGEX=y
-# UCLIBC_HAS_WORDEXP is not set
-UCLIBC_HAS_FTW=y
-UCLIBC_HAS_GLOB=y
-
-#
-# Library Installation Options
-#
-SHARED_LIB_LOADER_PREFIX="/lib"
-RUNTIME_PREFIX="/"
-DEVEL_PREFIX="/usr/"
-
-#
-# uClibc security related options
-#
-# UCLIBC_SECURITY is not set
-
-#
-# uClibc development/debugging options
-#
-CROSS_COMPILER_PREFIX=""
-# DODEBUG is not set
-# DODEBUG_PT is not set
-# DOASSERTS is not set
-# SUPPORT_LD_DEBUG is not set
-# SUPPORT_LD_DEBUG_EARLY is not set
-WARNINGS="-Wall"
-# UCLIBC_MJN3_ONLY is not set
diff --git a/config/udev/10-dvb.rules b/config/udev/10-dvb.rules
deleted file mode 100644 (file)
index 5bcd40e..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-# Create DVB Devices
-KERNEL=="dvb*", PROGRAM="/etc/udev/dvb.sh %k", NAME="%c"
diff --git a/config/udev/25-alsa.rules b/config/udev/25-alsa.rules
new file mode 100644 (file)
index 0000000..3e930cd
--- /dev/null
@@ -0,0 +1,8 @@
+# alsa device go in their own subdirectory
+
+KERNEL=="controlC[0-9]*", NAME="snd/%k", GROUP="audio"
+KERNEL=="hw[CD0-9]*",     NAME="snd/%k", GROUP="audio"
+KERNEL=="pcm[CD0-9cp]*",  NAME="snd/%k", GROUP="audio"
+KERNEL=="midiC[D0-9]*",   NAME="snd/%k", GROUP="audio"
+KERNEL=="timer",          NAME="snd/%k", GROUP="audio"
+KERNEL=="seq",            NAME="snd/%k", GROUP="audio"
diff --git a/config/udev/55-scsi-cdrom.rules b/config/udev/55-scsi-cdrom.rules
deleted file mode 100644 (file)
index f7ad37d..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-# SCSI devices
-BUS=="scsi", KERNEL=="sr[0-9]*",       NAME="scd%n", SYMLINK+="sr%n"
diff --git a/config/udev/99-codel.rules b/config/udev/99-codel.rules
new file mode 100644 (file)
index 0000000..d6747ba
--- /dev/null
@@ -0,0 +1,2 @@
+# Call the enable codel script.
+SUBSYSTEM=="net", RUN+="/lib/udev/enable_codel"
diff --git a/config/udev/dvb.sh b/config/udev/dvb.sh
deleted file mode 100755 (executable)
index 5405ffa..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/bash
-/bin/echo $1 | /bin/sed -e 's,dvb\([0-9]\)\.\([^0-9]*\)\([0-9]\),dvb/adapter\1/\2\3,'
similarity index 69%
rename from src/paks/ipfireseeder/install.sh
rename to config/udev/enable_codel
index 81abf5aa373ebaa569aa26eb4d964c0276bb2a67..6cafd9b268a6f43c67eee119e5b00378f1b50660 100644 (file)
 # along with IPFire; if not, write to the Free Software                    #
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA #
 #                                                                          #
-# Copyright (C) 2007 IPFire-Team <info@ipfire.org>.                        #
+# Copyright (C) 2007-2012 IPFire Team <info@ipfire.org>.                   #
 #                                                                          #
 ############################################################################
-#
-. /opt/pakfire/lib/functions.sh
-extract_files
-ln -s ../../ipfireseeder /etc/rc.d/init.d/networking/red.up/90-S-ipfireseeder
-ln -s ../../ipfireseeder /etc/rc.d/init.d/networking/red.down/01-K-ipfireseeder
 
-start_service --delay 90 --background ${NAME}
+LOG_FACILITY="codel"
+
+function log() {
+       logger -t "${LOG_FACILITY}" $@
+}
+
+if [ -z "${INTERFACE}" ]; then
+       echo "INTERFACE variable was not set." >&2
+       exit 1
+fi
+
+# Do nothing for the loopback device.
+[ "${INTERFACE}" = "lo" ] && exit 0
+
+case "${ACTION}" in
+       add|register)
+               # Change root qdisc to use fq_codel.
+               /sbin/tc qdisc add root dev ${INTERFACE} fq_codel
+               ret=$?
+
+               if [ ${ret} -eq 0 ]; then
+                       log "Codel AQM has been enabled on '${INTERFACE}'."
+               else
+                       log "Codel AQM could not be enabled on '${INTERFACE}'. Error code: ${ret}"
+                       exit ${ret}
+               fi
+               ;;
+
+       remove|unregister)
+               # Nothing to do here.
+               ;;
+esac
+
+exit 0
diff --git a/config/w_scan/w_scan_start b/config/w_scan/w_scan_start
new file mode 100755 (executable)
index 0000000..0f624ac
--- /dev/null
@@ -0,0 +1,136 @@
+#!/bin/bash
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2012  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/>.       #
+#                                                                             #
+###############################################################################
+###############################################################################
+# w_scan_start for IPFire v 1.00 - 2012-11-15 Arne Fitzenreiter - inital vers.#
+###############################################################################
+
+err_msg ()
+{
+       whiptail --msgbox "$1" 8 70 --title "Error"
+       clear
+       exit 1
+}
+
+chk_cancel ()
+{
+       if [ ! "${?}" == 0 ];then
+               clear
+               echo "Terminated by user!"
+               exit 0
+       fi
+}
+
+yes_no ()
+{
+       whiptail --yesno "$1" 8 70
+       chk_cancel
+}
+
+WSCAN=$(which w_scan)
+
+# Whiptail does not like en_US.UTF-8
+LANG=c
+
+# Some initial checks...
+if [ -z $WSCAN ];then 
+       err_msg "w_scan not found!";
+fi
+if [ ! -e /dev/dvb/adapter[0-9]/frontend[0-9] ];then 
+       err_msg "No dvb tuner frontend found!";
+fi
+
+# Is vdr running?
+if [ "$(ps -A | grep " runvdr$")" != "" ] ;then
+       yes_no "VDR is running. Cannot scan with active VDR. Should I stop it?"
+       clear
+       /etc/init.d/vdr stop
+fi
+
+# Select DVB type
+whiptail --checklist "\nSelect DVB type" 12 40 3 \
+                     DVB-T "Terrestrial" yes \
+                     DVB-C "Cable"       no \
+                     DVB-S "Satellite"   no \
+                     2>/tmp/w_scan_type
+chk_cancel
+W_SCAN_TYPE=$(cat /tmp/w_scan_type)
+rm /tmp/w_scan_type
+
+if [[ "$W_SCAN_TYPE" == *DVB-T* ]] || [[ "$W_SCAN_TYPE" == *DVB-C* ]]; then
+       # Generate and run separate country menubox and default germany
+       echo '#!/bin/bash' > /tmp/w_scan_countryselect.sh
+       echo 'whiptail --radiolist "\nSelect country" 19 70 10 \' >> /tmp/w_scan_countryselect.sh
+       $WSCAN -c? 2>&1 | cut -f2,4 | sed 's|[  ]| "|g' | sed 's|$|" off \\|g' | sed 's|"GERMANY" off |"GERMANY" on |g' >> /tmp/w_scan_countryselect.sh
+       echo ' 2>/tmp/w_scan_country' >> /tmp/w_scan_countryselect.sh
+       sh /tmp/w_scan_countryselect.sh
+       chk_cancel
+       rm /tmp/w_scan_countryselect.sh
+       W_SCAN_COUNTRY=$(cat /tmp/w_scan_country)
+       rm /tmp/w_scan_country
+fi
+
+if [[ "$W_SCAN_TYPE" == *DVB-S* ]]; then
+       # Generate and run separate satelite menubox and default astra
+       echo '#!/bin/bash' > /tmp/w_scan_satselect.sh
+       echo 'whiptail --checklist "\nSelect satellites" 19 70 10 \' >> /tmp/w_scan_satselect.sh
+       $WSCAN -s? 2>&1 | cut -f2,4 | sed 's|[  ]| "|g' | sed 's|$|" off \\|g' | sed 's|19.2 east.*|19.2 east Astra 1F/1G/1H/1KR/1L" on \\|g' >> /tmp/w_scan_satselect.sh
+       echo ' 2>/tmp/w_scan_satellite' >> /tmp/w_scan_satselect.sh
+       sh /tmp/w_scan_satselect.sh
+       chk_cancel
+       rm /tmp/w_scan_satselect.sh
+       W_SCAN_SATELLITE=$(cat /tmp/w_scan_satellite | sed 's|"||g')
+       rm /tmp/w_scan_satellite
+fi
+
+# Now start the scan ...
+clear
+rm -rf /tmp/channels.conf
+if [[ "$W_SCAN_TYPE" == *DVB-T* ]]; then
+       echo ":->W-SCAN DVB-T $(date +%Y%m%d%H%M)" >>/tmp/channels.conf
+       $WSCAN -f t -c $W_SCAN_COUNTRY -C UTF-8 >>/tmp/channels.conf
+fi
+if [[ "$W_SCAN_TYPE" == *DVB-C* ]]; then
+       echo ":->W-SCAN DVB-C $(date +%Y%m%d%H%M)" >>/tmp/channels.conf
+       $WSCAN -f c -c $W_SCAN_COUNTRY -C UTF-8 >>/tmp/channels.conf
+fi
+if [[ "$W_SCAN_TYPE" == *DVB-S* ]]; then
+       for SATELLITE in $W_SCAN_SATELLITE;
+       do
+               echo ":->W-SCAN DVB-S $SATELLITE $(date +%Y%m%d%H%M)" >>/tmp/channels.conf
+               $WSCAN -f s -s $SATELLITE -C UTF-8 >>/tmp/channels.conf
+       done
+fi
+
+# Save result to current dir.
+cp /tmp/channels.conf w_scan-$(date +%Y%m%d%H%M).channels.conf
+echo Results saved to w_scan-$(date +%Y%m%d%H%M).channels.conf
+
+# Do this only if vdr is installed ...
+if [ -e /opt/pakfire/db/installed/meta-vdr ]; then
+       yes_no "Install new channels-conf for VDR."
+       # Backup old channels conf...
+       cp -f /opt/vdr/etc/channels.conf \
+               /opt/vdr/etc/channels.conf.backup$(date +%Y%m%d%H%M)
+       cp -f /tmp/channels.conf /opt/vdr/etc/
+       yes_no "Should i start the VDR?"
+       clear
+       /etc/init.d/vdr start
+fi
index 65f8b46f8d92a7e689a1e5ac32975ca4867d8297..f3e114bfd978cbf6f8923d87c7bfa142a861b35b 100644 (file)
@@ -50,9 +50,9 @@ CONFIG_DRIVER_HOSTAP=y
 #CFLAGS += -I../../include/wireless
 
 # Driver interface for madwifi driver
-CONFIG_DRIVER_MADWIFI=y
+#CONFIG_DRIVER_MADWIFI=y
 # Set include directory to the madwifi source tree
-CFLAGS += -I/usr/src/madwifi
+#CFLAGS += -I/usr/src/madwifi
 
 # Driver interface for Prism54 driver
 # (Note: Prism54 is not yet supported, i.e., this will not work as-is and is
index 844058de3276cf249dde5669ce9603576b326f14..300e6ae4515604170898a717bcadb37fa27c31ac 100644 (file)
@@ -74,8 +74,7 @@ $qossettings{'DEFCLASS_INC'} = '';
 $qossettings{'DEFCLASS_OUT'} = '';
 $qossettings{'ACK'} = '';
 $qossettings{'MTU'} = '1492';
-$qossettings{'SFQ_PERTUB'} = '10';
-$qossettings{'QLENGTH'} = '30';
+$qossettings{'QLENGTH'} = '1000';
 $qossettings{'RED_DEV'} = 'ppp0';
 $qossettings{'IMQ_DEV'} = 'imq0';
 $qossettings{'VALID'} = 'yes';
@@ -1448,9 +1447,6 @@ sub expert
                    <td width='33%' align='center'>$Lang::tr{'mtu QoS'}
                <tr><td width='33%' align='right'>$Lang::tr{'Queuelenght'}:<td width='33%' align='left'>
                        <input type='text' name='QLENGTH' maxlength='8' required='2' value='$qossettings{'QLENGTH'}' />
-                   <td width='33%' align='center'>&nbsp;
-               <tr><td width='33%' align='right'>SFQ Perturb:<td width='33%' align='left'>
-                       <input type='text' name='SFQ_PERTUB' maxlength='8' required='1' value='$qossettings{'SFQ_PERTUB'}' />
                    <td width='33%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'save'}' />
                </table>
                </form>
index 123c3258792ddab8da3350c2c9600dca3132d483..22a9ac707cce13d072c261398fae6c9ed8a25234 100644 (file)
@@ -54,7 +54,7 @@ my %servicenames =(
        $Lang::tr{'kernel logging server'} => 'klogd',
        $Lang::tr{'ntp server'} => 'ntpd',
        $Lang::tr{'secure shell server'} => 'sshd',
-       $Lang::tr{'vpn'} => 'pluto',
+       $Lang::tr{'vpn'} => 'charon',
        $Lang::tr{'web proxy'} => 'squid',
        'OpenVPN' => 'openvpn'
 );
index 24aeb6deaea1d691296d0eeb6b6e060f8d3f563a..e9d114b12f36a9f368c50e212adc7038b9524047 100755 (executable)
@@ -73,17 +73,9 @@ $cgiparams{'ENABLED'} = 'off';
 $cgiparams{'EDIT_ADVANCED'} = 'off';
 $cgiparams{'ACTION'} = '';
 $cgiparams{'CA_NAME'} = '';
-$cgiparams{'DBG_CRYPT'} = '';
-$cgiparams{'DBG_PARSING'} = '';
-$cgiparams{'DBG_EMITTING'} = '';
-$cgiparams{'DBG_CONTROL'} = '';
-$cgiparams{'DBG_KLIPS'} = '';
-$cgiparams{'DBG_DNS'} = '';
-$cgiparams{'DBG_NAT_T'} = '';
 $cgiparams{'KEY'} = '';
 $cgiparams{'TYPE'} = '';
 $cgiparams{'ADVANCED'} = '';
-$cgiparams{'INTERFACE'} = '';
 $cgiparams{'NAME'} = '';
 $cgiparams{'LOCAL_SUBNET'} = '';
 $cgiparams{'REMOTE_SUBNET'} = '';
@@ -254,49 +246,10 @@ sub writeipsecfiles {
     flock SECRETS, 2;
     print CONF "version 2\n\n";
     print CONF "config setup\n";
-    #create an ipsec Interface for each 'enabled' ones
-    #loop trought configuration and add physical interfaces to the list
-    my $interfaces = "\tinterfaces=\"";
-    foreach my $key (keys %lconfighash) {
-       next if ($lconfighash{$key}[0] ne 'on');
-        $interfaces .= "%defaultroute "                    if ($interfaces !~ /defaultroute/ && $lconfighash{$key}[26] eq 'RED');
-       $interfaces .= "$netsettings{'GREEN_DEV'} "  if ($interfaces !~ /ipsec1/              && $lconfighash{$key}[26] eq 'GREEN');
-       $interfaces .= "$netsettings{'BLUE_DEV'} "   if ($interfaces !~ /ipsec2/              && $lconfighash{$key}[26] eq 'BLUE');
-       $interfaces .= "$netsettings{'ORANGE_DEV'} " if ($interfaces !~ /ipsec3/              && $lconfighash{$key}[26] eq 'ORANGE');
-    }
-    print CONF $interfaces . "\"\n";
-
-    my $plutodebug = '';                       # build debug list
-    map ($plutodebug .= $lvpnsettings{$_} eq 'on' ? lc (substr($_,4)).' ' : '',
-       ('DBG_CRYPT','DBG_PARSING','DBG_EMITTING','DBG_CONTROL',
-        'DBG_DNS'));
-    $plutodebug = 'none' if $plutodebug eq '';  # if nothing selected, use 'none'.
-    #print CONF "\tklipsdebug=\"none\"\n";
-    print CONF "\tplutodebug=\"$plutodebug\"\n";
-    # deprecated in ipsec.conf version 2
-    #print CONF "\tplutoload=%search\n";
-    #print CONF "\tplutostart=%search\n";
-    print CONF "\tuniqueids=yes\n";
-    print CONF "\tnat_traversal=yes\n";
-    print CONF "\toverridemtu=$lvpnsettings{'VPN_OVERRIDE_MTU'}\n" if ($lvpnsettings{'VPN_OVERRIDE_MTU'} ne '');
-    print CONF "\tvirtual_private=%v4:10.0.0.0/8,%v4:172.16.0.0/12,%v4:192.168.0.0/16";
-    print CONF ",%v4:!$green_cidr";
-    if (length($netsettings{'ORANGE_DEV'}) > 2) {
-       print CONF ",%v4:!$orange_cidr";
-    }
-    if (length($netsettings{'BLUE_DEV'}) > 2) {
-       print CONF ",%v4:!$blue_cidr";
-    }
-    foreach my $key (keys %lconfighash) {
-       if ($lconfighash{$key}[3] eq 'net') {
-           print CONF ",%v4:!$lconfighash{$key}[11]";
-       }
-    }
-    print CONF "\n\n";
+    print CONF "\tcharondebug=\"dmn 0, mgr 0, ike 0, chd 0, job 0, cfg 0, knl 0, net 0, asn 0, enc 0, lib 0, esp 0, tls 0, tnc 0, imc 0, imv 0, pts 0\"\n";
+    print CONF "\n";
     print CONF "conn %default\n";
-    print CONF "\tkeyingtries=0\n";
-    #strongswan doesn't know this
-    #print CONF "\tdisablearrivalcheck=no\n";
+    print CONF "\tkeyingtries=%forever\n";
     print CONF "\n";
 
     # Add user includes to config file
@@ -329,7 +282,6 @@ sub writeipsecfiles {
 
        print CONF "conn $lconfighash{$key}[1]\n";
        print CONF "\tleft=$localside\n";
-       print CONF "\tleftnexthop=%defaultroute\n" if ($lconfighash{$key}[26] eq 'RED' && $lvpnsettings{'VPN_IP'} ne '%defaultroute');
        my $cidr_net=&General::ipcidr($lconfighash{$key}[8]);
        print CONF "\tleftsubnet=$cidr_net\n";
        print CONF "\tleftfirewall=yes\n";
@@ -339,7 +291,6 @@ sub writeipsecfiles {
        if ($lconfighash{$key}[3] eq 'net') {
            my $cidr_net=&General::ipcidr($lconfighash{$key}[11]);
            print CONF "\trightsubnet=$cidr_net\n";
-           print CONF "\trightnexthop=%defaultroute\n";
        } elsif ($lconfighash{$key}[10] eq '%any' && $lconfighash{$key}[14] eq 'on') { #vhost allowed for roadwarriors?
            print CONF "\trightsubnet=vhost:%no,%priv\n";
        }
@@ -354,6 +305,9 @@ sub writeipsecfiles {
        print CONF "\tleftid=\"$lconfighash{$key}[7]\"\n" if ($lconfighash{$key}[7]);
        print CONF "\trightid=\"$lconfighash{$key}[9]\"\n" if ($lconfighash{$key}[9]);
 
+       # Is PFS enabled?
+       my $pfs = $lconfighash{$key}[28] eq 'on' ? 'on' : 'off';
+
        # Algorithms
        if ($lconfighash{$key}[18] && $lconfighash{$key}[19] && $lconfighash{$key}[20]) {
            print CONF "\tike=";
@@ -379,11 +333,25 @@ sub writeipsecfiles {
            print CONF "\tesp=";
            my @encs   = split('\|', $lconfighash{$key}[21]);
            my @ints   = split('\|', $lconfighash{$key}[22]);
+           my @groups = split('\|', $lconfighash{$key}[20]);
            my $comma = 0;
            foreach my $i (@encs) {
                foreach my $j (@ints) {
-                   if ($comma != 0) { print CONF ","; } else { $comma = 1; }
-                   print CONF "$i-$j";
+                       my $modp = "";
+                       if ($pfs eq "on") {
+                               foreach my $k (@groups) {
+                                   if ($comma != 0) { print CONF ","; } else { $comma = 1; }
+                                   if ($pfs eq "on") {
+                                       $modp = "-modp$k";
+                                   } else {
+                                       $modp = "";
+                                   }
+                                   print CONF "$i-$j$modp";
+                               }
+                       } else {
+                               if ($comma != 0) { print CONF ","; } else { $comma = 1; }
+                               print CONF "$i-$j";
+                       }
                }
            }
            if ($lconfighash{$key}[24] eq 'on') {       #only proposed algorythms?
@@ -392,9 +360,6 @@ sub writeipsecfiles {
                print CONF "\n";
            }
        }
-       if ($lconfighash{$key}[23]) {
-           print CONF "\tpfsgroup=$lconfighash{$key}[23]\n";
-       }
 
        # IKE V1 or V2
        if (! $lconfighash{$key}[29]) {
@@ -414,9 +379,6 @@ sub writeipsecfiles {
        print CONF "\tdpdtimeout=120\n";
        print CONF "\tdpdaction=$lconfighash{$key}[27]\n";
 
-       # Disable pfs ?
-       print CONF "\tpfs=". ($lconfighash{$key}[28] eq 'on' ? "yes\n" : "no\n");
-
        # Build Authentication details:  LEFTid RIGHTid : PSK psk
        my $psk_line;
        if ($lconfighash{$key}[4] eq 'psk') {
@@ -450,6 +412,12 @@ sub writeipsecfiles {
     close(SECRETS);
 }
 
+# Hook to regenerate the configuration files.
+if ($ENV{"REMOTE_ADDR"} eq "") {
+       writeipsecfiles;
+       exit(0);
+}
+
 ###
 ### Save main settings
 ###
@@ -466,29 +434,14 @@ if ($cgiparams{'ACTION'} eq $Lang::tr{'save'} && $cgiparams{'TYPE'} eq '' && $cg
        goto SAVE_ERROR;
     }
 
-    unless ($cgiparams{'VPN_OVERRIDE_MTU'} =~ /^(|[0-9]{1,5})$/ ) { #allow 0-99999
-       $errormessage = $Lang::tr{'vpn mtu invalid'};
-       goto SAVE_ERROR;
-    }
-
-    unless ($cgiparams{'VPN_WATCH'} =~ /^(|off|on)$/ ) {
-       $errormessage = $Lang::tr{'invalid input'};
-       goto SAVE_ERROR;
-    }
-
     if ( $cgiparams{'RW_NET'} ne '' and !&General::validipandmask($cgiparams{'RW_NET'}) ) {
        $errormessage = $Lang::tr{'urlfilter invalid ip or mask error'};
        goto SAVE_ERROR;
     }
 
-    map ($vpnsettings{$_} = $cgiparams{$_},
-       ('ENABLED','DBG_CRYPT','DBG_PARSING','DBG_EMITTING','DBG_CONTROL',
-        'DBG_DNS'));
-
+    $vpnsettings{'ENABLED'} = $cgiparams{'ENABLED'};
     $vpnsettings{'VPN_IP'} = $cgiparams{'VPN_IP'};
     $vpnsettings{'VPN_DELAYED_START'} = $cgiparams{'VPN_DELAYED_START'};
-    $vpnsettings{'VPN_OVERRIDE_MTU'} = $cgiparams{'VPN_OVERRIDE_MTU'};
-    $vpnsettings{'VPN_WATCH'} = $cgiparams{'VPN_WATCH'};
     $vpnsettings{'RW_NET'} = $cgiparams{'RW_NET'};
     &General::writehash("${General::swroot}/vpn/settings", \%vpnsettings);
     &writeipsecfiles();
@@ -1298,7 +1251,6 @@ END
        $cgiparams{'REMOTE'}            = $confighash{$cgiparams{'KEY'}}[10];
        $cgiparams{'REMOTE_SUBNET'}     = $confighash{$cgiparams{'KEY'}}[11];
        $cgiparams{'REMARK'}            = $confighash{$cgiparams{'KEY'}}[25];
-       $cgiparams{'INTERFACE'}         = $confighash{$cgiparams{'KEY'}}[26];
        $cgiparams{'DPD_ACTION'}        = $confighash{$cgiparams{'KEY'}}[27];
        $cgiparams{'IKE_VERSION'}       = $confighash{$cgiparams{'KEY'}}[29];
        $cgiparams{'IKE_ENCRYPTION'}    = $confighash{$cgiparams{'KEY'}}[18];
@@ -1809,7 +1761,7 @@ END
        $confighash{$key}[9] = $cgiparams{'REMOTE_ID'};
        $confighash{$key}[10] = $cgiparams{'REMOTE'};
        $confighash{$key}[25] = $cgiparams{'REMARK'};
-       $confighash{$key}[26] = $cgiparams{'INTERFACE'};
+       $confighash{$key}[26] = ""; # Formerly INTERFACE
        $confighash{$key}[27] = $cgiparams{'DPD_ACTION'};
        $confighash{$key}[29] = $cgiparams{'IKE_VERSION'};
 
@@ -1867,28 +1819,25 @@ END
            $cgiparams{'DPD_ACTION'} = 'restart';
        }
 
-       # Default IKE Version to V1
-       if (! $cgiparams{'IKE_VERSION'}) {
-           $cgiparams{'IKE_VERSION'} = 'ikev1';
+       # Default IKE Version to v2
+       if (!$cgiparams{'IKE_VERSION'}) {
+           $cgiparams{'IKE_VERSION'} = 'ikev2';
        }
 
-       # Default is yes for 'pfs'
-       $cgiparams{'PFS'}     = 'on';
-       
        # ID are empty
        $cgiparams{'LOCAL_ID'}  = '';
        $cgiparams{'REMOTE_ID'} = '';
 
        #use default advanced value
-       $cgiparams{'IKE_ENCRYPTION'} = 'aes128|3des';   #[18];
-       $cgiparams{'IKE_INTEGRITY'}  = 'sha|md5';       #[19];
-       $cgiparams{'IKE_GROUPTYPE'}  = '1536|1024';     #[20];
+       $cgiparams{'IKE_ENCRYPTION'} = 'aes256|aes192|aes128|3des';     #[18];
+       $cgiparams{'IKE_INTEGRITY'}  = 'sha2_256|sha|md5';      #[19];
+       $cgiparams{'IKE_GROUPTYPE'}  = '8192|6144|4096|3072|2048|1536|1024';            #[20];
        $cgiparams{'IKE_LIFETIME'}   = '1';             #[16];
-       $cgiparams{'ESP_ENCRYPTION'} = 'aes128|3des';   #[21];
-       $cgiparams{'ESP_INTEGRITY'}  = 'sha1|md5';      #[22];
+       $cgiparams{'ESP_ENCRYPTION'} = 'aes256|aes192|aes128|3des';     #[21];
+       $cgiparams{'ESP_INTEGRITY'}  = 'sha2_256|sha1|md5';     #[22];
        $cgiparams{'ESP_GROUPTYPE'}  = '';              #[23];
        $cgiparams{'ESP_KEYLIFE'}    = '8';             #[17];
-       $cgiparams{'COMPRESSION'}    = 'off';           #[13];
+       $cgiparams{'COMPRESSION'}    = 'on';            #[13];
        $cgiparams{'ONLY_PROPOSED'}  = 'off';           #[24];
        $cgiparams{'PFS'}            = 'on';            #[28];
        $cgiparams{'VHOST'}          = 'on';            #[14];
@@ -1911,12 +1860,6 @@ END
     $checked{'AUTH'}{'auth-dn'} = '';
     $checked{'AUTH'}{$cgiparams{'AUTH'}} = "checked='checked'";
 
-    $selected{'INTERFACE'}{'RED'} = '';
-    $selected{'INTERFACE'}{'ORANGE'} = '';
-    $selected{'INTERFACE'}{'GREEN'} = '';
-    $selected{'INTERFACE'}{'BLUE'} = '';
-    $selected{'INTERFACE'}{$cgiparams{'INTERFACE'}} = "selected='selected'";
-
     $selected{'DPD_ACTION'}{'clear'} = '';
     $selected{'DPD_ACTION'}{'hold'} = '';
     $selected{'DPD_ACTION'}{'restart'} = '';
@@ -1983,22 +1926,24 @@ END
        $blob = "<img src='/blob.gif' alt='*' />";
     };
 
-    print "<tr><td>$Lang::tr{'host ip'}:</td>";
-    print "<td><select name='INTERFACE'>";
-    print "<option value='RED' $selected{'INTERFACE'}{'RED'}>RED ($vpnsettings{'VPN_IP'})</option>";
-    print "<option value='GREEN' $selected{'INTERFACE'}{'GREEN'}>GREEN ($netsettings{'GREEN_ADDRESS'})</option>";
-    print "<option value='BLUE' $selected{'INTERFACE'}{'BLUE'}>BLUE ($netsettings{'BLUE_ADDRESS'})</option>" if ($netsettings{'BLUE_DEV'} ne '');
-    print "<option value='ORANGE' $selected{'INTERFACE'}{'ORANGE'}>ORANGE ($netsettings{'ORANGE_ADDRESS'})</option>" if ($netsettings{'ORANGE_DEV'} ne '');
-    print "</select></td>";
     print <<END
+       <tr>
            <td class='boldbase'>$Lang::tr{'remote host/ip'}:&nbsp;$blob</td>
-           <td><input type='text' name='REMOTE' value='$cgiparams{'REMOTE'}' size='30' /></td>
-       </tr><tr>
-           <td class='boldbase' nowrap='nowrap'>$Lang::tr{'local subnet'}</td>
-           <td><input type='text' name='LOCAL_SUBNET' value='$cgiparams{'LOCAL_SUBNET'}' size='30' /></td>
+           <td>
+               <input type='text' name='REMOTE' value='$cgiparams{'REMOTE'}' size='30' />
+           </td>
            <td class='boldbase' nowrap='nowrap'>$Lang::tr{'remote subnet'}</td>
-           <td><input $disabled type='text' name='REMOTE_SUBNET' value='$cgiparams{'REMOTE_SUBNET'}' size='30' /></td>
-       </tr><tr>
+           <td>
+               <input $disabled type='text' name='REMOTE_SUBNET' value='$cgiparams{'REMOTE_SUBNET'}' size='30' />
+           </td>
+       </tr>
+       <tr>
+           <td class='boldbase' nowrap='nowrap'>$Lang::tr{'local subnet'}</td>
+           <td colspan='3'>
+               <input type='text' name='LOCAL_SUBNET' value='$cgiparams{'LOCAL_SUBNET'}' size='30' />
+           </td>
+       </tr>
+       <tr>
            <td class='boldbase'>$Lang::tr{'vpn local id'}:<br />($Lang::tr{'eg'} <tt>&#64;xy.example.com</tt>)</td>
            <td><input type='text' name='LOCAL_ID' value='$cgiparams{'LOCAL_ID'}' /></td>
            <td class='boldbase'>$Lang::tr{'vpn remote id'}:</td>
@@ -2007,22 +1952,18 @@ END
        </tr><td><br /></td><tr>
            <td>$Lang::tr{'vpn keyexchange'}:</td>
            <td><select name='IKE_VERSION'>
-               <option value='ikev1' $selected{'IKE_VERSION'}{'ikev1'}>IKEv1</option>
                <option value='ikev2' $selected{'IKE_VERSION'}{'ikev2'}>IKEv2</option>
-               </select></a>
+               <option value='ikev1' $selected{'IKE_VERSION'}{'ikev1'}>IKEv1</option>
+               </select>
            </td>
            <td>$Lang::tr{'dpd action'}:</td>
            <td><select name='DPD_ACTION'>
                <option value='clear' $selected{'DPD_ACTION'}{'clear'}>clear</option>
                <option value='hold' $selected{'DPD_ACTION'}{'hold'}>hold</option>
                <option value='restart' $selected{'DPD_ACTION'}{'restart'}>restart</option>
-               </select>&nbsp; <a href='http://www.openswan.com/docs/local/README.DPD'>?</a>
+               </select>
            </td>
        </tr><tr>
-<!--http://www.openswan.com/docs/local/README.DPD
-    http://bugs.xelerance.com/view.php?id=156
-    restart = clear + reinitiate connection
--->
            <td class='boldbase'>$Lang::tr{'remark title'}&nbsp;<img src='/blob.gif' alt='*' /></td>
            <td colspan='3'><input type='text' name='REMARK' value='$cgiparams{'REMARK'}' size='55' maxlength='50' /></td>
        </tr>
@@ -2164,7 +2105,7 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) ||
            goto ADVANCED_ERROR;
        }
        foreach my $val (@temp) {
-           if ($val !~ /^(sha2_512|sha2_256|sha|md5)$/) {
+           if ($val !~ /^(sha2_512|sha2_384|sha2_256|sha|md5|aesxcbc)$/) {
                $errormessage = $Lang::tr{'invalid input'};
                goto ADVANCED_ERROR;
            }
@@ -2194,7 +2135,7 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) ||
            goto ADVANCED_ERROR;
        }
        foreach my $val (@temp) {
-           if ($val !~ /^(aes256|aes128|3des)$/) {
+           if ($val !~ /^(aes256|aes192|aes128|3des)$/) {
                $errormessage = $Lang::tr{'invalid input'};
                goto ADVANCED_ERROR;
            }
@@ -2205,13 +2146,13 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) ||
            goto ADVANCED_ERROR;
        }
        foreach my $val (@temp) {
-           if ($val !~ /^(sha2_512|sha2_256|sha1|md5)$/) {
+           if ($val !~ /^(sha2_512|sha2_384|sha2_256|sha1|md5|aesxcbc)$/) {
                $errormessage = $Lang::tr{'invalid input'};
                goto ADVANCED_ERROR;
            }
        }
        if ($cgiparams{'ESP_GROUPTYPE'} ne '' &&
-           $cgiparams{'ESP_GROUPTYPE'} !~  /^modp(1024|1536|2048|3072|4096)$/) {
+           $cgiparams{'ESP_GROUPTYPE'} !~  /^modp(1024|1536|2048|3072|4096|6144|8192)$/) {
            $errormessage = $Lang::tr{'invalid input'};
            goto ADVANCED_ERROR;
        }
@@ -2276,14 +2217,17 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) ||
 
     ADVANCED_ERROR:
     $checked{'IKE_ENCRYPTION'}{'aes256'} = '';
+    $checked{'IKE_ENCRYPTION'}{'aes192'} = '';
     $checked{'IKE_ENCRYPTION'}{'aes128'} = '';
     $checked{'IKE_ENCRYPTION'}{'3des'} = '';
     my @temp = split('\|', $cgiparams{'IKE_ENCRYPTION'});
     foreach my $key (@temp) {$checked{'IKE_ENCRYPTION'}{$key} = "selected='selected'"; }
     $checked{'IKE_INTEGRITY'}{'sha2_512'} = '';
+    $checked{'IKE_INTEGRITY'}{'sha2_384'} = '';
     $checked{'IKE_INTEGRITY'}{'sha2_256'} = '';
     $checked{'IKE_INTEGRITY'}{'sha'} = '';
     $checked{'IKE_INTEGRITY'}{'md5'} = '';
+    $checked{'IKE_INTEGRITY'}{'aesxcbc'} = '';
     @temp = split('\|', $cgiparams{'IKE_INTEGRITY'});
     foreach my $key (@temp) {$checked{'IKE_INTEGRITY'}{$key} = "selected='selected'"; }
     $checked{'IKE_GROUPTYPE'}{'768'} = '';
@@ -2300,16 +2244,18 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) ||
     # 768 is not supported by strongswan
     $checked{'IKE_GROUPTYPE'}{'768'} = '';
 
-
     $checked{'ESP_ENCRYPTION'}{'aes256'} = '';
+    $checked{'ESP_ENCRYPTION'}{'aes192'} = '';
     $checked{'ESP_ENCRYPTION'}{'aes128'} = '';
     $checked{'ESP_ENCRYPTION'}{'3des'} = '';
     @temp = split('\|', $cgiparams{'ESP_ENCRYPTION'});
     foreach my $key (@temp) {$checked{'ESP_ENCRYPTION'}{$key} = "selected='selected'"; }
     $checked{'ESP_INTEGRITY'}{'sha2_512'} = '';
+    $checked{'ESP_INTEGRITY'}{'sha2_384'} = '';
     $checked{'ESP_INTEGRITY'}{'sha2_256'} = '';
     $checked{'ESP_INTEGRITY'}{'sha1'} = '';
     $checked{'ESP_INTEGRITY'}{'md5'} = '';
+    $checked{'ESP_INTEGRITY'}{'aesxcbc'} = '';
     @temp = split('\|', $cgiparams{'ESP_INTEGRITY'});
     foreach my $key (@temp) {$checked{'ESP_INTEGRITY'}{$key} = "selected='selected'"; }
     $checked{'ESP_GROUPTYPE'}{$cgiparams{'ESP_GROUPTYPE'}} = "selected='selected'";
@@ -2347,14 +2293,19 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) ||
        <tr><td class='boldbase' align='right' valign='top'>$Lang::tr{'ike encryption'}</td><td class='boldbase' valign='top'>
                <select name='IKE_ENCRYPTION' multiple='multiple' size='4'>
                <option value='aes256' $checked{'IKE_ENCRYPTION'}{'aes256'}>AES (256 bit)</option>
+               <option value='aes192' $checked{'IKE_ENCRYPTION'}{'aes192'}>AES (192 bit)</option>
                <option value='aes128' $checked{'IKE_ENCRYPTION'}{'aes128'}>AES (128 bit)</option>
                <option value='3des' $checked{'IKE_ENCRYPTION'}{'3des'}>3DES</option>
                </select></td>
 
            <td class='boldbase' align='right' valign='top'>$Lang::tr{'ike integrity'}</td><td class='boldbase' valign='top'>
                <select name='IKE_INTEGRITY' multiple='multiple' size='4'>
-               <option value='sha' $checked{'IKE_INTEGRITY'}{'sha'}>SHA</option>
+               <option value='sha2_512' $checked{'IKE_INTEGRITY'}{'sha2_512'}>SHA2 512 bit</option>
+               <option value='sha2_384' $checked{'IKE_INTEGRITY'}{'sha2_384'}>SHA2 384 bit</option>
+               <option value='sha2_256' $checked{'IKE_INTEGRITY'}{'sha2_256'}>SHA2 256 bit</option>
+               <option value='sha' $checked{'IKE_INTEGRITY'}{'sha'}>SHA1</option>
                <option value='md5' $checked{'IKE_INTEGRITY'}{'md5'}>MD5</option>
+               <option value='aesxcbc' $checked{'IKE_INTEGRITY'}{'aesxcbc'}>AES XCBC</option>
                </select></td>
        
            <td class='boldbase' align='right' valign='top'>$Lang::tr{'ike grouptype'}</td><td class='boldbase' valign='top'>
@@ -2377,13 +2328,19 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) ||
            <td class='boldbase' align='right' valign='top'>$Lang::tr{'esp encryption'}</td><td class='boldbase' valign='top'>
                <select name='ESP_ENCRYPTION' multiple='multiple' size='4'>
                <option value='aes256' $checked{'ESP_ENCRYPTION'}{'aes256'}>AES (256 bit)</option>
+               <option value='aes192' $checked{'ESP_ENCRYPTION'}{'aes192'}>AES (192 bit)</option>
                <option value='aes128' $checked{'ESP_ENCRYPTION'}{'aes128'}>AES (128 bit)</option>
                <option value='3des' $checked{'ESP_ENCRYPTION'}{'3des'}>3DES</option>
 
            <td class='boldbase' align='right' valign='top'>$Lang::tr{'esp integrity'}</td><td class='boldbase' valign='top'>
                <select name='ESP_INTEGRITY' multiple='multiple' size='4'>
+               <option value='sha2_512' $checked{'ESP_INTEGRITY'}{'sha2_512'}>SHA2 512 bit</option>
+               <option value='sha2_384' $checked{'ESP_INTEGRITY'}{'sha2_384'}>SHA2 384 bit</option>
+               <option value='sha2_256' $checked{'ESP_INTEGRITY'}{'sha2_256'}>SHA2 256 bit</option>
                <option value='sha1' $checked{'ESP_INTEGRITY'}{'sha1'}>SHA1</option>
-               <option value='md5' $checked{'ESP_INTEGRITY'}{'md5'}>MD5</option></select></td>
+               <option value='md5' $checked{'ESP_INTEGRITY'}{'md5'}>MD5</option>
+               <option value='aesxcbc' $checked{'ESP_INTEGRITY'}{'aesxcbc'}>AES XCBC</option>
+               </select></td>
 
            <td class='boldbase' align='right' valign='top'>$Lang::tr{'esp grouptype'}</td><td class='boldbase' valign='top'>
                <select name='ESP_GROUPTYPE'>
@@ -2455,11 +2412,7 @@ EOF
     $cgiparams{'VPN_IP'} ='%defaultroute' if ($cgiparams{'VPN_IP'} eq '');
     
     $cgiparams{'VPN_DELAYED_START'} = 0 if (! defined ($cgiparams{'VPN_DELAYED_START'}));
-    $checked{'VPN_WATCH'} = $cgiparams{'VPN_WATCH'} eq 'on' ? "checked='checked'" : '' ;
-    map ($checked{$_} = $cgiparams{$_} eq 'on' ? "checked='checked'" : '',
-       ('ENABLED','DBG_CRYPT','DBG_PARSING','DBG_EMITTING','DBG_CONTROL',
-        'DBG_DNS'));
-
+    $checked{'ENABLED'} = $cgiparams{'ENABLED'} eq 'on' ? "checked='checked'" : '';
 
     &Header::showhttpheaders();
     &Header::openpage($Lang::tr{'vpn configuration main'}, 1, '');
@@ -2481,13 +2434,6 @@ EOF
        <td width='20%'><input type='text' name='VPN_IP' value='$cgiparams{'VPN_IP'}' /></td>
        <td width='20%' class='base'>$Lang::tr{'enabled'}<input type='checkbox' name='ENABLED' $checked{'ENABLED'} /></td>
     </tr>
-END
-    ;
-    print <<END
-    <tr>
-       <td class='base' nowrap='nowrap'>$Lang::tr{'override mtu'}:&nbsp;<img src='/blob.gif' alt='*' /></td>
-       <td ><input type='text' name='VPN_OVERRIDE_MTU' value='$cgiparams{'VPN_OVERRIDE_MTU'}' /></td>
-    </tr>
 END
     ;
 print <<END
@@ -2500,13 +2446,6 @@ print <<END
        <td ><input type='text' name='RW_NET' value='$cgiparams{'RW_NET'}' /></td>
     </tr>
  </table>
-<p>$Lang::tr{'vpn watch'}:<input type='checkbox' name='VPN_WATCH' $checked{'VPN_WATCH'} /></p>
-<p>PLUTO DEBUG&nbsp;=
-crypt:<input type='checkbox' name='DBG_CRYPT' $checked{'DBG_CRYPT'} />,&nbsp;
-parsing:<input type='checkbox' name='DBG_PARSING' $checked{'DBG_PARSING'} />,&nbsp;
-emitting:<input type='checkbox' name='DBG_EMITTING' $checked{'DBG_EMITTING'} />,&nbsp;
-control:<input type='checkbox' name='DBG_CONTROL' $checked{'DBG_CONTROL'} />,&nbsp;
-dns:<input type='checkbox' name='DBG_DNS' $checked{'DBG_DNS'} />&nbsp;
 <hr />
 <table width='100%'>
 <tr>
index 0bb42ae312440c33525a169b2ef415f43cf731aa..99c77e32d9632d7ccd0404c23f302f6742dd0494 100644 (file)
@@ -2,7 +2,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2005-2011  IPFire Team  <info@ipfire.org>                     #
+# Copyright (C) 2005-2012  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        #
@@ -123,7 +123,7 @@ if ( $wlanapsettings{'ACTION'} eq "$Lang::tr{'wlanap del interface'}" ){
 
 if ( $wlanapsettings{'ACTION'} eq "$Lang::tr{'save'}" ){
        # verify WPA Passphrase, must be 8 .. 63 characters - only wiht enabled enc
-       if (($wlanapsettings{'ENC'} eq "wpa1") || ($wlanapsettings{'ENC'} eq "wpa2")){
+       if (($wlanapsettings{'ENC'} eq "wpa1") || ($wlanapsettings{'ENC'} eq "wpa2") || ($wlanapsettings{'ENC'} eq "wpa1+2")){
                if ( (length($wlanapsettings{'PWD'}) < 8) || (length($wlanapsettings{'PWD'}) > 63)){
                        $errormessage .= "$Lang::tr{'wlanap invalid wpa'}<br />";
                }
@@ -232,6 +232,11 @@ END
        }
 }
 
+# Change old "n" to "gn"
+if ( $wlanapsettings{'HW_MODE'} eq 'n' ) {
+       $wlanapsettings{'HW_MODE'}='gn';
+}
+
 $checked{'HIDESSID'}{'off'} = '';
 $checked{'HIDESSID'}{'on'} = '';
 $checked{'HIDESSID'}{$wlanapsettings{'HIDESSID'}} = "checked='checked'";
@@ -350,7 +355,8 @@ print <<END
                <option value='a' $selected{'HW_MODE'}{'a'}>802.11a</option>
                <option value='b' $selected{'HW_MODE'}{'b'}>802.11b</option>
                <option value='g' $selected{'HW_MODE'}{'g'}>802.11g</option>
-               <option value='n' $selected{'HW_MODE'}{'n'}>802.11n</option>
+               <option value='an' $selected{'HW_MODE'}{'an'}>802.11an</option>
+               <option value='gn' $selected{'HW_MODE'}{'gn'}>802.11gn</option>
        </select>
 </td></tr>
 
@@ -359,6 +365,7 @@ print <<END
                <option value='none' $selected{'ENC'}{'none'}>$Lang::tr{'wlanap none'}</option>
                <option value='wpa1' $selected{'ENC'}{'wpa1'}>WPA1</option>
                <option value='wpa2' $selected{'ENC'}{'wpa2'}>WPA2</option>
+               <option value='wpa1+2' $selected{'ENC'}{'wpa1+2'}>WPA1+2</option>
        </select>
 </td></tr>
 <tr><td width='25%' class='base'>$Lang::tr{'wlanap channel'}:&nbsp;</td><td class='base' colspan='3'>
@@ -478,7 +485,16 @@ driver=$wlanapsettings{'DRIVER_HOSTAPD'}
 channel=$wlanapsettings{'CHANNEL'}
 END
 ;
- if ( $wlanapsettings{'HW_MODE'} eq 'n' ){
+ if ( $wlanapsettings{'HW_MODE'} eq 'an' ){
+       print CONFIGFILE <<END
+hw_mode=a
+ieee80211n=1
+wmm_enabled=1
+ht_capab=$wlanapsettings{'HTCAPS'}
+END
+;
+
+ }elsif ( $wlanapsettings{'HW_MODE'} eq 'gn' ){
        print CONFIGFILE <<END
 hw_mode=g
 ieee80211n=1
@@ -529,7 +545,7 @@ END
 wpa=1
 wpa_passphrase=$wlanapsettings{'PWD'}
 wpa_key_mgmt=WPA-PSK
-wpa_pairwise=CCMP TKIP
+wpa_pairwise=TKIP
 END
 ;
  }elsif ( $wlanapsettings{'ENC'} eq 'wpa2'){
@@ -539,7 +555,18 @@ END
 wpa=2
 wpa_passphrase=$wlanapsettings{'PWD'}
 wpa_key_mgmt=WPA-PSK
-wpa_pairwise=CCMP TKIP
+rsn_pairwise=CCMP
+END
+;
+ } elsif ( $wlanapsettings{'ENC'} eq 'wpa1+2'){
+       print CONFIGFILE <<END
+######################### wpa hostapd configuration ############################
+#
+wpa=3
+wpa_passphrase=$wlanapsettings{'PWD'}
+wpa_key_mgmt=WPA-PSK
+wpa_pairwise=TKIP
+rsn_pairwise=CCMP
 END
 ;
  }
index 2bc07547340197df985c595905db7897a1ae192c..b9c0fb68aa816f26aac6f6ad6cbe02a8ceed787e 100644 (file)
@@ -96,6 +96,8 @@ endif
 #
 ifeq "$(ROOT)" ""
 define POSTBUILD
+       @echo "Updating linker cache..."
+       @type -p ldconfig >/dev/null && ldconfig || :
        @echo "Install done; saving file list to $(TARGET) ..."
        @$(FIND_FILES) > $(DIR_SRC)/lsalrnew
        @diff $(DIR_SRC)/lsalr $(DIR_SRC)/lsalrnew | grep '^> ' | sed 's/^> //' > $(TARGET)_diff
@@ -189,7 +191,7 @@ define PAK
        tar xf /install/packages/package/files.tmp -C /install/packages/package/tmp/ \
                -p --numeric-owner
        rm -f /install/packages/package/files.tmp
-       cd /install/packages/package/tmp/ && tar -c -p --numeric-owner -f /install/packages/package/files *             
+       cd /install/packages/package/tmp/ && tar -c -p --numeric-owner -J -f /install/packages/package/files.tar.xz *           
        rm -r /install/packages/package/tmp
        -cat /install/packages/package/ROOTFILES | grep -v "#" > /install/packages/package/ROOTFILES.tmp
        mv /install/packages/package/ROOTFILES.tmp /install/packages/package/ROOTFILES
diff --git a/lfs/acpid b/lfs/acpid
new file mode 100644 (file)
index 0000000..ff85e1c
--- /dev/null
+++ b/lfs/acpid
@@ -0,0 +1,84 @@
+###############################################################################
+#                                                                             #
+# 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.0.16
+
+THISAPP    = acpid-$(VER)
+DL_FILE    = $(THISAPP).tar.xz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+SUP_ARCH   = i586
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = d59fc02c9c34f0d5c137495302e2c074
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# 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) && ./configure --prefix=/usr
+       cd $(DIR_APP) && make $(MAKETUNING) OPT="$(CFLAGS)"
+       cd $(DIR_APP) && make install
+
+       # Install configuration.
+       mkdir -pv /etc/acpi/{actions,events}
+       cp -vf $(DIR_SRC)/config/acpid/power /etc/acpi/events/
+       cp -vf $(DIR_SRC)/config/acpid/power.sh /etc/acpi/actions/
+       chmod 755 /etc/acpi/actions/power.sh
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
index dadaa145e7ee0c4fffb8ad621fa48a24123b7186..9189655a828998005dfdcfef55559a0437f2cf97 100644 (file)
--- a/lfs/alsa
+++ b/lfs/alsa
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2011  IPFire Team <info@ipfire.org>                      #
+# Copyright (C) 2007-2012  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        = 1.0.24.1
-UVER       = 1.0.24.2
-FVER       = 1.0.24.1
-DVER       = 1.0.24
+VER        = 1.0.26
+UVER       = 1.0.26
+FVER       = 1.0.25
 
 VERSUFIX   = ipfire$(KCFG)
 
@@ -37,32 +36,25 @@ DL_FILE    = $(THISAPP).tar.bz2
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 PROG       = alsa
-PAK_VER    = 9
+PAK_VER    = 11
 
 DEPS       = ""
 
-ifeq "$(KMOD)" "1"
-       TARGET     = $(DIR_INFO)/$(THISAPP)-kmod-$(KVER)-$(VERSUFIX)
-else
-       TARGET     = $(DIR_INFO)/$(THISAPP)
-endif
+TARGET     = $(DIR_INFO)/$(THISAPP)
 
 ###############################################################################
 # Top-level Rules
 ###############################################################################
 
-objects = $(DL_FILE) alsa-utils-$(UVER).tar.bz2 alsa-firmware-$(FVER).tar.bz2 \
-               alsa-driver-$(DVER).tar.bz2
+objects = $(DL_FILE) alsa-utils-$(UVER).tar.bz2 alsa-firmware-$(FVER).tar.bz2
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 alsa-utils-$(UVER).tar.bz2 = $(DL_FROM)/alsa-utils-$(UVER).tar.bz2
 alsa-firmware-$(FVER).tar.bz2 = $(DL_FROM)/alsa-firmware-$(FVER).tar.bz2
-alsa-driver-$(DVER).tar.bz2 = $(DL_FROM)/alsa-driver-$(DVER).tar.bz2
 
-$(DL_FILE)_MD5 = 7cc05f25e1d5b65da8fb3fdcd540f226
-alsa-utils-$(UVER).tar.bz2_MD5 = 8238cd57cb301d1c36bcf0ecb59ce6b2
-alsa-firmware-$(FVER).tar.bz2_MD5 = d37434dfcfececd8581d2f0bbe2fcf1b
-alsa-driver-$(DVER).tar.bz2_MD5 = a4ffd80745ce5098dfd48d83c2769e0e
+$(DL_FILE)_MD5 = 2dfa35d28471d721e592b616beedf965
+alsa-utils-$(UVER).tar.bz2_MD5 = 4dcf1017fafc91603af96705c073eca9
+alsa-firmware-$(FVER).tar.bz2_MD5 = f1939da45b162c83a726c54a470ef139
 
 install : $(TARGET)
 
@@ -95,16 +87,8 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_SRC)/alsa*
-ifeq "$(KMOD)" "1"
-       cd $(DIR_SRC) && tar xfj $(DIR_DL)/alsa-driver-$(DVER).tar.bz2
-       cd $(DIR_SRC)/alsa-driver-$(DVER) && sed -i -e "s| soc/ | |g" Makefile
-       cd $(DIR_SRC)/alsa-driver-$(DVER) && sed -i -e "s| soc||g" Makefile
-       cd $(DIR_SRC)/alsa-driver-$(DVER) && ./configure --with-kernel=/usr/src/linux
-       cd $(DIR_SRC)/alsa-driver-$(DVER) && make $(MAKETUNING) $(EXTRA_MAKE)
-       cd $(DIR_SRC)/alsa-driver-$(DVER) && make install
-else
        cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
-       cd $(DIR_APP) && ./configure --enable-static
+       cd $(DIR_APP) && ./configure
        cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE)
        cd $(DIR_APP) && make install
        cd $(DIR_SRC) && tar xfj $(DIR_DL)/alsa-utils-$(UVER).tar.bz2
@@ -115,6 +99,5 @@ else
        cd $(DIR_SRC)/alsa-firmware-$(FVER) && ./configure
        cd $(DIR_SRC)/alsa-firmware-$(FVER) && make $(MAKETUNING) $(EXTRA_MAKE)
        cd $(DIR_SRC)/alsa-firmware-$(FVER) && make install
-endif
        @rm -rf $(DIR_SRC)/alsa*
        @$(POSTBUILD)
index db14e141786ccbe581659d1e8cf4ae38cba4a8a3..4e9137b111ed9a2fb74a4e551ac2059095810dcd 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2009  Michael Tremer & Christian Schmidt                      #
+# Copyright (C) 2007-2012  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        #
index 0ee15c1c854e2779d3417e5f3bfecee68370734b..9c58e20cc623973a3008d35a961b79b6d338d102 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007  Michael Tremer & Christian Schmidt                      #
+# Copyright (C) 2007-2012  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        #
 
 include Config
 
-VER        = 2.59
+VER        = 2.69
 
 THISAPP    = autoconf-$(VER)
-DL_FILE    = $(THISAPP).tar.bz2
+DL_FILE    = $(THISAPP).tar.xz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
@@ -39,7 +39,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 1ee40f7a676b3cfdc0e3f7cd81551b5f
+$(DL_FILE)_MD5 = 50f97f4159805e374639a73e2636f22e
 
 install : $(TARGET)
 
@@ -68,7 +68,7 @@ $(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 Jxf $(DIR_DL)/$(DL_FILE)
        cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
index 699d96f1485b7fa218cdf15b8c07816dc752e3f9..9b19a1b1722c0e034f5b9243bf000a5230462aa9 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007  Michael Tremer & Christian Schmidt                      #
+# Copyright (C) 2007-2012  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        = 1.9.6
+VER        = 1.12.4
 
 THISAPP    = automake-$(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 = c11b8100bb311492d8220378fd8bf9e0
+$(DL_FILE)_MD5 = 7395a0420ecb5c9bc43e5fcf4824df36
 
 install : $(TARGET)
 
@@ -69,7 +69,7 @@ $(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 Jxf $(DIR_DL)/$(DL_FILE)
        cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
index afdb511f1373eef4b7035b22913dbebfe89ccbd9..c89ff545a99b6e1a6952f219b19abd8ffecbe4d6 100644 (file)
--- a/lfs/bash
+++ b/lfs/bash
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 3.1
+VER        = 3.2
 
 THISAPP    = bash-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -48,7 +48,7 @@ else
   EXTRA_INSTALL = 
 endif
 
-EXTRA_CONFIG += --build=$(BUILDTARGET)
+EXTRA_CONFIG += ac_cv_func_working_mktime=yes
 
 ###############################################################################
 # Top-level Rules
@@ -58,7 +58,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE)             = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5         = ef5304c4b22aaa5088972c792ed45d72
+$(DL_FILE)_MD5         = 00bfa16d58e034e3c2aa27f390390d30
 
 install : $(TARGET)
 
@@ -88,8 +88,14 @@ $(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/$(THISAPP)-fixes-8.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-login.patch
+
+       for i in $$(seq 1 51); do \
+               cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/bash/bash32-$$(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
index 2ff84746e88adc10ae3845e739d1b8639c446a84..791483f218a7a6c0881c88a4a4f8a3a157ba24f8 100644 (file)
 
 include Config
 
-VER        = 2.18
+VER        = 2.22
 
 THISAPP    = binutils-$(VER)
 DL_FILE    = $(THISAPP).tar.bz2
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 
-# XXX maybe we can remove that ugly MACHINE= by this
-#unexport MACHINE
-
 # Normal build or /tools build.
 #
 ifeq "$(ROOT)" ""
   TARGET = $(DIR_INFO)/$(THISAPP)
-  EXTRA_CONFIG = --prefix=/usr --enable-shared --disable-nls
+  EXTRA_CONFIG = \
+       --prefix=/usr \
+       --enable-shared \
+       --disable-nls
   EXTRA_MAKE = tooldir=/usr
   EXTRA_INSTALL = tooldir=/usr
 else
 ifeq "$(PASS)" "1"
+  CFLAGS := $(patsubst -march=%,,$(CFLAGS))
+  CFLAGS := $(patsubst -mfloat-abi=%,,$(CFLAGS))
   TARGET = $(DIR_INFO)/$(THISAPP)-tools1
-  EXTRA_CONFIG = --prefix=/tools --disable-nls --disable-werror --disable-gprof
-  #EXTRA_MAKE = LDFLAGS="-all-static"
+  EXTRA_CONFIG = \
+       --target=$(CROSSTARGET) \
+       --prefix=/tools \
+       --disable-nls \
+       --disable-werror
+  EXTRA_MAKE =
   EXTRA_INSTALL = 
 else
   TARGET = $(DIR_INFO)/$(THISAPP)-tools2
-  EXTRA_CONFIG = --prefix=/tools --with-lib-path=/tools/lib --disable-nls
+  EXTRA_ENV = \
+       CC="$(CROSSTARGET)-gcc -B/tools/lib/" \
+       AR="$(CROSSTARGET)-ar" \
+       RANLIB="$(CROSSTARGET)-ranlib"
+  EXTRA_CONFIG = \
+       --host=$(BUILDTARGET) \
+       --build=$(BUILDTARGET) \
+       --prefix=/tools \
+       --with-lib-path=/tools/lib \
+       --disable-nls
   EXTRA_MAKE = 
   EXTRA_INSTALL = 
 endif
 endif
 
-EXTRA_CONFIG += --build=$(BUILDTARGET)
-
 ifeq "$(MACHINE_TYPE)" "arm"
        EXTRA_CONFIG += \
                --with-abi=aapcs-linux \
@@ -71,7 +84,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 9d22ee4dafa3a194457caf4706f9cf01
+$(DL_FILE)_MD5 = ee0f10756c84979622b992a4a61ea3f5
 
 install : $(TARGET)
 
@@ -102,21 +115,17 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) $(DIR_SRC)/binutils-build && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
        @mkdir $(DIR_SRC)/binutils-build
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-configure-1.patch
-       cd $(DIR_SRC)/binutils-build && MACHINE= $(DIR_APP)/configure $(EXTRA_CONFIG)
-ifeq "$(PASS)" "1"
-       cd $(DIR_SRC)/binutils-build && make configure-host MAKEINFO=makeinfo MACHINE=
-endif
-       cd $(DIR_SRC)/binutils-build && make $(EXTRA_MAKE) $(MAKETUNING) MAKEINFO=makeinfo MACHINE=
-       cd $(DIR_SRC)/binutils-build && make $(EXTRA_INSTALL) install MAKEINFO=makeinfo MACHINE=
+
+       # Prevent installing libiberty to lib64.
+       cd $(DIR_APP) && sed -i 's%\(^MULTIOSDIR = \).*%\1 ../lib%' libiberty/Makefile.in
+
+       cd $(DIR_SRC)/binutils-build && $(EXTRA_ENV) MACHINE= $(DIR_APP)/configure $(EXTRA_CONFIG)
+       cd $(DIR_SRC)/binutils-build && make $(EXTRA_MAKE) $(MAKETUNING) MACHINE=
+       cd $(DIR_SRC)/binutils-build && make $(EXTRA_INSTALL) install MACHINE=
 ifeq "$(ROOT)" ""
        cp -v $(DIR_APP)/include/libiberty.h /usr/include
 else
-ifeq "$(PASS)" "1"
-       cd $(DIR_SRC)/binutils-build && make -C ld clean MACHINE=
-       cd $(DIR_SRC)/binutils-build && make -C ld LIB_PATH=/tools/lib MACHINE=
-       cd $(DIR_SRC)/binutils-build && cp -v ld/ld-new /tools/bin
-else
+ifeq "$(PASS)" "2"
        cd $(DIR_SRC)/binutils-build && make -C ld clean MACHINE=
        cd $(DIR_SRC)/binutils-build && make -C ld LIB_PATH=/usr/lib:/lib MACHINE=
        cd $(DIR_SRC)/binutils-build && cp -v ld/ld-new /tools/bin
index 961b1e603823ab8189afaec3cc5fc2ea3fdd48ba..33e126cfaaea42a272f2d4b077d5a1cc6ca12ef4 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007  Michael Tremer & Christian Schmidt                      #
+# Copyright (C) 2007-2012  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        #
@@ -34,7 +34,7 @@ TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = bluetooth
 PAK_VER    = 1
 
-DEPS       = "dbus glib"
+DEPS       = "dbus"
 
 ###############################################################################
 # Top-level Rules
@@ -108,7 +108,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
            --sysconfdir=/etc --localstatedir=/var --libexecdir=/lib
        cd $(DIR_SRC)/bluez-hcidump-1.42 && make $(MAKETUNING)
        cd $(DIR_SRC)/bluez-hcidump-1.42 && make install
-       mv -f /etc/udev/bluetooth.rules /etc/udev/rules.d/24-bluetooth.rules
+       mv -f /etc/udev/bluetooth.rules /lib/udev/rules.d/24-bluetooth.rules
        # Change bluetooth peername to Hostname-devicenumber
        sed -i -e 's|name "BlueZ (%d)";|name "%h-%d";|g' /etc/bluetooth/hcid.conf
        # Create empty config files
index a72a6a9e44c7abc420c5cdcc0c94ec03bd63e1c7..7ada05d633ffb41ead0de679e0433784fd751345 100644 (file)
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 1.1
+VER        = 1.5
 
 THISAPP    = bridge-utils-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 43bbd2a67b59cac3e15d545f8b51df68
+$(DL_FILE)_MD5 = ec7b381160b340648dede58c31bb2238
 
 install : $(TARGET)
 
@@ -70,6 +70,7 @@ $(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) && autoreconf -vfi
        cd $(DIR_APP) && ./configure --prefix=/usr
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
diff --git a/lfs/cairo b/lfs/cairo
new file mode 100644 (file)
index 0000000..591549a
--- /dev/null
+++ b/lfs/cairo
@@ -0,0 +1,77 @@
+###############################################################################
+#                                                                             #
+# 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        = 1.10.2
+
+THISAPP    = cairo-$(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 = f101a9e88b783337b20b2e26dfd26d5f
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# 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 zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure --prefix=/usr --disable-win32 --disable-os2 --disable-beos
+       cd $(DIR_APP) && make $(MAKETUNING)
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
index 9546c43acbc8967059881e15c39d74fe16b126ae..b82c156e03c9066094e4d33e2276b5bad891413e 100644 (file)
@@ -76,6 +76,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        cd $(DIR_APP)/capiinit && make install
        cd $(DIR_APP)/capi20 && sed -i -e 's/include <linux\/capi.h>/include <linux\/types.h>\n#include <linux\/capi.h>/' capidyn.c
        cd $(DIR_APP)/capi20 && sed -i -e 's/include <linux\/capi.h>/include <linux\/types.h>\n#include <linux\/capi.h>/' capi20.c
+       cd $(DIR_APP)/capi20 && sed -i "/include/a #include <stddef.h>" capi20.h
        cd $(DIR_APP)/capi20 && sed -i -e 's/-O2/$(CFLAGS)/' configure
        cd $(DIR_APP)/capi20 && SED=sed ./configure
        cd $(DIR_APP)/capi20 && SED=sed make $(MAKETUNING)
index b7cad8697d143be739ed38ecf1d66c33559ba517..44010f962248a3fba29b093880d004d8297a12e5 100644 (file)
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 3.1.6
+VER        = 3.1.8
 
 THISAPP    = ccache-$(VER)
 DL_FILE    = $(THISAPP).tar.bz2
@@ -32,6 +32,14 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)-pass$(PASS)
 
+ifeq "$(PASS)" "1"
+       CFLAGS := $(patsubst -march=%,,$(CFLAGS))
+       CFLAGS := $(patsubst -mfloat-abi=%,,$(CFLAGS))
+endif
+
+# Set max cache size to 5GB
+CFLAGS += -DDEFAULT_MAXSIZE=5242880
+
 ###############################################################################
 # Top-level Rules
 ###############################################################################
@@ -40,7 +48,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 343dc9b642e1d2af1e6bd8e474dde92e
+$(DL_FILE)_MD5 = 0e0f25fb342dcb1196d9c2986a7323cf
 
 install : $(TARGET)
 
@@ -70,16 +78,28 @@ $(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 -p1 < $(DIR_SRC)/src/patches/$(THISAPP)-no_compiler_mtime.patch
-       cd $(DIR_APP) && CFLAGS="-O2 -static -DDEFAULT_MAXSIZE=2097152" ./configure --prefix=$(ROOT)/usr/local
+       cd $(DIR_APP) && ./configure --prefix=/tools
        cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE)
        cd $(DIR_APP) && make install
-       ln -sf ccache $(ROOT)/usr/local/bin/gcc
-       ln -sf ccache $(ROOT)/usr/local/bin/g++
-       ln -sf ccache $(ROOT)/usr/local/bin/cc
-       ln -sf ccache $(ROOT)/usr/local/bin/$(BUILDTARGET)-gcc
-       ln -sf ccache $(ROOT)/usr/local/bin/$(BUILDTARGET)-g++
-       ln -sf ccache $(ROOT)/usr/local/bin/$(BUILDTARGET)-cc
-       $(ROOT)/usr/local/bin/ccache -z
+
+ifeq "$(PASS)" "1"
+       mkdir -pv /tools/ccache/bin
+       ln -svf ../../bin/ccache /tools/ccache/bin/gcc
+       ln -svf ../../bin/ccache /tools/ccache/bin/g++
+       ln -svf ../../bin/ccache /tools/ccache/bin/cc
+       ln -svf ../../bin/ccache /tools/ccache/bin/c++
+       ln -svf ../../bin/ccache /tools/ccache/bin/$(CROSSTARGET)-gcc
+       ln -svf ../../bin/ccache /tools/ccache/bin/$(CROSSTARGET)-g++
+       ln -svf ../../bin/ccache /tools/ccache/bin/$(CROSSTARGET)-cc
+       ln -svf ../../bin/ccache /tools/ccache/bin/$(CROSSTARGET)-c++
+endif
+
+ifeq "$(PASS)" "2"
+       ln -svf ../../bin/ccache /tools/ccache/bin/$(BUILDTARGET)-gcc
+       ln -svf ../../bin/ccache /tools/ccache/bin/$(BUILDTARGET)-g++
+       ln -svf ../../bin/ccache /tools/ccache/bin/$(BUILDTARGET)-cc
+       ln -svf ../../bin/ccache /tools/ccache/bin/$(BUILDTARGET)-c++
+endif
+
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index 306b781c2f97a5952302f6956c374c86692b3148..0b3252f9f4f23185f2696d32e88d1ad543f7f718 100644 (file)
@@ -52,30 +52,39 @@ md5 :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
 ifeq "$(PASS)" "1"
-       mv -v /tools/bin/{ld,ld-old}
-       mv -v /tools/$(BUILDTARGET)/bin/{ld,ld-old}
-       cp -v /tools/bin/{ld-new,ld}
-       ln -sv /tools/bin/ld /tools/$(BUILDTARGET)/bin/ld
-       gcc -dumpspecs > /tools/lib/gcc/$(BUILDTARGET)/$(GCC_VER)/specs
-       sed 's@/lib/ld-linux.so@/tools&@g' /tools/lib/gcc/$(BUILDTARGET)/$(GCC_VER)/specs > tempspecfile
-       mv -vf tempspecfile /tools/lib/gcc/$(BUILDTARGET)/$(GCC_VER)/specs
-       find /tools/lib/gcc/$(BUILDTARGET)/$(GCC_VER)/include/* -maxdepth 0 -xtype d -exec rm -rvf '{}' \;
-       rm -vf `grep -l "DO NOT EDIT THIS FILE" /tools/lib/gcc/$(BUILDTARGET)/$(GCC_VER)/include/*`
+       SPECS=$$(dirname $$(/tools/bin/$(CROSSTARGET)-gcc -print-libgcc-file-name))/specs; \
+       /tools/bin/$(CROSSTARGET)-gcc -dumpspecs | sed \
+               -e 's@/lib\(64\)\?/ld@/tools&@g' \
+               -e "/^\*cpp:$$/{n;s,$$, -isystem /tools/include,}" > $$SPECS
 endif
+
 ifeq "$(PASS)" "2"
-       -strip --strip-debug /tools/lib/*
-       -strip --strip-unneeded /tools/{,s}bin/*
-       rm -rfv /tools/{info,man} /usr/local/man
-       chown -R root:root /tools
+       # Remove the first cross compiler which is not needed anymore.
+       find /tools/ -name "$(CROSSTARGET)*" | xargs rm -rfv
+
+       # Remove man and info pages.
+       rm -rfv /tools/{,share}/{info,man}
+
+       # Strip all binaries.
+       STRIP="/usr/bin/strip" $(DIR_SRC)/src/stripper /tools/
+
+       # Fix ownership of the toolchain.
+       chown -R root:root /tools/
+
+       # Update/create linker cache.
+       /tools/sbin/ldconfig
 endif
+
 ifeq "$(PASS)" "3"
        mv -v /tools/bin/{ld,ld-old}
        mv -v /tools/$(BUILDTARGET)/bin/{ld,ld-old}
        mv -v /tools/bin/{ld-new,ld}
        ln -sv /tools/bin/ld /tools/$(BUILDTARGET)/bin/ld
-       gcc -dumpspecs | \
-       perl -p -e 's@/tools/lib/ld-linux.so@/lib/ld-linux.so@g;' \
-           -e 's@\*startfile_prefix_spec:\n@$$_/usr/lib/ @g;' > \
-           /tools/lib/gcc/$(BUILDTARGET)/$(GCC_VER)/specs
+
+       gcc -dumpspecs | sed \
+               -e 's@/tools@@g' \
+               -e '/\*startfile_prefix_spec:/{n;s@.*@/usr/lib/ @}' \
+               -e '/\*cpp:/{n;s@$$@ -isystem /usr/include@}' > \
+               $$(dirname $$(gcc -print-libgcc-file-name))/specs
 endif
        @$(POSTBUILD)
index 6b7aff61cef6c513094309478d1316bb6d7e06e3..587396538ddd929da40aef1be156ed42e75cd1fd 100644 (file)
--- a/lfs/cmake
+++ b/lfs/cmake
@@ -70,7 +70,7 @@ $(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) && ./bootstrap
+       cd $(DIR_APP) && ./bootstrap --prefix=/usr
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
        @rm -rf $(DIR_APP)
index f17879c9d36230e41e8d285513f84ffb221e47ce..3d2884198b319ad15d5b5b017f3834d40da66525 100644 (file)
@@ -25,7 +25,7 @@
 include Config
 
 PKG_NAME   = collectd
-VER        = 4.10.3
+VER        = 4.10.7
 
 THISAPP    = collectd-$(VER)
 DL_FILE    = $(THISAPP).tar.bz2
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 5f17bfd7342af4f97f78c608f1d1eb1d
+$(DL_FILE)_MD5 = f4193fdb5002ddac8159c88032a726bc
 
 install : $(TARGET)
 
@@ -77,8 +77,6 @@ $(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) && sed -i 's|with_libiptc="no (Linux iptables header.*|with_libiptc="yes"|g' \
-       #                       ./configure
        cd $(DIR_APP) && ./configure --prefix=/usr --localstatedir=/var \
                --disable-{apple_sensors,csv,ipvs,mbmon,memcached,mysql} \
                --disable-{netlink,nginx,nut,perl,serial,snmp,tape,vserver,xmms} \
index a8902f1c2ad6b4e8f5bac1d7438a24e6352f58c4..8a3fd56ebb8ce5b90e08d513f27ca3a1158dbcbc 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2011  IPFire Team <info@ipfire.org>                      #
+# Copyright (C) 2007-2012  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        #
@@ -26,7 +26,11 @@ include Config
 
 VERSUFIX=ipfire$(KCFG)
 
-VER        = 3.0-2
+VER        = 3.6.8-1-snp
+
+ifeq "$(KCFG)" "-xen"
+       KVER = 2.6.32.60
+endif
 
 THISAPP    = compat-wireless-$(VER)
 DL_FILE    = compat-wireless-$(VER).tar.bz2
@@ -38,13 +42,13 @@ TARGET     = $(DIR_INFO)/$(THISAPP)-kmod-$(KVER)-$(VERSUFIX)
 # Top-level Rules
 ###############################################################################
 
-objects = $(DL_FILE) asix-3.5.0a.tar.bz2
+objects = $(DL_FILE) asix-4.4.0.tar.xz
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-asix-3.5.0a.tar.bz2 = $(DL_FROM)/asix-3.5.0a.tar.bz2
+asix-4.4.0.tar.xz = $(DL_FROM)/asix-4.4.0.tar.xz
 
-$(DL_FILE)_MD5 = 7f2d0de30bf9c3e9a941d9e67971e9b3
-asix-3.5.0a.tar.bz2_MD5=cc57513505d3ad1a43b58add91d2bba7
+$(DL_FILE)_MD5 = 4120bc9841d6a1b5b92af34103f16a06
+asix-4.4.0.tar.xz_MD5=633609e889de41554826e0e2cd7bffde
 
 install : $(TARGET)
 
@@ -78,6 +82,12 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        # kfifo has no license info and taints kernel
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/compat-wireless-2.6.39_kfifo_module_info.patch
 
+       # Codel patches
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/compat-wireless_codel-avoid-a-nul-rec_inv_sqrt.patch
+
+       # Build ath5k only if target has pci
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/compat-wireless-3.5-build_ath5k_only_with_pci.patch
+
        # Copy USB-Net drivers from Kernel...
        mkdir $(DIR_APP)/drivers/net/usb/new
        cp $(DIR_APP)/drivers/net/usb/*.c $(DIR_APP)/drivers/net/usb/new
@@ -87,22 +97,26 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/compat-wireless-2.6.34-usbnet_compile.patch
 
        # Build Updated asix usb-lan driver
-       cd $(DIR_APP)/drivers/net/usb && tar xvf $(DIR_DL)/asix-3.5.0a.tar.bz2
+       cd $(DIR_APP)/drivers/net/usb && tar xvJf $(DIR_DL)/asix-4.4.0.tar.xz
 
-ifeq "$(MACHINE_TYPE)" "arm"
-       # B43+B44 driver doesn't build on arm
-#      cd $(DIR_APP) && sed -i -e "s|CONFIG_B43=m||g" config.mk
-#      cd $(DIR_APP) && sed -i -e "s|CONFIG_B44=m||g" config.mk
        # Add libartas uAP driver
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/compat-wireless-3.0-libertas_uap.patch
-       cd $(DIR_APP)&& echo CONFIG_LIBERTAS_UAP=m >> config.mk
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/compat-wireless-3.5-libertas_uap.patch
+
+       # uAP will not build with xen-kernel (2.6)
+ifneq "$(KCFG)" "-xen"
+       cd $(DIR_APP) && echo export CONFIG_LIBERTAS_UAP=m >> config.mk
 endif
 
+       # Erase some modules that are obsolete or moved to other path
+       rm -rf /lib/modules/$(KVER)-$(VERSUFIX)/kernel/net/bluetooth
+       rm -rf /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/wireless/wl12*
+
        cd $(DIR_APP) && make KLIB=/lib/modules/$(KVER)-$(VERSUFIX) \
+               KLIB_BUILD=/lib/modules/$(KVER)-$(VERSUFIX)/build \
                KMODPATH_ARG='INSTALL_MOD_PATH=' KMODDIR=kernel install-modules
 
        # Install firmware udev files...
-       cd $(DIR_APP)/udev && install -m 644 50-compat_firmware.rules /etc/udev/rules.d/
+       cd $(DIR_APP)/udev && install -m 644 50-compat_firmware.rules /lib/udev/rules.d/
        cd $(DIR_APP)/udev && install -m 755 compat_firmware.sh /lib/udev/
 
        -rm -rf $(DIR_APP)
index c4cedcd66bc57e133775367c1ff65085903fc22d..b40de13e06efffb68c984fc34e74c6d9c5132116 100644 (file)
@@ -77,7 +77,7 @@ core/%:
        mv -f /tmp/ROOTFILES /install/packages/package/ROOTFILES
        tar -p --numeric-owner -x  -C /tmp -f /$(SNAME).tar
        rm -f /$(SNAME).tar
-       cd /tmp && tar cf /install/packages/package/files * && rm -rf *
+       cd /tmp && tar cJf /install/packages/package/files.tar.xz * && rm -rf *
        cat /install/packages/package/ROOTFILES | grep -v "#" > /install/packages/package/ROOTFILES.tmp
        rm /install/packages/package/ROOTFILES
        mv /install/packages/package/ROOTFILES.tmp /install/packages/package/ROOTFILES
@@ -89,7 +89,7 @@ core/%:
        sed -e "s/xxxKVERxxx/$(KVER)/g" -i /install/packages/package/update.sh
 
        cd /install/packages/package && tar cf ../core-upgrade-$(VERSION)-$$(basename $@).ipfire \
-               update.sh files ROOTFILES
+               update.sh files.tar.xz ROOTFILES
        rm -rf /install/packages/package
        sed -e "s/NAME/core-upgrade/g" \
                -e "s/VER/$(VERSION)/g" \
index 7bdc0ecd380e31fbc9c807e06e8dd4fbf0b23e0f..d0f35c205a080e9dfbdcd3f0db00479d6f3fcf99 100644 (file)
@@ -45,7 +45,7 @@ else
   EXTRA_INSTALL = 
 endif
 
-EXTRA_CONFIG += --build=$(BUILDTARGET)
+EXTRA_CONFIG += ac_cv_func_working_mktime=yes
 
 ###############################################################################
 # Top-level Rules
@@ -86,6 +86,7 @@ $(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
@@ -108,7 +109,7 @@ ifeq "$(ROOT)" ""
        mv -v /usr/bin/{head,sleep,nice} /bin
        ln -sf test /bin/[
        #ln -sf ../../bin/install /usr/bin
-       dircolors -p > /etc/dircolors
+       dircolors -p > /etc/DIR_COLORS
 else
        rm /tools/bin/hostname
 endif
index e93a65d47d5a7692b20741430157a9f5f000b08a..6e38b0a0ebd216b145a841161d7ae7eb1be46a6c 100644 (file)
@@ -33,7 +33,7 @@ DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 SUP_ARCH   = i586
 PROG       = cpufrequtils
-PAK_VER    = 5
+PAK_VER    = 6
 
 DEPS       = ""
 
index 0c2f4863f87eb5f9299c272bac0842cbdd331809..eb0e2f66021becc78dfaf64949b9c9a19982eaed 100644 (file)
 
 include Config
 
+ifeq "$(KCFG)" "-xen"
+       KVER = 2.6.32.60
+endif
+
 VERSUFIX=ipfire$(KCFG)
 
 VER        = 1.4
@@ -81,6 +85,5 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        -mkdir -pv /usr/include/crypto
        cd $(DIR_APP) && make install \
                KERNEL_DIR=/lib/modules/$(KVER)-$(VERSUFIX)/build
-#      ln -svf ../crypto/cryptodev.h /usr/include/linux/cryptodev.h
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index 2c54c67fb85b6929a9f732633090160b2b53ed91..5b6e3b8905e29dfd58ebc61d96d0cc9e3cea6191 100644 (file)
--- a/lfs/curl
+++ b/lfs/curl
 
 include Config
 
-VER        = 7.19.5
+VER        = 7.24.0
 
 THISAPP    = curl-$(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 = 426d161661dce70c8ea9ad8f553363a3
+$(DL_FILE)_MD5 = b93420f80a2baaa61a0f45214eddc2ba
 
 install : $(TARGET)
 
@@ -69,7 +69,7 @@ $(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 xvf $(DIR_DL)/$(DL_FILE)
        cd $(DIR_APP) && ./configure --prefix=/usr
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
index 0a4fe2ca378a56aaec6414fe9248a504396fd3b9..8f74c5a305f8e37376fb3f16d2f655510da85c4e 100644 (file)
@@ -79,7 +79,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/cyrus-imapd-2.2.12-autocreate-0.9.4.diff
        cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/cyrus-imapd-2.2.12-gcc4.patch
-       cp -f /usr/include/et/com_err.h /usr/include/com_err.h
+#      cp -f /usr/include/et/com_err.h /usr/include/com_err.h
        cd $(DIR_APP) && ./configure --prefix=/usr --with-service-path=/usr/lib/cyrus \
                                --with-cyrus-prefix=/usr/lib/cyrus --sysconfdir=/var/ipfire/cyrusimap \
                                --with-auth=unix --with-perl --with-sasl --with-idle=idled \
index 1f8282ef8557db76e0611f830386e3e0aa5a20ef..749011f26711a25e14aa26747da3a9357b89622d 100644 (file)
@@ -82,6 +82,7 @@ $(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/cyrus-sasl-2.1.22-bad-elif.patch
        cd $(DIR_APP) && sed -i '/sasl_global/s/^static //' lib/client.c
        cd $(DIR_APP) && sed -i 's/cat8/man8/' saslauthd/Makefile.in
 
diff --git a/lfs/dahdi b/lfs/dahdi
deleted file mode 100644 (file)
index 0ae424c..0000000
--- a/lfs/dahdi
+++ /dev/null
@@ -1,144 +0,0 @@
-###############################################################################
-#                                                                             #
-# IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2011  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
-
-VERSUFIX=ipfire$(KCFG)
-
-VER        = 2.2.1
-TVER       = 2.2.1
-
-DL_FILE    = dahdi-linux-$(VER).tar.gz
-DL_FILE1   = dahdi-tools-$(TVER).tar.gz
-
-THISAPP    = dahdi-$(VER)
-DL_FROM    = $(URL_IPFIRE)
-DIR_APP    = $(DIR_SRC)/dahdi-linux-$(VER)
-DIR_APP1   = $(DIR_SRC)/dahdi-tools-$(TVER)
-
-PROG       = dahdi
-PAK_VER    = 2
-
-DEPS       = ""
-
-
-ifeq "$(KMOD)" "1"
-       TARGET = $(DIR_INFO)/$(THISAPP)-kmod-$(KVER)-$(VERSUFIX)
-else
-       TARGET = $(DIR_INFO)/$(THISAPP)
-endif
-
-
-###############################################################################
-# Top-level Rules
-###############################################################################
-
-objects = $(DL_FILE) $(DL_FILE1) dahdi-linux-2.2.1-firmware.tar.bz2
-
-$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE1) = $(DL_FROM)/$(DL_FILE1)
-dahdi-linux-2.2.1-firmware.tar.bz2 = $(DL_FROM)/dahdi-linux-2.2.1-firmware.tar.bz2
-
-$(DL_FILE)_MD5 = 46e4abbe743830045364fc716d293e88
-$(DL_FILE1)_MD5 = 04e7097929851f744f777400125180db
-dahdi-linux-2.2.1-firmware.tar.bz2_MD5 = ccc50ded1641cd619e8d3a4615a6ad19
-
-
-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 zxf $(DIR_DL)/$(DL_FILE)
-       cd $(DIR_SRC) && tar jxf $(DIR_DL)/dahdi-linux-2.2.1-firmware.tar.bz2
-       cd $(DIR_APP) && make $(MAKETUNING) clean all KVERS=$(KVER)
-
-ifeq "$(KMOD)" "1"
-       cd $(DIR_APP) && make install-modules KVERS=$(KVER)-$(VERSUFIX)
-       @rm -rf $(DIR_APP)
-else
-       cd $(DIR_APP) && make install-devices install-include \
-               install-firmware install-xpp-firm KVERS=$(KVER)-$(VERSUFIX)
-       @rm -rf $(DIR_APP)
-
-       # remove previous generated symlink (if this a rebuild)
-       rm -rf /etc/dahdi
-
-       rm -rf $(DIR_APP1) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE1)
-       cd $(DIR_APP1) && ./configure --sysconfdir=/var/ipfire/asterisk
-       cd $(DIR_APP1) && make $(MAKETUNING) clean all
-       cd $(DIR_APP1) && make install
-
-       # Supress Error output because this erase the log 
-       cd $(DIR_APP1) && make config 2>/dev/null
-
-       # remove build src
-       @rm -rf $(DIR_APP1)
-
-       # config stuff
-       ln -sf ../init.d/dahdi /etc/rc.d/rc0.d/K30dahdi
-       ln -sf ../init.d/dahdi /etc/rc.d/rc6.d/K30dahdi
-       ln -sf ../init.d/dahdi /etc/rc.d/rc3.d/S15dahdi
-       mv -f /etc/dahdi/genconf_parameters /var/ipfire/asterisk/dahdi/
-       mv -f /etc/dahdi/init.conf /var/ipfire/asterisk/dahdi/
-       mv -f /etc/dahdi/modules /var/ipfire/asterisk/dahdi/
-       rmdir /etc/dahdi
-       ln -s /var/ipfire/asterisk/dahdi /etc/dahdi
-
-       # make init.d-script work with ipfire
-       sed s/system=redhat/system=debian/ /etc/init.d/dahdi > /tmp/dahdi-temp
-       mv /tmp/dahdi-temp /etc/init.d/dahdi && chmod 755 /etc/init.d/dahdi
-
-       # add dummy-module (to get conference rooms work)
-       echo "#Dummy" >> /etc/dahdi/modules
-       echo "dahdi_dummy" >> /etc/dahdi/modules
-endif
-       @$(POSTBUILD)
-
index 818b89ea4058ca9e4137139e076b14a4253e4376..3a431066a10ff2685ac8271392790075d6f30e9a 100644 (file)
--- a/lfs/dbus
+++ b/lfs/dbus
@@ -77,6 +77,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_SRC)/dbus*
        cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dbus-1.0.3-compile-fix-1.patch
        cd $(DIR_APP) && ./configure --prefix=/usr --sysconfdir=/etc \
                                     --localstatedir=/var
        cd $(DIR_APP) && make $(MAKETUNING)
similarity index 94%
rename from lfs/iptstate
rename to lfs/dejavu-fonts-ttf
index ee503678edc06096e921b5660b2f68899c537055..cd31a2defe6d9b59c6bc2d2a8d3dfa6b53aaa01b 100644 (file)
 
 include Config
 
-VER        = 2.1
 
-THISAPP    = iptstate-$(VER)
+VER        = 2.33
+
+THISAPP    = dejavu-fonts-ttf-$(VER)
 DL_FILE    = $(THISAPP).tar.bz2
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
@@ -40,7 +41,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = c99e19c66645689b44a871428e003ec7
+$(DL_FILE)_MD5 = 8b601e91725b6d69141b0fcf527948c0
 
 install : $(TARGET)
 
@@ -70,7 +71,7 @@ $(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) && make $(MAKETUNING)
-       cd $(DIR_APP) && make install
+       mkdir -pv /usr/share/fonts
+       install -m 644 $(DIR_APP)/ttf/* /usr/share/fonts
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index 816a75d8721a700ad54f7b2474c2d7dc822324f2..083c31fa1107bc70daf28789d5d386f4893b8891 100644 (file)
--- a/lfs/dhcp
+++ b/lfs/dhcp
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007  Michael Tremer & Christian Schmidt                      #
+# Copyright (C) 2007-2012  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        #
@@ -70,6 +70,7 @@ $(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/dhcp-4.2.2-remove-bind.patch
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.0-errwarn-message.patch
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.2-options.patch
@@ -81,11 +82,11 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.2-xen-checksum.patch
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.1-manpages.patch
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.0-paths.patch
-       # Has to be enabled after glibc update.
-       #cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.2-CLOEXEC.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.2-CLOEXEC.patch
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.0-inherit-leases.patch
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.0-garbage-chars.patch
-       #cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.0-missing-ipv6-not-fatal.patch
+       # ???
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.0-missing-ipv6-not-fatal.patch
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.0-add_timeout_when_NULL.patch
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.1-64_bit_lease_parse.patch
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.2-capability.patch
@@ -117,6 +118,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
                        --enable-paranoia \
                        --enable-early-chroot \
                        --disable-dhcpv6
+
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
 
index e406af820688b97f4cb6348a591306ba00b220a3..34acb593e48f5b979a441ea69b4080bfa0c29b50 100644 (file)
@@ -79,6 +79,7 @@ $(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/directfb-1.1.1-fix-mknod.patch
        cd $(DIR_APP) && sed -i "s/checkfor_matrox=yes/checkfor_matrox=no/g" configure
        cd $(DIR_APP) && sed -i "s/checkfor_cle266=no/checkfor_cle266=yes/g" configure
        cd $(DIR_APP) && sed -i "s/checkfor_omap=.*/checkfor_omap=no/g" configure
index 029bc380ddebf9015955e83ffd4688c507389fab..0779a6b73bd2d953ba536d5489f9b9d2260d8333 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2010  IPFire Team  <info@ipfire.org>                          #
+# Copyright (C) 2011  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        #
@@ -92,11 +92,12 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        # needed.
 
 ifeq "$(MACHINE_TYPE)" "arm"
-       # versatile kernel
-       /sbin/dracut --force --verbose --strip /boot/ipfirerd-$(KVER)-versatile.img $(KVER)-ipfire-versatile
        # 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
+       # omap kernel
+       /sbin/dracut --force --verbose --strip /boot/ipfirerd-$(KVER)-omap.img $(KVER)-ipfire-omap
+       cd /boot && mkimage -A arm -T ramdisk -C lzma -d ipfirerd-$(KVER)-omap.img uInit-ipfire-omap
 else
        /sbin/dracut --force --verbose --strip /boot/ipfirerd-$(KVER).img $(KVER)-ipfire
 endif
diff --git a/lfs/dvb-firmwares b/lfs/dvb-firmwares
new file mode 100644 (file)
index 0000000..cd029e2
--- /dev/null
@@ -0,0 +1,77 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2012  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        = 20110802
+
+THISAPP    = dvb-firmwares-$(VER)
+DL_FILE    = $(THISAPP).tar.bz2
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/dvb-firmwares
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 330e19f9444a03f5338bab590ab9d728
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# 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)
+       mkdir -p /lib/firmware
+       tar axf $(DIR_DL)/$(DL_FILE) \
+               -C /lib/firmware/
+       # use newest ttpci firmware
+       cp /lib/firmware/dvb-ttpci-01.fw-2622 /lib/firmware/dvb-ttpci-01.fw
+       @$(POSTBUILD)
index fe31df733dc35c1976f1438911556bfe80e4e0ad..50e21fbff0b990b77155b0019cd9b4b368ceabf0 100644 (file)
--- a/lfs/e1000
+++ b/lfs/e1000
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2011  IPFire Team <info@ipfire.org>                      #
+# Copyright (C) 2007-2012  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        #
@@ -26,6 +26,12 @@ include Config
 
 VERSUFIX = ipfire$(KCFG)
 
+# e1000 vendor modul is only for legacy xen kernel
+# The 3.2.x kernel has newer module.
+
+KVER = 2.6.32.60
+MODPATH = /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/e1000/
+
 VER        = 8.0.35
 
 THISAPP    = e1000-$(VER)
@@ -75,12 +81,10 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        #Save original e1000 module
-       -mv /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/e1000/e1000.ko \
-           /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/e1000/e1000.ko.org
+       -mv $(MODPATH)/e1000.ko \
+           $(MODPATH)/e1000.ko.org
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
-       cd $(DIR_APP)/src && make -C /lib/modules/$(KVER)-$(VERSUFIX)/build/ \
-               SUBDIRS=$(DIR_APP)/src modules
-       cd $(DIR_APP)/src && install -m 644 e1000.ko \
-               /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/e1000
+       cd $(DIR_APP)/src && make BUILD_KERNEL=$(KVER)-$(VERSUFIX)
+       cd $(DIR_APP)/src && install -m 644 e1000.ko $(MODPATH)
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index f046ee516c99e7795df86b910f736690050a63bf..693c054a7f187cbee1bf1b9fe5cdd0beb3f6f91d 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2011  IPFire Team <info@ipfire.org>                      #
+# Copyright (C) 2007-2012  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
 
 VERSUFIX = ipfire$(KCFG)
+ifeq "$(KCFG)" "-xen"
+       KVER = 2.6.32.60
+       MODPATH = /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/e1000e
+else
+       MODPATH = /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/ethernet/intel/e1000e
+endif
 
-VER        = 1.6.3
+VER        = 2.1.4
 
 THISAPP    = e1000e-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -42,7 +48,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 9526a6c004f936506a90e10911420bf8
+$(DL_FILE)_MD5 = e8dba81bfc86c6c75f39d025fb70899f
 
 install : $(TARGET)
 
@@ -75,12 +81,10 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        #Save original e1000e module
-       -mv /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/e1000e/e1000e.ko \
-           /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/e1000e/e1000e.ko.org
+       -mv $(MODPATH)/e1000e.ko \
+           $(MODPATH)/e1000e.ko.org
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
-       cd $(DIR_APP)/src && make -C /lib/modules/$(KVER)-$(VERSUFIX)/build/ \
-               SUBDIRS=$(DIR_APP)/src modules
-       cd $(DIR_APP)/src && install -m 644 e1000e.ko \
-               /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/e1000e
+       cd $(DIR_APP)/src && make BUILD_KERNEL=$(KVER)-$(VERSUFIX)
+       cd $(DIR_APP)/src && install -m 644 e1000e.ko $(MODPATH)
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index 6844d3be69fd4307e25ffef48d582f14f36e10c8..dff6393fd5e246005adb825b58eb793d88401cb7 100644 (file)
@@ -24,7 +24,7 @@
 
 include Config
 
-VER      = 1.41.11
+VER      = 1.42.6
 
 THISAPP    = e2fsprogs-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = fb507a40c2706bc38306f150d069e345
+$(DL_FILE)_MD5 = 9e444c240c1001b3292d108fbad0f49c
 
 install : $(TARGET)
 
index e6cc69be4749d2db7d8d2d42cdb56b0507e11c27..a7da3491c7b4330a9efb8caed47c0c160e41919c 100644 (file)
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 2.0.8-2
+VER        = 2.0.10-4
 
 THISAPP    = ebtables-v$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -32,7 +32,7 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = ebtables
-PAK_VER    = 1
+PAK_VER    = 2
 
 DEPS       = ""
 
@@ -44,7 +44,8 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 66bcbcb2dcf3b981ad4e86e1720e796e
+$(DL_FILE)_MD5 = 506742a3d44b9925955425a659c1a8d0
+
 install : $(TARGET)
 
 check : $(patsubst %,$(DIR_CHK)/%,$(objects))
index b724912538d1ea0e20b282a491feba06b1edebdf..978a90d9bc9c0db1e1250d514d07f9203ca237cf 100644 (file)
@@ -28,7 +28,7 @@ VER = 1.0
 
 THISAPP    = fake-environ
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
-TARGET     = $(DIR_INFO)/$(THISAPP)-tools$(PASS)
+TARGET     = $(DIR_INFO)/$(THISAPP)-tools
 
 ###############################################################################
 # Top-level Rules
index 0d6fcf4693c6d1be944a414e9a7fb241cbd9664e..70a38e24df8aa3aee05ff1edfb670b3704268a73 100644 (file)
--- a/lfs/file
+++ b/lfs/file
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 4.17
+VER        = 5.11
 
 THISAPP    = file-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 50919c65e0181423d66bb25d7fe7b0fd
+$(DL_FILE)_MD5 = 16a407bd66d6c7a832f3a5c0d609c27b
 
 install : $(TARGET)
 
@@ -70,7 +70,7 @@ $(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) && ./configure --prefix=/usr --disable-nls
+       cd $(DIR_APP) && ./configure --prefix=/usr
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
        @rm -rf $(DIR_APP)
index daf3ec1cc93477307f3032f8f557944fdb801e1d..36a343dde4c6aed4ff82957829c39167359b9f7b 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2011  IPFire Team  <info@ipfire.org>                     #
+# Copyright (C) 2007-2012  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        #
@@ -44,28 +44,25 @@ md5 :
 ###############################################################################
 # Installation Details
 ###############################################################################
-IMGinst  := /install/images/$(SNAME)-$(VERSION).2gb-ext2.$(MACHINE)-full-core$(CORE).img
-IMGinsts := /install/images/$(SNAME)-$(VERSION).2gb-ext2-scon.$(MACHINE)-full-core$(CORE).img
+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
 # don't change SIZEboot this without checking Image size
-SIZEboot := 20
+SIZEboot := 64
 IMGroot  := /install/images/rootfs
-SIZEroot := 1400
-IMGvar   := /install/images/varfs
-SIZEvar  := 430
+SIZEroot := 600
 
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
-       rm -rf $(MNThdd) $(IMGinst) $(IMGpart) $(IMGboot) $(IMGroot) $(IMGvar) && mkdir -p $(MNThdd)
+       rm -rf $(MNThdd) $(IMGinst) $(IMGpart) $(IMGboot) $(IMGroot) && mkdir -p $(MNThdd)
 
        # Create first 32 sectors of image
        dd bs=1k if=/dev/zero of=$(IMGpart) count=16
 
        # Create images for filesystems
-       dd bs=1K if=/dev/zero of=$(IMGboot) count=20464  # 20MB-16K
+       dd bs=1K if=/dev/zero of=$(IMGboot) count=65520  # 64MB-16K
        dd bs=1M if=/dev/zero of=$(IMGroot) count=$(SIZEroot)
-       dd bs=1M if=/dev/zero of=$(IMGvar) count=$(SIZEvar)
 
        # Format them
 ifeq "$(MACHINE_TYPE)" "arm"
@@ -73,8 +70,11 @@ ifeq "$(MACHINE_TYPE)" "arm"
 else
        mkfs.ext2 -F $(IMGboot)
 endif
-       mkfs.ext2 -F $(IMGroot)
-       mkfs.ext2 -F $(IMGvar)
+       mkfs.ext4 -O ^has_journal,extent -F $(IMGroot)
+
+       # Most systems that use Flashimages has no RTC at boot
+       # so the interval check should disables
+       tune2fs -i0 $(IMGroot)
 
        # Mount Images
        mount -o loop $(IMGroot) $(MNThdd)
@@ -82,7 +82,15 @@ endif
        mkdir $(MNThdd)/var
        mkdir $(MNThdd)/var/log
        mount -o loop $(IMGboot) $(MNThdd)/boot
-       mount -o loop $(IMGvar)  $(MNThdd)/var
+
+       # Install MLO and uboot first
+ifeq "$(MACHINE_TYPE)" "arm"
+       cp -v /boot/MLO $(MNThdd)/boot/
+       cp -v /boot/u-boot.bin $(MNThdd)/boot/
+       sync
+       umount $(MNThdd)/boot
+       mount -o loop $(IMGboot) $(MNThdd)/boot
+endif
 
        # Install IPFire
        tar -C $(MNThdd)/ -xvaf /install/cdrom/$(SNAME)-$(VERSION).tlz
@@ -102,8 +110,8 @@ ifeq "$(MACHINE_TYPE)" "arm"
 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|UUID=$$(blkid -sUUID $(IMGvar) | cut -d'"' -f2)|g" $(MNThdd)/etc/fstab
-       sed -i -e "s|FSTYPE|ext2|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
@@ -112,20 +120,19 @@ ifneq "$(MACHINE_TYPE)" "arm"
        ln -s grub.conf $(MNThdd)/boot/grub/menu.lst
 
        # Copy grub files manually
-       cp -f $(MNThdd)/usr/share/grub/i386-pc/* $(MNThdd)/boot/grub/
+       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/S26fsresize
+       ln -sf ../init.d/fsresize $(MNThdd)/etc/rc.d/rcsysinit.d/S42fsresize
 
        # Unmount
        umount $(MNThdd)/proc
        umount $(MNThdd)/dev
        umount $(MNThdd)/sys
        umount $(MNThdd)/boot
-       umount $(MNThdd)/var
        umount $(MNThdd)
 
        # zerofree the ext2 images to get better compression
@@ -135,17 +142,20 @@ ifneq "$(MACHINE_TYPE)" "arm"
        fsck.ext2 -f -y $(IMGboot)
 endif
        zerofree $(IMGroot)
-       -fsck.ext2 -f -y  $(IMGroot)
-       fsck.ext2 -f -y  $(IMGroot)
-       zerofree $(IMGvar)
-       -fsck.ext2 -f -y  $(IMGvar)
-       fsck.ext2 -f -y  $(IMGvar)
+       -fsck.ext4 -f -y  $(IMGroot)
+       fsck.ext4 -f -y  $(IMGroot)
 
        # Cat to an image
-       cat $(IMGpart) $(IMGboot) $(IMGroot) $(IMGvar) > $(IMGinst)
+       cat $(IMGpart) $(IMGboot) $(IMGroot) > $(IMGinst)
+
        # Write Partition table
-       echo -e ",$(SIZEboot),L,*\n,0,0\n,$(SIZEroot),L\n,$(SIZEvar),L\n" \
+ifneq "$(MACHINE_TYPE)" "arm"
+       echo -e ",$(SIZEboot),L,*\n,0,0\n,$(SIZEroot),L\n,0,0\n" \
+               | sfdisk -D -uM -H 64 -S 32 $(IMGinst)
+else
+       echo -e ",$(SIZEboot),c,*\n,0,0\n,$(SIZEroot),L\n,0,0\n" \
                | sfdisk -D -uM -H 64 -S 32 $(IMGinst)
+endif
 
 ifneq "$(MACHINE_TYPE)" "arm"
        # Install grub
@@ -170,6 +180,10 @@ ifneq "$(MACHINE_TYPE)" "arm"
        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 omapfb.mode=dvi:800x600MR-16@60 | console=ttyO2,115200n8 |g" $(MNThdd)/boot/boot.script
+       cd $(MNThdd)/boot && ./convert_bootscript
 endif
 
        sed -i -e "s|1:2345:respawn:|#1:2345:respawn:|g" $(MNThdd)/etc/inittab
@@ -190,18 +204,21 @@ ifneq "$(MACHINE_TYPE)" "arm"
        fsck.ext2 -f -y  $(IMGboot)
 endif
        zerofree $(IMGroot)
-       -fsck.ext2 -f -y  $(IMGroot)
-       fsck.ext2 -f -y  $(IMGroot)
-       zerofree $(IMGvar)
-       -fsck.ext2 -f -y  $(IMGvar)
-       fsck.ext2 -f -y  $(IMGvar)
+       -fsck.ext4 -f -y  $(IMGroot)
+       fsck.ext4 -f -y  $(IMGroot)
 
        # Cat to an image
-       cat $(IMGpart) $(IMGboot) $(IMGroot) $(IMGvar) > $(IMGinsts)
-       rm -vf $(IMGpart) $(IMGboot) $(IMGroot) $(IMGvar)
+       cat $(IMGpart) $(IMGboot) $(IMGroot) > $(IMGinsts)
+       rm -vf $(IMGpart) $(IMGboot) $(IMGroot)
+
        # Write Partition table
-       echo -e ",$(SIZEboot),L,*\n,0,0\n,$(SIZEroot),L\n,$(SIZEvar),L\n" \
+ifneq "$(MACHINE_TYPE)" "arm"
+       echo -e ",$(SIZEboot),L,*\n,0,0\n,$(SIZEroot),L\n,0,0\n" \
                | sfdisk -D -uM -H 64 -S 32 $(IMGinsts)
+else
+       echo -e ",$(SIZEboot),c,*\n,0,0\n,$(SIZEroot),L\n,0,0\n" \
+               | sfdisk -D -uM -H 64 -S 32 $(IMGinsts)
+endif
 
 ifneq "$(MACHINE_TYPE)" "arm"
        # Install grub
@@ -216,5 +233,4 @@ endif
        # Compress Image
        gzip -f9 $(IMGinsts)
 
-       rm -rf $(MNThdd) $(IMGpart) $(IMGboot) $(IMGroot) $(IMGvar)
-
+       rm -rf $(MNThdd) $(IMGpart) $(IMGboot) $(IMGroot)
index d5b020c09eca0e2ec3a9cd9eb20b259f42edf7be..6f0850be75c1153924ec4cf44860d504ad0322c1 100644 (file)
@@ -31,10 +31,6 @@ DL_FILE    = $(THISAPP).tar.gz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
-PROG       = fontconfig
-PAK_VER    = 1
-
-DEPS       = ""
 
 ###############################################################################
 # Top-level Rules
@@ -54,9 +50,6 @@ download :$(patsubst %,$(DIR_DL)/%,$(objects))
 
 md5 : $(subst %,%_MD5,$(objects))
 
-dist: 
-       $(PAK)
-
 ###############################################################################
 # Downloading, checking, md5sum
 ###############################################################################
index 7bf70446cb7536309a89a1e4ffe84d050324b398..66bbfac23e7280e10141348ccb225ce12b7b273d 100644 (file)
--- a/lfs/gawk
+++ b/lfs/gawk
@@ -45,6 +45,8 @@ else
   EXTRA_INSTALL = 
 endif
 
+EXTRA_CONFIG += ac_cv_func_working_mktime=yes
+
 ###############################################################################
 # Top-level Rules
 ###############################################################################
diff --git a/lfs/gcc b/lfs/gcc
index 785b965cf1410a9e3306a03cb11b193615ec4029..0bdecdaefbef03ba9b61241473409d1580e9fefe 100644 (file)
--- a/lfs/gcc
+++ b/lfs/gcc
 
 include Config
 
-VER        = 4.1.2
+VER        = 4.4.7
+
+GMP_VER    = 5.0.5
+MPFR_VER   = 2.4.2
 
 THISAPP    = gcc-$(VER)
 DL_FILE    = $(THISAPP).tar.bz2
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 
+CFLAGS    := $(patsubst -march=%,,$(CFLAGS))
+CFLAGS    := $(patsubst -mtune=%,,$(CFLAGS))
+CFLAGS    := $(patsubst -mfloat-abi=%,,$(CFLAGS))
+
 # Normal build or /tools build.
 #
 ifeq "$(ROOT)" ""
   TARGET = $(DIR_INFO)/$(THISAPP)
-  EXTRA_CONFIG = --prefix=/usr \
-               --libexecdir=/usr/lib \
-               --enable-shared \
-               --enable-threads=posix \
-               --enable-__cxa_atexit \
-               --enable-clocale=gnu \
-               --enable-languages=c,c++ \
-               --disable-nls
+  EXTRA_CONFIG = \
+       --prefix=/usr \
+       --libexecdir=/usr/lib \
+       --enable-shared \
+       --enable-threads=posix \
+       --enable-__cxa_atexit \
+       --enable-clocale=gnu \
+       --enable-languages=c,c++ \
+       --disable-bootstrap \
+       --disable-nls
   EXTRA_MAKE =
   EXTRA_INSTALL =
 else
 ifeq "$(PASS)" "1"
   TARGET = $(DIR_INFO)/$(THISAPP)-tools1
-  EXTRA_CONFIG = --prefix=/tools \
-               --with-local-prefix=/tools \
-               --disable-nls \
-               --enable-shared \
-               --enable-languages=c \
-               --disable-bootstrap
+  EXTRA_CONFIG = \
+       --target=$(CROSSTARGET) \
+       --prefix=/tools \
+       --disable-nls \
+       --disable-shared \
+       --disable-decimal-float \
+       --disable-threads \
+       --disable-libmudflap \
+       --disable-libssp \
+       --disable-libgomp \
+       --disable-libquadmath \
+       --with-newlib \
+       --without-headers \
+       --without-ppl \
+       --without-cloog \
+       --enable-languages=c
   EXTRA_MAKE = 
   EXTRA_INSTALL = 
 else
   TARGET = $(DIR_INFO)/$(THISAPP)-tools2
-  EXTRA_CONFIG = --prefix=/tools \
-               --with-local-prefix=/tools \
-               --enable-clocale=gnu \
-               --enable-shared \
-               --enable-threads=posix \
-               --enable-__cxa_atexit \
-               --enable-languages=c,c++ \
-               --disable-libstdcxx-pch
+  EXTRA_ENV = \
+       CC="$(CROSSTARGET)-gcc -B/tools/lib/" \
+       AR="$(CROSSTARGET)-ar" \
+       RANLIB="$(CROSSTARGET)-ranlib"
+  EXTRA_CONFIG = \
+       --host=$(BUILDTARGET) \
+       --build=$(BUILDTARGET) \
+       --target=$(BUILDTARGET) \
+       --prefix=/tools \
+       --with-local-prefix=/tools \
+       --enable-clocale=gnu \
+       --enable-shared \
+       --enable-threads=posix \
+       --enable-__cxa_atexit \
+       --enable-languages=c,c++ \
+       --disable-libstdcxx-pch \
+       --disable-bootstrap
   EXTRA_MAKE = 
   EXTRA_INSTALL = 
 endif
@@ -73,34 +101,39 @@ endif
 
 ifeq "$(MACHINE_TYPE)" "arm"
        EXTRA_CONFIG += \
-               --build=$(BUILDTARGET) \
-               --host=$(BUILDTARGET) \
-               --target=$(BUILDTARGET) \
                --with-float=soft \
-               --disable-libmudflap \
-               --disable-libssp \
-               --disable-libgomp \
-               --enable-threads=posix \
-               --enable-long-long \
-               --enable-c99 \
-               --enable-__cxa_atexit \
-               --disable-multilib
-else
-       EXTRA_CONFIG += --build=$(BUILDTARGET) --host=$(BUILDTARGET) \
-               --target=$(BUILDTARGET)
+               --disable-sjlj-exceptions
+endif
+
+ifeq "$(MACHINE)" "i586"
+       EXTRA_CONFIG += \
+               --with-arch=i586 \
+               --with-tune=generic
 endif
 
+EXTRA_CONFIG += \
+       --with-bugurl=http://bugtracker.ipfire.org \
+       --disable-libunwind-exceptions \
+       --enable-gnu-unique-object
+
 export XCFLAGS = $(CFLAGS)
 export TCFLAGS = $(CFLAGS)
 
 ###############################################################################
 # Top-level Rules
 ###############################################################################
-objects = $(DL_FILE)
+
+objects = $(DL_FILE) \
+       gmp-$(GMP_VER).tar.bz2 \
+       mpfr-$(MPFR_VER).tar.bz2
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+gmp-$(GMP_VER).tar.bz2 = $(DL_FROM)/gmp-$(GMP_VER).tar.bz2
+mpfr-$(MPFR_VER).tar.bz2 = $(DL_FROM)/mpfr-$(MPFR_VER).tar.bz2
 
-$(DL_FILE)_MD5 = a4a3eb15c96030906d8494959eeda23c
+$(DL_FILE)_MD5                 = 295709feb4441b04e87dea3f1bab4281
+gmp-$(GMP_VER).tar.bz2_MD5     = 041487d25e9c230b0c42b106361055fe
+mpfr-$(MPFR_VER).tar.bz2_MD5   = 89e59fe665e2b3ad44a6789f40b059a0
 
 install : $(TARGET)
 
@@ -130,42 +163,71 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) $(DIR_SRC)/gcc-build && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-fix_linker_version_detection.patch
        @mkdir $(DIR_SRC)/gcc-build
 
-       cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/gcc-4.1.2-gcc_eh.patch
-       cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/gcc-4.1.2-arm-linux-soft-float.patch
+       # Apply patches.
+       cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/gcc/gcc44-build-id.patch
+       cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/gcc/gcc44-c++-builtin-redecl.patch
+       cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/gcc/gcc44-i386-libgomp.patch
+       cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/gcc/gcc44-libtool-no-rpath.patch
+       cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/gcc/gcc44-no-add-needed.patch
+       cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/gcc/gcc44-pr33763.patch
+       cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/gcc/gcc44-rh330771.patch
+       cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/gcc/gcc44-rh533181.patch
+       cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/gcc/gcc44-rh610785.patch
+       cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/gcc/gcc44-unwind-debug-hook.patch
+
+ifneq "$(ROOT)" ""
+       # Build gmp and mpfr internally in toolchain.
+       cd $(DIR_APP) && tar xfa $(DIR_DL)/gmp-$(GMP_VER).tar.bz2
+       cd $(DIR_APP) && mv -v gmp-$(GMP_VER) gmp
+       cd $(DIR_APP) && tar xfa $(DIR_DL)/mpfr-$(MPFR_VER).tar.bz2
+       cd $(DIR_APP) && mv -v mpfr-$(MPFR_VER) mpfr
+
+ifeq    "$(PASS)" "1"
+       # GCC does not detect stack protection correctly, which causes problems
+       # for the build of libresolv_pic.a.
+       cd $(DIR_APP) && sed -i '/k prot/agcc_cv_libc_provides_ssp=yes' gcc/configure
+endif
 
-ifeq "$(ROOT)" ""
-       cd $(DIR_APP) && sed -i 's/install_to_$$(INSTALL_DEST) //' libiberty/Makefile.in
-       cd $(DIR_APP) && sed -i 's/^XCFLAGS =$$/& -fomit-frame-pointer/' gcc/Makefile.in
-       cd $(DIR_APP) && sed -i 's@\./fixinc\.sh@-c true@' gcc/Makefile.in
-       cd $(DIR_APP) && sed -i 's/@have_mktemp_command@/yes/' gcc/gccbug.in
+ifeq    "$(PASS)" "2"
+       cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/gcc-4.4.3-startfiles_fix-1.patch
+
+       for file in $$(find $(DIR_APP)/gcc/config -name linux64.h -o -name linux.h \
+                       -o -name sysv4.h -o -name linux-eabi.h -o -name linux-elf.h); do \
+               echo "Processing $${file}..."; \
+               sed -i $${file} \
+                       -e 's@/lib\(64\)\?\(32\)\?/ld@/tools&@g' \
+                       -e 's@/usr@/tools@g'; \
+               echo '#undef STANDARD_INCLUDE_DIR' >> $${file}; \
+               echo '#define STANDARD_INCLUDE_DIR 0' >> $${file}; \
+               echo '#define STANDARD_STARTFILE_PREFIX_1 ""' >> $${file}; \
+               echo '#define STANDARD_STARTFILE_PREFIX_2 ""' >> $${file}; \
+       done
+endif
+endif
 
-       cd $(DIR_SRC)/gcc-build && $(DIR_APP)/configure $(EXTRA_CONFIG)
+       cd $(DIR_APP) && sed -i 's/install_to_$$(INSTALL_DEST) //' libiberty/Makefile.in
+       cd $(DIR_APP) && sed -i gcc/Makefile.in \
+               -e 's@\./fixinc\.sh@-c true@' \
+               -e 's/^T_CFLAGS =$$/& -fomit-frame-pointer/'
+
+       # The actual build.
+       cd $(DIR_SRC)/gcc-build && \
+               $(EXTRA_ENV) \
+               $(DIR_APP)/configure \
+                       $(EXTRA_CONFIG)
        cd $(DIR_SRC)/gcc-build && make $(MAKETUNING) $(EXTRA_MAKE)
        cd $(DIR_SRC)/gcc-build && make $(EXTRA_INSTALL) install
-       ln -sfv ../usr/bin/cpp /lib
-       ln -sfv gcc /usr/bin/cc
+
+ifeq "$(ROOT)" ""
+       ln -svf ../usr/bin/cpp /lib
+       ln -svf gcc /usr/bin/cc
 else
-ifeq "$(PASS)" "1"
-       cd $(DIR_SRC)/gcc-build && $(DIR_APP)/configure $(EXTRA_CONFIG)
-       cd $(DIR_SRC)/gcc-build && make $(MAKETUNING) $(EXTRA_MAKE)
-       cd $(DIR_SRC)/gcc-build && make $(EXTRA_INSTALL) install
-       ln -sfv gcc /tools/bin/cc
-       ln -sf ccache $(ROOT)/usr/local/bin/$(BUILDTARGET)-gcc
-       ln -sf ccache $(ROOT)/usr/local/bin/$(BUILDTARGET)-g++
-       ln -sf ccache $(ROOT)/usr/local/bin/$(BUILDTARGET)-cc
+ifeq    "$(PASS)" "1"
+       ln -svf libgcc.a $$(/tools/bin/$(CROSSTARGET)-gcc -print-libgcc-file-name | sed 's/libgcc/&_eh/')
 else
-       cd $(DIR_APP) && cp -v gcc/Makefile.in{,.orig}
-       cd $(DIR_APP) && sed 's@\./fixinc\.sh@-c true@' gcc/Makefile.in.orig > gcc/Makefile.in
-       cd $(DIR_APP) && cp -v gcc/Makefile.in{,.tmp}
-       cd $(DIR_APP) && sed 's/^XCFLAGS =$\/& -fomit-frame-pointer/' gcc/Makefile.in.tmp \
-                               > gcc/Makefile.in
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-specs-1.patch
-       cd $(DIR_SRC)/gcc-build && $(DIR_APP)/configure $(EXTRA_CONFIG)
-       cd $(DIR_SRC)/gcc-build && make $(MAKETUNING) $(EXTRA_MAKE)
-       cd $(DIR_SRC)/gcc-build && make $(EXTRA_INSTALL) install
+       ln -svf gcc /tools/bin/cc
 endif
 endif
        @rm -rf $(DIR_APP) $(DIR_SRC)/gcc-build
index 43e7552f3cda7602ab3f41511d16ecb32e2c926d..b1ccbbebde4ade84bc7725d08cb8df2820a9911a 100644 (file)
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 0.14.5
+VER        = 0.18.1.1
 
 THISAPP    = gettext-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -34,14 +34,10 @@ DIR_APP    = $(DIR_SRC)/$(THISAPP)
 # Normal build or /tools build.
 #
 ifeq "$(ROOT)" ""
-ifeq "$(LFS_PASS)" "install"
-  TARGET = $(DIR_INFO)/$(THISAPP)-install
-else
   TARGET = $(DIR_INFO)/$(THISAPP)
   EXTRA_CONFIG = --prefix=/usr --disable-nls
   EXTRA_MAKE = 
   EXTRA_INSTALL =
-endif
 else
   TARGET = $(DIR_INFO)/$(THISAPP)-tools
   EXTRA_CONFIG = --prefix=/tools --disable-shared --disable-nls
@@ -57,7 +53,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = e2f6581626a22a0de66dce1d81d00de3
+$(DL_FILE)_MD5 = 3dd55b952826d2b32f51308f2f91aa89
 
 install : $(TARGET)
 
@@ -88,21 +84,12 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
 ifeq "$(ROOT)" ""
-ifeq "$(LFS_PASS)" "install"
-       cd $(DIR_APP) && ./configure --prefix=/ --libdir=/lib \
-                               --with-included-gettext --disable-rpath \
-                               --enable-relocatable --disable-shared
-       cd $(DIR_APP)/gettext-runtime && make CFLAGS="-Os -fomit-frame-pointer" -C intl/
-       cd $(DIR_APP)/gettext-runtime && make CFLAGS="-Os -fomit-frame-pointer" \
-                               DESTDIR=/opt/$(MACHINE)-uClibc -C intl/ install
-else
        cd $(DIR_APP) && ./configure $(EXTRA_CONFIG)
        cd $(DIR_APP) && make $(EXTRA_MAKE)
        cd $(DIR_APP) && make $(EXTRA_INSTALL) install
-endif
 else
        cd $(DIR_APP)/gettext-tools && ./configure $(EXTRA_CONFIG)
-       cd $(DIR_APP)/gettext-tools && make -C lib
+       cd $(DIR_APP)/gettext-tools && make -C gnulib-lib
        cd $(DIR_APP)/gettext-tools && make -C src msgfmt
        cd $(DIR_APP)/gettext-tools && cp -v src/msgfmt /tools/bin
 endif
index 2c41905d546f4cc7f7a7dd62e57d49f477c5e472..1b43287ac31a5f20dcde592e215f88459b078f84 100644 (file)
--- a/lfs/glib
+++ b/lfs/glib
 
 include Config
 
-VER        = 2.22.2
+VER        = 2.32.3
 
 THISAPP    = glib-$(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       = glib
-PAK_VER    = 3
-
-DEPS       = ""
 
 ###############################################################################
 # Top-level Rules
@@ -44,7 +40,8 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 846a86c74b74d5b16826aa5508940f9b
+$(DL_FILE)_MD5 = 9bd3ac535c24b6c162be13b2c43c5adc
+
 install : $(TARGET)
 
 check : $(patsubst %,$(DIR_CHK)/%,$(objects))
@@ -53,9 +50,6 @@ download :$(patsubst %,$(DIR_DL)/%,$(objects))
 
 md5 : $(subst %,%_MD5,$(objects))
 
-dist: 
-       @$(PAK)
-
 ###############################################################################
 # Downloading, checking, md5sum
 ###############################################################################
@@ -75,8 +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) && ./configure --prefix=/usr --disable-nls
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure --prefix=/usr --sysconfdir=/etc \
+               --with-pcre=system
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
        @rm -rf $(DIR_APP)
index e2638b6e9e4316f4565da4afa96bba2636b02319..ccbdb315881754bec78b90d4a58eae65b03c2bd0 100644 (file)
--- a/lfs/glibc
+++ b/lfs/glibc
 
 include Config
 
-ifeq "$(MACHINE_TYPE)" "arm"
-       VER = 2.5
-else
-       VER = 2.3.6
-endif
+VER        = 2.12-2-gc4ccff1
+PORTS_VER  = 2.12.1
 
 THISAPP    = glibc-$(VER)
 DL_FILE    = $(THISAPP).tar.bz2
@@ -39,23 +36,33 @@ DIR_APP    = $(DIR_SRC)/$(THISAPP)
 #
 ifeq "$(ROOT)" ""
   TARGET = $(DIR_INFO)/$(THISAPP)
-  EXTRA_CONFIG = --prefix=/usr \
-    --disable-profile --enable-add-ons \
-    --enable-kernel=2.6.0 --libexecdir=/usr/lib/glibc
+  EXTRA_CONFIG = \
+       --build=$(BUILDTARGET) \
+       --prefix=/usr \
+       --libexecdir=/usr/lib/glibc
   EXTRA_MAKE =
   EXTRA_INSTALL =
 else
   TARGET = $(DIR_INFO)/$(THISAPP)-tools
-  EXTRA_CONFIG = --prefix=/tools \
-    --disable-profile --enable-add-ons \
-    --enable-kernel=2.6.0 --with-binutils=/tools/bin \
-    --without-gd --with-headers=/tools/include \
-    --without-selinux
+  EXTRA_CONFIG = \
+       --host=$(CROSSTARGET) \
+       --build=$(BUILDTARGET) \
+       --prefix=/tools \
+       --with-headers=/tools/include \
+       libc_cv_forced_unwind=yes \
+       libc_cv_ctors_header=yes \
+       libc_cv_c_cleanup=yes
   EXTRA_MAKE =
   EXTRA_INSTALL =
 endif
 
-EXTRA_CONFIG += --build=$(BUILDTARGET)
+# Enable some extra optimization for the glibc code.
+CFLAGS = -O3 -DNDEBUG -fasynchronous-unwind-tables -fPIC -DPIC \
+       -DNO_CTORS_DTORS_SECTIONS
+
+ifeq "$(MACHINE)" "i586"
+       CFLAGS += -march=i586 -mtune=generic -mno-tls-direct-seg-refs
+endif
 
 ifeq "$(MACHINE_TYPE)" "arm"
        # Disable hardware FP for ARM.
@@ -63,29 +70,30 @@ ifeq "$(MACHINE_TYPE)" "arm"
                --without-fp
 endif
 
+# Add some general configuration flags
+EXTRA_CONFIG += \
+       --disable-profile \
+       --enable-kernel=2.6.0 \
+       --enable-add-ons \
+       --without-selinux \
+       --enable-experimental-malloc \
+       --enable-bind-now
+
 ###############################################################################
 # Top-level Rules
 ###############################################################################
 
-objects = $(DL_FILE) \
-       glibc-libidn-$(VER).tar.bz2
+objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-glibc-libidn-$(VER).tar.bz2 = $(DL_FROM)/glibc-libidn-$(VER).tar.bz2
 
-ifeq "$(MACHINE_TYPE)" "arm"
-       $(DL_FILE)_MD5 = 1fb29764a6a650a4d5b409dda227ac9f
-       glibc-libidn-$(VER).tar.bz2_MD5 = 8787868ba8962d9b125997ec2f25ac01
-else
-       $(DL_FILE)_MD5 = bfdce99f82d6dbcb64b7f11c05d6bc96
-       glibc-libidn-$(VER).tar.bz2_MD5 = 49dbe06ce830fc73874d6b38bdc5b4db
-endif
+$(DL_FILE)_MD5 = 450958ad3d3b5a432b356376904c96b0
 
 # ARM needs glibc-ports
 ifeq "$(MACHINE_TYPE)" "arm"
-       objects += glibc-ports-$(VER).tar.bz2
-       glibc-ports-$(VER).tar.bz2 = $(DL_FROM)/glibc-ports-$(VER).tar.bz2
-       glibc-ports-$(VER).tar.bz2_MD5 = 183f6d46e8fa5e4b2aff240ab1586c2e
+       objects += glibc-ports-$(PORTS_VER).tar.bz2
+       glibc-ports-$(PORTS_VER).tar.bz2 = $(DL_FROM)/glibc-ports-$(PORTS_VER).tar.bz2
+       glibc-ports-$(PORTS_VER).tar.bz2_MD5 = cb01ab976180e98287cef5079e35359e
 endif
 
 install : $(TARGET)
@@ -117,25 +125,126 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) $(DIR_SRC)/glibc-build && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
        @mkdir $(DIR_SRC)/glibc-build
-ifeq "$(MACHINE_TYPE)" "arm"
-       cd $(DIR_APP) && tar jxf $(DIR_DL)/glibc-ports-$(VER).tar.bz2
-       cd $(DIR_APP) && mv -v glibc-ports-$(VER) ports
 
-       cd $(DIR_APP)/ports && patch -Np1 -i $(DIR_SRC)/src/patches/glibc-ports-avoid-using-asm-procinfo.patch
+ifeq "$(MACHINE_TYPE)" "arm"
+       cd $(DIR_APP) && tar jxf $(DIR_DL)/glibc-ports-$(PORTS_VER).tar.bz2
+       cd $(DIR_APP) && mv -v glibc-ports-$(PORTS_VER) ports
 
-       # asm/page.h should not be included in sysdeps/unix/sysv/linux/arm/ioperm.c.
-       cd $(DIR_APP) && sed "/asm\/page.h/d" -i ports/sysdeps/unix/sysv/linux/arm/ioperm.c
-else
-       cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/$(THISAPP)-dont_use_origin_on_privil_exec.patch
+       # http://sourceware.org/bugzilla/show_bug.cgi?id=12354
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc-cfi-entry-not-closed.patch
 endif
 
+       # Apply all patches.
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-aliasing.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-fedora.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-getlogin-r.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-localedata.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-recvmmsg.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh580498.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh582738.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh587360.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh593396.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh593686.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh601686.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh607010.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh607461.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh615090.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh615701.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh621959.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh623187.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh625893.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh630801.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh631011.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh641128.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh642584.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh643822.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh645672.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh646954.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh647448.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh652661.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh656014.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh656530.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh657572.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh661982.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh667974.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh676076.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh676591.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh681054.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh688720.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh688980.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh689471.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh692177.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh692838.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh694386.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh695595.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh695963.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh696472.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh697421.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh699724.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh700507.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh703480.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh703481.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh705465.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh711927.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh711987.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh712248.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh713134.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh714823.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh718057.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh726517.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh730379.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh731042.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh736346.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh737778.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh738665.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh738763.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh739184.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh739971.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh740506.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh740506-2.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh749188.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh750531.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh751750.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh752122.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh757888.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh766513.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh767146.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh767693.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh767693-2.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh767746.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh771342.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh782585.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh784402.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh785984.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh788959.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh788959-2.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh789189.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh789209.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh789238.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh789238-2.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh794817.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh794817-2.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh795498.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh797094-1.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh797094-2.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh804630.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh804689.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh808337.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh808545.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh809602.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh833716.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh837026.patch
+
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc-resolv-stack_chk_fail.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc-remove-ctors-dtors-output-sections.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc-test-installation.pl-nss_test1.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc-test-installation.pl-libgcc_s.patch
+
+       # Fixes:
+       #   Makefile:235: *** mixed implicit and normal rules.  Stop.
+       cd $(DIR_APP) && sed -i 's/ot \$$/ot:\n\ttouch $$@\n$$/' manual/Makefile
+
 ifeq "$(ROOT)" ""
-ifeq "$(MACHINE)" "i586"
-       cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/$(THISAPP)-linux_types-1.patch
-       cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/$(THISAPP)-inotify-1.patch
-endif
-       # This locale causes a loop on bash login - exclude it
-       cd $(DIR_APP) && sed -i '/vi_VN.TCVN/d' localedata/SUPPORTED
 ifeq "$(MACHINE_TYPE)" "arm"
        cd $(DIR_APP) && sed -i 's|libs -o|libs -L/usr/lib -Wl,-dynamic-linker=/lib/ld-linux.so.3 -o|' \
                scripts/test-installation.pl
@@ -144,27 +253,22 @@ else
                scripts/test-installation.pl
 endif
 endif
-       cd $(DIR_SRC)/glibc-build && CFLAGS="$(CFLAGS)" $(DIR_APP)/configure $(EXTRA_CONFIG)
 
-ifeq "$(ROOT)" ""
-       touch /etc/ld.so.conf
-       cd $(DIR_SRC)/glibc-build && make $(MAKETUNING) $(EXTRA_MAKE)
+       cd $(DIR_SRC)/glibc-build && \
+               CFLAGS="$(CFLAGS) -fno-asynchronous-unwind-tables" \
+               $(DIR_APP)/configure $(EXTRA_CONFIG)
+       cd $(DIR_SRC)/glibc-build && make PARALLELMFLAGS=$(MAKETUNING) \
+               CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)"
        cd $(DIR_SRC)/glibc-build && make $(EXTRA_INSTALL) install
-ifeq "$(MACHINE)" "i586"
-       cp -v $(DIR_APP)/sysdeps/unix/sysv/linux/inotify.h /usr/include/sys
-endif
-else
-       -mkdir /tools/etc
-       touch /tools/etc/ld.so.conf
-       cd $(DIR_SRC)/glibc-build && make $(MAKETUNING) $(EXTRA_MAKE)
-       cd $(DIR_SRC)/glibc-build && make $(EXTRA_INSTALL) install
-endif
 
-       # Creating the locales
 ifeq "$(ROOT)" ""
+       # Creating the locales
        mkdir -p /usr/lib/locale
        cd $(DIR_SRC)/glibc-build && localedef -i en_US -f ISO-8859-1 en_US
        cd $(DIR_SRC)/glibc-build && localedef -i en_US -f UTF-8      en_US.utf8
+
+       # Timezone data will be shipped by tzdata.
+       rm -rfv /usr/share/zoneinfo
 endif
        @rm -rf $(DIR_APP) $(DIR_SRC)/glibc-build
        @$(POSTBUILD)
diff --git a/lfs/gmp b/lfs/gmp
index 5b50081500103ab182c74dcdf770e3d28a2d97c6..cf5227671155965897c0bc8c6d3416fc287f4e62 100644 (file)
--- a/lfs/gmp
+++ b/lfs/gmp
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 4.2.4
+VER        = 5.0.5
 
 THISAPP    = gmp-$(VER)
 DL_FILE    = $(THISAPP).tar.bz2
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = fc1e3b3a2a5038d4d74138d0b9cf8dbe
+$(DL_FILE)_MD5 = 041487d25e9c230b0c42b106361055fe
 
 install : $(TARGET)
 
similarity index 88%
rename from lfs/splix
rename to lfs/gmp-compat
index c9e8e47e123212b7068b70d2af48440eb1a9b3ce..3d20e889a013f3eec690f9dbc2c1f5edc7073c88 100644 (file)
--- a/lfs/splix
 
 include Config
 
-VER        = 2.0.0-rc2
+VER        = 4.3.2
 
-THISAPP    = splix-$(VER)
+THISAPP    = gmp-$(VER)
 DL_FILE    = $(THISAPP).tar.bz2
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
-PROG       = splix
-PAK_VER    = 2
 
-DEPS       = "cups"
+ifeq "$(MACHINE)" "i586"
+       CONFIGURE_ARGS = ABI=32
+endif
 
 ###############################################################################
 # Top-level Rules
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 4381ccf9a38b08012dbdc3c0f28414fd
+$(DL_FILE)_MD5 = dd60683d7057917e34630b4a787932e8
 
 install : $(TARGET)
 
@@ -54,9 +54,6 @@ download :$(patsubst %,$(DIR_DL)/%,$(objects))
 
 md5 : $(subst %,%_MD5,$(objects))
 
-dist: 
-       $(PAK)
-
 ###############################################################################
 # Downloading, checking, md5sum
 ###############################################################################
@@ -77,10 +74,10 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
-ifeq "$(MACHINE_TYPE)" "arm"
-       cd $(DIR_APP) && sed -e "s/ceill/ceil/g" -i src/*.cpp
-endif
-       cd $(DIR_APP) && make DISABLE_JBIG=1 $(MAKETUNING) $(EXTRA_MAKE)
-       cd $(DIR_APP) && make install
+       cd $(DIR_APP) && $(CONFIGURE_ARGS) ./configure --prefix=/usr \
+               --enable-cxx --enable-mpbsd --disable-nls
+       cd $(DIR_APP) && make $(MAKETUNING)
+       cd $(DIR_APP) && install -m 644 .libs/libgmp.so.3.5.2 /usr/lib
+       ln -svf libgmp.so.3.5.2 /usr/lib/libgmp.so.3
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index c596a5fe442f2cce3d652d9ee6112fe288b2bba5..5e5ead919a3d1d563fb72c7626342e6f203f856d 100644 (file)
--- a/lfs/gnupg
+++ b/lfs/gnupg
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 1.4.5
+VER        = 1.4.12
 
 THISAPP    = gnupg-$(VER)
 DL_FILE    = $(THISAPP).tar.bz2
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 811525965b4c0987e6418a7729a6444d
+$(DL_FILE)_MD5 = ce3742e5c7912559cab7894ad8ba7f6b
 
 install : $(TARGET)
 
diff --git a/lfs/gpgme b/lfs/gpgme
new file mode 100644 (file)
index 0000000..12da4cb
--- /dev/null
+++ b/lfs/gpgme
@@ -0,0 +1,84 @@
+###############################################################################
+#                                                                             #
+# 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        = 1.3.2
+
+THISAPP    = gpgme-$(VER)
+DL_FILE    = $(THISAPP).tar.bz2
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+PROG       = gpgme
+PAK_VER    = 1
+
+DEPS       = "libgpg-error libassuan"
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 326fe97077141713f0930aa87949a287
+
+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 jxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure --prefix=/usr
+       cd $(DIR_APP) && make $(MAKETUNING)
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
index 4b3e1e1bbd9038e8db6db98e8d95945f53572567..e9b0b18d4db801dc629b81ccd7caf1751023bb79 100644 (file)
--- a/lfs/grep
+++ b/lfs/grep
 
 include Config
 
-VER        = 2.5.1a
+VER        = 2.14
 
 THISAPP    = grep-$(VER)
-DL_FILE    = $(THISAPP).tar.bz2
+DL_FILE    = $(THISAPP).tar.xz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 
@@ -41,7 +41,7 @@ ifeq "$(ROOT)" ""
 else
   TARGET = $(DIR_INFO)/$(THISAPP)-tools
   EXTRA_CONFIG = --prefix=/tools --disable-nls \
-    --disable-perl-regexp
+    --disable-perl-regexp --without-included-regex
   EXTRA_MAKE = 
   EXTRA_INSTALL = 
 endif
@@ -54,7 +54,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 52202fe462770fa6be1bb667bd6cf30c
+$(DL_FILE)_MD5 = d4a3f03849d1e17ce56ab76aa5a24cab
 
 install : $(TARGET)
 
@@ -83,11 +83,7 @@ $(subst %,%_MD5,$(objects)) :
 
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
-       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
-ifeq "$(ROOT)" ""
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-redhat_fixes-2.patch
-       cd $(DIR_APP) && chmod +x tests/fmbtest.sh
-endif
+       @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
index ad6e304aa61382257c0a6c786320410c80ec6635..6850a3a58fd8091a57e51037b4e547198ee0fd4b 100644 (file)
--- a/lfs/grub
+++ b/lfs/grub
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007  Michael Tremer & Christian Schmidt                      #
+# Copyright (C) 2007-2012  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        #
@@ -73,63 +73,27 @@ $(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/grub-0.97-disk_geometry-1.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.90-append.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.90-symlinkmenulst.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.91-splashimagehelp.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.93-configfile.patch
-       cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/grub-0.93-endedit.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.93-graphics-bootterm.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.93-special-device-names.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.94-i2o.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.95-graphics.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.95-hiddenmenu-tweak.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.95-md.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.95-md-rework.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.95-md-mbr.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.95-moreraid.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.95-nonmbr.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.95-odirect.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.95-recheck-bad.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.95-staticcurses.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.95-xpmjunk.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-cmdline-size.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-datadir.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-dmraid.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-dmraid-partition-names.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-install.in.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-mactel-kbd.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-mpath.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-nxstack.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-nx-multiinstall.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-once.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.95-splash-error-term.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.94-installcopyonly.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-prototypes.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-stderr.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-bz429187-cciss.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-dmraid-recheck-bad.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-mdadm-path.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97_grub-install_virtio.patch
-
-       # XXX Does not work anymore
-       #cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97_grub-install_virtio.patch
-
-       cd $(DIR_APP) && perl -pi -e 's,/usr/lib/grub/i386-pc,/usr/share/grub/i386-pc,' docs/grub.texi
-       cd $(DIR_APP) && sed -i 's/AM_INIT_AUTOMAKE/&\nAM_PROG_AS/' configure.ac
-
-       cd $(DIR_APP) && aclocal && autoheader && autoconf && automake --add-missing
-       cd $(DIR_APP) && CFLAGS="-Os -s -fno-strict-aliasing" ./configure --prefix=/usr
 
+       # 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
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
 
        # grub files
        mkdir -vp /boot/grub
-       cp -v /usr/share/grub/i386-pc/stage{1,2} /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
 
+       # generate default file
+       grub-set-default 0
+
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index 33a43d053e7d63feeb0ae9a38261f75ac7cb4778..e4a44bf82f821db5928b8338b1b50b105953c013 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007  Michael Tremer & Christian Schmidt                      #
+# Copyright (C) 2007-2012  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        #
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 8.9
+VER        = 9.42
 
 THISAPP    = hdparm-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 19fa013956612581af7d00907990ac84
+$(DL_FILE)_MD5 = 0af5a38b212fe08f5afbe5e37f34b40b
 
 install : $(TARGET)
 
index b7283c8ef356ea251632ea3a1a6696f17e7876d0..01768b8eec3c6cea38428a19d018c2f1fe6c7da1 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2010  IPFire Team  <info@ipfire.org>                          #
+# Copyright (C) 2007-2012  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        #
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 0.7.3
+VER        = 1.0
 
 THISAPP    = hostapd-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -32,7 +32,7 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = hostapd
-PAK_VER    = 21
+PAK_VER    = 22
 
 DEPS       = ""
 
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 91a7c8d0f090b7104152d3455a84c112
+$(DL_FILE)_MD5 = 236247a7bbd4f60d5fa3e99849d1ffc9
 
 install : $(TARGET)
 
@@ -82,9 +82,6 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        -cp /usr/src/linux/include/linux/netfilter/nfnetlink.h /usr/include/linux/netfilter/
        -cp /usr/src/linux/include/linux/netfilter/nfnetlink_compat.h /usr/include/linux/netfilter/
        cd $(DIR_APP)/hostapd && cp $(DIR_SRC)/config/hostapd/config ./.config
-ifeq "$(MACHINE_TYPE)" "arm"
-       cd $(DIR_APP)/hostapd && sed -e "s/^CONFIG_DRIVER_MADWIFI=y/#&/" -i .config
-endif
        cd $(DIR_APP)/hostapd && sed -e "s@/usr/local@/usr@g" -i Makefile
        cd $(DIR_APP)/hostapd && make $(MAKETUNING) $(EXTRA_MAKE)
        cd $(DIR_APP)/hostapd && make install
index 1f86586371f61e09722007613de6a55b5e093fec..cfcdeef5412da22f54f6ad1f35f65498c90ec131 100644 (file)
--- a/lfs/hplip
+++ b/lfs/hplip
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 2.7.10
+VER        = 3.12.6
 
 THISAPP    = hplip-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -32,7 +32,7 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = hplip
-PAK_VER    = 1
+PAK_VER    = 2
 
 DEPS       = ""
 
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = eafb815ca4b4bb5a2f35a76ee3c2dc72
+$(DL_FILE)_MD5 = 5303938e8630775ea6fb383af85775e5
 
 install : $(TARGET)
 
index 6716a9569620f0c356f890e442fb646d1856496a..6804849a893b708cdca9699147920275e91dfe38 100644 (file)
@@ -27,11 +27,7 @@ include Config
 VER        = ipfire
 
 THISAPP    = hwdata
-ifeq "$(LFS_PASS)" "install"
-  TARGET     = $(DIR_INFO)/$(THISAPP)-install
-else
-  TARGET     = $(DIR_INFO)/$(THISAPP)
-endif
+TARGET     = $(DIR_INFO)/$(THISAPP)
 
 ###############################################################################
 # Top-level Rules
@@ -53,11 +49,6 @@ md5 :
 
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
-ifeq "$(LFS_PASS)" "install"
-       -mkdir -p -m 755 /install/initrd/usr/share/hwdata
-       install -m 644 $(DIR_SRC)/src/hwdata/*.ids /install/initrd/usr/share/hwdata
-else
        -mkdir -p -m 755 /usr/share/hwdata
        install -m 644 $(DIR_SRC)/src/hwdata/*.ids /usr/share/hwdata
-endif
        @$(POSTBUILD)
diff --git a/lfs/igb b/lfs/igb
index ce7f8ad10e46a458072d4f89dcda92f6e7ad7dce..29da8bb888ee9127f1c794db8b63dbfece6ce749 100644 (file)
--- a/lfs/igb
+++ b/lfs/igb
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2011  IPFire Team <info@ipfire.org>                      #
+# Copyright (C) 2007-2012  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
 
 VERSUFIX   = ipfire$(KCFG)
+ifeq "$(KCFG)" "-xen"
+       KVER = 2.6.32.60
+       MODPATH = /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/igb/
+else
+       MODPATH = /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/ethernet/intel/igb/
+endif
 
-VER        = 3.2.10
+VER        = 3.4.8
 
 THISAPP    = igb-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -42,7 +48,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 22d09e7f7c8f0b23f744914e41c7ce43
+$(DL_FILE)_MD5 = 36bd0eface2761577f52d84d5c5b78ea
 
 install : $(TARGET)
 
@@ -75,12 +81,10 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        #Save original igb module
-       -mv /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/igb/igb.ko \
-           /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/igb/igb.ko.org
+       -mv $(MODPATH)/igb.ko \
+           $(MODPATH)//igb.ko.org
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
-       cd $(DIR_APP)/src && make -C /lib/modules/$(KVER)-$(VERSUFIX)/build/ \
-               SUBDIRS=$(DIR_APP)/src modules
-       cd $(DIR_APP)/src && install -m 644 igb.ko \
-               /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/igb
+       cd $(DIR_APP)/src && make BUILD_KERNEL=$(KVER)-$(VERSUFIX)
+       cd $(DIR_APP)/src && install -m 644 igb.ko $(MODPATH)
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index 092211bc8c9b8398fd2ce8f8a3b4a4dca990e0fe..51654c5ad6db6c40025f06cfc6703ff9eff55e02 100644 (file)
@@ -77,6 +77,7 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_SRC)/imspector && sed -e "s/^SSL_LIBS.*/& -lcrypto/" -i Makefile
        cd $(DIR_SRC)/imspector && make install
        -mv /usr/etc/imspector /etc/imspector
        -mv /etc/imspector/imspector /etc/imspector
index c1d51cef12859f63e2d4cef6bc8481391fef145d..468c2af32f5cf7600787da6b5c93f76e20cc1137 100644 (file)
@@ -72,6 +72,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-gcc4_fixes-3.patch
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-daemon_fixes-1.patch
+       cd $(DIR_APP) && sed -i '/#include/a #include <stdlib.h>' libicmp/icmp_timestamp.c
        cd $(DIR_APP) && ./configure --prefix=/usr --libexecdir=/usr/sbin \
                                --sysconfdir=/etc --localstatedir=/var \
                                --mandir=/usr/share/man --infodir=/usr/share/info \
index fe221e84fca1ce384ac519020fa0be003db40d52..740364438e1047af763a07bffb2473dea55b3655 100644 (file)
@@ -71,6 +71,9 @@ $(TARGET) :
 
        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
 
index 7210c0d2ea8e97a9dc216fb4372766c22d33fbb8..213b46e2724dc95c8deb9e2bfee85566b77f089a 100644 (file)
@@ -166,6 +166,8 @@ $(TARGET) :
        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
+       ln -sf ../init.d/setclock    /etc/rc.d/rc0.d/K47setclock
+       ln -sf ../init.d/setclock    /etc/rc.d/rc6.d/K47setclock
        ln -sf ../init.d/console     /etc/rc.d/rcsysinit.d/S70console
        ln -sf ../init.d/firstsetup  /etc/rc.d/rcsysinit.d/S75firstsetup
        ln -sf ../init.d/localnet    /etc/rc.d/rcsysinit.d/S80localnet
@@ -197,10 +199,13 @@ $(TARGET) :
                ln -sf any /etc/rc.d/init.d/networking/$$i; \
        done
 
-       # ARM does not need checkfstab
+       # ARM does not need checkfstab and acpid
 ifeq "$(MACHINE_TYPE)" "arm"
-       rm -vf /etc/rc.d/init.d/checkfstab
+       rm -vf /etc/rc.d/init.d/{acpid,checkfstab}
 else
+       ln -sf ../init.d/acpid       /etc/rc.d/rc3.d/S12acpid
+       ln -sf ../init.d/acpid       /etc/rc.d/rc0.d/K87acpid
+       ln -sf ../init.d/acpid       /etc/rc.d/rc6.d/K87acpid
        ln -sf ../init.d/checkfstab  /etc/rc.d/rcsysinit.d/S19checkfstab
 endif
 
index 76619630de10e80682e3864852412b056514e269..740793a04ac2aea846b8c301c40be9e7d3852536 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2011  IPFire Team  <info@ipfire.org>                          #
+# Copyright (C) 2007-2012  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        #
@@ -61,7 +61,7 @@ $(TARGET) :
            -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 \
-               probehw.sh downloadsource.sh mountsource.sh mountdest.sh /install/initrd/bin
+               downloadsource.sh mountsource.sh mountdest.sh /install/initrd/bin
        #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
diff --git a/lfs/ipfireseeder b/lfs/ipfireseeder
deleted file mode 100644 (file)
index 8834bbc..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-###############################################################################
-#                                                                             #
-# IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2011  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        = 1.00
-
-THISAPP    = ipfireseeder-$(VER)
-DL_FILE    = ipfire-2.9.i586-full-core51.iso.torrent
-
-DL_FROM    = $(URL_IPFIRE)
-DIR_APP    = $(DIR_SRC)/$(THISAPP)
-TARGET     = $(DIR_INFO)/$(THISAPP)
-SUP_ARCH   = i586
-PROG       = ipfireseeder
-PAK_VER    = 27
-
-DEPS       = "rtorrent"
-
-###############################################################################
-# Top-level Rules
-###############################################################################
-
-objects = $(DL_FILE)
-
-$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-
-$(DL_FILE)_MD5 = fa40cd03e4b0a11f8f703595a5c01a76
-
-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)
-       -mkdir -p /var/log/seeder /var/ipfire/seeder
-       cp -vf $(DIR_DL)/$(DL_FILE) /var/ipfire/seeder
-       echo "Folder for IPFireseeder data" > /var/log/seeder/info
-       @$(POSTBUILD)
index 50ccf40df3014209153c13f5460aaca6770595b6..42a8184d6bd476a79abc4deac1157ebf5526b83e 100644 (file)
 
 include Config
 
-VER        = 2.6.16-060323
+VER        = 3.5.1
 
 THISAPP    = iproute2-$(VER)
-DL_FILE    = $(THISAPP).tar.gz
+DL_FILE    = $(THISAPP).tar.xz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
@@ -35,13 +35,12 @@ TARGET     = $(DIR_INFO)/$(THISAPP)
 ###############################################################################
 # Top-level Rules
 ###############################################################################
-objects = $(DL_FILE) htb3.6-020525.tgz
+
+objects = $(DL_FILE)
 
 $(DL_FILE)             = $(DL_FROM)/$(DL_FILE)
-htb3.6-020525.tgz      = $(DL_FROM)/htb3.6-020525.tgz
 
-$(DL_FILE)_MD5         = f31d4516b35bbfeaa72c762f5959e97c
-htb3.6-020525.tgz_MD5  = 3064fd8642ce6a7e155a29c5205b99d4
+$(DL_FILE)_MD5         = d4425b44edd5eacd6099e672e4baacbf
 
 install : $(TARGET)
 
@@ -70,9 +69,7 @@ $(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) && tar xfz $(DIR_DL)/htb3.6-020525.tgz *.diff
-#      cd $(DIR_APP) && for i in htb3*tc.diff ; do patch -Np1 < $$i; done
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
        cd $(DIR_APP) && make $(MAKETUNING) SBINDIR=/sbin
        cd $(DIR_APP) && make SBINDIR=/sbin install
        cd $(DIR_APP) && mv -v /sbin/arpd /usr/sbin
index 6d369909bc2a9e6913138a1208a6d5ed9eb1eba5..ceb560d95157c8f7599faef405f8bd0ced9e9382 100644 (file)
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 1.4.6
+VER        = 1.4.14
 
 THISAPP    = iptables-$(VER)
 DL_FILE    = $(THISAPP).tar.bz2
@@ -45,7 +45,7 @@ netfilter-layer7-v2.22.tar.gz                 = $(URL_IPFIRE)/netfilter-layer7-v2.22.tar.gz
 libnfnetlink-1.0.0.tar.bz2             = $(URL_IPFIRE)/libnfnetlink-1.0.0.tar.bz2
 libnetfilter_queue-0.0.17.tar.bz2      = $(URL_IPFIRE)/libnetfilter_queue-0.0.17.tar.bz2
 
-$(DL_FILE)_MD5 = c67cf30e281a924def6426be0973df56
+$(DL_FILE)_MD5 = 5ab24ad683f76689cfe7e0c73f44855d
 netfilter-layer7-v2.22.tar.gz_MD5 = 98dff8a3d5a31885b73341633f69501f
 libnfnetlink-1.0.0.tar.bz2_MD5 = 016fdec8389242615024c529acc1adb8
 libnetfilter_queue-0.0.17.tar.bz2_MD5 = 2cde35e678ead3a8f9eb896bf807a159
@@ -89,16 +89,17 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
                         ./extensions/
 
        # ipp2p 0.8.2-pomng
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/iptables-1.4.6-ipp2p-0.8.2-pomng.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/iptables-1.4.14-ipp2p-0.8.2-ipfire.patch
 
        # imq
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/iptables-1.4.6-imq_test1.patch
-       chmod +x $(DIR_APP)/extensions/.IMQ-test*
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/iptables-1.4.12-IMQ-test4.diff
+#      chmod +x $(DIR_APP)/extensions/.IMQ-test*
 
        cd $(DIR_APP) && ./configure  --prefix=/usr --with-ksource=/usr/src/linux \
                                    --libdir=/lib --includedir=/usr/include --enable-libipq \
                                    --libexecdir=/lib --bindir=/sbin \
-                                   --sbindir=/sbin --mandir=/usr/share/man
+                                   --sbindir=/sbin --mandir=/usr/share/man \
+                                   --with-pkgconfigdir=/usr/lib/pkgconfig
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
 
diff --git a/lfs/kbd b/lfs/kbd
index 72e509f0d0e0d5a9e02e8aa76031f6eaab6fb713..1c9924279826e38c26702ad116da225d09b8c34c 100644 (file)
--- a/lfs/kbd
+++ b/lfs/kbd
@@ -30,11 +30,7 @@ THISAPP    = kbd-$(VER)
 DL_FILE    = $(THISAPP).tar.bz2
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
-ifeq "$(LFS_PASS)" "install"
-  TARGET     = $(DIR_INFO)/$(THISAPP)-install
-else
-  TARGET     = $(DIR_INFO)/$(THISAPP)
-endif
+TARGET     = $(DIR_INFO)/$(THISAPP)
 
 ###############################################################################
 # Top-level Rules
@@ -78,21 +74,9 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-more-programs-1.patch
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-backspace-1.patch
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-gcc4_fixes-1.patch
-ifeq "$(LFS_PASS)" "install"
-       cd $(DIR_APP) && CFLAGS="-Os -fomit-frame-pointer" ./configure --disable-nls
-       cd $(DIR_APP)/src && make CFLAGS="-Os -fomit-frame-pointer" DATA_DIR=/lib/kbd BINDIR=/bin setfont kbd_mode dumpkeys loadkeys loadunimap showconsolefont
-       cd $(DIR_APP)/src && install -m 0755 setfont loadunimap kbd_mode dumpkeys loadkeys showconsolefont unicode_start unicode_stop /install/initrd/bin
-       mkdir -p /install/initrd/lib/kbd/consolefonts
-       cd $(DIR_APP) && install -m 0644 data/consolefonts/lat0-16.psfu /install/initrd/lib/kbd/consolefonts
-       cd $(DIR_APP) && install -m 0644 data/consolefonts/lat1-16.psfu /install/initrd/lib/kbd/consolefonts
-       cd $(DIR_APP) && install -m 0644 data/consolefonts/lat2-16.psfu /install/initrd/lib/kbd/consolefonts
-       cd $(DIR_APP) && install -m 0644 data/consolefonts/lat5-16.psfu /install/initrd/lib/kbd/consolefonts
-       cd $(DIR_APP) && install -m 0644 data/consolefonts/iso07u-16.psfu /install/initrd/lib/kbd/consolefonts
-else
        cd $(DIR_APP) && ./configure --datadir=/lib/kbd --disable-nls
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
        mv -v /usr/bin/{kbd_mode,openvt,setfont} /bin
-endif
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
diff --git a/lfs/kudzu b/lfs/kudzu
deleted file mode 100644 (file)
index f66c325..0000000
--- a/lfs/kudzu
+++ /dev/null
@@ -1,92 +0,0 @@
-###############################################################################
-#                                                                             #
-# 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        = 1.2.64
-
-THISAPP    = kudzu-$(VER)
-DL_FILE    = kudzu-$(VER).tar.gz
-DL_FROM    = $(URL_IPFIRE)
-DIR_APP    = $(DIR_SRC)/$(THISAPP)
-ifeq "$(LFS_PASS)" "install"
-  TARGET     = $(DIR_INFO)/$(THISAPP)-install
-else
-  TARGET     = $(DIR_INFO)/$(THISAPP)
-endif
-
-###############################################################################
-# Top-level Rules
-###############################################################################
-
-objects = $(DL_FILE)
-
-$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-
-$(DL_FILE)_MD5 = 3eb6fae5e8f62409fd5149f2079f6060
-
-install : $(TARGET)
-
-check : $(patsubst %,$(DIR_CHK)/%,$(objects))
-
-download :$(patsubst %,$(DIR_DL)/%,$(objects))
-
-md5 : $(subst %,%_MD5,$(objects))
-
-###############################################################################
-# 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 zxf $(DIR_DL)/$(DL_FILE)
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kudzu-usbnet.patch
-ifeq "$(LFS_PASS)" "install"
-       cd $(DIR_APP) && patch -N < $(DIR_SRC)/src/patches/kudzu-link-lintl.diff
-       cd $(DIR_APP) && make RPM_OPT_FLAGS="-O2 -I/opt/$(MACHINE)-uClibc/include" \
-               ARCH=$(MACHINE)
-       cd $(DIR_APP) && install -m 0755 kudzu /install/initrd/bin/kudzu
-       #cd $(DIR_APP) && install -m 0644 libkudzu.a /install/initrd/lib
-       #cd $(DIR_APP) && install -m 0644 libkudzu_loader.a /install/initrd/lib
-else
-       rm -rf /usr/sbin/kudzu
-       cd $(DIR_APP) && ARCH=$(MACHINE) RPM_OPT_FLAGS="$(CFLAGS)" make
-       cd $(DIR_APP) && ARCH=$(MACHINE) RPM_OPT_FLAGS="$(CFLAGS)" make install
-       cd $(DIR_APP) && ARCH=$(MACHINE) RPM_OPT_FLAGS="$(CFLAGS)" make install-program
-endif
-       @rm -rf $(DIR_APP)
-       @$(POSTBUILD)
index 0280b5e69a43afc986886be355e93d0002134d15..90bd790a9d0e4dac33f448fe7fa836f3a57ac977 100644 (file)
@@ -26,7 +26,7 @@ include Config
 
 VERSUFIX=ipfire$(KCFG)
 
-VER        = 3.0b
+VER        = 3.6
 
 THISAPP    = kvm-kmod-$(VER)
 DL_FILE    = $(THISAPP).tar.bz2
@@ -43,7 +43,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 19792041adc25779b31ea5c5fdca7d8c
+$(DL_FILE)_MD5 = 3e51d395d6a0ecac6ae600a0515880c2
 
 install : $(TARGET)
 
@@ -76,7 +76,6 @@ $(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)_remove_pvclock_scale_delta_redefinition.patch
        cd $(DIR_APP) && ./configure --kerneldir=/usr/src/linux
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && install -m 644 x86/*.ko \
diff --git a/lfs/lcr b/lfs/lcr
index d6734ed9d56113f91976b94084810281fd941e5f..061cde9ce498d9bf68ad6497261fff961e741ef4 100644 (file)
--- a/lfs/lcr
+++ b/lfs/lcr
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2011  IPFire Team  <info@ipfire.org>                     #
+# Copyright (C) 2007-2012  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        = 1.10
+VER        = 20121008
 
 THISAPP    = lcr-$(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       = lcr
-PAK_VER    = 4
+PAK_VER    = 5
 
 DEPS       = ""
 
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = ccde843ee92f4d75f697d8a9e9fa3ba9
+$(DL_FILE)_MD5 = 6c5e25329be107e30436b716bafc786f
 
 install : $(TARGET)
 
@@ -76,10 +76,14 @@ $(subst %,%_MD5,$(objects)) :
 
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
-       @rm -rf $(DIR_SRC)/lcr && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
-       cd $(DIR_SRC)/lcr && sed -i 's|usr/local/lcr|var/ipfire/lcr|g' Makefile.in
-       cd $(DIR_SRC)/lcr && sed -i 's|usr/local/lcr|var/ipfire/lcr|g' Makefile.am
-       cd $(DIR_SRC)/lcr && ./configure --prefix=/usr
+       @rm -rf $(DIR_SRC)/lcr && cd $(DIR_SRC) && tar Jxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_SRC)/lcr && sed -i -e "s|^EXTENSIONdir=.*|EXTENSIONdir=/var/ipfire/lcr/extensions|g" \
+                                       Makefile.am
+       cd $(DIR_SRC)/lcr && ./autogen.sh
+       cd $(DIR_SRC)/lcr && ./configure --prefix=/usr \
+                                        --sysconfdir=/var/ipfire \
+                                        --localstatedir=/var \
+                                        --datarootdir=/var/ipfire
        cd $(DIR_SRC)/lcr && make $(MAKETUNING)
        cd $(DIR_SRC)/lcr && make install
        mv /var/ipfire/lcr/routing.conf /var/ipfire/lcr/routing.conf.org
index 0a4833f37af32ac7e54c98d64cb42adf8365420e..d9680c87382cb6543e7cee86b41f185d5fc5b1d6 100644 (file)
--- a/lfs/less
+++ b/lfs/less
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 394
+VER        = 443
 
 THISAPP    = less-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = a9f072ccefa0d315b325f3e9cdbd4b97
+$(DL_FILE)_MD5 = 47db098fb3cdaf847b3c4be05ee954fc
 
 install : $(TARGET)
 
diff --git a/lfs/libassuan b/lfs/libassuan
new file mode 100644 (file)
index 0000000..3a32984
--- /dev/null
@@ -0,0 +1,84 @@
+###############################################################################
+#                                                                             #
+# 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.0.3
+
+THISAPP    = libassuan-$(VER)
+DL_FILE    = $(THISAPP).tar.bz2
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+PROG       = libassuan
+PAK_VER    = 1
+
+DEPS       = ""
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 179d1918325fdb928c7bd90b8a514fc7
+
+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 jxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure --prefix=/usr
+       cd $(DIR_APP) && make $(MAKETUNING)
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
similarity index 93%
rename from lfs/centerim
rename to lfs/libffi
index 8e874a7a0083c3476140f370ca9e2e53ddb1a6d7..0e94b3177fca473b4a5b438fae3d6d6241b0044b 100644 (file)
 
 include Config
 
-VER        = 4.22.1
+VER        = 3.0.11
 
-THISAPP    = centerim-$(VER)
+THISAPP    = libffi-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
-PROG       = centerim
-PAK_VER    = 1
-
-DEPS       = ""
 
 ###############################################################################
 # Top-level Rules
@@ -44,8 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = d128b54e3cc04a6ee651c51682a497a9
-
+$(DL_FILE)_MD5 = f69b9693227d976835b4857b1ba7d0e3
 install : $(TARGET)
 
 check : $(patsubst %,$(DIR_CHK)/%,$(objects))
@@ -55,7 +50,7 @@ download :$(patsubst %,$(DIR_DL)/%,$(objects))
 md5 : $(subst %,%_MD5,$(objects))
 
 dist: 
-       $(PAK)
+       @$(PAK)
 
 ###############################################################################
 # Downloading, checking, md5sum
@@ -77,7 +72,7 @@ $(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) && ./configure --prefix=/usr --disable-nls
+       cd $(DIR_APP) && ./configure --prefix=/usr
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
        @rm -rf $(DIR_APP)
diff --git a/lfs/libgpg-error b/lfs/libgpg-error
new file mode 100644 (file)
index 0000000..59108c1
--- /dev/null
@@ -0,0 +1,84 @@
+###############################################################################
+#                                                                             #
+# 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        = 1.10
+
+THISAPP    = libgpg-error-$(VER)
+DL_FILE    = $(THISAPP).tar.bz2
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+PROG       = libgpg-error
+PAK_VER    = 1
+
+DEPS       = ""
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 736a03daa9dc5873047d4eb4a9c22a16
+
+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 jxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure --prefix=/usr
+       cd $(DIR_APP) && make $(MAKETUNING)
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
index 548374da07c86b0adfb2ecbc49582620dd449f6e..ea0491e6dbb6c1a637397bb7610e735ea8996b42 100644 (file)
@@ -77,6 +77,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/libmad-0.15.1b-cflags.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/libmad-0.15.1b-cflags-O2.patch
+       cd $(DIR_APP) && autoconf
+
        cd $(DIR_APP) && ./configure --prefix=/usr
        cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE)
        cd $(DIR_APP) && make install
index d1747752eeb3766c1bf53905ef509fc17eac5adf..ea557d9132f5c2b6dace8842d514f715ae4e0cd1 100644 (file)
--- a/lfs/libnl
+++ b/lfs/libnl
@@ -73,6 +73,7 @@ $(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/libnl-1.1-ULONG_MAX.patch
        cd $(DIR_APP) && ln -s /usr/src/linux/include/linux/if_vlan.h \
                                              include/linux/if_vlan.h
        cd $(DIR_APP) && ln -s /usr/src/linux/include/linux/netfilter/nf_conntrack_common.h \
index bd9c02256e6a7df9c144ba83e46a148b897b7ef0..41a1c7f0cf6b837d549185e57f3dac43a6af86fe 100644 (file)
 
 include Config
 
-VER        = 1.1.4
+VER        = 1.3.0
 
 THISAPP    = libogg-$(VER)
-DL_FILE    = $(THISAPP).tar.gz
+DL_FILE    = $(THISAPP).tar.xz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = libogg
-PAK_VER    = 2
+PAK_VER    = 3
 
 DEPS       = ""
 
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 10200ec22543841d9d1c23e0aed4e5e9
+$(DL_FILE)_MD5 = 84a35715170f2cd4c77a4448772b95d5
 
 install : $(TARGET)
 
@@ -76,7 +76,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
        cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE)
        cd $(DIR_APP) && make install
diff --git a/lfs/libsafe b/lfs/libsafe
deleted file mode 100644 (file)
index 24c398c..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-###############################################################################
-#                                                                             #
-# 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.0-16
-
-THISAPP    = libsafe_$(VER)
-DL_FILE    = $(THISAPP).orig.tar.gz
-DL_FROM    = $(URL_IPFIRE)
-DIR_APP    = $(DIR_SRC)/libsafe-$(VER)
-TARGET     = $(DIR_INFO)/$(THISAPP)
-
-###############################################################################
-# Top-level Rules
-###############################################################################
-
-objects = $(DL_FILE)
-
-$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-
-$(DL_FILE)_MD5 = 6b7b6e6df84d4afb469ccc66d04fc24d
-
-install : $(TARGET)
-
-check : $(patsubst %,$(DIR_CHK)/%,$(objects))
-
-download :$(patsubst %,$(DIR_DL)/%,$(objects))
-
-md5 : $(subst %,%_MD5,$(objects))
-
-###############################################################################
-# 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 zxf $(DIR_DL)/$(DL_FILE)
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/libsafe-functioncaching.diff
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/libsafe-alpha.diff
-       cd $(DIR_APP) && make libsafe $(MAKETUNING)
-       cd $(DIR_APP) && yes | make install
-       @rm -rf $(DIR_APP)
-       @$(POSTBUILD)
index 3635c6ee98132e899b2130e8d35e996f3afdcccd..0d90f4c7711318e43928708a88f1d9db62d703c7 100644 (file)
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 2.0.17
+VER        = 2.0.18
 
 THISAPP    = libsigc++-$(VER)
 DL_FILE    = $(THISAPP).tar.bz2
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = fde0ee69e3125e982746d9fe005763e1
+$(DL_FILE)_MD5 = ddebf5aafc8525d10366a8724abc9f28
 
 install : $(TARGET)
 
@@ -70,6 +70,7 @@ $(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/libsigc++-gcc43.patch
        cd $(DIR_APP) && ./configure --prefix=/usr
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
index b602095caa894e18d7e733d1b316017034f580d2..7651be7507be5fcafa11988886c69eea098918d9 100644 (file)
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 0.0.0-0db9d7f
+VER        = 0.0.0-c02d759
 
 THISAPP    = libsolv-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -34,7 +34,7 @@ TARGET     = $(DIR_INFO)/$(THISAPP)
 
 PROG       = libsolv
 DEPS       = ""
-PAK_VER    = 1
+PAK_VER    = 2
 
 ###############################################################################
 # Top-level Rules
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = ba95c404d807bc71297c508a7127a3d9
+$(DL_FILE)_MD5 = a8ba49ca49c309d61836fe78b0e0f83a
 
 install : $(TARGET)
 
@@ -86,26 +86,15 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        cd $(DIR_APP) && sed "/examples/d" -i CMakeLists.txt
        cd $(DIR_APP) && sed "/tools/d" -i CMakeLists.txt
 
-       # Make sure that libsatsolverext is linked properly to all needed
-       # libraries.
-       cd $(DIR_APP) && echo "TARGET_LINK_LIBRARIES(libsolvext libsolv \$${EXPAT_LIBRARY} \$${ZLIB_LIBRARY})" \
-               >> ext/CMakeLists.txt
-
-       # Remove the RPM stuff when we build with -DFEDORA=1 because we
-       # do not support RPM.
-       cd $(DIR_APP) && sed -e "s/DEBIAN/FEDORA/g" -i ext/CMakeLists.txt
-
-       # Our version of glibc has no __qsort_r
-       cd $(DIR_APP) && echo "#define USE_OWN_QSORT" >> src/util.h
-
        cd $(DIR_APP) && mkdir build
-       cd $(DIR_APP)/build && cmake .. -DFEDORA=1 \
+       cd $(DIR_APP)/build && cmake .. \
                -DCMAKE_INSTALL_PREFIX=/usr \
                -DCMAKE_BUILD_TYPE=Release \
-               -DCMAKE_SKIP_RPATH=1
+               -DCMAKE_SKIP_RPATH=1 \
+               -DENABLE_PERL=0 \
+               -DENABLE_PYTHON=0 \
+               -DENABLE_RUBY=0
        cd $(DIR_APP)/build && make $(PARALELLISMFLAGS)
-
        cd $(DIR_APP)/build && make install
-
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index 333f958291cfa0d651b2632ef495766c1206ae05..e6bcd4060cebb5be364c57ad899722871e497a55 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007  Michael Tremer & Christian Schmidt                      #
+# Copyright (C) 2007-2012  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        = 1.5.22
+VER        = 2.4.2
 
 THISAPP    = libtool-$(VER)
-DL_FILE    = $(THISAPP).tar.gz
+DL_FILE    = $(THISAPP).tar.xz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 
 PROG       = libtool
-PAK_VER    = 1
-DEPS       = ""
 
 ###############################################################################
 # Top-level Rules
@@ -44,7 +42,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 8e0ac9797b62ba4dcc8a2fb7936412b0
+$(DL_FILE)_MD5 = 2ec8997e0c07249eb4cbd072417d70fe
 
 install : $(TARGET)
 
@@ -76,7 +74,7 @@ dist:
 
 $(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 Jxf $(DIR_DL)/$(DL_FILE)
        cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
index 3b6d0f9d28558745f25cb2d205afaa59939daa79..8213e3991d95da50d0e89b570bb808b8aaaa1042 100644 (file)
 
 include Config
 
-VER        = 1.2.3
+VER        = 1.3.3
 
 THISAPP    = libvorbis-$(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       = libvorbis
-PAK_VER    = 3
+PAK_VER    = 4
 
 DEPS       = "libogg"
 
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 67beb237faf97d74782ec7071756b2b6
+$(DL_FILE)_MD5 = 71b649d3e08e63ece16649df906ce8b9
 
 install : $(TARGET)
 
@@ -76,11 +76,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) && ./configure --prefix=/usr
        cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE)
-       #cd $(DIR_APP) && sed -i.bak -e 's/-mno-ieee-fp//' lib/Makefile
        cd $(DIR_APP) && make install
-       cd $(DIR_APP) && install -v -m644 doc/Vorbis* /usr/share/doc/libvorbis-1.2.3
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index b8d0dd8bec2d632468bf0bb614f2f929d61f92e6..547ae9b521f7b694d8bd70148f2321a7ba05b395 100644 (file)
--- a/lfs/linux
+++ b/lfs/linux
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2011  IPFire Team <info@ipfire.org>                      #
+# Copyright (C) 2007-2012  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
 
-PATCHLEVEL = .45
-VER        = 2.6.32.45
+VER           = 3.2.35
+
+RPI_PATCHES = linux-3.2.27-ada8b44
 
 THISAPP    = linux-$(VER)
-DL_FILE    = $(THISAPP).tar.gz
+DL_FILE    = linux-$(VER).tar.bz2
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 CFLAGS     =
 CXXFLAGS   =
 
-PAK_VER    = 19
+PAK_VER    = 25
 DEPS      = ""
 
-# Normal build or XEN build.
-#
-
 VERSUFIX=ipfire$(KCFG)
 
-ifeq "$(HEADERS)" "1"
 ifeq "$(TOOLS)" "1"
-       TARGET = $(DIR_INFO)/linux-libc-headers-$(VER)-$(VERSUFIX)-tools
+       TARGET = $(DIR_INFO)/linux-$(VER)-$(VERSUFIX)-tools
        HEADERS_PREFIX = /tools
-else
-       TARGET = $(DIR_INFO)/linux-libc-headers-$(VER)-$(VERSUFIX)
-       HEADERS_PREFIX = /usr
-endif
 else
        TARGET = $(DIR_INFO)/linux-$(VER)-$(VERSUFIX)
+       HEADERS_PREFIX = /usr
 endif
 
 ifeq "$(MACHINE_TYPE)" "arm"
@@ -71,22 +65,14 @@ endif
 # Top-level Rules
 ###############################################################################
 objects =$(DL_FILE) \
-       netfilter-layer7-v2.22.tar.gz \
-       patch-2.6.16-nath323-1.3.bz2 \
-       reiser4-for-2.6.32.patch.bz2 \
-       xen-patches-2.6.32-2f.tar.bz2
+       rpi-patches-$(RPI_PATCHES).patch.xz
+
 
 $(DL_FILE)                             = $(URL_IPFIRE)/$(DL_FILE)
-netfilter-layer7-v2.22.tar.gz          = $(URL_IPFIRE)/netfilter-layer7-v2.22.tar.gz
-patch-2.6.16-nath323-1.3.bz2           = $(URL_IPFIRE)/patch-2.6.16-nath323-1.3.bz2
-reiser4-for-2.6.32.patch.bz2           = $(URL_IPFIRE)/reiser4-for-2.6.32.patch.bz2
-xen-patches-2.6.32-2f.tar.bz2          = $(URL_IPFIRE)/xen-patches-2.6.32-2f.tar.bz2
+rpi-patches-$(RPI_PATCHES).patch.xz    = $(URL_IPFIRE)/rpi-patches-$(RPI_PATCHES).patch.xz
 
-$(DL_FILE)_MD5                         = d41f1c7e704cc95fdfc3374367b6fd64
-netfilter-layer7-v2.22.tar.gz_MD5      = 98dff8a3d5a31885b73341633f69501f
-patch-2.6.16-nath323-1.3.bz2_MD5       = f926409ff703a307baf54b57ab75d138
-reiser4-for-2.6.32.patch.bz2_MD5       = 3246397973d9271eb8e6d7c97c5d2d91
-xen-patches-2.6.32-2f.tar.bz2_MD5      = b59d6f89e11accb9d40354418e13f31b
+$(DL_FILE)_MD5                         = 4566af86b5ae8f9dfce2442ccac79cc3
+rpi-patches-$(RPI_PATCHES).patch.xz_MD5        = 966687ff27e450e04ff50e0da829dc00
 
 install : $(TARGET)
 
@@ -117,62 +103,51 @@ $(subst %,%_MD5,$(objects)) :
 
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
-       @rm -rf $(DIR_APP) $(DIR_SRC)/linux $(DIR_SRC)/linux-*-suse_xen_patches $(DIR_SRC)/xen-* && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
+       @rm -rf $(DIR_APP) $(DIR_SRC)/linux && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
 
        ln -svf linux-$(VER) $(DIR_SRC)/linux
 
-ifeq "$(KCFG)" "-xen"
-       # Apply gentoo Xen patches
-       mkdir -p $(DIR_SRC)/xen-patches
-       cd $(DIR_SRC)/xen-patches && tar jxf $(DIR_DL)/xen-patches-2.6.32-2f.tar.bz2
-
-       for x in `ls -1 $(DIR_SRC)/xen-patches/*.patch1`; do \
-               echo "*********** [Patch: $$x]"; \
-               cd $(DIR_APP) && pwd && patch -Np1 < $$x || exit 1; \
-       done
-       rm -rf $(DIR_SRC)/xen-patches
-
-       # Linux Intermediate Queueing Device
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.8-xen-imq-test2.patch
-else
        # Linux Intermediate Queueing Device
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32-imq-test2.patch
-endif
-
-       # Not report deprecated syscall 1.23 (for kudzu)
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.25.18-not_report_sysctl_1.23.patch
-
-       # Reiser4 (don't check if fail (some patches are already in xen patchset)
-       -cd $(DIR_APP) && bzcat $(DIR_DL)/reiser4-for-2.6.32.patch.bz2 | patch -Np1
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.2-imq.patch
 
-       # ipp2p 0.8.2-pomng
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.8-ipp2p-0.8.2-pomng.patch
+       # ipp2p 0.8.2-ipfire
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.0-ipp2p-0.8.2-ipfire.patch
 
        # Layer7-patch
-       cd $(DIR_SRC) && rm -rf $(DIR_SRC)/netfilter-layer7-v2.22
-       cd $(DIR_SRC) && tar xzf $(DIR_DL)/netfilter-layer7-v2.22.tar.gz
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/netfilter-layer7-v2.22/kernel-2.6.25-2.6.28-layer7-2.22.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/netfilter_layer7_2.22_kernel3.0.patch
 
-       # Add some more LED triggers
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.11-netdev-1.patch
-
-       # Huawei Android Phones (Vodafone V845, T-Mobile Pulse/mini ...)
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.15-option_add_huawei_android.patch
+       # Add LED trigger
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.2.33-ledtrig-netdev-1.patch
 
        # Fix uevent PHYSDEVDRIVER
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.27_ipg-fix-driver-name.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.2.33_ipg-fix-driver-name.patch
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.27_mcs7830-fix-driver-name.patch
 
 ifeq "$(KCFG)" "-kirkwood"
        # Add dreamplug,guruplug and icy 62x0  support on ARM-kirkwood
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.45-arm_kirkwood_setups.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.2.25-arm_kirkwood_setups.patch
 endif
 
 ifeq "$(MACHINE_TYPE)" "arm"
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.45_align_ssb_modtable_32bit_boundary.patch
+
+       # Reverse some asm optimizations that are incompatible with older gcc
+       cd $(DIR_APP) && patch -p1 -R < $(DIR_SRC)/src/patches/linux-2.6-arm-asm-constraint.patch
+endif
+
+ifeq "$(KCFG)" "-omap"
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.2-0001-panda-wlan-fix.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.2-0002-panda-i2c.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.2-panda-reboot.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.x-smsc95xx-add_mac_addr_param.patch
 endif
 
-ifeq "$(HEADERS)" "1"
+ifeq "$(KCFG)" "-rpi"
+       # Apply Raspberry Pi kernel patches.
+       cd $(DIR_APP) && xzcat $(DIR_DL)/rpi-patches-$(RPI_PATCHES).patch.xz | patch -Np1
+endif
+
+ifeq "$(KCFG)" "-headers"
        # Install the header files
        cd $(DIR_APP) && make ARCH=$(HEADERS_ARCH) INSTALL_HDR_PATH=dest headers_install
        -mkdir -pv $(BUILDROOT)/$(HEADERS_PREFIX)/include
@@ -188,29 +163,31 @@ else
        cp $(DIR_SRC)/config/kernel/kernel.config.$(MACHINE)-$(VERSUFIX) $(DIR_APP)/.config
        cd $(DIR_APP) && make CC="$(KGCC)" oldconfig
        cd $(DIR_APP) && make CC="$(KGCC)" clean
-       cd $(DIR_APP) && sed -i -e 's/EXTRAVERSION\ =.*/EXTRAVERSION\ =\ $(PATCHLEVEL)-$(VERSUFIX)/' Makefile
+       cd $(DIR_APP) && sed -i -e 's/EXTRAVERSION\ =.*/EXTRAVERSION\ =\ -$(VERSUFIX)/' Makefile
 
-ifeq "$(KCFG)" "-xen"
-       cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" vmlinuz
-       cd $(DIR_APP) && cp -v arch/i386/boot/vmlinuz /boot/vmlinuz-$(VER)-$(VERSUFIX)
-else
 ifeq "$(KCFG)" "-kirkwood"
        cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" uImage
        cd $(DIR_APP) && cp -v arch/arm/boot/uImage /boot/vmlinuz-$(VER)-$(VERSUFIX)
        cd $(DIR_APP) && cp -v arch/arm/boot/uImage /boot/uImage-$(VERSUFIX)
 else
-ifeq "$(KCFG)" "-versatile"
+ifeq "$(KCFG)" "-omap"
+       cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" uImage
+       cd $(DIR_APP) && cp -v arch/arm/boot/uImage /boot/vmlinuz-$(VER)-$(VERSUFIX)
+       cd $(DIR_APP) && cp -v arch/arm/boot/uImage /boot/uImage-$(VERSUFIX)
+else
+ifeq "$(KCFG)" "-rpi"
        cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" zImage
-       cd $(DIR_APP) && cp -v arch/arm/boot/zImage /boot/vmlinuz-$(VER)-$(VERSUFIX)
+       cd /boot  && cat first32k.bin $(DIR_APP)/arch/arm/boot/Image > kernel.img
+       cd $(DIR_APP) && cp -v /boot/kernel.img /boot/vmlinuz-$(VER)-$(VERSUFIX)
 else
        cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" bzImage
        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 vmlinuz-$(VER)-$(VERSUFIX) /boot/vmlinuz-$(VERSUFIX)
        ln -sf System.map-$(VER)-$(VERSUFIX) /boot/System.map-$(VERSUFIX)
        cd $(DIR_APP) && make CC="$(KGCC)" $(MAKETUNING) modules
        cd $(DIR_APP) && make CC="$(KGCC)" $(MAKETUNING) modules_install
@@ -242,10 +219,6 @@ ifeq "$(LASTKERNEL)" "1"
        echo "options ipv6 disable_ipv6=1" > /etc/modprobe.d/ipv6
 endif
 
-       # Remove mISDN modules
-       rm -rvf /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/isdn/mISDN
-       rm -rvf /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/isdn/hardware/mISDN
-
 ifneq "$(MACHINE_TYPE)" "arm"
        # Disable geode_aes modul
        mv /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/crypto/geode-aes.ko \
index 6a7f956527ef330258aa94ece94bd75ca58b439d..33a53810e8629ea596285b84a7cc2bc835c440ff 100644 (file)
 
 include Config
 
-VER        = 20110518
+VER        = 236367d
 
 THISAPP    = linux-firmware-$(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 = 3b215b5ec9a5e8784dd971c039e9b948
+$(DL_FILE)_MD5 = 35d2ecf9b7d0b4d339fa0d4cc0736f6f
 
 install : $(TARGET)
 
@@ -69,7 +69,7 @@ $(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 zxf $(DIR_DL)/$(DL_FILE)
        mkdir -p /lib/firmware
        cd $(DIR_APP) && cp -vr * /lib/firmware
        @rm -rf $(DIR_APP)
diff --git a/lfs/linux-libc-header b/lfs/linux-libc-header
deleted file mode 100644 (file)
index a2ff9d3..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-###############################################################################
-#                                                                             #
-# 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.6.12.0
-
-THISAPP    = linux-libc-headers-$(VER)
-DL_FILE    = $(THISAPP).tar.bz2
-DL_FROM    = $(URL_IPFIRE)
-DIR_APP    = $(DIR_SRC)/$(THISAPP)
-
-ifeq "$(ROOT)" ""
-ifeq "$(LFS_PASS)" "install"
-  TARGET = $(DIR_INFO)/$(THISAPP)-install
-else
-  TARGET = $(DIR_INFO)/$(THISAPP)
-endif
-else
-  TARGET = $(DIR_INFO)/$(THISAPP)-tools1
-endif
-
-###############################################################################
-# Top-level Rules
-###############################################################################
-objects = $(DL_FILE)
-
-$(DL_FILE)                             = $(DL_FROM)/$(DL_FILE)
-
-$(DL_FILE)_MD5                         = eae2f562afe224ad50f65a6acfb4252c
-
-install : $(TARGET)
-
-check : $(patsubst %,$(DIR_CHK)/%,$(objects))
-
-download :$(patsubst %,$(DIR_DL)/%,$(objects))
-
-md5 : $(subst %,%_MD5,$(objects))
-
-###############################################################################
-# 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 jxf $(DIR_DL)/$(DL_FILE)
-ifeq "$(ROOT)" ""
-ifeq "$(LFS_PASS)" "install"
-       -mkdir -p /opt/$(MACHINE)-uClibc
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-inotify-3.patch
-       cd $(DIR_APP) && install -dv /opt/$(MACHINE)-uClibc/usr/include/asm
-       cd $(DIR_APP) && cp -Rv include/asm-i386/* /opt/$(MACHINE)-uClibc/usr/include/asm
-       cd $(DIR_APP) && cp -Rv include/linux /opt/$(MACHINE)-uClibc/usr/include
-       cd $(DIR_APP) && chown -Rv root:root /opt/$(MACHINE)-uClibc/usr/include/{asm,linux}
-       cd $(DIR_APP) && find /opt/$(MACHINE)-uClibc/usr/include/{asm,linux} -type d -exec chmod -v 755 {} \;
-       cd $(DIR_APP) && find /opt/$(MACHINE)-uClibc/usr/include/{asm,linux} -type f -exec chmod -v 644 {} \;
-else
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-inotify-3.patch
-       cd $(DIR_APP) && install -dv /usr/include/asm
-       cd $(DIR_APP) && cp -Rv include/asm-i386/* /usr/include/asm
-       cd $(DIR_APP) && cp -Rv include/linux /usr/include
-       cd $(DIR_APP) && chown -Rv root:root /usr/include/{asm,linux}
-       cd $(DIR_APP) && find /usr/include/{asm,linux} -type d -exec chmod -v 755 {} \;
-       cd $(DIR_APP) && find /usr/include/{asm,linux} -type f -exec chmod -v 644 {} \;
-endif
-else
-       cd $(DIR_APP) && cp -Rv include/asm-i386 /tools/include/asm
-       cd $(DIR_APP) && cp -Rv include/linux /tools/include
-endif
-       @rm -rf $(DIR_APP)
-       @$(POSTBUILD)
index 356fc8f84cb8ce53cd27d26a770f526f762daae9..39f19a82f3c2f59b527a6ead15e2e2c22a3f84ee 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2010  IPFire Team <info@ipfire.org>                           #
+# Copyright (C) 2007-2012  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        #
@@ -26,7 +26,7 @@ include Config
 
 VER       = kernel
 
-include linux
+include linux2
 
 PROG      = linux-xen
 SUP_ARCH   = i586
diff --git a/lfs/linux2 b/lfs/linux2
new file mode 100644 (file)
index 0000000..4504035
--- /dev/null
@@ -0,0 +1,252 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2012  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
+
+PATCHLEVEL = .60
+VER        = 2.6.32.60
+
+THISAPP    = linux-$(VER)
+DL_FILE    = $(THISAPP).tar.bz2
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+CFLAGS     =
+CXXFLAGS   =
+
+PAK_VER    = 24
+DEPS      = ""
+
+# Normal build or XEN build.
+#
+
+VERSUFIX=ipfire$(KCFG)
+
+ifeq "$(HEADERS)" "1"
+ifeq "$(TOOLS)" "1"
+       TARGET = $(DIR_INFO)/linux-libc-headers-$(VER)-$(VERSUFIX)-tools
+       HEADERS_PREFIX = /tools
+else
+       TARGET = $(DIR_INFO)/linux-libc-headers-$(VER)-$(VERSUFIX)
+       HEADERS_PREFIX = /usr
+endif
+else
+       TARGET = $(DIR_INFO)/linux-xen-$(VER)-$(VERSUFIX)
+endif
+
+ifeq "$(MACHINE_TYPE)" "arm"
+       HEADERS_ARCH=arm
+else
+       HEADERS_ARCH=x86
+endif
+
+ifeq "$(KCFG)" ""
+LASTKERNEL=1
+endif
+ifeq "$(KCFG)" "-kirkwood"
+LASTKERNEL=1
+endif
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+objects =$(DL_FILE) \
+       netfilter-layer7-v2.22.tar.gz \
+       patch-2.6.16-nath323-1.3.bz2 \
+       reiser4-for-2.6.32.patch.bz2 \
+       xen-patches-2.6.32-2g.tar.bz2
+
+$(DL_FILE)                             = $(URL_IPFIRE)/$(DL_FILE)
+netfilter-layer7-v2.22.tar.gz          = $(URL_IPFIRE)/netfilter-layer7-v2.22.tar.gz
+patch-2.6.16-nath323-1.3.bz2           = $(URL_IPFIRE)/patch-2.6.16-nath323-1.3.bz2
+reiser4-for-2.6.32.patch.bz2           = $(URL_IPFIRE)/reiser4-for-2.6.32.patch.bz2
+xen-patches-2.6.32-2g.tar.bz2          = $(URL_IPFIRE)/xen-patches-2.6.32-2g.tar.bz2
+
+$(DL_FILE)_MD5                         = a8e037a78c5fabefd2baa83f7ae0b8b1
+netfilter-layer7-v2.22.tar.gz_MD5      = 98dff8a3d5a31885b73341633f69501f
+patch-2.6.16-nath323-1.3.bz2_MD5       = f926409ff703a307baf54b57ab75d138
+reiser4-for-2.6.32.patch.bz2_MD5       = 3246397973d9271eb8e6d7c97c5d2d91
+xen-patches-2.6.32-2g.tar.bz2_MD5      = d259a847c9aa73cd6e5c3605d9657d66
+
+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) $(DIR_SRC)/linux $(DIR_SRC)/linux-*-suse_xen_patches $(DIR_SRC)/xen-* && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
+
+       ln -svf linux-$(VER) $(DIR_SRC)/linux
+
+ifeq "$(KCFG)" "-xen"
+       # Apply gentoo Xen patches
+       mkdir -p $(DIR_SRC)/xen-patches
+       cd $(DIR_SRC)/xen-patches && tar jxf $(DIR_DL)/xen-patches-2.6.32-2g.tar.bz2
+
+       for x in `ls -1 $(DIR_SRC)/xen-patches/*.patch1`; do \
+               echo "*********** [Patch: $$x]"; \
+               cd $(DIR_APP) && pwd && patch -Np1 < $$x || exit 1; \
+       done
+       rm -rf $(DIR_SRC)/xen-patches
+
+       # Linux Intermediate Queueing Device
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.8-xen-imq-test2.patch
+else
+       # Linux Intermediate Queueing Device
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32-imq-test2.patch
+endif
+
+       # Reiser4 (don't check if fail (some patches are already in xen patchset)
+       -cd $(DIR_APP) && bzcat $(DIR_DL)/reiser4-for-2.6.32.patch.bz2 | patch -Np1
+
+       # ipp2p 0.8.2-pomng
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.8-ipp2p-0.8.2-pomng.patch
+
+       # Layer7-patch
+       cd $(DIR_SRC) && rm -rf $(DIR_SRC)/netfilter-layer7-v2.22
+       cd $(DIR_SRC) && tar xzf $(DIR_DL)/netfilter-layer7-v2.22.tar.gz
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/netfilter-layer7-v2.22/kernel-2.6.25-2.6.28-layer7-2.22.patch
+
+       # Add some more LED triggers
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.11-netdev-1.patch
+
+       # Huawei Android Phones (Vodafone V845, T-Mobile Pulse/mini ...)
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.15-option_add_huawei_android.patch
+
+       # Fix uevent PHYSDEVDRIVER
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.27_ipg-fix-driver-name.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.27_mcs7830-fix-driver-name.patch
+
+       # Fix mv_cesa
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32-crypto-mv_cesa.patch
+
+ifeq "$(KCFG)" "-kirkwood"
+       # Add dreamplug,guruplug and icy 62x0  support on ARM-kirkwood
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.57-arm_kirkwood_setups.patch
+endif
+
+ifeq "$(MACHINE_TYPE)" "arm"
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.45_align_ssb_modtable_32bit_boundary.patch
+endif
+
+ifeq "$(HEADERS)" "1"
+       # Install the header files
+       cd $(DIR_APP) && make ARCH=$(HEADERS_ARCH) INSTALL_HDR_PATH=dest headers_install
+       -mkdir -pv $(BUILDROOT)/$(HEADERS_PREFIX)/include
+       cd $(DIR_APP) && find dest/include \( -name .install -o -name ..install.cmd \) -delete
+       cd $(DIR_APP) && cp -rv dest/include/* $(BUILDROOT)/$(HEADERS_PREFIX)/include
+else
+
+       # Install ipfire logo
+       cd $(DIR_APP) && cp -vf $(DIR_SRC)/config/kernel/ipfire_logo.ppm \
+               drivers/video/logo/logo_linux_clut224.ppm
+
+       # Cleanup kernel source
+       cp $(DIR_SRC)/config/kernel/kernel.config.$(MACHINE)-$(VERSUFIX) $(DIR_APP)/.config
+       cd $(DIR_APP) && make CC="$(KGCC)" oldconfig
+       cd $(DIR_APP) && make CC="$(KGCC)" clean
+       cd $(DIR_APP) && sed -i -e 's/EXTRAVERSION\ =.*/EXTRAVERSION\ =\ $(PATCHLEVEL)-$(VERSUFIX)/' Makefile
+
+ifeq "$(KCFG)" "-xen"
+       cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" vmlinuz
+       cd $(DIR_APP) && cp -v arch/i386/boot/vmlinuz /boot/vmlinuz-$(VER)-$(VERSUFIX)
+else
+ifeq "$(KCFG)" "-kirkwood"
+       cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" uImage
+       cd $(DIR_APP) && cp -v arch/arm/boot/uImage /boot/vmlinuz-$(VER)-$(VERSUFIX)
+       cd $(DIR_APP) && cp -v arch/arm/boot/uImage /boot/uImage-$(VERSUFIX)
+else
+       cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" bzImage
+       cd $(DIR_APP) && cp -v arch/i386/boot/bzImage /boot/vmlinuz-$(VER)-$(VERSUFIX)
+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 vmlinuz-$(VER)-$(VERSUFIX) /boot/vmlinuz-$(VERSUFIX)
+       ln -sf System.map-$(VER)-$(VERSUFIX) /boot/System.map-$(VERSUFIX)
+       cd $(DIR_APP) && make CC="$(KGCC)" $(MAKETUNING) modules
+       cd $(DIR_APP) && make CC="$(KGCC)" $(MAKETUNING) modules_install
+       cd $(DIR_APP) && make CC="$(KGCC)" $(MAKETUNING) firmware_install
+
+ifeq "$(LASTKERNEL)" "1"
+       # Only do this once
+       cd $(DIR_APP) && install -m 755 usr/gen_init_cpio /sbin/
+
+       # Blacklist matroxfb_base
+       echo "blacklist matroxfb_base" >> /etc/modprobe.d/framebuffer
+       # Blacklist old framebuffer modules
+       for f in $$(find /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/video -name *fb.ko); do \
+               echo "blacklist $$(basename $$f)" >> /etc/modprobe.d/framebuffer ; \
+       done
+       # Blacklist new drm framebuffer modules
+       for f in $$(ls -1 /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/gpu/drm/*/*.ko); do \
+               echo "blacklist $$(basename $$f)" >> /etc/modprobe.d/framebuffer ; \
+       done
+       sed -i -e "s|.ko||g" /etc/modprobe.d/framebuffer
+
+       # Blacklist isdn modules
+       for f in $$(find /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/isdn -name *.ko); do \
+               echo "blacklist $$(basename $$f)" >> /etc/modprobe.d/isdn ; \
+       done
+       sed -i -e "s|.ko||g" /etc/modprobe.d/isdn
+
+       # Disable ipv6 at runtime
+       echo "options ipv6 disable_ipv6=1" > /etc/modprobe.d/ipv6
+endif
+
+       # Remove mISDN modules
+       rm -rvf /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/isdn/mISDN
+       rm -rvf /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/isdn/hardware/mISDN
+
+ifneq "$(MACHINE_TYPE)" "arm"
+       # Disable geode_aes modul
+       mv /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/crypto/geode-aes.ko \
+           /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/crypto/geode-aes.ko.off
+endif
+endif
+
+       @rm -rf $(DIR_SRC)/patch-o-matic* $(DIR_SRC)/iptables* $(DIR_SRC)/squashfs* $(DIR_SRC)/netfilter-layer7-*
+       @$(POSTBUILD)
diff --git a/lfs/m4 b/lfs/m4
index df4b6a9470aff719fe08da28cb46a00cdc429b6d..462022195999eb83e21ca4ff961b588a751eaf61 100644 (file)
--- a/lfs/m4
+++ b/lfs/m4
@@ -36,13 +36,11 @@ DIR_APP    = $(DIR_SRC)/$(THISAPP)
 ifeq "$(ROOT)" ""
   TARGET = $(DIR_INFO)/$(THISAPP)
   EXTRA_CONFIG = --prefix=/usr --disable-nls
-  EXTRA_LDFLAGS =
   EXTRA_MAKE =
   EXTRA_INSTALL =
 else
   TARGET = $(DIR_INFO)/$(THISAPP)-tools
   EXTRA_CONFIG = --prefix=/tools --disable-nls
-  EXTRA_LDFLAGS = -static
   EXTRA_MAKE = 
   EXTRA_INSTALL = 
 endif
@@ -85,7 +83,7 @@ $(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) && LDFLAGS="$(EXTRA_LDFLAGS)" ./configure $(EXTRA_CONFIG)
+       cd $(DIR_APP) && ./configure $(EXTRA_CONFIG)
        cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE)
        cd $(DIR_APP) && make $(EXTRA_INSTALL) install
        @rm -rf $(DIR_APP)
index c73f5196b12358a60b11c7acae2060084a24b5b8..0fe76ec3758e82480ff9a688ab678e54fe7f36e6 100644 (file)
--- a/lfs/mISDN
+++ b/lfs/mISDN
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2011  IPFire Team  <info@ipfire.org>                     #
+# Copyright (C) 2007-2012  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        #
@@ -26,13 +26,17 @@ include Config
 
 VERSUFIX=ipfire$(KCFG)
 
-VER        = 20100525
+ifeq "$(KCFG)" "-xen"
+       KVER = "2.6.32.60"
+endif
+
+VER        = 20121008
 
 THISAPP    = mISDN-$(VER)
-DL_FILE    = $(THISAPP).tar.gz
+DL_FILE    = $(THISAPP).tar.xz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
-TARGET     = $(DIR_INFO)/$(THISAPP)-kmod-$(KVER)-$(VERSUFIX)
+TARGET     = $(DIR_INFO)/$(THISAPP)-kmod-$(VERSUFIX)
 
 ###############################################################################
 # Top-level Rules
@@ -42,7 +46,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 0f91aa47ee95833d74c8a81ffc6f6fd3
+$(DL_FILE)_MD5 = 7fee0514fd523176b36fca53b02b45cc
 
 install : $(TARGET)
 
@@ -71,18 +75,31 @@ $(subst %,%_MD5,$(objects)) :
 
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
-       @rm -rf $(DIR_SRC)/mISDN* && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       @rm -rf $(DIR_SRC)/mISDN* && cd $(DIR_SRC) && tar Jxf $(DIR_DL)/$(DL_FILE)
        cd $(DIR_SRC)/mISDN && patch -Np1 < $(DIR_SRC)/src/patches/mISDN-hfcusb-reportl1down.patch
        cd $(DIR_SRC)/mISDN && patch -Np1 < $(DIR_SRC)/src/patches/mISDN_hfc-s_add_id.patch
 ifeq "$(MACHINE_TYPE)" "arm"
        # Remove unsupported timestampcounter on arm. the result seems to be unused
        cd $(DIR_SRC)/mISDN && sed -i -e "s|rdtscl(pChan->ulTimestampIn);||g" drivers/isdn/mISDN/octvqe/octvqe_linux.c
+endif
+ifeq "$(NOPCI)" "1"
+       # Disable PCI drivers if kernel has no PCI
+       cd $(DIR_SRC)/mISDN && sed -i -e "s|^CONFIG_MISDN_HFCPCI|#&|g" mISDN.cfg.default
+       cd $(DIR_SRC)/mISDN && sed -i -e "s|^CONFIG_MISDN_HFCMULTI|#&|g" mISDN.cfg.default
+       cd $(DIR_SRC)/mISDN && sed -i -e "s|^CONFIG_MISDN_XHFC|#&|g" mISDN.cfg.default
+       cd $(DIR_SRC)/mISDN && sed -i -e "s|^CONFIG_MISDN_AVMFRITZ|#&|g" mISDN.cfg.default
+       cd $(DIR_SRC)/mISDN && sed -i -e "s|^CONFIG_MISDN_SPEEDFAX|#&|g" mISDN.cfg.default
+       cd $(DIR_SRC)/mISDN && sed -i -e "s|^CONFIG_MISDN_INFINEON|#&|g" mISDN.cfg.default
+       cd $(DIR_SRC)/mISDN && sed -i -e "s|^CONFIG_MISDN_W6692|#&|g" mISDN.cfg.default
+       cd $(DIR_SRC)/mISDN && sed -i -e "s|^CONFIG_MISDN_NETJET|#&|g" mISDN.cfg.default
+       cd $(DIR_SRC)/mISDN && sed -i -e "s|^CONFIG_MISDN_IPAC|#&|g" mISDN.cfg.default
+       cd $(DIR_SRC)/mISDN && sed -i -e "s|^CONFIG_MISDN_ISAR|#&|g" mISDN.cfg.default
 endif
        cd $(DIR_SRC)/mISDN && ./configure --with-kerneldir=/usr/src/linux
        cd $(DIR_SRC)/mISDN && make KVERS=$(KVER)-$(VERSUFIX) modules
        cd $(DIR_SRC)/mISDN && make KVERS=$(KVER)-$(VERSUFIX) \
                        INSTALL_PREFIX=$(DIR_SRC)/mISDN/dest/ \
-                       modules-install
+                       modules_install
        mv $(DIR_SRC)/mISDN/dest/lib/modules/*/extra \
                /lib/modules/$(KVER)-$(VERSUFIX)/mISDN
 
index 22183a6012d1a5821aed2b1550c487956c39e9eb..4f4edd5aa865d65df3ce456c9cd6a0896eab2ef5 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2010  IPFire Team  <info@ipfire.org>                          #
+# Copyright (C) 2007-2012  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        = 20100525
+VER        = 20121008
 
 THISAPP    = mISDNuser-$(VER)
-DL_FILE    = $(THISAPP).tar.gz
+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 = 8e9b507c3f576cefb857329f72e62318
+$(DL_FILE)_MD5 = 86dd2c68ef5b2fdff653f9f635771127
 
 install : $(TARGET)
 
@@ -69,7 +69,8 @@ $(subst %,%_MD5,$(objects)) :
 
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
-       @rm -rf $(DIR_SRC)/mISDNuser && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       @rm -rf $(DIR_SRC)/mISDNuser && cd $(DIR_SRC) && tar Jxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_SRC)/mISDNuser && make
        cd $(DIR_SRC)/mISDNuser && ./configure --prefix=/usr --with-AF_ISDN=34
        cd $(DIR_SRC)/mISDNuser && make MISDNDIR=/usr/src/linux
        cd $(DIR_SRC)/mISDNuser && make install MISDNDIR=/usr/src/linux
diff --git a/lfs/madwifi b/lfs/madwifi
deleted file mode 100644 (file)
index 2d3f97e..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-###############################################################################
-#                                                                             #
-# IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2011  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
-
-VERSUFIX=ipfire$(KCFG)
-
-VER        = hal-0.10.5.6-r4119-20100201
-
-THISAPP    = madwifi-$(VER)
-DL_FILE    = $(THISAPP).tar.gz
-DL_FROM    = $(URL_IPFIRE)
-DIR_APP    = $(DIR_SRC)/$(THISAPP)
-TARGET     = $(DIR_INFO)/$(THISAPP)-kmod-$(KVER)-$(VERSUFIX)
-SUP_ARCH   = i586
-
-###############################################################################
-# Top-level Rules
-###############################################################################
-
-objects = $(DL_FILE)
-
-$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-
-$(DL_FILE)_MD5 = 937cf8f185ddd39b95e7ce026f9fba63
-
-install : $(TARGET)
-
-check : $(patsubst %,$(DIR_CHK)/%,$(objects))
-
-download :$(patsubst %,$(DIR_DL)/%,$(objects))
-
-md5 : $(subst %,%_MD5,$(objects))
-
-###############################################################################
-# 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 xzf $(DIR_DL)/$(DL_FILE)
-       cd $(DIR_APP) && make $(MAKETUNING) KERNELPATH=/usr/src/linux
-       cd $(DIR_APP) && make KERNELPATH=/usr/src/linux BINDIR=/usr/bin \
-                               MANDIR=/usr/man install
-       cp -f $(DIR_SRC)/config/madwifi/madwifi.conf /etc/
-       ln -sf $(DIR_APP) $(DIR_SRC)/madwifi 
-
-       # Add comment to set CountryCode to germany because some cards
-       # are not detected without cc but others doesn't like this
-       echo '#options ath_pci countrycode=276' > /etc/modprobe.d/madwifi
-       # Blacklist ath5k or madwifi for switching between the drivers
-       echo 'blacklist ath_pci' >> /etc/modprobe.d/madwifi
-       echo '#blacklist ath5k' >> /etc/modprobe.d/madwifi
-       echo '#blacklist ath9k' >> /etc/modprobe.d/madwifi
-
-       # create madwifi symlink for hostapd build
-       cd $(DIR_SRC) && ln -sf $(THISAPP) madwifi
-
-       @$(POSTBUILD)
index ba34283df3a6efd947e8d69aff89ad0647b03938..5650230f9353368b8ea03db5d1bee21a8555e3e9 100644 (file)
--- a/lfs/make
+++ b/lfs/make
@@ -43,12 +43,16 @@ ifeq "$(ROOT)" ""
   EXTRA_MAKE =
   EXTRA_INSTALL =
 else
-  TARGET = $(DIR_INFO)/$(THISAPP)-tools-pass$(PASS)
+  TARGET = $(DIR_INFO)/$(THISAPP)-tools
   EXTRA_CONFIG = --prefix=/tools --disable-nls
   EXTRA_MAKE = 
   EXTRA_INSTALL = 
 endif
 
+ifeq "$(PASS)" "1"
+  CFLAGS =
+endif
+
 ###############################################################################
 # Top-level Rules
 ###############################################################################
diff --git a/lfs/man b/lfs/man
index c5f847f06e82e30fb2b62f48f4fd834e711a9d20..04aed20aceba7fba6c494bc914604e41007bbf58 100644 (file)
--- a/lfs/man
+++ b/lfs/man
@@ -74,6 +74,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        cd $(DIR_APP) && mv man/es{_ES.88591,}
        cd $(DIR_APP) && mv man/it{_IT.88591,}
        cd $(DIR_APP) && mv man/ja{_JP.eucJP,}
+       cd $(DIR_APP) && sed -i "s/-I-//g" {lib,src}/Makefile*
        cd $(DIR_APP) && sed -i 's,\*_\*,??,' man/Makefile.in
        cd $(DIR_APP) && sed -i '/\t\/usr\/man/d' src/man_db.conf.in
        cd $(DIR_APP) && echo -e "#define WEB_BROWSER \"exec /usr/bin/lynx\"" >> include/manconfig.h.in
diff --git a/lfs/mbr b/lfs/mbr
index 077efa7b754b1f3907e8c43c801bb2ecd5b28a49..c43f2fdb28292d192d570de219e8284500232fad 100644 (file)
--- a/lfs/mbr
+++ b/lfs/mbr
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 1.1.8
+VER        = 1.1.11
 
 THISAPP    = mbr-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -41,7 +41,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = da195c75b26bd45ecbb113b317996f9a
+$(DL_FILE)_MD5 = 4e406ded185f94c2d2bf5fc793ac1842
 
 install : $(TARGET)
 
@@ -71,7 +71,7 @@ $(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) && ./configure
+       cd $(DIR_APP) && ./configure --prefix=/usr
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
        @rm -rf $(DIR_APP)
diff --git a/lfs/mc b/lfs/mc
index caf2f68fde602c141485bfddc8c6b41bf733da16..32946c17abe4ee734e906405a7247ceaa78f0c46 100644 (file)
--- a/lfs/mc
+++ b/lfs/mc
@@ -34,7 +34,7 @@ TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = mc
 PAK_VER    = 6
 
-DEPS       = "glib"
+DEPS       = ""
 
 ###############################################################################
 # Top-level Rules
index e2c1d21926b9645d0cd525af3105f83946b7342d..26ec3dd0087ed71f7601eb3f06adf88363a847f3 100644 (file)
@@ -77,6 +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) && make $(MAKETUNING) $(EXTRA_MAKE)
        cd $(DIR_APP) && make install
 
index 470fc28cbe5b0e66da70be41e26b69b39dcf39b6..7129ed58a3a6c213578c50dd73ba0a999301d46e 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007  Michael Tremer & Christian Schmidt                      #
+# Copyright (C) 2007-2012  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        #
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 1.4
+VER        = 1.7
 
 THISAPP    = miniupnpd-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -32,7 +32,7 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = miniupnpd
-PAK_VER    = 0
+PAK_VER    = 1
 
 ###############################################################################
 # Top-level Rules
@@ -42,7 +42,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = ffa33d4ed8732c662bdb7d511e86db76
+$(DL_FILE)_MD5 = 5af9e8332d34a7b490d0d2ed3e674196
 
 install : $(TARGET)
 
@@ -75,10 +75,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) && patch -Np0 -i $(DIR_SRC)/src/patches/miniupnpd-iptcrdr.patch
        cd $(DIR_APP) && make -f Makefile.linux \
                CFLAGS="$(CFLAGS) -DIPTABLES_143 -I/usr/src/linux/include"
-
        cd $(DIR_APP) && install -m 755 miniupnpd /usr/sbin
        -mkdir -pv /etc/miniupnpd
        cp -vf $(DIR_SRC)/config/miniupnpd/miniupnpd.conf /etc/miniupnpd/miniupnpd.conf
index e59b305992d8e7477ef168fa325d338d1db48f52..6902ccac19165116982fce88e9e8bb5dc93a1bcc 100644 (file)
@@ -28,11 +28,7 @@ VER = ipfire
 
 THISAPP    = misc-progs
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
-ifeq "$(LFS_PASS)" "install"
-  TARGET     = $(DIR_INFO)/$(THISAPP)-install
-else
-  TARGET     = $(DIR_INFO)/$(THISAPP)
-endif
+TARGET     = $(DIR_INFO)/$(THISAPP)
 
 ###############################################################################
 # Top-level Rules
@@ -53,10 +49,6 @@ md5 :
 $(TARGET) :
        @$(PREBUILD)
        @rm -rf $(DIR_APP) $(DIR_SRC)/install+setup && cp -R $(DIR_SRC)/src/misc-progs/ $(DIR_SRC)
-ifeq "$(LFS_PASS)" "install"
-       cd $(DIR_APP) && make CFLAGS="-Os -fomit-frame-pointer" iowrap
-       cd $(DIR_APP) && install -m 0755 iowrap /install/initrd/bin
-else
        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; \
@@ -67,6 +59,5 @@ else
             -DSLOGAN='\"$(SLOGAN)\"' -DCONFIG_ROOT='\"$(CONFIG_ROOT)\"'" 
        cd $(DIR_APP) && make CFLAGS="$(CFLAGS) -Wall -DCONFIG_ROOT='\"$(CONFIG_ROOT)\"' -DSNAME='\"$(SNAME)\"'"
        cd $(DIR_APP) && make install
-endif
        @rm -rf $(DIR_APP) $(DIR_SRC)/install+setup
        @$(POSTBUILD)
index d42abaf0ae9126e3f22266ee315f3ed6ccddb488..fa99ea0b15b00bb456c04c1888ff4dff38a3ff4b 100644 (file)
@@ -77,11 +77,19 @@ dist:
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+
+       #Install obsolete V4L1 videodev.h
+       cp $(DIR_SRC)/config/include/obsolete_videodev.h /usr/include/linux/videodev.h
+
        cd $(DIR_APP) && ./configure --prefix=/usr --sysconfdir=/etc
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
        cp -vf $(DIR_SRC)/config/motion/motion.conf /etc
        install -v -m 644 $(DIR_SRC)/config/backup/includes/motion \
                         /var/ipfire/backup/addons/includes/motion
+
+       #Remove obsolete V4L1 videodev.h
+       rm -f /usr/include/linux/videodev.h
+
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
diff --git a/lfs/mpd b/lfs/mpd
index ca82ad2e44ac6074ffad5f4d64f4e9722463c89b..7b2c54d0ad5bd1c437bb4132474324ae2f605df5 100644 (file)
--- a/lfs/mpd
+++ b/lfs/mpd
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2011  IPFire Team  <info@ipfire.org>                     #
+# Copyright (C) 2007-2012  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        #
@@ -34,7 +34,7 @@ TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = mpd
 PAK_VER    = 14
 
-DEPS       = "alsa faad2 ffmpeg-libs glib lame libmad libshout libogg libid3tag libvorbis"
+DEPS       = "alsa faad2 ffmpeg-libs flac lame libmad libshout libogg libid3tag libvorbis"
 
 ###############################################################################
 # Top-level Rules
similarity index 93%
rename from lfs/reiser4progs
rename to lfs/mpfr
index 99cbb84342fdb3dcc2c9f49517aff19c869892eb..de5e006dc1185cd02bcbb9abfea9f37f06ff49a5 100644 (file)
+++ b/lfs/mpfr
@@ -24,9 +24,9 @@
 
 include Config
 
-VER        = 1.0.6
+VER        = 2.4.2
 
-THISAPP    = reiser4progs-$(VER)
+THISAPP    = mpfr-$(VER)
 DL_FILE    = $(THISAPP).tar.bz2
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = d408cfeac40c266623bd51afa008caf6
+$(DL_FILE)_MD5 = 89e59fe665e2b3ad44a6789f40b059a0
 
 install : $(TARGET)
 
@@ -70,7 +70,8 @@ $(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) && ./configure --prefix=/usr --sbindir=/sbin --enable-static
+       cd $(DIR_APP) && $(CONFIGURE_ARGS) ./configure --prefix=/usr \
+               --enable-thread-safe --disable-nls
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
        @rm -rf $(DIR_APP)
index bbaed79e1bc7153302fec1ddc336a0a26990234f..2bb2a41efdf6bd451c26618c779e40377ca79e44 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007  Michael Tremer & Christian Schmidt                      #
+# Copyright (C) 2007-2012  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        #
@@ -34,7 +34,7 @@ TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = nagios
 PAK_VER    = 2
 
-DEPS       = "glib traceroute libtool"
+DEPS       = "traceroute"
 
 ###############################################################################
 # Top-level Rules
@@ -111,6 +111,3 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        ln -s /etc/init.d/nagios /etc/rc.d/rc6.d/K33nagios
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
-
-
-
index 0b7bbb7860244b48b9e6ba002c7e2bb4b17df207..1c0fb04271b87bb1209b2f43a3fe1796069232e0 100644 (file)
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 5.5
+VER        = 5.9
 
 THISAPP    = ncurses-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -35,20 +35,25 @@ DIR_APP    = $(DIR_SRC)/$(THISAPP)
 #
 ifeq "$(ROOT)" ""
   TARGET = $(DIR_INFO)/$(THISAPP)
-  EXTRA_CONFIG = --prefix=/usr --with-shared \
-       --without-debug --enable-widec --disable-nls
-  EXTRA_MAKE =
-  EXTRA_INSTALL =
+  PREFIX = /usr
 else
   TARGET = $(DIR_INFO)/$(THISAPP)-tools
-  EXTRA_CONFIG = --prefix=/tools --with-shared \
-    --without-debug --without-ada --enable-overwrite \
-    --disable-nls
-  EXTRA_MAKE = 
-  EXTRA_INSTALL = 
+  PREFIX = /tools
 endif
 
-EXTRA_CONFIG += --build=$(BUILDTARGET)
+EXTRA_CONFIG += \
+       --prefix=$(PREFIX) \
+       --with-shared \
+       --without-debug \
+       --without-ada \
+       --with-ospeed=unsigned \
+       --with-chtype=long \
+       --enable-hard-tabs \
+       --enable-xmc-glitch \
+       --enable-colorfgbg \
+       --enable-overwrite \
+       --with-termlib=tinfo \
+       --disable-nls
 
 ###############################################################################
 # Top-level Rules
@@ -58,7 +63,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = e73c1ac10b4bfc46db43b2ddfd6244ef
+$(DL_FILE)_MD5 = 8cb9c412e5f2d96bc6f459aa8c6282a1
 
 install : $(TARGET)
 
@@ -88,25 +93,35 @@ $(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 -i $(DIR_SRC)/src/patches/ncurses-5.5-fixes-1.patch
-       cd $(DIR_APP) && ./configure $(EXTRA_CONFIG)
-       cd $(DIR_APP) && make $(EXTRA_MAKE)  #$(MAKETUNING) # Causes an error!
-       cd $(DIR_APP) && make $(EXTRA_INSTALL) install
-ifeq "$(ROOT)" ""
-       chmod -v 755 /usr/lib/*.5.5
-       chmod -v 644 /usr/lib/libncurses++w.a
-       mv -v /usr/lib/libncursesw.so.5* /lib
-       ln -sfv ../../lib/libncursesw.so.5 /usr/lib/libncursesw.so
-       cd $(DIR_APP) && for lib in curses ncurses form panel menu ; do \
-           rm -vf /usr/lib/lib$${lib}.so ; \
-           echo "INPUT(-l$${lib}w)" >/usr/lib/lib$${lib}.so ; \
-           ln -sfv lib$${lib}w.a /usr/lib/lib$${lib}.a ; \
+       cd $(DIR_APP) && mkdir -pv narrowc widec
+
+       # Build narrowc version.
+       cd $(DIR_APP)/narrowc && ln -svf ../configure .
+       cd $(DIR_APP)/narrowc && ./configure $(EXTRA_CONFIG) --with-ticlib
+       cd $(DIR_APP)/narrowc && make libs
+       cd $(DIR_APP)/narrowc && make -C progs
+
+       # Build widec version.
+       cd $(DIR_APP)/widec && ln -svf ../configure .
+       cd $(DIR_APP)/widec && ./configure $(EXTRA_CONFIG) \
+               --enable-widec --without-progs
+       cd $(DIR_APP)/widec && make libs
+
+       # Install everything.
+       cd $(DIR_APP) && make -C narrowc install.{libs,progs,data}
+       rm -vf $(PREFIX)/lib/libtinfo.*
+       cd $(DIR_APP) && make -C widec install.{libs,includes,man}
+
+       # don't require -ltinfo when linking with --no-add-needed
+       for l in $(PREFIX)/lib/libncurses{,w}.so; do \
+               soname=$$(basename $$(readlink $$l)); \
+               rm -f $$l; \
+               echo "INPUT($$soname -ltinfo)" > $$l; \
        done
-       ln -sfv libncurses++w.a /usr/lib/libncurses++.a4
-       echo "INPUT(-lncursesw)" >/usr/lib/libcursesw.so
-       ln -sfv libncurses.so /usr/lib/libcurses.so
-       ln -sfv libncursesw.a /usr/lib/libcursesw.a
-       ln -sfv libncurses.a /usr/lib/libcurses.a
-endif
+
+       rm -vf $(PREFIX)/lib/libcurses{,w}.so
+       echo "INPUT(-lncurses)" > $(PREFIX)/lib/libcurses.so
+       echo "INPUT(-lncursesw)" > $(PREFIX)/lib/libcursesw.so
+       echo "INPUT(-ltinfo)" > $(PREFIX)/lib/libtermcap.so
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index 7ee4a196b5e71a113aef575673e6f278d840cc78..5af5e47c718b8f672477d792b614bb7f99871dee 100644 (file)
@@ -77,6 +77,7 @@ $(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)/converter && patch -Np1 < $(DIR_SRC)/src/patches/netpbm-10.26.46-getline.patch
        cp $(DIR_SRC)/config/netpbm/Makefile.config $(DIR_APP)
        cd $(DIR_APP) && make
        cd $(DIR_APP) && make package PKGDIR=/usr/local/netpbm
index 34b0f69afa6e966bca2fc081d0c6dc5e34bc5403..b5c57d0d6b017bc6b8c9f41589814b964b551c49 100644 (file)
--- a/lfs/newt
+++ b/lfs/newt
@@ -30,11 +30,7 @@ THISAPP    = newt-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
-ifeq "$(LFS_PASS)" "install"
-  TARGET     = $(DIR_INFO)/$(THISAPP)-install
-else
-  TARGET     = $(DIR_INFO)/$(THISAPP)
-endif
+TARGET     = $(DIR_INFO)/$(THISAPP)
 
 ###############################################################################
 # Top-level Rules
@@ -75,20 +71,11 @@ $(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
-ifeq "$(LFS_PASS)" "install"
-       cd $(DIR_APP) && ./configure --without-gpm-support --host $(MACHINE)-uclibc
-       cd $(DIR_APP) && sed -i 's%^CFLAGS.*$$%CFLAGS = -Os -fomit-frame-pointer -Wall -D_GNU_SOURCE -DUTF8 -I/opt/i586-uClibc/include%' Makefile
-       cd $(DIR_APP) && make libnewt.a
-       -mkdir -p /opt/$(MACHINE)-uClibc/{include,lib}
-       cd $(DIR_APP) && install -m 0644 libnewt.a /opt/$(MACHINE)-uClibc/lib/libnewt.a
-       cd $(DIR_APP) && install -m 0644 newt.h /opt/$(MACHINE)-uClibc/include/newt.h
-else
        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
        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
-endif
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
diff --git a/lfs/nut b/lfs/nut
index 8007a536bb432f6ff2acfca4074ca2f749603566..0a5f84779ea70446263dbb1e8ef0a465677c2a02 100644 (file)
--- a/lfs/nut
+++ b/lfs/nut
@@ -80,7 +80,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        cd $(DIR_APP) && ./configure --prefix=/usr --sysconfdir=/etc/nut \
                        --with-usb --with-user=root --with-group=nut \
                        --with-wrap=no --with-udev-dir=/etc/udev
-       cd $(DIR_APP) && make $(MAKETUNING)
+       cd $(DIR_APP) && make
        cd $(DIR_APP) && make install
 #      sed -i -e "s|ATTR{|SYSFS{|g" /etc/udev/rules.d/52-nut-usbups.rules
        -mkdir -p /var/state/ups
index 9771ae44108b758fb3bf2eabea658ebeb904c0d7..a18d7e16200c48f22b9c6ea48f54e18216ec4cb2 100644 (file)
@@ -32,10 +32,12 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = openldap
-PAK_VER    = 2
+PAK_VER    = 3
 
 DEPS       = ""
 
+export CPPFLAGS = -D_GNU_SOURCE
+
 ###############################################################################
 # Top-level Rules
 ###############################################################################
@@ -77,23 +79,24 @@ $(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) && ./configure --prefix=/usr \
-                           --libexecdir=/usr/sbin \
-                           --sysconfdir=/etc \
-                           --localstatedir=/srv/ldap \
-                           --disable-debug \
-                           --enable-dynamic \
-                           --enable-crypt \
-                           --enable-modules \
-                           --enable-ldap \
-                           --enable-ldbm \
-                           --enable-dyngroup \
-                           --enable-dynlist \
-                           --enable-ppolicy \
-                           --enable-valsort
-       cd $(DIR_APP) && make depend
+       cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/openldap-gcc44-fixes.patch
+       cd $(DIR_APP) && ./configure \
+               --prefix=/usr \
+               --libexecdir=/usr/lib \
+               --sysconfdir=/etc \
+               --localstatedir=/srv/ldap \
+               --with-threads=posix \
+               --disable-perl \
+               --enable-dynamic \
+               --enable-crypt \
+               --enable-modules \
+               --enable-rlookups \
+               --enable-backends=mod \
+               --enable-overlays=mod \
+               --enable-sql=no \
+               --enable-ndb=no \
+               --disable-static
        cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE)
        cd $(DIR_APP) && make install
-       chmod -v 755 /usr/lib/libl*-2.3.so.0.2.8
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index d8a7c482b09eacd7875ed715c83ad2f0ecc01118..229ed8f8f8c3a8dbc40aa7abc1b0c9c793c2a32d 100644 (file)
@@ -34,7 +34,8 @@ TARGET     = $(DIR_INFO)/$(THISAPP)
 SUP_ARCH   = i586
 PROG       = openvmtools
 PAK_VER    = 1
-DEPS       = "glib"
+
+DEPS       = ""
 
 ###############################################################################
 # Top-level Rules
similarity index 81%
rename from lfs/qemu-kqemu
rename to lfs/pakfire3
index c2b6b3369638197f2a773d8edd503de6b8c70524..a0e19ddb2ad1c744569107bdbd485c0cd9b44d3c 100644 (file)
 
 include Config
 
-VER        = 0.11.1
+VER        = 0.9.23
 
-THISAPP    = qemu-$(VER)
+THISAPP    = pakfire-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
-DL_FROM    = $(URL_IPFIRE)
+DL_FROM    = http://source.ipfire.org/releases/pakfire/
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
-TARGET     = $(DIR_INFO)/$(THISAPP)-kqemu
-SUP_ARCH   = i586
-PROG       = qemu-kqemu
-PAK_VER    = 3
+TARGET     = $(DIR_INFO)/$(THISAPP)
+PROG      = pakfire3
+PAK_VER    = 1
 
-DEPS       = "sdl qemu"
+DEPS       = "libsatsolver pycurl python-progressbar python-xattr sqlite urlgrabber"
 
 ###############################################################################
 # Top-level Rules
@@ -45,7 +44,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 193285b0bcf655a7f7577d05ffcb82b1
+$(DL_FILE)_MD5 = 10e6dd51c917faa8bd2e7435495de211
 
 install : $(TARGET)
 
@@ -77,12 +76,13 @@ $(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/qemu-kqemu_change-default-kqemu-bios.patch
-       cd $(DIR_APP) && ./configure --prefix=/usr \
-               --target-list="i386-softmmu"
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/pakfire3-changes-for-ipfire2.diff
        cd $(DIR_APP) && make $(MAKETUNING)
-       cd $(DIR_APP) && cp -f i386-softmmu/qemu /usr/bin/qemu-kqemu
-       cd $(DIR_APP) && cp -f pc-bios/bios.bin /usr/share/qemu/bios-kqemu.bin
+       cd $(DIR_APP) && make install
+       rm -vf /usr/bin/pakfire3
+
+       install -v -m 644 $(DIR_SRC)/config/backup/includes/pakfire3 \
+               /var/ipfire/backup/addons/includes/pakfire3
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
diff --git a/lfs/pakfire3-deps b/lfs/pakfire3-deps
deleted file mode 100644 (file)
index 3a34e4f..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-###############################################################################
-#                                                                             #
-# IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2011  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       = 0
-
-THISAPP    = pakfire3-deps
-TARGET     = $(DIR_INFO)/$(THISAPP)
-PROG      = pakfire3-deps
-PAK_VER    = 1
-DEPS       = "intltool git make libsatsolver python-satsolver python-distutils python-distutils-extra python-lzma python-progressbar python-xattr sqlite urlgrabber"
-
-###############################################################################
-
-install : $(TARGET)
-
-check :
-
-download :
-
-md5 :
-
-dist: 
-       @$(PAK)
-
-###############################################################################
-# Installation Details
-###############################################################################
-
-$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
-       @$(PREBUILD)
-       #Create a file for the package. Because empty rootfile will break.
-       echo "# Pakfire 3 deps is installed" > /var/ipfire/pakfire3-deps
-       @$(POSTBUILD)
similarity index 90%
rename from lfs/fw_ath9k_htc
rename to lfs/pango
index ebd686e3bbec1d3f4794a8d4d2e6a50b55df4c80..bd5d5f8a80a5f846ddc6bf11f0aeae70e46007fc 100644 (file)
+++ b/lfs/pango
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2011  IPFire Team  <info@ipfire.org>                          #
+# 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        #
@@ -24,9 +24,9 @@
 
 include Config
 
-VER        = 1.3
+VER        = 1.30.1
 
-THISAPP    = fw_ath9k_htc-$(VER)
+THISAPP    = pango-$(VER)
 DL_FILE    = $(THISAPP).tar.xz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 6e83c7d87007e3edd700034990cccd61
+$(DL_FILE)_MD5 = ec3c1f236ee9bd4a982a5f46fcaff7b9
 
 install : $(TARGET)
 
@@ -70,6 +70,8 @@ $(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) && cp -v htc*.fw /lib/firmware
+       cd $(DIR_APP) && ./configure --prefix=/usr --sysconfdir=/etc
+       cd $(DIR_APP) && make $(MAKETUNING)
+       cd $(DIR_APP) && make install
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index ce604c1325609a1b9d1a8e71eaffc0fd2d7e7776..fc4a962f35ab634ced9bf7e0d2244c9859d2c50e 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007  Michael Tremer & Christian Schmidt                      #
+# Copyright (C) 2012  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        = 2.2.3
+VER        = 3.1.10
 
 THISAPP    = pciutils-$(VER)
-DL_FILE    = $(THISAPP).tar.bz2
+DL_FILE    = $(THISAPP).tar.gz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
-ifeq "$(LFS_PASS)" "install"
-  TARGET     = $(DIR_INFO)/$(THISAPP)-install
-else
-  TARGET     = $(DIR_INFO)/$(THISAPP)
-endif
+TARGET     = $(DIR_INFO)/$(THISAPP)
 
 ###############################################################################
 # Top-level Rules
@@ -44,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 86cc20eaa0360587497a8105d33e57fc
+$(DL_FILE)_MD5 = cdb1e5a95ab7ac67349f10c8f77a6d3c
 
 install : $(TARGET)
 
@@ -73,32 +69,22 @@ $(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) && sed -i 's/null ;/null 2>\&1 ;/' update-pciids.sh
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/pciutils-strip.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/pciutils-2.1.10-scan.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/pciutils-havepread.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/pciutils-devicetype.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/pciutils-2.2.1-idpath.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/pciutils-2.1.99-gcc4.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/pciutils-2.2.3-multilib.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/pciutils-2.2.3-sata.patch
-ifeq "$(LFS_PASS)" "install"
-       cd $(DIR_APP)/lib && CFLAGS="-Os -fomit-frame-pointer" ./configure
-       cd $(DIR_APP)/lib && CFLAGS="-Os -fomit-frame-pointer" make $(MAKETUNING)
-       -mkdir -p /opt/$(MACHINE)-uClibc/include/pci
-       cd $(DIR_APP) && install -m 0644 lib/libpci.a /opt/$(MACHINE)-uClibc/lib
-       cd $(DIR_APP) && install -m 0644 lib/*.h /opt/$(MACHINE)-uClibc/include/pci
-else
-ifeq "$(MACHINE_TYPE)" "arm"
-       cd $(DIR_APP)/lib && ./configure
-       cd $(DIR_APP)/lib && sed -e "s/^#error.*$$/#define CPU_ARCH_ARM/" -i config.h
-endif
-       cd $(DIR_APP) && make PREFIX=/usr $(MAKETUNING)
-       cd $(DIR_APP) && make PREFIX=/usr install
-       cd $(DIR_APP) && install -v -m 755 -d /usr/include/pci
-       cd $(DIR_APP) && install -v -m 644 lib/libpci.a /usr/lib
-       cd $(DIR_APP) && install -v -m 644 lib/*.h /usr/include/pci
-endif
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && make SHARED=yes OPT="$(CFLAGS)" PREFIX=/usr STRIP="" \
+               IDSDIR=/usr/share/hwdata ZLIB=no $(MAKETUNING)
+
+       cd $(DIR_APP) && install -p lspci setpci /bin
+       cd $(DIR_APP) && install -p update-pciids /sbin
+       cd $(DIR_APP) && install -p lib/libpci.so.* /lib/
+       ln -svf ../../lib/libpci.so.$(VER) /usr/lib/libpci.so
+
+       # Install headers.
+       mkdir -pv /usr/include/pci
+       cd $(DIR_APP) && install -p lib/pci.h /usr/include/pci
+       cd $(DIR_APP) && install -p lib/header.h /usr/include/pci
+       cd $(DIR_APP) && install -p lib/config.h /usr/include/pci
+       cd $(DIR_APP) && install -p lib/types.h /usr/include/pci
+       cd $(DIR_APP) && install -p lib/libpci.pc /usr/lib/pkgconfig
+
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index 67ad5601fb8be7b273e49e01fe6a334f0ba7f18b..c80208e7036a7eb50bb4a952b3af767712f61f16 100644 (file)
@@ -30,13 +30,7 @@ THISAPP    = pcmciautils-$(VER)
 DL_FILE    = $(THISAPP).tar.bz2
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
-
-ifeq "$(LFS_PASS)" "install"
-    TARGET     = $(DIR_INFO)/$(THISAPP)-install
-else
-    TARGET     = $(DIR_INFO)/$(THISAPP)
-endif
-
+TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = pcmciautils
 PAK_VER    = 1
 DEPS       = ""
@@ -82,21 +76,8 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
-
-ifeq "$(LFS_PASS)" "install"
-       ln -f -s ../../../../../include/sysfs /opt/$(MACHINE)-uClibc/lib/gcc/$(MACHINE)-linux-uclibc/4.0.4/include/sysfs
-       cd $(DIR_APP) && make
-       cd $(DIR_APP) && install -m 755 pccardctl /install/initrd/sbin/
-       ln -f -s pccardctl /install/initrd/sbin/lspcmcia
-       cd $(DIR_APP) && install -m 755 pcmcia-check-broken-cis /install/initrd/sbin/
-       cd $(DIR_APP) && install -m 755 pcmcia-socket-startup /install/initrd/sbin/
-       cp -f /etc/udev/rules.d/60-pcmcia.rules /install/initrd/etc/udev/rules.d/60-pcmcia.rules
-       mkdir -p /install/initrd/etc/pcmcia
-       cp -f /etc/pcmcia/config.opts /install/initrd/etc/pcmcia/config.opts
-else
        cd $(DIR_APP) && make
        cd $(DIR_APP) && make install
        @sed -i -e 's/ MODALIAS=="?[*]",//g' /etc/udev/rules.d/60-pcmcia.rules
-endif
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index f99abf3783a007af91047e8288e8d02e72929248..5aa40bd20d08d41253f4cd21326061dff376542f 100644 (file)
--- a/lfs/pcre
+++ b/lfs/pcre
 
 include Config
 
-VER        = 7.7
+VER        = 8.31
 
 THISAPP    = pcre-$(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 = 4b2e9cde1f7227448dddba59843efa0b
+$(DL_FILE)_MD5 = fab1bb3b91a4c35398263a5c1e0858c1
 
 install : $(TARGET)
 
@@ -69,11 +69,14 @@ $(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) && ./configure --prefix=/usr --enable-utf8
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure \
+               --prefix=/usr \
+               --disable-static \
+               --enable-utf8 \
+               --enable-jit \
+               --enable-unicode-properties
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
-       cd $(DIR_APP) && mv -v /usr/lib/libpcre.so.* /lib/
-       cd $(DIR_APP) && ln -v -sf ../../lib/libpcre.so.0 /usr/lib/libpcre.so
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
similarity index 91%
rename from lfs/hddtemp
rename to lfs/pcre-compat
index 9533f67f85a588e4179dae8c4d7452f9be09d968..6b20bca741925f6eeb8f23f877847e64c432f183 100644 (file)
@@ -24,9 +24,9 @@
 
 include Config
 
-VER        = 0.3-beta14
+VER        = 7.7
 
-THISAPP    = hddtemp-$(VER)
+THISAPP    = pcre-$(VER)
 DL_FILE    = $(THISAPP).tar.bz2
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = bbf8be4539495e18bec54af77511a680
+$(DL_FILE)_MD5 = 4b2e9cde1f7227448dddba59843efa0b
 
 install : $(TARGET)
 
@@ -70,7 +70,10 @@ $(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) && ./configure --prefix=/usr --with-db-path=/etc/hddtemp.db
-       cd $(DIR_APP) && make $(MAKETUNING) && make install
+       cd $(DIR_APP) && ./configure --prefix=/usr --enable-utf8
+       cd $(DIR_APP) && make $(MAKETUNING)
+
+       install -m 755 $(DIR_APP)/.libs/libpcre.so.0.0.1 /lib
+       ln -svf libpcre.so.0.0.1 /lib/libpcre.so.0
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
diff --git a/lfs/php b/lfs/php
index 503ddcc44303ed909163f3a5e81dbad8ef643982..58f442ce4c839dba7c381cb4345f660b151dfba4 100644 (file)
--- a/lfs/php
+++ b/lfs/php
@@ -32,6 +32,10 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 
+ifeq "$(MACHINE_TYPE)" "arm"
+       CFLAGS    := $(patsubst -march=%,,$(CFLAGS))
+endif
+
 ###############################################################################
 # Top-level Rules
 ###############################################################################
similarity index 96%
rename from lfs/libaal
rename to lfs/pixman
index 08d8ac1efb339b29f41fd5b2d5c5cde638c38156..1cb2a08df46887ce7bc6ad412b6a84ef5884efdd 100644 (file)
@@ -24,9 +24,9 @@
 
 include Config
 
-VER      = 1.0.5
+VER        = 0.26.0
 
-THISAPP    = libaal-$(VER)
+THISAPP    = pixman-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 6c55201acd2a2c0a1f46addf248da6a2
+$(DL_FILE)_MD5 = 6563b6400b9fa23b47fd52105faf72b4
 
 install : $(TARGET)
 
index 25fcc69cbb2a3605335e812b4335504cb3fa9988..ee4c3f914c35ccdac3ba8b26abff8cebf04d3bff 100644 (file)
--- a/lfs/popt
+++ b/lfs/popt
@@ -30,11 +30,7 @@ THISAPP    = popt-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
-ifeq "$(LFS_PASS)" "install"
-       TARGET = $(DIR_INFO)/$(THISAPP)-install
-else
-       TARGET = $(DIR_INFO)/$(THISAPP)
-endif
+TARGET     = $(DIR_INFO)/$(THISAPP)
 
 ###############################################################################
 # Top-level Rules
@@ -74,16 +70,9 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
-ifeq "$(LFS_PASS)" "install"
-       cd $(DIR_APP) && ./configure --prefix=/ --disable-nls
-       cd $(DIR_APP) && make $(MAKETUNING)
-       cd $(DIR_APP) && make DESTDIR=/opt/$(MACHINE)-uClibc install
-else
        cd $(DIR_APP) && sed -i -e "/*origOptString ==/c 0)" popt.c
-       cd $(DIR_APP) && autoreconf -f -i
        cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
-endif
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index bbb9b0ca41250d259c3f8f685849e16a3e919b31..5866b97d85ac01cae96f6ecbd8c00fcce4e1fc65 100644 (file)
@@ -36,6 +36,9 @@ PAK_VER    = 6
 
 DEPS       = "amavisd mysql"
 
+# Fake kernel release
+export UTS_RELEASE = 2.6.32-ipfire
+
 ###############################################################################
 # Top-level Rules
 ###############################################################################
diff --git a/lfs/ppp b/lfs/ppp
index e667b1ee053601757dadd1774407a32009a22a6a..5d772fc04321517f232abc75327fbe09d61e6162 100644 (file)
--- a/lfs/ppp
+++ b/lfs/ppp
@@ -32,6 +32,8 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 
+CFLAGS    += -fno-strict-aliasing
+
 ###############################################################################
 # Top-level Rules
 ###############################################################################
@@ -70,7 +72,7 @@ $(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) && rm -f include/pcap-int.h
+       cd $(DIR_APP) && rm -f include/pcap-int.h include/linux/if_pppol2tp.h
 #      cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/ppp-2.4.2-pppoatm.patch
 #      cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/ppp-2.4.2-pppoatm-persist.patch
 #      cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/ppp-2.4.1-oedod.patch
@@ -80,7 +82,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
 #      cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/ppp-2.4.2-close.patch
        cd $(DIR_APP) && sed -i -e "s+/etc/ppp/connect-errors+/var/log/connect-errors+" pppd/pathnames.h
        cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls
-       cd $(DIR_APP) && make $(MAKETUNING)
+       cd $(DIR_APP) && make $(MAKETUNING) CC="gcc $(CFLAGS)"
        cd $(DIR_APP) && make install
        cd $(DIR_APP) && make install-etcppp
        touch /var/log/connect-errors
index e3237c34a94fecf0710a9afba473dc05731308ee..8edb89b6c60879ad5c0a2481c0c68c6bebba3ce6 100644 (file)
--- a/lfs/pptp
+++ b/lfs/pptp
@@ -70,6 +70,7 @@ $(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 -Np0 < $(DIR_SRC)/src/patches/pptp-1.7.2-compat.patch
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
        @rm -rf $(DIR_APP)
similarity index 84%
rename from lfs/kqemu
rename to lfs/pycurl
index 6e5ecfaefd3ec63c0e83e79ee434cea5239e3eed..cf8bd71fc036d39e8ddf279d14ce33f07b20e716 100644 (file)
--- a/lfs/kqemu
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2011  IPFire Team <info@ipfire.org>                      #
+# Copyright (C) 2007-2012  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
 
-VERSUFIX=ipfire$(KCFG)
+VER        = 7.19.0
 
-VER        = 1.4.0pre1
-
-THISAPP    = kqemu-$(VER)
+THISAPP    = pycurl-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
-TARGET     = $(DIR_INFO)/$(THISAPP)-kmod-$(KVER)-$(VERSUFIX)
-SUP_ARCH   = i586
+TARGET     = $(DIR_INFO)/$(THISAPP)
+PROG       = pycurl
+PAK_VER    = 2
+
+DEPS       = ""
+
+CFLAGS    += -DHAVE_CURL_OPENSSL
 
 ###############################################################################
 # Top-level Rules
@@ -43,7 +46,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = d738d8ca7332211ab716ec3213d82ee1
+$(DL_FILE)_MD5 = 919d58fe37e69fe87ce4534d8b6a1c7b
 
 install : $(TARGET)
 
@@ -54,7 +57,7 @@ download :$(patsubst %,$(DIR_DL)/%,$(objects))
 md5 : $(subst %,%_MD5,$(objects))
 
 dist: 
-       $(PAK)
+       @$(PAK)
 
 ###############################################################################
 # Downloading, checking, md5sum
@@ -76,9 +79,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) && ./configure --prefix=/usr --kernel-path=/usr/src/linux
-       cd $(DIR_APP) && make $(MAKETUNING)
-       -mkdir -p /lib/modules/$(KVER)-$(VERSUFIX)/misc/
-       cd $(DIR_APP) && install -m 644 kqemu.ko /lib/modules/$(KVER)-$(VERSUFIX)/misc/
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/python-pycurl-fix-do_curl_reset-refcount.patch
+       cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/python-pycurl-no-static-libs.patch
+       cd $(DIR_APP) && python setup.py install
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
diff --git a/lfs/pygpgme b/lfs/pygpgme
new file mode 100644 (file)
index 0000000..4adf25a
--- /dev/null
@@ -0,0 +1,82 @@
+###############################################################################
+#                                                                             #
+# 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        = 0.3
+
+THISAPP    = pygpgme-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+PROG       = pygpgme
+PAK_VER    = 1
+
+DEPS       = "gpgme"
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = d38355af73f0352cde3d410b25f34fd0
+
+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 zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && python setup.py install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
index da2ea34ba24421d9c12d52497dd54bd3cfc79c24..d68b97d1e5667a66320706b962c576f742886222 100644 (file)
--- a/lfs/qemu
+++ b/lfs/qemu
@@ -78,12 +78,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) && sed -i -e 's|CFLAGS+="-march=i486"|CFLAGS+=""|g' configure
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/qemu-0.15.0_missing_definitions_hack.patch
-
        cd $(DIR_APP) && ./configure --prefix=/usr --sysconfdir=/etc \
-               --target-list="i386-linux-user i386-softmmu arm-softmmu"
+               --target-list="i386-linux-user i386-softmmu arm-softmmu" \
+               --extra-cflags="$(CFLAGS)"
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
        @rm -rf $(DIR_APP)
index 266e891bd1139eb696c1f034ac735ea0bc55a2b3..85d39007b871c65b5222adaf8dea66beed1abb1c 100644 (file)
--- a/lfs/r8101
+++ b/lfs/r8101
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2011  IPFire Team <info@ipfire.org>                      #
+# Copyright (C) 2007-2012  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
 
 VERSUFIX = ipfire$(KCFG)
+ifeq "$(KCFG)" "-xen"
+       KVER = 2.6.32.60
+       MODPATH = /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net
+else
+       MODPATH = /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/ethernet/realtek
+endif
 
-VER        = 1.019.00
+VER        = 1.023.00
 
 THISAPP    = r8101-$(VER)
 DL_FILE    = $(THISAPP).tar.bz2
@@ -42,7 +48,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 2804355badc4cb14f091dd8b32d270c3
+$(DL_FILE)_MD5 = 03cfc34e41522cd34ac6f4b1b6508896
 
 install : $(TARGET)
 
@@ -77,6 +83,6 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/r8101_add_missing_pciids.patch
        cd $(DIR_APP) && make -C /lib/modules/$(KVER)-$(VERSUFIX)/build/ SUBDIRS=$(DIR_APP)/src modules
-       cd $(DIR_APP)/src && install -m 644 r8101.ko /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net 
+       cd $(DIR_APP)/src && install -m 644 r8101.ko $(MODPATH)
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index 2a4e2abad2ca3ff3b98e7a19be3d394bef9b4880..940172fe9aecc28db92d6a5729589542866b97ae 100644 (file)
--- a/lfs/r8168
+++ b/lfs/r8168
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2011  IPFire Team <info@ipfire.org>                      #
+# Copyright (C) 2007-2012  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
 
 VERSUFIX = ipfire$(KCFG)
+ifeq "$(KCFG)" "-xen"
+       KVER = 2.6.32.60
+       MODPATH = /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net
+else
+       MODPATH = /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/ethernet/realtek
+endif
 
-VER        = 8.019.00
+VER        = 8.032.00
 
 THISAPP    = r8168-$(VER)
 DL_FILE    = $(THISAPP).tar.bz2
@@ -42,7 +48,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = f6934fc5df1dfb5fea82e4a310568890
+$(DL_FILE)_MD5 = 942ce02459a181093f77bb4d5cc75d45
 
 install : $(TARGET)
 
@@ -76,6 +82,6 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
        cd $(DIR_APP) && make -C /lib/modules/$(KVER)-$(VERSUFIX)/build/ SUBDIRS=$(DIR_APP)/src modules
-       cd $(DIR_APP)/src && install -m 644 r8168.ko /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net 
+       cd $(DIR_APP)/src && install -m 644 r8168.ko $(MODPATH)
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index 85a6dc179da666eb98a34a824ac1bfaf2c75b923..65c34e610f570061e2d57a0a3f7d9c4fe3d7aefe 100644 (file)
--- a/lfs/r8169
+++ b/lfs/r8169
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2011  IPFire Team <info@ipfire.org>                      #
+# Copyright (C) 2007-2012  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
 
 VERSUFIX = ipfire$(KCFG)
+ifeq "$(KCFG)" "-xen"
+       KVER = 2.6.32.60
+       MODPATH = /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net
+else
+       MODPATH = /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/ethernet/realtek
+endif
 
-VER        = 6.014.00
+VER        = 6.017.00
 
 THISAPP    = r8169-$(VER)
 DL_FILE    = $(THISAPP).tar.bz2
@@ -42,7 +48,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 0f1a8dffb4774e8f9ac29ae29a0696e3
+$(DL_FILE)_MD5 = 396d7e28d573bde416fbdfdef723f4bd
 
 install : $(TARGET)
 
@@ -75,11 +81,11 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        #Save original r8169 module
-       -mv /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/r8169.ko \
-           /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/r8169.ko.org
+       -mv $(MODPATH)/r8169.ko \
+           $(MODPATH)/r8169.ko.org
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/r8169_add_missing_pciids.patch
        cd $(DIR_APP) && make -C /lib/modules/$(KVER)-$(VERSUFIX)/build/ SUBDIRS=$(DIR_APP)/src modules
-       cd $(DIR_APP)/src && install -m 644 r8169.ko /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net 
+       cd $(DIR_APP)/src && install -m 644 r8169.ko $(MODPATH)
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index e2d6248fab6702d8a0389e0c20256761089dc42d..7b88adff2c6c6aaed1416eb7469c7dc73425eee9 100644 (file)
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 5.1
+VER        = 6.2
 
 THISAPP    = readline-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 7ee5a692db88b30ca48927a13fd60e46
+$(DL_FILE)_MD5 = 67948acb2ca081f23359d0256e9a271c
 
 install : $(TARGET)
 
@@ -70,16 +70,15 @@ $(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 -i $(DIR_SRC)/src/patches/readline-5.1-fixes-3.patch
-       cd $(DIR_APP) && sed -i '/MV.*old/d' Makefile.in
-       cd $(DIR_APP) && sed -i '/{OLDSUFF}/c:' support/shlib-install
-       cd $(DIR_APP) && ./configure --prefix=/usr --libdir=/lib
+
+       for i in $$(seq 1 4); do \
+               cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/readline/readline62-$$(printf "%03d" "$${i}") || exit 1; \
+       done
+
+       cd $(DIR_APP) && ./configure --prefix=/usr --disable-static
        cd $(DIR_APP) && make $(MAKETUNING) SHLIB_LIBS=-lncurses
        cd $(DIR_APP) && make install
-       chmod -v 755 /lib/lib{readline,history}.so*
-       mv -v /lib/lib{readline,history}.a /usr/lib
-       rm -v /lib/lib{readline,history}.so
-       ln -sfv ../../lib/libreadline.so.5 /usr/lib/libreadline.so
-       ln -sfv ../../lib/libhistory.so.5 /usr/lib/libhistory.so
+
+       rm -rfv /usr/share/readline
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
similarity index 82%
rename from lfs/applejuice
rename to lfs/readline-compat
index 12e58a681eb38cf1b68e492e60210d843b63eb9e..2f4388c028f6aea7ee24d35031861ae31730c3ff 100644 (file)
 #                                                                             #
 ###############################################################################
 
-
 ###############################################################################
 # Definitions
 ###############################################################################
 
 include Config
 
-VER        = 0.31
+VER        = 5.2
 
-THISAPP    = applejuice-$(VER)
+THISAPP    = readline-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
-PROG       = applejuice
-PAK_VER    = 2
-
-DEPS       = "java"
 
 ###############################################################################
 # Top-level Rules
@@ -45,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = dc4ac444ff9ec9e1e841e856564d0234
+$(DL_FILE)_MD5 = e39331f32ad14009b9ff49cc10c5e751
 
 install : $(TARGET)
 
@@ -55,9 +50,6 @@ download :$(patsubst %,$(DIR_DL)/%,$(objects))
 
 md5 : $(subst %,%_MD5,$(objects))
 
-dist: 
-       @$(PAK)
-
 ###############################################################################
 # Downloading, checking, md5sum
 ###############################################################################
@@ -78,13 +70,17 @@ $(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) && mkdir -p /opt/applejuice && mv -fv ajcore.jar /opt/applejuice
-       cd $(DIR_APP) && mv -fv libajnetmask.so /opt/applejuice
-       ln -svf ../../opt/applejuice/libajnetmask.so /usr/lib
-       cd $(DIR_APP) && cp -afv phpaj /srv/web
-       chown nobody.nobody /srv/web/phpaj -Rv
-       -mkdir /var/ipfire/applejuice
-       echo "RAMSIZE=64M" > /var/ipfire/applejuice/settings
-       chown nobody.nobody /var/ipfire/applejuice -Rv
+
+       for i in $$(seq 1 14); do \
+               cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/readline/readline52-$$(printf "%03d" "$${i}") || exit 1; \
+       done
+
+       cd $(DIR_APP) && ./configure --prefix=/usr --libdir=/lib --disable-static
+       cd $(DIR_APP) && make $(MAKETUNING) SHLIB_LIBS=-lncurses
+
+       cd $(DIR_APP)/shlib && install -m 755 libreadline.so.$(VER) /lib
+       cd $(DIR_APP)/shlib && install -m 755 libhistory.so.$(VER) /lib
+       ln -svf libreadline.so.$(VER) /lib/libreadline.so.5
+       ln -svf libhistory.so.$(VER) /lib/libhistory.so.5
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index b78baefbfd46fc04cb6c0cb8690c585436e602b7..402753ee02597d9cef162fead7cc96cda0df0675 100644 (file)
@@ -30,11 +30,7 @@ THISAPP    = reiserfsprogs-$(VER)
 DL_FILE    = $(THISAPP).tar.bz2
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
-ifeq "$(LFS_PASS)" "install"
-       TARGET = $(DIR_INFO)/$(THISAPP)-install
-else
-       TARGET = $(DIR_INFO)/$(THISAPP)
-endif
+TARGET     = $(DIR_INFO)/$(THISAPP)
 
 ###############################################################################
 # Top-level Rules
@@ -74,16 +70,10 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
-ifeq "$(LFS_PASS)" "install"
-       cd $(DIR_APP) && ./configure --prefix=/ --sbindir=/sbin
-       cd $(DIR_APP) && make $(MAKETUNING)
-       cd $(DIR_APP) && install -v -m 755 mkreiserfs/mkreiserfs /install/initrd/sbin/mkreiserfs
-else
        cd $(DIR_APP) && ./configure --prefix=/usr --sbindir=/sbin
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
        ln -svf reiserfsck /sbin/fsck.reiserfs
        ln -svf mkreiserfs /sbin/mkfs.reiserfs
-endif
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
diff --git a/lfs/rpi-firmware b/lfs/rpi-firmware
new file mode 100644 (file)
index 0000000..c02d5cc
--- /dev/null
@@ -0,0 +1,74 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2012  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        = 855e997
+THISAPP    = rpi-firmware-$(VER)
+DL_FILE    = $(THISAPP).tar.xz
+DL_FROM    = $(URL_IPFIRE)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+SUP_ARCH   = armv5tel
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = c73700a10d792517b2b87fd28a6c9800
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# 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)
+       @cd / && tar axf $(DIR_DL)/$(DL_FILE)
+       cp -f $(DIR_SRC)/config/rpi-firmware/config.txt /boot
+       @$(POSTBUILD)
index db44716093ea8a79c24a607fa11a0a5742916d39..0237b89f2e48d5dff2f1c7a3c218f342b3e27809 100644 (file)
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 1.2.30
+VER        = 1.4.7
 
 THISAPP    = rrdtool-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 19b24f7184a8dbf7b48c1bbb565ad9fb
+$(DL_FILE)_MD5 = ffe369d8921b4dfdeaaf43812100c38f
 
 install : $(TARGET)
 
@@ -70,13 +70,16 @@ $(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) && ./configure --prefix=/usr/share/$(THISAPP) \
-           --exec-prefix=/usr --mandir=/usr/share/man --enable-perl-site-install \
-           --enable-local-libpng --enable-local-zlib --with-pic --enable-latin2 \
-           --disable-python --disable-tcl
+       cd $(DIR_APP) && ./configure \
+               --prefix=/usr \
+               --disable-rrdcgi \
+               --enable-perl \
+               --enable-perl-site-install \
+               --disable-tcl \
+               --disable-ruby \
+               --disable-python
        cd $(DIR_APP) && make
        cd $(DIR_APP) && make install
-       cd $(DIR_APP) && make site-perl-install
        -mkdir -p /srv/web/ipfire/html/graphs/
        chmod 777 /srv/web/ipfire/html/graphs/
        -mkdir -p /var/log/rrd/
index eef5862624c4b8bf05a49ee2a0ed4ed8bfbe3734..b94d62e6ebc3515e9fa20f4c1c974496ab04adc2 100644 (file)
@@ -70,6 +70,7 @@ $(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/screen-4.0.3-stropts.patch
        cd $(DIR_APP) && ./configure --prefix=/usr --with-socket-dir=/var/run/screen --with-sys-screenrc=/etc/screenrc
        cd $(DIR_APP) && sed -i -e "s%/usr/local/etc/screenrc%/etc/screenrc%" {etc,doc}/*
        cd $(DIR_APP) && make $(MAKETUNING)
diff --git a/lfs/sdl b/lfs/sdl
index 2716f3fbc6eaf369fccf255417cd0dfe4a1a59db..5f5ecdcef48b455f4bda3203f316443b70a709a5 100644 (file)
--- a/lfs/sdl
+++ b/lfs/sdl
@@ -77,10 +77,8 @@ dist:
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
-ifeq "$(MACHINE_TYPE)" "arm"
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/SDL-1.2.11-asm-page.h.patch
        cd $(DIR_APP) && sed "/asm\/page.h/d" -i src/video/fbcon/SDL_fbvideo.c
-endif
        cd $(DIR_APP) && ./configure --prefix=/usr
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
index f1c8bd0b57d1a4bdf08724f9b3f455ab100e8da0..daa94ffb1a37d0ec9e83ff0baf60c535d9bf2e08 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007  Michael Tremer & Christian Schmidt                      #
+# Copyright (C) 2007-2012  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        #
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 1.01
+VER        = 1.07
 
 THISAPP    = sdparm-$(VER)
 DL_FILE    = $(THISAPP).tgz
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 7c87e5e1ebba54b7dae40e45fd356ab9
+$(DL_FILE)_MD5 = c807f9db3dd7af175214be0d7fece494
 
 install : $(TARGET)
 
diff --git a/lfs/sed b/lfs/sed
index 22b820407feb8e986473b3c4e278b588d3c84bb3..8904fd42906aa2837ddb2a210894cbe2f2d0b152 100644 (file)
--- a/lfs/sed
+++ b/lfs/sed
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 4.1.5
+VER        = 4.2.1
 
 THISAPP    = sed-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -36,13 +36,11 @@ DIR_APP    = $(DIR_SRC)/$(THISAPP)
 ifeq "$(ROOT)" ""
   TARGET = $(DIR_INFO)/$(THISAPP)
   EXTRA_CONFIG = --prefix=/usr --bindir=/bin --disable-nls
-  EXTRA_LDFLAGS =
   EXTRA_MAKE =
   EXTRA_INSTALL =
 else
   TARGET = $(DIR_INFO)/$(THISAPP)-tools
   EXTRA_CONFIG = --prefix=/tools --disable-nls
-  EXTRA_LDFLAGS =
   EXTRA_MAKE = 
   EXTRA_INSTALL = 
 endif
@@ -55,7 +53,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 7a1cbbbb3341287308e140bd4834c3ba
+$(DL_FILE)_MD5 = f0fd4d7da574d4707e442285fd2d3b86
 
 install : $(TARGET)
 
@@ -85,7 +83,7 @@ $(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) && LDFLAGS="$(EXTRA_LDFLAGS)" ./configure $(EXTRA_CONFIG)
+       cd $(DIR_APP) && ./configure $(EXTRA_CONFIG)
        cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE)
        cd $(DIR_APP) && make $(EXTRA_INSTALL) install
        @rm -rf $(DIR_APP)
index 542d32ff100aa07f34ae22b0ad724b675e7ee1e0..e6c8cc88d3d2f90d746240c120067f8ebdb65f60 100644 (file)
--- a/lfs/slang
+++ b/lfs/slang
@@ -30,11 +30,7 @@ THISAPP    = slang-$(VER)
 DL_FILE    = $(THISAPP).tar.bz2
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
-ifeq "$(LFS_PASS)" "install"
-  TARGET     = $(DIR_INFO)/$(THISAPP)-install
-else
-  TARGET     = $(DIR_INFO)/$(THISAPP)
-endif
+TARGET     = $(DIR_INFO)/$(THISAPP)
 
 ###############################################################################
 # Top-level Rules
@@ -78,13 +74,6 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        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
-ifeq "$(LFS_PASS)" "install"
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/slang-1.4.9-uclibc.patch
-       cd $(DIR_APP) && ./configure --prefix=""
-       cd $(DIR_APP)/src && make $(MAKETUNING) $(EXTRA_MAKE)
-       cd $(DIR_APP)/src && make install DESTDIR="/opt/$(MACHINE)-uClibc"
-       ln -sf libslang-utf8.a /opt/$(MACHINE)-uClibc/lib/libslang.a
-else
        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
@@ -92,6 +81,5 @@ else
        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
-endif
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index 63e51f28ce9fb5460ad810ad4befc18c3c0db592..a4ae11bfa376340b98c5c564d27a479da23f854a 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2011  IPFire Team  <info@ipfire.org>                     #
+# Copyright (C) 2007-2012  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        #
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 5.42
+VER        = 6.0
 
 THISAPP    = smartmontools-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 4460bf9a79a1252ff5c00ba52cf76b2a
+$(DL_FILE)_MD5 = 5646a07f5f4bee8e2e649de8c6b7ae87
 
 install : $(TARGET)
 
@@ -71,7 +71,7 @@ $(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/smartmontools-5.39-exit_segfault.patch
-       cd $(DIR_APP) && ./autogen.sh
+       cd $(DIR_APP) && autoreconf
        cd $(DIR_APP) && ./configure --prefix=/usr
        cd $(DIR_APP) && make BUILD_INFO='"($(NAME) $(VERSION))"' $(MAKETUNING)
        cd $(DIR_APP) && make install
index 5059923aeb8f16af0ccf2408da39739ab426b98f..beb0abbcb2d4fb0a884080c1856c8c7f3b826092 100644 (file)
@@ -63,9 +63,11 @@ $(TARGET) :
        
        # Symlinks
        # for this reason, stage2 rebuild will broke the iso:perl, grubbatch
-       -ln -sv /tools/bin/{bash,cat,grep,pwd,stty} /bin
+       -ln -sv /tools/bin/{bash,cat,echo,pwd,stty} /bin
        -ln -sv /tools/bin/perl /usr/bin
        -ln -sv /tools/lib/libgcc_s.so{,.1} /usr/lib
+       -ln -sv /tools/lib/libstdc++.so{,.6} /usr/lib
+       sed 's/tools/usr/' /tools/lib/libstdc++.la > /usr/lib/libstdc++.la
        -ln -sv bash /bin/sh
 
        # Config files
@@ -81,7 +83,11 @@ $(TARGET) :
            [ -f $$i ] && cp $$i /etc/profile.d; \
        done
        chmod 755 /etc/bashrc
-       ln -svf ../bashrc /etc/profile.d/bashrc.sh
+
+       # Install root's bash files.
+       for i in $(DIR_SRC)/config/bash/dot_*; do \
+               [ -f $$i ] && cp $$i /root/$$(basename $${i/dot_/\.}); \
+       done
 
        # Scripts
        for i in `find $(DIR_SRC)/src/scripts -maxdepth 1 -type f`; do \
index 9ef65af0b26455cc92a2372b27e996137a9d15fa..4e30f8b714b44721a45bbfedbfcd6e27d5c64139 100644 (file)
@@ -34,7 +34,7 @@ TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = streamripper
 PAK_VER    = 1
 
-DEPS       = "glib libmad libogg libvorbis faad2"
+DEPS       = "libmad libogg libvorbis faad2"
 
 ###############################################################################
 # Top-level Rules
index 169419e8a8291368e2764da46d547c351c45ba24..30cb9b33b47703ce3a4a1dfce25baba267f3af19 100644 (file)
--- a/lfs/strip
+++ b/lfs/strip
@@ -46,25 +46,5 @@ md5 :
 ###############################################################################
 
 $(TARGET) :
-
-ifeq "$(LFS_PASS)" "toolchain"
-       -find $(TOOLS_DIR)/lib -type f -exec $(TOOLS_DIR)/bin/strip --strip-debug '{}' ';'
-       -find $(TOOLS_DIR)/{bin,sbin,libexec} -type f -exec $(TOOLS_DIR)/bin/strip --strip-all '{}' ';'
-       rm -rf $(TOOLS_DIR)/{,share/}{doc,info,man}
-endif
-
-ifeq "$(LFS_PASS)" "install"
-       # Add -ls before -exec if you want to verify what files are in the path to be stripped
-       # A running binary can't be stripped, so use the version from /tools
-       # It may fail (signal 11) under circonstance not identified by me (Gilles),
-       # to strip libc again so ignore the error now. Probably need a static strip for libc
-       # Don't use --strip-all on libraries, or they'll be destroyed. Don't use --strip-unneeded, either.
-       -/tools/bin/find /lib /usr/lib /usr/share/rrdtool-* /install/initrd/lib \
-               -type f \( -name '*.so' -o -name '*.so[\.0-9]*' \) \
-               -exec /tools/bin/strip --strip-debug {} \; 2>/dev/null
-
-       -/tools/bin/strip --strip-all /{,usr/}{,local/}{bin,sbin}/* /install/{initrd,misc}/bin/* /usr/lib/cyrus/* 2>/dev/null
-       -/tools/bin/strip --strip-all /usr/lib/awk/{grcat,pwcat} 2>/dev/null
-       -/tools/bin/strip --strip-all /usr/lib/gcc/*-linux-gnu/4.0.4/{cc1*,collect2} 2>/dev/null
-endif
-
+       STRIP="/tools/bin/strip" $(DIR_SRC)/src/stripper / \
+               --exclude=/usr/src --exclude=/tools
index d0d533d11da7e1642c5ac1eb502d7ea13cce5f3f..39459c878fe8e3f031deee1af00e4ba59d9ac225 100644 (file)
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 4.6.4
+VER        = 5.0.1
 
 THISAPP    = strongswan-$(VER)
 DL_FILE    = $(THISAPP).tar.bz2
@@ -32,6 +32,12 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 
+ifeq "$(MACHINE)" "i586"
+       PADLOCK = --enable-padlock
+else
+       PADLOCK = --disable-padlock
+endif
+
 ###############################################################################
 # Top-level Rules
 ###############################################################################
@@ -40,7 +46,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 4c0999c42faa0860ae0afc4f8efd9d04
+$(DL_FILE)_MD5 = 58fdeb49f133139a58f4d8adafc69a16
 
 install : $(TARGET)
 
@@ -73,18 +79,20 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
 
        cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/strongswan-4.5.3_ipfire.patch
 
-       # Customize the welcome banner.
-       sed -i $(DIR_APP)/src/pluto/modecfg.c \
-               -e 's/^#define.*DEFAULT_UNITY_BANNER.*/#define DEFAULT_UNITY_BANNER "Welcome to IPFire - An Open Source Firewall Solution.\\n"/'
-
-       cd $(DIR_APP) && ./configure --prefix="/usr" --sysconfdir="/etc" \
-                                       --enable-cisco-quirks \
-                                       --enable-curl \
-                                       --enable-nat-transport
+       cd $(DIR_APP) && ./configure \
+               --prefix="/usr" \
+               --sysconfdir="/etc" \
+               --enable-curl \
+               --enable-openssl \
+               --enable-eap-radius \
+               $(PADLOCK)
 
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
 
+       # Remove all library files we don't want or need.
+       rm -vf /usr/lib/ipsec/plugins/*.{,l}a
+
        -rm -rfv /etc/rc*.d/*ipsec
        cd $(DIR_SRC) && cp src/initscripts/init.d/ipsec /etc/rc.d/init.d/ipsec
        rm -f /etc/ipsec.conf /etc/ipsec.secrets
index 297f7708ba48b594901af7e4f653ac8292d9dfd9..4980f5e178f2f71e7eb2d864ea5ae62d97494c2f 100644 (file)
@@ -31,11 +31,7 @@ DL_FILE    = $(THISAPP).tar.gz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 
-ifeq "$(LFS_PASS)" "install"
-       TARGET = $(DIR_INFO)/$(THISAPP)-install
-else
-       TARGET = $(DIR_INFO)/$(THISAPP)
-endif
+TARGET     = $(DIR_INFO)/$(THISAPP)
 
 ###############################################################################
 # Top-level Rules
@@ -75,15 +71,8 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
-ifeq "$(LFS_PASS)" "install"
-       cd $(DIR_APP) && ./configure --prefix="" --disable-shared
-       cd $(DIR_APP) && make $(MAKETUNING)
-       cd $(DIR_APP) && make DESTDIR=/opt/$(MACHINE)-uClibc install
-       mv -v /opt/$(MACHINE)-uClibc/usr/include/sysfs /opt/$(MACHINE)-uClibc/include
-else
        cd $(DIR_APP) && ./configure --prefix=""
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
-endif
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index 2167b99789840ba7f21afc11d894c306044f05e6..85864fd065e2b480177bf7190527308d9b7772af 100644 (file)
 
 include Config
 
-VER        = 2.86
+VER        = 2.88dsf
 
 THISAPP    = sysvinit-$(VER)
-DL_FILE    = $(THISAPP).tar.gz
+DL_FILE    = $(THISAPP).tar.bz2
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
-ifeq "$(LFS_PASS)" "install"
-  TARGET     = $(DIR_INFO)/$(THISAPP)-install
-else
-  TARGET     = $(DIR_INFO)/$(THISAPP)
-endif
+TARGET     = $(DIR_INFO)/$(THISAPP)
 
 ###############################################################################
 # Top-level Rules
@@ -44,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 7d5d61c026122ab791ac04c8a84db967
+$(DL_FILE)_MD5 = 6eda8a97b86e0a6f59dabbf25202aa6f
 
 install : $(TARGET)
 
@@ -73,17 +69,8 @@ $(subst %,%_MD5,$(objects)) :
 
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
-       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
-ifeq "$(LFS_PASS)" "install"
-       cd $(DIR_APP)/src && sed -i s'/-O2/-Os\ -fomit-frame-pointer/' Makefile
-       cd $(DIR_APP)/src && make killall5
-       cd $(DIR_APP)/src && install -m 0755 killall5 /install/initrd/bin
-else
-       cd $(DIR_APP) && cp src/init.c{,.backup}
-       cd $(DIR_APP) && sed -i 's@Sending processes@& started by init@g' \
-                               src/init.c
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
        cd $(DIR_APP) && make $(MAKETUNING) -C src 
        cd $(DIR_APP) && make -C src install
-endif
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index 0ead581c79287ff4d02cac360266a5487c45f92b..4ac591ed1b577dd850fd40893583f24209bf4205 100644 (file)
 
 include Config
 
-VER        = 4.8
+VER        = 4.13a
 
 THISAPP    = texinfo-$(VER)
-DL_FILE    = $(THISAPP).tar.bz2
+DL_FILE    = $(THISAPP).tar.gz
 DL_FROM    = $(URL_IPFIRE)
-DIR_APP    = $(DIR_SRC)/$(THISAPP)
+DIR_APP    = $(DIR_SRC)/texinfo-4.13
 
 # Normal build or /tools build.
 #
@@ -53,7 +53,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 6ba369bbfe4afaa56122e65b3ee3a68c
+$(DL_FILE)_MD5 = 71ba711519209b5fb583fed2b3d86fcb
 
 install : $(TARGET)
 
@@ -82,11 +82,7 @@ $(subst %,%_MD5,$(objects)) :
 
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
-       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
-ifeq "$(ROOT)" ""
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-multibyte-1.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-tempfile_fix-2.patch
-endif
+       @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
index 83214328195ac7c76365903199425f8d07e3b3cc..edf5ff22dea4ed7565ac9a52902862f85f3bfaf7 100644 (file)
 
 include Config
 
-TZDATA_VER = 2011n
-TZCODE_VER = 2011i
+VER        = 2012h
+TZDATA_VER = 2012h
+TZCODE_VER = 2012h
 
-THISAPP    = tzdata
-DL_FILE    = tzdata-base-0.tar.bz2
+THISAPP    = tzdata-$(VER)
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
@@ -37,15 +37,13 @@ TARGET     = $(DIR_INFO)/$(THISAPP)
 # Top-level Rules
 ###############################################################################
 
-objects = $(DL_FILE) tzdata$(TZDATA_VER).tar.gz tzcode$(TZCODE_VER).tar.gz
+objects = tzdata$(TZDATA_VER).tar.gz tzcode$(TZCODE_VER).tar.gz
 
-$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 tzdata$(TZDATA_VER).tar.gz = $(DL_FROM)/tzdata$(TZDATA_VER).tar.gz
 tzcode$(TZCODE_VER).tar.gz = $(DL_FROM)/tzcode$(TZCODE_VER).tar.gz
 
-$(DL_FILE)_MD5 = e36d2f742c22f8c8dbf0686ac9769b55
-tzdata$(TZDATA_VER).tar.gz_MD5 = 20dbfb28efa008ddbf6dd34601ea40fa
-tzcode$(TZCODE_VER).tar.gz_MD5 = cf7f4335b7c8682899fa2814e711c1b2
+tzdata$(TZDATA_VER).tar.gz_MD5 = b937335e087fb85b7f8e3ce33e69184b
+tzcode$(TZCODE_VER).tar.gz_MD5 = 44b3b6c3e50240ac44f16437040a7ba2
 
 install : $(TARGET)
 
@@ -74,19 +72,21 @@ $(subst %,%_MD5,$(objects)) :
 
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
-       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
+       @rm -rf $(DIR_APP) && mkdir -pv $(DIR_APP)
        mkdir -pv $(DIR_APP)/tzdata$(TZDATA_VER) $(DIR_APP)/tzcode$(TZCODE_VER)
-       tar axf $(DIR_DL)/tzdata$(TZDATA_VER).tar.gz -C $(DIR_APP)/tzdata$(TZDATA_VER)
-       tar axf $(DIR_DL)/tzcode$(TZCODE_VER).tar.gz -C $(DIR_APP)/tzcode$(TZCODE_VER)
+       tar axf $(DIR_DL)/tzdata$(TZDATA_VER).tar.gz -C $(DIR_APP)
+       tar axf $(DIR_DL)/tzcode$(TZCODE_VER).tar.gz -C $(DIR_APP)
 
-       cd $(DIR_APP) && sed -e 's|@objpfx@|$(DIR_APP)/obj/|' \
-               -e 's|@datadir@|/usr/share|' \
-               Makeconfig.in > Makeconfig
-       cd $(DIR_APP) && make $(MAKETUNING)
+       cd $(DIR_APP) && make TOPDIR=/usr ETCDIR=/tmp LIBDIR=/tmp MANDIR=/tmp \
+               TZDIR=/usr/share/zoneinfo all
+       cd $(DIR_APP) && make TOPDIR=/usr ETCDIR=/tmp LIBDIR=/tmp MANDIR=/tmp \
+               TZDIR=/usr/share/zoneinfo install
 
-       cd $(DIR_APP) && sed -i 's|@install_root@||' Makeconfig
-       cd $(DIR_APP) && make install
+       -mkdir -pv /usr/share/zoneinfo
+       mv -v /usr/share/zoneinfo-posix /usr/share/zoneinfo/posix
+       mv -v /usr/share/zoneinfo-leaps /usr/share/zoneinfo/right
+       rm -vf /usr/share/zoneinfo/localtime
 
-       cp -f /usr/share/zoneinfo/GMT /etc/localtime
+       cp -vf /usr/share/zoneinfo/GMT /etc/localtime
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index 6fbd888ebc991342cd856cbee40605190240e485..551fea5269d536970e432df50266cc97f300df90 100644 (file)
 
 include Config
 
-VER        = 2011.06
+VER        = 2011.12
+# Linare version: git clone git://git.linaro.org/boot/u-boot-linaro-stable.git
+# Branch: origin/Linaro-u-boot-2011.12
 
-THISAPP    = u-boot-$(VER)
-DL_FILE    = $(THISAPP).tar.bz2
+THISAPP    = uboot-panda-$(VER)
+DL_FILE    = $(THISAPP).tar.xz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
@@ -41,7 +43,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 0cc5026aad02f218a9b9ac56b301c97a
+$(DL_FILE)_MD5 = 19975e9bb4b10d8e67db84e51fcaa43b
 
 install : $(TARGET)
 
@@ -73,8 +75,13 @@ dist:
 
 $(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 Jxf $(DIR_DL)/$(DL_FILE)
        cd $(DIR_APP) && make tools $(MAKETUNING)
        cd $(DIR_APP) && install tools/mkimage /usr/bin/
+       cd $(DIR_APP) && make omap4_panda_config
+       cd $(DIR_APP) && make $(MAKETUNING)
+       cd $(DIR_APP) && install MLO /boot/
+       cd $(DIR_APP) && install u-boot.bin /boot/
+       cp -vf $(DIR_SRC)/config/u-boot/* /boot/
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index c7cba71387079ebdad7fd58148a20283dbc8aeff..9ebec2f180fcd317075d20552456588f2f66f595 100644 (file)
--- a/lfs/udev
+++ b/lfs/udev
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2005-2010  IPFire Team  <info@ipfire.org>                     #
+# Copyright (C) 2007-2012  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        = 125
+VER        = 141
 
 THISAPP    = udev-$(VER)
-DL_FILE    = $(THISAPP).tar.gz
+DL_FILE    = $(THISAPP).tar.bz2
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
-ifeq "$(LFS_PASS)" "install"
-       TARGET     = $(DIR_INFO)/$(THISAPP)-install
-else
-       TARGET     = $(DIR_INFO)/$(THISAPP)
-endif
+TARGET     = $(DIR_INFO)/$(THISAPP)
 
 ###############################################################################
 # Top-level Rules
 ###############################################################################
 
-objects = $(DL_FILE) udev-config-6.2.tar.bz2
+objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-udev-config-6.2.tar.bz2 = $(DL_FROM)/udev-config-6.2.tar.bz2
 
-$(DL_FILE)_MD5 = be98e04cefdd9ca76b8fe7e92735ce29
-udev-config-6.2.tar.bz2_MD5 = 9ff2667ab0f7bfe8182966ef690078a0
+$(DL_FILE)_MD5 = 1670fe81cabf5161319c52084cf81134
 
 install : $(TARGET)
 
@@ -75,62 +69,42 @@ $(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 -i $(DIR_SRC)/src/patches/udev-125-netif_rename.patch
-ifeq "$(LFS_PASS)" "install"
-       cd $(DIR_APP) && make DESTDIR=/install/initrd sbindir=/sbin udevdir=/dev
-       cd $(DIR_APP) && make DESTDIR=/install/initrd sbindir=/sbin udevdir=/dev install
-       rm -f /install/initrd/sbin/udev* /install/initrd/usr/sbin/udev* /install/initrd/usr/bin/udev*
-       cd $(DIR_APP) && install udevadm udevd /install/initrd/sbin
-       cd $(DIR_APP) && make $(MAKETUNING) EXTRAS="extras/ata_id extras/cdrom_id extras/edd_id \
-                                       extras/firmware extras/floppy extras/path_id \
-                                       extras/scsi_id extras/usb_id extras/volume_id"
-       cd $(DIR_APP) && make DESTDIR=/install/initrd EXTRAS="extras/ata_id extras/cdrom_id extras/edd_id \
-                                       extras/firmware extras/floppy extras/path_id \
-                                       extras/scsi_id extras/usb_id extras/volume_id" install
-       cd /install/initrd/usr/share && rm -rf man
-       -mkdir -pv /install/initrd/dev
-       cd /install/initrd/dev && rm -f console
-       cd /install/initrd/dev && mknod -m 0600 console c 5 1
-       cd /install/initrd/dev && rm -f null
-       cd /install/initrd/dev && mknod -m 0777 null c 1 3
-       cd /install/initrd/dev && rm -f tty*
-       cd /install/initrd/dev && mknod -m 0600 tty1 c 4 1
-       cd /install/initrd/dev && mknod -m 0600 tty2 c 4 2
-       cd /install/initrd/dev && mknod -m 0600 tty3 c 4 3
-       cd /install/initrd/dev && mknod -m 0600 tty4 c 4 4
-       cd /install/initrd/dev && mknod -m 0600 tty5 c 4 5
-       cd /install/initrd/dev && mknod -m 0600 tty6 c 4 6
-       cp -f /etc/udev/rules.d/55-scsi-cdrom.rules /install/initrd/etc/udev/rules.d/55-scsi-cdrom.rules
-
-else
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/udev-141_no_netif_rename.patch
+       cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/udev-125-ext4_wo_journal.patch
        rm -rf /lib/udev/devices
-       cd $(DIR_APP) && tar jxf $(DIR_DL)/udev-config-6.2.tar.bz2
-       cd $(DIR_APP) && patch -Np0 -i $(DIR_SRC)/src/patches/udev-config-6.2_persistent-storage-fix.patch
-       cd $(DIR_APP) && patch -Np0 -i $(DIR_SRC)/src/patches/udev-config-6.2_remove-lfs-usb-rule.patch
        install -dv /lib/{firmware,udev/devices/{pts,shm}}
-       echo "Put device firmwares here ..." > /lib/firmware/dirinfo
        mknod -m0666 /lib/udev/devices/null c 1 3
        ln -sv /proc/self/fd /lib/udev/devices/fd
        ln -sv /proc/self/fd/0 /lib/udev/devices/stdin
        ln -sv /proc/self/fd/1 /lib/udev/devices/stdout
        ln -sv /proc/self/fd/2 /lib/udev/devices/stderr
        ln -sv /proc/kcore /lib/udev/devices/core
+       cd $(DIR_APP) && ./configure --disable-introspection --sbindir=/sbin --sysconfdir=/etc --libexecdir=/lib/udev
        cd $(DIR_APP) && make $(MAKETUNING) EXTRAS="extras/ata_id extras/cdrom_id extras/edd_id \
                                        extras/firmware extras/floppy extras/path_id \
                                        extras/scsi_id extras/usb_id extras/volume_id"
        cd $(DIR_APP) && make DESTDIR=/ EXTRAS="extras/ata_id extras/cdrom_id extras/edd_id \
                                        extras/firmware extras/floppy extras/path_id \
                                        extras/scsi_id extras/usb_id extras/volume_id" install
-       cd $(DIR_APP) && cp -v udev-config-6.2/[0-9]* /etc/udev/rules.d/
-       cp -rf $(DIR_SRC)/config/udev/10-dvb.rules /etc/udev/rules.d/
-       cp -rf $(DIR_SRC)/config/udev/55-scsi-cdrom.rules /etc/udev/rules.d/
-       chmod 644 /etc/udev/rules.d/10-dvb.rules
-       chmod 644 /etc/udev/rules.d/55-scsi-cdrom.rules
-       cp -rf $(DIR_SRC)/config/udev/dvb.sh /etc/udev/
-       chmod 755 /etc/udev/dvb.sh
+
+       # Disable net generator rule. This does not work with the setup.
+       rm -f /lib/udev/rules.d/75-persistent-net-generator.rules
+
+       # Create rule file for the setup
        touch /etc/udev/rules.d/30-persistent-network.rules
+
+       # Blacklist some modules
        cp -vf $(DIR_SRC)/config/udev/blacklist /etc/modprobe.d/blacklist
-endif
+
+       # Install alsa rules.
+       install -v -m 644 $(DIR_SRC)/config/udev/25-alsa.rules \
+               /lib/udev/rules.d
+
+       # Install codel rules.
+       install -v -m 644 $(DIR_SRC)/config/udev/99-codel.rules \
+               /lib/udev/rules.d
+       install -m 755 $(DIR_SRC)/config/udev/enable_codel \
+               /lib/udev/enable_codel
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index 9752a655977fc36c73c4cf5a761eb61c42aa8d3e..f2966c39645034b4895df2f4371f5bf5e7cbcf1b 100644 (file)
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 3.1.0
+VER        = 3.9.1
 
 THISAPP    = urlgrabber-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -44,7 +44,8 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 2a92d8ce0d89c5e772a98e9b8dcd5b73
+$(DL_FILE)_MD5 = 00c8359bf71062d0946bacea521f80b4
+
 install : $(TARGET)
 
 check : $(patsubst %,$(DIR_CHK)/%,$(objects))
index 4c5e716b03871e19f8404337175f76a3af39eacb..30a14757741186ee3c3eaa575ff552a2df14f97c 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2010  IPFire Team  <info@ipfire.org>                          #
+# Copyright (C) 2007-2012  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        #
@@ -92,7 +92,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        COUNT=$$((`du -k -s $(IMGfs) | awk '{print $$1}'` + 32 )); \
        dd bs=1k if=/dev/zero of=$(IMGhdd) count=$$COUNT
        # write mbr before partitioning save a 'not msdos fs' warning from sfdisk
-       /usr/local/sbin/install-mbr -f $(IMGhdd)
+       /usr/sbin/install-mbr -f $(IMGhdd)
        echo -e "0,,6,*\n;\n;\n;" | sfdisk -qLD -H 64 -S 32 $(IMGhdd)
        # copy the entire partition, make the fs and dd back
        dd if=$(IMGfs) of=$(IMGhdd) bs=512 seek=32
index 3dac54d8692e40f075ceb19adcc29761d703b5cd..a39416601dc95d633a078e03e1446e8b6da3a34b 100644 (file)
@@ -30,18 +30,7 @@ THISAPP    = util-linux-$(VER)
 DL_FILE    = $(THISAPP).tar.bz2
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
-
-# Normal build or /tools build.
-#
-ifeq "$(ROOT)" ""
-ifeq "$(LFS_PASS)" "install"
-  TARGET = $(DIR_INFO)/$(THISAPP)-install
-else
-  TARGET = $(DIR_INFO)/$(THISAPP)
-endif
-else
-  TARGET = $(DIR_INFO)/$(THISAPP)-tools
-endif
+TARGET     = $(DIR_INFO)/$(THISAPP)
 
 ###############################################################################
 # Top-level Rules
@@ -82,16 +71,6 @@ $(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/util-linux-2.12r-umount-no-special.patch
-ifeq "$(ROOT)" ""
-ifeq "$(LFS_PASS)" "install"
-       cd $(DIR_APP) && CFLAGS="-Os -fomit-frame-pointer" ./configure
-       cd $(DIR_APP) && echo "HAVE_SLANG=yes" >> make_include
-       cd $(DIR_APP) && echo "SLANGFLAGS=-I/opt/$(MACHINE)-uClibc/include" >> make_include
-       cd $(DIR_APP)/fdisk && make cfdisk
-       cd $(DIR_APP)/fdisk && make sfdisk
-       cd $(DIR_APP)/fdisk && install -m 0755 cfdisk /install/initrd/bin
-       cd $(DIR_APP)/fdisk && install -m 0755 sfdisk /install/initrd/bin
-else
        cd $(DIR_APP) && sed -i 's@etc/adjtime@var/lib/hwclock/adjtime@g' \
                                hwclock/hwclock.c
        -mkdir -p /var/lib/hwclock
@@ -100,14 +79,5 @@ else
        cd $(DIR_APP) && ./configure
        cd $(DIR_APP) && make $(MAKETUNING) HAVE_KILL=yes HAVE_SLN=yes
        cd $(DIR_APP) && make HAVE_KILL=yes HAVE_SLN=yes install
-endif
-else
-       cd $(DIR_APP) && sed -i 's@/usr/include@/tools/include@g' configure
-       cd $(DIR_APP) && ./configure
-       cd $(DIR_APP) && make $(MAKETUNING) -C lib
-       cd $(DIR_APP) && make $(MAKETUNING) -C mount mount umount
-       cd $(DIR_APP) && make $(MAKETUNING) -C text-utils more
-       cd $(DIR_APP) && cp mount/{,u}mount text-utils/more /tools/bin
-endif
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index 730173efd7b22c624c152a95b5561fa529fc8db1..ef0f383663007f5e3331107733b1cc92eb303e4f 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2011  IPFire Team <info@ipfire.org>                      #
+# Copyright (C) 2007-2012  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        #
@@ -26,15 +26,19 @@ include Config
 
 VERSUFIX=ipfire$(KCFG)
 
-VER        = git20110427
-
+VER        = 20120916
 THISAPP    = v4l-dvb-$(VER)
 DL_FILE    = $(THISAPP).tar.xz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
-PAK_VER    = 2
 TARGET     = $(DIR_INFO)/$(THISAPP)-kmod-$(KVER)-$(VERSUFIX)
 
+ifeq "$(KCFG)" "-xen"
+       XVER = 2.6.32
+       KVER = 2.6.32.60
+else
+       XVER = 3.2.0
+endif
 ###############################################################################
 # Top-level Rules
 ###############################################################################
@@ -43,7 +47,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 8b83a89332fe8468ebffd516a4a47128
+$(DL_FILE)_MD5 = 7824fdd540605c54584df0d16f0e923b
 
 install : $(TARGET)
 
@@ -53,9 +57,6 @@ download :$(patsubst %,$(DIR_DL)/%,$(objects))
 
 md5 : $(subst %,%_MD5,$(objects))
 
-dist: 
-       $(PAK)
-
 ###############################################################################
 # Downloading, checking, md5sum
 ###############################################################################
@@ -76,8 +77,27 @@ $(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) && make all KERNELRELEASE=$(KVER)-$(VERSUFIX) VER=2.6.32
-       cd $(DIR_APP) && make install KERNELRELEASE=$(KVER)-$(VERSUFIX) VER=2.6.32
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/v4l-dvb_rtl28xx_add_usb_ids.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/v4l-dvb_rtl28xx_commented_usb_clear_halt.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/v4l-dvb_usbv2_dont_report_pidfilter_fail.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/v4l-dvb_fix_tua6034_pll.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/v4l-dvb_bestunar_us638x.patch
+
+       cd $(DIR_APP) && make allyesconfig KERNELRELEASE=$(KVER)-$(VERSUFIX) VER=$(XVER)
+ifeq "$(KCFG)" "-omap"
+       # Disable failing OMAP2 Video Out and IR RX51 driver
+       cd $(DIR_APP) && sed -i -e \
+               "s|^CONFIG_VIDEO_OMAP2_VOUT=m|# CONFIG_VIDEO_OMAP2_VOUT is not set|g" \
+               v4l/.config
+       cd $(DIR_APP) && sed -i -e \
+               "s|^CONFIG_IR_RX51=m|# CONFIG_IR_RX51 is not set|g" \
+               v4l/.config
+endif
+       # Disable Radio Shark (missing tuner module)
+       cd $(DIR_APP) && sed -i -e \
+               "s|^CONFIG_RADIO_SHARK=m|# CONFIG_RADIO_SHARK is not set|g" \
+               v4l/.config
+       cd $(DIR_APP) && make all KERNELRELEASE=$(KVER)-$(VERSUFIX) VER=$(XVER)
+       cd $(DIR_APP) && make install KERNELRELEASE=$(KVER)-$(VERSUFIX) VER=$(XVER)
        ln -sf $(DIR_APP)/ /usr/src/v4l-dvb
-#      @rm -rf $(DIR_APP)
        @$(POSTBUILD)
diff --git a/lfs/vdr b/lfs/vdr
index af5b92150b1edf2be7264fe83f7acceb384e2c17..46ea5d3f90b45994bde0fa9e6e9b60805c85926d 100644 (file)
--- a/lfs/vdr
+++ b/lfs/vdr
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007  Michael Tremer & Christian Schmidt                      #
+# Copyright (C) 2007-2012  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        #
@@ -38,7 +38,7 @@ TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = vdr
 PAK_VER    = 5
 
-DEPS       = "freefont fontconfig"
+DEPS       = "freefont"
 
 ###############################################################################
 # Top-level Rules
@@ -89,7 +89,10 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
-       
+
+       # Install obsolete V4L1 videodev header.
+       cp $(DIR_SRC)/config/include/obsolete_videodev.h /usr/include/linux/videodev.h
+
        # Accept also DVB_API_VERSION 5
        cd $(DIR_APP) && sed -i -e "s|DVB_API_VERSION != 3|& \&\& DVB_API_VERSION != 5|g" dvbdevice.h
        
@@ -104,6 +107,10 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        cd $(DIR_APP)/PLUGINS/src && tar xvf $(DIR_DL)/$(DL_FILE4)
        cd $(DIR_APP)/PLUGINS/src && ln -s epgsearch-0.9.24 epgsearch
        cd $(DIR_APP) && patch -Np1 -i PLUGINS/src/epgsearch/patches/MainMenuHooks-v1_0.patch 
+       cd $(DIR_APP)/PLUGINS/src/epgsearch && sed -i '/include/a #include <langinfo.h>/' \
+               epgsearch.c
+       cd $(DIR_APP)/PLUGINS/src/epgsearch && patch -Np1 < $(DIR_SRC)/src/patches/vdr-plugin-epgsearch-gcc44.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/vdr-1.6.0-gcc44-fixes.patch
        cd $(DIR_APP) && make VIDEODIR=/var/video plugins $(MAKETUNING) $(EXTRA_MAKE)
        cd $(DIR_APP) && make VIDEODIR=/var/video vdr $(MAKETUNING) $(EXTRA_MAKE)
        cd $(DIR_APP) && make DFB_SUPPORT=1  FB_SUPPORT=1  VIDIX_SUPPORT=1  $(MAKETUNING) $(EXTRA_MAKE)
@@ -116,5 +123,9 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        ln -sf ../init.d/vdr /etc/rc.d/rc6.d/K40vdr
        install -v -m 644 $(DIR_SRC)/config/backup/includes/vdr \
                         /var/ipfire/backup/addons/includes/vdr
+
+       # Remove obsolete V4L1 videodev header.
+       rm -f /usr/include/linux/videodev.h
+
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
diff --git a/lfs/videolan b/lfs/videolan
deleted file mode 100644 (file)
index 17a9f7a..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-###############################################################################
-#                                                                             #
-# 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        = 0.8.6i
-THISAPP    = vlc-$(VER)
-DL_FILE    = $(THISAPP).tar.bz2
-DL_FILE1   = $(THISAPP)-bugfix-080903.patch.bz2
-
-DL_FROM    = $(URL_IPFIRE)
-DIR_APP    = $(DIR_SRC)/$(THISAPP)
-TARGET     = $(DIR_INFO)/$(THISAPP)
-PROG       = videolan
-PAK_VER    = 5
-
-DEPS       = "libshout libmpeg2 libmad libdvbpsi directfb ffmpeg faad2"
-
-###############################################################################
-# Top-level Rules
-###############################################################################
-
-objects = $(DL_FILE) $(DL_FILE1)
-
-$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE1) = $(DL_FROM)/$(DL_FILE1)
-
-$(DL_FILE)_MD5 = 3c90520c9f22a68d287458d5a8af989e
-$(DL_FILE1)_MD5 = 36ea293b5ebb604778b321b5e3e3cdc4
-
-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 jxf $(DIR_DL)/$(DL_FILE)
-       #Apply some patched from videolan 8.6-bugfix branch,
-       #ignore the error because one patch is already applied
-       -cd $(DIR_APP) && bzip2 -d -c $(DIR_DL)/$(DL_FILE1) | patch -p1
-       cd $(DIR_APP) && ./configure --prefix=/usr --enable-shared --with-ffmpeg-tree=/usr/src/ffmpeg \
-                                                                  --with-ffmpeg-config=/usr/src/ffmpeg \
-                                                               --disable-wxwidgets --disable-skins2 \
-                                                               --enable-httpd --enable-pth --enable-shout \
-                                                               --enable-smb --enable-cddax --enable-ncurses \
-                                                               --enable-a52 --enable-dts --enable-alsa \
-                                                               --enable-unicode-utf8 --enable-v4l --enable-vcd \
-                                                               --enable-ogg --enable-vorbis --enable-theora \
-                                                               --enable-mad --enable-v4l --enable-dvb \
-                                                               --with-dvb=/usr/src/v4l-dvb \
-                                                               --with-v4l=/usr/src/v4l-dvb \
-                                                               --enable-libdvbpsi --enable-faac --enable-mkv \
-                                                               --enable-x264 --enable-release --enable-sout \
-                                                               --disable-nls --enable-faad \
-                                                               --enable-directfb --with-directfb=/usr/src/directfb
-       cd $(DIR_APP) && make $(MAKETUNING)
-       cd $(DIR_APP) && make install
-       @rm -rf $(DIR_APP)
-       @$(POSTBUILD)
index e58cf50f4ff3cd781c28170982e4a3447b758bba..7df4b42d85e867d5c8fe5deaf5cf5501ea22b0a3 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007  Michael Tremer & Christian Schmidt                      #
+# Copyright (C) 2007-2012  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        #
@@ -25,7 +25,7 @@
 include Config
 
 
-VER        = 20080105
+VER        = 20121111
 
 THISAPP    = w_scan-$(VER)
 DL_FILE    = $(THISAPP).tar.bz2
@@ -33,7 +33,7 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = w_scan
-PAK_VER    = 1
+PAK_VER    = 3
 
 DEPS       = ""
 
@@ -45,7 +45,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 9541244559d2da9442a137f7891d45d3
+$(DL_FILE)_MD5 = 30da05747fed9988e11ebc7745f5e71f
 
 install : $(TARGET)
 
@@ -78,10 +78,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 < $(DIR_SRC)/src/patches/w_scan-ipfire.patch 
-       cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE)
-       -mkdir -pv /opt/vdr/bin
-       cd $(DIR_APP) && install -m 755 w_scan /opt/vdr/bin/
-       cd $(DIR_APP) && install -m 755 w_scan_start.sh /opt/vdr/bin/w_scan_start
+       cd $(DIR_APP) && ./configure --prefix=/usr
+       cd $(DIR_APP) && make $(MAKETUNING)
+       cd $(DIR_APP) && make install
+       install -m 755 $(DIR_SRC)/config/w_scan/w_scan_start /usr/bin/
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index 0c29155f00c42ce855a97810806d6daaea611a4a..ce55e76f051626726a4ca3437a62d04042f80578 100644 (file)
--- a/lfs/wget
+++ b/lfs/wget
@@ -30,11 +30,7 @@ THISAPP    = wget-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
-ifeq "$(LFS_PASS)" "install"
-  TARGET     = $(DIR_INFO)/$(THISAPP)-install
-else
-  TARGET     = $(DIR_INFO)/$(THISAPP)
-endif
+TARGET     = $(DIR_INFO)/$(THISAPP)
 
 ###############################################################################
 # Top-level Rules
@@ -74,15 +70,9 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
-ifeq "$(LFS_PASS)" "install"
-       cd $(DIR_APP) && ./configure --prefix=/ --disable-nls --disable-ipv6
-       cd $(DIR_APP) && make $(MAKETUNING)
-       cd $(DIR_APP)/src && install -m 755 wget /install/initrd/bin
-else
        cd $(DIR_APP) && ./configure --prefix=/usr --with-ssl \
                                        --disable-nls --disable-ipv6
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
-endif
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index f60820692b091d7def5a36856e65b1b4a96f6e7c..ef539dffdd05cb93c3103e859fa3336058d551a8 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2008  Michael Tremer & Christian Schmidt                      #
+# Copyright (C) 2007-2012  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        #
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 0.7.3
+VER        = 1.0
 
 THISAPP    = wpa_supplicant-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -41,7 +41,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = f516f191384a9a546e3f5145c08addda
+$(DL_FILE)_MD5 = 8650f6aa23646ef634402552d0669640
 
 install : $(TARGET)
 
@@ -75,11 +75,8 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
        cd $(DIR_APP)/wpa_supplicant && cp $(DIR_SRC)/config/wpa_supplicant/config ./.config
-ifeq "$(MACHINE_TYPE)" "arm"
-       cd $(DIR_APP)/wpa_supplicant && sed -e "s/^CONFIG_DRIVER_MADWIFI=y/#&/" -i .config
-endif
        cd $(DIR_APP)/wpa_supplicant && sed -e "s/wpa_cli\ dynamic_eap_methods/wpa_cli\ #dynamic_eap_methods/" -i Makefile
        cd $(DIR_APP)/wpa_supplicant && sed -e "s@/usr/local@/usr@g" -i Makefile
-       cd $(DIR_APP)/wpa_supplicant && CFLAGS+=-I/usr/src/linux/include make && make install
+       cd $(DIR_APP)/wpa_supplicant && make && make install
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index bd46b641ae6098f56abec891ae2aecc75852b637..1c2624e2e705e391cd629568e24da699279abb4a 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2011  IPFire Team  <info@ipfire.org>                     #
+# Copyright (C) 2007-2012  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        #
@@ -29,6 +29,8 @@ VER = ipfire
 THISAPP    = xen-image
 TARGET     = $(DIR_INFO)/$(THISAPP)
 
+KVER2 = `grep "^VER " $(DIR_SRC)/lfs/linux2 | sed "s| ||g" | cut -d"=" -f2`
+
 ###############################################################################
 # Top-level Rules
 ###############################################################################
@@ -89,8 +91,13 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        tar -C $(MNThdd)/ -xvf /install/cdrom/$(SNAME)-$(VERSION).tlz --lzma \
                --exclude=lib/modules* --exclude=boot*
 
-       #Install Xen Kernel
-       tar -C $(MNThdd)/opt/pakfire/tmp -xvf /install/packages/linux-xen-$(KVER)-*.ipfire
+       #Install legacy Xen Kernel
+       tar -C $(MNThdd)/opt/pakfire/tmp -xvf /install/packages/linux-xen-$(KVER2)-*.ipfire
+       chroot $(MNThdd) /opt/pakfire/tmp/install.sh
+       rm -rf $(MNThdd)/opt/pakfire/tmp/*
+
+       #Install pae Kernel
+       tar -C $(MNThdd)/opt/pakfire/tmp -xvf /install/packages/linux-pae-$(KVER)-*.ipfire
        chroot $(MNThdd) /opt/pakfire/tmp/install.sh
        rm -rf $(MNThdd)/opt/pakfire/tmp/*
 
@@ -98,23 +105,30 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        mkdir $(MNThdd)/boot/grub
        echo "timeout 10"                          > $(MNThdd)/boot/grub/grub.conf
        echo "default 0"                          >> $(MNThdd)/boot/grub/grub.conf
-       echo "title IPFire (XEN-Kernel)"          >> $(MNThdd)/boot/grub/grub.conf
-       echo "  kernel /vmlinuz-$(KVER)-ipfire-xen root=/dev/xvda3 rootdelay=10 panic=10 console=xvc0 ro" \
+       echo "title IPFire (legacy XEN-Kernel)"   >> $(MNThdd)/boot/grub/grub.conf
+       echo "  kernel /vmlinuz-$(KVER2)-ipfire-xen root=/dev/xvda3 rootdelay=10 panic=10 console=xvc0 ro" \
                                                  >> $(MNThdd)/boot/grub/grub.conf
-       echo "  initrd /ipfirerd-$(KVER)-xen.img" >> $(MNThdd)/boot/grub/grub.conf
+       echo "  initrd /ipfirerd-$(KVER2)-xen.img" >> $(MNThdd)/boot/grub/grub.conf
        echo "# savedefault 0" >> $(MNThdd)/boot/grub/grub.conf
+       echo "title IPFire (PAE-Kernel)"   >> $(MNThdd)/boot/grub/grub.conf
+       echo "  kernel /vmlinuz-$(KVER)-ipfire-pae root=/dev/xvda3 rootdelay=10 panic=10 console=xvc0 ro" \
+                                                 >> $(MNThdd)/boot/grub/grub.conf
+       echo "  initrd /ipfirerd-$(KVER)-xen.img" >> $(MNThdd)/boot/grub/grub.conf
+       echo "# savedefault 1" >> $(MNThdd)/boot/grub/grub.conf
 
        ln -s grub.conf $(MNThdd)/boot/grub/menu.lst
 
        #Copy the meta-info of linux-xen package
        cp -f /install/packages/meta-linux-xen $(MNThdd)/opt/pakfire/db/installed
        cp -f /install/packages/meta-linux-xen $(MNThdd)/opt/pakfire/db/meta
+       cp -f /install/packages/meta-linux-pae $(MNThdd)/opt/pakfire/db/installed
+       cp -f /install/packages/meta-linux-pae $(MNThdd)/opt/pakfire/db/meta
 
        #Set default configuration
        echo "LANGUAGE=en" >> $(MNThdd)/var/ipfire/main/settings
        echo "HOSTNAME=$(SNAME)" >> $(MNThdd)/var/ipfire/main/settings
        echo "THEME=ipfire" >> $(MNThdd)/var/ipfire/main/settings
-       touch $(MNThdd)/lib/modules/$(KVER)-ipfire-xen/modules.dep
+       touch $(MNThdd)/lib/modules/$(KVER2)-ipfire-xen/modules.dep
        mkdir $(MNThdd)/proc
        mount --bind /proc $(MNThdd)/proc
        mount --bind /dev  $(MNThdd)/dev
@@ -127,7 +141,8 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
 
        sed -i -e "s|FSTYPE|ext3|g" $(MNThdd)/etc/fstab
 
-       chroot $(MNThdd) /sbin/dracut --force --verbose /boot/ipfirerd-$(KVER)-xen.img $(KVER)-ipfire-xen
+       chroot $(MNThdd) /sbin/dracut --force --verbose /boot/ipfirerd-$(KVER2)-xen.img $(KVER2)-ipfire-xen
+       chroot $(MNThdd) /sbin/dracut --force --verbose /boot/ipfirerd-$(KVER)-pae.img $(KVER)-ipfire-pae
 
        #Remove root / fstab check
        rm -rf $(MNThdd)/etc/rc.d/rcsysinit.d/S19checkfstab
@@ -154,14 +169,9 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        sed -i -e "s|^thermal|#thermal|g" $(MNThdd)/etc/sysconfig/modules
        sed -i -e "s|^video|#video|g" $(MNThdd)/etc/sysconfig/modules
 
-       #Copy initramdisk, kernel and config
-       #cp -f $(MNThdd)/boot/ipfirerd-$(KVER)-xen.img \
-       #       /install/images/$(SNAME)/boot
-       #cp -f $(MNThdd)/boot/vmlinuz-$(KVER)-ipfire-xen \
-       #       /install/images/$(SNAME)/boot
+       # Copy readme and config
        cp $(DIR_SRC)/config/xen-image/* \
                /install/images/$(SNAME)
-       sed -i -e "s|KVER|$(KVER)|g" /install/images/$(SNAME)/ipfire.cfg
 
        # Unmount
        umount $(MNThdd)/proc
index 0dd83d33afa052e3f854c14d8b17de0755e9b59a..2a548be832f76a448098b0cb4db36d4aeba7f179 100644 (file)
@@ -77,6 +77,9 @@ $(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) && sed -i "/include/a #include <sys\/stat.h>" \
+               libxfs/xfs_ialloc.c quota/quot.c mdrestore/xfs_mdrestore.c \
+               rtcp/xfs_rtcp.c
        cd $(DIR_APP) && make DEBUG=-DNDEBUG INSTALL_USER=root INSTALL_GROUP=root \
                                                                                                LOCAL_CONFIGURE_OPTIONS="--enable-readline=yes"
        cd $(DIR_APP) && make install
diff --git a/lfs/xz b/lfs/xz
index 4845227c8d2145ee99b4f333ef538d8a9d928b76..7a56c727a7eca89f7a3c6ddf1a0c751bd6825cd6 100644 (file)
--- a/lfs/xz
+++ b/lfs/xz
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007  Michael Tremer & Christian Schmidt                      #
+# Copyright (C) 2007-2012  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        = 4.999.9beta
+VER        = 5.0.4
 
 THISAPP    = xz-$(VER)
 DL_FILE    = $(THISAPP).tar.bz2
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 
-TARGET = $(DIR_INFO)/$(THISAPP)
+ifeq "$(ROOT)" ""
+       PREFIX = /usr
+       TARGET = $(DIR_INFO)/$(THISAPP)
+else
+       PREFIX = /tools
+       TARGET = $(DIR_INFO)/$(THISAPP)-tools
+endif
 
 ###############################################################################
 # Top-level Rules
@@ -41,8 +47,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = cc4044fcc073b8bcf3164d1d0df82161
-
+$(DL_FILE)_MD5 = 741cd3a5f64b23b7bac56ec5b2258715
 
 install : $(TARGET)
 
@@ -72,7 +77,7 @@ $(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) && ./configure --prefix=/usr
+       cd $(DIR_APP) && ./configure --prefix=$(PREFIX)
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
        @rm -rf $(DIR_APP)
index a5a6849acb7211535a22f8dcf459dfc6ca2a3136..0a2977d0d20d22ffc159bfa8e77f473a9eee9065 100644 (file)
--- a/lfs/zlib
+++ b/lfs/zlib
 
 include Config
 
-VER        = 1.2.3
+VER        = 1.2.7
 
 THISAPP    = zlib-$(VER)
-DL_FILE    = $(THISAPP).tar.bz2
+DL_FILE    = $(THISAPP).tar.gz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
-ifeq "$(LFS_PASS)" "install"
-  TARGET     = $(DIR_INFO)/$(THISAPP)-install
-else
-  TARGET     = $(DIR_INFO)/$(THISAPP)
-endif
-CFLAGS    += -fPIC
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+CFLAGS    += -fPIC -DPIC
 
 ###############################################################################
 # Top-level Rules
@@ -44,7 +41,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE)                           = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5                       = dee233bf288ee795ac96a98cc2e369b6
+$(DL_FILE)_MD5                       = 60df6a37c56e7c1366cca812414f7b85
 
 install : $(TARGET)
 
@@ -73,23 +70,16 @@ $(subst %,%_MD5,$(objects)) :
 
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
-       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
-ifeq "$(LFS_PASS)" "install"
-       cd $(DIR_APP) && ./configure --prefix=/opt/$(MACHINE)-uClibc    
-       cd $(DIR_APP) && make $(MAKETUNING)
-       cd $(DIR_APP) && make install
-       chmod -v 644 /opt/$(MACHINE)-uClibc/lib/libz.a
-else
-       cd $(DIR_APP) && ./configure --prefix=/usr --shared --libdir=/lib
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure --prefix=/usr --shared
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
-       rm -v /lib/libz.so
-       ln -sfv ../../lib/libz.so.1.2.3 /usr/lib/libz.so
-       cd $(DIR_APP) && make clean
-       cd $(DIR_APP) && ./configure --prefix=/usr
-       cd $(DIR_APP) && make $(MAKETUNING)
-       cd $(DIR_APP) && make install
-       chmod -v 644 /usr/lib/libz.a
-endif
+
+       mv -v /usr/lib/libz.so.$(VER) /lib/libz.so.$(VER)
+       ln -svf libz.so.$(VER) /lib/libz.so.1
+       ln -svf libz.so.$(VER) /lib/libz.so
+       rm -vf /usr/lib/libz.so.1
+       rm -vf /usr/lib/libz.so
+
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
diff --git a/make.sh b/make.sh
index 6fb2d94734cc811cc44bb18e094285dd0de08813..09349098aa467848bbcba8bb0ddd5d952b0c4ef9 100755 (executable)
--- a/make.sh
+++ b/make.sh
@@ -24,7 +24,7 @@
 
 NAME="IPFire"                                                  # Software name
 SNAME="ipfire"                                                 # Short name
-VERSION="2.11"                                                 # Version number
+VERSION="2.13"                                                 # Version number
 CORE="65"                                                      # Core Level (Filename)
 PAKFIRE_CORE="65"                                              # Core Level (PAKFIRE)
 GIT_BRANCH=`git status | head -n1 | cut -d" " -f4`             # Git Branch
@@ -37,12 +37,11 @@ KVER=`grep --max-count=1 VER lfs/linux | awk '{ print $3 }'`
 MACHINE=`uname -m`
 GIT_TAG=$(git tag | tail -1)                                   # Git Tag
 GIT_LASTCOMMIT=$(git log | head -n1 | cut -d" " -f2 |head -c8) # Last commit
-TOOLCHAINVER=3
+TOOLCHAINVER=6
 
 BUILDMACHINE=$MACHINE
     if [ "$MACHINE" = "x86_64" ]; then
         BUILDMACHINE="i686";
-        linux32="linux32";
     fi
 
 
@@ -214,15 +213,10 @@ prepareenv() {
     mount --bind $BASEDIR/log    $BASEDIR/build/usr/src/log
     mount --bind $BASEDIR/src    $BASEDIR/build/usr/src/src
 
-    # This is a temporary hack!!!
-    if [ ! -f /tools/bin/hostname ]; then
-      cp -f /bin/hostname /tools/bin/hostname 2>/dev/null
-    fi
-
     # Run LFS static binary creation scripts one by one
     export CCACHE_DIR=$BASEDIR/ccache
     export CCACHE_COMPRESS=1
-    export CCACHE_HASHDIR=1
+    export CCACHE_COMPILERCHECK="none"
 
     # Remove pre-install list of installed files in case user erase some files before rebuild
     rm -f $BASEDIR/build/usr/src/lsalr 2>/dev/null
@@ -232,7 +226,7 @@ buildtoolchain() {
     local error=false
     case "${MACHINE}:$(uname -m)" in
         # x86
-        i586:i586|i586:i686)
+        i586:i586|i586:i686|i586:x86_64)
             # These are working.
             ;;
         i586:*)
@@ -240,7 +234,7 @@ buildtoolchain() {
             ;;
 
         # ARM
-        armv5tel:armv5tel|armv5tel:armv5tejl|armv5tel:armv7l)
+        armv5tel:armv5tel|armv5tel:armv5tejl|armv5tel:armv6l|armv5tel:armv7l)
             # These are working.
             ;;
         armv5tel:*)
@@ -251,34 +245,28 @@ buildtoolchain() {
     ${error} && \
         exiterror "Cannot build ${MACHINE} toolchain on $(uname -m). Please use the download if any."
 
-    if [ "$(uname -r | grep ipfire)" ]; then
-        exiterror "Cannot build toolchain on ipfire. Please use the download."
+    local gcc=$(type -p gcc)
+    if [ -z "${gcc}" ]; then
+        exiterror "Could not find GCC. You will need a working build enviroment in order to build the toolchain."
     fi
 
     LOGFILE="$BASEDIR/log/_build.toolchain.log"
     export LOGFILE
-    NATIVEGCC=`gcc --version | grep GCC | awk {'print $3'}`
-    export NATIVEGCC GCCmajor=${NATIVEGCC:0:1} GCCminor=${NATIVEGCC:2:1} GCCrelease=${NATIVEGCC:4:1}
-    ORG_PATH=$PATH
-    lfsmake1 ccache    PASS=1
-    lfsmake1 make      PASS=1
-    lfsmake1 binutils  PASS=1
-    lfsmake1 gcc               PASS=1
-    export PATH=$BASEDIR/build/usr/local/bin:$BASEDIR/build/tools/bin:$PATH
-    if [ "${MACHINE_TYPE}" = "arm" ]; then
-        lfsmake1 linux TOOLS=1 HEADERS=1
-    else
-        lfsmake1 linux-libc-header
-    fi
+
+    local ORG_PATH=$PATH
+    export PATH="/tools/ccache/bin:/tools/bin:$PATH"
+    lfsmake1 ccache                    PASS=1
+    lfsmake1 binutils                  PASS=1
+    lfsmake1 gcc                       PASS=1
+    lfsmake1 linux                     TOOLS=1 KCFG="-headers"
     lfsmake1 glibc
-    lfsmake1 cleanup-toolchain PASS=1
-    lfsmake1 fake-environ
+    lfsmake1 cleanup-toolchain         PASS=1
+    lfsmake1 binutils                  PASS=2
+    lfsmake1 gcc                       PASS=2
+    lfsmake1 ccache                    PASS=2
     lfsmake1 tcl
     lfsmake1 expect
     lfsmake1 dejagnu
-    lfsmake1 gcc               PASS=2
-    lfsmake1 binutils  PASS=2
-    lfsmake1 ccache    PASS=2
     lfsmake1 ncurses
     lfsmake1 bash
     lfsmake1 bzip2
@@ -290,15 +278,15 @@ buildtoolchain() {
     lfsmake1 grep
     lfsmake1 gzip
     lfsmake1 m4
-    lfsmake1 make      PASS=2
+    lfsmake1 make
     lfsmake1 patch
     lfsmake1 perl
     lfsmake1 sed
     lfsmake1 tar
     lfsmake1 texinfo
-    lfsmake1 util-linux
-    lfsmake1 strip
-    lfsmake1 cleanup-toolchain PASS=2
+    lfsmake1 xz
+    lfsmake1 fake-environ
+    lfsmake1 cleanup-toolchain         PASS=2
     export PATH=$ORG_PATH
 }
 
@@ -306,17 +294,19 @@ buildbase() {
     LOGFILE="$BASEDIR/log/_build.base.log"
     export LOGFILE
     lfsmake2 stage2
-    if [ "${MACHINE_TYPE}" = "arm" ]; then
-        lfsmake2 linux HEADERS=1
-    else
-        lfsmake2 linux-libc-header
-    fi
+    lfsmake2 linux                     KCFG="-headers"
     lfsmake2 man-pages
     lfsmake2 glibc
     lfsmake2 tzdata
-    lfsmake2 cleanup-toolchain PASS=3
+    lfsmake2 cleanup-toolchain         PASS=3
+    lfsmake2 zlib
     lfsmake2 binutils
+    lfsmake2 gmp
+    lfsmake2 gmp-compat
+    lfsmake2 mpfr
+    lfsmake2 file
     lfsmake2 gcc
+    lfsmake2 sed
     lfsmake2 berkeley
     lfsmake2 coreutils
     lfsmake2 iana-etc
@@ -324,11 +314,12 @@ buildbase() {
     lfsmake2 bison
     lfsmake2 ncurses
     lfsmake2 procps
-    lfsmake2 sed
     lfsmake2 libtool
     lfsmake2 perl
     lfsmake2 readline
-    lfsmake2 zlib
+    lfsmake2 readline-compat
+    lfsmake2 pcre
+    lfsmake2 pcre-compat
     lfsmake2 autoconf
     lfsmake2 automake
     lfsmake2 bash
@@ -336,7 +327,6 @@ buildbase() {
     lfsmake2 diffutils
     lfsmake2 e2fsprogs
     lfsmake2 ed
-    lfsmake2 file
     lfsmake2 findutils
     lfsmake2 flex
     lfsmake2 gawk
@@ -348,7 +338,6 @@ buildbase() {
     lfsmake2 iproute2
     lfsmake2 kbd
     lfsmake2 less
-    lfsmake2 libaal
     lfsmake2 make
     lfsmake2 man
     lfsmake2 mktemp
@@ -356,7 +345,6 @@ buildbase() {
     lfsmake2 net-tools
     lfsmake2 patch
     lfsmake2 psmisc
-    lfsmake2 reiser4progs
     lfsmake2 shadow
     lfsmake2 sysklogd
     lfsmake2 sysvinit
@@ -365,6 +353,7 @@ buildbase() {
     lfsmake2 udev
     lfsmake2 util-linux
     lfsmake2 vim
+    lfsmake2 xz
     lfsmake2 grub
 }
 
@@ -382,20 +371,18 @@ buildipfire() {
   ipfiremake pptp
   ipfiremake unzip
   ipfiremake which
-  ipfiremake xz
   ipfiremake linux-firmware
+  ipfiremake dvb-firmwares
   ipfiremake zd1211-firmware
-  ipfiremake fw_ath9k_htc
+  ipfiremake rpi-firmware
   ipfiremake u-boot
 
-  # The xen and PAE kernels are only available for x86
   if [ "${MACHINE_TYPE}" != "arm" ]; then
-    ipfiremake linux                   KCFG="-xen"
-    ipfiremake kqemu                   KCFG="-xen"
+
+    # x86-xen (Legacy XEN) kernel build
+    ipfiremake linux2                  KCFG="-xen"
     ipfiremake v4l-dvb                 KCFG="-xen"
-    ipfiremake madwifi                 KCFG="-xen"
     ipfiremake mISDN                   KCFG="-xen"
-    ipfiremake dahdi                   KCFG="-xen" KMOD=1
     ipfiremake cryptodev               KCFG="-xen"
     ipfiremake compat-wireless         KCFG="-xen"
     ipfiremake r8169                   KCFG="-xen"
@@ -404,71 +391,60 @@ buildipfire() {
     ipfiremake e1000                   KCFG="-xen"
     ipfiremake e1000e                  KCFG="-xen"
     ipfiremake igb                     KCFG="-xen"
+
+    # x86-pae (Native and new XEN) kernel build
     ipfiremake linux                   KCFG="-pae"
-    ipfiremake kqemu                   KCFG="-pae"
     ipfiremake kvm-kmod                        KCFG="-pae"
     ipfiremake v4l-dvb                 KCFG="-pae"
-    ipfiremake madwifi                 KCFG="-pae"
-    ipfiremake alsa                    KCFG="-pae" KMOD=1
     ipfiremake mISDN                   KCFG="-pae"
-    ipfiremake dahdi                   KCFG="-pae" KMOD=1
     ipfiremake cryptodev               KCFG="-pae"
     ipfiremake compat-wireless         KCFG="-pae"
-#    ipfiremake r8169                  KCFG="-pae"
-#    ipfiremake r8168                  KCFG="-pae"
-#    ipfiremake r8101                  KCFG="-pae"
-    ipfiremake e1000                   KCFG="-pae"
+    ipfiremake r8169                   KCFG="-pae"
+    ipfiremake r8168                   KCFG="-pae"
+    ipfiremake r8101                   KCFG="-pae"
     ipfiremake e1000e                  KCFG="-pae"
     ipfiremake igb                     KCFG="-pae"
+
+    # x86 kernel build
     ipfiremake linux                   KCFG=""
-    ipfiremake v4l-dvb                 KCFG=""
-    ipfiremake kqemu                   KCFG=""
     ipfiremake kvm-kmod                        KCFG=""
-    ipfiremake madwifi                 KCFG=""
-    ipfiremake alsa                    KCFG="" KMOD=1
+    ipfiremake v4l-dvb                 KCFG=""
     ipfiremake mISDN                   KCFG=""
-    ipfiremake dahdi                   KCFG="" KMOD=1
     ipfiremake cryptodev               KCFG=""
     ipfiremake compat-wireless         KCFG=""
-#    ipfiremake r8169                  KCFG=""
-#    ipfiremake r8168                  KCFG=""
-#    ipfiremake r8101                  KCFG=""
-    ipfiremake e1000                   KCFG=""
+    ipfiremake r8169                   KCFG=""
+    ipfiremake r8168                   KCFG=""
+    ipfiremake r8101                   KCFG=""
     ipfiremake e1000e                  KCFG=""
     ipfiremake igb                     KCFG=""
+
   else
-    # arm-versatile kernel build
-    ipfiremake linux                   KCFG="-versatile"
-    ipfiremake v4l-dvb                 KCFG="-versatile"
-    ipfiremake kqemu                   KCFG="-versatile"
-    ipfiremake kvm-kmod                        KCFG="-versatile"
-    ipfiremake madwifi                 KCFG="-versatile"
-    ipfiremake mISDN                   KCFG="-versatile"
-    ipfiremake dahdi                   KCFG="-versatile" KMOD=1
-    ipfiremake cryptodev               KCFG="-versatile"
-    ipfiremake compat-wireless         KCFG="-versatile"
-#  ipfiremake r8169                    KCFG="-versatile"
-#  ipfiremake r8168                    KCFG="-versatile"
-#  ipfiremake r8101                    KCFG="-versatile"
-    ipfiremake e1000                   KCFG="-versatile"
-    ipfiremake e1000e                  KCFG="-versatile"
-    ipfiremake igb                     KCFG="-versatile"
-    # arm-kirkwood kernel build
+    # arm-rpi (Raspberry Pi) kernel build
+    ipfiremake linux                   KCFG="-rpi"
+    ipfiremake v4l-dvb                 KCFG="-rpi"
+    ipfiremake mISDN                   KCFG="-rpi" NOPCI=1
+    ipfiremake cryptodev               KCFG="-rpi"
+    ipfiremake compat-wireless         KCFG="-rpi"
+
+    # arm-omap (Panda Board) kernel build
+    ipfiremake linux                   KCFG="-omap"
+    ipfiremake v4l-dvb                 KCFG="-omap"
+    ipfiremake mISDN                   KCFG="-omap" NOPCI=1
+    ipfiremake cryptodev               KCFG="-omap"
+    ipfiremake compat-wireless         KCFG="-omap"
+
+    # arm-kirkwood (Dreamplug, ICY-Box ...) kernel build
     ipfiremake linux                   KCFG="-kirkwood"
     ipfiremake v4l-dvb                 KCFG="-kirkwood"
-    ipfiremake kqemu                   KCFG="-kirkwood"
-    ipfiremake kvm-kmod                        KCFG="-kirkwood"
-    ipfiremake madwifi                 KCFG="-kirkwood"
     ipfiremake mISDN                   KCFG="-kirkwood"
-    ipfiremake dahdi                   KCFG="-kirkwood" KMOD=1
     ipfiremake cryptodev               KCFG="-kirkwood"
     ipfiremake compat-wireless         KCFG="-kirkwood"
-#  ipfiremake r8169                    KCFG="-kirkwood"
-#  ipfiremake r8168                    KCFG="-kirkwood"
-#  ipfiremake r8101                    KCFG="-kirkwood"
-    ipfiremake e1000                   KCFG="-kirkwood"
+    ipfiremake r8169                   KCFG="-kirkwood"
+    ipfiremake r8168                   KCFG="-kirkwood"
+    ipfiremake r8101                   KCFG="-kirkwood"
     ipfiremake e1000e                  KCFG="-kirkwood"
     ipfiremake igb                     KCFG="-kirkwood"
+
   fi
   ipfiremake pkg-config
   ipfiremake linux-atm
@@ -476,7 +452,6 @@ buildipfire() {
   ipfiremake dracut
   ipfiremake expat
   ipfiremake gdbm
-  ipfiremake gmp
   ipfiremake pam
   ipfiremake openssl
   ipfiremake curl
@@ -537,13 +512,11 @@ buildipfire() {
   ipfiremake iptables
   ipfiremake libupnp
   ipfiremake ipaddr
-  ipfiremake iptstate
   ipfiremake iputils
   ipfiremake l7-protocols
   ipfiremake mISDNuser
   ipfiremake capi4k-utils
   ipfiremake hwdata
-  ipfiremake kudzu
   ipfiremake logrotate
   ipfiremake logwatch
   ipfiremake misc-progs
@@ -579,12 +552,19 @@ buildipfire() {
   ipfiremake python-mechanize
   ipfiremake python-feedparser
   ipfiremake python-rssdler
+  ipfiremake libffi
   ipfiremake glib
   ipfiremake GeoIP
   ipfiremake fwhits
   ipfiremake noip_updater
   ipfiremake ntp
   ipfiremake openssh
+  ipfiremake fontconfig
+  ipfiremake dejavu-fonts-ttf
+  ipfiremake freefont
+  ipfiremake pixman
+  ipfiremake cairo
+  ipfiremake pango
   ipfiremake rrdtool
   ipfiremake setserial
   ipfiremake setup
@@ -599,7 +579,6 @@ buildipfire() {
   ipfiremake traceroute
   ipfiremake vlan
   ipfiremake wireless
-  ipfiremake libsafe
   ipfiremake pakfire
   ipfiremake spandsp
   ipfiremake lzo
@@ -615,7 +594,6 @@ buildipfire() {
   ipfiremake wget
   ipfiremake bridge-utils
   ipfiremake screen
-  ipfiremake hddtemp
   ipfiremake smartmontools
   ipfiremake htop
   ipfiremake postfix
@@ -642,10 +620,8 @@ buildipfire() {
   ipfiremake cmake
   ipfiremake gnump3d
   ipfiremake libsigc++
-  ipfiremake applejuice
   ipfiremake libtorrent
   ipfiremake rtorrent
-  ipfiremake ipfireseeder
   ipfiremake rsync
   ipfiremake tcpwrapper
   ipfiremake libevent
@@ -661,7 +637,6 @@ buildipfire() {
   ipfiremake vsftpd
   ipfiremake strongswan
   ipfiremake lsof
-  ipfiremake centerim
   ipfiremake br2684ctl
   ipfiremake pcmciautils
   ipfiremake lm_sensors
@@ -673,7 +648,6 @@ buildipfire() {
   ipfiremake fbset
   ipfiremake sdl
   ipfiremake qemu
-  ipfiremake qemu-kqemu
   ipfiremake sane
   ipfiremake netpbm
   ipfiremake phpSANE
@@ -681,13 +655,10 @@ buildipfire() {
   ipfiremake nagios
   ipfiremake nagios_nrpe
   ipfiremake ebtables
-  ipfiremake fontconfig
-  ipfiremake freefont
   ipfiremake directfb
   ipfiremake dfb++
   ipfiremake faad2
   ipfiremake ffmpeg
-  ipfiremake videolan
   ipfiremake vdr
   ipfiremake w_scan
   ipfiremake icecast
@@ -703,6 +674,7 @@ buildipfire() {
   ipfiremake iw
   ipfiremake wpa_supplicant
   ipfiremake hostapd
+  ipfiremake pycurl
   ipfiremake urlgrabber
   ipfiremake syslinux
   ipfiremake tftpd
@@ -715,7 +687,6 @@ buildipfire() {
   ipfiremake netcat
   ipfiremake 7zip
   ipfiremake lynis
-  ipfiremake splix
   ipfiremake streamripper
   ipfiremake sshfs
   ipfiremake taglib
@@ -737,7 +708,6 @@ buildipfire() {
   ipfiremake nut
   ipfiremake watchdog
   ipfiremake libpri
-  ipfiremake dahdi
   ipfiremake asterisk
   ipfiremake lcr
   ipfiremake usb_modeswitch
@@ -763,15 +733,20 @@ buildipfire() {
   ipfiremake python-progressbar
   ipfiremake python-xattr
   ipfiremake intltool
-  ipfiremake pakfire3-deps
   ipfiremake transmission
   ipfiremake dpfhack
   ipfiremake lcd4linux
   ipfiremake mtr
   ipfiremake tcpick
   ipfiremake minidlna
+  ipfiremake acpid
   ipfiremake fping
   ipfiremake telnet
+  ipfiremake libgpg-error
+  ipfiremake libassuan
+  ipfiremake gpgme
+  ipfiremake pygpgme
+  ipfiremake pakfire3
   ipfiremake stress
   ipfiremake libstatgrab
   ipfiremake sarg
@@ -784,11 +759,14 @@ buildipfire() {
   echo >> $BASEDIR/build/var/ipfire/firebuild
   cat /proc/cpuinfo >> $BASEDIR/build/var/ipfire/firebuild
   echo $PAKFIRE_CORE > $BASEDIR/build/opt/pakfire/db/core/mine
-  if [ "$GIT_BRANCH" = "master" -o "$GIT_BRANCH" = "next" ]; then
-       echo "$NAME $VERSION ($MACHINE) - Development Build: $GIT_LASTCOMMIT" > $BASEDIR/build/etc/system-release
-  else
-       echo "$NAME $VERSION ($MACHINE) - $GIT_BRANCH" > $BASEDIR/build/etc/system-release
-  fi
+  case "$GIT_BRANCH" in
+       core*)
+           echo "$NAME $VERSION ($MACHINE) - $GIT_BRANCH" > $BASEDIR/build/etc/system-release
+           ;;
+       *)
+           echo "$NAME $VERSION ($MACHINE) - Development Build: $GIT_BRANCH/$GIT_LASTCOMMIT" > $BASEDIR/build/etc/system-release
+           ;;
+  esac
 }
 
 buildinstaller() {
@@ -799,7 +777,6 @@ buildinstaller() {
   ipfiremake mbr
   ipfiremake memtest
   ipfiremake installer
-  cp -f $BASEDIR/doc/COPYING $BASEDIR/build/install/initrd/
   installmake strip
   ipfiremake initrd
 }
@@ -850,6 +827,8 @@ buildpackages() {
   if [ $BUILD_IMAGES == 1 ] && ([ -e /dev/loop/0 ] || [ -e /dev/loop0 ]) && [ "${MACHINE_TYPE}" != "arm" ]; then
         cp -f $BASEDIR/packages/linux-xen-*.ipfire $LFS/install/packages/
         cp -f $BASEDIR/packages/meta-linux-xen $LFS/install/packages/
+        cp -f $BASEDIR/packages/linux-pae-*.ipfire $LFS/install/packages/
+        cp -f $BASEDIR/packages/meta-linux-pae $LFS/install/packages/
        ipfiremake xen-image
        rm -rf $LFS/install/packages/linux-xen-*.ipfire
        rm -rf $LFS/install/packages/meta-linux-xen
@@ -886,7 +865,7 @@ ipfirepackages() {
        ipfiremake core-updates
 
        local i
-       for i in $(find $BASEDIR/config/rootfiles/packages{${machine},} -maxdepth 1 -type f); do
+       for i in $(find $BASEDIR/config/rootfiles/packages{/${MACHINE},} -maxdepth 1 -type f); do
                i=$(basename ${i})
                if [ -e $BASEDIR/lfs/$i ]; then
                        ipfiredist $i
@@ -1041,9 +1020,7 @@ toolchain)
        echo "`date -u '+%b %e %T'`: Create toolchain tar.gz for $MACHINE" | tee -a $LOGFILE
        test -d $BASEDIR/cache/toolchains || mkdir -p $BASEDIR/cache/toolchains
        cd $BASEDIR && tar -zc --exclude='log/_build.*.log' -f cache/toolchains/$SNAME-$VERSION-toolchain-$TOOLCHAINVER-$MACHINE.tar.gz \
-               build/{bin,etc,usr/bin,usr/local} \
-               build/tools/{bin,etc,*-linux-gnu*,include,lib,libexec,sbin,share,var} \
-               log >> $LOGFILE
+               build/tools build/bin/sh log >> $LOGFILE
        md5sum cache/toolchains/$SNAME-$VERSION-toolchain-$TOOLCHAINVER-$MACHINE.tar.gz \
                > cache/toolchains/$SNAME-$VERSION-toolchain-$TOOLCHAINVER-$MACHINE.md5
        stdumount
index a75bdf27f971713fb449477caa1450e2732b4aa9..3c3a3b42aeb579065d949f2f719f17f9969a699c 100644 (file)
@@ -19,7 +19,7 @@ all: $(LIB)
        $(CC) $(CFLAGS) -o $@ -c $<
 
 $(LIB): $(OBJECTS)
-       $(CC) $(CFLAGS) -shared -o $@ $? -ldl
+       $(CC) $(CFLAGS) -shared -o $@ $? -ldl -static-libgcc
 
 .PHONY: install
 install: all
diff --git a/src/initscripts/init.d/acpid b/src/initscripts/init.d/acpid
new file mode 100644 (file)
index 0000000..53fa7c6
--- /dev/null
@@ -0,0 +1,48 @@
+#!/bin/sh
+########################################################################
+# Begin $rc_base/init.d/acpid
+#
+# Description : ACPI daemon init script
+#
+########################################################################
+
+. /etc/sysconfig/rc
+. ${rc_functions}
+
+# ACPI daemon is only support on Intel architectures.
+case "$(uname -m)" in
+       i?86)
+               ;;
+       *)
+               exit 0
+               ;;
+esac
+
+case "${1}" in
+       start)
+               boot_mesg "Starting ACPI daemon..."
+               loadproc /usr/sbin/acpid
+               ;;
+
+       stop)
+               boot_mesg "Stopping ACPI daemon..."
+               killproc /usr/sbin/acpid
+               ;;
+
+       restart)
+               ${0} stop
+               sleep 1
+               ${0} start
+               ;;
+
+       status)
+               statusproc /usr/sbin/acpid
+               ;;
+
+       *)
+               echo "Usage: ${0} {start|stop|restart|status}"
+               exit 1
+               ;;
+esac
+
+# End $rc_base/init.d/acpid
index 093b8b129d701e5b0fde53749e09c4bf660797a6..0d4cdb95b1010d286157996151d90537e7d023db 100644 (file)
@@ -20,8 +20,8 @@ case "${1}" in
                boot_mesg -n "Starting cpufreq... "
 
                # try cpufreq hardware depend modules
-               for i in $(find /lib/modules/$(uname -r)/kernel/arch/x86/kernel/cpu/cpufreq \
-                          ! -name speedstep-lib.ko ! -name p4-clockmod.ko | sort -d -r); do
+               for i in $(find /lib/modules/$(uname -r)/kernel/drivers/cpufreq \
+                          ! -name speedstep-lib.ko ! -name p4-clockmod.ko ! -name "cpufreq_*" ! -name mperf.ko | sort -d -r); do
                        module=$(basename $i | cut -d. -f1);
                        modprobe $module > /dev/null 2>&1;
                        if [ ${?} = 0 ]; then
index b658cfa027936973e4f39f16f9bb88a26b9f8538..0d3f448c9ee6ce611e7e566b6ce4f2cecc00c40b 100644 (file)
@@ -1,4 +1,10 @@
 #!/bin/bash
+
+# Exit if firstsetup was already done...
+if [ -e /var/ipfire/main/firstsetup_ok ]; then
+       exit 0;
+fi
+
 # Edit the serial console entry at /etc/inittab matching to console parameter.
 ser_console() {
        while test x"$1" != x
@@ -27,10 +33,19 @@ if [ "${?}" == "1" ]; then
        echo Setup not finished. Rebooting ...
        reboot -f
 fi
+
+# plan install pae kernel at next pakfire update if pae is supported
+rm -rf /opt/pakfire/db/*/meta-linux-pae
+if [ ! "$(grep "^flags.* pae " /proc/cpuinfo)" == "" ]; then
+       echo "Name: linux-pae" > /opt/pakfire/db/installed/meta-linux-pae
+       echo "ProgVersion: 0" >> /opt/pakfire/db/installed/meta-linux-pae
+       echo "Release: 0"     >> /opt/pakfire/db/installed/meta-linux-pae
+fi
+
 echo Restarting udev...
 killall udevd
 /sbin/udevd --daemon
 /sbin/udevadm trigger
 /sbin/udevadm settle
 /etc/init.d/sysklogd stop
-rm -f /etc/rc.d/rcsysinit.d/S75firstsetup
+touch /var/ipfire/main/firstsetup_ok
index 8913eb991e7f831f55cd9162f7f6bff5a661c0ce..3dbd1addd50230fed436e5d919ccc1b7f9ac779b 100644 (file)
@@ -2,11 +2,11 @@
 ########################################################################
 # Begin $rc_base/init.d/fsresize
 #
-# Description : Resize the /var filesystem
+# Description : Resize the root filesystem in the background
 #
 # Authors     : Arne Fitzenreiter - arne_f@ipfire.org
 #
-# Version     : 1.00
+# Version     : 1.01
 #
 # Notes       :
 #
 
 case "${1}" in
        start)
-               boot_mesg "Mounting root file system in read/write mode ..."
-               mount -o remount,rw / > /dev/null
-               evaluate_retval
-
-               boot_mesg "Autoresize /var partition to use the whole drive ..."
+               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}
-               boot_mesg " * check filesystem on ${DRV}4 before resize ..."
-               fsck -f -y ${DRV}4
 
-               boot_mesg " * resize ${DRV}4 ..."
-               resize2fs -p ${DRV}4
-               evaluate_retval
+               boot_mesg "resize ${DRV}3 ..."
+               nice -n 19 $0 background ${DRV}3 > /dev/null &
+               ;;
+       background)
+               resize2fs -p $2
 
                # Erase symlink, it should run only once
-               rm -f /etc/rc.d/rcsysinit.d/S26fsresize
+               rm -f /etc/rc.d/rcsysinit.d/S42fsresize
                sync
-
                exit 0;
+
                ;;
+
        *)
                echo "Usage: ${0} {start}"
                exit 1
index f3b016c38680a67914724ee79c43516fbfbb8388..01f7234ef404f5d86e90a9fc2ef5ea6e00147731 100644 (file)
 
 case "${1}" in
        stop)
+               sync && sync
+               boot_mesg "Remount root readonly..."
+               mount -f -o remount,ro / > /dev/null 2>&1
+               evaluate_retval
+               boot_mesg "Prepare for halt..."
+               sleep 2
                halt -d -f -i -p
                ;;
        *)
diff --git a/src/initscripts/init.d/ipfireseeder b/src/initscripts/init.d/ipfireseeder
deleted file mode 100644 (file)
index 5ce5cdf..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-#!/bin/sh
-########################################################################
-# Begin $rc_base/init.d/ipfireseeder
-#
-# Description : This is a script that starts the torrent-seeder on your
-#                                                              local IPFire.
-#
-# Authors     : Michael Tremer (mitch@ipfire.org)
-#
-# Version     : 01.00
-#
-# Notes       :
-#
-########################################################################
-
-. /etc/sysconfig/rc
-. ${rc_functions}
-
-case "${1}" in
-       start)
-               boot_mesg "Starting IPFire Seeder..."
-               cd /var/log/seeder
-               # loadproc 
-               screen -dmS seeder /usr/bin/rtorrent -o port_range=35700-35700 \
-                       -o download_rate=180 -o upload_rate=15 \
-                       -o min_peers=10 -o max_peers=30 \
-                       -o min_peers_seed=1 -o max_peers_seed=5 \
-                       -o max_uploads=3 \
-                       /var/ipfire/seeder/*.torrent &
-               evaluate_retval
-               if ! grep -q "35700:35700" /var/ipfire/xtaccess/config ; then
-                       echo "tcp,0.0.0.0/0,35700:35700,on,0.0.0.0,IPFireSeeder" >> /var/ipfire/xtaccess/config
-                       echo "udp,0.0.0.0/0,35700:35700,on,0.0.0.0,IPFireSeeder" >> /var/ipfire/xtaccess/config
-                       /usr/local/bin/setxtaccess
-               fi
-               ;;
-               
-       stop)
-               boot_mesg "Stopping IPFire Seeder..."
-               killproc /usr/bin/rtorrent
-               ;;
-
-       reload)
-               boot_mesg "Reloading IPFire Seeder..."
-               reloadproc /usr/bin/rtorrent
-               ;;
-
-       restart)
-               ${0} stop
-               sleep 1
-               ${0} start
-               ;;
-
-       status)
-               statusproc /usr/bin/rtorrent
-               ;;
-
-       *)
-               echo "Usage: ${0} {start|stop|reload|restart|status}"
-               exit 1
-               ;;
-esac
-
-# End $rc_base/init.d/ipfireseeder
old mode 100755 (executable)
new mode 100644 (file)
index 01ecafde8c7d9471e731e7bff19c8060789d5bc1..c56100979f1d1f4271212553fa80eb3ac92acabb 100644 (file)
@@ -42,6 +42,8 @@ case "${1}" in
        stop)
                boot_mesg "Syncing discs..."
                sync && sync
+               sleep 2
+               sync && sync
                evaluate_retval
 
                boot_mesg "Unmounting all other currently mounted file systems..."
index 9de3994cd3e354d7431e51b12c20b05e067837fe..9ff2200115c4b425b384be228efba0014f2b6eba 100644 (file)
@@ -28,6 +28,9 @@ init_networking() {
        (exit ${failed})
        evaluate_retval
 
+       # Enable netfilter accounting
+       sysctl net.netfilter.nf_conntrack_acct=1 > /dev/null
+
        if [ -e /var/ipfire/main/disable_nf_sip ]; then
                rmmod nf_nat_sip
                rmmod nf_conntrack_sip
old mode 100755 (executable)
new mode 100644 (file)
index 8eddc46c373a456c1661700bd32fad348ba55b26..33b56266a403289b181ed8ede518a5c372c94afb 100644 (file)
@@ -2,11 +2,11 @@
 ########################################################################
 # Begin $rc_base/init.d/partresize
 #
-# Description : Resize the /var partition to the drivesize
+# Description : Resize the root partition to the drivesize
 #
 # Authors     : Arne Fitzenreiter - arne_f@ipfire.org
 #
-# Version     : 1.00
+# Version     : 1.01
 #
 # Notes       :
 #
@@ -24,10 +24,14 @@ case "${1}" in
 
                # Detect device
                ROOT=`mount | grep -m1 " / " | cut -d" " -f1`;
-               DRV=${ROOT::`expr length $ROOT`-1}
-
-               boot_mesg "Change Partition 4 to all free space ..."
-               echo -e 'd\n4\nn\np\n4\n\n\nw\nq\n' | fdisk ${DRV}
+               if [ "${ROOT:`expr length $ROOT`-2:1}" == "p" ]; then
+                       DRV=${ROOT::`expr length $ROOT`-2}
+               else
+                       DRV=${ROOT::`expr length $ROOT`-1}
+               fi
+
+               boot_mesg "Change Partition ${DRV}3 to all free space ..."
+               echo -e 'd\n3\nn\np\n3\n\n\nw\nq\n' | fdisk ${DRV}
 
                # Erase symlink, it should run only once
                rm -f /etc/rc.d/rcsysinit.d/S25partresize
index fec0c1f6f6e372ca2e457541c3d793f48038d033..0602ac4e3469d76bd98ccf5811297f209ef98ebb 100644 (file)
 
 case "${1}" in
        stop)
-               boot_mesg "Restarting system..."
+               sync && sync
+               boot_mesg "Remount root readonly..."
+               mount -f -o remount,ro / > /dev/null 2>&1
+               evaluate_retval
+               boot_mesg "Prepare for reboot..."
+               sleep 2
                reboot -d -f -i
                ;;
 
index 1f5e07efad03d04713dfc3cf6f6c9b6d1e39fc7f..58c16c3b42fedd64c0badade1c3003ffb2328c40 100644 (file)
@@ -23,7 +23,7 @@ case "${1}" in
 
                sleep ${KILLDELAY}
 
-               if [ "${error_value}" = 0 ]; then
+               if [ "${error_value}" = 0 -o "${error_value}" = 2 ]; then
                        echo_ok
                else
                        echo_failure
@@ -35,7 +35,7 @@ case "${1}" in
 
                sleep ${KILLDELAY}
 
-               if [ "${error_value}" = 0 ]; then
+               if [ "${error_value}" = 0 -o "${error_value}" = 2 ]; then
                        echo_ok
                else
                        echo_failure
index 908d4906abf84cca25dd37b6453bf8be3db345b6..6083108dd7568040d9e3e6157741378f0f7b077d 100644 (file)
@@ -19,7 +19,14 @@ CLOCKPARAMS=
 
 case ${1} in
        start)
+
                boot_mesg "Setting system clock..."
+
+               # udev not create the rtc symlink if rtc is in the kernel
+               if [ ! -e /dev/rtc ]; then
+                       ln -s rtc0 /dev/rtc
+               fi
+
                hwclock --hctosys ${CLOCKPARAMS} &>/dev/null
                evaluate_retval
                ;;
@@ -31,7 +38,7 @@ case ${1} in
                ;;
 
        *)
-               echo "Usage: ${0} {start}"
+               echo "Usage: ${0} {start} {stop}"
                ;;
 
 esac
index 0e5a1e1e46b7839d61f42808a45699192cde0def..848dec6ad4ff0fc55a97b644517576ad41128af1 100644 (file)
@@ -43,10 +43,6 @@ case "$1" in
                        mkdir -p /var/run/mysql
                        chown mysql:mysql /var/run/mysql
                fi
-               if [ ! -e /var/run/pluto ]; then
-                       mkdir -p /var/run/pluto
-                       chmod 700 /var/run/pluto
-               fi
                if [ ! -e /var/run/saslauthd ]; then
                        mkdir -p /var/run/saslauthd
                fi
index 5b89b8279f3b3e591011bd8d0d10372d16fa6ebc..83ea8e70398dc653b6acab3ec76d7a843e8bd796 100644 (file)
@@ -20,8 +20,3 @@
 ###############################################################################
 # Used for private calls after boot                                           #
 ###############################################################################
-
-# power button shutdown
-if grep -q '^button' /proc/modules ; then
-    ( head -1 /proc/acpi/event | grep -q 'button/power PWRF' && poweroff ) &
-fi
index a3c95f7515b0f29e71742a12555e5ebae1e7c08e..89106de2280311a9e462bd2e592007963d6e8684 100644 (file)
 
 CC      = gcc 
 CFLAGS  = -Os -Wall
-INCLUDE = -I/opt/i586-uClibc/include
+INCLUDE =
 
 LD      = gcc
-LDFLAGS = -L/install/lib
+LDFLAGS =
 LIBS    = -lnewt -lslang -lpci
 
 COMPILE = $(CC) -c $(INCLUDE) $(CFLAGS)
index daa1c3f26f2aa92787b390464895b234eb257923..b1d512a71b8e00a7a3156ae66c2569f9201e8228 100644 (file)
@@ -12,8 +12,9 @@
 #include "install.h"
 #define _GNU_SOURCE
  
-#define INST_FILECOUNT 10700
+#define INST_FILECOUNT 14400
 #define UNATTENDED_CONF "/cdrom/boot/unattended.conf"
+#define LICENSE_FILE   "/cdrom/COPYING"
 
 #define EXT2 0
 #define EXT3 1
@@ -47,6 +48,7 @@ int main(int argc, char *argv[])
        char **langtrs[] = { de_tr, en_tr, fr_tr, es_tr, pl_tr, ru_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];
@@ -56,7 +58,6 @@ int main(int argc, char *argv[])
        int choice;
        int i;
        int found = 0;
-       int firstrun = 0;
        char shortlangname[10];
        char message[1000];
        char title[STRING_SIZE];
@@ -120,19 +121,9 @@ int main(int argc, char *argv[])
                }
        }
 
-       // Read gpl ...
-       if (! (copying = fopen("/COPYING", "r")))
-       {
-               fprintf(flog,      "Couldn't open gpl (/COPYING)\n");
-               sprintf(discl_msg, "Couldn't open gpl (/COPYING)\n");
-       } else {
-               fread(discl_msg, 1, 40000, copying);
-               fclose(copying);
-       }
-
        // Load common modules
        mysystem("/sbin/modprobe iso9660"); // CDROM
-       mysystem("/sbin/modprobe ext2"); // Boot patition
+//     mysystem("/sbin/modprobe ext2"); // Boot patition
        mysystem("/sbin/modprobe vfat"); // USB key
        
        /* German is the default */
@@ -157,11 +148,6 @@ int main(int argc, char *argv[])
        if (!unattended) {
                sprintf(message, ctr[TR_WELCOME], NAME);
                newtWinMessage(title, ctr[TR_OK], message);
-
-               if (disclaimerbox(discl_msg)==0) {
-                       errorbox(ctr[TR_LICENSE_NOT_ACCEPTED]);
-                       goto EXIT;
-               }
        }
 
        mysystem("/bin/mountsource.sh");
@@ -178,7 +164,23 @@ int main(int argc, char *argv[])
        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++;
@@ -201,13 +203,8 @@ int main(int argc, char *argv[])
                                found = 1;
                                break;
                        case 10: // No harddisk found
-                               if (firstrun == 1) {
-                                       errorbox(ctr[TR_NO_HARDDISK]);
-                                       goto EXIT;
-                               }
-                               // Do this if the kudzu-scan fails...
-                               runcommandwithstatus("/bin/probehw.sh deep-scan", ctr[TR_PROBING_HARDWARE]);
-                               firstrun = 1;
+                               errorbox(ctr[TR_NO_HARDDISK]);
+                               goto EXIT;
                }
        }
 
@@ -217,6 +214,12 @@ int main(int argc, char *argv[])
        }
        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) {
@@ -240,7 +243,7 @@ int main(int argc, char *argv[])
 
        fprintf(flog, "Destination drive: %s\n", hdparams.devnode_disk);
        
-       sprintf(message, ctr[TR_PREPARE_HARDDISK], hdparams.devnode_disk);
+       sprintf(message, ctr[TR_PREPARE_HARDDISK], harddrive_info);
        if (unattended) {
            hardyn = 1;
        } else {
@@ -373,18 +376,18 @@ int main(int argc, char *argv[])
                errorbox(ctr[TR_UNABLE_TO_PARTITION]);
                goto EXIT;
        }
-       
+
        if (fstype == EXT2) {
-               mysystem("/sbin/modprobe 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");
+//             mysystem("/sbin/modprobe ext3");
                sprintf(mkfscommand, "/sbin/mke2fs -T ext3");
        } else if (fstype == EXT4) {
-               mysystem("/sbin/modprobe ext4");
+//             mysystem("/sbin/modprobe ext4");
                sprintf(mkfscommand, "/sbin/mke2fs -T ext4");
        }
 
@@ -510,6 +513,15 @@ int main(int argc, char *argv[])
 
        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])) {
index 00243a99b2066b1794491502e9f986348bb563b3..f2c4b53e221ae011b15a25d6af4444d32238d095 100644 (file)
@@ -1,8 +1,7 @@
-#!/bin/sh
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007  Michael Tremer & Christian Schmidt                      #
+# Copyright (C) 2007-2012  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        #
 #                                                                             #
 ###############################################################################
 
+# Set histchars to an empty string so we are able to replace an
+# exclamation mark.
+histchars=
+
 echo "Scanning for possible destination drives"
 
-# scan IDE devices
-echo "--> IDE"
-for DEVICE in $(kudzu -qps -t 30 -c HD -b IDE | grep device: | cut -d ' ' -f 2 | sort | uniq); do
-               if [ "$(grep ${DEVICE} /proc/partitions)" = "" ]; then
-                       umount /harddisk 2> /dev/null
-                       echo "${DEVICE} is empty - SKIP"
-                       continue
-               fi
-               mount /dev/${DEVICE}1 /harddisk 2> /dev/null
-               if [ -n "$(ls /harddisk/ipfire-*.tlz 2>/dev/null)" ]; then
-                       umount /harddisk 2> /dev/null
-                       echo "${DEVICE}1 is source drive - SKIP"
-                       continue
-               else
-                       umount /harddisk 2> /dev/null
-                       echo -n "$DEVICE" > /tmp/dest_device
-                       echo "${DEVICE} - yes, it is our destination"
-                       exit 0 # IDE / use DEVICE for grub
-               fi
-done
+function _mount() {
+       local what=${1}
+
+       # Don't mount if the device does not exist.
+       [ -e "${what}" ] || return 1
+
+       mount ${what} /harddisk 2>/dev/null
+}
+
+function _umount() {
+       umount -l /harddisk 2>/dev/null
+}
+
+function check_source_drive() {
+       local device="/dev/${1}"
+
+       local ret=1
+       local dev
+       for dev in ${device} ${device}1; do
+               # Mount the device (if possible).
+               _mount ${dev} || continue
 
-# scan USB/SCSI devices
-echo "--> USB/SCSI"
-for DEVICE in $(kudzu -qps -t 30 -c HD -b SCSI | grep device: | cut -d ' ' -f 2 | sort | uniq); do
-               if [ "$(grep ${DEVICE} /proc/partitions)" = "" ]; then
-                       umount /harddisk 2> /dev/null
-                       echo "${DEVICE} is empty - SKIP"
-                       continue
-               fi
-               mount /dev/${DEVICE} /harddisk 2> /dev/null
                if [ -n "$(ls /harddisk/ipfire-*.tlz 2>/dev/null)" ]; then
-                       umount /harddisk 2> /dev/null
-                       echo "${DEVICE} is source drive - SKIP"
-                       continue
-               else
-                       umount /harddisk 2> /dev/null
-                       mount /dev/${DEVICE}1 /harddisk 2> /dev/null
-                       if [ -n "$(ls /harddisk/ipfire-*.tlz 2>/dev/null)" ]; then
-                               umount /harddisk 2> /dev/null
-                               echo "${DEVICE}1 is source drive - SKIP"
-                               continue
-                       else
-                               umount /harddisk 2> /dev/null
-                               echo -n "$DEVICE" > /tmp/dest_device
-                               echo "${DEVICE} - yes, it is our destination"
-                               exit 1 # SCSI/USB (always use /dev/sda as bootdevicename)
-                       fi
+                       ret=0
                fi
-done
 
-# scan RAID devices
-echo "--> RAID"
-for DEVICE in $(kudzu -qps -t 30 -c HD -b RAID | grep device: | cut -d ' ' -f 2 | sort | uniq); do
-               if [ "$(grep ${DEVICE}p1 /proc/partitions)" = "" ]; then
-                       umount /harddisk 2> /dev/null
-                       echo "${DEVICE}p1 is empty - SKIP"
+               _umount
+
+               # Stop if the device has been detected as a source drive.
+               [ "${ret}" = "0" ] && break
+       done
+
+       return ${ret}
+}
+
+for path in /sys/block/*; do
+       device=$(basename ${path})
+
+       # Skip devices which cannot be used.
+       case "${device}" in
+               # Virtual devices.
+               loop*|ram*)
                        continue
-               fi
-               mount /dev/${DEVICE}p1 /harddisk 2> /dev/null
-               if [ -n "$(ls /harddisk/ipfire-*.tlz 2>/dev/null)" ]; then
-                       umount /harddisk 2> /dev/null
-                       echo "${DEVICE}p1 is source drive - SKIP"
+                       ;;
+               # Floppy.
+               fd*)
                        continue
-               else
-                       umount /harddisk 2> /dev/null
-                       if [ "$(grep ${DEVICE} /proc/partitions)" = "" ]; then
-                               umount /harddisk 2> /dev/null
-                               echo "${DEVICE} is empty - SKIP"
-                               continue
-                       fi
-                       mount /dev/${DEVICE}1 /harddisk 2> /dev/null
-                       if [ -n "$(ls /harddisk/ipfire-*.tlz 2>/dev/null)" ]; then
-                               umount /harddisk 2> /dev/null
-                               echo "${DEVICE}1 is source drive - SKIP"
-                               continue
-                       else
-                               umount /harddisk 2> /dev/null
-                               mount /dev/${DEVICE} /harddisk 2> /dev/null
-                               if [ -n "$(ls /harddisk/ipfire-*.tlz 2>/dev/null)" ]; then
-                                       umount /harddisk 2> /dev/null
-                                       echo "${DEVICE} is source drive - SKIP"
-                                       continue
-                               else
-                                       echo -n "$DEVICE" > /tmp/dest_device
-                                       echo "${DEVICE} - yes, it is our destination"
-                                       exit 2 # Raid ( /dev/device/diskx )
-                               fi
-                       fi
-               fi
-done
-
-# Virtio devices
-echo "--> Virtio"
-for DEVICE in vda vdb vdc vdd; do
-               if [ ! -e /dev/${DEVICE} ]; then
+                       ;;
+               # Cd/Tape.
+               sr*)
                        continue
-               else
-                       if [ "$(grep ${DEVICE} /proc/partitions)" = "" ]; then
-                               umount /harddisk 2> /dev/null
-                               echo "${DEVICE} is empty - SKIP"
-                               continue
-                       fi
-                       mount /dev/${DEVICE} /harddisk 2> /dev/null
-                       if [ -n "$(ls /harddisk/ipfire-*.tlz 2>/dev/null)" ]; then
-                               umount /harddisk 2> /dev/null
-                               echo "${DEVICE} is source drive - SKIP"
-                               continue
-                       else
-                               umount /harddisk 2> /dev/null
-                               mount /dev/${DEVICE}1 /harddisk 2> /dev/null
-                               if [ -n "$(ls /harddisk/ipfire-*.tlz 2>/dev/null)" ]; then
-                                       umount /harddisk 2> /dev/null
-                                       echo "${DEVICE}1 is source drive - SKIP"
-                                       continue
-                               else
-                                       umount /harddisk 2> /dev/null
-                                       echo -n "$DEVICE" > /tmp/dest_device
-                                       echo "${DEVICE} - yes, it is our destination"
-                                       exit 0 # like ide / use device for grub
-                               fi
-                       fi
+                       ;;
+       esac
+
+       # Replace any exclamation marks (e.g. cciss!c0d0).
+       device_=${device//!/\/}
+
+       # Guess if this could be a raid device.
+       for dev in ${device_} ${device_}p1; do
+               if [ -e "/dev/${dev}" ]; then
+                       device=${dev}
+                       break
                fi
-done
+       done
+
+       echo "Checking ${device_}"
+       if check_source_drive ${device_}; then
+               echo "  is source drive - skipping"
+               continue
+       fi
+
+       device_size=$(cat /sys/block/${device}/size)
+       if [ "${device_size}" = "0" ]; then
+               echo "  is empty - skipping"
+               continue
+       fi
+
+       # Found it.
+       echo "  OK, this is it..."
+       echo -n "${device_}" > /tmp/dest_device
+
+       # Disk size to GiB.
+       device_size=$(( ${device_size} / 2097152 ))
 
+       # Build string with drive details
+       device_str="/dev/${device_} - ${device_size} GiB -"
+       device_str="${device_str} $(cat /sys/block/${device}/device/vendor)"
+       device_str="${device_str} $(cat /sys/block/${device}/device/model)"
+
+       # Remove all whitespace.
+       device_str=$(echo ${device_str})
+
+       echo -n "${device_str}" > /tmp/dest_device_info
+
+       # Exit code table:
+       #  1: sda
+       #  2: RAID
+       # 10: nothing found
+       case "${device_}" in
+               *p1|*c0d0)
+                       exit 2
+                       ;;
+               *)
+                       exit 1
+                       ;;
+       esac
+done
 
-exit 10 # Nothing found
+# Nothing found.
+exit 10
index 6813758778da4ff93b586ba43c8e3a8e7dede357..fbaec7e6e4ad806424cbc0160ada4564e7fd0c71 100644 (file)
@@ -2,7 +2,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007  Michael Tremer & Christian Schmidt                      #
+# Copyright (C) 2007-2012  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        #
@@ -21,8 +21,9 @@
 
 echo "Scanning source media"
 
-# scan CDROM devices
-for DEVICE in $(kudzu -qps -t 30 -c CDROM | grep device: | cut -d ' ' -f 2 | sort | uniq); do
+# 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/ipfire-*.tlz 2>/dev/null)" ]; then
                        echo -n ${DEVICE} > /tmp/source_device
@@ -34,9 +35,10 @@ for DEVICE in $(kudzu -qps -t 30 -c CDROM | grep device: | cut -d ' ' -f 2 | sor
                umount /cdrom 2> /dev/null
 done
 
-# scan HD device part1 (usb sticks, etc.)
-for DEVICE in $(kudzu -qps -t 30 -c HD | grep device: | cut -d ' ' -f 2 | sort | uniq); do
-       for DEVICEP in $(ls /dev/${DEVICE}? | sed "s/\/dev\///");do
+# 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}? | sed "s/\/dev\///" 2> /dev/null);do
                mount /dev/${DEVICEP} /cdrom 2> /dev/null
                if [ -n "$(ls /cdrom/ipfire-*.tlz 2>/dev/null)" ]; then
                        echo -n ${DEVICEP} > /tmp/source_device
@@ -49,17 +51,20 @@ for DEVICE in $(kudzu -qps -t 30 -c HD | grep device: | cut -d ' ' -f 2 | sort |
        done
 done
 
-# scan HD device unpart (usb sticks, etc.)
-for DEVICE in $(kudzu -qps -t 30 -c HD | grep device: | cut -d ' ' -f 2 | sort | uniq); do
-               mount /dev/${DEVICE} /cdrom 2> /dev/null
+# 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? | sed "s/\/dev\///");do
+               mount /dev/${DEVICEP} /cdrom 2> /dev/null
                if [ -n "$(ls /cdrom/ipfire-*.tlz 2>/dev/null)" ]; then
-                       echo -n ${DEVICE} > /tmp/source_device
-                       echo "Found tarball on ${DEVICE}"
+                       echo -n ${DEVICEP} > /tmp/source_device
+                       echo "Found tarball on ${DEVICEP}"
                        exit 0
                else
-                       echo "Found no tarballs on ${DEVICE} - SKIP"
+                       echo "Found no tarballs on ${DEVICEP} - SKIP"
                fi
                umount /cdrom 2> /dev/null
+       done
 done
 
 exit 10
diff --git a/src/install+setup/install/probehw.sh b/src/install+setup/install/probehw.sh
deleted file mode 100644 (file)
index c56462e..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-#!/bin/sh
-###############################################################################
-#                                                                             #
-# 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/>.       #
-#                                                                             #
-###############################################################################
-
-echo "Detecting Hardware..."
-for MODULE in $(kudzu -qps  -t 30 | grep driver: | cut -d ' ' -f 2 | sort | uniq); do
-               if [ "${MODULE}" = "unknown" ] || \
-                               [ "${MODULE}" = "ignore" ] || \
-                               [ "${MODULE}" = "" ]; then
-        continue
-               fi
-               MODULE=$(find /lib/modules -name $(echo $MODULE | sed -e 's/[_-]/*/g')* 2>/dev/null)
-    [ "${MODULE}" == "" ] && continue
-    MODULE=$(basename $MODULE | cut -d. -f1 | head -1)
-    
-               if grep -Eqe "^${MODULE} " /proc/modules; then
-                       continue
-               fi
-               echo -n "Loading ${MODULE}"
-               modprobe ${MODULE} >/dev/null 2>&1
-               echo " --> ecode: $?"
-done
-
-sleep 10
-
-if [ $# -eq 0 ]; then
-       exit 0
-fi
-
-## If the autodetection fails we will try to load every module...
-## Do this only when we want...
-
-for i in a b c d e f g; do
-       if [ ! -e /dev/sd$i ]; then
-               DEVICE="/dev/sd$i"
-               echo "Checking for: $DEVICE"
-               break
-       fi
-done
-
-for MODULE in $(ls /lib/modules/*/kernel/drivers/ata && ls /lib/modules/*/kernel/drivers/scsi); do
-       MODULE=`basename $MODULE | awk -F. '{ print $1 }'`
-       
-       echo -n "Probing for $MODULE"
-       modprobe $MODULE >/dev/null 2>&1
-       RETVAL=$?
-       echo " --> ecode: $RETVAL"
-       if [ "$RETVAL" -eq "0" ]; then
-               sleep 3
-               if [ -e "$DEVICE" ]; then
-                       break
-               fi
-       fi
-
-done
-
-sleep 5
-
-exit 0
index 3072b0186058a4ef6e02e323947da7caca60479a..fb428cc49a335b3664965638d7396dc4c2a22eb7 100644 (file)
@@ -2,7 +2,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2009  Michael Tremer & Christian Schmidt                      #
+# Copyright (C) 2011  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        #
@@ -40,10 +40,10 @@ for card in `ls /sys/class/net`; do
                                if [ ! "$hwaddr" == "00:00:00:00:00:00" ];then
                                if [ ! "$hwaddr" == "ff:ff:ff:ff:ff:ff" ];then
 
-                                       driver=`grep PHYSDEVDRIVER= /sys/class/net/$card/uevent | cut -d"=" -f2`
-                                       type=`grep PHYSDEVBUS= /sys/class/net/$card/uevent | cut -d"=" -f2`
+                                       driver=`grep DRIVER= /sys/class/net/$card/device/uevent | cut -d"=" -f2`
+                                       type=`grep MODALIAS= /sys/class/net/$card/device/uevent | cut -d"=" -f2 | cut -d":" -f1`
 
-                                       #Default if not avaiable in /sys/class/net
+                                       #Default if not available in /sys/class/net
                                        if [ "a$type" == "a" ]; then
                                                type="???"
                                        fi
index bc09aa62379c362160f99e35cc80dbdaf9933703..5ce869a5f57b3afd6fae8a20c4f3113ceffea019 100644 (file)
@@ -20,7 +20,7 @@
 
 CC      = gcc
 CFLAGS  = -O2 -Wall
-INCLUDE = -I/opt/i586-uClibc/include
+INCLUDE =
 
 LD      = ld
 LDFLAGS = -i
index 46e49c01b368afcce164dc93a2cef934e0db20c9..de5c558c0e6091a1cb5d93194a09d70064f4aff6 100644 (file)
@@ -221,7 +221,14 @@ int changeaddress(struct keyvalue *kv, char *colour, int typeflag,
                                setnetaddress(kv, colour);
                                result = 1;
                        }
-               }                       
+               }
+               /* Workaround for a bug that dhcp radiobutton also end the dialog at arm
+               */
+               else {
+                       if (es.u.co != cancel) {
+                               error = 1;
+                       }
+               }
        }
        while (error);
 
@@ -322,7 +329,7 @@ void networkdialogcallbacktype(newtComponent cm, void *data)
                newtEntrySetFlags(dhcpforcemtuentry, NEWT_FLAG_DISABLED, NEWT_FLAGS_SET);               
        }
        newtRefresh();
-       newtDrawForm(networkform);      
+       newtDrawForm(networkform);
 }
 
 int interfacecheck(struct keyvalue *kv, char *colour)
index 300e9ecbb244caabd7fb447a82259b92d764d6e8..33d1d667e2fa72f3ef98ebe9dddb554b942de0e4 100644 (file)
@@ -29,7 +29,7 @@ SUID_PROGS = setdmzholes setportfw setxtaccess \
        ipsecctrl timectrl dhcpctrl snortctrl \
        applejuicectrl rebuildhosts backupctrl \
        logwatch openvpnctrl outgoingfwctrl \
-       wirelessctrl getipstat getiptstate qosctrl launch-ether-wake \
+       wirelessctrl getipstat qosctrl launch-ether-wake \
        redctrl syslogdctrl extrahdctrl sambactrl upnpctrl tripwirectrl \
        smartctrl clamavctrl addonctrl pakfire mpfirectrl wlanapctrl \
        setaliases urlfilterctrl updxlratorctrl fireinfoctrl rebuildroutes \
diff --git a/src/misc-progs/getiptstate.c b/src/misc-progs/getiptstate.c
deleted file mode 100644 (file)
index 338b531..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-/* IPFire helper program - IPStat
- *
- * Get the list from IPTABLES -L
- * 
- */
-         
-#include <stdio.h>
-#include <string.h>
-#include <unistd.h>
-#include <stdlib.h>
-#include <sys/types.h>
-#include <fcntl.h>
-#include "setuid.h"
-
-
-int main(void)
-{
-       if (!(initsetuid()))
-               exit(1);
-       
-       safe_system("/usr/sbin/iptstate -1rbt");
-       return 0;
-}
-
index 0b0517713d031d1e481559d7148aeb54c562aaee..633004e2331d4d7044c77f4cf9d5f1dc82938a30 100644 (file)
@@ -78,7 +78,6 @@ void ipsec_norules() {
         safe_system("/sbin/iptables -F IPSECINPUT");
         safe_system("/sbin/iptables -F IPSECFORWARD");
         safe_system("/sbin/iptables -F IPSECOUTPUT");
-
 }
 
 /*
@@ -87,8 +86,7 @@ void ipsec_norules() {
 int decode_line (char *s, 
                 char **key,
                 char **name,
-                char **type,
-                char **interface
+                char **type
                 ) {
         int count = 0;
         *key = NULL;
@@ -108,8 +106,6 @@ int decode_line (char *s,
                         *name = result;
                 if (count == 4)
                         *type = result;
-                if (count == 27)
-                        *interface = result;
                 count++;
                 result = strsep(&s, ",");
         }
@@ -128,11 +124,6 @@ int decode_line (char *s,
                 return 0;
         }
 
-        if (! (strcmp(*interface, "RED") == 0 || strcmp(*interface, "GREEN") == 0 ||
-                strcmp(*interface, "ORANGE") == 0 || strcmp(*interface, "BLUE") == 0)) {
-                fprintf(stderr, "Bad interface name: %s\n", *interface);
-                return 0;
-        }
         //it's a valid & active line
         return 1;
 }
@@ -140,69 +131,48 @@ int decode_line (char *s,
 /*
     issue ipsec commmands to turn on connection 'name'
 */
-void turn_connection_on (char *name, char *type) {
-/*
-       Rename the connection and run ipsec update and rename it back to readd
-       a deleted connection. Because ipsec update ignores connection that have
-       not changed since last load.
-*/
+void turn_connection_on(char *name, char *type) {
+       /*
+        * To bring up a connection, we need to reload the configuration
+        * and issue ipsec up afterwards. To make sure the connection
+        * is not established from the start, we bring it down in advance.
+        */
         char command[STRING_SIZE];
-        memset(command, 0, STRING_SIZE);
-        snprintf(command, STRING_SIZE - 1, 
-                "sed -i -e 's|^conn %s$|conn %s-renamed|g' /var/ipfire/vpn/ipsec.conf >/dev/null", name, name);
-        safe_system(command);
 
-       // Down and delete IKEv2 Tunnel before ipsec update
+       // Bring down the connection (if established).
         snprintf(command, STRING_SIZE - 1, 
-                "/usr/sbin/ipsec stroke down %s >/dev/null", name);
+                "/usr/sbin/ipsec down %s >/dev/null", name);
         safe_system(command);
-        snprintf(command, STRING_SIZE - 1, 
-                "/usr/sbin/ipsec stroke delete %s >/dev/null", name);
-        safe_system(command);
-
-        safe_system("/etc/rc.d/init.d/ipsec update >/dev/null");
 
-       sleep(1);
+       // Reload the configuration into the daemon.
+       safe_system("/usr/sbin/ipsec reload >/dev/null 2>&1");
 
-       // Back to original name
-       snprintf(command, STRING_SIZE - 1, 
-                "sed -i -e 's|^conn %s-renamed$|conn %s|g' /var/ipfire/vpn/ipsec.conf >/dev/null", name, name);
-        safe_system(command);
-
-       // Down and delete IKEv2 Tunnel before ipsec update
-        snprintf(command, STRING_SIZE - 1, 
-                "/usr/sbin/ipsec stroke down %s-renamed >/dev/null", name);
-        safe_system(command);
-        snprintf(command, STRING_SIZE - 1, 
-                "/usr/sbin/ipsec stroke delete %s-renamed >/dev/null", name);
-        safe_system(command);
-
-        safe_system("/etc/rc.d/init.d/ipsec update >/dev/null");
+       // Bring the connection up again.
+       snprintf(command, STRING_SIZE - 1,
+               "/usr/sbin/ipsec up %s >/dev/null", name);
+       safe_system(command);
 }
+
 /*
     issue ipsec commmands to turn off connection 'name'
 */
 void turn_connection_off (char *name) {
+       /*
+        * To turn off a connection, all SAs must be turned down.
+        * After that, the configuration must be reloaded.
+        */
         char command[STRING_SIZE];
-        memset(command, 0, STRING_SIZE);
-        snprintf(command, STRING_SIZE - 1, 
-                "/usr/sbin/ipsec whack --delete --name %s >/dev/null", name);
-        safe_system(command);
-        snprintf(command, STRING_SIZE - 1, 
-                "/usr/sbin/ipsec stroke down %s >/dev/null", name);
-        safe_system(command);
+
+       // Bring down the connection.
         snprintf(command, STRING_SIZE - 1, 
-                "/usr/sbin/ipsec stroke delete %s >/dev/null", name);
+                "/usr/sbin/ipsec down %s >/dev/null", name);
         safe_system(command);
 
-        safe_system("/usr/sbin/ipsec whack --rereadall >/dev/null");
-        safe_system("/usr/sbin/ipsec stroke rereadall >/dev/null");
-
+       // Reload, so the connection is dropped.
+        safe_system("/usr/sbin/ipsec reload >/dev/null 2>&1");
 }
 
-
 int main(int argc, char *argv[]) {
-
         char configtype[STRING_SIZE];
         char redtype[STRING_SIZE] = "";
         struct keyvalue *kv = NULL;
@@ -218,26 +188,15 @@ int main(int argc, char *argv[]) {
                 
 
         if (strcmp(argv[1], "I") == 0) {
-                safe_system("/usr/sbin/ipsec whack --status");
-                safe_system("/usr/sbin/ipsec stroke status");
+                safe_system("/usr/sbin/ipsec status");
                 exit(0);
         }
 
         if (strcmp(argv[1], "R") == 0) {
-                safe_system("/usr/sbin/ipsec whack --rereadall >/dev/null");
-                safe_system("/usr/sbin/ipsec stroke rereadall >/dev/null");
+                safe_system("/usr/sbin/ipsec reload >/dev/null 2>&1");
                 exit(0);
         }
 
- /* Get vpnwatch pid */
-
-
-       if ((argc == 2) && (file = fopen("/var/run/vpn-watch.pid", "r"))) {
-           safe_system("kill -9 $(cat /var/run/vpn-watch.pid)");
-           safe_system("unlink /var/run/vpn-watch.pid");
-           close(file);
-       }
         /* FIXME: workaround for pclose() issue - still no real idea why
          * this is happening */
         signal(SIGCHLD, SIG_DFL);
@@ -245,16 +204,10 @@ int main(int argc, char *argv[]) {
         /* handle operations that doesn't need start the ipsec system */
         if (argc == 2) {
                 if (strcmp(argv[1], "D") == 0) {
-                        /* Only shutdown pluto if it really is running */
-                        /* Get pluto pid */
-                        if (file = fopen("/var/run/pluto.pid", "r")) {
-                                safe_system("/etc/rc.d/init.d/ipsec stop 2> /dev/null >/dev/null");
-                                close(file);
-                        }
+                        safe_system("/usr/sbin/ipsec stop >/dev/null 2>&1");
                         ipsec_norules();
                         exit(0);
                 }
-
         }
 
         /* read vpn config */
@@ -300,97 +253,63 @@ int main(int argc, char *argv[]) {
         char if_blue[STRING_SIZE] = "";
         char s[STRING_SIZE];
 
-        if (!(file = fopen(CONFIG_ROOT "/vpn/config", "r"))) {
-                fprintf(stderr, "Couldn't open vpn settings file");
-                exit(1);
-        }
-        while (fgets(s, STRING_SIZE, file) != NULL) {
-                char *key;
-                char *name;
-                char *type;
-                char *interface;
-                if (!decode_line(s,&key,&name,&type,&interface))
-                    continue;
-                /* search interface */
-                if (!enable_red && strcmp (interface, "RED") == 0) {
-                        // when RED is up, find interface name in special file
-                        FILE *ifacefile = NULL;
-                        if ((ifacefile = fopen(CONFIG_ROOT "/red/iface", "r"))) {
-                            if (fgets(if_red, STRING_SIZE, ifacefile)) {
-                                if (if_red[strlen(if_red) - 1] == '\n')
-                                        if_red[strlen(if_red) - 1] = '\0';
-                            }
-                            fclose (ifacefile);
-
-                            if (VALID_DEVICE(if_red))
-                                enable_red+=2;                  // present and running
-                        }
+        // when RED is up, find interface name in special file
+        FILE *ifacefile = NULL;
+        if ((ifacefile = fopen(CONFIG_ROOT "/red/iface", "r"))) {
+                if (fgets(if_red, STRING_SIZE, ifacefile)) {
+                        if (if_red[strlen(if_red) - 1] == '\n')
+                                if_red[strlen(if_red) - 1] = '\0';
                 }
+                fclose (ifacefile);
 
-                if (!enable_green && strcmp (interface, "GREEN") == 0) {
-                        enable_green = 1;
-                        findkey(kv, "GREEN_DEV", if_green);
-                        if (VALID_DEVICE(if_green))
-                            enable_green++;
-                        else
-                            fprintf(stderr, "IPSec enabled on green but green interface is invalid or not found\n");
-                }
+                if (VALID_DEVICE(if_red))
+                        enable_red++;
+        }
 
-                if (!enable_orange && strcmp (interface, "ORANGE") == 0) {
-                        enable_orange = 1;
-                        findkey(kv, "ORANGE_DEV", if_orange);
-                        if (VALID_DEVICE(if_orange))
-                            enable_orange++;
-                        else
-                            fprintf(stderr, "IPSec enabled on orange but orange interface is invalid or not found\n");
-                }
+       // Check if GREEN is enabled.
+        findkey(kv, "GREEN_DEV", if_green);
+        if (VALID_DEVICE(if_green))
+                enable_green++;
 
-                if (!enable_blue && strcmp (interface, "BLUE") == 0) {
-                        enable_blue++;
-                        findkey(kv, "BLUE_DEV", if_blue);
-                        if (VALID_DEVICE(if_blue))
-                            enable_blue++;
-                        else
-                            fprintf(stderr, "IPSec enabled on blue but blue interface is invalid or not found\n");
+       // Check if ORANGE is enabled.
+        findkey(kv, "ORANGE_DEV", if_orange);
+        if (VALID_DEVICE(if_orange))
+                enable_orange++;
 
-                }
-        }
-        fclose(file);
-        freekeyvalues(kv);
+       // Check if BLUE is enabled.
+        findkey(kv, "BLUE_DEV", if_blue);
+        if (VALID_DEVICE(if_blue))
+                enable_blue++;
 
-        // do nothing if something is in error condition
-        if ((enable_red==1) || (enable_green==1) || (enable_orange==1) || (enable_blue==1) )
-            exit(1);
+        freekeyvalues(kv);
 
         // exit if nothing to do
-        if ( (enable_red+enable_green+enable_orange+enable_blue) == 0 )
+        if ((enable_red+enable_green+enable_orange+enable_blue) == 0)
             exit(0);
 
         // open needed ports
-        // todo: read a nat_t indicator to allow or not openning UDP/4500
-        if (enable_red==2)
+        if (enable_red > 0)
                 open_physical(if_red, 4500);
 
-        if (enable_green==2)
+        if (enable_green > 0)
                 open_physical(if_green, 4500);
 
-        if (enable_orange==2)
+        if (enable_orange > 0)
                 open_physical(if_orange, 4500);
 
-        if (enable_blue==2)
+        if (enable_blue > 0)
                 open_physical(if_blue, 4500);
 
         // start the system
         if ((argc == 2) && strcmp(argv[1], "S") == 0) {
-               safe_system("/etc/rc.d/init.d/ipsec restart >/dev/null");
-               safe_system("/usr/local/bin/vpn-watch &");
+               safe_system("/usr/sbin/ipsec restart >/dev/null");
                 exit(0);
         }
 
         // it is a selective start or stop
         // second param is only a number 'key'
         if ((argc == 2) || strspn(argv[2], NUMBERS) != strlen(argv[2])) {
-                fprintf(stderr, "Bad arg\n");
+                fprintf(stderr, "Bad arg: %s\n", argv[2]);
                 usage();
                 exit(1);
         }
@@ -404,26 +323,17 @@ int main(int argc, char *argv[]) {
                 char *key;
                 char *name;
                 char *type;
-                char *interface;
-                if (!decode_line(s,&key,&name,&type,&interface))
+                if (!decode_line(s,&key,&name,&type))
                         continue;
 
-                // start/stop a vpn if belonging to specified interface
-                if (strcmp(argv[1], interface) == 0 ) {
-                            if (strcmp(argv[2], "0")==0)
-                                turn_connection_off (name);
-                            else
-                                turn_connection_on (name, type);
-                        continue;
-                }
                 // is it the 'key' requested ?
                 if (strcmp(argv[2], key) != 0)
                         continue;
+
                 // Start or Delete this Connection
                 if (strcmp(argv[1], "S") == 0)
                         turn_connection_on (name, type);
-                else
-                if (strcmp(argv[1], "D") == 0)
+                else if (strcmp(argv[1], "D") == 0)
                         turn_connection_off (name);
                 else {
                         fprintf(stderr, "Bad command\n");
@@ -431,5 +341,6 @@ int main(int argc, char *argv[]) {
                 }
         }
         fclose(file);
+
         return 0;
 }
index 08408874481eb935992bcc22131235e6be695aa2..e831858819e18d98c5e11404953bad65580cf4b6 100644 (file)
@@ -41,11 +41,11 @@ void exithandler(void)
 int main(int argc, char *argv[])
 {
        int fdpid; 
-       char hostname[STRING_SIZE];
+       char hostname[STRING_SIZE] = "";
        char domainname[STRING_SIZE] = "";
        char gateway[STRING_SIZE] = "";
        char buffer[STRING_SIZE];
-       char address[STRING_SIZE];
+       char address[STRING_SIZE] = "";
        char *active, *ip, *host, *domain;
        int pid;
 
index ca79218fefe3c72d479c82084efddc898f2b3349..a65aebd2aab73f24c46e365b5d30cb26953178d6 100644 (file)
@@ -45,11 +45,11 @@ int main(void)
 {\r
        FILE *ipfile = NULL, *ifacefile = NULL;\r
        int count;\r
-       char iface[STRING_SIZE];\r
-       char locip[STRING_SIZE];\r
-       char greenip[STRING_SIZE], greenmask[STRING_SIZE];\r
-       char bluedev[STRING_SIZE], blueip[STRING_SIZE], bluemask[STRING_SIZE];\r
-       char orangedev[STRING_SIZE], orangeip[STRING_SIZE], orangemask[STRING_SIZE];\r
+       char iface[STRING_SIZE] ="";
+       char locip[STRING_SIZE] ="";
+       char greenip[STRING_SIZE] ="", greenmask[STRING_SIZE] ="";
+       char bluedev[STRING_SIZE] ="", blueip[STRING_SIZE] ="", bluemask[STRING_SIZE] ="";
+       char orangedev[STRING_SIZE] ="", orangeip[STRING_SIZE] ="", orangemask[STRING_SIZE] ="";
        char *protocol;\r
        char *srcip;\r
        char *locport;\r
diff --git a/src/paks/applejuice/install.sh b/src/paks/applejuice/install.sh
deleted file mode 100644 (file)
index 92cd67f..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/bin/bash
-############################################################################
-#                                                                          #
-# This file is part of the IPFire Firewall.                                #
-#                                                                          #
-# 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 #
-#                                                                          #
-# Copyright (C) 2007 IPFire-Team <info@ipfire.org>.                        #
-#                                                                          #
-############################################################################
-#
-. /opt/pakfire/lib/functions.sh
-extract_files
-sleep 60 && /etc/init.d/applejuice start &
-ln -svf ../init.d/applejuice /etc/rc.d/rc0.d/K05applejuice
-ln -svf ../init.d/applejuice /etc/rc.d/rc3.d/S98applejuice
-ln -svf ../init.d/applejuice /etc/rc.d/rc6.d/K05applejuice
-/etc/init.d/apache reload
diff --git a/src/paks/applejuice/uninstall.sh b/src/paks/applejuice/uninstall.sh
deleted file mode 100644 (file)
index e14e422..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/bin/bash
-############################################################################
-#                                                                          #
-# This file is part of the IPFire Firewall.                                #
-#                                                                          #
-# 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 #
-#                                                                          #
-# Copyright (C) 2007 IPFire-Team <info@ipfire.org>.                        #
-#                                                                          #
-############################################################################
-#
-. /opt/pakfire/lib/functions.sh
-/etc/init.d/applejuice stop
-remove_files
-rm -rf /etc/rc.d/rc*.d/*applejuice
diff --git a/src/paks/applejuice/update.sh b/src/paks/applejuice/update.sh
deleted file mode 100644 (file)
index 89c40d0..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/bin/bash
-############################################################################
-#                                                                          #
-# This file is part of the IPFire Firewall.                                #
-#                                                                          #
-# 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 #
-#                                                                          #
-# Copyright (C) 2007 IPFire-Team <info@ipfire.org>.                        #
-#                                                                          #
-############################################################################
-#
-. /opt/pakfire/lib/functions.sh
-./uninstall.sh
-./install.sh
index ce88096cbdf28e4f065d480b5f77abeb363d1cc6..673a17d5d25274a964f08945302ba3bcaa290782 100644 (file)
@@ -1,4 +1,4 @@
-files
+files.tar.xz
 install.sh
 uninstall.sh
 update.sh
diff --git a/src/paks/ipfireseeder/uninstall.sh b/src/paks/ipfireseeder/uninstall.sh
deleted file mode 100644 (file)
index 888c701..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-#!/bin/bash
-############################################################################
-#                                                                          #
-# This file is part of the IPFire Firewall.                                #
-#                                                                          #
-# 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 #
-#                                                                          #
-# Copyright (C) 2007 IPFire-Team <info@ipfire.org>.                        #
-#                                                                          #
-############################################################################
-#
-. /opt/pakfire/lib/functions.sh
-stop_service ${NAME}
-
-#prevent erasing the downloaded data at uninstall/update
-cat /opt/pakfire/db/rootfiles/ipfireseeder | \
-    grep -v "var/ipfire/seeder" | \
-    grep -v "var/log/seeder" > /opt/pakfire/db/rootfiles/ipfireseeder.tmp
-mv /opt/pakfire/db/rootfiles/ipfireseeder.tmp \
-    /opt/pakfire/db/rootfiles/ipfireseeder
-
-grep -v "IPFireSeeder" /var/ipfire/xtaccess/config > /var/ipfire/xtaccess/config.tmp
-mv /var/ipfire/xtaccess/config.tmp /var/ipfire/xtaccess/config
-chown nobody:nobody /var/ipfire/xtaccess/config
-chmod 644 /var/ipfire/xtaccess/config
-
-rm -f /etc/rc.d/rc?.d/???ipfireseeder
-rm -f /etc/rc.d/init.d/networking/red.*/??-?-ipfireseeder
-
-remove_files
diff --git a/src/paks/ipfireseeder/update.sh b/src/paks/ipfireseeder/update.sh
deleted file mode 100644 (file)
index 89c40d0..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/bin/bash
-############################################################################
-#                                                                          #
-# This file is part of the IPFire Firewall.                                #
-#                                                                          #
-# 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 #
-#                                                                          #
-# Copyright (C) 2007 IPFire-Team <info@ipfire.org>.                        #
-#                                                                          #
-############################################################################
-#
-. /opt/pakfire/lib/functions.sh
-./uninstall.sh
-./install.sh
index 60f8bbb42e31f3e949027e792ae79885ea12a186..59e17bfecf404cfee50a37063cde7be105a16d3c 100644 (file)
@@ -48,7 +48,7 @@ let ENTRY=$_+1
 if [ "$(grep "^serial" /boot/grub/grub.conf)" == "" ]; then
        console=""
 else
-       console=" console=ttyS0,38400n8"
+       console=" console=ttyS0,115200n8"
 fi
 
 #
@@ -71,3 +71,10 @@ echo "  savedefault $ENTRY" >> /boot/grub/grub.conf
 # Create new module depency
 #
 depmod -a $KVER-ipfire-pae
+
+# Default pae and request a reboot if pae is supported
+if [ ! "$(grep "^flags.* pae " /proc/cpuinfo)" == "" ]; then
+       grub-set-default $ENTRY
+       touch /var/run/need_reboot
+fi
+sync && sync
\ No newline at end of file
index 70efa9db7e4b8016a9794ab6a78ab48a9a08ae28..39ac87cf3784906f66fe71563763c30a768ecded 100644 (file)
@@ -24,7 +24,7 @@
 . /opt/pakfire/lib/functions.sh
 extract_files
 #
-KVER=xxxKVERxxx
+KVER=2.6.32.60
 ROOT=`mount | grep " / " | cut -d" " -f1`
 ROOTUUID=`blkid -c /dev/null -sUUID $ROOT | cut -d'"' -f2`
 if [ ! -z $ROOTUUID ]; then
@@ -51,7 +51,7 @@ cp /boot/grub/grub.conf /boot/grub/grub-backup-$KVER-xen.conf
 # Add new Entry to grub.conf
 #
 echo "" >> /boot/grub/grub.conf
-echo "title IPFire (XEN-Kernel $KVER)" >> /boot/grub/grub.conf
+echo "title IPFire (legacy XEN-Kernel $KVER)" >> /boot/grub/grub.conf
 echo "  kernel /vmlinuz-$KVER-ipfire-xen root=$ROOT panic=10 console=xvc0 $MOUNT" >> /boot/grub/grub.conf
 echo "  initrd /ipfirerd-$KVER-xen.img" >> /boot/grub/grub.conf
 echo "# savedefault $ENTRY" >> /boot/grub/grub.conf
diff --git a/src/patches/bash-3.1-fixes-8.patch b/src/patches/bash-3.1-fixes-8.patch
deleted file mode 100644 (file)
index 449f076..0000000
+++ /dev/null
@@ -1,723 +0,0 @@
-Submitted By: Jeremy Huntwork (jhuntwork at linuxfromscratch dot org)
-Date: 2006-04-11
-Initial Package Version: 3.1
-Origin: http://ftp.gnu.org/gnu/bash/bash-3.1-patches/
-Upstream Status: From Upstream
-Description: Contains patches 001-017 from upstream
-
-diff -Naur bash-3.1.orig/arrayfunc.c bash-3.1/arrayfunc.c
---- bash-3.1.orig/arrayfunc.c  2005-07-04 17:25:58.000000000 -0700
-+++ bash-3.1/arrayfunc.c       2006-04-19 15:59:29.000000000 -0700
-@@ -592,11 +592,7 @@
-   exp = (char *)xmalloc (len);
-   strncpy (exp, s, len - 1);
-   exp[len - 1] = '\0';
--#if 0
--  t = expand_string_to_string (exp, 0);
--#else 
--  t = expand_string_to_string (exp, Q_DOUBLE_QUOTES);
--#endif
-+  t = expand_arith_string (exp, 0);
-   this_command_name = (char *)NULL;
-   val = evalexp (t, &expok);
-   free (t);
-diff -Naur bash-3.1.orig/doc/bash.1 bash-3.1/doc/bash.1
---- bash-3.1.orig/doc/bash.1   2005-10-12 08:40:52.000000000 -0700
-+++ bash-3.1/doc/bash.1        2006-04-19 15:58:34.000000000 -0700
-@@ -6,12 +6,12 @@
- .\"   Case Western Reserve University
- .\"   chet@po.cwru.edu
- .\"
--.\"   Last Change: Sat Aug 27 13:28:44 EDT 2005
-+.\"   Last Change: Wed Dec 28 19:58:45 EST 2005
- .\"
- .\" bash_builtins, strip all but Built-Ins section
- .if \n(zZ=1 .ig zZ
- .if \n(zY=1 .ig zY
--.TH BASH 1 "2005 Aug 27" "GNU Bash-3.1-beta1"
-+.TH BASH 1 "2005 Dec 28" "GNU Bash-3.1"
- .\"
- .\" There's some problem with having a `@'
- .\" in a tagged paragraph with the BSD man macros.
-@@ -677,8 +677,8 @@
- .B nocasematch
- is enabled, the match is performed without regard to the case
- of alphabetic characters.
--The return value is 0 if the string matches or does not match
--the pattern, respectively, and 1 otherwise.
-+The return value is 0 if the string matches (\fB==\fP) or does not match
-+(\fB!=\fP) the pattern, and 1 otherwise.
- Any part of the pattern may be quoted to force it to be matched as a
- string.
- .if t .sp 0.5
-@@ -807,6 +807,12 @@
- as for pathname expansion (see
- .B Pathname Expansion
- below).
-+The \fIword\fP is expanded using tilde
-+expansion, parameter and variable expansion, arithmetic substituion,
-+command substitution, process substitution and quote removal.
-+Each \fIpattern\fP examined is expanded using tilde
-+expansion, parameter and variable expansion, arithmetic substituion,
-+command substitution, and process substitution.
- If the shell option
- .B nocasematch
- is enabled, the match is performed without regard to the case
-@@ -8484,7 +8490,7 @@
- returns true if any of the arguments are found, false if
- none are found.
- .TP
--\fBulimit\fP [\fB\-SHacdflmnpstuv\fP [\fIlimit\fP]]
-+\fBulimit\fP [\fB\-SHacdfilmnpqstuvx\fP [\fIlimit\fP]]
- Provides control over the resources available to the shell and to
- processes started by it, on systems that allow such control.
- The \fB\-H\fP and \fB\-S\fP options specify that the hard or soft limit is
-@@ -8523,6 +8529,9 @@
- .B \-f
- The maximum size of files created by the shell
- .TP
-+.B \-i
-+The maximum number of pending signals
-+.TP
- .B \-l
- The maximum size that may be locked into memory
- .TP
-@@ -8536,6 +8545,9 @@
- .B \-p
- The pipe size in 512-byte blocks (this may not be set)
- .TP
-+.B \-q
-+The maximum number of bytes in POSIX message queues
-+.TP
- .B \-s
- The maximum stack size
- .TP
-@@ -8547,6 +8559,9 @@
- .TP
- .B \-v
- The maximum amount of virtual memory available to the shell
-+.TP
-+.B \-x
-+The maximum number of file locks
- .PD
- .PP
- If
-diff -Naur bash-3.1.orig/doc/bashref.texi bash-3.1/doc/bashref.texi
---- bash-3.1.orig/doc/bashref.texi     2005-10-03 12:07:21.000000000 -0700
-+++ bash-3.1/doc/bashref.texi  2006-04-19 15:58:34.000000000 -0700
-@@ -961,8 +961,8 @@
- (see the description of @code{shopt} in @ref{Bash Builtins})
- is enabled, the match is performed without regard to the case
- of alphabetic characters.
--The return value is 0 if the string matches or does not match
--the pattern, respectively, and 1 otherwise.
-+The return value is 0 if the string matches (@samp{==}) or does not
-+match (@samp{!=})the pattern, and 1 otherwise.
- Any part of the pattern may be quoted to force it to be matched as a
- string.
-@@ -2598,7 +2598,7 @@
- Builtin commands are necessary to implement functionality impossible
- or inconvenient to obtain with separate utilities.
--This section briefly the builtins which Bash inherits from
-+This section briefly describes the builtins which Bash inherits from
- the Bourne Shell, as well as the builtin commands which are unique
- to or have been extended in Bash.
-@@ -3833,7 +3833,7 @@
- @item ulimit
- @btindex ulimit
- @example
--ulimit [-acdflmnpstuvSH] [@var{limit}]
-+ulimit [-acdfilmnpqstuvxSH] [@var{limit}]
- @end example
- @code{ulimit} provides control over the resources available to processes
- started by the shell, on systems that allow such control.  If an
-@@ -3857,6 +3857,9 @@
- @item -f
- The maximum size of files created by the shell.
-+@item -i
-+The maximum number of pending signals.
-+
- @item -l
- The maximum size that may be locked into memory.
-@@ -3869,6 +3872,9 @@
- @item -p
- The pipe buffer size.
-+@item -q
-+The maximum number of bytes in POSIX message queues.
-+
- @item -s
- The maximum stack size.
-@@ -3881,6 +3887,9 @@
- @item -v
- The maximum amount of virtual memory available to the process.
-+@item -x
-+The maximum number of file locks.
-+
- @end table
- If @var{limit} is given, it is the new value of the specified resource;
-@@ -4089,8 +4098,8 @@
- Print shell input lines as they are read.
- @item -x
--Print a trace of simple commands, \fBfor\fP commands, \fBcase\fP
--commands, \fBselect\fP commands, and arithmetic \fBfor\fP commands
-+Print a trace of simple commands, @code{for} commands, @code{case}
-+commands, @code{select} commands, and arithmetic @code{for} commands
- and their arguments or associated word lists after they are
- expanded and before they are executed.  The value of the @env{PS4}
- variable is expanded and the resultant value is printed before
-diff -Naur bash-3.1.orig/doc/version.texi bash-3.1/doc/version.texi
---- bash-3.1.orig/doc/version.texi     2005-09-20 11:52:56.000000000 -0700
-+++ bash-3.1/doc/version.texi  2006-04-19 15:58:34.000000000 -0700
-@@ -2,9 +2,9 @@
- Copyright (C) 1988-2005 Free Software Foundation, Inc.
- @end ignore
--@set LASTCHANGE Mon Sep  5 11:47:04 EDT 2005
-+@set LASTCHANGE Fri Dec 30 10:50:51 EST 2005
--@set EDITION 3.1-beta1
--@set VERSION 3.1-beta1
--@set UPDATED 5 September 2005
--@set UPDATED-MONTH September 2005
-+@set EDITION 3.1
-+@set VERSION 3.1
-+@set UPDATED 30 December 2005
-+@set UPDATED-MONTH December 2005
-diff -Naur bash-3.1.orig/jobs.c bash-3.1/jobs.c
---- bash-3.1.orig/jobs.c       2005-11-11 20:13:27.000000000 -0800
-+++ bash-3.1/jobs.c    2006-04-19 15:58:34.000000000 -0700
-@@ -619,8 +619,11 @@
-          * once in the parent and once in each child.  This is where
-          * the parent gives it away.
-          *
-+         * Don't give the terminal away if this shell is an asynchronous
-+         * subshell.
-+         *
-          */
--        if (job_control && newjob->pgrp)
-+        if (job_control && newjob->pgrp && (subshell_environment&SUBSHELL_ASYNC) == 0)
-           give_terminal_to (newjob->pgrp, 0);
-       }
-     }
-@@ -844,9 +847,10 @@
- realloc_jobs_list ()
- {
-   sigset_t set, oset;
--  int nsize, i, j;
-+  int nsize, i, j, ncur, nprev;
-   JOB **nlist;
-+  ncur = nprev = NO_JOB;
-   nsize = ((js.j_njobs + JOB_SLOTS - 1) / JOB_SLOTS);
-   nsize *= JOB_SLOTS;
-   i = js.j_njobs % JOB_SLOTS;
-@@ -854,17 +858,51 @@
-     nsize += JOB_SLOTS;
-   BLOCK_CHILD (set, oset);
--  nlist = (JOB **) xmalloc (nsize * sizeof (JOB *));
-+  nlist = (js.j_jobslots == nsize) ? jobs : (JOB **) xmalloc (nsize * sizeof (JOB *));
-+
-   for (i = j = 0; i < js.j_jobslots; i++)
-     if (jobs[i])
--      nlist[j++] = jobs[i];
-+      {
-+      if (i == js.j_current)
-+        ncur = j;
-+      if (i == js.j_previous)
-+        nprev = j;
-+      nlist[j++] = jobs[i];
-+      }
-+
-+#if defined (DEBUG)
-+  itrace ("realloc_jobs_list: resize jobs list from %d to %d", js.j_jobslots, nsize);
-+  itrace ("realloc_jobs_list: j_lastj changed from %d to %d", js.j_lastj, (j > 0) ? j - 1 : 0);
-+  itrace ("realloc_jobs_list: j_njobs changed from %d to %d", js.j_njobs, (j > 0) ? j - 1 : 0);
-+#endif
-   js.j_firstj = 0;
--  js.j_lastj = (j > 0) ? j - 1: 0;
-+  js.j_lastj = (j > 0) ? j - 1 : 0;
-+  js.j_njobs = j;
-   js.j_jobslots = nsize;
--  free (jobs);
--  jobs = nlist;
-+  /* Zero out remaining slots in new jobs list */
-+  for ( ; j < nsize; j++)
-+    nlist[j] = (JOB *)NULL;
-+
-+  if (jobs != nlist)
-+    {
-+      free (jobs);
-+      jobs = nlist;
-+    }
-+
-+  if (ncur != NO_JOB)
-+    js.j_current = ncur;
-+  if (nprev != NO_JOB)
-+    js.j_previous = nprev;
-+
-+  /* Need to reset these */
-+  if (js.j_current == NO_JOB || js.j_previous == NO_JOB || js.j_current > js.j_lastj || js.j_previous > js.j_lastj)
-+    reset_current ();
-+
-+#ifdef DEBUG
-+  itrace ("realloc_jobs_list: reset js.j_current (%d) and js.j_previous (%d)", js.j_current, js.j_previous);
-+#endif
-   UNBLOCK_CHILD (oset);
- }
-@@ -1655,7 +1693,7 @@
-            In this case, we don't want to give the terminal to the
-            shell's process group (we could be in the middle of a
-            pipeline, for example). */
--        if (async_p == 0 && pipeline_pgrp != shell_pgrp)
-+        if (async_p == 0 && pipeline_pgrp != shell_pgrp && ((subshell_environment&SUBSHELL_ASYNC) == 0))
-           give_terminal_to (pipeline_pgrp, 0);
- #if defined (PGRP_PIPE)
-@@ -2198,7 +2236,11 @@
-   /* 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);
-+    {
-+      old_sigint_handler = set_signal_handler (SIGINT, wait_sigint_handler);
-+      if (old_sigint_handler == SIG_IGN)
-+      set_signal_handler (SIGINT, old_sigint_handler);
-+    }
-   termination_state = last_command_exit_value;
-diff -Naur bash-3.1.orig/lib/glob/glob.c bash-3.1/lib/glob/glob.c
---- bash-3.1.orig/lib/glob/glob.c      2005-03-24 09:42:27.000000000 -0800
-+++ bash-3.1/lib/glob/glob.c   2006-04-19 15:58:34.000000000 -0700
-@@ -360,6 +360,7 @@
-   count = lose = skip = 0;
-   firstmalloc = 0;
-+  nalloca = 0;
-   /* If PAT is empty, skip the loop, but return one (empty) filename. */
-   if (pat == 0 || *pat == '\0')
-@@ -546,6 +547,8 @@
-               firstmalloc = 0;
-             tmplink = lastlink;
-           }
-+        else
-+          tmplink = 0;
-         free (lastlink->name);
-         lastlink = lastlink->next;
-         FREE (tmplink);
-diff -Naur bash-3.1.orig/lib/glob/sm_loop.c bash-3.1/lib/glob/sm_loop.c
---- bash-3.1.orig/lib/glob/sm_loop.c   2005-10-16 18:21:04.000000000 -0700
-+++ bash-3.1/lib/glob/sm_loop.c        2006-04-19 15:58:34.000000000 -0700
-@@ -638,12 +638,13 @@
-   CHAR *psub;                 /* pointer to sub-pattern */
-   CHAR *pnext;                        /* pointer to next sub-pattern */
-   CHAR *srest;                        /* pointer to rest of string */
--  int m1, m2;
-+  int m1, m2, xflags;         /* xflags = flags passed to recursive matches */
- #if DEBUG_MATCHING
- fprintf(stderr, "extmatch: xc = %c\n", xc);
- fprintf(stderr, "extmatch: s = %s; se = %s\n", s, se);
- fprintf(stderr, "extmatch: p = %s; pe = %s\n", p, pe);
-+fprintf(stderr, "extmatch: flags = %d\n", flags);
- #endif
-   prest = PATSCAN (p + (*p == L('(')), pe, 0); /* ) */
-@@ -677,8 +678,12 @@
-                string matches the rest of the pattern.  Also handle
-                multiple matches of the pattern. */
-             if (m1)
--              m2 = (GMATCH (srest, se, prest, pe, flags) == 0) ||
--                    (s != srest && GMATCH (srest, se, p - 1, pe, flags) == 0);
-+              {
-+                /* if srest > s, we are not at start of string */
-+                xflags = (srest > s) ? (flags & ~FNM_PERIOD) : flags;
-+                m2 = (GMATCH (srest, se, prest, pe, xflags) == 0) ||
-+                      (s != srest && GMATCH (srest, se, p - 1, pe, xflags) == 0);
-+              }
-             if (m1 && m2)
-               return (0);
-           }
-@@ -704,8 +709,10 @@
-         srest = (prest == pe) ? se : s;
-         for ( ; srest <= se; srest++)
-           {
-+            /* if srest > s, we are not at start of string */
-+            xflags = (srest > s) ? (flags & ~FNM_PERIOD) : flags;
-             if (GMATCH (s, srest, psub, pnext - 1, flags) == 0 &&
--                GMATCH (srest, se, prest, pe, flags) == 0)
-+                GMATCH (srest, se, prest, pe, xflags) == 0)
-               return (0);
-           }
-         if (pnext == prest)
-@@ -726,7 +733,9 @@
-             if (pnext == prest)
-               break;
-           }
--        if (m1 == 0 && GMATCH (srest, se, prest, pe, flags) == 0)
-+        /* if srest > s, we are not at start of string */
-+        xflags = (srest > s) ? (flags & ~FNM_PERIOD) : flags;
-+        if (m1 == 0 && GMATCH (srest, se, prest, pe, xflags) == 0)
-           return (0);
-       }
-       return (FNM_NOMATCH);
-diff -Naur bash-3.1.orig/lib/readline/display.c bash-3.1/lib/readline/display.c
---- bash-3.1.orig/lib/readline/display.c       2005-11-30 11:05:02.000000000 -0800
-+++ bash-3.1/lib/readline/display.c    2006-04-19 15:58:34.000000000 -0700
-@@ -1983,11 +1983,15 @@
-      int pchar;
- {
-   int len;
--  char *pmt;
-+  char *pmt, *p;
-   rl_save_prompt ();
--  if (saved_local_prompt == 0)
-+  /* We've saved the prompt, and can do anything with the various prompt
-+     strings we need before they're restored.  We want the unexpanded
-+     portion of the prompt string after any final newline. */
-+  p = rl_prompt ? strrchr (rl_prompt, '\n') : 0;
-+  if (p == 0)
-     {
-       len = (rl_prompt && *rl_prompt) ? strlen (rl_prompt) : 0;
-       pmt = (char *)xmalloc (len + 2);
-@@ -1998,19 +2002,17 @@
-     }
-   else
-     {
--      len = *saved_local_prompt ? strlen (saved_local_prompt) : 0;
-+      p++;
-+      len = strlen (p);
-       pmt = (char *)xmalloc (len + 2);
-       if (len)
--      strcpy (pmt, saved_local_prompt);
-+      strcpy (pmt, p);
-       pmt[len] = pchar;
-       pmt[len+1] = '\0';
--      local_prompt = savestring (pmt);
--      prompt_last_invisible = saved_last_invisible;
--      prompt_visible_length = saved_visible_length + 1;
--    }
-+    }  
-+  /* will be overwritten by expand_prompt, called from rl_message */
-   prompt_physical_chars = saved_physical_chars + 1;
--
-   return pmt;
- }
-diff -Naur bash-3.1.orig/lib/readline/readline.c bash-3.1/lib/readline/readline.c
---- bash-3.1.orig/lib/readline/readline.c      2005-07-04 19:29:35.000000000 -0700
-+++ bash-3.1/lib/readline/readline.c   2006-04-19 15:58:34.000000000 -0700
-@@ -282,6 +282,7 @@
- {
-   FREE (rl_prompt);
-   rl_prompt = prompt ? savestring (prompt) : (char *)NULL;
-+  rl_display_prompt = rl_prompt ? rl_prompt : "";
-   rl_visible_prompt_length = rl_expand_prompt (rl_prompt);
-   return 0;
-diff -Naur bash-3.1.orig/lib/readline/terminal.c bash-3.1/lib/readline/terminal.c
---- bash-3.1.orig/lib/readline/terminal.c      2005-11-12 17:46:54.000000000 -0800
-+++ bash-3.1/lib/readline/terminal.c   2006-04-19 15:58:34.000000000 -0700
-@@ -122,7 +122,7 @@
- static char *_rl_visible_bell;
- /* Non-zero means the terminal can auto-wrap lines. */
--int _rl_term_autowrap;
-+int _rl_term_autowrap = -1;
- /* Non-zero means that this terminal has a meta key. */
- static int term_has_meta;
-@@ -274,6 +274,9 @@
- _rl_set_screen_size (rows, cols)
-      int rows, cols;
- {
-+  if (_rl_term_autowrap == -1)
-+    _rl_init_terminal_io (rl_terminal_name);
-+
-   if (rows > 0)
-     _rl_screenheight = rows;
-   if (cols > 0)
-diff -Naur bash-3.1.orig/parse.y bash-3.1/parse.y
---- bash-3.1.orig/parse.y      2005-11-11 20:14:18.000000000 -0800
-+++ bash-3.1/parse.y   2006-04-19 15:58:34.000000000 -0700
-@@ -2716,6 +2716,7 @@
- #define P_ALLOWESC    0x02
- #define P_DQUOTE      0x04
- #define P_COMMAND     0x08    /* parsing a command, so look for comments */
-+#define P_BACKQUOTE   0x10    /* parsing a backquoted command substitution */
- static char matched_pair_error;
- static char *
-@@ -2725,12 +2726,12 @@
-      int *lenp, flags;
- {
-   int count, ch, was_dollar, in_comment, check_comment;
--  int pass_next_character, nestlen, ttranslen, start_lineno;
-+  int pass_next_character, backq_backslash, nestlen, ttranslen, start_lineno;
-   char *ret, *nestret, *ttrans;
-   int retind, retsize, rflags;
-   count = 1;
--  pass_next_character = was_dollar = in_comment = 0;
-+  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. */
-@@ -2742,11 +2743,8 @@
-   start_lineno = line_number;
-   while (count)
-     {
--#if 0
--      ch = shell_getc ((qc != '\'' || (flags & P_ALLOWESC)) && pass_next_character == 0);
--#else
--      ch = shell_getc (qc != '\'' && pass_next_character == 0);
--#endif
-+      ch = shell_getc (qc != '\'' && pass_next_character == 0 && backq_backslash == 0);
-+
-       if (ch == EOF)
-       {
-         free (ret);
-@@ -2771,9 +2769,16 @@
-         continue;
-       }
-       /* Not exactly right yet */
--      else if (check_comment && in_comment == 0 && ch == '#' && (retind == 0 || ret[retind-1] == '\n' || whitespace (ret[retind -1])))
-+      else if MBTEST(check_comment && in_comment == 0 && ch == '#' && (retind == 0 || ret[retind-1] == '\n' || whitespace (ret[retind - 1])))
-       in_comment = 1;
-+      /* last char was backslash inside backquoted command substitution */
-+      if (backq_backslash)
-+      {
-+        backq_backslash = 0;
-+        /* Placeholder for adding special characters */
-+      }
-+
-       if (pass_next_character)                /* last char was backslash */
-       {
-         pass_next_character = 0;
-@@ -2814,6 +2819,8 @@
-       {
-         if MBTEST((flags & P_ALLOWESC) && ch == '\\')
-           pass_next_character++;
-+        else if MBTEST((flags & P_BACKQUOTE) && ch == '\\')
-+          backq_backslash++;
-         continue;
-       }
-@@ -2898,7 +2905,11 @@
-       }
-       else if MBTEST(qc == '`' && (ch == '"' || ch == '\'') && in_comment == 0)
-       {
--        nestret = parse_matched_pair (0, ch, ch, &nestlen, rflags);
-+        /* Add P_BACKQUOTE so backslash quotes the next character and
-+           shell_getc does the right thing with \<newline>.  We do this for
-+           a measure  of backwards compatibility -- it's not strictly the
-+           right POSIX thing. */
-+        nestret = parse_matched_pair (0, ch, ch, &nestlen, rflags|P_BACKQUOTE);
-         goto add_nestret;
-       }
-       else if MBTEST(was_dollar && (ch == '(' || ch == '{' || ch == '['))     /* ) } ] */
-@@ -2907,7 +2918,7 @@
-         if (open == ch)       /* undo previous increment */
-           count--;
-         if (ch == '(')                /* ) */
--          nestret = parse_matched_pair (0, '(', ')', &nestlen, rflags);
-+          nestret = parse_matched_pair (0, '(', ')', &nestlen, rflags & ~P_DQUOTE);
-         else if (ch == '{')           /* } */
-           nestret = parse_matched_pair (0, '{', '}', &nestlen, P_FIRSTCLOSE|rflags);
-         else if (ch == '[')           /* ] */
-@@ -3578,7 +3589,7 @@
-             FREE (ttok);
-             all_digit_token = 0;
-             compound_assignment = 1;
--#if 0
-+#if 1
-             goto next_character;
- #else
-             goto got_token;           /* ksh93 seems to do this */
-@@ -3695,7 +3706,9 @@
-       struct builtin *b;
-       b = builtin_address_internal (token, 0);
-       if (b && (b->flags & ASSIGNMENT_BUILTIN))
--        parser_state |= PST_ASSIGNOK;
-+      parser_state |= PST_ASSIGNOK;
-+      else if (STREQ (token, "eval") || STREQ (token, "let"))
-+      parser_state |= PST_ASSIGNOK;
-     }
-   yylval.word = the_word;
-@@ -4686,18 +4699,21 @@
-      int *retlenp;
- {
-   WORD_LIST *wl, *rl;
--  int tok, orig_line_number, orig_token_size;
-+  int tok, orig_line_number, orig_token_size, orig_last_token, assignok;
-   char *saved_token, *ret;
-   saved_token = token;
-   orig_token_size = token_buffer_size;
-   orig_line_number = line_number;
-+  orig_last_token = last_read_token;
-   last_read_token = WORD;     /* WORD to allow reserved words here */
-   token = (char *)NULL;
-   token_buffer_size = 0;
-+  assignok = parser_state&PST_ASSIGNOK;               /* XXX */
-+
-   wl = (WORD_LIST *)NULL;     /* ( */
-   parser_state |= PST_COMPASSIGN;
-@@ -4740,7 +4756,7 @@
-       jump_to_top_level (DISCARD);
-     }
--  last_read_token = WORD;
-+  last_read_token = orig_last_token;          /* XXX - was WORD? */
-   if (wl)
-     {
-       rl = REVERSE_LIST (wl, WORD_LIST *);
-@@ -4752,6 +4768,10 @@
-   if (retlenp)
-     *retlenp = (ret && *ret) ? strlen (ret) : 0;
-+
-+  if (assignok)
-+    parser_state |= PST_ASSIGNOK;
-+
-   return ret;
- }
-diff -Naur bash-3.1.orig/patchlevel.h bash-3.1/patchlevel.h
---- bash-3.1.orig/patchlevel.h 2005-07-20 10:58:20.000000000 -0700
-+++ bash-3.1/patchlevel.h      2006-04-19 15:59:29.000000000 -0700
-@@ -25,6 +25,6 @@
-    regexp `^#define[  ]*PATCHLEVEL', since that's what support/mkversion.sh
-    looks for to find the patch level (for the sccs version string). */
--#define PATCHLEVEL 0
-+#define PATCHLEVEL 17
- #endif /* _PATCHLEVEL_H_ */
-diff -Naur bash-3.1.orig/subst.c bash-3.1/subst.c
---- bash-3.1.orig/subst.c      2005-10-24 06:51:13.000000000 -0700
-+++ bash-3.1/subst.c   2006-04-19 15:59:29.000000000 -0700
-@@ -2187,7 +2187,7 @@
-   if (mklocal && variable_context)
-     {
-       v = find_variable (name);
--      if (v == 0 || array_p (v) == 0)
-+      if (v == 0 || array_p (v) == 0 || v->context != variable_context)
-         v = make_local_array_variable (name);
-       v = assign_array_var_from_string (v, value, flags);
-     }
-@@ -2575,6 +2575,13 @@
-   return (expand_string_to_string_internal (string, quoted, expand_string_assignment));
- }
-+char *
-+expand_arith_string (string, quoted)
-+     char *string;
-+{
-+  return (expand_string_if_necessary (string, quoted, expand_string));
-+}
-+
- #if defined (COND_COMMAND)
- /* Just remove backslashes in STRING.  Returns a new string. */
- char *
-@@ -5248,7 +5255,7 @@
-   else
-     t = (char *)0;
--  temp1 = expand_string_if_necessary (substr, Q_DOUBLE_QUOTES, expand_string);
-+  temp1 = expand_arith_string (substr, Q_DOUBLE_QUOTES);
-   *e1p = evalexp (temp1, &expok);
-   free (temp1);
-   if (expok == 0)
-@@ -5293,7 +5300,7 @@
-     {
-       t++;
-       temp2 = savestring (t);
--      temp1 = expand_string_if_necessary (temp2, Q_DOUBLE_QUOTES, expand_string);
-+      temp1 = expand_arith_string (temp2, Q_DOUBLE_QUOTES);
-       free (temp2);
-       t[-1] = ':';
-       *e2p = evalexp (temp1, &expok);
-@@ -6435,7 +6442,7 @@
-         temp2[t_index] = '\0';
-         /* Expand variables found inside the expression. */
--        temp1 = expand_string_if_necessary (temp2, Q_DOUBLE_QUOTES, expand_string);
-+        temp1 = expand_arith_string (temp2, Q_DOUBLE_QUOTES);
-         free (temp2);
- arithsub:
-@@ -6477,7 +6484,7 @@
-       zindex = t_index;
-        /* Do initial variable expansion. */
--      temp1 = expand_string_if_necessary (temp, Q_DOUBLE_QUOTES, expand_string);
-+      temp1 = expand_arith_string (temp, Q_DOUBLE_QUOTES);
-       goto arithsub;
-@@ -6795,6 +6802,12 @@
-         if (temp && *temp && t_index > 0)
-           {
-             temp1 = bash_tilde_expand (temp, tflag);
-+            if  (temp1 && *temp1 == '~' && STREQ (temp, temp1))
-+              {
-+                FREE (temp);
-+                FREE (temp1);
-+                goto add_character;           /* tilde expansion failed */
-+              }
-             free (temp);
-             temp = temp1;
-             sindex += t_index;
-diff -Naur bash-3.1.orig/subst.h bash-3.1/subst.h
---- bash-3.1.orig/subst.h      2004-11-07 12:12:28.000000000 -0800
-+++ bash-3.1/subst.h   2006-04-19 15:59:29.000000000 -0700
-@@ -151,6 +151,9 @@
- extern char *expand_string_unsplit_to_string __P((char *, int));
- extern char *expand_assignment_string_to_string __P((char *, int));
-+/* Expand an arithmetic expression string */
-+extern char *expand_arith_string __P((char *, int));
-+
- /* De-quoted quoted characters in STRING. */
- extern char *dequote_string __P((char *));
-diff -Naur bash-3.1.orig/variables.c bash-3.1/variables.c
---- bash-3.1.orig/variables.c  2005-11-12 18:22:37.000000000 -0800
-+++ bash-3.1/variables.c       2006-04-19 15:58:34.000000000 -0700
-@@ -860,9 +860,11 @@
- {
-   char val[INT_STRLEN_BOUND(int) + 1], *v;
-+#if defined (READLINE)
-   /* If we are currently assigning to LINES or COLUMNS, don't do anything. */
-   if (winsize_assignment)
-     return;
-+#endif
-   v = inttostr (lines, val, sizeof (val));
-   bind_variable ("LINES", v, 0);
diff --git a/src/patches/bash-3.1-login.patch b/src/patches/bash-3.1-login.patch
deleted file mode 100644 (file)
index 8e950ba..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
---- bash-3.1/shell.c.login     2006-01-13 16:52:14.000000000 +0000
-+++ bash-3.1/shell.c   2006-01-13 16:52:15.000000000 +0000
-@@ -1543,9 +1543,10 @@
-      any startup files; just try to be more like /bin/sh. */
-   shell_name = argv0 ? base_pathname (argv0) : PROGRAM;
--  if (*shell_name == '-')
-+  if (argv0 && *argv0 == '-')
-     {
--      shell_name++;
-+      if (*shell_name == '-')
-+        shell_name++;
-       login_shell++;
-     }
diff --git a/src/patches/bash-3.2-ssh_source_bash.patch b/src/patches/bash-3.2-ssh_source_bash.patch
new file mode 100644 (file)
index 0000000..4b37132
--- /dev/null
@@ -0,0 +1,9 @@
+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). */
+-/* #define SSH_SOURCE_BASHRC */
++#define SSH_SOURCE_BASHRC
diff --git a/src/patches/bash-4.0-paths-1.patch b/src/patches/bash-4.0-paths-1.patch
new file mode 100644 (file)
index 0000000..735a381
--- /dev/null
@@ -0,0 +1,30 @@
+--- 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
+    the Posix.2 confstr () function, or CS_PATH define are not present. */
+ #ifndef STANDARD_UTILS_PATH
+ #define STANDARD_UTILS_PATH \
+-  "/bin:/usr/bin:/sbin:/usr/sbin:/etc:/usr/etc"
++  "/bin:/usr/bin:/usr/sbin:/sbin"
+ #endif
+ /* Default primary and secondary prompt strings. */
diff --git a/src/patches/bash-4.0-profile-1.patch b/src/patches/bash-4.0-profile-1.patch
new file mode 100644 (file)
index 0000000..ba3344b
--- /dev/null
@@ -0,0 +1,12 @@
+diff -up bash-3.2/config-top.h.profile bash-3.2/config-top.h
+--- bash-3.2/config-top.h.profile      2008-07-17 13:35:39.000000000 +0200
++++ bash-3.2/config-top.h      2008-07-17 13:42:18.000000000 +0200
+@@ -26,6 +26,8 @@
+    what POSIX.2 specifies. */
+ #define CONTINUE_AFTER_KILL_ERROR
++#define NON_INTERACTIVE_LOGIN_SHELLS
++
+ /* Define BREAK_COMPLAINS if you want the non-standard, but useful
+    error messages about `break' and `continue' out of context. */
+ #define BREAK_COMPLAINS
diff --git a/src/patches/bash/bash32-001 b/src/patches/bash/bash32-001
new file mode 100644 (file)
index 0000000..b7d1f1e
--- /dev/null
@@ -0,0 +1,47 @@
+                            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
new file mode 100644 (file)
index 0000000..b934df9
--- /dev/null
@@ -0,0 +1,48 @@
+                            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
new file mode 100644 (file)
index 0000000..922041b
--- /dev/null
@@ -0,0 +1,147 @@
+                            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
new file mode 100644 (file)
index 0000000..cd2accf
--- /dev/null
@@ -0,0 +1,96 @@
+                            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
new file mode 100644 (file)
index 0000000..903ec58
--- /dev/null
@@ -0,0 +1,223 @@
+                            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
new file mode 100644 (file)
index 0000000..589db9e
--- /dev/null
@@ -0,0 +1,45 @@
+                            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
new file mode 100644 (file)
index 0000000..9b86f4a
--- /dev/null
@@ -0,0 +1,55 @@
+                            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
new file mode 100644 (file)
index 0000000..7ec07ff
--- /dev/null
@@ -0,0 +1,48 @@
+                            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
new file mode 100644 (file)
index 0000000..9cfd16e
--- /dev/null
@@ -0,0 +1,61 @@
+                            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
new file mode 100644 (file)
index 0000000..88de575
--- /dev/null
@@ -0,0 +1,207 @@
+                            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
new file mode 100644 (file)
index 0000000..c021f52
--- /dev/null
@@ -0,0 +1,138 @@
+                            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
new file mode 100644 (file)
index 0000000..8d669d2
--- /dev/null
@@ -0,0 +1,96 @@
+                            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
new file mode 100644 (file)
index 0000000..d47bc1a
--- /dev/null
@@ -0,0 +1,65 @@
+                            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
new file mode 100644 (file)
index 0000000..b706505
--- /dev/null
@@ -0,0 +1,307 @@
+                            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
new file mode 100644 (file)
index 0000000..d887f6e
--- /dev/null
@@ -0,0 +1,95 @@
+                            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
new file mode 100644 (file)
index 0000000..a0f065a
--- /dev/null
@@ -0,0 +1,52 @@
+                            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
new file mode 100644 (file)
index 0000000..99e5e70
--- /dev/null
@@ -0,0 +1,85 @@
+                            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
new file mode 100644 (file)
index 0000000..d729aaf
--- /dev/null
@@ -0,0 +1,98 @@
+                            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
new file mode 100644 (file)
index 0000000..647bd1f
--- /dev/null
@@ -0,0 +1,343 @@
+                            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
new file mode 100644 (file)
index 0000000..8c7e328
--- /dev/null
@@ -0,0 +1,183 @@
+                            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
new file mode 100644 (file)
index 0000000..003489c
--- /dev/null
@@ -0,0 +1,72 @@
+                            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
new file mode 100644 (file)
index 0000000..d3679e6
--- /dev/null
@@ -0,0 +1,126 @@
+                            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
new file mode 100644 (file)
index 0000000..34a6394
--- /dev/null
@@ -0,0 +1,51 @@
+                            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
new file mode 100644 (file)
index 0000000..1575f37
--- /dev/null
@@ -0,0 +1,77 @@
+                            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
new file mode 100644 (file)
index 0000000..4d53d89
--- /dev/null
@@ -0,0 +1,79 @@
+                            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
new file mode 100644 (file)
index 0000000..ba7de50
--- /dev/null
@@ -0,0 +1,82 @@
+                            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
new file mode 100644 (file)
index 0000000..5e110cb
--- /dev/null
@@ -0,0 +1,85 @@
+                            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
new file mode 100644 (file)
index 0000000..e818294
--- /dev/null
@@ -0,0 +1,60 @@
+                            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
new file mode 100644 (file)
index 0000000..9de2085
--- /dev/null
@@ -0,0 +1,52 @@
+                            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
new file mode 100644 (file)
index 0000000..3f12c28
--- /dev/null
@@ -0,0 +1,50 @@
+                            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
new file mode 100644 (file)
index 0000000..6c96fb9
--- /dev/null
@@ -0,0 +1,62 @@
+                            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
new file mode 100644 (file)
index 0000000..5e53e29
--- /dev/null
@@ -0,0 +1,47 @@
+                            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
new file mode 100644 (file)
index 0000000..0d69810
--- /dev/null
@@ -0,0 +1,88 @@
+                            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
new file mode 100644 (file)
index 0000000..4f08162
--- /dev/null
@@ -0,0 +1,74 @@
+                            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
new file mode 100644 (file)
index 0000000..55506ba
--- /dev/null
@@ -0,0 +1,159 @@
+                            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
new file mode 100644 (file)
index 0000000..ef22e60
--- /dev/null
@@ -0,0 +1,44 @@
+                            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
new file mode 100644 (file)
index 0000000..376bd93
--- /dev/null
@@ -0,0 +1,110 @@
+                            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
new file mode 100644 (file)
index 0000000..842b1b5
--- /dev/null
@@ -0,0 +1,80 @@
+                            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
new file mode 100644 (file)
index 0000000..c225a5a
--- /dev/null
@@ -0,0 +1,175 @@
+                            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
new file mode 100644 (file)
index 0000000..50b85bb
--- /dev/null
@@ -0,0 +1,47 @@
+                            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
new file mode 100644 (file)
index 0000000..3c05c04
--- /dev/null
@@ -0,0 +1,154 @@
+                            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
new file mode 100644 (file)
index 0000000..4c9f4d6
--- /dev/null
@@ -0,0 +1,48 @@
+                            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
new file mode 100644 (file)
index 0000000..5a51843
--- /dev/null
@@ -0,0 +1,62 @@
+                            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
new file mode 100644 (file)
index 0000000..3e7a392
--- /dev/null
@@ -0,0 +1,150 @@
+                            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
new file mode 100644 (file)
index 0000000..68b91ff
--- /dev/null
@@ -0,0 +1,50 @@
+                            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
new file mode 100644 (file)
index 0000000..78aaf01
--- /dev/null
@@ -0,0 +1,47 @@
+                            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
new file mode 100644 (file)
index 0000000..b8272b1
--- /dev/null
@@ -0,0 +1,65 @@
+                            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
new file mode 100644 (file)
index 0000000..551dade
--- /dev/null
@@ -0,0 +1,56 @@
+                            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
new file mode 100644 (file)
index 0000000..469c4c8
--- /dev/null
@@ -0,0 +1,64 @@
+                            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
new file mode 100644 (file)
index 0000000..aef537e
--- /dev/null
@@ -0,0 +1,56 @@
+                            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
new file mode 100644 (file)
index 0000000..404fbd6
--- /dev/null
@@ -0,0 +1,46 @@
+                            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/binutils-2.18-configure-1.patch b/src/patches/binutils-2.18-configure-1.patch
deleted file mode 100644 (file)
index ae6aaa3..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-Submitted By: Matt Burgess (matthew at linuxfromscratch dot org)
-Date: 2007-11-19
-Initial Package Version: 2.18
-Origin: Upstream (http://sourceware.org/cgi-bin/cvsweb.cgi/src/configure.diff?r1=1.268&r2=1.268.2.1&cvsroot=src)
-Upstream Status: Applied
-Description: Fixes the configure script to correctly dictate Texinfo > 4.9.
-
-diff -Naur binutils-2.18.orig/configure binutils-2.18/configure
---- binutils-2.18.orig/configure       2007-08-06 20:29:40.000000000 +0000
-+++ binutils-2.18/configure    2007-11-18 22:37:58.000000000 +0000
-@@ -6128,7 +6128,7 @@
-     # For an installed makeinfo, we require it to be from texinfo 4.4 or
-     # higher, else we use the "missing" dummy.
-     if ${MAKEINFO} --version \
--       | egrep 'texinfo[^0-9]*([1-3][0-9]|4\.[4-9]|[5-9])' >/dev/null 2>&1; then
-+       | egrep 'texinfo[^0-9]*(4\.([4-9]|[1-9][0-9])|[5-9]|[1-9][0-9])' >/dev/null 2>&1; then
-       :
-     else
-       MAKEINFO="$MISSING makeinfo"
diff --git a/src/patches/ccache-3.1.6-no_compiler_mtime.patch b/src/patches/ccache-3.1.6-no_compiler_mtime.patch
deleted file mode 100644 (file)
index fd921cd..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -Naur ccache-3.1.org/ccache.c ccache-3.1/ccache.c
---- ccache-3.1.org/ccache.c    2010-09-16 19:01:09.000000000 +0200
-+++ ccache-3.1/ccache.c        2010-10-21 21:41:08.000000000 +0200
-@@ -805,13 +805,16 @@
-        */
-       compilercheck = getenv("CCACHE_COMPILERCHECK");
-       if (!compilercheck) {
--              compilercheck = "mtime";
-+              compilercheck = "size";
-       }
-       if (str_eq(compilercheck, "none")) {
-               /* Do nothing. */
-       } else if (str_eq(compilercheck, "content")) {
-               hash_delimiter(hash, "cc_content");
-               hash_file(hash, args->argv[0]);
-+      } else if (str_eq(compilercheck, "size")) {
-+              hash_delimiter(hash, "cc_size");
-+              hash_int(hash, st.st_size);
-       } else if (str_eq(compilercheck, "mtime")) {
-               hash_delimiter(hash, "cc_mtime");
-               hash_int(hash, st.st_size);
diff --git a/src/patches/compat-wireless-3.5-build_ath5k_only_with_pci.patch b/src/patches/compat-wireless-3.5-build_ath5k_only_with_pci.patch
new file mode 100644 (file)
index 0000000..2e82157
--- /dev/null
@@ -0,0 +1,16 @@
+diff -Naur compat-wireless-3.5-1-snpc.org/config.mk compat-wireless-3.5/config.mk
+--- compat-wireless-3.5-1-snpc.org/config.mk   2012-07-31 17:22:29.000000000 -0400
++++ compat-wireless-3.5/config.mk      2012-08-13 13:09:55.913234600 -0400
+@@ -246,10 +246,12 @@
+ # mac80211 test driver
+ export CONFIG_MAC80211_HWSIM=m
++ifdef CONFIG_PCI
+ export CONFIG_ATH5K=m
+ # export CONFIG_ATH5K_DEBUG=y
+ # export CONFIG_ATH5K_TRACER=y
+ # export CONFIG_ATH5K_AHB=y
++endif #CONFIG_PCI
+ export CONFIG_ATH9K=m
+ export CONFIG_ATH9K_HW=m
similarity index 97%
rename from src/patches/compat-wireless-3.0-libertas_uap.patch
rename to src/patches/compat-wireless-3.5-libertas_uap.patch
index 77bab835ddf9c26ef9aed893e923a2e696cef4e6..633bb67720694ad3e0cef778bcd4b55e9d088b67 100644 (file)
@@ -1,6 +1,6 @@
-diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/Makefile compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/Makefile
---- compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/Makefile       1970-01-01 01:00:00.000000000 +0100
-+++ compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/Makefile   2011-10-21 11:13:58.697110085 +0200
+diff -Naur compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/Makefile compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/Makefile
+--- compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/Makefile      1970-01-01 01:00:00.000000000 +0100
++++ compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/Makefile  2012-07-31 14:23:04.000000000 +0200
 @@ -0,0 +1,6 @@
 +obj-$(CONFIG_LIBERTAS_UAP) += uap8xxx.o
 +
@@ -8,9 +8,9 @@ diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/Makefile
 +uap8xxx-$(CONFIG_PROC_FS) += uap_proc.o uap_debug.o
 +
 +EXTRA_CFLAGS += -DFPNUM='"52"' -DPXA3XX_DMA_ALIGN -DDEBUG_LEVEL1
-diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_debug.c compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/uap_debug.c
---- compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_debug.c    1970-01-01 01:00:00.000000000 +0100
-+++ compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/uap_debug.c        2011-10-21 11:13:58.707113466 +0200
+diff -Naur compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/uap_debug.c compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/uap_debug.c
+--- compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/uap_debug.c   1970-01-01 01:00:00.000000000 +0100
++++ compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/uap_debug.c       2012-07-31 14:23:04.000000000 +0200
 @@ -0,0 +1,261 @@
 +/** @file uap_debug.c
 +  * @brief This file contains functions for debug proc file.
@@ -273,9 +273,9 @@ diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_debug
 +}
 +
 +#endif
-diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_drv.h compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/uap_drv.h
---- compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_drv.h      1970-01-01 01:00:00.000000000 +0100
-+++ compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/uap_drv.h  2011-10-21 11:13:58.717113637 +0200
+diff -Naur compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/uap_drv.h compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/uap_drv.h
+--- compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/uap_drv.h     1970-01-01 01:00:00.000000000 +0100
++++ compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/uap_drv.h 2012-07-31 14:23:04.000000000 +0200
 @@ -0,0 +1,667 @@
 +/** @file uap_drv.h
 +  * @brief This file contains Linux OS related definitions and
@@ -944,9 +944,9 @@ diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_drv.h
 +int sbi_wakeup_firmware(uap_private * priv);
 +
 +#endif /* _UAP_DRV_H */
-diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_fw.h compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/uap_fw.h
---- compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_fw.h       1970-01-01 01:00:00.000000000 +0100
-+++ compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/uap_fw.h   2011-10-21 11:13:58.727115088 +0200
+diff -Naur compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/uap_fw.h compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/uap_fw.h
+--- compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/uap_fw.h      1970-01-01 01:00:00.000000000 +0100
++++ compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/uap_fw.h  2012-07-31 14:23:04.000000000 +0200
 @@ -0,0 +1,359 @@
 +/** @file uap_fw.h
 + *
@@ -1307,9 +1307,9 @@ diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_fw.h
 +    u8 MacAddr[ETH_ALEN];
 +} __ATTRIB_PACK__ AP_Event;
 +#endif /* _UAP_FW_H */
-diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_headers.h compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/uap_headers.h
---- compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_headers.h  1970-01-01 01:00:00.000000000 +0100
-+++ compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/uap_headers.h      2011-10-21 11:13:58.727115088 +0200
+diff -Naur compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/uap_headers.h compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/uap_headers.h
+--- compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/uap_headers.h 1970-01-01 01:00:00.000000000 +0100
++++ compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/uap_headers.h     2012-07-31 14:23:04.000000000 +0200
 @@ -0,0 +1,64 @@
 +/** @file uap_headers.h
 + *
@@ -1375,10 +1375,10 @@ diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_heade
 +#include "uap_sdio_mmc.h"
 +
 +#endif /* _UAP_HEADERS_H */
-diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_main.c compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/uap_main.c
---- compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_main.c     1970-01-01 01:00:00.000000000 +0100
-+++ compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/uap_main.c 2011-10-21 11:13:58.767112032 +0200
-@@ -0,0 +1,1830 @@
+diff -Naur compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/uap_main.c compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/uap_main.c
+--- compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/uap_main.c    1970-01-01 01:00:00.000000000 +0100
++++ compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/uap_main.c        2012-07-31 14:25:28.473230753 +0200
+@@ -0,0 +1,1815 @@
 +/** @file uap_main.c
 +  * @brief This file contains the major functions in uAP
 +  * driver. It includes init, exit etc..
@@ -2703,20 +2703,6 @@ diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_main.
 +}
 +
 +/**
-+ *  @brief This function sets multicast addresses to firmware
-+ *
-+ *  @param dev     A pointer to net_device structure
-+ *  @return        n/a
-+ */
-+static void
-+uap_set_multicast_list(struct net_device *dev)
-+{
-+    ENTER();
-+#warning uap_set_multicast_list not implemented. Expect problems with IPv6.
-+    LEAVE();
-+}
-+
-+/**
 + *  @brief This function handles the timeout of packet
 + *  transmission
 + *
@@ -2939,7 +2925,6 @@ diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_main.
 +    .ndo_set_mac_address = uap_set_mac_address,
 +    .ndo_tx_timeout = uap_tx_timeout,
 +    .ndo_get_stats = uap_get_stats,
-+    .ndo_set_multicast_list = uap_set_multicast_list,
 +};
 +#endif
 +
@@ -3209,10 +3194,10 @@ diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_main.
 +MODULE_AUTHOR("Marvell International Ltd.");
 +MODULE_VERSION(DRIVER_VERSION);
 +MODULE_LICENSE("GPL");
-diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_proc.c compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/uap_proc.c
---- compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_proc.c     1970-01-01 01:00:00.000000000 +0100
-+++ compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/uap_proc.c 2011-10-21 11:32:37.857111835 +0200
-@@ -0,0 +1,302 @@
+diff -Naur compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/uap_proc.c compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/uap_proc.c
+--- compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/uap_proc.c    1970-01-01 01:00:00.000000000 +0100
++++ compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/uap_proc.c        2012-07-31 14:23:04.000000000 +0200
+@@ -0,0 +1,296 @@
 +/** @file uap_proc.c
 +  * @brief This file contains functions for proc file.
 +  *
@@ -3308,15 +3293,9 @@ diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_proc.
 +        p += sprintf(p,
 +                     "MCAddr[%d]=\"%02x:%02x:%02x:%02x:%02x:%02x\"\n",
 +                     i++,
-+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35))
 +                     ha->addr[0], ha->addr[1],
 +                     ha->addr[2], ha->addr[3],
 +                     ha->addr[4], ha->addr[5]);
-+#else
-+                     ha->dmi_addr[0], ha->dmi_addr[1],
-+                     ha->dmi_addr[2], ha->dmi_addr[3],
-+                     ha->dmi_addr[4], ha->dmi_addr[5]);
-+#endif
 +    }
 +
 +    p += sprintf(p, "num_tx_bytes = %lu\n", priv->stats.tx_bytes);
@@ -3515,9 +3494,9 @@ diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_proc.
 +}
 +
 +#endif
-diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_sdio_mmc.c compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/uap_sdio_mmc.c
---- compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_sdio_mmc.c 1970-01-01 01:00:00.000000000 +0100
-+++ compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/uap_sdio_mmc.c     2011-10-21 11:13:58.807113416 +0200
+diff -Naur compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/uap_sdio_mmc.c compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/uap_sdio_mmc.c
+--- compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/uap_sdio_mmc.c        1970-01-01 01:00:00.000000000 +0100
++++ compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/uap_sdio_mmc.c    2012-07-31 14:23:04.000000000 +0200
 @@ -0,0 +1,1428 @@
 +/** @file uap_sdio_mmc.c
 + *  @brief This file contains SDIO IF (interface) module
@@ -4947,9 +4926,9 @@ diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_sdio_
 +    LEAVE();
 +    return ret;
 +}
-diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_sdio_mmc.h compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/uap_sdio_mmc.h
---- compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_sdio_mmc.h 1970-01-01 01:00:00.000000000 +0100
-+++ compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/uap_sdio_mmc.h     2011-10-21 11:13:58.807113416 +0200
+diff -Naur compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/uap_sdio_mmc.h compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/uap_sdio_mmc.h
+--- compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/uap_sdio_mmc.h        1970-01-01 01:00:00.000000000 +0100
++++ compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/uap_sdio_mmc.h    2012-07-31 14:23:04.000000000 +0200
 @@ -0,0 +1,136 @@
 +/** @file uap_sdio_mmc.h
 + *  @brief This file contains SDIO IF (interface) module
@@ -5087,9 +5066,9 @@ diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_sdio_
 +};
 +
 +#endif /* _UAP_SDIO_MMC_H */
-diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/Makefile compat-wireless-3.0-2/drivers/net/wireless/Makefile
---- compat-wireless-3.0-2.org/drivers/net/wireless/Makefile    2011-07-28 00:47:28.000000000 +0200
-+++ compat-wireless-3.0-2/drivers/net/wireless/Makefile        2011-10-21 11:13:58.697110085 +0200
+diff -Naur compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/Makefile compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/Makefile
+--- compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/Makefile   2012-07-05 03:48:01.000000000 +0200
++++ compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/Makefile       2012-07-31 14:20:01.343608619 +0200
 @@ -22,6 +22,8 @@
  
  obj-$(CONFIG_LIBERTAS_THINFIRM)       += libertas_tf/
diff --git a/src/patches/compat-wireless_codel-avoid-a-nul-rec_inv_sqrt.patch b/src/patches/compat-wireless_codel-avoid-a-nul-rec_inv_sqrt.patch
new file mode 100644 (file)
index 0000000..210a58c
--- /dev/null
@@ -0,0 +1,68 @@
+From patchwork Mon Jul 30 06:52:21 2012
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Subject: codel: refine one condition to avoid a nul rec_inv_sqrt
+Date: Sun, 29 Jul 2012 20:52:21 -0000
+From: Eric Dumazet <eric.dumazet@gmail.com>
+X-Patchwork-Id: 173968
+Message-Id: <1343631141.2626.13293.camel@edumazet-glaptop>
+To: David Miller <davem@davemloft.net>
+Cc: netdev <netdev@vger.kernel.org>, Anton Mich <lp2s1h@gmail.com>
+
+From: Eric Dumazet <edumazet@google.com>
+
+One condition before codel_Newton_step() was not good if
+we never left the dropping state for a flow. As a result
+rec_inv_sqrt was 0, instead of the ~0 initial value.
+
+codel control law was then set to a very aggressive mode, dropping
+many packets before reaching 'target' and recovering from this problem.
+
+To keep codel_vars_init() as efficient as possible, refine
+the condition to make sure rec_inv_sqrt initial value is correct
+
+Many thanks to Anton Mich for discovering the issue and suggesting
+a fix.
+
+Reported-by: Anton Mich <lp2s1h@gmail.com>
+Signed-off-by: Eric Dumazet <edumazet@google.com>
+
+---
+include/net/codel.h |    8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+
+
+--
+To unsubscribe from this list: send the line "unsubscribe netdev" in
+the body of a message to majordomo@vger.kernel.org
+More majordomo info at  http://vger.kernel.org/majordomo-info.html
+
+diff --git a/include/net/codel.h b/include/net/codel.h
+index 550debf..389cf62 100644
+--- a/include/net/codel.h
++++ b/include/net/codel.h
+@@ -305,6 +305,8 @@ static struct sk_buff *codel_dequeue(struct Qdisc *sch,
+                       }
+               }
+       } else if (drop) {
++              u32 delta;
++
+               if (params->ecn && INET_ECN_set_ce(skb)) {
+                       stats->ecn_mark++;
+               } else {
+@@ -320,9 +322,11 @@ static struct sk_buff *codel_dequeue(struct Qdisc *sch,
+                * assume that the drop rate that controlled the queue on the
+                * last cycle is a good starting point to control it now.
+                */
+-              if (codel_time_before(now - vars->drop_next,
++              delta = vars->count - vars->lastcount;
++              if (delta > 1 &&
++                  codel_time_before(now - vars->drop_next,
+                                     16 * params->interval)) {
+-                      vars->count = (vars->count - vars->lastcount) | 1;
++                      vars->count = delta;
+                       /* we dont care if rec_inv_sqrt approximation
+                        * is not very precise :
+                        * Next Newton steps will correct it quadratically.
diff --git a/src/patches/coreutils-5.96-futimes.patch b/src/patches/coreutils-5.96-futimes.patch
new file mode 100644 (file)
index 0000000..e91f1df
--- /dev/null
@@ -0,0 +1,56 @@
+--- 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/cyrus-sasl-2.1.22-bad-elif.patch b/src/patches/cyrus-sasl-2.1.22-bad-elif.patch
new file mode 100644 (file)
index 0000000..33550c4
--- /dev/null
@@ -0,0 +1,21 @@
+diff -up cyrus-sasl-2.1.22/plugins/digestmd5.c.elif cyrus-sasl-2.1.22/plugins/digestmd5.c
+--- cyrus-sasl-2.1.22/plugins/digestmd5.c.elif 2009-01-23 09:40:31.000000000 +0100
++++ cyrus-sasl-2.1.22/plugins/digestmd5.c      2009-02-06 15:20:15.000000000 +0100
+@@ -2743,7 +2743,7 @@ static sasl_server_plug_t digestmd5_serv
+       "DIGEST-MD5",                   /* mech_name */
+ #ifdef WITH_RC4
+       128,                            /* max_ssf */
+-#elif WITH_DES
++#elif defined(WITH_DES)
+       112,
+ #else 
+       1,
+@@ -4071,7 +4071,7 @@ static sasl_client_plug_t digestmd5_clie
+       "DIGEST-MD5",
+ #ifdef WITH_RC4                               /* mech_name */
+       128,                            /* max ssf */
+-#elif WITH_DES
++#elif defined(WITH_DES)
+       112,
+ #else
+       1,
diff --git a/src/patches/dbus-1.0.3-compile-fix-1.patch b/src/patches/dbus-1.0.3-compile-fix-1.patch
new file mode 100644 (file)
index 0000000..86fd2b3
--- /dev/null
@@ -0,0 +1,11 @@
+--- dbus-1.0.1.orig/dbus/dbus-sysdeps-unix.c   2009-01-01 03:50:33.000000000 +0200
++++ dbus-1.0.1.orig/dbus/dbus-sysdeps-unix.c   2009-01-01 04:09:24.000000000 +0200
+@@ -992,7 +992,7 @@ 
+   _dbus_verbose ("read credentials byte\n");
+   {
+-#ifdef SO_PEERCRED
++#if defined(SO_PEERCRED) && defined(HAVE_GETPEERUCRED)
+     struct ucred cr;   
+     int cr_len = sizeof (cr);
+    
diff --git a/src/patches/dhcp-3.1_linux3.patch b/src/patches/dhcp-3.1_linux3.patch
new file mode 100644 (file)
index 0000000..44edb41
--- /dev/null
@@ -0,0 +1,11 @@
+diff -Naur dhcp-3.1-ESV-R3.org/configure dhcp-3.1-ESV-R3/configure
+--- dhcp-3.1-ESV-R3.org/configure      2005-03-17 21:14:55.000000000 +0100
++++ dhcp-3.1-ESV-R3/configure  2012-06-17 12:19:29.000000000 +0200
+@@ -104,6 +104,7 @@
+            2) sysname=linux-2.2 ;;
+            *) sysname=linux-2.2 ;;
+          esac;;
++      3) sysname=linux-2.2 ;;
+       esac;;
+     SunOS)
+       release=`uname -r`
diff --git a/src/patches/directfb-1.1.1-fix-mknod.patch b/src/patches/directfb-1.1.1-fix-mknod.patch
new file mode 100644 (file)
index 0000000..97633e2
--- /dev/null
@@ -0,0 +1,26 @@
+Description: directfb ftbfs on armel. Implicit declaration error
+ Fix for ARM builds failing on:
+  ../../../gfxdrivers/davinci/davinci_c64x.c: In function 'davinci_c64x_open':
+  ../../../gfxdrivers/davinci/davinci_c64x.c:1900:6: error: implicit declaration of function 'mknod' [-Werror=implicit-function-declaration]
+  cc1: some warnings being treated as errors
+ .
+ directfb (1.2.10.0-4.3) unstable; urgency=low
+ .
+   * Non-maintainer upload.
+   * Fix "directfb ftbfs on armel. Implicit declaration error"
+     - Thanks Peter Green for bug report and patch (Closes: #644782)
+   * Remove m4 macros when calling clean target
+Author: Hector Oron <zumbi@debian.org>
+Bug-Debian: http://bugs.debian.org/644782
+
+--- directfb-1.2.10.0.orig/gfxdrivers/davinci/davinci_c64x.c
++++ directfb-1.2.10.0/gfxdrivers/davinci/davinci_c64x.c
+@@ -37,6 +37,8 @@
+ #include <sys/ioctl.h>
+ #include <sys/mman.h>
+ #include <sys/types.h>
++#include <sys/stat.h>
++
+ #include <unistd.h>
+ #include <directfb_util.h>
diff --git a/src/patches/gcc-4.0.4-specs-1.patch b/src/patches/gcc-4.0.4-specs-1.patch
deleted file mode 100644 (file)
index 46521e1..0000000
+++ /dev/null
@@ -1,336 +0,0 @@
-Submitted By: Robert Connolly <robert at linuxfromscratch dot org> (ashes)
-Date: 2006-01-16
-Initial Package Version: 4.0.0
-Upstream Status: Not Sent - LFS Specfic
-Origin: Idea originally developed by Ryan Oliver and Greg Schafer for
-       the Pure LFS project.
-       More architectures added by Zack Winkles.
-       Further fine tunings by Greg Schafer.
-       Modified for gcc 3.3.2 by Oliver Brakmann.
-Rediffed against gcc 3.4.0 by Zack Winkles.
-       Rediffed against gcc 3.4.3 by Jim Gifford.
-       Rediffed against gcc 4.0.0 by Robert Connolly.
-Description: This patch modifies the location of the dynamic linker for
-       the GCC Pass 2 build in LFS Chapter 5.
-
-diff -Naur gcc-20050116.orig/gcc/config/alpha/linux-elf.h gcc-20050116/gcc/config/alpha/linux-elf.h
---- gcc-20050116.orig/gcc/config/alpha/linux-elf.h     2005-01-17 00:45:16.000000000 +0000
-+++ gcc-20050116/gcc/config/alpha/linux-elf.h  2005-01-17 00:46:14.560651027 +0000
-@@ -27,7 +27,7 @@
- #define SUBTARGET_EXTRA_SPECS \
- { "elf_dynamic_linker", ELF_DYNAMIC_LINKER },
--#define ELF_DYNAMIC_LINKER    "/lib/ld-linux.so.2"
-+#define ELF_DYNAMIC_LINKER    "/tools/lib/ld-linux.so.2"
- #define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax}                \
-   %{O*:-O3} %{!O*:-O1}                                                \
-diff -Naur gcc-20050116.orig/gcc/config/arm/linux-elf.h gcc-20050116/gcc/config/arm/linux-elf.h
---- gcc-20050116.orig/gcc/config/arm/linux-elf.h       2005-01-17 00:45:16.000000000 +0000
-+++ gcc-20050116/gcc/config/arm/linux-elf.h    2005-01-17 00:46:50.538578614 +0000
-@@ -87,7 +87,7 @@
-    %{shared:-shared} \
-    %{symbolic:-Bsymbolic} \
-    %{rdynamic:-export-dynamic} \
--   %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2} \
-+   %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2} \
-    -X \
-    %{mbig-endian:-EB}" \
-    SUBTARGET_EXTRA_LINK_SPEC
-diff -Naur gcc-20050116.orig/gcc/config/frv/linux.h gcc-20050116/gcc/config/frv/linux.h
---- gcc-20050116.orig/gcc/config/frv/linux.h   2005-01-17 00:45:16.000000000 +0000
-+++ gcc-20050116/gcc/config/frv/linux.h        2005-01-17 01:33:50.600805260 +0000
-@@ -41,7 +41,7 @@
-   %{mfdpic: -m elf32frvfd -z text} %{shared} %{pie} \
-   %{!shared: %{!static: \
-    %{rdynamic:-export-dynamic} \
--   %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \
-+   %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}} \
-    %{static}}"
- /* Support for compile-time default CPU.  */
-diff -Naur gcc-20050116.orig/gcc/config/i386/gnu.h gcc-20050116/gcc/config/i386/gnu.h
---- gcc-20050116.orig/gcc/config/i386/gnu.h    2005-01-17 00:45:16.000000000 +0000
-+++ gcc-20050116/gcc/config/i386/gnu.h 2005-01-17 01:34:11.142021939 +0000
-@@ -27,7 +27,7 @@
-   %{!shared: \
-     %{!static: \
-       %{rdynamic:-export-dynamic} \
--      %{!dynamic-linker:-dynamic-linker /lib/ld.so}} \
-+      %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so}} \
-     %{static:-static}}"
- #undef        STARTFILE_SPEC
-diff -Naur gcc-20050116.orig/gcc/config/i386/linux.h gcc-20050116/gcc/config/i386/linux.h
---- gcc-20050116.orig/gcc/config/i386/linux.h  2005-01-17 00:45:16.000000000 +0000
-+++ gcc-20050116/gcc/config/i386/linux.h       2005-01-17 00:49:27.412667132 +0000
-@@ -105,7 +105,7 @@
- /* If ELF is the default format, we should not use /lib/elf.  */
- #define LINK_EMULATION "elf_i386"
--#define DYNAMIC_LINKER "/lib/ld-linux.so.2"
-+#define DYNAMIC_LINKER "/tools/lib/ld-linux.so.2"
- #undef  SUBTARGET_EXTRA_SPECS
- #define SUBTARGET_EXTRA_SPECS \
-diff -Naur gcc-20050116.orig/gcc/config/i386/linux64.h gcc-20050116/gcc/config/i386/linux64.h
---- gcc-20050116.orig/gcc/config/i386/linux64.h        2005-01-17 00:45:16.000000000 +0000
-+++ gcc-20050116/gcc/config/i386/linux64.h     2005-01-17 00:50:23.055094690 +0000
-@@ -60,8 +60,8 @@
-   %{!shared: \
-     %{!static: \
-       %{rdynamic:-export-dynamic} \
--      %{m32:%{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
--      %{!m32:%{!dynamic-linker:-dynamic-linker /lib64/ld-linux-x86-64.so.2}}} \
-+      %{m32:%{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}} \
-+      %{!m32:%{!dynamic-linker:-dynamic-linker /tools/lib64/ld-linux-x86-64.so.2}}} \
-     %{static:-static}}"
- #define MULTILIB_DEFAULTS { "m64" }
-diff -Naur gcc-20050116.orig/gcc/config/ia64/linux.h gcc-20050116/gcc/config/ia64/linux.h
---- gcc-20050116.orig/gcc/config/ia64/linux.h  2005-01-17 00:45:17.000000000 +0000
-+++ gcc-20050116/gcc/config/ia64/linux.h       2005-01-17 00:50:43.146472133 +0000
-@@ -43,7 +43,7 @@
-   %{!shared: \
-     %{!static: \
-       %{rdynamic:-export-dynamic} \
--      %{!dynamic-linker:-dynamic-linker /lib/ld-linux-ia64.so.2}} \
-+      %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux-ia64.so.2}} \
-       %{static:-static}}"
-diff -Naur gcc-20050116.orig/gcc/config/linux.h gcc-20050116/gcc/config/linux.h
---- gcc-20050116.orig/gcc/config/linux.h       2005-01-17 00:45:16.000000000 +0000
-+++ gcc-20050116/gcc/config/linux.h    2005-01-17 00:51:14.101809663 +0000
-@@ -104,3 +104,7 @@
- #define TARGET_C99_FUNCTIONS 1
- #define TARGET_HAS_F_SETLKW
-+
-+/* Remove /usr/include from the end of the include search path.  */
-+#undef STANDARD_INCLUDE_DIR
-+#define STANDARD_INCLUDE_DIR 0
-diff -Naur gcc-20050116.orig/gcc/config/m32r/linux.h gcc-20050116/gcc/config/m32r/linux.h
---- gcc-20050116.orig/gcc/config/m32r/linux.h  2005-01-17 00:45:17.000000000 +0000
-+++ gcc-20050116/gcc/config/m32r/linux.h       2005-01-17 00:51:39.720640870 +0000
-@@ -66,7 +66,7 @@
-     %{!ibcs: \
-       %{!static: \
-       %{rdynamic:-export-dynamic} \
--      %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
-+      %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}} \
-       %{static:-static}}}"
- #else
- #define LINK_SPEC "%(link_cpu) -m m32relf_linux %{shared:-shared} \
-@@ -74,7 +74,7 @@
-     %{!ibcs: \
-       %{!static: \
-       %{rdynamic:-export-dynamic} \
--      %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
-+      %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}} \
-       %{static:-static}}}"
- #endif
-diff -Naur gcc-20050116.orig/gcc/config/m68k/linux.h gcc-20050116/gcc/config/m68k/linux.h
---- gcc-20050116.orig/gcc/config/m68k/linux.h  2005-01-17 00:45:17.000000000 +0000
-+++ gcc-20050116/gcc/config/m68k/linux.h       2005-01-17 00:52:07.633830392 +0000
-@@ -132,7 +132,7 @@
-   %{!shared: \
-     %{!static: \
-       %{rdynamic:-export-dynamic} \
--      %{!dynamic-linker*:-dynamic-linker /lib/ld.so.1}} \
-+      %{!dynamic-linker*:-dynamic-linker /tools/lib/ld.so.1}} \
-     %{static}}"
- /* For compatibility with linux/a.out */
-diff -Naur gcc-20050116.orig/gcc/config/mips/linux.h gcc-20050116/gcc/config/mips/linux.h
---- gcc-20050116.orig/gcc/config/mips/linux.h  2005-01-17 00:45:17.000000000 +0000
-+++ gcc-20050116/gcc/config/mips/linux.h       2005-01-17 00:52:28.348034505 +0000
-@@ -115,7 +115,7 @@
-     %{!ibcs: \
-       %{!static: \
-         %{rdynamic:-export-dynamic} \
--        %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \
-+        %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}} \
-         %{static:-static}}}"
- #undef SUBTARGET_ASM_SPEC
-diff -Naur gcc-20050116.orig/gcc/config/mips/linux64.h gcc-20050116/gcc/config/mips/linux64.h
---- gcc-20050116.orig/gcc/config/mips/linux64.h        2005-01-17 00:45:17.000000000 +0000
-+++ gcc-20050116/gcc/config/mips/linux64.h     2005-01-17 00:53:04.645878728 +0000
-@@ -60,9 +60,9 @@
-       %{!static: \
-         %{rdynamic:-export-dynamic} \
-         %{!dynamic-linker: \
--        %{mabi=n32: -dynamic-linker /lib32/ld.so.1} \
--        %{mabi=64: -dynamic-linker /lib64/ld.so.1} \
--        %{mabi=32: -dynamic-linker /lib/ld.so.1}}} \
-+        %{mabi=n32: -dynamic-linker /tools/lib32/ld.so.1} \
-+        %{mabi=64: -dynamic-linker /tools/lib64/ld.so.1} \
-+        %{mabi=32: -dynamic-linker /tools/lib/ld.so.1}}} \
-       %{static:-static}}} \
- %{mabi=n32:-melf32%{EB:b}%{EL:l}tsmipn32} \
- %{mabi=64:-melf64%{EB:b}%{EL:l}tsmip} \
-diff -Naur gcc-20050116.orig/gcc/config/mn10300/linux.h gcc-20050116/gcc/config/mn10300/linux.h
---- gcc-20050116.orig/gcc/config/mn10300/linux.h       2005-01-17 00:45:17.000000000 +0000
-+++ gcc-20050116/gcc/config/mn10300/linux.h    2005-01-17 00:53:23.477610026 +0000
-@@ -37,7 +37,7 @@
- #define LINK_SPEC "%{mrelax:--relax} %{shared:-shared} \
-    %{!static: \
-      %{rdynamic:-export-dynamic} \
--     %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \
-+     %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}} \
-    %{static:-static}"
- #undef  LIB_SPEC
-diff -Naur gcc-20050116.orig/gcc/config/pa/pa-linux.h gcc-20050116/gcc/config/pa/pa-linux.h
---- gcc-20050116.orig/gcc/config/pa/pa-linux.h 2005-01-17 00:45:17.000000000 +0000
-+++ gcc-20050116/gcc/config/pa/pa-linux.h      2005-01-17 00:53:45.334495141 +0000
-@@ -88,7 +88,7 @@
-   %{!shared: \
-     %{!static: \
-       %{rdynamic:-export-dynamic} \
--      %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \
-+      %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}} \
-       %{static:-static}}"
- /* glibc's profiling functions don't need gcc to allocate counters.  */
-diff -Naur gcc-20050116.orig/gcc/config/rs6000/linux64.h gcc-20050116/gcc/config/rs6000/linux64.h
---- gcc-20050116.orig/gcc/config/rs6000/linux64.h      2005-01-17 00:45:17.000000000 +0000
-+++ gcc-20050116/gcc/config/rs6000/linux64.h   2005-01-17 00:54:28.524412534 +0000
-@@ -351,11 +351,11 @@
- #define LINK_OS_LINUX_SPEC32 "-m elf32ppclinux %{!shared: %{!static: \
-   %{rdynamic:-export-dynamic} \
--  %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}}}"
-+  %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}}}"
- #define LINK_OS_LINUX_SPEC64 "-m elf64ppc %{!shared: %{!static: \
-   %{rdynamic:-export-dynamic} \
--  %{!dynamic-linker:-dynamic-linker /lib64/ld64.so.1}}}"
-+  %{!dynamic-linker:-dynamic-linker /tools/lib64/ld64.so.1}}}"
- #undef  TOC_SECTION_ASM_OP
- #define TOC_SECTION_ASM_OP \
-diff -Naur gcc-20050116.orig/gcc/config/rs6000/sysv4.h gcc-20050116/gcc/config/rs6000/sysv4.h
---- gcc-20050116.orig/gcc/config/rs6000/sysv4.h        2005-01-17 00:45:17.000000000 +0000
-+++ gcc-20050116/gcc/config/rs6000/sysv4.h     2005-01-17 01:26:39.126999460 +0000
-@@ -1131,7 +1131,7 @@
- #define LINK_OS_LINUX_SPEC "-m elf32ppclinux %{!shared: %{!static: \
-   %{rdynamic:-export-dynamic} \
--  %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}}}"
-+  %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}}}"
- #if defined(HAVE_LD_EH_FRAME_HDR)
- # define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
-@@ -1162,7 +1162,7 @@
- #define LINK_OS_GNU_SPEC "-m elf32ppclinux %{!shared: %{!static: \
-   %{rdynamic:-export-dynamic} \
--  %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}}}"
-+  %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}}}"
- #define CPP_OS_GNU_SPEC "-D__unix__ -D__gnu_hurd__ -D__GNU__  \
- %{!undef:                                                     \
-diff -Naur gcc-20050116.orig/gcc/config/s390/linux.h gcc-20050116/gcc/config/s390/linux.h
---- gcc-20050116.orig/gcc/config/s390/linux.h  2005-01-17 00:45:17.000000000 +0000
-+++ gcc-20050116/gcc/config/s390/linux.h       2005-01-17 01:26:58.672523211 +0000
-@@ -86,8 +86,8 @@
-       %{!static: \
-       %{rdynamic:-export-dynamic} \
-       %{!dynamic-linker: \
--          %{m31:-dynamic-linker /lib/ld.so.1} \
--          %{m64:-dynamic-linker /lib/ld64.so.1}}}}"
-+          %{m31:-dynamic-linker /tools/lib/ld.so.1} \
-+          %{m64:-dynamic-linker /tools/lib/ld64.so.1}}}}"
- #define TARGET_ASM_FILE_END file_end_indicate_exec_stack
-diff -Naur gcc-20050116.orig/gcc/config/sh/linux.h gcc-20050116/gcc/config/sh/linux.h
---- gcc-20050116.orig/gcc/config/sh/linux.h    2005-01-17 00:45:18.000000000 +0000
-+++ gcc-20050116/gcc/config/sh/linux.h 2005-01-17 01:27:19.588663163 +0000
-@@ -70,7 +70,7 @@
-   "%{shared:-shared} \
-    %{!static: \
-      %{rdynamic:-export-dynamic} \
--     %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
-+     %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}} \
-    %{static:-static}"
- #undef LIB_SPEC
-diff -Naur gcc-20050116.orig/gcc/config/sparc/linux.h gcc-20050116/gcc/config/sparc/linux.h
---- gcc-20050116.orig/gcc/config/sparc/linux.h 2005-01-17 00:45:18.000000000 +0000
-+++ gcc-20050116/gcc/config/sparc/linux.h      2005-01-17 01:30:07.282688639 +0000
-@@ -131,13 +131,13 @@
- /* If ELF is the default format, we should not use /lib/elf.  */
- #undef  LINK_SPEC
--#define LINK_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \
-+#define LINK_SPEC "-m elf32_sparc -Y P,/tools/lib %{shared:-shared} \
-   %{!mno-relax:%{!r:-relax}} \
-   %{!shared: \
-     %{!ibcs: \
-       %{!static: \
-         %{rdynamic:-export-dynamic} \
--        %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
-+        %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}} \
-         %{static:-static}}}"
- /* The sun bundled assembler doesn't accept -Yd, (and neither does gas).
-diff -Naur gcc-20050116.orig/gcc/config/sparc/linux64.h gcc-20050116/gcc/config/sparc/linux64.h
---- gcc-20050116.orig/gcc/config/sparc/linux64.h       2005-01-17 00:45:18.000000000 +0000
-+++ gcc-20050116/gcc/config/sparc/linux64.h    2005-01-17 01:31:18.242712476 +0000
-@@ -167,21 +167,21 @@
-   { "link_arch_default", LINK_ARCH_DEFAULT_SPEC },      \
-   { "link_arch",       LINK_ARCH_SPEC },
-     
--#define LINK_ARCH32_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \
-+#define LINK_ARCH32_SPEC "-m elf32_sparc -Y P,/tools/lib %{shared:-shared} \
-   %{!shared: \
-     %{!ibcs: \
-       %{!static: \
-         %{rdynamic:-export-dynamic} \
--        %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
-+        %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}} \
-         %{static:-static}}} \
- "
--#define LINK_ARCH64_SPEC "-m elf64_sparc -Y P,/usr/lib64 %{shared:-shared} \
-+#define LINK_ARCH64_SPEC "-m elf64_sparc -Y P,/tools/lib64 %{shared:-shared} \
-   %{!shared: \
-     %{!ibcs: \
-       %{!static: \
-         %{rdynamic:-export-dynamic} \
--        %{!dynamic-linker:-dynamic-linker /lib64/ld-linux.so.2}} \
-+        %{!dynamic-linker:-dynamic-linker /tools/lib64/ld-linux.so.2}} \
-         %{static:-static}}} \
- "
-@@ -257,12 +257,12 @@
- #else /* !SPARC_BI_ARCH */
- #undef LINK_SPEC
--#define LINK_SPEC "-m elf64_sparc -Y P,/usr/lib64 %{shared:-shared} \
-+#define LINK_SPEC "-m elf64_sparc -Y P,/tools/lib64 %{shared:-shared} \
-   %{!shared: \
-     %{!ibcs: \
-       %{!static: \
-         %{rdynamic:-export-dynamic} \
--        %{!dynamic-linker:-dynamic-linker /lib64/ld-linux.so.2}} \
-+        %{!dynamic-linker:-dynamic-linker /tools/lib64/ld-linux.so.2}} \
-         %{static:-static}}} \
- %{mlittle-endian:-EL} \
- %{!mno-relax:%{!r:-relax}} \
-diff -Naur gcc-20050116.orig/gcc/config/xtensa/linux.h gcc-20050116/gcc/config/xtensa/linux.h
---- gcc-20050116.orig/gcc/config/xtensa/linux.h        2005-01-17 00:45:18.000000000 +0000
-+++ gcc-20050116/gcc/config/xtensa/linux.h     2005-01-17 01:32:08.951429623 +0000
-@@ -50,7 +50,7 @@
-     %{!ibcs: \
-       %{!static: \
-         %{rdynamic:-export-dynamic} \
--        %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \
-+        %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}} \
-       %{static:-static}}}"
- #undef LOCAL_LABEL_PREFIX
diff --git a/src/patches/gcc-4.1.2-arm-linux-soft-float.patch b/src/patches/gcc-4.1.2-arm-linux-soft-float.patch
deleted file mode 100644 (file)
index c22bc38..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-diff -u -r gcc-4.0.2/gcc/config/arm/t-linux gcc-4.0.2/gcc/config/arm.new/t-linux
---- gcc-4.0.2/gcc/config/arm/t-linux   2005-10-18 22:04:44.000000000 +1000
-+++ gcc-4.0.2/gcc/config/arm.new/t-linux       2005-10-18 22:05:03.000000000 +1000
-@@ -4,7 +4,12 @@ TARGET_LIBGCC2_CFLAGS = -fomit-frame-poi
- LIBGCC2_DEBUG_CFLAGS = -g0
- LIB1ASMSRC = arm/lib1funcs.asm
--LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx
-+LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx \
-+      _negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi _fixunsdfsi \
-+      _truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2 \
-+      _fixsfsi _fixunssfsi _floatdidf _floatdisf \
-+      _bb_init_func _call_via_rX _interwork_call_via_rX \
-+      _lshrdi3 _ashrdi3 _ashldi3
- # MULTILIB_OPTIONS = mhard-float/msoft-float
- # MULTILIB_DIRNAMES = hard-float soft-float
-
-
---- gcc-4.1.1/gcc/config/arm/linux-elf.h       2007-01-06 11:17:51.000000000 +0000
-+++ gcc-4.1.1/gcc/config/arm/linux-elf-soft.h  2007-01-06 11:22:01.000000000 +0000
-@@ -49,7 +49,7 @@
-    %{shared:-lc} \
-    %{!shared:%{profile:-lc_p}%{!profile:-lc}}"
--#define LIBGCC_SPEC "%{msoft-float:-lfloat} %{mfloat-abi=soft*:-lfloat} -lgcc"
-+/* #define LIBGCC_SPEC "%{msoft-float:-lfloat} %{mfloat-abi=soft*:-lfloat} -lgcc" */
- #define LINUX_TARGET_INTERPRETER "/lib/ld-linux.so.2"
diff --git a/src/patches/gcc-4.1.2-fix_linker_version_detection.patch b/src/patches/gcc-4.1.2-fix_linker_version_detection.patch
deleted file mode 100644 (file)
index 36a756c..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Naur gcc-4.1.2.org/libstdc++-v3/configure gcc-4.1.2/libstdc++-v3/configure
---- gcc-4.1.2.org/libstdc++-v3/configure       2007-01-29 11:51:01.000000000 +0100
-+++ gcc-4.1.2/libstdc++-v3/configure   2011-08-29 19:25:22.973430586 +0200
-@@ -8281,7 +8281,7 @@
-   if test x"$with_gnu_ld" = x"yes"; then
-     ldver=`$LD --version 2>/dev/null | head -1 | \
--           sed -e 's/GNU ld version \([0-9.][0-9.]*\).*/\1/'`
-+           sed -e 's/GNU ld .*) \([0-9.][0-9.]*\).*/\1/'`
-     glibcxx_gnu_ld_version=`echo $ldver | \
-            $AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'`
diff --git a/src/patches/gcc-4.1.2-gcc_eh.patch b/src/patches/gcc-4.1.2-gcc_eh.patch
deleted file mode 100644 (file)
index 9a2589a..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -ur gcc-4.1.2/gcc/cp/g++spec.c gcc-4.1.2-gcc_eh/gcc/cp/g++spec.c
---- gcc-4.1.2/gcc/cp/g++spec.c 2005-06-25 02:59:41.000000000 +0200
-+++ gcc-4.1.2-gcc_eh/gcc/cp/g++spec.c  2007-08-03 14:46:03.000000000 +0200
-@@ -251,7 +251,7 @@
- #endif
-   /* Make sure to have room for the trailing NULL argument.  */
--  num_args = argc + added + need_math + shared_libgcc + (library > 0) + 1;
-+  num_args = argc + added + need_math + shared_libgcc + 2 * (library > 0) + 1;
-   arglist = xmalloc (num_args * sizeof (char *));
-   i = 0;
-@@ -311,7 +311,10 @@
-     {
-       arglist[j] = saw_profile_flag ? LIBSTDCXX_PROFILE : LIBSTDCXX;
-       if (arglist[j][0] != '-' || arglist[j][1] == 'l')
--      added_libraries++;
-+      {
-+      arglist[++j] = "-lgcc_eh";
-+      added_libraries += 2;
-+      }
-       j++;
-     }
-   if (saw_math)
diff --git a/src/patches/gcc-4.1.2-specs-1.patch b/src/patches/gcc-4.1.2-specs-1.patch
deleted file mode 100644 (file)
index 28ebb43..0000000
+++ /dev/null
@@ -1,507 +0,0 @@
-diff -Naur gcc-4.1.2.orig/gcc/config/alpha/linux-elf.h gcc-4.1.2/gcc/config/alpha/linux-elf.h
---- gcc-4.1.2.orig/gcc/config/alpha/linux-elf.h        2005-06-25 01:22:41.000000000 +0000
-+++ gcc-4.1.2/gcc/config/alpha/linux-elf.h     2011-09-01 17:11:11.000000000 +0000
-@@ -27,7 +27,7 @@
- #define SUBTARGET_EXTRA_SPECS \
- { "elf_dynamic_linker", ELF_DYNAMIC_LINKER },
--#define ELF_DYNAMIC_LINKER    "/lib/ld-linux.so.2"
-+#define ELF_DYNAMIC_LINKER    "/tools/lib/ld-linux.so.2"
- #define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax}                \
-   %{O*:-O3} %{!O*:-O1}                                                \
-diff -Naur gcc-4.1.2.orig/gcc/config/arm/linux-eabi.h gcc-4.1.2/gcc/config/arm/linux-eabi.h
---- gcc-4.1.2.orig/gcc/config/arm/linux-eabi.h 2005-11-15 14:32:13.000000000 +0000
-+++ gcc-4.1.2/gcc/config/arm/linux-eabi.h      2011-09-01 17:11:47.000000000 +0000
-@@ -53,7 +53,7 @@
- /* Use ld-linux.so.3 so that it will be possible to run "classic"
-    GNU/Linux binaries on an EABI system.  */
- #undef LINUX_TARGET_INTERPRETER
--#define LINUX_TARGET_INTERPRETER "/lib/ld-linux.so.3"
-+#define LINUX_TARGET_INTERPRETER "/tools/lib/ld-linux.so.3"
- /* At this point, bpabi.h will have clobbered LINK_SPEC.  We want to
-    use the GNU/Linux version, not the generic BPABI version.  */
-diff -Naur gcc-4.1.2.orig/gcc/config/arm/linux-elf.h gcc-4.1.2/gcc/config/arm/linux-elf.h
---- gcc-4.1.2.orig/gcc/config/arm/linux-elf.h  2005-10-10 01:04:31.000000000 +0000
-+++ gcc-4.1.2/gcc/config/arm/linux-elf.h       2011-09-01 17:11:11.000000000 +0000
-@@ -51,7 +51,7 @@
- #define LIBGCC_SPEC "%{msoft-float:-lfloat} %{mfloat-abi=soft*:-lfloat} -lgcc"
--#define LINUX_TARGET_INTERPRETER "/lib/ld-linux.so.2"
-+#define LINUX_TARGET_INTERPRETER "/tools/lib/ld-linux.so.2"
- #define LINUX_TARGET_LINK_SPEC  "%{h*} %{version:-v} \
-    %{b} \
-diff -Naur gcc-4.1.2.orig/gcc/config/frv/linux.h gcc-4.1.2/gcc/config/frv/linux.h
---- gcc-4.1.2.orig/gcc/config/frv/linux.h      2005-06-25 01:22:41.000000000 +0000
-+++ gcc-4.1.2/gcc/config/frv/linux.h   2011-09-01 17:11:11.000000000 +0000
-@@ -41,7 +41,7 @@
-   %{mfdpic: -m elf32frvfd -z text} %{shared} %{pie} \
-   %{!shared: %{!static: \
-    %{rdynamic:-export-dynamic} \
--   %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \
-+   %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}} \
-    %{static}}"
- /* Support for compile-time default CPU.  */
-diff -Naur gcc-4.1.2.orig/gcc/config/i386/gnu.h gcc-4.1.2/gcc/config/i386/gnu.h
---- gcc-4.1.2.orig/gcc/config/i386/gnu.h       2004-09-08 00:17:19.000000000 +0000
-+++ gcc-4.1.2/gcc/config/i386/gnu.h    2011-09-01 17:11:11.000000000 +0000
-@@ -27,7 +27,7 @@
-   %{!shared: \
-     %{!static: \
-       %{rdynamic:-export-dynamic} \
--      %{!dynamic-linker:-dynamic-linker /lib/ld.so}} \
-+      %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so}} \
-     %{static:-static}}"
- #undef        STARTFILE_SPEC
-diff -Naur gcc-4.1.2.orig/gcc/config/i386/linux64.h gcc-4.1.2/gcc/config/i386/linux64.h
---- gcc-4.1.2.orig/gcc/config/i386/linux64.h   2005-08-10 17:53:01.000000000 +0000
-+++ gcc-4.1.2/gcc/config/i386/linux64.h        2011-09-01 17:11:11.000000000 +0000
-@@ -60,8 +60,8 @@
-   %{!shared: \
-     %{!static: \
-       %{rdynamic:-export-dynamic} \
--      %{m32:%{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
--      %{!m32:%{!dynamic-linker:-dynamic-linker /lib64/ld-linux-x86-64.so.2}}} \
-+      %{m32:%{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}} \
-+      %{!m32:%{!dynamic-linker:-dynamic-linker /tools/lib64/ld-linux-x86-64.so.2}}} \
-     %{static:-static}}"
- /* Similar to standard Linux, but adding -ffast-math support.  */
-diff -Naur gcc-4.1.2.orig/gcc/config/i386/linux.h gcc-4.1.2/gcc/config/i386/linux.h
---- gcc-4.1.2.orig/gcc/config/i386/linux.h     2005-08-10 17:53:01.000000000 +0000
-+++ gcc-4.1.2/gcc/config/i386/linux.h  2011-09-01 17:11:11.000000000 +0000
-@@ -105,7 +105,7 @@
- /* If ELF is the default format, we should not use /lib/elf.  */
- #define LINK_EMULATION "elf_i386"
--#define DYNAMIC_LINKER "/lib/ld-linux.so.2"
-+#define DYNAMIC_LINKER "/tools/lib/ld-linux.so.2"
- #undef  SUBTARGET_EXTRA_SPECS
- #define SUBTARGET_EXTRA_SPECS \
-diff -Naur gcc-4.1.2.orig/gcc/config/ia64/linux.h gcc-4.1.2/gcc/config/ia64/linux.h
---- gcc-4.1.2.orig/gcc/config/ia64/linux.h     2006-12-12 15:24:07.000000000 +0000
-+++ gcc-4.1.2/gcc/config/ia64/linux.h  2011-09-01 17:11:11.000000000 +0000
-@@ -43,7 +43,7 @@
-   %{!shared: \
-     %{!static: \
-       %{rdynamic:-export-dynamic} \
--      %{!dynamic-linker:-dynamic-linker /lib/ld-linux-ia64.so.2}} \
-+      %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux-ia64.so.2}} \
-       %{static:-static}}"
- #define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
-diff -Naur gcc-4.1.2.orig/gcc/config/ia64/linux.h.orig gcc-4.1.2/gcc/config/ia64/linux.h.orig
---- gcc-4.1.2.orig/gcc/config/ia64/linux.h.orig        1970-01-01 00:00:00.000000000 +0000
-+++ gcc-4.1.2/gcc/config/ia64/linux.h.orig     2006-12-12 15:24:07.000000000 +0000
-@@ -0,0 +1,59 @@
-+/* Definitions for ia64-linux target.  */
-+
-+/* This macro is a C statement to print on `stderr' a string describing the
-+   particular machine description choice.  */
-+
-+#define TARGET_VERSION fprintf (stderr, " (IA-64) Linux");
-+
-+/* This is for -profile to use -lc_p instead of -lc.  */
-+#undef CC1_SPEC
-+#define CC1_SPEC "%{profile:-p} %{G*}"
-+
-+/* Target OS builtins.  */
-+#define TARGET_OS_CPP_BUILTINS()              \
-+do {                                          \
-+      LINUX_TARGET_OS_CPP_BUILTINS();         \
-+      builtin_define("_LONGLONG");            \
-+} while (0)
-+
-+/* Need to override linux.h STARTFILE_SPEC, since it has crtbeginT.o in.  */
-+#undef STARTFILE_SPEC
-+#ifdef HAVE_LD_PIE
-+#define STARTFILE_SPEC \
-+  "%{!shared: %{pg|p|profile:gcrt1.o%s;pie:Scrt1.o%s;:crt1.o%s}}\
-+   crti.o%s %{shared|pie:crtbeginS.o%s;:crtbegin.o%s}"
-+#else
-+#define STARTFILE_SPEC \
-+  "%{!shared: %{pg|p|profile:gcrt1.o%s;:crt1.o%s}}\
-+   crti.o%s %{shared|pie:crtbeginS.o%s;:crtbegin.o%s}"
-+#endif
-+
-+/* Similar to standard Linux, but adding -ffast-math support.  */
-+#undef  ENDFILE_SPEC
-+#define ENDFILE_SPEC \
-+  "%{ffast-math|funsafe-math-optimizations:crtfastmath.o%s} \
-+   %{shared|pie:crtendS.o%s;:crtend.o%s} crtn.o%s"
-+
-+/* Define this for shared library support because it isn't in the main
-+   linux.h file.  */
-+
-+#undef LINK_SPEC
-+#define LINK_SPEC "\
-+  %{shared:-shared} \
-+  %{!shared: \
-+    %{!static: \
-+      %{rdynamic:-export-dynamic} \
-+      %{!dynamic-linker:-dynamic-linker /lib/ld-linux-ia64.so.2}} \
-+      %{static:-static}}"
-+
-+#define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
-+
-+#define JMP_BUF_SIZE  76
-+
-+/* Override linux.h LINK_EH_SPEC definition.
-+   Signalize that because we have fde-glibc, we don't need all C shared libs
-+   linked against -lgcc_s.  */
-+#undef LINK_EH_SPEC
-+#define LINK_EH_SPEC ""
-+
-+#define MD_UNWIND_SUPPORT "config/ia64/linux-unwind.h"
-diff -Naur gcc-4.1.2.orig/gcc/config/linux.h gcc-4.1.2/gcc/config/linux.h
---- gcc-4.1.2.orig/gcc/config/linux.h  2005-08-06 13:26:35.000000000 +0000
-+++ gcc-4.1.2/gcc/config/linux.h       2011-09-01 17:11:11.000000000 +0000
-@@ -104,3 +104,7 @@
- #define TARGET_C99_FUNCTIONS 1
- #define TARGET_POSIX_IO
-+
-+/* Remove /usr/include from the end of the include search path.  */
-+#undef STANDARD_INCLUDE_DIR
-+#define STANDARD_INCLUDE_DIR 0
-diff -Naur gcc-4.1.2.orig/gcc/config/m32r/linux.h gcc-4.1.2/gcc/config/m32r/linux.h
---- gcc-4.1.2.orig/gcc/config/m32r/linux.h     2005-07-08 10:00:15.000000000 +0000
-+++ gcc-4.1.2/gcc/config/m32r/linux.h  2011-09-01 17:11:11.000000000 +0000
-@@ -66,7 +66,7 @@
-     %{!ibcs: \
-       %{!static: \
-       %{rdynamic:-export-dynamic} \
--      %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
-+      %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}} \
-       %{static:-static}}}"
- #else
- #define LINK_SPEC "%(link_cpu) -m m32relf_linux %{shared:-shared} \
-@@ -74,7 +74,7 @@
-     %{!ibcs: \
-       %{!static: \
-       %{rdynamic:-export-dynamic} \
--      %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
-+      %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}} \
-       %{static:-static}}}"
- #endif
-diff -Naur gcc-4.1.2.orig/gcc/config/m68k/linux.h gcc-4.1.2/gcc/config/m68k/linux.h
---- gcc-4.1.2.orig/gcc/config/m68k/linux.h     2005-06-25 01:22:41.000000000 +0000
-+++ gcc-4.1.2/gcc/config/m68k/linux.h  2011-09-01 17:11:11.000000000 +0000
-@@ -128,7 +128,7 @@
-   %{!shared: \
-     %{!static: \
-       %{rdynamic:-export-dynamic} \
--      %{!dynamic-linker*:-dynamic-linker /lib/ld.so.1}} \
-+      %{!dynamic-linker*:-dynamic-linker /tools/lib/ld.so.1}} \
-     %{static}}"
- /* For compatibility with linux/a.out */
-diff -Naur gcc-4.1.2.orig/gcc/config/mips/linux64.h gcc-4.1.2/gcc/config/mips/linux64.h
---- gcc-4.1.2.orig/gcc/config/mips/linux64.h   2005-06-25 01:22:41.000000000 +0000
-+++ gcc-4.1.2/gcc/config/mips/linux64.h        2011-09-01 17:11:11.000000000 +0000
-@@ -47,9 +47,9 @@
-       %{!static: \
-         %{rdynamic:-export-dynamic} \
-         %{!dynamic-linker: \
--        %{mabi=n32: -dynamic-linker /lib32/ld.so.1} \
--        %{mabi=64: -dynamic-linker /lib64/ld.so.1} \
--        %{mabi=32: -dynamic-linker /lib/ld.so.1}}} \
-+        %{mabi=n32: -dynamic-linker /tools/lib32/ld.so.1} \
-+        %{mabi=64: -dynamic-linker /tools/lib64/ld.so.1} \
-+        %{mabi=32: -dynamic-linker /tools/lib/ld.so.1}}} \
-       %{static:-static}}} \
- %{mabi=n32:-melf32%{EB:b}%{EL:l}tsmipn32} \
- %{mabi=64:-melf64%{EB:b}%{EL:l}tsmip} \
-diff -Naur gcc-4.1.2.orig/gcc/config/mips/linux.h gcc-4.1.2/gcc/config/mips/linux.h
---- gcc-4.1.2.orig/gcc/config/mips/linux.h     2006-12-17 13:57:31.000000000 +0000
-+++ gcc-4.1.2/gcc/config/mips/linux.h  2011-09-01 17:11:11.000000000 +0000
-@@ -112,7 +112,7 @@
-     %{!ibcs: \
-       %{!static: \
-         %{rdynamic:-export-dynamic} \
--        %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \
-+        %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}} \
-         %{static:-static}}}"
- #undef SUBTARGET_ASM_SPEC
-diff -Naur gcc-4.1.2.orig/gcc/config/mn10300/linux.h gcc-4.1.2/gcc/config/mn10300/linux.h
---- gcc-4.1.2.orig/gcc/config/mn10300/linux.h  2005-06-25 01:22:41.000000000 +0000
-+++ gcc-4.1.2/gcc/config/mn10300/linux.h       2011-09-01 17:11:11.000000000 +0000
-@@ -37,7 +37,7 @@
- #define LINK_SPEC "%{mrelax:--relax} %{shared:-shared} \
-    %{!static: \
-      %{rdynamic:-export-dynamic} \
--     %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \
-+     %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}} \
-    %{static:-static}"
- #undef  PROCESSOR_DEFAULT
-diff -Naur gcc-4.1.2.orig/gcc/config/pa/pa-linux.h gcc-4.1.2/gcc/config/pa/pa-linux.h
---- gcc-4.1.2.orig/gcc/config/pa/pa-linux.h    2007-01-12 02:23:38.000000000 +0000
-+++ gcc-4.1.2/gcc/config/pa/pa-linux.h 2011-09-01 17:11:11.000000000 +0000
-@@ -55,7 +55,7 @@
-   %{!shared: \
-     %{!static: \
-       %{rdynamic:-export-dynamic} \
--      %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \
-+      %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}} \
-       %{static:-static}}"
- /* glibc's profiling functions don't need gcc to allocate counters.  */
-diff -Naur gcc-4.1.2.orig/gcc/config/rs6000/linux64.h gcc-4.1.2/gcc/config/rs6000/linux64.h
---- gcc-4.1.2.orig/gcc/config/rs6000/linux64.h 2006-02-10 20:58:33.000000000 +0000
-+++ gcc-4.1.2/gcc/config/rs6000/linux64.h      2011-09-01 17:11:11.000000000 +0000
-@@ -339,11 +339,11 @@
- #define LINK_OS_LINUX_SPEC32 "-m elf32ppclinux %{!shared: %{!static: \
-   %{rdynamic:-export-dynamic} \
--  %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}}}"
-+  %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}}}"
- #define LINK_OS_LINUX_SPEC64 "-m elf64ppc %{!shared: %{!static: \
-   %{rdynamic:-export-dynamic} \
--  %{!dynamic-linker:-dynamic-linker /lib64/ld64.so.1}}}"
-+  %{!dynamic-linker:-dynamic-linker /tools/lib64/ld64.so.1}}}"
- #undef  TOC_SECTION_ASM_OP
- #define TOC_SECTION_ASM_OP \
-diff -Naur gcc-4.1.2.orig/gcc/config/rs6000/sysv4.h gcc-4.1.2/gcc/config/rs6000/sysv4.h
---- gcc-4.1.2.orig/gcc/config/rs6000/sysv4.h   2006-02-10 20:58:33.000000000 +0000
-+++ gcc-4.1.2/gcc/config/rs6000/sysv4.h        2011-09-01 17:11:11.000000000 +0000
-@@ -1041,7 +1041,7 @@
- #define LINK_OS_LINUX_SPEC "-m elf32ppclinux %{!shared: %{!static: \
-   %{rdynamic:-export-dynamic} \
--  %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}}}"
-+  %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}}}"
- #if defined(HAVE_LD_EH_FRAME_HDR)
- # define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
-@@ -1072,7 +1072,7 @@
- #define LINK_OS_GNU_SPEC "-m elf32ppclinux %{!shared: %{!static: \
-   %{rdynamic:-export-dynamic} \
--  %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}}}"
-+  %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}}}"
- #define CPP_OS_GNU_SPEC "-D__unix__ -D__gnu_hurd__ -D__GNU__  \
- %{!undef:                                                     \
-diff -Naur gcc-4.1.2.orig/gcc/config/s390/linux.h gcc-4.1.2/gcc/config/s390/linux.h
---- gcc-4.1.2.orig/gcc/config/s390/linux.h     2006-12-12 15:24:07.000000000 +0000
-+++ gcc-4.1.2/gcc/config/s390/linux.h  2011-09-01 17:11:11.000000000 +0000
-@@ -86,8 +86,8 @@
-       %{!static: \
-       %{rdynamic:-export-dynamic} \
-       %{!dynamic-linker: \
--          %{m31:-dynamic-linker /lib/ld.so.1} \
--          %{m64:-dynamic-linker /lib/ld64.so.1}}}}"
-+          %{m31:-dynamic-linker /tools/lib/ld.so.1} \
-+          %{m64:-dynamic-linker /tools/lib/ld64.so.1}}}}"
- #define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
-diff -Naur gcc-4.1.2.orig/gcc/config/s390/linux.h.orig gcc-4.1.2/gcc/config/s390/linux.h.orig
---- gcc-4.1.2.orig/gcc/config/s390/linux.h.orig        1970-01-01 00:00:00.000000000 +0000
-+++ gcc-4.1.2/gcc/config/s390/linux.h.orig     2006-12-12 15:24:07.000000000 +0000
-@@ -0,0 +1,107 @@
-+/* Definitions for Linux for S/390.
-+   Copyright (C) 1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc.
-+   Contributed by Hartmut Penner (hpenner@de.ibm.com) and
-+                  Ulrich Weigand (uweigand@de.ibm.com).
-+
-+This file is part of GCC.
-+
-+GCC 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, or (at your option) any later
-+version.
-+
-+GCC 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 GCC; see the file COPYING.  If not, write to the Free
-+Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
-+02110-1301, USA.  */
-+
-+#ifndef _LINUX_H
-+#define _LINUX_H
-+
-+/* Target specific version string.  */
-+
-+#ifdef DEFAULT_TARGET_64BIT
-+#undef  TARGET_VERSION
-+#define TARGET_VERSION fprintf (stderr, " (Linux for zSeries)");
-+#else
-+#undef  TARGET_VERSION
-+#define TARGET_VERSION fprintf (stderr, " (Linux for S/390)");
-+#endif
-+
-+
-+/* Target specific type definitions.  */
-+
-+/* ??? Do we really want long as size_t on 31-bit?  */
-+#undef  SIZE_TYPE
-+#define SIZE_TYPE (TARGET_64BIT ? "long unsigned int" : "long unsigned int")
-+#undef  PTRDIFF_TYPE
-+#define PTRDIFF_TYPE (TARGET_64BIT ? "long int" : "int")
-+
-+#undef  WCHAR_TYPE
-+#define WCHAR_TYPE "int"
-+#undef  WCHAR_TYPE_SIZE
-+#define WCHAR_TYPE_SIZE 32
-+
-+
-+/* Target specific preprocessor settings.  */
-+
-+#define TARGET_OS_CPP_BUILTINS()              \
-+  do                                          \
-+    {                                         \
-+      LINUX_TARGET_OS_CPP_BUILTINS();         \
-+      if (flag_pic)                           \
-+        {                                     \
-+          builtin_define ("__PIC__");         \
-+          builtin_define ("__pic__");         \
-+        }                                     \
-+    }                                         \
-+  while (0)
-+
-+
-+/* Target specific assembler settings.  */
-+
-+#undef  ASM_SPEC
-+#define ASM_SPEC "%{m31&m64}%{mesa&mzarch}%{march=*}"
-+
-+
-+/* Target specific linker settings.  */
-+
-+#ifdef DEFAULT_TARGET_64BIT
-+#define MULTILIB_DEFAULTS { "m64" }
-+#else
-+#define MULTILIB_DEFAULTS { "m31" }
-+#endif
-+
-+#undef  LINK_SPEC
-+#define LINK_SPEC \
-+  "%{m31:-m elf_s390}%{m64:-m elf64_s390} \
-+   %{shared:-shared} \
-+   %{!shared: \
-+      %{static:-static} \
-+      %{!static: \
-+      %{rdynamic:-export-dynamic} \
-+      %{!dynamic-linker: \
-+          %{m31:-dynamic-linker /lib/ld.so.1} \
-+          %{m64:-dynamic-linker /lib/ld64.so.1}}}}"
-+
-+#define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
-+
-+#define TARGET_ASM_FILE_END file_end_indicate_exec_stack
-+
-+#define MD_UNWIND_SUPPORT "config/s390/linux-unwind.h"
-+
-+#ifdef TARGET_LIBC_PROVIDES_SSP
-+/* s390 glibc provides __stack_chk_guard in 0x14(tp),
-+   s390x glibc provides it at 0x28(tp).  */
-+#define TARGET_THREAD_SSP_OFFSET        (TARGET_64BIT ? 0x28 : 0x14)
-+#endif
-+
-+/* Define if long doubles should be mangled as 'g'.  */
-+#define TARGET_ALTERNATE_LONG_DOUBLE_MANGLING
-+
-+#endif
-diff -Naur gcc-4.1.2.orig/gcc/config/sh/linux.h gcc-4.1.2/gcc/config/sh/linux.h
---- gcc-4.1.2.orig/gcc/config/sh/linux.h       2005-06-25 01:22:41.000000000 +0000
-+++ gcc-4.1.2/gcc/config/sh/linux.h    2011-09-01 17:11:11.000000000 +0000
-@@ -60,7 +60,7 @@
-   "%{shared:-shared} \
-    %{!static: \
-      %{rdynamic:-export-dynamic} \
--     %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
-+     %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}} \
-    %{static:-static}"
- /* Output assembler code to STREAM to call the profiler.  */
-diff -Naur gcc-4.1.2.orig/gcc/config/sparc/linux64.h gcc-4.1.2/gcc/config/sparc/linux64.h
---- gcc-4.1.2.orig/gcc/config/sparc/linux64.h  2006-02-11 08:38:51.000000000 +0000
-+++ gcc-4.1.2/gcc/config/sparc/linux64.h       2011-09-01 17:11:11.000000000 +0000
-@@ -162,21 +162,21 @@
-   { "link_arch_default", LINK_ARCH_DEFAULT_SPEC },      \
-   { "link_arch",       LINK_ARCH_SPEC },
-     
--#define LINK_ARCH32_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \
-+#define LINK_ARCH32_SPEC "-m elf32_sparc -Y P,/tools/lib %{shared:-shared} \
-   %{!shared: \
-     %{!ibcs: \
-       %{!static: \
-         %{rdynamic:-export-dynamic} \
--        %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
-+        %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}} \
-         %{static:-static}}} \
- "
--#define LINK_ARCH64_SPEC "-m elf64_sparc -Y P,/usr/lib64 %{shared:-shared} \
-+#define LINK_ARCH64_SPEC "-m elf64_sparc -Y P,/tools/lib64 %{shared:-shared} \
-   %{!shared: \
-     %{!ibcs: \
-       %{!static: \
-         %{rdynamic:-export-dynamic} \
--        %{!dynamic-linker:-dynamic-linker /lib64/ld-linux.so.2}} \
-+        %{!dynamic-linker:-dynamic-linker /tools/lib64/ld-linux.so.2}} \
-         %{static:-static}}} \
- "
-@@ -252,12 +252,12 @@
- #else /* !SPARC_BI_ARCH */
- #undef LINK_SPEC
--#define LINK_SPEC "-m elf64_sparc -Y P,/usr/lib64 %{shared:-shared} \
-+#define LINK_SPEC "-m elf64_sparc -Y P,/tools/lib64 %{shared:-shared} \
-   %{!shared: \
-     %{!ibcs: \
-       %{!static: \
-         %{rdynamic:-export-dynamic} \
--        %{!dynamic-linker:-dynamic-linker /lib64/ld-linux.so.2}} \
-+        %{!dynamic-linker:-dynamic-linker /tools/lib64/ld-linux.so.2}} \
-         %{static:-static}}} \
- %{mlittle-endian:-EL} \
- %{!mno-relax:%{!r:-relax}} \
-diff -Naur gcc-4.1.2.orig/gcc/config/sparc/linux.h gcc-4.1.2/gcc/config/sparc/linux.h
---- gcc-4.1.2.orig/gcc/config/sparc/linux.h    2006-02-11 08:38:51.000000000 +0000
-+++ gcc-4.1.2/gcc/config/sparc/linux.h 2011-09-01 17:11:11.000000000 +0000
-@@ -126,13 +126,13 @@
- /* If ELF is the default format, we should not use /lib/elf.  */
- #undef  LINK_SPEC
--#define LINK_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \
-+#define LINK_SPEC "-m elf32_sparc -Y P,/tools/lib %{shared:-shared} \
-   %{!mno-relax:%{!r:-relax}} \
-   %{!shared: \
-     %{!ibcs: \
-       %{!static: \
-         %{rdynamic:-export-dynamic} \
--        %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
-+        %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}} \
-         %{static:-static}}}"
- /* The sun bundled assembler doesn't accept -Yd, (and neither does gas).
-diff -Naur gcc-4.1.2.orig/gcc/config/xtensa/linux.h gcc-4.1.2/gcc/config/xtensa/linux.h
---- gcc-4.1.2.orig/gcc/config/xtensa/linux.h   2005-06-25 01:22:41.000000000 +0000
-+++ gcc-4.1.2/gcc/config/xtensa/linux.h        2011-09-01 17:11:11.000000000 +0000
-@@ -50,7 +50,7 @@
-     %{!ibcs: \
-       %{!static: \
-         %{rdynamic:-export-dynamic} \
--        %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \
-+        %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}} \
-       %{static:-static}}}"
- #undef LOCAL_LABEL_PREFIX
diff --git a/src/patches/gcc-4.4.3-startfiles_fix-1.patch b/src/patches/gcc-4.4.3-startfiles_fix-1.patch
new file mode 100644 (file)
index 0000000..a2eac9e
--- /dev/null
@@ -0,0 +1,33 @@
+Submitted By: Jeremy Huntwork (jhuntwork AT linuxfromscratch DOT org)
+Date: 2008-12-05
+Initial Package Version: 4.3.2
+Upstream Status: See below.
+Origin: DIY Linux, See below.
+Description: Original patch follows:
+
+# DIY Linux Patch
+Date: 2008-09-09
+Author: Refer Origin.
+Origin: Partial revert of http://gcc.gnu.org/ml/gcc-cvs/2006-11/msg00416.html
+Maker: Greg Schafer <gschafer@zip.com.au>
+Upstream Status: Not applicable. Tweak only for Temptools phase GCC-Pass2.
+Description: Partially revert GCC driver to pre-GCC-4.3 state to allow startfiles to be
+  found in $prefix when GCC is configured for a non-standard prefix eg: /temptools. Full
+  background info in thread starting here: http://gcc.gnu.org/ml/gcc/2008-03/msg00095.html
+  and GCC bugzilla here: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35532
+
+diff -Naur gcc-4.3.0-RC-20080222.orig/gcc/gcc.c gcc-4.3.0-RC-20080222/gcc/gcc.c
+--- gcc-4.3.0-RC-20080222.orig/gcc/gcc.c       2008-01-24 18:57:12.000000000 +0000
++++ gcc-4.3.0-RC-20080222/gcc/gcc.c    2008-03-02 06:07:36.000000000 +0000
+@@ -6370,6 +6370,11 @@
+                             machine_suffix, 
+                             standard_startfile_prefix, NULL),
+                     NULL, PREFIX_PRIORITY_LAST, 0, 1);
++        add_prefix (&startfile_prefixes,
++                    concat (standard_exec_prefix,
++                            machine_suffix,
++                            standard_startfile_prefix, NULL),
++                    NULL, PREFIX_PRIORITY_LAST, 0, 1);
+       }
+       /* Sysrooted prefixes are relocated because target_system_root is
diff --git a/src/patches/gcc-libstdc++-pic.patch b/src/patches/gcc-libstdc++-pic.patch
deleted file mode 100644 (file)
index a9d6e71..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
---- gcc-4.0.0/libstdc++-v3/src/Makefile.am
-+++ gcc-4.0.0/libstdc++-v3/src/Makefile.am
-@@ -214,6 +214,10 @@
-         $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LDFLAGS) -o $@
-+install-exec-local:
-+      $(AR) cru libstdc++_pic.a *.o $(top_builddir)/libsupc++/*.o
-+      $(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir)
-+
- # Added bits to build debug library.
- if GLIBCXX_BUILD_DEBUG
- all-local: build_debug
---- gcc-4.0.0/libstdc++-v3/src/Makefile.in
-+++ gcc-4.0.0/libstdc++-v3/src/Makefile.in
-@@ -625,7 +625,7 @@
- install-data-am: install-data-local
--install-exec-am: install-toolexeclibLTLIBRARIES
-+install-exec-am: install-toolexeclibLTLIBRARIES install-exec-local
- install-info: install-info-am
-@@ -664,7 +664,7 @@
-       maintainer-clean-generic mostlyclean mostlyclean-compile \
-       mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-       tags uninstall uninstall-am uninstall-info-am \
--      uninstall-toolexeclibLTLIBRARIES
-+      uninstall-toolexeclibLTLIBRARIES install-exec-local
- @GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@libstdc++-symbol.ver:  ${glibcxx_srcdir}/$(SYMVER_MAP)
- @GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@  cp ${glibcxx_srcdir}/$(SYMVER_MAP) ./libstdc++-symbol.ver
-@@ -743,6 +743,11 @@
- install_debug:
-       (cd ${debugdir} && $(MAKE) \
-       toolexeclibdir=$(glibcxx_toolexeclibdir)/debug install)
-+
-+install-exec-local:
-+      $(AR) cru libstdc++_pic.a *.o $(top_builddir)/libsupc++/*.o
-+      $(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir)
-+
- # Tell versions [3.59,3.63) of GNU make to not export all variables.
- # Otherwise a system limit (for SysV at least) may be exceeded.
- .NOEXPORT:
diff --git a/src/patches/gcc-sdk-libstdc++-includes.patch b/src/patches/gcc-sdk-libstdc++-includes.patch
deleted file mode 100644 (file)
index c7676ae..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-diff -urN gcc-4.0.0-100/libstdc++-v3/fragment.am gcc-4.0.0/libstdc++-v3/fragment.am
---- gcc-4.0.0-100/libstdc++-v3/fragment.am     2004-10-25 15:32:40.000000000 -0500
-+++ gcc-4.0.0/libstdc++-v3/fragment.am 2005-04-28 21:48:43.000000000 -0500
-@@ -18,5 +18,5 @@
-       $(WARN_FLAGS) $(WERROR) -fdiagnostics-show-location=once
- # -I/-D flags to pass when compiling.
--AM_CPPFLAGS = $(GLIBCXX_INCLUDES)
-+AM_CPPFLAGS = $(GLIBCXX_INCLUDES) -I$(toplevel_srcdir)/include
-diff -urN gcc-4.0.0-100/libstdc++-v3/libmath/Makefile.am gcc-4.0.0/libstdc++-v3/libmath/Makefile.am
---- gcc-4.0.0-100/libstdc++-v3/libmath/Makefile.am     2003-08-27 16:29:42.000000000 -0500
-+++ gcc-4.0.0/libstdc++-v3/libmath/Makefile.am 2005-04-28 21:48:43.000000000 -0500
-@@ -32,7 +32,7 @@
- libmath_la_SOURCES = stubs.c
--AM_CPPFLAGS = $(CANADIAN_INCLUDES)
-+AM_CPPFLAGS = $(CANADIAN_INCLUDES) -I$(toplevel_srcdir)/include
- # Only compiling "C" sources in this directory.
- LIBTOOL = @LIBTOOL@ --tag CC
diff --git a/src/patches/gcc-uclibc-conf.patch b/src/patches/gcc-uclibc-conf.patch
deleted file mode 100644 (file)
index 3be7d09..0000000
+++ /dev/null
@@ -1,553 +0,0 @@
---- gcc-4.0.2/gcc/config/t-linux-uclibc
-+++ gcc-4.0.2/gcc/config/t-linux-uclibc
-@@ -0,0 +1,5 @@
-+# Remove glibc specific files added in t-linux
-+SHLIB_MAPFILES := $(filter-out $(srcdir)/config/libgcc-glibc.ver, $(SHLIB_MAPFILES))
-+
-+# Use unwind-dw2-fde instead of unwind-dw2-fde-glibc
-+LIB2ADDEH := $(subst unwind-dw2-fde-glibc.c,unwind-dw2-fde.c,$(LIB2ADDEH))
---- gcc-4.0.2/gcc/config.gcc
-+++ gcc-4.0.2/gcc/config.gcc
-@@ -1778,7 +1778,7 @@
-       ;;
- sh-*-elf* | sh[12346l]*-*-elf* | sh*-*-kaos* | \
- sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | \
--  sh-*-linux* | sh[346lbe]*-*-linux* | \
-+  sh*-*-linux* | sh[346lbe]*-*-linux* | \
-   sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* | sh5l*-*-netbsd* | \
-    sh64-*-netbsd* | sh64l*-*-netbsd*)
-       tmake_file="${tmake_file} sh/t-sh sh/t-elf"
-@@ -2234,10 +2234,16 @@
- *)
-       echo "*** Configuration ${target} not supported" 1>&2
-       exit 1
-       ;;
- esac
-+
-+# Rather than hook into each target, just do it after all the linux
-+# targets have been processed
-+case ${target} in
-+*-linux-uclibc*) tm_defines="${tm_defines} USE_UCLIBC" ; tmake_file="${tmake_file} t-linux-uclibc"
-+esac
- case ${target} in
- i[34567]86-*-linux*aout* | i[34567]86-*-linux*libc1)
-       tmake_file="${tmake_file} i386/t-gmm_malloc"
-       ;;
---- gcc-4.0.2/gcc/config/alpha/linux-elf.h
-+++ gcc-4.0.2/gcc/config/alpha/linux-elf.h
-@@ -27,7 +27,11 @@
- #define SUBTARGET_EXTRA_SPECS \
- { "elf_dynamic_linker", ELF_DYNAMIC_LINKER },
-+#ifdef USE_UCLIBC
-+#define ELF_DYNAMIC_LINKER    "/lib/ld-uClibc.so.0"
-+#else
- #define ELF_DYNAMIC_LINKER    "/lib/ld-linux.so.2"
-+#endif
- #define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax}                \
-   %{O*:-O3} %{!O*:-O1}                                                \
---- gcc-4.0.2/gcc/config/arm/linux-elf.h
-+++ gcc-4.0.2/gcc/config/arm/linux-elf.h
-@@ -81,14 +81,19 @@
- #define ENDFILE_SPEC \
-   "%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s"
-+#ifdef USE_UCLIBC
-+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
-+#else
-+#define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.2"
-+#endif
- #undef  LINK_SPEC
- #define LINK_SPEC "%{h*} %{version:-v} \
-    %{b} %{Wl,*:%*} \
-    %{static:-Bstatic} \
-    %{shared:-shared} \
-    %{symbolic:-Bsymbolic} \
-    %{rdynamic:-export-dynamic} \
--   %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2} \
-+   %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "} \
-    -X \
-    %{mbig-endian:-EB}" \
-    SUBTARGET_EXTRA_LINK_SPEC
---- gcc-4.0.2/gcc/config/cris/linux.h
-+++ gcc-4.0.2/gcc/config/cris/linux.h
-@@ -79,6 +79,25 @@
- #undef CRIS_DEFAULT_CPU_VERSION
- #define CRIS_DEFAULT_CPU_VERSION CRIS_CPU_NG
-+#ifdef USE_UCLIBC
-+
-+#undef CRIS_SUBTARGET_VERSION
-+#define CRIS_SUBTARGET_VERSION " - cris-axis-linux-uclibc"
-+
-+#undef CRIS_LINK_SUBTARGET_SPEC
-+#define CRIS_LINK_SUBTARGET_SPEC \
-+ "-mcrislinux\
-+  -rpath-link include/asm/../..%s\
-+  %{shared} %{static}\
-+  %{symbolic:-Bdynamic} %{shlib:-Bdynamic} %{static:-Bstatic}\
-+  %{!shared: \
-+    %{!static: \
-+      %{rdynamic:-export-dynamic} \
-+      %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}}} \
-+  %{!r:%{O2|O3: --gc-sections}}"
-+
-+#else  /* USE_UCLIBC */
-+
- #undef CRIS_SUBTARGET_VERSION
- #define CRIS_SUBTARGET_VERSION " - cris-axis-linux-gnu"
-@@ -93,6 +112,8 @@
-   %{!shared:%{!static:%{rdynamic:-export-dynamic}}}\
-   %{!r:%{O2|O3: --gc-sections}}"
-+#endif  /* USE_UCLIBC */
-+
- /* Node: Run-time Target */
---- gcc-4.0.2/gcc/config/i386/linux.h
-+++ gcc-4.0.2/gcc/config/i386/linux.h
-@@ -107,6 +107,11 @@
- #define LINK_EMULATION "elf_i386"
- #define DYNAMIC_LINKER "/lib/ld-linux.so.2"
-+#ifdef USE_UCLIBC
-+#undef DYNAMIC_LINKER
-+#define DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
-+#endif
-+
- #undef  SUBTARGET_EXTRA_SPECS
- #define SUBTARGET_EXTRA_SPECS \
-   { "link_emulation", LINK_EMULATION },\
---- gcc-4.0.2/gcc/config/i386/linux64.h
-+++ gcc-4.0.2/gcc/config/i386/linux64.h
-@@ -54,14 +54,21 @@
-    When the -shared link option is used a final link is not being
-    done.  */
-+#ifdef USE_UCLIBC
-+#define ELF32_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
-+#define ELF64_DYNAMIC_LINKER "/lib/ld64-uClibc.so.0"
-+#else
-+#define ELF32_DYNAMIC_LINKER "/lib/ld-linux.so.2"
-+#define ELF64_DYNAMIC_LINKER "/lib64/ld-linux-x86-64.so.2"
-+#endif
- #undef        LINK_SPEC
- #define LINK_SPEC "%{!m32:-m elf_x86_64} %{m32:-m elf_i386} \
-   %{shared:-shared} \
-   %{!shared: \
-     %{!static: \
-       %{rdynamic:-export-dynamic} \
--      %{m32:%{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
--      %{!m32:%{!dynamic-linker:-dynamic-linker /lib64/ld-linux-x86-64.so.2}}} \
-+      %{m32:%{!dynamic-linker:-dynamic-linker " ELF32_DYNAMIC_LINKER "}} \
-+      %{!m32:%{!dynamic-linker:-dynamic-linker " ELF64_DYNAMIC_LINKER "}}} \
-     %{static:-static}}"
- #define MULTILIB_DEFAULTS { "m64" }
---- gcc-4.0.2/gcc/config/ia64/linux.h
-+++ gcc-4.0.2/gcc/config/ia64/linux.h
-@@ -37,13 +37,18 @@
- /* Define this for shared library support because it isn't in the main
-    linux.h file.  */
-+#ifdef USE_UCLIBC
-+#define ELF_DYNAMIC_LINKER    "/lib/ld-uClibc.so.0"
-+#else
-+#define ELF_DYNAMIC_LINKER "/lib/ld-linux-ia64.so.2"
-+#endif
- #undef LINK_SPEC
- #define LINK_SPEC "\
-   %{shared:-shared} \
-   %{!shared: \
-     %{!static: \
-       %{rdynamic:-export-dynamic} \
--      %{!dynamic-linker:-dynamic-linker /lib/ld-linux-ia64.so.2}} \
-+      %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
-       %{static:-static}}"
---- gcc-4.0.2/gcc/config/m68k/linux.h
-+++ gcc-4.0.2/gcc/config/m68k/linux.h
-@@ -127,12 +127,17 @@
- /* If ELF is the default format, we should not use /lib/elf.  */
-+#ifdef USE_UCLIBC
-+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
-+#else
-+#define ELF_DYNAMIC_LINKER "/lib/ld.so.1"
-+#endif
- #undef        LINK_SPEC
- #define LINK_SPEC "-m m68kelf %{shared} \
-   %{!shared: \
-     %{!static: \
-       %{rdynamic:-export-dynamic} \
--      %{!dynamic-linker*:-dynamic-linker /lib/ld.so.1}} \
-+      %{!dynamic-linker*:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
-     %{static}}"
- /* For compatibility with linux/a.out */
---- gcc-4.0.2/gcc/config/mips/linux.h
-+++ gcc-4.0.2/gcc/config/mips/linux.h
-@@ -108,14 +108,19 @@
- /* Borrowed from sparc/linux.h */
- #undef LINK_SPEC
-+#ifdef USE_UCLIBC
-+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
-+#else
-+#define ELF_DYNAMIC_LINKER "/lib/ld.so.1"
-+#endif
- #define LINK_SPEC \
-  "%(endian_spec) \
-   %{shared:-shared} \
-   %{!shared: \
-     %{!ibcs: \
-       %{!static: \
-         %{rdynamic:-export-dynamic} \
--        %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \
-+        %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
-         %{static:-static}}}"
- #undef SUBTARGET_ASM_SPEC
---- gcc-4.0.2/gcc/config/pa/pa-linux.h
-+++ gcc-4.0.2/gcc/config/pa/pa-linux.h
-@@ -82,13 +82,18 @@
- /* Define this for shared library support because it isn't in the main
-    linux.h file.  */
-+#ifdef USE_UCLIBC
-+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
-+#else
-+#define ELF_DYNAMIC_LINKER "/lib/ld.so.1"
-+#endif
- #undef LINK_SPEC
- #define LINK_SPEC "\
-   %{shared:-shared} \
-   %{!shared: \
-     %{!static: \
-       %{rdynamic:-export-dynamic} \
--      %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \
-+      %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
-       %{static:-static}}"
- /* glibc's profiling functions don't need gcc to allocate counters.  */
---- gcc-4.0.2/gcc/config/rs6000/linux.h
-+++ gcc-4.0.2/gcc/config/rs6000/linux.h
-@@ -69,7 +69,11 @@
- #define LINK_START_DEFAULT_SPEC "%(link_start_linux)"
- #undef        LINK_OS_DEFAULT_SPEC
-+#ifdef USE_UCLIBC
-+#define LINK_OS_DEFAULT_SPEC "%(link_os_linux_uclibc)"
-+#else
- #define LINK_OS_DEFAULT_SPEC "%(link_os_linux)"
-+#endif
- #define LINK_GCC_C_SEQUENCE_SPEC \
-   "%{static:--start-group} %G %L %{static:--end-group}%{!static:%G}"
---- gcc-4.0.2/gcc/config/rs6000/sysv4.h
-+++ gcc-4.0.2/gcc/config/rs6000/sysv4.h
-@@ -949,6 +949,7 @@
-   mcall-linux  : %(link_os_linux)       ; \
-   mcall-gnu    : %(link_os_gnu)         ; \
-   mcall-netbsd : %(link_os_netbsd)      ; \
-+  mcall-linux-uclibc : %(link_os_linux_uclibc); \
-   mcall-openbsd: %(link_os_openbsd)     ; \
-                : %(link_os_default)     }"
-@@ -1127,6 +1128,10 @@
-   %{rdynamic:-export-dynamic} \
-   %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}}}"
-+#define LINK_OS_LINUX_UCLIBC_SPEC "-m elf32ppclinux %{!shared: %{!static: \
-+  %{rdynamic:-export-dynamic} \
-+  %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}}}"
-+
- #if defined(HAVE_LD_EH_FRAME_HDR)
- # define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
- #endif
-@@ -1293,6 +1298,7 @@
-   { "link_os_sim",            LINK_OS_SIM_SPEC },                     \
-   { "link_os_freebsd",                LINK_OS_FREEBSD_SPEC },                 \
-   { "link_os_linux",          LINK_OS_LINUX_SPEC },                   \
-+  { "link_os_linux_uclibc",   LINK_OS_LINUX_UCLIBC_SPEC },            \
-   { "link_os_gnu",            LINK_OS_GNU_SPEC },                     \
-   { "link_os_netbsd",         LINK_OS_NETBSD_SPEC },                  \
-   { "link_os_openbsd",                LINK_OS_OPENBSD_SPEC },                 \
---- gcc-4.0.2/gcc/config/s390/linux.h
-+++ gcc-4.0.2/gcc/config/s390/linux.h
-@@ -77,6 +77,13 @@
- #define MULTILIB_DEFAULTS { "m31" }
- #endif
-+#ifdef USE_UCLIBC
-+#define ELF31_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
-+#define ELF64_DYNAMIC_LINKER "/lib/ld64-uClibc.so.0"
-+#else
-+#define ELF31_DYNAMIC_LINKER "/lib/ld.so.1"
-+#define ELF64_DYNAMIC_LINKER "/lib/ld64.so.1"
-+#endif
- #undef  LINK_SPEC
- #define LINK_SPEC \
-   "%{m31:-m elf_s390}%{m64:-m elf64_s390} \
-@@ -86,8 +93,8 @@
-       %{!static: \
-       %{rdynamic:-export-dynamic} \
-       %{!dynamic-linker: \
--          %{m31:-dynamic-linker /lib/ld.so.1} \
--          %{m64:-dynamic-linker /lib/ld64.so.1}}}}"
-+          %{m31:-dynamic-linker " ELF31_DYNAMIC_LINKER "} \
-+          %{m64:-dynamic-linker " ELF64_DYNAMIC_LINKER "}}}}"
- #define TARGET_ASM_FILE_END file_end_indicate_exec_stack
---- gcc-4.0.2/gcc/config/sh/linux.h
-+++ gcc-4.0.2/gcc/config/sh/linux.h
-@@ -67,11 +67,16 @@
- #undef SUBTARGET_LINK_EMUL_SUFFIX
- #define SUBTARGET_LINK_EMUL_SUFFIX "_linux"
- #undef SUBTARGET_LINK_SPEC
-+#ifdef USE_UCLIBC
-+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
-+#else
-+#define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.2"
-+#endif
- #define SUBTARGET_LINK_SPEC \
-   "%{shared:-shared} \
-    %{!static: \
-      %{rdynamic:-export-dynamic} \
--     %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
-+     %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
-    %{static:-static}"
- #undef LIB_SPEC
---- gcc-4.0.2/gcc/config/sparc/linux.h
-+++ gcc-4.0.2/gcc/config/sparc/linux.h
-@@ -130,14 +130,19 @@
- /* If ELF is the default format, we should not use /lib/elf.  */
-+#ifdef USE_UCLIBC
-+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
-+#else
-+#define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.2"
-+#endif
- #undef  LINK_SPEC
- #define LINK_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \
-   %{!mno-relax:%{!r:-relax}} \
-   %{!shared: \
-     %{!ibcs: \
-       %{!static: \
-         %{rdynamic:-export-dynamic} \
--        %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
-+        %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
-         %{static:-static}}}"
- /* The sun bundled assembler doesn't accept -Yd, (and neither does gas).
---- gcc-4.0.2/gcc/config/sparc/linux64.h
-+++ gcc-4.0.2/gcc/config/sparc/linux64.h
-@@ -167,12 +166,17 @@
-   { "link_arch_default", LINK_ARCH_DEFAULT_SPEC },      \
-   { "link_arch",       LINK_ARCH_SPEC },
-     
-+#ifdef USE_UCLIBC
-+#define ELF_DYNAMIC_LINKER    "/lib/ld-uClibc.so.0"
-+#else
-+#define ELF_DYNAMIC_LINKER  "/lib/ld-linux.so.2"
-+#endif
- #define LINK_ARCH32_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \
-   %{!shared: \
-     %{!ibcs: \
-       %{!static: \
-         %{rdynamic:-export-dynamic} \
--        %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
-+        %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
-         %{static:-static}}} \
- "
---- gcc-4.0.2/libtool.m4
-+++ gcc-4.0.2/libtool.m4
-@@ -682,6 +682,11 @@
-   lt_cv_deplibs_check_method=pass_all
-   ;;
-+linux-uclibc*)
-+  lt_cv_deplibs_check_method=pass_all
-+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
-+  ;;
-+
- netbsd* | knetbsd*-gnu)
-   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
-     [lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$']
---- gcc-4.0.2/ltconfig
-+++ gcc-4.0.2/ltconfig
-@@ -603,6 +603,7 @@
- # Transform linux* to *-*-linux-gnu*, to support old configure scripts.
- case $host_os in
-+linux-uclibc*) ;;
- linux-gnu*) ;;
- linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
- esac
-@@ -1274,6 +1275,23 @@
-   dynamic_linker='GNU/Linux ld.so'
-   ;;
-+linux-uclibc*)
-+  version_type=linux
-+  need_lib_prefix=no
-+  need_version=no
-+  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
-+  soname_spec='${libname}${release}.so$major'
-+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
-+  shlibpath_var=LD_LIBRARY_PATH
-+  shlibpath_overrides_runpath=no
-+  # This implies no fast_install, which is unacceptable.
-+  # Some rework will be needed to allow for fast_install
-+  # before this can be enabled.
-+  hardcode_into_libs=yes
-+  # Assume using the uClibc dynamic linker.
-+  dynamic_linker="uClibc ld.so"
-+  ;;
-+
- netbsd*)
-   need_lib_prefix=no
-   need_version=no
---- gcc-4.0.2/libffi/configure
-+++ gcc-4.0.2/libffi/configure
-@@ -3457,6 +3457,11 @@
-   lt_cv_deplibs_check_method=pass_all
-   ;;
-+linux-uclibc*)
-+  lt_cv_deplibs_check_method=pass_all
-+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
-+  ;;
-+
- netbsd* | knetbsd*-gnu)
-   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
-     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
---- gcc-4.0.2/libgfortran/configure
-+++ gcc-4.0.2/libgfortran/configure
-@@ -3681,6 +3681,11 @@
-   lt_cv_deplibs_check_method=pass_all
-   ;;
-+linux-uclibc*)
-+  lt_cv_deplibs_check_method=pass_all
-+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
-+  ;;
-+
- netbsd* | knetbsd*-gnu)
-   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
-     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
---- gcc-4.0.2/libjava/configure
-+++ gcc-4.0.2/libjava/configure
-@@ -4351,6 +4351,11 @@
-   lt_cv_deplibs_check_method=pass_all
-   ;;
-+linux-uclibc*)
-+  lt_cv_deplibs_check_method=pass_all
-+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
-+  ;;
-+
- netbsd* | knetbsd*-gnu)
-   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
-     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
---- gcc-4.0.2/libmudflap/configure
-+++ gcc-4.0.2/libmudflap/configure
-@@ -5380,6 +5380,11 @@
-   lt_cv_deplibs_check_method=pass_all
-   ;;
-+linux-uclibc*)
-+  lt_cv_deplibs_check_method=pass_all
-+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
-+  ;;
-+
- netbsd* | knetbsd*-gnu)
-   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
-     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
---- gcc-4.0.2/libobjc/configure
-+++ gcc-4.0.2/libobjc/configure
-@@ -3283,6 +3283,11 @@
-   lt_cv_deplibs_check_method=pass_all
-   ;;
-+linux-uclibc*)
-+  lt_cv_deplibs_check_method=pass_all
-+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
-+  ;;
-+
- netbsd* | knetbsd*-gnu)
-   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
-     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
---- gcc-4.0.2/boehm-gc/configure
-+++ gcc-4.0.2/boehm-gc/configure
-@@ -4320,6 +4320,11 @@
-   lt_cv_deplibs_check_method=pass_all
-   ;;
-+linux-uclibc*)
-+  lt_cv_deplibs_check_method=pass_all
-+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
-+  ;;
-+
- netbsd* | knetbsd*-gnu)
-   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
-     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
---- gcc-4.0.2/configure
-+++ gcc-4.0.2/configure
-@@ -1141,7 +1141,7 @@
-     ;;
- "")
-     case "${target}" in
--    *-*-linux*-gnu | *-*-gnu* | *-*-k*bsd*-gnu)
-+    *-*-linux*-gnu | *-*-gnu* | *-*-k*bsd*-gnu | *-*-linux-uclibc*)
-         # Enable libmudflap by default in GNU and friends.
-       ;;
-     *-*-freebsd*)
---- gcc-4.0.2/configure.in
-+++ gcc-4.0.2/configure.in
-@@ -350,7 +350,7 @@
-     ;;
- "")
-     case "${target}" in
--    *-*-linux*-gnu | *-*-gnu* | *-*-k*bsd*-gnu)
-+    *-*-linux*-gnu | *-*-gnu* | *-*-k*bsd*-gnu | *-*-linux-uclibc*)
-         # Enable libmudflap by default in GNU and friends.
-       ;;
-     *-*-freebsd*)
---- gcc-4.0.2/contrib/regression/objs-gcc.sh
-+++ gcc-4.0.2/contrib/regression/objs-gcc.sh
-@@ -105,6 +105,10 @@
-  then
-   make all-gdb all-dejagnu all-ld || exit 1
-   make install-gdb install-dejagnu install-ld || exit 1
-+elif [ $H_REAL_TARGET = $H_REAL_HOST -a $H_REAL_TARGET = i686-pc-linux-uclibc ]
-+ then
-+  make all-gdb all-dejagnu all-ld || exit 1
-+  make install-gdb install-dejagnu install-ld || exit 1
- elif [ $H_REAL_TARGET = $H_REAL_HOST ] ; then
-   make bootstrap || exit 1
-   make install || exit 1
---- gcc-4.0.2/zlib/configure
-+++ gcc-4.0.2/zlib/configure
-@@ -3426,6 +3426,11 @@
-   lt_cv_deplibs_check_method=pass_all
-   ;;
-+linux-uclibc*)
-+  lt_cv_deplibs_check_method=pass_all
-+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
-+  ;;
-+
- netbsd* | knetbsd*-gnu)
-   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
-     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
diff --git a/src/patches/gcc-uclibc-locale.patch b/src/patches/gcc-uclibc-locale.patch
deleted file mode 100644 (file)
index ac4cf97..0000000
+++ /dev/null
@@ -1,3237 +0,0 @@
-diff -urN gcc-4.0.0-100/libstdc++-v3/acinclude.m4 gcc-4.0.0/libstdc++-v3/acinclude.m4
---- gcc-4.0.0-100/libstdc++-v3/acinclude.m4    2005-04-30 13:06:53.000000000 -0500
-+++ gcc-4.0.0/libstdc++-v3/acinclude.m4        2005-04-28 20:19:01.000000000 -0500
-@@ -1104,7 +1104,7 @@
-   AC_MSG_CHECKING([for C locale to use])
-   GLIBCXX_ENABLE(clocale,auto,[@<:@=MODEL@:>@],
-     [use MODEL for target locale package],
--    [permit generic|gnu|ieee_1003.1-2001|yes|no|auto])
-+    [permit generic|gnu|ieee_1003.1-2001|uclibc|yes|no|auto])
-   
-   # If they didn't use this option switch, or if they specified --enable
-   # with no specific model, we'll have to look for one.  If they
-@@ -1120,6 +1120,9 @@
-   # Default to "generic".
-   if test $enable_clocale_flag = auto; then
-     case ${target_os} in
-+      *-uclibc*)
-+        enable_clocale_flag=uclibc
-+        ;;
-       linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu)
-         AC_EGREP_CPP([_GLIBCXX_ok], [
-         #include <features.h>
-@@ -1263,6 +1266,40 @@
-       CTIME_CC=config/locale/generic/time_members.cc
-       CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h
-       ;;
-+    uclibc)
-+      AC_MSG_RESULT(uclibc)
-+
-+      # Declare intention to use gettext, and add support for specific
-+      # languages.
-+      # For some reason, ALL_LINGUAS has to be before AM-GNU-GETTEXT
-+      ALL_LINGUAS="de fr"
-+
-+      # Don't call AM-GNU-GETTEXT here. Instead, assume glibc.
-+      AC_CHECK_PROG(check_msgfmt, msgfmt, yes, no)
-+      if test x"$check_msgfmt" = x"yes" && test x"$enable_nls" = x"yes"; then
-+        USE_NLS=yes
-+      fi
-+      # Export the build objects.
-+      for ling in $ALL_LINGUAS; do \
-+        glibcxx_MOFILES="$glibcxx_MOFILES $ling.mo"; \
-+        glibcxx_POFILES="$glibcxx_POFILES $ling.po"; \
-+      done
-+      AC_SUBST(glibcxx_MOFILES)
-+      AC_SUBST(glibcxx_POFILES)
-+
-+      CLOCALE_H=config/locale/uclibc/c_locale.h
-+      CLOCALE_CC=config/locale/uclibc/c_locale.cc
-+      CCODECVT_CC=config/locale/uclibc/codecvt_members.cc
-+      CCOLLATE_CC=config/locale/uclibc/collate_members.cc
-+      CCTYPE_CC=config/locale/uclibc/ctype_members.cc
-+      CMESSAGES_H=config/locale/uclibc/messages_members.h
-+      CMESSAGES_CC=config/locale/uclibc/messages_members.cc
-+      CMONEY_CC=config/locale/uclibc/monetary_members.cc
-+      CNUMERIC_CC=config/locale/uclibc/numeric_members.cc
-+      CTIME_H=config/locale/uclibc/time_members.h
-+      CTIME_CC=config/locale/uclibc/time_members.cc
-+      CLOCALE_INTERNAL_H=config/locale/uclibc/c++locale_internal.h
-+      ;;
-   esac
-   # This is where the testsuite looks for locale catalogs, using the
-diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/c++locale_internal.h gcc-4.0.0/libstdc++-v3/config/locale/uclibc/c++locale_internal.h
---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/c++locale_internal.h       1969-12-31 18:00:00.000000000 -0600
-+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/c++locale_internal.h   2005-04-28 01:13:15.000000000 -0500
-@@ -0,0 +1,59 @@
-+// Prototypes for GLIBC thread locale __-prefixed functions -*- C++ -*-
-+
-+// Copyright (C) 2002, 2004 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-+// any later version.
-+
-+// This library is distributed in the hope that it will be useful,
-+// but WITHOUT ANY WARRANTY; without even the implied warranty of
-+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+// GNU General Public License for more details.
-+
-+// You should have received a copy of the GNU General Public License along
-+// with this library; see the file COPYING.  If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction.  Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License.  This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+// Written by Jakub Jelinek <jakub@redhat.com>
-+
-+#include <clocale>
-+
-+#ifdef __UCLIBC_MJN3_ONLY__
-+#warning clean this up
-+#endif
-+
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+                                                  
-+extern "C" __typeof(iswctype_l) __iswctype_l;
-+extern "C" __typeof(nl_langinfo_l) __nl_langinfo_l;
-+extern "C" __typeof(strcoll_l) __strcoll_l;
-+extern "C" __typeof(strftime_l) __strftime_l;
-+extern "C" __typeof(strtod_l) __strtod_l;
-+extern "C" __typeof(strtof_l) __strtof_l;
-+extern "C" __typeof(strtold_l) __strtold_l;
-+extern "C" __typeof(strxfrm_l) __strxfrm_l;
-+extern "C" __typeof(towlower_l) __towlower_l;
-+extern "C" __typeof(towupper_l) __towupper_l;
-+extern "C" __typeof(wcscoll_l) __wcscoll_l;
-+extern "C" __typeof(wcsftime_l) __wcsftime_l;
-+extern "C" __typeof(wcsxfrm_l) __wcsxfrm_l;
-+extern "C" __typeof(wctype_l) __wctype_l;
-+extern "C" __typeof(newlocale) __newlocale;
-+extern "C" __typeof(freelocale) __freelocale;
-+extern "C" __typeof(duplocale) __duplocale;
-+extern "C" __typeof(uselocale) __uselocale;
-+
-+#endif // GLIBC 2.3 and later
-diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/c_locale.cc gcc-4.0.0/libstdc++-v3/config/locale/uclibc/c_locale.cc
---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/c_locale.cc        1969-12-31 18:00:00.000000000 -0600
-+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/c_locale.cc    2005-04-28 01:13:15.000000000 -0500
-@@ -0,0 +1,160 @@
-+// Wrapper for underlying C-language localization -*- C++ -*-
-+
-+// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-+// any later version.
-+
-+// This library is distributed in the hope that it will be useful,
-+// but WITHOUT ANY WARRANTY; without even the implied warranty of
-+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+// GNU General Public License for more details.
-+
-+// You should have received a copy of the GNU General Public License along
-+// with this library; see the file COPYING.  If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction.  Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License.  This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.8  Standard locale categories.
-+//
-+
-+// Written by Benjamin Kosnik <bkoz@redhat.com>
-+
-+#include <cerrno>  // For errno
-+#include <locale>
-+#include <stdexcept>
-+#include <langinfo.h>
-+#include <bits/c++locale_internal.h>
-+
-+#ifndef __UCLIBC_HAS_XLOCALE__
-+#define __strtol_l(S, E, B, L)      strtol((S), (E), (B))
-+#define __strtoul_l(S, E, B, L)     strtoul((S), (E), (B))
-+#define __strtoll_l(S, E, B, L)     strtoll((S), (E), (B))
-+#define __strtoull_l(S, E, B, L)    strtoull((S), (E), (B))
-+#define __strtof_l(S, E, L)         strtof((S), (E))
-+#define __strtod_l(S, E, L)         strtod((S), (E))
-+#define __strtold_l(S, E, L)        strtold((S), (E))
-+#warning should dummy __newlocale check for C|POSIX ?
-+#define __newlocale(a, b, c)        NULL
-+#define __freelocale(a)             ((void)0)
-+#define __duplocale(a)              __c_locale()
-+#endif
-+
-+namespace std 
-+{
-+  template<>
-+    void
-+    __convert_to_v(const char* __s, float& __v, ios_base::iostate& __err, 
-+                 const __c_locale& __cloc)
-+    {
-+      if (!(__err & ios_base::failbit))
-+      {
-+        char* __sanity;
-+        errno = 0;
-+        float __f = __strtof_l(__s, &__sanity, __cloc);
-+          if (__sanity != __s && errno != ERANGE)
-+          __v = __f;
-+        else
-+          __err |= ios_base::failbit;
-+      }
-+    }
-+
-+  template<>
-+    void
-+    __convert_to_v(const char* __s, double& __v, ios_base::iostate& __err, 
-+                 const __c_locale& __cloc)
-+    {
-+      if (!(__err & ios_base::failbit))
-+      {
-+        char* __sanity;
-+        errno = 0;
-+        double __d = __strtod_l(__s, &__sanity, __cloc);
-+          if (__sanity != __s && errno != ERANGE)
-+          __v = __d;
-+        else
-+          __err |= ios_base::failbit;
-+      }
-+    }
-+
-+  template<>
-+    void
-+    __convert_to_v(const char* __s, long double& __v, ios_base::iostate& __err,
-+                 const __c_locale& __cloc)
-+    {
-+      if (!(__err & ios_base::failbit))
-+      {
-+        char* __sanity;
-+        errno = 0;
-+        long double __ld = __strtold_l(__s, &__sanity, __cloc);
-+          if (__sanity != __s && errno != ERANGE)
-+          __v = __ld;
-+        else
-+          __err |= ios_base::failbit;
-+      }
-+    }
-+
-+  void
-+  locale::facet::_S_create_c_locale(__c_locale& __cloc, const char* __s, 
-+                                  __c_locale __old)
-+  {
-+    __cloc = __newlocale(1 << LC_ALL, __s, __old);
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+    if (!__cloc)
-+      {
-+      // This named locale is not supported by the underlying OS.
-+      __throw_runtime_error(__N("locale::facet::_S_create_c_locale "
-+                            "name not valid"));
-+      }
-+#endif
-+  }
-+  
-+  void
-+  locale::facet::_S_destroy_c_locale(__c_locale& __cloc)
-+  {
-+    if (_S_get_c_locale() != __cloc)
-+      __freelocale(__cloc); 
-+  }
-+
-+  __c_locale
-+  locale::facet::_S_clone_c_locale(__c_locale& __cloc)
-+  { return __duplocale(__cloc); }
-+} // namespace std
-+
-+namespace __gnu_cxx
-+{
-+  const char* const category_names[6 + _GLIBCXX_NUM_CATEGORIES] =
-+    {
-+      "LC_CTYPE", 
-+      "LC_NUMERIC",
-+      "LC_TIME", 
-+      "LC_COLLATE", 
-+      "LC_MONETARY",
-+      "LC_MESSAGES", 
-+#if _GLIBCXX_NUM_CATEGORIES != 0
-+      "LC_PAPER", 
-+      "LC_NAME", 
-+      "LC_ADDRESS",
-+      "LC_TELEPHONE", 
-+      "LC_MEASUREMENT", 
-+      "LC_IDENTIFICATION" 
-+#endif
-+    };
-+}
-+
-+namespace std
-+{
-+  const char* const* const locale::_S_categories = __gnu_cxx::category_names;
-+}  // namespace std
-diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/c_locale.h gcc-4.0.0/libstdc++-v3/config/locale/uclibc/c_locale.h
---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/c_locale.h 1969-12-31 18:00:00.000000000 -0600
-+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/c_locale.h     2005-04-28 01:13:15.000000000 -0500
-@@ -0,0 +1,115 @@
-+// Wrapper for underlying C-language localization -*- C++ -*-
-+
-+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-+// any later version.
-+
-+// This library is distributed in the hope that it will be useful,
-+// but WITHOUT ANY WARRANTY; without even the implied warranty of
-+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+// GNU General Public License for more details.
-+
-+// You should have received a copy of the GNU General Public License along
-+// with this library; see the file COPYING.  If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction.  Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License.  This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.8  Standard locale categories.
-+//
-+
-+// Written by Benjamin Kosnik <bkoz@redhat.com>
-+
-+#ifndef _C_LOCALE_H
-+#define _C_LOCALE_H 1
-+
-+#pragma GCC system_header
-+
-+#include <cstring>              // get std::strlen
-+#include <cstdio>               // get std::snprintf or std::sprintf
-+#include <clocale>
-+#include <langinfo.h>         // For codecvt
-+#ifdef __UCLIBC_MJN3_ONLY__
-+#warning fix this
-+#endif
-+#ifdef __UCLIBC_HAS_LOCALE__
-+#include <iconv.h>            // For codecvt using iconv, iconv_t
-+#endif
-+#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__
-+#include <libintl.h>          // For messages
-+#endif
-+
-+#ifdef __UCLIBC_MJN3_ONLY__
-+#warning what is _GLIBCXX_C_LOCALE_GNU for
-+#endif
-+#define _GLIBCXX_C_LOCALE_GNU 1
-+
-+#ifdef __UCLIBC_MJN3_ONLY__
-+#warning fix categories
-+#endif
-+// #define _GLIBCXX_NUM_CATEGORIES 6
-+#define _GLIBCXX_NUM_CATEGORIES 0
-+ 
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+namespace __gnu_cxx
-+{
-+  extern "C" __typeof(uselocale) __uselocale;
-+}
-+#endif
-+
-+namespace std
-+{
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+  typedef __locale_t          __c_locale;
-+#else
-+  typedef int*                        __c_locale;
-+#endif
-+
-+  // Convert numeric value of type _Tv to string and return length of
-+  // string.  If snprintf is available use it, otherwise fall back to
-+  // the unsafe sprintf which, in general, can be dangerous and should
-+  // be avoided.
-+  template<typename _Tv>
-+    int
-+    __convert_from_v(char* __out, const int __size, const char* __fmt,
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+                   _Tv __v, const __c_locale& __cloc, int __prec)
-+    {
-+      __c_locale __old = __gnu_cxx::__uselocale(__cloc);
-+#else
-+                   _Tv __v, const __c_locale&, int __prec)
-+    {
-+# ifdef __UCLIBC_HAS_LOCALE__
-+      char* __old = std::setlocale(LC_ALL, NULL);
-+      char* __sav = new char[std::strlen(__old) + 1];
-+      std::strcpy(__sav, __old);
-+      std::setlocale(LC_ALL, "C");
-+# endif
-+#endif
-+
-+      const int __ret = std::snprintf(__out, __size, __fmt, __prec, __v);
-+
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+      __gnu_cxx::__uselocale(__old);
-+#elif defined __UCLIBC_HAS_LOCALE__
-+      std::setlocale(LC_ALL, __sav);
-+      delete [] __sav;
-+#endif
-+      return __ret;
-+    }
-+}
-+
-+#endif
-diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/codecvt_members.cc gcc-4.0.0/libstdc++-v3/config/locale/uclibc/codecvt_members.cc
---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/codecvt_members.cc 1969-12-31 18:00:00.000000000 -0600
-+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/codecvt_members.cc     2005-04-28 01:13:15.000000000 -0500
-@@ -0,0 +1,306 @@
-+// std::codecvt implementation details, GNU version -*- C++ -*-
-+
-+// Copyright (C) 2002, 2003 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-+// any later version.
-+
-+// This library is distributed in the hope that it will be useful,
-+// but WITHOUT ANY WARRANTY; without even the implied warranty of
-+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+// GNU General Public License for more details.
-+
-+// You should have received a copy of the GNU General Public License along
-+// with this library; see the file COPYING.  If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction.  Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License.  This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.2.1.5 - Template class codecvt
-+//
-+
-+// Written by Benjamin Kosnik <bkoz@redhat.com>
-+
-+#include <locale>
-+#include <bits/c++locale_internal.h>
-+
-+namespace std
-+{
-+  // Specializations.
-+#ifdef _GLIBCXX_USE_WCHAR_T
-+  codecvt_base::result
-+  codecvt<wchar_t, char, mbstate_t>::
-+  do_out(state_type& __state, const intern_type* __from, 
-+       const intern_type* __from_end, const intern_type*& __from_next,
-+       extern_type* __to, extern_type* __to_end,
-+       extern_type*& __to_next) const
-+  {
-+    result __ret = ok;
-+    state_type __tmp_state(__state);
-+
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+    __c_locale __old = __uselocale(_M_c_locale_codecvt);
-+#endif
-+
-+    // wcsnrtombs is *very* fast but stops if encounters NUL characters:
-+    // in case we fall back to wcrtomb and then continue, in a loop.
-+    // NB: wcsnrtombs is a GNU extension
-+    for (__from_next = __from, __to_next = __to;
-+       __from_next < __from_end && __to_next < __to_end
-+       && __ret == ok;)
-+      {
-+      const intern_type* __from_chunk_end = wmemchr(__from_next, L'\0',
-+                                                    __from_end - __from_next);
-+      if (!__from_chunk_end)
-+        __from_chunk_end = __from_end;
-+
-+      __from = __from_next;
-+      const size_t __conv = wcsnrtombs(__to_next, &__from_next,
-+                                       __from_chunk_end - __from_next,
-+                                       __to_end - __to_next, &__state);
-+      if (__conv == static_cast<size_t>(-1))
-+        {
-+          // In case of error, in order to stop at the exact place we
-+          // have to start again from the beginning with a series of
-+          // wcrtomb.
-+          for (; __from < __from_next; ++__from)
-+            __to_next += wcrtomb(__to_next, *__from, &__tmp_state);
-+          __state = __tmp_state;
-+          __ret = error;
-+        }
-+      else if (__from_next && __from_next < __from_chunk_end)
-+        {
-+          __to_next += __conv;
-+          __ret = partial;
-+        }
-+      else
-+        {
-+          __from_next = __from_chunk_end;
-+          __to_next += __conv;
-+        }
-+
-+      if (__from_next < __from_end && __ret == ok)
-+        {
-+          extern_type __buf[MB_LEN_MAX];
-+          __tmp_state = __state;
-+          const size_t __conv = wcrtomb(__buf, *__from_next, &__tmp_state);
-+          if (__conv > static_cast<size_t>(__to_end - __to_next))
-+            __ret = partial;
-+          else
-+            {
-+              memcpy(__to_next, __buf, __conv);
-+              __state = __tmp_state;
-+              __to_next += __conv;
-+              ++__from_next;
-+            }
-+        }
-+      }
-+
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+    __uselocale(__old);
-+#endif
-+
-+    return __ret; 
-+  }
-+  
-+  codecvt_base::result
-+  codecvt<wchar_t, char, mbstate_t>::
-+  do_in(state_type& __state, const extern_type* __from, 
-+      const extern_type* __from_end, const extern_type*& __from_next,
-+      intern_type* __to, intern_type* __to_end,
-+      intern_type*& __to_next) const
-+  {
-+    result __ret = ok;
-+    state_type __tmp_state(__state);
-+
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+    __c_locale __old = __uselocale(_M_c_locale_codecvt);
-+#endif
-+
-+    // mbsnrtowcs is *very* fast but stops if encounters NUL characters:
-+    // in case we store a L'\0' and then continue, in a loop.
-+    // NB: mbsnrtowcs is a GNU extension
-+    for (__from_next = __from, __to_next = __to;
-+       __from_next < __from_end && __to_next < __to_end
-+       && __ret == ok;)
-+      {
-+      const extern_type* __from_chunk_end;
-+      __from_chunk_end = static_cast<const extern_type*>(memchr(__from_next, '\0',
-+                                                                __from_end
-+                                                                - __from_next));
-+      if (!__from_chunk_end)
-+        __from_chunk_end = __from_end;
-+
-+      __from = __from_next;
-+      size_t __conv = mbsnrtowcs(__to_next, &__from_next,
-+                                 __from_chunk_end - __from_next,
-+                                 __to_end - __to_next, &__state);
-+      if (__conv == static_cast<size_t>(-1))
-+        {
-+          // In case of error, in order to stop at the exact place we
-+          // have to start again from the beginning with a series of
-+          // mbrtowc.
-+          for (;; ++__to_next, __from += __conv)
-+            {
-+              __conv = mbrtowc(__to_next, __from, __from_end - __from,
-+                               &__tmp_state);
-+              if (__conv == static_cast<size_t>(-1)
-+                  || __conv == static_cast<size_t>(-2))
-+                break;
-+            }
-+          __from_next = __from;
-+          __state = __tmp_state;          
-+          __ret = error;
-+        }
-+      else if (__from_next && __from_next < __from_chunk_end)
-+        {
-+          // It is unclear what to return in this case (see DR 382). 
-+          __to_next += __conv;
-+          __ret = partial;
-+        }
-+      else
-+        {
-+          __from_next = __from_chunk_end;
-+          __to_next += __conv;
-+        }
-+
-+      if (__from_next < __from_end && __ret == ok)
-+        {
-+          if (__to_next < __to_end)
-+            {
-+              // XXX Probably wrong for stateful encodings
-+              __tmp_state = __state;          
-+              ++__from_next;
-+              *__to_next++ = L'\0';
-+            }
-+          else
-+            __ret = partial;
-+        }
-+      }
-+
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+    __uselocale(__old);
-+#endif
-+
-+    return __ret; 
-+  }
-+
-+  int 
-+  codecvt<wchar_t, char, mbstate_t>::
-+  do_encoding() const throw()
-+  {
-+    // XXX This implementation assumes that the encoding is
-+    // stateless and is either single-byte or variable-width.
-+    int __ret = 0;
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+    __c_locale __old = __uselocale(_M_c_locale_codecvt);
-+#endif
-+    if (MB_CUR_MAX == 1)
-+      __ret = 1;
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+    __uselocale(__old);
-+#endif
-+    return __ret;
-+  }  
-+
-+  int 
-+  codecvt<wchar_t, char, mbstate_t>::
-+  do_max_length() const throw()
-+  {
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+    __c_locale __old = __uselocale(_M_c_locale_codecvt);
-+#endif
-+    // XXX Probably wrong for stateful encodings.
-+    int __ret = MB_CUR_MAX;
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+    __uselocale(__old);
-+#endif
-+    return __ret;
-+  }
-+  
-+  int 
-+  codecvt<wchar_t, char, mbstate_t>::
-+  do_length(state_type& __state, const extern_type* __from,
-+          const extern_type* __end, size_t __max) const
-+  {
-+    int __ret = 0;
-+    state_type __tmp_state(__state);
-+
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+    __c_locale __old = __uselocale(_M_c_locale_codecvt);
-+#endif
-+
-+    // mbsnrtowcs is *very* fast but stops if encounters NUL characters:
-+    // in case we advance past it and then continue, in a loop.
-+    // NB: mbsnrtowcs is a GNU extension
-+  
-+    // A dummy internal buffer is needed in order for mbsnrtocws to consider
-+    // its fourth parameter (it wouldn't with NULL as first parameter).
-+    wchar_t* __to = static_cast<wchar_t*>(__builtin_alloca(sizeof(wchar_t) 
-+                                                         * __max));
-+    while (__from < __end && __max)
-+      {
-+      const extern_type* __from_chunk_end;
-+      __from_chunk_end = static_cast<const extern_type*>(memchr(__from, '\0',
-+                                                                __end
-+                                                                - __from));
-+      if (!__from_chunk_end)
-+        __from_chunk_end = __end;
-+
-+      const extern_type* __tmp_from = __from;
-+      size_t __conv = mbsnrtowcs(__to, &__from,
-+                                 __from_chunk_end - __from,
-+                                 __max, &__state);
-+      if (__conv == static_cast<size_t>(-1))
-+        {
-+          // In case of error, in order to stop at the exact place we
-+          // have to start again from the beginning with a series of
-+          // mbrtowc.
-+          for (__from = __tmp_from;; __from += __conv)
-+            {
-+              __conv = mbrtowc(NULL, __from, __end - __from,
-+                               &__tmp_state);
-+              if (__conv == static_cast<size_t>(-1)
-+                  || __conv == static_cast<size_t>(-2))
-+                break;
-+            }
-+          __state = __tmp_state;
-+          __ret += __from - __tmp_from;
-+          break;
-+        }
-+      if (!__from)
-+        __from = __from_chunk_end;
-+      
-+      __ret += __from - __tmp_from;
-+      __max -= __conv;
-+
-+      if (__from < __end && __max)
-+        {
-+          // XXX Probably wrong for stateful encodings
-+          __tmp_state = __state;
-+          ++__from;
-+          ++__ret;
-+          --__max;
-+        }
-+      }
-+
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+    __uselocale(__old);
-+#endif
-+
-+    return __ret; 
-+  }
-+#endif
-+}
-diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/collate_members.cc gcc-4.0.0/libstdc++-v3/config/locale/uclibc/collate_members.cc
---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/collate_members.cc 1969-12-31 18:00:00.000000000 -0600
-+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/collate_members.cc     2005-04-28 01:13:15.000000000 -0500
-@@ -0,0 +1,80 @@
-+// std::collate implementation details, GNU version -*- C++ -*-
-+
-+// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-+// any later version.
-+
-+// This library is distributed in the hope that it will be useful,
-+// but WITHOUT ANY WARRANTY; without even the implied warranty of
-+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+// GNU General Public License for more details.
-+
-+// You should have received a copy of the GNU General Public License along
-+// with this library; see the file COPYING.  If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction.  Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License.  This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.2.4.1.2  collate virtual functions
-+//
-+
-+// Written by Benjamin Kosnik <bkoz@redhat.com>
-+
-+#include <locale>
-+#include <bits/c++locale_internal.h>
-+
-+#ifndef __UCLIBC_HAS_XLOCALE__
-+#define __strcoll_l(S1, S2, L)      strcoll((S1), (S2))
-+#define __strxfrm_l(S1, S2, N, L)   strxfrm((S1), (S2), (N))
-+#define __wcscoll_l(S1, S2, L)      wcscoll((S1), (S2))
-+#define __wcsxfrm_l(S1, S2, N, L)   wcsxfrm((S1), (S2), (N))
-+#endif
-+
-+namespace std
-+{
-+  // These are basically extensions to char_traits, and perhaps should
-+  // be put there instead of here.
-+  template<>
-+    int 
-+    collate<char>::_M_compare(const char* __one, const char* __two) const
-+    { 
-+      int __cmp = __strcoll_l(__one, __two, _M_c_locale_collate);
-+      return (__cmp >> (8 * sizeof (int) - 2)) | (__cmp != 0);
-+    }
-+  
-+  template<>
-+    size_t
-+    collate<char>::_M_transform(char* __to, const char* __from, 
-+                              size_t __n) const 
-+    { return __strxfrm_l(__to, __from, __n, _M_c_locale_collate); }
-+
-+#ifdef _GLIBCXX_USE_WCHAR_T
-+  template<>
-+    int 
-+    collate<wchar_t>::_M_compare(const wchar_t* __one, 
-+                               const wchar_t* __two) const
-+    {
-+      int __cmp = __wcscoll_l(__one, __two, _M_c_locale_collate);
-+      return (__cmp >> (8 * sizeof (int) - 2)) | (__cmp != 0);
-+    }
-+  
-+  template<>
-+    size_t
-+    collate<wchar_t>::_M_transform(wchar_t* __to, const wchar_t* __from,
-+                                 size_t __n) const
-+    { return __wcsxfrm_l(__to, __from, __n, _M_c_locale_collate); }
-+#endif
-+}
-diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/ctype_members.cc gcc-4.0.0/libstdc++-v3/config/locale/uclibc/ctype_members.cc
---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/ctype_members.cc   1969-12-31 18:00:00.000000000 -0600
-+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/ctype_members.cc       2005-04-28 01:13:15.000000000 -0500
-@@ -0,0 +1,300 @@
-+// std::ctype implementation details, GNU version -*- C++ -*-
-+
-+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-+// any later version.
-+
-+// This library is distributed in the hope that it will be useful,
-+// but WITHOUT ANY WARRANTY; without even the implied warranty of
-+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+// GNU General Public License for more details.
-+
-+// You should have received a copy of the GNU General Public License along
-+// with this library; see the file COPYING.  If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction.  Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License.  This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.2.1.1.2  ctype virtual functions.
-+//
-+
-+// Written by Benjamin Kosnik <bkoz@redhat.com>
-+
-+#define _LIBC
-+#include <locale>
-+#undef _LIBC
-+#include <bits/c++locale_internal.h>
-+
-+#ifndef __UCLIBC_HAS_XLOCALE__
-+#define __wctype_l(S, L)           wctype((S))
-+#define __towupper_l(C, L)         towupper((C))
-+#define __towlower_l(C, L)         towlower((C))
-+#define __iswctype_l(C, M, L)      iswctype((C), (M))
-+#endif
-+
-+namespace std
-+{
-+  // NB: The other ctype<char> specializations are in src/locale.cc and
-+  // various /config/os/* files.
-+  template<>
-+    ctype_byname<char>::ctype_byname(const char* __s, size_t __refs)
-+    : ctype<char>(0, false, __refs) 
-+    {                 
-+      if (std::strcmp(__s, "C") != 0 && std::strcmp(__s, "POSIX") != 0)
-+      {
-+        this->_S_destroy_c_locale(this->_M_c_locale_ctype);
-+        this->_S_create_c_locale(this->_M_c_locale_ctype, __s); 
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+        this->_M_toupper = this->_M_c_locale_ctype->__ctype_toupper;
-+        this->_M_tolower = this->_M_c_locale_ctype->__ctype_tolower;
-+        this->_M_table = this->_M_c_locale_ctype->__ctype_b;
-+#endif
-+      }
-+    }
-+
-+#ifdef _GLIBCXX_USE_WCHAR_T  
-+  ctype<wchar_t>::__wmask_type
-+  ctype<wchar_t>::_M_convert_to_wmask(const mask __m) const
-+  {
-+    __wmask_type __ret;
-+    switch (__m)
-+      {
-+      case space:
-+      __ret = __wctype_l("space", _M_c_locale_ctype);
-+      break;
-+      case print:
-+      __ret = __wctype_l("print", _M_c_locale_ctype);
-+      break;
-+      case cntrl:
-+      __ret = __wctype_l("cntrl", _M_c_locale_ctype);
-+      break;
-+      case upper:
-+      __ret = __wctype_l("upper", _M_c_locale_ctype);
-+      break;
-+      case lower:
-+      __ret = __wctype_l("lower", _M_c_locale_ctype);
-+      break;
-+      case alpha:
-+      __ret = __wctype_l("alpha", _M_c_locale_ctype);
-+      break;
-+      case digit:
-+      __ret = __wctype_l("digit", _M_c_locale_ctype);
-+      break;
-+      case punct:
-+      __ret = __wctype_l("punct", _M_c_locale_ctype);
-+      break;
-+      case xdigit:
-+      __ret = __wctype_l("xdigit", _M_c_locale_ctype);
-+      break;
-+      case alnum:
-+      __ret = __wctype_l("alnum", _M_c_locale_ctype);
-+      break;
-+      case graph:
-+      __ret = __wctype_l("graph", _M_c_locale_ctype);
-+      break;
-+      default:
-+      __ret = __wmask_type();
-+      }
-+    return __ret;
-+  }
-+  
-+  wchar_t
-+  ctype<wchar_t>::do_toupper(wchar_t __c) const
-+  { return __towupper_l(__c, _M_c_locale_ctype); }
-+
-+  const wchar_t*
-+  ctype<wchar_t>::do_toupper(wchar_t* __lo, const wchar_t* __hi) const
-+  {
-+    while (__lo < __hi)
-+      {
-+        *__lo = __towupper_l(*__lo, _M_c_locale_ctype);
-+        ++__lo;
-+      }
-+    return __hi;
-+  }
-+  
-+  wchar_t
-+  ctype<wchar_t>::do_tolower(wchar_t __c) const
-+  { return __towlower_l(__c, _M_c_locale_ctype); }
-+  
-+  const wchar_t*
-+  ctype<wchar_t>::do_tolower(wchar_t* __lo, const wchar_t* __hi) const
-+  {
-+    while (__lo < __hi)
-+      {
-+        *__lo = __towlower_l(*__lo, _M_c_locale_ctype);
-+        ++__lo;
-+      }
-+    return __hi;
-+  }
-+
-+  bool
-+  ctype<wchar_t>::
-+  do_is(mask __m, wchar_t __c) const
-+  { 
-+    // Highest bitmask in ctype_base == 10, but extra in "C"
-+    // library for blank.
-+    bool __ret = false;
-+    const size_t __bitmasksize = 11; 
-+    for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur)
-+      if (__m & _M_bit[__bitcur]
-+        && __iswctype_l(__c, _M_wmask[__bitcur], _M_c_locale_ctype))
-+      {
-+        __ret = true;
-+        break;
-+      }
-+    return __ret;    
-+  }
-+  
-+  const wchar_t* 
-+  ctype<wchar_t>::
-+  do_is(const wchar_t* __lo, const wchar_t* __hi, mask* __vec) const
-+  {
-+    for (; __lo < __hi; ++__vec, ++__lo)
-+      {
-+      // Highest bitmask in ctype_base == 10, but extra in "C"
-+      // library for blank.
-+      const size_t __bitmasksize = 11; 
-+      mask __m = 0;
-+      for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur)
-+        if (__iswctype_l(*__lo, _M_wmask[__bitcur], _M_c_locale_ctype))
-+          __m |= _M_bit[__bitcur];
-+      *__vec = __m;
-+      }
-+    return __hi;
-+  }
-+  
-+  const wchar_t* 
-+  ctype<wchar_t>::
-+  do_scan_is(mask __m, const wchar_t* __lo, const wchar_t* __hi) const
-+  {
-+    while (__lo < __hi && !this->do_is(__m, *__lo))
-+      ++__lo;
-+    return __lo;
-+  }
-+
-+  const wchar_t*
-+  ctype<wchar_t>::
-+  do_scan_not(mask __m, const char_type* __lo, const char_type* __hi) const
-+  {
-+    while (__lo < __hi && this->do_is(__m, *__lo) != 0)
-+      ++__lo;
-+    return __lo;
-+  }
-+
-+  wchar_t
-+  ctype<wchar_t>::
-+  do_widen(char __c) const
-+  { return _M_widen[static_cast<unsigned char>(__c)]; }
-+
-+  const char* 
-+  ctype<wchar_t>::
-+  do_widen(const char* __lo, const char* __hi, wchar_t* __dest) const
-+  {
-+    while (__lo < __hi)
-+      {
-+      *__dest = _M_widen[static_cast<unsigned char>(*__lo)];
-+      ++__lo;
-+      ++__dest;
-+      }
-+    return __hi;
-+  }
-+
-+  char
-+  ctype<wchar_t>::
-+  do_narrow(wchar_t __wc, char __dfault) const
-+  {
-+    if (__wc >= 0 && __wc < 128 && _M_narrow_ok)
-+      return _M_narrow[__wc];
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+    __c_locale __old = __uselocale(_M_c_locale_ctype);
-+#endif
-+    const int __c = wctob(__wc);
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+    __uselocale(__old);
-+#endif
-+    return (__c == EOF ? __dfault : static_cast<char>(__c)); 
-+  }
-+
-+  const wchar_t*
-+  ctype<wchar_t>::
-+  do_narrow(const wchar_t* __lo, const wchar_t* __hi, char __dfault, 
-+          char* __dest) const
-+  {
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+    __c_locale __old = __uselocale(_M_c_locale_ctype);
-+#endif
-+    if (_M_narrow_ok)
-+      while (__lo < __hi)
-+      {
-+        if (*__lo >= 0 && *__lo < 128)
-+          *__dest = _M_narrow[*__lo];
-+        else
-+          {
-+            const int __c = wctob(*__lo);
-+            *__dest = (__c == EOF ? __dfault : static_cast<char>(__c));
-+          }
-+        ++__lo;
-+        ++__dest;
-+      }
-+    else
-+      while (__lo < __hi)
-+      {
-+        const int __c = wctob(*__lo);
-+        *__dest = (__c == EOF ? __dfault : static_cast<char>(__c));
-+        ++__lo;
-+        ++__dest;
-+      }
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+    __uselocale(__old);
-+#endif
-+    return __hi;
-+  }
-+
-+  void
-+  ctype<wchar_t>::_M_initialize_ctype()
-+  {
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+    __c_locale __old = __uselocale(_M_c_locale_ctype);
-+#endif
-+    wint_t __i;
-+    for (__i = 0; __i < 128; ++__i)
-+      {
-+      const int __c = wctob(__i);
-+      if (__c == EOF)
-+        break;
-+      else
-+        _M_narrow[__i] = static_cast<char>(__c);
-+      }
-+    if (__i == 128)
-+      _M_narrow_ok = true;
-+    else
-+      _M_narrow_ok = false;
-+    for (size_t __j = 0;
-+       __j < sizeof(_M_widen) / sizeof(wint_t); ++__j)
-+      _M_widen[__j] = btowc(__j);
-+
-+    for (size_t __k = 0; __k <= 11; ++__k)
-+      { 
-+      _M_bit[__k] = static_cast<mask>(_ISbit(__k));
-+      _M_wmask[__k] = _M_convert_to_wmask(_M_bit[__k]);
-+      }
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+    __uselocale(__old);
-+#endif
-+  }
-+#endif //  _GLIBCXX_USE_WCHAR_T
-+}
-diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/messages_members.cc gcc-4.0.0/libstdc++-v3/config/locale/uclibc/messages_members.cc
---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/messages_members.cc        1969-12-31 18:00:00.000000000 -0600
-+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/messages_members.cc    2005-04-28 01:13:15.000000000 -0500
-@@ -0,0 +1,100 @@
-+// std::messages implementation details, GNU version -*- C++ -*-
-+
-+// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-+// any later version.
-+
-+// This library is distributed in the hope that it will be useful,
-+// but WITHOUT ANY WARRANTY; without even the implied warranty of
-+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+// GNU General Public License for more details.
-+
-+// You should have received a copy of the GNU General Public License along
-+// with this library; see the file COPYING.  If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction.  Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License.  This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.2.7.1.2  messages virtual functions
-+//
-+
-+// Written by Benjamin Kosnik <bkoz@redhat.com>
-+
-+#include <locale>
-+#include <bits/c++locale_internal.h>
-+
-+#ifdef __UCLIBC_MJN3_ONLY__
-+#warning fix gettext stuff
-+#endif
-+#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__
-+extern "C" char *__dcgettext(const char *domainname,
-+                           const char *msgid, int category);
-+#undef gettext
-+#define gettext(msgid) __dcgettext(NULL, msgid, LC_MESSAGES)
-+#else
-+#undef gettext
-+#define gettext(msgid) (msgid)
-+#endif
-+
-+namespace std
-+{
-+  // Specializations.
-+  template<>
-+    string
-+    messages<char>::do_get(catalog, int, int, const string& __dfault) const
-+    {
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+      __c_locale __old = __uselocale(_M_c_locale_messages);
-+      const char* __msg = const_cast<const char*>(gettext(__dfault.c_str()));
-+      __uselocale(__old);
-+      return string(__msg);
-+#elif defined __UCLIBC_HAS_LOCALE__
-+      char* __old = strdup(setlocale(LC_ALL, NULL));
-+      setlocale(LC_ALL, _M_name_messages);
-+      const char* __msg = gettext(__dfault.c_str());
-+      setlocale(LC_ALL, __old);
-+      free(__old);
-+      return string(__msg);
-+#else
-+      const char* __msg = gettext(__dfault.c_str());
-+      return string(__msg);
-+#endif
-+    }
-+
-+#ifdef _GLIBCXX_USE_WCHAR_T
-+  template<>
-+    wstring
-+    messages<wchar_t>::do_get(catalog, int, int, const wstring& __dfault) const
-+    {
-+# ifdef __UCLIBC_HAS_XLOCALE__
-+      __c_locale __old = __uselocale(_M_c_locale_messages);
-+      char* __msg = gettext(_M_convert_to_char(__dfault));
-+      __uselocale(__old);
-+      return _M_convert_from_char(__msg);
-+# elif defined __UCLIBC_HAS_LOCALE__
-+      char* __old = strdup(setlocale(LC_ALL, NULL));
-+      setlocale(LC_ALL, _M_name_messages);
-+      char* __msg = gettext(_M_convert_to_char(__dfault));
-+      setlocale(LC_ALL, __old);
-+      free(__old);
-+      return _M_convert_from_char(__msg);
-+# else
-+      char* __msg = gettext(_M_convert_to_char(__dfault));
-+      return _M_convert_from_char(__msg);
-+# endif
-+    }
-+#endif
-+}
-diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/messages_members.h gcc-4.0.0/libstdc++-v3/config/locale/uclibc/messages_members.h
---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/messages_members.h 1969-12-31 18:00:00.000000000 -0600
-+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/messages_members.h     2005-04-28 01:13:15.000000000 -0500
-@@ -0,0 +1,118 @@
-+// std::messages implementation details, GNU version -*- C++ -*-
-+
-+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-+// any later version.
-+
-+// This library is distributed in the hope that it will be useful,
-+// but WITHOUT ANY WARRANTY; without even the implied warranty of
-+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+// GNU General Public License for more details.
-+
-+// You should have received a copy of the GNU General Public License along
-+// with this library; see the file COPYING.  If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction.  Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License.  This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.2.7.1.2  messages functions
-+//
-+
-+// Written by Benjamin Kosnik <bkoz@redhat.com>
-+
-+#ifdef __UCLIBC_MJN3_ONLY__
-+#warning fix prototypes for *textdomain funcs
-+#endif
-+#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__
-+extern "C" char *__textdomain(const char *domainname);
-+extern "C" char *__bindtextdomain(const char *domainname,
-+                                const char *dirname);
-+#else
-+#undef __textdomain
-+#undef __bindtextdomain
-+#define __textdomain(D)           ((void)0)
-+#define __bindtextdomain(D,P)     ((void)0)
-+#endif
-+
-+  // Non-virtual member functions.
-+  template<typename _CharT>
-+     messages<_CharT>::messages(size_t __refs)
-+     : facet(__refs), _M_c_locale_messages(_S_get_c_locale()), 
-+     _M_name_messages(_S_get_c_name())
-+     { }
-+
-+  template<typename _CharT>
-+     messages<_CharT>::messages(__c_locale __cloc, const char* __s, 
-+                              size_t __refs) 
-+     : facet(__refs), _M_c_locale_messages(_S_clone_c_locale(__cloc)),
-+     _M_name_messages(__s)
-+     {
-+       char* __tmp = new char[std::strlen(__s) + 1];
-+       std::strcpy(__tmp, __s);
-+       _M_name_messages = __tmp;
-+     }
-+
-+  template<typename _CharT>
-+    typename messages<_CharT>::catalog 
-+    messages<_CharT>::open(const basic_string<char>& __s, const locale& __loc, 
-+                         const char* __dir) const
-+    { 
-+      __bindtextdomain(__s.c_str(), __dir);
-+      return this->do_open(__s, __loc); 
-+    }
-+
-+  // Virtual member functions.
-+  template<typename _CharT>
-+    messages<_CharT>::~messages()
-+    { 
-+      if (_M_name_messages != _S_get_c_name())
-+      delete [] _M_name_messages;
-+      _S_destroy_c_locale(_M_c_locale_messages); 
-+    }
-+
-+  template<typename _CharT>
-+    typename messages<_CharT>::catalog 
-+    messages<_CharT>::do_open(const basic_string<char>& __s, 
-+                            const locale&) const
-+    { 
-+      // No error checking is done, assume the catalog exists and can
-+      // be used.
-+      __textdomain(__s.c_str());
-+      return 0;
-+    }
-+
-+  template<typename _CharT>
-+    void    
-+    messages<_CharT>::do_close(catalog) const 
-+    { }
-+
-+   // messages_byname
-+   template<typename _CharT>
-+     messages_byname<_CharT>::messages_byname(const char* __s, size_t __refs)
-+     : messages<_CharT>(__refs) 
-+     { 
-+       if (this->_M_name_messages != locale::facet::_S_get_c_name())
-+       delete [] this->_M_name_messages;
-+       char* __tmp = new char[std::strlen(__s) + 1];
-+       std::strcpy(__tmp, __s);
-+       this->_M_name_messages = __tmp;
-+
-+       if (std::strcmp(__s, "C") != 0 && std::strcmp(__s, "POSIX") != 0)
-+       {
-+         this->_S_destroy_c_locale(this->_M_c_locale_messages);
-+         this->_S_create_c_locale(this->_M_c_locale_messages, __s); 
-+       }
-+     }
-diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/monetary_members.cc gcc-4.0.0/libstdc++-v3/config/locale/uclibc/monetary_members.cc
---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/monetary_members.cc        1969-12-31 18:00:00.000000000 -0600
-+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/monetary_members.cc    2005-04-28 01:23:02.000000000 -0500
-@@ -0,0 +1,692 @@
-+// std::moneypunct implementation details, GNU version -*- C++ -*-
-+
-+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-+// any later version.
-+
-+// This library is distributed in the hope that it will be useful,
-+// but WITHOUT ANY WARRANTY; without even the implied warranty of
-+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+// GNU General Public License for more details.
-+
-+// You should have received a copy of the GNU General Public License along
-+// with this library; see the file COPYING.  If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction.  Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License.  This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.2.6.3.2  moneypunct virtual functions
-+//
-+
-+// Written by Benjamin Kosnik <bkoz@redhat.com>
-+
-+#define _LIBC
-+#include <locale>
-+#undef _LIBC
-+#include <bits/c++locale_internal.h>
-+
-+#ifdef __UCLIBC_MJN3_ONLY__
-+#warning optimize this for uclibc
-+#warning tailor for stub locale support
-+#endif
-+
-+#ifndef __UCLIBC_HAS_XLOCALE__
-+#define __nl_langinfo_l(N, L)         nl_langinfo((N))
-+#endif
-+
-+namespace std
-+{
-+  // Construct and return valid pattern consisting of some combination of:
-+  // space none symbol sign value
-+  money_base::pattern
-+  money_base::_S_construct_pattern(char __precedes, char __space, char __posn)
-+  { 
-+    pattern __ret;
-+
-+    // This insanely complicated routine attempts to construct a valid
-+    // pattern for use with monyepunct. A couple of invariants:
-+
-+    // if (__precedes) symbol -> value
-+    // else value -> symbol
-+    
-+    // if (__space) space
-+    // else none
-+
-+    // none == never first
-+    // space never first or last
-+
-+    // Any elegant implementations of this are welcome.
-+    switch (__posn)
-+      {
-+      case 0:
-+      case 1:
-+      // 1 The sign precedes the value and symbol.
-+      __ret.field[0] = sign;
-+      if (__space)
-+        {
-+          // Pattern starts with sign.
-+          if (__precedes)
-+            {
-+              __ret.field[1] = symbol;
-+              __ret.field[3] = value;
-+            }
-+          else
-+            {
-+              __ret.field[1] = value;
-+              __ret.field[3] = symbol;
-+            }
-+          __ret.field[2] = space;
-+        }
-+      else
-+        {
-+          // Pattern starts with sign and ends with none.
-+          if (__precedes)
-+            {
-+              __ret.field[1] = symbol;
-+              __ret.field[2] = value;
-+            }
-+          else
-+            {
-+              __ret.field[1] = value;
-+              __ret.field[2] = symbol;
-+            }
-+          __ret.field[3] = none;
-+        }
-+      break;
-+      case 2:
-+      // 2 The sign follows the value and symbol.
-+      if (__space)
-+        {
-+          // Pattern either ends with sign.
-+          if (__precedes)
-+            {
-+              __ret.field[0] = symbol;
-+              __ret.field[2] = value;
-+            }
-+          else
-+            {
-+              __ret.field[0] = value;
-+              __ret.field[2] = symbol;
-+            }
-+          __ret.field[1] = space;
-+          __ret.field[3] = sign;
-+        }
-+      else
-+        {
-+          // Pattern ends with sign then none.
-+          if (__precedes)
-+            {
-+              __ret.field[0] = symbol;
-+              __ret.field[1] = value;
-+            }
-+          else
-+            {
-+              __ret.field[0] = value;
-+              __ret.field[1] = symbol;
-+            }
-+          __ret.field[2] = sign;
-+          __ret.field[3] = none;
-+        }
-+      break;
-+      case 3:
-+      // 3 The sign immediately precedes the symbol.
-+      if (__precedes)
-+        {
-+          __ret.field[0] = sign;
-+          __ret.field[1] = symbol;        
-+          if (__space)
-+            {
-+              __ret.field[2] = space;
-+              __ret.field[3] = value;
-+            }
-+          else
-+            {
-+              __ret.field[2] = value;         
-+              __ret.field[3] = none;
-+            }
-+        }
-+      else
-+        {
-+          __ret.field[0] = value;
-+          if (__space)
-+            {
-+              __ret.field[1] = space;
-+              __ret.field[2] = sign;
-+              __ret.field[3] = symbol;
-+            }
-+          else
-+            {
-+              __ret.field[1] = sign;
-+              __ret.field[2] = symbol;
-+              __ret.field[3] = none;
-+            }
-+        }
-+      break;
-+      case 4:
-+      // 4 The sign immediately follows the symbol.
-+      if (__precedes)
-+        {
-+          __ret.field[0] = symbol;
-+          __ret.field[1] = sign;
-+          if (__space)
-+            {
-+              __ret.field[2] = space;
-+              __ret.field[3] = value;
-+            }
-+          else
-+            {
-+              __ret.field[2] = value;
-+              __ret.field[3] = none;
-+            }
-+        }
-+      else
-+        {
-+          __ret.field[0] = value;
-+          if (__space)
-+            {
-+              __ret.field[1] = space;
-+              __ret.field[2] = symbol;
-+              __ret.field[3] = sign;
-+            }
-+          else
-+            {
-+              __ret.field[1] = symbol;
-+              __ret.field[2] = sign;
-+              __ret.field[3] = none;
-+            }
-+        }
-+      break;
-+      default:
-+      __ret = pattern();
-+      }
-+    return __ret;
-+  }
-+
-+  template<> 
-+    void
-+    moneypunct<char, true>::_M_initialize_moneypunct(__c_locale __cloc, 
-+                                                   const char*)
-+    {
-+      if (!_M_data)
-+      _M_data = new __moneypunct_cache<char, true>;
-+
-+      if (!__cloc)
-+      {
-+        // "C" locale
-+        _M_data->_M_decimal_point = '.';
-+        _M_data->_M_thousands_sep = ',';
-+        _M_data->_M_grouping = "";
-+        _M_data->_M_grouping_size = 0;
-+        _M_data->_M_curr_symbol = "";
-+        _M_data->_M_curr_symbol_size = 0;
-+        _M_data->_M_positive_sign = "";
-+        _M_data->_M_positive_sign_size = 0;
-+        _M_data->_M_negative_sign = "";
-+        _M_data->_M_negative_sign_size = 0;
-+        _M_data->_M_frac_digits = 0;
-+        _M_data->_M_pos_format = money_base::_S_default_pattern;
-+        _M_data->_M_neg_format = money_base::_S_default_pattern;
-+
-+        for (size_t __i = 0; __i < money_base::_S_end; ++__i)
-+          _M_data->_M_atoms[__i] = money_base::_S_atoms[__i];
-+      }
-+      else
-+      {
-+        // Named locale.
-+        _M_data->_M_decimal_point = *(__nl_langinfo_l(__MON_DECIMAL_POINT, 
-+                                                      __cloc));
-+        _M_data->_M_thousands_sep = *(__nl_langinfo_l(__MON_THOUSANDS_SEP, 
-+                                                      __cloc));
-+        _M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc);
-+        _M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
-+        _M_data->_M_positive_sign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc);
-+        _M_data->_M_positive_sign_size = strlen(_M_data->_M_positive_sign);
-+
-+        char __nposn = *(__nl_langinfo_l(__INT_N_SIGN_POSN, __cloc));
-+        if (!__nposn)
-+          _M_data->_M_negative_sign = "()";
-+        else
-+          _M_data->_M_negative_sign = __nl_langinfo_l(__NEGATIVE_SIGN, 
-+                                                      __cloc);
-+        _M_data->_M_negative_sign_size = strlen(_M_data->_M_negative_sign);
-+
-+        // _Intl == true
-+        _M_data->_M_curr_symbol = __nl_langinfo_l(__INT_CURR_SYMBOL, __cloc);
-+        _M_data->_M_curr_symbol_size = strlen(_M_data->_M_curr_symbol);
-+        _M_data->_M_frac_digits = *(__nl_langinfo_l(__INT_FRAC_DIGITS, 
-+                                                    __cloc));
-+        char __pprecedes = *(__nl_langinfo_l(__INT_P_CS_PRECEDES, __cloc));
-+        char __pspace = *(__nl_langinfo_l(__INT_P_SEP_BY_SPACE, __cloc));
-+        char __pposn = *(__nl_langinfo_l(__INT_P_SIGN_POSN, __cloc));
-+        _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace, 
-+                                                      __pposn);
-+        char __nprecedes = *(__nl_langinfo_l(__INT_N_CS_PRECEDES, __cloc));
-+        char __nspace = *(__nl_langinfo_l(__INT_N_SEP_BY_SPACE, __cloc));
-+        _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace, 
-+                                                      __nposn);
-+      }
-+    }
-+
-+  template<> 
-+    void
-+    moneypunct<char, false>::_M_initialize_moneypunct(__c_locale __cloc, 
-+                                                    const char*)
-+    {
-+      if (!_M_data)
-+      _M_data = new __moneypunct_cache<char, false>;
-+
-+      if (!__cloc)
-+      {
-+        // "C" locale
-+        _M_data->_M_decimal_point = '.';
-+        _M_data->_M_thousands_sep = ',';
-+        _M_data->_M_grouping = "";
-+        _M_data->_M_grouping_size = 0;
-+        _M_data->_M_curr_symbol = "";
-+        _M_data->_M_curr_symbol_size = 0;
-+        _M_data->_M_positive_sign = "";
-+        _M_data->_M_positive_sign_size = 0;
-+        _M_data->_M_negative_sign = "";
-+        _M_data->_M_negative_sign_size = 0;
-+        _M_data->_M_frac_digits = 0;
-+        _M_data->_M_pos_format = money_base::_S_default_pattern;
-+        _M_data->_M_neg_format = money_base::_S_default_pattern;
-+
-+        for (size_t __i = 0; __i < money_base::_S_end; ++__i)
-+          _M_data->_M_atoms[__i] = money_base::_S_atoms[__i];
-+      }
-+      else
-+      {
-+        // Named locale.
-+        _M_data->_M_decimal_point = *(__nl_langinfo_l(__MON_DECIMAL_POINT, 
-+                                                      __cloc));
-+        _M_data->_M_thousands_sep = *(__nl_langinfo_l(__MON_THOUSANDS_SEP, 
-+                                                      __cloc));
-+        _M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc);
-+        _M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
-+        _M_data->_M_positive_sign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc);
-+        _M_data->_M_positive_sign_size = strlen(_M_data->_M_positive_sign);
-+
-+        char __nposn = *(__nl_langinfo_l(__N_SIGN_POSN, __cloc));
-+        if (!__nposn)
-+          _M_data->_M_negative_sign = "()";
-+        else
-+          _M_data->_M_negative_sign = __nl_langinfo_l(__NEGATIVE_SIGN,
-+                                                      __cloc);
-+        _M_data->_M_negative_sign_size = strlen(_M_data->_M_negative_sign);
-+
-+        // _Intl == false
-+        _M_data->_M_curr_symbol = __nl_langinfo_l(__CURRENCY_SYMBOL, __cloc);
-+        _M_data->_M_curr_symbol_size = strlen(_M_data->_M_curr_symbol);
-+        _M_data->_M_frac_digits = *(__nl_langinfo_l(__FRAC_DIGITS, __cloc));
-+        char __pprecedes = *(__nl_langinfo_l(__P_CS_PRECEDES, __cloc));
-+        char __pspace = *(__nl_langinfo_l(__P_SEP_BY_SPACE, __cloc));
-+        char __pposn = *(__nl_langinfo_l(__P_SIGN_POSN, __cloc));
-+        _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace, 
-+                                                      __pposn);
-+        char __nprecedes = *(__nl_langinfo_l(__N_CS_PRECEDES, __cloc));
-+        char __nspace = *(__nl_langinfo_l(__N_SEP_BY_SPACE, __cloc));
-+        _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace, 
-+                                                      __nposn);
-+      }
-+    }
-+
-+  template<> 
-+    moneypunct<char, true>::~moneypunct()
-+    { delete _M_data; }
-+
-+  template<> 
-+    moneypunct<char, false>::~moneypunct()
-+    { delete _M_data; }
-+
-+#ifdef _GLIBCXX_USE_WCHAR_T
-+  template<> 
-+    void
-+    moneypunct<wchar_t, true>::_M_initialize_moneypunct(__c_locale __cloc, 
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+                                                      const char*)
-+#else
-+                                                      const char* __name)
-+#endif
-+    {
-+      if (!_M_data)
-+      _M_data = new __moneypunct_cache<wchar_t, true>;
-+
-+      if (!__cloc)
-+      {
-+        // "C" locale
-+        _M_data->_M_decimal_point = L'.';
-+        _M_data->_M_thousands_sep = L',';
-+        _M_data->_M_grouping = "";
-+        _M_data->_M_grouping_size = 0;
-+        _M_data->_M_curr_symbol = L"";
-+        _M_data->_M_curr_symbol_size = 0;
-+        _M_data->_M_positive_sign = L"";
-+        _M_data->_M_positive_sign_size = 0;
-+        _M_data->_M_negative_sign = L"";
-+        _M_data->_M_negative_sign_size = 0;
-+        _M_data->_M_frac_digits = 0;
-+        _M_data->_M_pos_format = money_base::_S_default_pattern;
-+        _M_data->_M_neg_format = money_base::_S_default_pattern;
-+
-+        // Use ctype::widen code without the facet...
-+        for (size_t __i = 0; __i < money_base::_S_end; ++__i)
-+          _M_data->_M_atoms[__i] =
-+            static_cast<wchar_t>(money_base::_S_atoms[__i]);
-+      }
-+      else
-+      {
-+        // Named locale.
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+        __c_locale __old = __uselocale(__cloc);
-+#else
-+        // Switch to named locale so that mbsrtowcs will work.
-+        char* __old = strdup(setlocale(LC_ALL, NULL));
-+        setlocale(LC_ALL, __name);
-+#endif
-+
-+#ifdef __UCLIBC_MJN3_ONLY__
-+#warning fix this... should be monetary
-+#endif
-+#ifdef __UCLIBC__
-+# ifdef __UCLIBC_HAS_XLOCALE__
-+        _M_data->_M_decimal_point = __cloc->decimal_point_wc;
-+        _M_data->_M_thousands_sep = __cloc->thousands_sep_wc;
-+# else
-+        _M_data->_M_decimal_point = __global_locale->decimal_point_wc;
-+        _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc;
-+# endif
-+#else
-+        union { char *__s; wchar_t __w; } __u;
-+        __u.__s = __nl_langinfo_l(_NL_MONETARY_DECIMAL_POINT_WC, __cloc);
-+        _M_data->_M_decimal_point = __u.__w;
-+
-+        __u.__s = __nl_langinfo_l(_NL_MONETARY_THOUSANDS_SEP_WC, __cloc);
-+        _M_data->_M_thousands_sep = __u.__w;
-+#endif
-+        _M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc);
-+        _M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
-+
-+        const char* __cpossign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc);
-+        const char* __cnegsign = __nl_langinfo_l(__NEGATIVE_SIGN, __cloc);
-+        const char* __ccurr = __nl_langinfo_l(__INT_CURR_SYMBOL, __cloc);
-+
-+        wchar_t* __wcs_ps = 0;
-+        wchar_t* __wcs_ns = 0;
-+        const char __nposn = *(__nl_langinfo_l(__INT_N_SIGN_POSN, __cloc));
-+        try
-+          {
-+            mbstate_t __state;
-+            size_t __len = strlen(__cpossign);
-+            if (__len)
-+              {
-+                ++__len;
-+                memset(&__state, 0, sizeof(mbstate_t));
-+                __wcs_ps = new wchar_t[__len];
-+                mbsrtowcs(__wcs_ps, &__cpossign, __len, &__state);
-+                _M_data->_M_positive_sign = __wcs_ps;
-+              }
-+            else
-+              _M_data->_M_positive_sign = L"";
-+            _M_data->_M_positive_sign_size = wcslen(_M_data->_M_positive_sign);
-+            
-+            __len = strlen(__cnegsign);
-+            if (!__nposn)
-+              _M_data->_M_negative_sign = L"()";
-+            else if (__len)
-+              { 
-+                ++__len;
-+                memset(&__state, 0, sizeof(mbstate_t));
-+                __wcs_ns = new wchar_t[__len];
-+                mbsrtowcs(__wcs_ns, &__cnegsign, __len, &__state);
-+                _M_data->_M_negative_sign = __wcs_ns;
-+              }
-+            else
-+              _M_data->_M_negative_sign = L"";
-+            _M_data->_M_negative_sign_size = wcslen(_M_data->_M_negative_sign);
-+            
-+            // _Intl == true.
-+            __len = strlen(__ccurr);
-+            if (__len)
-+              {
-+                ++__len;
-+                memset(&__state, 0, sizeof(mbstate_t));
-+                wchar_t* __wcs = new wchar_t[__len];
-+                mbsrtowcs(__wcs, &__ccurr, __len, &__state);
-+                _M_data->_M_curr_symbol = __wcs;
-+              }
-+            else
-+              _M_data->_M_curr_symbol = L"";
-+            _M_data->_M_curr_symbol_size = wcslen(_M_data->_M_curr_symbol);
-+          }
-+        catch (...)
-+          {
-+            delete _M_data;
-+            _M_data = 0;
-+            delete __wcs_ps;
-+            delete __wcs_ns;        
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+            __uselocale(__old);
-+#else
-+            setlocale(LC_ALL, __old);
-+            free(__old);
-+#endif
-+            __throw_exception_again;
-+          } 
-+        
-+        _M_data->_M_frac_digits = *(__nl_langinfo_l(__INT_FRAC_DIGITS, 
-+                                                    __cloc));
-+        char __pprecedes = *(__nl_langinfo_l(__INT_P_CS_PRECEDES, __cloc));
-+        char __pspace = *(__nl_langinfo_l(__INT_P_SEP_BY_SPACE, __cloc));
-+        char __pposn = *(__nl_langinfo_l(__INT_P_SIGN_POSN, __cloc));
-+        _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace, 
-+                                                      __pposn);
-+        char __nprecedes = *(__nl_langinfo_l(__INT_N_CS_PRECEDES, __cloc));
-+        char __nspace = *(__nl_langinfo_l(__INT_N_SEP_BY_SPACE, __cloc));
-+        _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace, 
-+                                                      __nposn);
-+
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+        __uselocale(__old);
-+#else
-+        setlocale(LC_ALL, __old);
-+        free(__old);
-+#endif
-+      }
-+    }
-+
-+  template<> 
-+  void
-+  moneypunct<wchar_t, false>::_M_initialize_moneypunct(__c_locale __cloc,
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+                                                     const char*)
-+#else
-+                                                       const char* __name)
-+#endif
-+  {
-+    if (!_M_data)
-+      _M_data = new __moneypunct_cache<wchar_t, false>;
-+
-+    if (!__cloc)
-+      {
-+        // "C" locale
-+        _M_data->_M_decimal_point = L'.';
-+        _M_data->_M_thousands_sep = L',';
-+        _M_data->_M_grouping = "";
-+          _M_data->_M_grouping_size = 0;
-+        _M_data->_M_curr_symbol = L"";
-+        _M_data->_M_curr_symbol_size = 0;
-+        _M_data->_M_positive_sign = L"";
-+        _M_data->_M_positive_sign_size = 0;
-+        _M_data->_M_negative_sign = L"";
-+        _M_data->_M_negative_sign_size = 0;
-+        _M_data->_M_frac_digits = 0;
-+        _M_data->_M_pos_format = money_base::_S_default_pattern;
-+        _M_data->_M_neg_format = money_base::_S_default_pattern;
-+
-+        // Use ctype::widen code without the facet...
-+        for (size_t __i = 0; __i < money_base::_S_end; ++__i)
-+          _M_data->_M_atoms[__i] =
-+            static_cast<wchar_t>(money_base::_S_atoms[__i]);
-+      }
-+      else
-+      {
-+        // Named locale.
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+        __c_locale __old = __uselocale(__cloc);
-+#else
-+        // Switch to named locale so that mbsrtowcs will work.
-+        char* __old = strdup(setlocale(LC_ALL, NULL));
-+        setlocale(LC_ALL, __name);
-+#endif
-+
-+#ifdef __UCLIBC_MJN3_ONLY__
-+#warning fix this... should be monetary
-+#endif
-+#ifdef __UCLIBC__
-+# ifdef __UCLIBC_HAS_XLOCALE__
-+        _M_data->_M_decimal_point = __cloc->decimal_point_wc;
-+        _M_data->_M_thousands_sep = __cloc->thousands_sep_wc;
-+# else
-+        _M_data->_M_decimal_point = __global_locale->decimal_point_wc;
-+        _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc;
-+# endif
-+#else
-+          union { char *__s; wchar_t __w; } __u;
-+        __u.__s = __nl_langinfo_l(_NL_MONETARY_DECIMAL_POINT_WC, __cloc);
-+        _M_data->_M_decimal_point = __u.__w;
-+
-+        __u.__s = __nl_langinfo_l(_NL_MONETARY_THOUSANDS_SEP_WC, __cloc);
-+        _M_data->_M_thousands_sep = __u.__w;
-+#endif
-+        _M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc);
-+          _M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
-+
-+        const char* __cpossign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc);
-+        const char* __cnegsign = __nl_langinfo_l(__NEGATIVE_SIGN, __cloc);
-+        const char* __ccurr = __nl_langinfo_l(__CURRENCY_SYMBOL, __cloc);
-+
-+        wchar_t* __wcs_ps = 0;
-+        wchar_t* __wcs_ns = 0;
-+        const char __nposn = *(__nl_langinfo_l(__N_SIGN_POSN, __cloc));
-+        try
-+            {
-+              mbstate_t __state;
-+              size_t __len;
-+              __len = strlen(__cpossign);
-+              if (__len)
-+                {
-+                ++__len;
-+                memset(&__state, 0, sizeof(mbstate_t));
-+                __wcs_ps = new wchar_t[__len];
-+                mbsrtowcs(__wcs_ps, &__cpossign, __len, &__state);
-+                _M_data->_M_positive_sign = __wcs_ps;
-+              }
-+            else
-+              _M_data->_M_positive_sign = L"";
-+              _M_data->_M_positive_sign_size = wcslen(_M_data->_M_positive_sign);
-+            
-+            __len = strlen(__cnegsign);
-+            if (!__nposn)
-+              _M_data->_M_negative_sign = L"()";
-+            else if (__len)
-+              { 
-+                ++__len;
-+                memset(&__state, 0, sizeof(mbstate_t));
-+                __wcs_ns = new wchar_t[__len];
-+                mbsrtowcs(__wcs_ns, &__cnegsign, __len, &__state);
-+                _M_data->_M_negative_sign = __wcs_ns;
-+              }
-+            else
-+              _M_data->_M_negative_sign = L"";
-+              _M_data->_M_negative_sign_size = wcslen(_M_data->_M_negative_sign);
-+
-+            // _Intl == true.
-+            __len = strlen(__ccurr);
-+            if (__len)
-+              {
-+                ++__len;
-+                memset(&__state, 0, sizeof(mbstate_t));
-+                wchar_t* __wcs = new wchar_t[__len];
-+                mbsrtowcs(__wcs, &__ccurr, __len, &__state);
-+                _M_data->_M_curr_symbol = __wcs;
-+              }
-+            else
-+              _M_data->_M_curr_symbol = L"";
-+              _M_data->_M_curr_symbol_size = wcslen(_M_data->_M_curr_symbol);
-+          }
-+          catch (...)
-+          {
-+            delete _M_data;
-+              _M_data = 0;
-+            delete __wcs_ps;
-+            delete __wcs_ns;        
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+            __uselocale(__old);
-+#else
-+            setlocale(LC_ALL, __old);
-+            free(__old);
-+#endif
-+              __throw_exception_again;
-+          }
-+
-+        _M_data->_M_frac_digits = *(__nl_langinfo_l(__FRAC_DIGITS, __cloc));
-+        char __pprecedes = *(__nl_langinfo_l(__P_CS_PRECEDES, __cloc));
-+        char __pspace = *(__nl_langinfo_l(__P_SEP_BY_SPACE, __cloc));
-+        char __pposn = *(__nl_langinfo_l(__P_SIGN_POSN, __cloc));
-+        _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace, 
-+                                                      __pposn);
-+        char __nprecedes = *(__nl_langinfo_l(__N_CS_PRECEDES, __cloc));
-+        char __nspace = *(__nl_langinfo_l(__N_SEP_BY_SPACE, __cloc));
-+        _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace, 
-+                                                      __nposn);
-+
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+        __uselocale(__old);
-+#else
-+        setlocale(LC_ALL, __old);
-+        free(__old);
-+#endif
-+      }
-+    }
-+
-+  template<> 
-+    moneypunct<wchar_t, true>::~moneypunct()
-+    {
-+      if (_M_data->_M_positive_sign_size)
-+      delete [] _M_data->_M_positive_sign;
-+      if (_M_data->_M_negative_sign_size
-+          && wcscmp(_M_data->_M_negative_sign, L"()") != 0)
-+      delete [] _M_data->_M_negative_sign;
-+      if (_M_data->_M_curr_symbol_size)
-+      delete [] _M_data->_M_curr_symbol;
-+      delete _M_data;
-+    }
-+
-+  template<> 
-+    moneypunct<wchar_t, false>::~moneypunct()
-+    {
-+      if (_M_data->_M_positive_sign_size)
-+      delete [] _M_data->_M_positive_sign;
-+      if (_M_data->_M_negative_sign_size
-+          && wcscmp(_M_data->_M_negative_sign, L"()") != 0)
-+      delete [] _M_data->_M_negative_sign;
-+      if (_M_data->_M_curr_symbol_size)
-+      delete [] _M_data->_M_curr_symbol;
-+      delete _M_data;
-+    }
-+#endif
-+}
-diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/numeric_members.cc gcc-4.0.0/libstdc++-v3/config/locale/uclibc/numeric_members.cc
---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/numeric_members.cc 1969-12-31 18:00:00.000000000 -0600
-+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/numeric_members.cc     2005-04-28 01:20:20.000000000 -0500
-@@ -0,0 +1,173 @@
-+// std::numpunct implementation details, GNU version -*- C++ -*-
-+
-+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-+// any later version.
-+
-+// This library is distributed in the hope that it will be useful,
-+// but WITHOUT ANY WARRANTY; without even the implied warranty of
-+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+// GNU General Public License for more details.
-+
-+// You should have received a copy of the GNU General Public License along
-+// with this library; see the file COPYING.  If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction.  Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License.  This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.2.3.1.2  numpunct virtual functions
-+//
-+
-+// Written by Benjamin Kosnik <bkoz@redhat.com>
-+
-+#define _LIBC
-+#include <locale>
-+#undef _LIBC
-+#include <bits/c++locale_internal.h>
-+
-+#ifdef __UCLIBC_MJN3_ONLY__
-+#warning tailor for stub locale support
-+#endif
-+#ifndef __UCLIBC_HAS_XLOCALE__
-+#define __nl_langinfo_l(N, L)         nl_langinfo((N))
-+#endif
-+
-+namespace std
-+{
-+  template<> 
-+    void
-+    numpunct<char>::_M_initialize_numpunct(__c_locale __cloc)
-+    {
-+      if (!_M_data)
-+      _M_data = new __numpunct_cache<char>;
-+
-+      if (!__cloc)
-+      {
-+        // "C" locale
-+        _M_data->_M_grouping = "";
-+        _M_data->_M_grouping_size = 0;
-+        _M_data->_M_use_grouping = false;
-+
-+        _M_data->_M_decimal_point = '.';
-+        _M_data->_M_thousands_sep = ',';
-+
-+        for (size_t __i = 0; __i < __num_base::_S_oend; ++__i)
-+          _M_data->_M_atoms_out[__i] = __num_base::_S_atoms_out[__i];
-+
-+        for (size_t __j = 0; __j < __num_base::_S_iend; ++__j)
-+          _M_data->_M_atoms_in[__j] = __num_base::_S_atoms_in[__j];
-+      }
-+      else
-+      {
-+        // Named locale.
-+        _M_data->_M_decimal_point = *(__nl_langinfo_l(DECIMAL_POINT, 
-+                                                      __cloc));
-+        _M_data->_M_thousands_sep = *(__nl_langinfo_l(THOUSANDS_SEP, 
-+                                                      __cloc));
-+
-+        // Check for NULL, which implies no grouping.
-+        if (_M_data->_M_thousands_sep == '\0')
-+          _M_data->_M_grouping = "";
-+        else
-+          _M_data->_M_grouping = __nl_langinfo_l(GROUPING, __cloc);
-+        _M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
-+      }
-+
-+      // NB: There is no way to extact this info from posix locales.
-+      // _M_truename = __nl_langinfo_l(YESSTR, __cloc);
-+      _M_data->_M_truename = "true";
-+      _M_data->_M_truename_size = 4;
-+      // _M_falsename = __nl_langinfo_l(NOSTR, __cloc);
-+      _M_data->_M_falsename = "false";
-+      _M_data->_M_falsename_size = 5;
-+    }
-+ 
-+  template<> 
-+    numpunct<char>::~numpunct()
-+    { delete _M_data; }
-+   
-+#ifdef _GLIBCXX_USE_WCHAR_T
-+  template<> 
-+    void
-+    numpunct<wchar_t>::_M_initialize_numpunct(__c_locale __cloc)
-+    {
-+      if (!_M_data)
-+      _M_data = new __numpunct_cache<wchar_t>;
-+
-+      if (!__cloc)
-+      {
-+        // "C" locale
-+        _M_data->_M_grouping = "";
-+        _M_data->_M_grouping_size = 0;
-+        _M_data->_M_use_grouping = false;
-+
-+        _M_data->_M_decimal_point = L'.';
-+        _M_data->_M_thousands_sep = L',';
-+
-+        // Use ctype::widen code without the facet...
-+        for (size_t __i = 0; __i < __num_base::_S_oend; ++__i)
-+          _M_data->_M_atoms_out[__i] =
-+            static_cast<wchar_t>(__num_base::_S_atoms_out[__i]);
-+
-+        for (size_t __j = 0; __j < __num_base::_S_iend; ++__j)
-+          _M_data->_M_atoms_in[__j] =
-+            static_cast<wchar_t>(__num_base::_S_atoms_in[__j]);
-+      }
-+      else
-+      {
-+        // Named locale.
-+        // NB: In the GNU model wchar_t is always 32 bit wide.
-+#ifdef __UCLIBC_MJN3_ONLY__
-+#warning fix this
-+#endif
-+#ifdef __UCLIBC__
-+# ifdef __UCLIBC_HAS_XLOCALE__
-+        _M_data->_M_decimal_point = __cloc->decimal_point_wc;
-+        _M_data->_M_thousands_sep = __cloc->thousands_sep_wc;
-+# else
-+        _M_data->_M_decimal_point = __global_locale->decimal_point_wc;
-+        _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc;
-+# endif
-+#else
-+        union { char *__s; wchar_t __w; } __u;
-+        __u.__s = __nl_langinfo_l(_NL_NUMERIC_DECIMAL_POINT_WC, __cloc);
-+        _M_data->_M_decimal_point = __u.__w;
-+
-+        __u.__s = __nl_langinfo_l(_NL_NUMERIC_THOUSANDS_SEP_WC, __cloc);
-+        _M_data->_M_thousands_sep = __u.__w;
-+#endif
-+
-+        if (_M_data->_M_thousands_sep == L'\0')
-+          _M_data->_M_grouping = "";
-+        else
-+          _M_data->_M_grouping = __nl_langinfo_l(GROUPING, __cloc);
-+        _M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
-+      }
-+
-+      // NB: There is no way to extact this info from posix locales.
-+      // _M_truename = __nl_langinfo_l(YESSTR, __cloc);
-+      _M_data->_M_truename = L"true";
-+      _M_data->_M_truename_size = 4;
-+      // _M_falsename = __nl_langinfo_l(NOSTR, __cloc);
-+      _M_data->_M_falsename = L"false";
-+      _M_data->_M_falsename_size = 5;
-+    }
-+
-+  template<> 
-+    numpunct<wchar_t>::~numpunct()
-+    { delete _M_data; }
-+ #endif
-+}
-diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/time_members.cc gcc-4.0.0/libstdc++-v3/config/locale/uclibc/time_members.cc
---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/time_members.cc    1969-12-31 18:00:00.000000000 -0600
-+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/time_members.cc        2005-04-28 01:13:15.000000000 -0500
-@@ -0,0 +1,406 @@
-+// std::time_get, std::time_put implementation, GNU version -*- C++ -*-
-+
-+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-+// any later version.
-+
-+// This library is distributed in the hope that it will be useful,
-+// but WITHOUT ANY WARRANTY; without even the implied warranty of
-+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+// GNU General Public License for more details.
-+
-+// You should have received a copy of the GNU General Public License along
-+// with this library; see the file COPYING.  If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction.  Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License.  This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.2.5.1.2 - time_get virtual functions
-+// ISO C++ 14882: 22.2.5.3.2 - time_put virtual functions
-+//
-+
-+// Written by Benjamin Kosnik <bkoz@redhat.com>
-+
-+#include <locale>
-+#include <bits/c++locale_internal.h>
-+
-+#ifdef __UCLIBC_MJN3_ONLY__
-+#warning tailor for stub locale support
-+#endif
-+#ifndef __UCLIBC_HAS_XLOCALE__
-+#define __nl_langinfo_l(N, L)         nl_langinfo((N))
-+#endif
-+
-+namespace std
-+{
-+  template<>
-+    void
-+    __timepunct<char>::
-+    _M_put(char* __s, size_t __maxlen, const char* __format, 
-+         const tm* __tm) const
-+    {
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+      const size_t __len = __strftime_l(__s, __maxlen, __format, __tm,
-+                                      _M_c_locale_timepunct);
-+#else
-+      char* __old = strdup(setlocale(LC_ALL, NULL));
-+      setlocale(LC_ALL, _M_name_timepunct);
-+      const size_t __len = strftime(__s, __maxlen, __format, __tm);
-+      setlocale(LC_ALL, __old);
-+      free(__old);
-+#endif
-+      // Make sure __s is null terminated.
-+      if (__len == 0)
-+      __s[0] = '\0';
-+    }
-+
-+  template<> 
-+    void
-+    __timepunct<char>::_M_initialize_timepunct(__c_locale __cloc)
-+    {
-+      if (!_M_data)
-+      _M_data = new __timepunct_cache<char>;
-+
-+      if (!__cloc)
-+      {
-+        // "C" locale
-+        _M_c_locale_timepunct = _S_get_c_locale();
-+
-+        _M_data->_M_date_format = "%m/%d/%y";
-+        _M_data->_M_date_era_format = "%m/%d/%y";
-+        _M_data->_M_time_format = "%H:%M:%S";
-+        _M_data->_M_time_era_format = "%H:%M:%S";
-+        _M_data->_M_date_time_format = "";
-+        _M_data->_M_date_time_era_format = "";
-+        _M_data->_M_am = "AM";
-+        _M_data->_M_pm = "PM";
-+        _M_data->_M_am_pm_format = "";
-+
-+        // Day names, starting with "C"'s Sunday.
-+        _M_data->_M_day1 = "Sunday";
-+        _M_data->_M_day2 = "Monday";
-+        _M_data->_M_day3 = "Tuesday";
-+        _M_data->_M_day4 = "Wednesday";
-+        _M_data->_M_day5 = "Thursday";
-+        _M_data->_M_day6 = "Friday";
-+        _M_data->_M_day7 = "Saturday";
-+
-+        // Abbreviated day names, starting with "C"'s Sun.
-+        _M_data->_M_aday1 = "Sun";
-+        _M_data->_M_aday2 = "Mon";
-+        _M_data->_M_aday3 = "Tue";
-+        _M_data->_M_aday4 = "Wed";
-+        _M_data->_M_aday5 = "Thu";
-+        _M_data->_M_aday6 = "Fri";
-+        _M_data->_M_aday7 = "Sat";
-+
-+        // Month names, starting with "C"'s January.
-+        _M_data->_M_month01 = "January";
-+        _M_data->_M_month02 = "February";
-+        _M_data->_M_month03 = "March";
-+        _M_data->_M_month04 = "April";
-+        _M_data->_M_month05 = "May";
-+        _M_data->_M_month06 = "June";
-+        _M_data->_M_month07 = "July";
-+        _M_data->_M_month08 = "August";
-+        _M_data->_M_month09 = "September";
-+        _M_data->_M_month10 = "October";
-+        _M_data->_M_month11 = "November";
-+        _M_data->_M_month12 = "December";
-+
-+        // Abbreviated month names, starting with "C"'s Jan.
-+        _M_data->_M_amonth01 = "Jan";
-+        _M_data->_M_amonth02 = "Feb";
-+        _M_data->_M_amonth03 = "Mar";
-+        _M_data->_M_amonth04 = "Apr";
-+        _M_data->_M_amonth05 = "May";
-+        _M_data->_M_amonth06 = "Jun";
-+        _M_data->_M_amonth07 = "Jul";
-+        _M_data->_M_amonth08 = "Aug";
-+        _M_data->_M_amonth09 = "Sep";
-+        _M_data->_M_amonth10 = "Oct";
-+        _M_data->_M_amonth11 = "Nov";
-+        _M_data->_M_amonth12 = "Dec";
-+      }
-+      else
-+      {
-+        _M_c_locale_timepunct = _S_clone_c_locale(__cloc); 
-+
-+        _M_data->_M_date_format = __nl_langinfo_l(D_FMT, __cloc);
-+        _M_data->_M_date_era_format = __nl_langinfo_l(ERA_D_FMT, __cloc);
-+        _M_data->_M_time_format = __nl_langinfo_l(T_FMT, __cloc);
-+        _M_data->_M_time_era_format = __nl_langinfo_l(ERA_T_FMT, __cloc);
-+        _M_data->_M_date_time_format = __nl_langinfo_l(D_T_FMT, __cloc);
-+        _M_data->_M_date_time_era_format = __nl_langinfo_l(ERA_D_T_FMT,
-+                                                           __cloc);
-+        _M_data->_M_am = __nl_langinfo_l(AM_STR, __cloc);
-+        _M_data->_M_pm = __nl_langinfo_l(PM_STR, __cloc);
-+        _M_data->_M_am_pm_format = __nl_langinfo_l(T_FMT_AMPM, __cloc);
-+
-+        // Day names, starting with "C"'s Sunday.
-+        _M_data->_M_day1 = __nl_langinfo_l(DAY_1, __cloc);
-+        _M_data->_M_day2 = __nl_langinfo_l(DAY_2, __cloc);
-+        _M_data->_M_day3 = __nl_langinfo_l(DAY_3, __cloc);
-+        _M_data->_M_day4 = __nl_langinfo_l(DAY_4, __cloc);
-+        _M_data->_M_day5 = __nl_langinfo_l(DAY_5, __cloc);
-+        _M_data->_M_day6 = __nl_langinfo_l(DAY_6, __cloc);
-+        _M_data->_M_day7 = __nl_langinfo_l(DAY_7, __cloc);
-+
-+        // Abbreviated day names, starting with "C"'s Sun.
-+        _M_data->_M_aday1 = __nl_langinfo_l(ABDAY_1, __cloc);
-+        _M_data->_M_aday2 = __nl_langinfo_l(ABDAY_2, __cloc);
-+        _M_data->_M_aday3 = __nl_langinfo_l(ABDAY_3, __cloc);
-+        _M_data->_M_aday4 = __nl_langinfo_l(ABDAY_4, __cloc);
-+        _M_data->_M_aday5 = __nl_langinfo_l(ABDAY_5, __cloc);
-+        _M_data->_M_aday6 = __nl_langinfo_l(ABDAY_6, __cloc);
-+        _M_data->_M_aday7 = __nl_langinfo_l(ABDAY_7, __cloc);
-+
-+        // Month names, starting with "C"'s January.
-+        _M_data->_M_month01 = __nl_langinfo_l(MON_1, __cloc);
-+        _M_data->_M_month02 = __nl_langinfo_l(MON_2, __cloc);
-+        _M_data->_M_month03 = __nl_langinfo_l(MON_3, __cloc);
-+        _M_data->_M_month04 = __nl_langinfo_l(MON_4, __cloc);
-+        _M_data->_M_month05 = __nl_langinfo_l(MON_5, __cloc);
-+        _M_data->_M_month06 = __nl_langinfo_l(MON_6, __cloc);
-+        _M_data->_M_month07 = __nl_langinfo_l(MON_7, __cloc);
-+        _M_data->_M_month08 = __nl_langinfo_l(MON_8, __cloc);
-+        _M_data->_M_month09 = __nl_langinfo_l(MON_9, __cloc);
-+        _M_data->_M_month10 = __nl_langinfo_l(MON_10, __cloc);
-+        _M_data->_M_month11 = __nl_langinfo_l(MON_11, __cloc);
-+        _M_data->_M_month12 = __nl_langinfo_l(MON_12, __cloc);
-+
-+        // Abbreviated month names, starting with "C"'s Jan.
-+        _M_data->_M_amonth01 = __nl_langinfo_l(ABMON_1, __cloc);
-+        _M_data->_M_amonth02 = __nl_langinfo_l(ABMON_2, __cloc);
-+        _M_data->_M_amonth03 = __nl_langinfo_l(ABMON_3, __cloc);
-+        _M_data->_M_amonth04 = __nl_langinfo_l(ABMON_4, __cloc);
-+        _M_data->_M_amonth05 = __nl_langinfo_l(ABMON_5, __cloc);
-+        _M_data->_M_amonth06 = __nl_langinfo_l(ABMON_6, __cloc);
-+        _M_data->_M_amonth07 = __nl_langinfo_l(ABMON_7, __cloc);
-+        _M_data->_M_amonth08 = __nl_langinfo_l(ABMON_8, __cloc);
-+        _M_data->_M_amonth09 = __nl_langinfo_l(ABMON_9, __cloc);
-+        _M_data->_M_amonth10 = __nl_langinfo_l(ABMON_10, __cloc);
-+        _M_data->_M_amonth11 = __nl_langinfo_l(ABMON_11, __cloc);
-+        _M_data->_M_amonth12 = __nl_langinfo_l(ABMON_12, __cloc);
-+      }
-+    }
-+
-+#ifdef _GLIBCXX_USE_WCHAR_T
-+  template<>
-+    void
-+    __timepunct<wchar_t>::
-+    _M_put(wchar_t* __s, size_t __maxlen, const wchar_t* __format, 
-+         const tm* __tm) const
-+    {
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+      __wcsftime_l(__s, __maxlen, __format, __tm, _M_c_locale_timepunct);
-+      const size_t __len = __wcsftime_l(__s, __maxlen, __format, __tm,
-+                                      _M_c_locale_timepunct);
-+#else
-+      char* __old = strdup(setlocale(LC_ALL, NULL));
-+      setlocale(LC_ALL, _M_name_timepunct);
-+      const size_t __len = wcsftime(__s, __maxlen, __format, __tm);
-+      setlocale(LC_ALL, __old);
-+      free(__old);
-+#endif
-+      // Make sure __s is null terminated.
-+      if (__len == 0)
-+      __s[0] = L'\0';
-+    }
-+
-+  template<> 
-+    void
-+    __timepunct<wchar_t>::_M_initialize_timepunct(__c_locale __cloc)
-+    {
-+      if (!_M_data)
-+      _M_data = new __timepunct_cache<wchar_t>;
-+
-+#warning wide time stuff
-+//       if (!__cloc)
-+      {
-+        // "C" locale
-+        _M_c_locale_timepunct = _S_get_c_locale();
-+
-+        _M_data->_M_date_format = L"%m/%d/%y";
-+        _M_data->_M_date_era_format = L"%m/%d/%y";
-+        _M_data->_M_time_format = L"%H:%M:%S";
-+        _M_data->_M_time_era_format = L"%H:%M:%S";
-+        _M_data->_M_date_time_format = L"";
-+        _M_data->_M_date_time_era_format = L"";
-+        _M_data->_M_am = L"AM";
-+        _M_data->_M_pm = L"PM";
-+        _M_data->_M_am_pm_format = L"";
-+
-+        // Day names, starting with "C"'s Sunday.
-+        _M_data->_M_day1 = L"Sunday";
-+        _M_data->_M_day2 = L"Monday";
-+        _M_data->_M_day3 = L"Tuesday";
-+        _M_data->_M_day4 = L"Wednesday";
-+        _M_data->_M_day5 = L"Thursday";
-+        _M_data->_M_day6 = L"Friday";
-+        _M_data->_M_day7 = L"Saturday";
-+
-+        // Abbreviated day names, starting with "C"'s Sun.
-+        _M_data->_M_aday1 = L"Sun";
-+        _M_data->_M_aday2 = L"Mon";
-+        _M_data->_M_aday3 = L"Tue";
-+        _M_data->_M_aday4 = L"Wed";
-+        _M_data->_M_aday5 = L"Thu";
-+        _M_data->_M_aday6 = L"Fri";
-+        _M_data->_M_aday7 = L"Sat";
-+
-+        // Month names, starting with "C"'s January.
-+        _M_data->_M_month01 = L"January";
-+        _M_data->_M_month02 = L"February";
-+        _M_data->_M_month03 = L"March";
-+        _M_data->_M_month04 = L"April";
-+        _M_data->_M_month05 = L"May";
-+        _M_data->_M_month06 = L"June";
-+        _M_data->_M_month07 = L"July";
-+        _M_data->_M_month08 = L"August";
-+        _M_data->_M_month09 = L"September";
-+        _M_data->_M_month10 = L"October";
-+        _M_data->_M_month11 = L"November";
-+        _M_data->_M_month12 = L"December";
-+
-+        // Abbreviated month names, starting with "C"'s Jan.
-+        _M_data->_M_amonth01 = L"Jan";
-+        _M_data->_M_amonth02 = L"Feb";
-+        _M_data->_M_amonth03 = L"Mar";
-+        _M_data->_M_amonth04 = L"Apr";
-+        _M_data->_M_amonth05 = L"May";
-+        _M_data->_M_amonth06 = L"Jun";
-+        _M_data->_M_amonth07 = L"Jul";
-+        _M_data->_M_amonth08 = L"Aug";
-+        _M_data->_M_amonth09 = L"Sep";
-+        _M_data->_M_amonth10 = L"Oct";
-+        _M_data->_M_amonth11 = L"Nov";
-+        _M_data->_M_amonth12 = L"Dec";
-+      }
-+#if 0
-+      else
-+      {
-+        _M_c_locale_timepunct = _S_clone_c_locale(__cloc); 
-+
-+        union { char *__s; wchar_t *__w; } __u;
-+
-+        __u.__s = __nl_langinfo_l(_NL_WD_FMT, __cloc);
-+        _M_data->_M_date_format = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WERA_D_FMT, __cloc);
-+        _M_data->_M_date_era_format = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WT_FMT, __cloc);
-+        _M_data->_M_time_format = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WERA_T_FMT, __cloc);
-+        _M_data->_M_time_era_format = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WD_T_FMT, __cloc);
-+        _M_data->_M_date_time_format = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WERA_D_T_FMT, __cloc);
-+        _M_data->_M_date_time_era_format = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WAM_STR, __cloc);
-+        _M_data->_M_am = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WPM_STR, __cloc);
-+        _M_data->_M_pm = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WT_FMT_AMPM, __cloc);
-+        _M_data->_M_am_pm_format = __u.__w;
-+
-+        // Day names, starting with "C"'s Sunday.
-+        __u.__s = __nl_langinfo_l(_NL_WDAY_1, __cloc);
-+        _M_data->_M_day1 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WDAY_2, __cloc);
-+        _M_data->_M_day2 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WDAY_3, __cloc);
-+        _M_data->_M_day3 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WDAY_4, __cloc);
-+        _M_data->_M_day4 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WDAY_5, __cloc);
-+        _M_data->_M_day5 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WDAY_6, __cloc);
-+        _M_data->_M_day6 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WDAY_7, __cloc);
-+        _M_data->_M_day7 = __u.__w;
-+
-+        // Abbreviated day names, starting with "C"'s Sun.
-+        __u.__s = __nl_langinfo_l(_NL_WABDAY_1, __cloc);
-+        _M_data->_M_aday1 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WABDAY_2, __cloc);
-+        _M_data->_M_aday2 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WABDAY_3, __cloc);
-+        _M_data->_M_aday3 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WABDAY_4, __cloc);
-+        _M_data->_M_aday4 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WABDAY_5, __cloc);
-+        _M_data->_M_aday5 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WABDAY_6, __cloc);
-+        _M_data->_M_aday6 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WABDAY_7, __cloc);
-+        _M_data->_M_aday7 = __u.__w;
-+
-+        // Month names, starting with "C"'s January.
-+        __u.__s = __nl_langinfo_l(_NL_WMON_1, __cloc);
-+        _M_data->_M_month01 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WMON_2, __cloc);
-+        _M_data->_M_month02 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WMON_3, __cloc);
-+        _M_data->_M_month03 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WMON_4, __cloc);
-+        _M_data->_M_month04 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WMON_5, __cloc);
-+        _M_data->_M_month05 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WMON_6, __cloc);
-+        _M_data->_M_month06 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WMON_7, __cloc);
-+        _M_data->_M_month07 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WMON_8, __cloc);
-+        _M_data->_M_month08 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WMON_9, __cloc);
-+        _M_data->_M_month09 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WMON_10, __cloc);
-+        _M_data->_M_month10 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WMON_11, __cloc);
-+        _M_data->_M_month11 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WMON_12, __cloc);
-+        _M_data->_M_month12 = __u.__w;
-+
-+        // Abbreviated month names, starting with "C"'s Jan.
-+        __u.__s = __nl_langinfo_l(_NL_WABMON_1, __cloc);
-+        _M_data->_M_amonth01 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WABMON_2, __cloc);
-+        _M_data->_M_amonth02 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WABMON_3, __cloc);
-+        _M_data->_M_amonth03 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WABMON_4, __cloc);
-+        _M_data->_M_amonth04 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WABMON_5, __cloc);
-+        _M_data->_M_amonth05 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WABMON_6, __cloc);
-+        _M_data->_M_amonth06 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WABMON_7, __cloc);
-+        _M_data->_M_amonth07 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WABMON_8, __cloc);
-+        _M_data->_M_amonth08 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WABMON_9, __cloc);
-+        _M_data->_M_amonth09 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WABMON_10, __cloc);
-+        _M_data->_M_amonth10 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WABMON_11, __cloc);
-+        _M_data->_M_amonth11 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WABMON_12, __cloc);
-+        _M_data->_M_amonth12 = __u.__w;
-+      }
-+#endif // 0
-+    }
-+#endif
-+}
-diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/time_members.h gcc-4.0.0/libstdc++-v3/config/locale/uclibc/time_members.h
---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/time_members.h     1969-12-31 18:00:00.000000000 -0600
-+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/time_members.h 2004-05-22 18:46:31.000000000 -0500
-@@ -0,0 +1,68 @@
-+// std::time_get, std::time_put implementation, GNU version -*- C++ -*-
-+
-+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-+// any later version.
-+
-+// This library is distributed in the hope that it will be useful,
-+// but WITHOUT ANY WARRANTY; without even the implied warranty of
-+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+// GNU General Public License for more details.
-+
-+// You should have received a copy of the GNU General Public License along
-+// with this library; see the file COPYING.  If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction.  Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License.  This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.2.5.1.2 - time_get functions
-+// ISO C++ 14882: 22.2.5.3.2 - time_put functions
-+//
-+
-+// Written by Benjamin Kosnik <bkoz@redhat.com>
-+
-+  template<typename _CharT>
-+    __timepunct<_CharT>::__timepunct(size_t __refs) 
-+    : facet(__refs), _M_data(NULL), _M_c_locale_timepunct(NULL), 
-+    _M_name_timepunct(_S_get_c_name())
-+    { _M_initialize_timepunct(); }
-+
-+  template<typename _CharT>
-+    __timepunct<_CharT>::__timepunct(__cache_type* __cache, size_t __refs) 
-+    : facet(__refs), _M_data(__cache), _M_c_locale_timepunct(NULL), 
-+    _M_name_timepunct(_S_get_c_name())
-+    { _M_initialize_timepunct(); }
-+
-+  template<typename _CharT>
-+    __timepunct<_CharT>::__timepunct(__c_locale __cloc, const char* __s,
-+                                   size_t __refs) 
-+    : facet(__refs), _M_data(NULL), _M_c_locale_timepunct(NULL), 
-+    _M_name_timepunct(__s)
-+    { 
-+      char* __tmp = new char[std::strlen(__s) + 1];
-+      std::strcpy(__tmp, __s);
-+      _M_name_timepunct = __tmp;
-+      _M_initialize_timepunct(__cloc); 
-+    }
-+
-+  template<typename _CharT>
-+    __timepunct<_CharT>::~__timepunct()
-+    { 
-+      if (_M_name_timepunct != _S_get_c_name())
-+      delete [] _M_name_timepunct;
-+      delete _M_data; 
-+      _S_destroy_c_locale(_M_c_locale_timepunct); 
-+    }
-diff -urN gcc-4.0.0-100/libstdc++-v3/config/os/uclibc/ctype_base.h gcc-4.0.0/libstdc++-v3/config/os/uclibc/ctype_base.h
---- gcc-4.0.0-100/libstdc++-v3/config/os/uclibc/ctype_base.h   1969-12-31 18:00:00.000000000 -0600
-+++ gcc-4.0.0/libstdc++-v3/config/os/uclibc/ctype_base.h       2005-04-28 01:10:27.000000000 -0500
-@@ -0,0 +1,64 @@
-+// Locale support -*- C++ -*-
-+
-+// Copyright (C) 1997, 1998, 1999, 2000, 2002, 2003, 2004
-+// Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-+// any later version.
-+
-+// This library is distributed in the hope that it will be useful,
-+// but WITHOUT ANY WARRANTY; without even the implied warranty of
-+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+// GNU General Public License for more details.
-+
-+// You should have received a copy of the GNU General Public License along
-+// with this library; see the file COPYING.  If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction.  Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License.  This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.1  Locales
-+//
-+  
-+/** @file ctype_base.h
-+ *  This is an internal header file, included by other library headers.
-+ *  You should not attempt to use it directly.
-+ */
-+
-+// Information as gleaned from /usr/include/ctype.h
-+  
-+  /// @brief  Base class for ctype.
-+  struct ctype_base
-+  {
-+    // Note: In uClibc, the following two types depend on configuration.
-+ 
-+    // Non-standard typedefs.
-+    typedef const __ctype_touplow_t* __to_type;
-+
-+    // NB: Offsets into ctype<char>::_M_table force a particular size
-+    // on the mask type. Because of this, we don't use an enum.
-+    typedef __ctype_mask_t    mask;   
-+    static const mask upper           = _ISupper;
-+    static const mask lower   = _ISlower;
-+    static const mask alpha   = _ISalpha;
-+    static const mask digit   = _ISdigit;
-+    static const mask xdigit  = _ISxdigit;
-+    static const mask space   = _ISspace;
-+    static const mask print   = _ISprint;
-+    static const mask graph   = _ISalpha | _ISdigit | _ISpunct;
-+    static const mask cntrl   = _IScntrl;
-+    static const mask punct   = _ISpunct;
-+    static const mask alnum   = _ISalpha | _ISdigit;
-+  };
-diff -urN gcc-4.0.0-100/libstdc++-v3/config/os/uclibc/ctype_inline.h gcc-4.0.0/libstdc++-v3/config/os/uclibc/ctype_inline.h
---- gcc-4.0.0-100/libstdc++-v3/config/os/uclibc/ctype_inline.h 1969-12-31 18:00:00.000000000 -0600
-+++ gcc-4.0.0/libstdc++-v3/config/os/uclibc/ctype_inline.h     2002-06-24 00:49:19.000000000 -0500
-@@ -0,0 +1,69 @@
-+// Locale support -*- C++ -*-
-+
-+// Copyright (C) 2000, 2002 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-+// any later version.
-+
-+// This library is distributed in the hope that it will be useful,
-+// but WITHOUT ANY WARRANTY; without even the implied warranty of
-+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+// GNU General Public License for more details.
-+
-+// You should have received a copy of the GNU General Public License along
-+// with this library; see the file COPYING.  If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction.  Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License.  This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.1  Locales
-+//
-+  
-+// ctype bits to be inlined go here. Non-inlinable (ie virtual do_*)
-+// functions go in ctype.cc
-+  
-+  bool
-+  ctype<char>::
-+  is(mask __m, char __c) const
-+  { return _M_table[static_cast<unsigned char>(__c)] & __m; }
-+
-+  const char*
-+  ctype<char>::
-+  is(const char* __low, const char* __high, mask* __vec) const
-+  {
-+    while (__low < __high)
-+      *__vec++ = _M_table[static_cast<unsigned char>(*__low++)];
-+    return __high;
-+  }
-+
-+  const char*
-+  ctype<char>::
-+  scan_is(mask __m, const char* __low, const char* __high) const
-+  {
-+    while (__low < __high 
-+         && !(_M_table[static_cast<unsigned char>(*__low)] & __m))
-+      ++__low;
-+    return __low;
-+  }
-+
-+  const char*
-+  ctype<char>::
-+  scan_not(mask __m, const char* __low, const char* __high) const
-+  {
-+    while (__low < __high 
-+         && (_M_table[static_cast<unsigned char>(*__low)] & __m) != 0)
-+      ++__low;
-+    return __low;
-+  }
-diff -urN gcc-4.0.0-100/libstdc++-v3/config/os/uclibc/ctype_noninline.h gcc-4.0.0/libstdc++-v3/config/os/uclibc/ctype_noninline.h
---- gcc-4.0.0-100/libstdc++-v3/config/os/uclibc/ctype_noninline.h      1969-12-31 18:00:00.000000000 -0600
-+++ gcc-4.0.0/libstdc++-v3/config/os/uclibc/ctype_noninline.h  2005-04-28 01:10:27.000000000 -0500
-@@ -0,0 +1,92 @@
-+// Locale support -*- C++ -*-
-+
-+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2004
-+// Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-+// any later version.
-+
-+// This library is distributed in the hope that it will be useful,
-+// but WITHOUT ANY WARRANTY; without even the implied warranty of
-+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+// GNU General Public License for more details.
-+
-+// You should have received a copy of the GNU General Public License along
-+// with this library; see the file COPYING.  If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction.  Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License.  This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.1  Locales
-+//
-+  
-+// Information as gleaned from /usr/include/ctype.h
-+
-+  const ctype_base::mask*
-+  ctype<char>::classic_table() throw()
-+  { return __C_ctype_b; }
-+
-+  ctype<char>::ctype(__c_locale, const mask* __table, bool __del, 
-+                   size_t __refs) 
-+  : facet(__refs), _M_c_locale_ctype(_S_get_c_locale()), 
-+  _M_del(__table != 0 && __del), _M_widen_ok(0), _M_narrow_ok(0)
-+  {
-+    _M_toupper = __C_ctype_toupper;
-+    _M_tolower = __C_ctype_tolower;
-+    _M_table = __table ? __table : __C_ctype_b;
-+    memset(_M_widen, 0, sizeof(_M_widen));
-+    memset(_M_narrow, 0, sizeof(_M_narrow));
-+  }
-+
-+  ctype<char>::ctype(const mask* __table, bool __del, size_t __refs)
-+  : facet(__refs), _M_c_locale_ctype(_S_get_c_locale()), 
-+  _M_del(__table != 0 && __del), _M_widen_ok(0), _M_narrow_ok(0)
-+  {
-+    _M_toupper = __C_ctype_toupper;
-+    _M_tolower = __C_ctype_tolower;
-+    _M_table = __table ? __table : __C_ctype_b;
-+    memset(_M_widen, 0, sizeof(_M_widen));
-+    memset(_M_narrow, 0, sizeof(_M_narrow));
-+  }
-+
-+  char
-+  ctype<char>::do_toupper(char __c) const
-+  { return _M_toupper[static_cast<unsigned char>(__c)]; }
-+
-+  const char*
-+  ctype<char>::do_toupper(char* __low, const char* __high) const
-+  {
-+    while (__low < __high)
-+      {
-+      *__low = _M_toupper[static_cast<unsigned char>(*__low)];
-+      ++__low;
-+      }
-+    return __high;
-+  }
-+
-+  char
-+  ctype<char>::do_tolower(char __c) const
-+  { return _M_tolower[static_cast<unsigned char>(__c)]; }
-+
-+  const char* 
-+  ctype<char>::do_tolower(char* __low, const char* __high) const
-+  {
-+    while (__low < __high)
-+      {
-+      *__low = _M_tolower[static_cast<unsigned char>(*__low)];
-+      ++__low;
-+      }
-+    return __high;
-+  }
-diff -urN gcc-4.0.0-100/libstdc++-v3/config/os/uclibc/os_defines.h gcc-4.0.0/libstdc++-v3/config/os/uclibc/os_defines.h
---- gcc-4.0.0-100/libstdc++-v3/config/os/uclibc/os_defines.h   1969-12-31 18:00:00.000000000 -0600
-+++ gcc-4.0.0/libstdc++-v3/config/os/uclibc/os_defines.h       2005-04-28 01:10:27.000000000 -0500
-@@ -0,0 +1,44 @@
-+// Specific definitions for GNU/Linux  -*- C++ -*-
-+
-+// Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library.  This library 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, or (at your option)
-+// any later version.
-+
-+// This library is distributed in the hope that it will be useful,
-+// but WITHOUT ANY WARRANTY; without even the implied warranty of
-+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+// GNU General Public License for more details.
-+
-+// You should have received a copy of the GNU General Public License along
-+// with this library; see the file COPYING.  If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction.  Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License.  This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+#ifndef _GLIBCXX_OS_DEFINES
-+#define _GLIBCXX_OS_DEFINES 1
-+
-+// System-specific #define, typedefs, corrections, etc, go here.  This
-+// file will come before all others.
-+
-+// This keeps isanum, et al from being propagated as macros.
-+#define __NO_CTYPE 1
-+
-+#include <features.h>
-+
-+// We must not see the optimized string functions GNU libc defines.
-+#define __NO_STRING_INLINES
-+
-+#endif
-diff -urN gcc-4.0.0-100/libstdc++-v3/configure gcc-4.0.0/libstdc++-v3/configure
---- gcc-4.0.0-100/libstdc++-v3/configure       2005-04-30 13:06:53.683055232 -0500
-+++ gcc-4.0.0/libstdc++-v3/configure   2005-04-30 12:24:24.000000000 -0500
-@@ -3998,6 +3998,11 @@
-   lt_cv_deplibs_check_method=pass_all
-   ;;
-+linux-uclibc*)
-+  lt_cv_deplibs_check_method=pass_all
-+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
-+  ;;
-+
- netbsd* | knetbsd*-gnu)
-   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
-     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
-@@ -5672,7 +5677,7 @@
-   enableval="$enable_clocale"
-       case "$enableval" in
--       generic|gnu|ieee_1003.1-2001|yes|no|auto) ;;
-+       generic|gnu|ieee_1003.1-2001|uclibc|yes|no|auto) ;;
-        *) { { echo "$as_me:$LINENO: error: Unknown argument to enable/disable clocale" >&5
- echo "$as_me: error: Unknown argument to enable/disable clocale" >&2;}
-    { (exit 1); exit 1; }; } ;;
-@@ -5697,6 +5702,9 @@
-   # Default to "generic".
-   if test $enable_clocale_flag = auto; then
-     case ${target_os} in
-+      linux-uclibc*)
-+      enable_clocale_flag=uclibc
-+      ;;
-       linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu)
-         cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -5927,6 +5935,76 @@
-       CTIME_CC=config/locale/generic/time_members.cc
-       CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h
-       ;;
-+    uclibc)
-+      echo "$as_me:$LINENO: result: uclibc" >&5
-+echo "${ECHO_T}uclibc" >&6
-+
-+      # Declare intention to use gettext, and add support for specific
-+      # languages.
-+      # For some reason, ALL_LINGUAS has to be before AM-GNU-GETTEXT
-+      ALL_LINGUAS="de fr"
-+
-+      # Don't call AM-GNU-GETTEXT here. Instead, assume glibc.
-+      # Extract the first word of "msgfmt", so it can be a program name with args.
-+set dummy msgfmt; ac_word=$2
-+echo "$as_me:$LINENO: checking for $ac_word" >&5
-+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-+if test "${ac_cv_prog_check_msgfmt+set}" = set; then
-+  echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+  if test -n "$check_msgfmt"; then
-+  ac_cv_prog_check_msgfmt="$check_msgfmt" # Let the user override the test.
-+else
-+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+  IFS=$as_save_IFS
-+  test -z "$as_dir" && as_dir=.
-+  for ac_exec_ext in '' $ac_executable_extensions; do
-+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-+    ac_cv_prog_check_msgfmt="yes"
-+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-+    break 2
-+  fi
-+done
-+done
-+
-+  test -z "$ac_cv_prog_check_msgfmt" && ac_cv_prog_check_msgfmt="no"
-+fi
-+fi
-+check_msgfmt=$ac_cv_prog_check_msgfmt
-+if test -n "$check_msgfmt"; then
-+  echo "$as_me:$LINENO: result: $check_msgfmt" >&5
-+echo "${ECHO_T}$check_msgfmt" >&6
-+else
-+  echo "$as_me:$LINENO: result: no" >&5
-+echo "${ECHO_T}no" >&6
-+fi
-+
-+      if test x"$check_msgfmt" = x"yes" && test x"$enable_nls" = x"yes"; then
-+        USE_NLS=yes
-+      fi
-+      # Export the build objects.
-+      for ling in $ALL_LINGUAS; do \
-+        glibcxx_MOFILES="$glibcxx_MOFILES $ling.mo"; \
-+        glibcxx_POFILES="$glibcxx_POFILES $ling.po"; \
-+      done
-+
-+
-+
-+      CLOCALE_H=config/locale/uclibc/c_locale.h
-+      CLOCALE_CC=config/locale/uclibc/c_locale.cc
-+      CCODECVT_CC=config/locale/uclibc/codecvt_members.cc
-+      CCOLLATE_CC=config/locale/uclibc/collate_members.cc
-+      CCTYPE_CC=config/locale/uclibc/ctype_members.cc
-+      CMESSAGES_H=config/locale/uclibc/messages_members.h
-+      CMESSAGES_CC=config/locale/uclibc/messages_members.cc
-+      CMONEY_CC=config/locale/uclibc/monetary_members.cc
-+      CNUMERIC_CC=config/locale/uclibc/numeric_members.cc
-+      CTIME_H=config/locale/uclibc/time_members.h
-+      CTIME_CC=config/locale/uclibc/time_members.cc
-+      CLOCALE_INTERNAL_H=config/locale/uclibc/c++locale_internal.h
-+      ;;
-   esac
-   # This is where the testsuite looks for locale catalogs, using the
-diff -urN gcc-4.0.0-100/libstdc++-v3/configure.host gcc-4.0.0/libstdc++-v3/configure.host
---- gcc-4.0.0-100/libstdc++-v3/configure.host  2005-04-30 13:06:53.688054472 -0500
-+++ gcc-4.0.0/libstdc++-v3/configure.host      2005-04-28 20:20:32.000000000 -0500
-@@ -249,6 +249,12 @@
-     ;;
- esac
-+# Override for uClibc since linux-uclibc gets mishandled above.
-+case "${host_os}" in
-+  *-uclibc*)
-+    os_include_dir="os/uclibc"
-+    ;;
-+esac
- # Set any OS-dependent and CPU-dependent bits.
- # THIS TABLE IS SORTED.  KEEP IT THAT WAY.
-diff -urN gcc-4.0.0-100/libstdc++-v3/crossconfig.m4 gcc-4.0.0/libstdc++-v3/crossconfig.m4
---- gcc-4.0.0-100/libstdc++-v3/crossconfig.m4  2005-04-30 13:06:53.689054320 -0500
-+++ gcc-4.0.0/libstdc++-v3/crossconfig.m4      2005-04-28 20:27:15.000000000 -0500
-@@ -142,6 +142,98 @@
-       ;;
-     esac
-     ;;
-+  *-uclibc*)
-+# Temporary hack until we implement the float versions of the libm funcs
-+    AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \
-+      machine/endian.h machine/param.h sys/machine.h sys/types.h \
-+      fp.h float.h endian.h inttypes.h locale.h float.h stdint.h])
-+    SECTION_FLAGS='-ffunction-sections -fdata-sections'
-+    AC_SUBST(SECTION_FLAGS)
-+    GLIBCXX_CHECK_LINKER_FEATURES
-+    GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
-+    GLIBCXX_CHECK_WCHAR_T_SUPPORT
-+
-+    # For LFS.
-+    AC_DEFINE(HAVE_INT64_T)
-+    case "$target" in
-+      *-uclinux*)
-+        # Don't enable LFS with uClinux
-+        ;;
-+      *)
-+        AC_DEFINE(_GLIBCXX_USE_LFS)
-+    esac
-+
-+    # For showmanyc_helper().
-+    AC_CHECK_HEADERS(sys/ioctl.h sys/filio.h)
-+    GLIBCXX_CHECK_POLL
-+    GLIBCXX_CHECK_S_ISREG_OR_S_IFREG
-+
-+    # For xsputn_2().
-+    AC_CHECK_HEADERS(sys/uio.h)
-+    GLIBCXX_CHECK_WRITEV
-+
-+#     AC_DEFINE(HAVE_ACOSF)
-+#     AC_DEFINE(HAVE_ASINF)
-+#     AC_DEFINE(HAVE_ATANF)
-+#     AC_DEFINE(HAVE_ATAN2F)
-+    AC_DEFINE(HAVE_CEILF)
-+    AC_DEFINE(HAVE_COPYSIGN)
-+#     AC_DEFINE(HAVE_COPYSIGNF)
-+#     AC_DEFINE(HAVE_COSF)
-+#     AC_DEFINE(HAVE_COSHF)
-+#     AC_DEFINE(HAVE_EXPF)
-+#     AC_DEFINE(HAVE_FABSF)
-+    AC_DEFINE(HAVE_FINITE)
-+    AC_DEFINE(HAVE_FINITEF)
-+    AC_DEFINE(HAVE_FLOORF)
-+#     AC_DEFINE(HAVE_FMODF)
-+#     AC_DEFINE(HAVE_FREXPF)
-+    AC_DEFINE(HAVE_HYPOT)
-+#     AC_DEFINE(HAVE_HYPOTF)
-+    AC_DEFINE(HAVE_ISINF)
-+    AC_DEFINE(HAVE_ISINFF)
-+    AC_DEFINE(HAVE_ISNAN)
-+    AC_DEFINE(HAVE_ISNANF)
-+#     AC_DEFINE(HAVE_LOGF)
-+#     AC_DEFINE(HAVE_LOG10F)
-+#     AC_DEFINE(HAVE_MODFF)
-+#     AC_DEFINE(HAVE_SINF)
-+#     AC_DEFINE(HAVE_SINHF)
-+#     AC_DEFINE(HAVE_SINCOS)
-+#     AC_DEFINE(HAVE_SINCOSF)
-+    AC_DEFINE(HAVE_SQRTF)
-+#     AC_DEFINE(HAVE_TANF)
-+#     AC_DEFINE(HAVE_TANHF)
-+    if test x"long_double_math_on_this_cpu" = x"yes"; then
-+#       AC_DEFINE(HAVE_ACOSL)
-+#       AC_DEFINE(HAVE_ASINL)
-+#       AC_DEFINE(HAVE_ATANL)
-+#       AC_DEFINE(HAVE_ATAN2L)
-+#       AC_DEFINE(HAVE_CEILL)
-+#       AC_DEFINE(HAVE_COPYSIGNL)
-+#       AC_DEFINE(HAVE_COSL)
-+#       AC_DEFINE(HAVE_COSHL)
-+#       AC_DEFINE(HAVE_EXPL)
-+#       AC_DEFINE(HAVE_FABSL)
-+#       AC_DEFINE(HAVE_FINITEL)
-+#       AC_DEFINE(HAVE_FLOORL)
-+#       AC_DEFINE(HAVE_FMODL)
-+#       AC_DEFINE(HAVE_FREXPL)
-+#       AC_DEFINE(HAVE_HYPOTL)
-+#       AC_DEFINE(HAVE_ISINFL)
-+#       AC_DEFINE(HAVE_ISNANL)
-+#       AC_DEFINE(HAVE_LOGL)
-+#       AC_DEFINE(HAVE_LOG10L)
-+#       AC_DEFINE(HAVE_MODFL)
-+#       AC_DEFINE(HAVE_POWL)
-+#       AC_DEFINE(HAVE_SINL)
-+#       AC_DEFINE(HAVE_SINHL)
-+#       AC_DEFINE(HAVE_SINCOSL)
-+#       AC_DEFINE(HAVE_SQRTL)
-+#       AC_DEFINE(HAVE_TANL)
-+#       AC_DEFINE(HAVE_TANHL)
-+    fi
-+    ;;
-   *-linux* | *-uclinux* | *-gnu* | *-kfreebsd*-gnu | *-knetbsd*-gnu)
-     AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \
-       machine/endian.h machine/param.h sys/machine.h sys/types.h \
-@@ -156,7 +248,7 @@
-     AC_DEFINE(HAVE_INT64_T)
-     case "$target" in
-       *-uclinux*)
--        # Don't enable LFS with uClibc
-+        # Don't enable LFS with uClinux
-         ;;
-       *)
-         AC_DEFINE(_GLIBCXX_USE_LFS)
-diff -urN gcc-4.0.0-100/libstdc++-v3/include/c_compatibility/wchar.h gcc-4.0.0/libstdc++-v3/include/c_compatibility/wchar.h
---- gcc-4.0.0-100/libstdc++-v3/include/c_compatibility/wchar.h 2005-04-30 13:06:53.690054168 -0500
-+++ gcc-4.0.0/libstdc++-v3/include/c_compatibility/wchar.h     2005-04-28 20:15:56.000000000 -0500
-@@ -101,7 +101,9 @@
- using std::wmemcpy;
- using std::wmemmove;
- using std::wmemset;
-+#if _GLIBCXX_HAVE_WCSFTIME
- using std::wcsftime;
-+#endif
- #if _GLIBCXX_USE_C99
- using std::wcstold;
-diff -urN gcc-4.0.0-100/libstdc++-v3/include/c_std/std_cwchar.h gcc-4.0.0/libstdc++-v3/include/c_std/std_cwchar.h
---- gcc-4.0.0-100/libstdc++-v3/include/c_std/std_cwchar.h      2005-04-30 13:06:53.691054016 -0500
-+++ gcc-4.0.0/libstdc++-v3/include/c_std/std_cwchar.h  2005-04-28 20:15:56.000000000 -0500
-@@ -179,7 +179,9 @@
-   using ::wcscoll;
-   using ::wcscpy;
-   using ::wcscspn;
-+#if _GLIBCXX_HAVE_WCSFTIME
-   using ::wcsftime;
-+#endif
-   using ::wcslen;
-   using ::wcsncat;
-   using ::wcsncmp;
diff --git a/src/patches/gcc/gcc44-build-id.patch b/src/patches/gcc/gcc44-build-id.patch
new file mode 100644 (file)
index 0000000..f76f939
--- /dev/null
@@ -0,0 +1,52 @@
+2007-07-22  Roland McGrath  <roland@redhat.com>
+
+       * config/rs6000/sysv4.h (LINK_EH_SPEC): Add --build-id for
+       non-relocatable link.
+       * config/linux.h (LINK_EH_SPEC): Likewise.
+       * config/alpha/elf.h (LINK_EH_SPEC): Likewise.
+       * config/ia64/linux.h (LINK_EH_SPEC): Likewise.
+
+--- gcc/config/rs6000/sysv4.h.~1~
++++ gcc/config/rs6000/sysv4.h
+@@ -906,7 +906,7 @@ extern int fixuplabelno;
+   %{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER "}}}"
+ #if defined(HAVE_LD_EH_FRAME_HDR)
+-# define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
++# define LINK_EH_SPEC "%{!static:--eh-frame-hdr} %{!r:--build-id} "
+ #endif
+ #define CPP_OS_LINUX_SPEC "-D__unix__ -D__gnu_linux__ -D__linux__ \
+--- gcc/config/linux.h.~1~
++++ gcc/config/linux.h
+@@ -85,7 +85,7 @@ Boston, MA 02110-1301, USA.  */
+     } while (0)
+ #if defined(HAVE_LD_EH_FRAME_HDR)
+-#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
++#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} %{!r:--build-id} "
+ #endif
+ /* Define this so we can compile MS code for use with WINE.  */
+--- gcc/config/alpha/elf.h.~1~
++++ gcc/config/alpha/elf.h
+@@ -421,7 +421,7 @@ extern int alpha_this_gpdisp_sequence_nu
+    I imagine that other systems will catch up.  In the meantime, it
+    doesn't harm to make sure that the data exists to be used later.  */
+ #if defined(HAVE_LD_EH_FRAME_HDR)
+-#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
++#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} %{!r:--build-id} "
+ #endif
+ /* A C statement (sans semicolon) to output to the stdio stream STREAM
+--- gcc/config/ia64/linux.h.~1~
++++ gcc/config/ia64/linux.h
+@@ -56,7 +56,7 @@ do {                                         \
+    Signalize that because we have fde-glibc, we don't need all C shared libs
+    linked against -lgcc_s.  */
+ #undef LINK_EH_SPEC
+-#define LINK_EH_SPEC ""
++#define LINK_EH_SPEC "%{!r:--build-id} "
+ #define MD_UNWIND_SUPPORT "config/ia64/linux-unwind.h"
diff --git a/src/patches/gcc/gcc44-c++-builtin-redecl.patch b/src/patches/gcc/gcc44-c++-builtin-redecl.patch
new file mode 100644 (file)
index 0000000..1f36f1f
--- /dev/null
@@ -0,0 +1,102 @@
+2007-10-02  Jakub Jelinek  <jakub@redhat.com>
+
+       * decl.c (duplicate_decls): When redeclaring a builtin function,
+       keep the merged decl builtin whenever types match, even if new
+       decl defines a function.
+
+       * gcc.dg/builtins-65.c: New test.
+       * g++.dg/ext/builtin10.C: New test.
+
+--- gcc/cp/decl.c.jj   2007-10-01 22:11:09.000000000 +0200
++++ gcc/cp/decl.c      2007-10-02 11:39:46.000000000 +0200
+@@ -2001,23 +2001,21 @@ duplicate_decls (tree newdecl, tree oldd
+         DECL_ARGUMENTS (olddecl) = DECL_ARGUMENTS (newdecl);
+         DECL_RESULT (olddecl) = DECL_RESULT (newdecl);
+       }
++      /* If redeclaring a builtin function, it stays built in.  */
++      if (types_match && DECL_BUILT_IN (olddecl))
++      {
++        DECL_BUILT_IN_CLASS (newdecl) = DECL_BUILT_IN_CLASS (olddecl);
++        DECL_FUNCTION_CODE (newdecl) = DECL_FUNCTION_CODE (olddecl);
++        /* If we're keeping the built-in definition, keep the rtl,
++           regardless of declaration matches.  */
++        COPY_DECL_RTL (olddecl, newdecl);
++      }
+       if (new_defines_function)
+       /* If defining a function declared with other language
+          linkage, use the previously declared language linkage.  */
+       SET_DECL_LANGUAGE (newdecl, DECL_LANGUAGE (olddecl));
+       else if (types_match)
+       {
+-        /* If redeclaring a builtin function, and not a definition,
+-           it stays built in.  */
+-        if (DECL_BUILT_IN (olddecl))
+-          {
+-            DECL_BUILT_IN_CLASS (newdecl) = DECL_BUILT_IN_CLASS (olddecl);
+-            DECL_FUNCTION_CODE (newdecl) = DECL_FUNCTION_CODE (olddecl);
+-            /* If we're keeping the built-in definition, keep the rtl,
+-               regardless of declaration matches.  */
+-            COPY_DECL_RTL (olddecl, newdecl);
+-          }
+-
+         DECL_RESULT (newdecl) = DECL_RESULT (olddecl);
+         /* Don't clear out the arguments if we're just redeclaring a
+            function.  */
+--- gcc/testsuite/gcc.dg/builtins-65.c.jj      2007-10-02 11:23:51.000000000 +0200
++++ gcc/testsuite/gcc.dg/builtins-65.c 2007-10-02 11:24:12.000000000 +0200
+@@ -0,0 +1,25 @@
++/* { dg-do compile } */
++/* { dg-options "-O2" } */
++
++typedef __SIZE_TYPE__ size_t;
++extern void __chk_fail (void);
++extern int snprintf (char *, size_t, const char *, ...);
++extern inline __attribute__((gnu_inline, always_inline)) int snprintf (char *a, size_t b, const char *fmt, ...)
++{
++  if (__builtin_object_size (a, 0) != -1UL && __builtin_object_size (a, 0) < b)
++    __chk_fail ();
++  return __builtin_snprintf (a, b, fmt, __builtin_va_arg_pack ());
++}
++extern int snprintf (char *, size_t, const char *, ...) __asm ("mysnprintf");
++
++char buf[10];
++
++int
++main (void)
++{
++  snprintf (buf, 10, "%d%d\n", 10, 10);
++  return 0;
++}
++
++/* { dg-final { scan-assembler "mysnprintf" } } */
++/* { dg-final { scan-assembler-not "__chk_fail" } } */
+--- gcc/testsuite/g++.dg/ext/builtin10.C.jj    2007-10-02 11:19:45.000000000 +0200
++++ gcc/testsuite/g++.dg/ext/builtin10.C       2007-10-02 11:23:26.000000000 +0200
+@@ -0,0 +1,27 @@
++// { dg-do compile }
++// { dg-options "-O2" }
++
++typedef __SIZE_TYPE__ size_t;
++extern "C" {
++extern void __chk_fail (void);
++extern int snprintf (char *, size_t, const char *, ...);
++extern inline __attribute__((gnu_inline, always_inline)) int snprintf (char *a, size_t b, const char *fmt, ...)
++{
++  if (__builtin_object_size (a, 0) != -1UL && __builtin_object_size (a, 0) < b)
++    __chk_fail ();
++  return __builtin_snprintf (a, b, fmt, __builtin_va_arg_pack ());
++}
++extern int snprintf (char *, size_t, const char *, ...) __asm ("mysnprintf");
++}
++
++char buf[10];
++
++int
++main (void)
++{
++  snprintf (buf, 10, "%d%d\n", 10, 10);
++  return 0;
++}
++
++// { dg-final { scan-assembler "mysnprintf" } }
++// { dg-final { scan-assembler-not "__chk_fail" } }
diff --git a/src/patches/gcc/gcc44-i386-libgomp.patch b/src/patches/gcc/gcc44-i386-libgomp.patch
new file mode 100644 (file)
index 0000000..5d1eea8
--- /dev/null
@@ -0,0 +1,61 @@
+Build i386.rpm libgomp and libsupc++.a(guard.o) as i486+, pre-i486
+hardware isn't supported because NPTL doesn't support it anyway.
+
+--- libgomp/configure.tgt.jj   2008-01-10 20:53:48.000000000 +0100
++++ libgomp/configure.tgt      2008-03-27 12:44:51.000000000 +0100
+@@ -44,14 +44,14 @@ if test $enable_linux_futex = yes; then
+       ;;
+     # Note that bare i386 is not included here.  We need cmpxchg.
+-    i[456]86-*-linux*)
++    i[3456]86-*-linux*)
+       config_path="linux/x86 linux posix"
+       case " ${CC} ${CFLAGS} " in
+         *" -m64 "*)
+           ;;
+         *)
+           if test -z "$with_arch"; then
+-            XCFLAGS="${XCFLAGS} -march=i486 -mtune=${target_cpu}"
++            XCFLAGS="${XCFLAGS} -march=i486 -mtune=generic"
+           fi
+       esac
+       ;;
+@@ -63,7 +63,7 @@ if test $enable_linux_futex = yes; then
+       config_path="linux/x86 linux posix"
+       case " ${CC} ${CFLAGS} " in
+         *" -m32 "*)
+-          XCFLAGS="${XCFLAGS} -march=i486 -mtune=i686"
++          XCFLAGS="${XCFLAGS} -march=i486 -mtune=generic"
+           ;;
+       esac
+       ;;
+--- libstdc++-v3/libsupc++/guard.cc.jj 2008-03-01 00:58:24.000000000 +0100
++++ libstdc++-v3/libsupc++/guard.cc    2008-03-27 14:08:44.000000000 +0100
+@@ -35,6 +35,27 @@
+ #include <new>
+ #include <ext/atomicity.h>
+ #include <ext/concurrence.h>
++#if defined __i386__ && !defined _GLIBCXX_ATOMIC_BUILTINS_4
++# define _GLIBCXX_ATOMIC_BUILTINS_4 1
++# define __sync_val_compare_and_swap(a, b, c) \
++  ({                                                          \
++     typedef char sltast[sizeof (*a) == sizeof (int) ? 1 : -1];       \
++     int sltas;                                                       \
++     __asm __volatile ("lock; cmpxchgl %3, (%1)"              \
++                     : "=a" (sltas)                           \
++                     : "r" (a), "0" (b), "r" (c) : "memory"); \
++     sltas;                                                   \
++   })
++# define __sync_lock_test_and_set(a, b) \
++  ({                                                          \
++     typedef char sltast[sizeof (*a) == sizeof (int) ? 1 : -1];       \
++     int sltas;                                                       \
++     __asm __volatile ("xchgl (%1), %0"                               \
++                     : "=r" (sltas)                           \
++                     : "r" (a), "0" (b) : "memory");          \
++     sltas;                                                   \
++   })
++#endif
+ #if defined(__GTHREADS) && defined(__GTHREAD_HAS_COND) \
+     && defined(_GLIBCXX_ATOMIC_BUILTINS_4) && defined(_GLIBCXX_HAVE_LINUX_FUTEX)
+ # include <climits>
diff --git a/src/patches/gcc/gcc44-libtool-no-rpath.patch b/src/patches/gcc/gcc44-libtool-no-rpath.patch
new file mode 100644 (file)
index 0000000..466c661
--- /dev/null
@@ -0,0 +1,27 @@
+libtool sucks.
+--- ltmain.sh.jj       2007-12-07 14:53:21.000000000 +0100
++++ ltmain.sh  2008-09-05 21:51:48.000000000 +0200
+@@ -5394,6 +5394,7 @@ EOF
+         rpath="$finalize_rpath"
+         test "$mode" != relink && rpath="$compile_rpath$rpath"
+         for libdir in $rpath; do
++          case "$libdir" in /usr/lib|/usr/lib64|/usr/lib/../lib|/usr/lib/../lib64) continue;; esac
+           if test -n "$hardcode_libdir_flag_spec"; then
+             if test -n "$hardcode_libdir_separator"; then
+               if test -z "$hardcode_libdirs"; then
+@@ -6071,6 +6072,7 @@ EOF
+       rpath=
+       hardcode_libdirs=
+       for libdir in $compile_rpath $finalize_rpath; do
++      case "$libdir" in /usr/lib|/usr/lib64|/usr/lib/../lib|/usr/lib/../lib64) continue;; esac
+       if test -n "$hardcode_libdir_flag_spec"; then
+         if test -n "$hardcode_libdir_separator"; then
+           if test -z "$hardcode_libdirs"; then
+@@ -6120,6 +6122,7 @@ EOF
+       rpath=
+       hardcode_libdirs=
+       for libdir in $finalize_rpath; do
++      case "$libdir" in /usr/lib|/usr/lib64|/usr/lib/../lib|/usr/lib/../lib64) continue;; esac
+       if test -n "$hardcode_libdir_flag_spec"; then
+         if test -n "$hardcode_libdir_separator"; then
+           if test -z "$hardcode_libdirs"; then
diff --git a/src/patches/gcc/gcc44-no-add-needed.patch b/src/patches/gcc/gcc44-no-add-needed.patch
new file mode 100644 (file)
index 0000000..4570c0c
--- /dev/null
@@ -0,0 +1,52 @@
+2010-02-08  Roland McGrath  <roland@redhat.com>
+
+       * config/rs6000/sysv4.h (LINK_EH_SPEC): Pass --no-add-needed to the
+       linker.
+       * config/linux.h (LINK_EH_SPEC): Likewise.
+       * config/alpha/elf.h (LINK_EH_SPEC): Likewise.
+       * config/ia64/linux.h (LINK_EH_SPEC): Likewise.
+
+--- gcc/config/alpha/elf.h.~1~
++++ gcc/config/alpha/elf.h
+@@ -421,7 +421,7 @@ extern int alpha_this_gpdisp_sequence_nu
+    I imagine that other systems will catch up.  In the meantime, it
+    doesn't harm to make sure that the data exists to be used later.  */
+ #if defined(HAVE_LD_EH_FRAME_HDR)
+-#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} %{!r:--build-id} "
++#define LINK_EH_SPEC "--no-add-needed %{!static:--eh-frame-hdr} %{!r:--build-id} "
+ #endif
+ /* A C statement (sans semicolon) to output to the stdio stream STREAM
+--- gcc/config/ia64/linux.h.~1~
++++ gcc/config/ia64/linux.h
+@@ -58,7 +58,7 @@ do {                                         \
+    Signalize that because we have fde-glibc, we don't need all C shared libs
+    linked against -lgcc_s.  */
+ #undef LINK_EH_SPEC
+-#define LINK_EH_SPEC "%{!r:--build-id} "
++#define LINK_EH_SPEC "--no-add-needed %{!r:--build-id} "
+ #define MD_UNWIND_SUPPORT "config/ia64/linux-unwind.h"
+--- gcc/config/linux.h.~1~
++++ gcc/config/linux.h
+@@ -89,7 +89,7 @@ see the files COPYING3 and COPYING.RUNTI
+     } while (0)
+ #if defined(HAVE_LD_EH_FRAME_HDR)
+-#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} %{!r:--build-id} "
++#define LINK_EH_SPEC "--no-add-needed %{!static:--eh-frame-hdr} %{!r:--build-id} "
+ #endif
+ /* Define this so we can compile MS code for use with WINE.  */
+--- gcc/config/rs6000/sysv4.h.~1~
++++ gcc/config/rs6000/sysv4.h
+@@ -917,7 +917,7 @@ SVR4_ASM_SPEC \
+   %{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER "}}}"
+ #if defined(HAVE_LD_EH_FRAME_HDR)
+-# define LINK_EH_SPEC "%{!static:--eh-frame-hdr} %{!r:--build-id} "
++# define LINK_EH_SPEC "--no-add-needed %{!static:--eh-frame-hdr} %{!r:--build-id} "
+ #endif
+ #define CPP_OS_LINUX_SPEC "-D__unix__ -D__gnu_linux__ -D__linux__ \
diff --git a/src/patches/gcc/gcc44-pr33763.patch b/src/patches/gcc/gcc44-pr33763.patch
new file mode 100644 (file)
index 0000000..86c8ac7
--- /dev/null
@@ -0,0 +1,153 @@
+2007-11-06  Jakub Jelinek  <jakub@redhat.com>
+
+       PR tree-optimization/33763
+       * gcc.dg/pr33763.c: New test.
+       * g++.dg/opt/inline13.C: New test.
+
+2007-11-06  Jan Hubicka  <jh@suse.cz>
+
+       PR tree-optimization/33763
+       * tree-inline.c (expand_call_inline): Silently ignore always_inline
+       attribute for redefined extern inline functions.
+
+--- gcc/tree-inline.c.jj       2007-11-06 09:29:04.000000000 +0100
++++ gcc/tree-inline.c  2007-11-06 16:19:12.000000000 +0100
+@@ -3157,6 +3157,12 @@ expand_call_inline (basic_block bb, gimp
+       goto egress;
+       if (lookup_attribute ("always_inline", DECL_ATTRIBUTES (fn))
++      /* For extern inline functions that get redefined we always
++         silently ignored alway_inline flag. Better behaviour would
++         be to be able to keep both bodies and use extern inline body
++         for inlining, but we can't do that because frontends overwrite
++         the body.  */
++        && !cg_edge->callee->local.redefined_extern_inline
+         /* Avoid warnings during early inline pass. */
+         && cgraph_global_info_ready)
+       {
+--- gcc/testsuite/gcc.dg/pr33763.c.jj  2007-11-06 16:19:12.000000000 +0100
++++ gcc/testsuite/gcc.dg/pr33763.c     2007-11-06 16:19:12.000000000 +0100
+@@ -0,0 +1,60 @@
++/* PR tree-optimization/33763 */
++/* { dg-do compile } */
++/* { dg-options "-O2" } */
++
++typedef struct
++{
++  void *a;
++  void *b;
++} T;
++extern void *foo (const char *, const char *);
++extern void *bar (void *, const char *, T);
++extern int baz (const char *, int);
++
++extern inline __attribute__ ((always_inline, gnu_inline)) int
++baz (const char *x, int y)
++{
++  return 2;
++}
++
++int
++baz (const char *x, int y)
++{
++  return 1;
++}
++
++int xa, xb;
++
++static void *
++inl (const char *x, const char *y)
++{
++  T t = { &xa, &xb };
++  int *f = (int *) __builtin_malloc (sizeof (int));
++  const char *z;
++  int o = 0;
++  void *r = 0;
++
++  for (z = y; *z; z++)
++    {
++      if (*z == 'r')
++      o |= 1;
++      if (*z == 'w')
++      o |= 2;
++    }
++  if (o == 1)
++    *f = baz (x, 0);
++  if (o == 2)
++    *f = baz (x, 1);
++  if (o == 3)
++    *f = baz (x, 2);
++
++  if (o && *f > 0)
++    r = bar (f, "w", t);
++  return r;
++}
++
++void *
++foo (const char *x, const char *y)
++{
++  return inl (x, y);
++}
+--- gcc/testsuite/g++.dg/opt/inline13.C.jj     2007-11-06 16:20:20.000000000 +0100
++++ gcc/testsuite/g++.dg/opt/inline13.C        2007-11-06 16:21:30.000000000 +0100
+@@ -0,0 +1,60 @@
++// PR tree-optimization/33763
++// { dg-do compile }
++// { dg-options "-O2" }
++
++typedef struct
++{
++  void *a;
++  void *b;
++} T;
++extern void *foo (const char *, const char *);
++extern void *bar (void *, const char *, T);
++extern int baz (const char *, int);
++
++extern inline __attribute__ ((always_inline, gnu_inline)) int
++baz (const char *x, int y)
++{
++  return 2;
++}
++
++int
++baz (const char *x, int y)
++{
++  return 1;
++}
++
++int xa, xb;
++
++static void *
++inl (const char *x, const char *y)
++{
++  T t = { &xa, &xb };
++  int *f = (int *) __builtin_malloc (sizeof (int));
++  const char *z;
++  int o = 0;
++  void *r = 0;
++
++  for (z = y; *z; z++)
++    {
++      if (*z == 'r')
++      o |= 1;
++      if (*z == 'w')
++      o |= 2;
++    }
++  if (o == 1)
++    *f = baz (x, 0);
++  if (o == 2)
++    *f = baz (x, 1);
++  if (o == 3)
++    *f = baz (x, 2);
++
++  if (o && *f > 0)
++    r = bar (f, "w", t);
++  return r;
++}
++
++void *
++foo (const char *x, const char *y)
++{
++  return inl (x, y);
++}
diff --git a/src/patches/gcc/gcc44-rh330771.patch b/src/patches/gcc/gcc44-rh330771.patch
new file mode 100644 (file)
index 0000000..f7c365d
--- /dev/null
@@ -0,0 +1,34 @@
+2007-10-16  Jakub Jelinek  <jakub@redhat.com>
+
+       * Makefile.am (libgcj_tools_la_LIBADD): Add.
+       * Makefile.in: Regenerated.
+
+--- libjava/Makefile.am.jj     2009-05-06 08:14:50.000000000 +0200
++++ libjava/Makefile.am        2009-05-06 10:26:43.000000000 +0200
+@@ -314,6 +314,8 @@ libgcj_tools_la_SOURCES = classpath/tool
+ libgcj_tools_la_GCJFLAGS = $(AM_GCJFLAGS) -findirect-dispatch \
+  -fno-bootstrap-classes -fno-indirect-classes \
+  -fsource-filename=$(here)/classpath/tools/all-classes.lst
++## See jv_convert_LDADD.
++libgcj_tools_la_LIBADD = -L$(here)/.libs libgcj.la
+ libgcj_tools_la_LDFLAGS = -rpath $(toolexeclibdir) \
+  -version-info `grep -v '^\#' $(srcdir)/libtool-version` \
+  $(LIBGCJ_LD_SYMBOLIC_FUNCTIONS)
+--- libjava/Makefile.in.jj     2009-05-06 08:14:49.000000000 +0200
++++ libjava/Makefile.in        2009-05-06 10:27:18.000000000 +0200
+@@ -160,7 +160,6 @@ am__objects_1 = gnu/gcj/xlib/lib_gnu_awt
+ am_lib_gnu_awt_xlib_la_OBJECTS = $(am__objects_1)
+ lib_gnu_awt_xlib_la_OBJECTS = $(am_lib_gnu_awt_xlib_la_OBJECTS)
+ @XLIB_AWT_TRUE@am_lib_gnu_awt_xlib_la_rpath = -rpath $(toolexeclibdir)
+-libgcj_tools_la_LIBADD =
+ am_libgcj_tools_la_OBJECTS = classpath/tools/libgcj_tools_la-tools.lo
+ libgcj_tools_la_OBJECTS = $(am_libgcj_tools_la_OBJECTS)
+ @INTERPRETER_TRUE@am__DEPENDENCIES_1 = gnu/classpath/jdwp.lo \
+@@ -1041,6 +1040,7 @@ libgcj_tools_la_GCJFLAGS = $(AM_GCJFLAGS
+  -fno-bootstrap-classes -fno-indirect-classes \
+  -fsource-filename=$(here)/classpath/tools/all-classes.lst
++libgcj_tools_la_LIBADD = -L$(here)/.libs libgcj.la
+ libgcj_tools_la_LDFLAGS = -rpath $(toolexeclibdir) \
+  -version-info `grep -v '^\#' $(srcdir)/libtool-version` \
+  $(LIBGCJ_LD_SYMBOLIC_FUNCTIONS)
diff --git a/src/patches/gcc/gcc44-rh533181.patch b/src/patches/gcc/gcc44-rh533181.patch
new file mode 100644 (file)
index 0000000..76326e2
--- /dev/null
@@ -0,0 +1,153 @@
+2010-07-22  Jakub Jelinek  <jakub@redhat.com>
+
+       * gimplify.c (enum gimplify_omp_var_data): Add
+       GOVD_THREADPRIVATE_WARNED.
+       (gimplify_bind_expr): Add GOVD_LOCAL | GOVD_SEEN even for global vars.
+       (omp_notice_threadprivate_variable): Note used threadprivate vars
+       with current function's context in shared clauses.
+       (gimplify_adjust_omp_clauses_1): Allow globals with current function's
+       context in taskreg shared clause.
+       * omp-low.c (lower_rec_input_clauses): For function-local is_global_var
+       VAR_DECLs in shared clauses add a decl copy with DECL_VALUE_EXPR
+       pointing to the original.
+
+       * trans-openmp.c (gfc_omp_private_debug_clause): Return false for
+       threadprivate decls.
+
+       * gcc.dg/gomp/tls-3.c: New test.
+
+--- gcc/fortran/trans-openmp.c.jj      2010-06-24 21:47:09.908230044 +0200
++++ gcc/fortran/trans-openmp.c 2010-07-26 10:45:15.830229443 +0200
+@@ -351,6 +351,18 @@ gfc_omp_disregard_value_expr (tree decl,
+ bool
+ gfc_omp_private_debug_clause (tree decl, bool shared)
+ {
++  if (TREE_STATIC (decl) || DECL_EXTERNAL (decl))
++    {
++      if (DECL_THREAD_LOCAL_P (decl))
++      return false;
++      if (DECL_HAS_VALUE_EXPR_P (decl))
++      {
++        tree value = get_base_address (DECL_VALUE_EXPR (decl));
++        if (value && DECL_P (value) && DECL_THREAD_LOCAL_P (value))
++          return false;
++      }
++    }
++
+   if (GFC_DECL_CRAY_POINTEE (decl))
+     return true;
+--- gcc/gimplify.c.jj  2010-07-09 09:01:37.049604412 +0200
++++ gcc/gimplify.c     2010-07-26 10:50:05.646291216 +0200
+@@ -66,6 +66,7 @@ enum gimplify_omp_var_data
+   GOVD_LOCAL = 128,
+   GOVD_DEBUG_PRIVATE = 256,
+   GOVD_PRIVATE_OUTER_REF = 512,
++  GOVD_THREADPRIVATE_WARNED = 1024,
+   GOVD_DATA_SHARE_CLASS = (GOVD_SHARED | GOVD_PRIVATE | GOVD_FIRSTPRIVATE
+                          | GOVD_LASTPRIVATE | GOVD_REDUCTION | GOVD_LOCAL)
+ };
+@@ -1234,7 +1235,7 @@ gimplify_bind_expr (tree *expr_p, gimple
+         struct gimplify_omp_ctx *ctx = gimplify_omp_ctxp;
+         /* Mark variable as local.  */
+-        if (ctx && !is_global_var (t)
++        if (ctx
+             && (! DECL_SEEN_IN_BIND_EXPR_P (t)
+                 || splay_tree_lookup (ctx->variables,
+                                       (splay_tree_key) t) == NULL))
+@@ -5339,18 +5340,36 @@ omp_notice_threadprivate_variable (struc
+ {
+   splay_tree_node n;
+-  if (ctx->region_type != ORT_UNTIED_TASK)
++  while (ctx && ctx->region_type == ORT_WORKSHARE)
++    {
++      n = splay_tree_lookup (ctx->variables, (splay_tree_key)decl);
++      if (n != NULL)
++      {
++        gcc_assert (n->value & GOVD_LOCAL);
++        return false;
++      }
++      ctx = ctx->outer_context;
++    }
++  if (ctx == NULL)
+     return false;
++
+   n = splay_tree_lookup (ctx->variables, (splay_tree_key)decl);
+   if (n == NULL)
++    n = splay_tree_insert (ctx->variables, (splay_tree_key)decl,
++                         DECL_CONTEXT (decl) == current_function_decl
++                         ? GOVD_SHARED | GOVD_SEEN : 0);
++  if (ctx->region_type == ORT_UNTIED_TASK
++      && (n->value & GOVD_THREADPRIVATE_WARNED) == 0)
+     {
+       error ("threadprivate variable %qs used in untied task",
+            IDENTIFIER_POINTER (DECL_NAME (decl)));
+       error ("%Henclosing task", &ctx->location);
+-      splay_tree_insert (ctx->variables, (splay_tree_key)decl, 0);
++      n->value |= GOVD_THREADPRIVATE_WARNED;
+     }
+   if (decl2)
+-    splay_tree_insert (ctx->variables, (splay_tree_key)decl2, 0);
++    splay_tree_insert (ctx->variables, (splay_tree_key)decl2,
++                     DECL_CONTEXT (decl2) == current_function_decl
++                     ? GOVD_SHARED | GOVD_SEEN : 0);
+   return false;
+ }
+@@ -5779,7 +5798,9 @@ gimplify_adjust_omp_clauses_1 (splay_tre
+               break;
+             ctx = ctx->outer_context;
+           }
+-        if (ctx == NULL)
++        if (ctx == NULL
++            && (DECL_CONTEXT (decl) != current_function_decl
++                || gimplify_omp_ctxp->region_type == ORT_WORKSHARE))
+           return 0;
+       }
+       code = OMP_CLAUSE_SHARED;
+--- gcc/omp-low.c.jj   2010-06-11 11:06:00.913659301 +0200
++++ gcc/omp-low.c      2010-07-26 10:45:15.866229447 +0200
+@@ -2222,6 +2222,17 @@ lower_rec_input_clauses (tree clauses, g
+               continue;
+             break;
+           case OMP_CLAUSE_SHARED:
++            if (pass == 0
++                && is_global_var (OMP_CLAUSE_DECL (c))
++                && (DECL_CONTEXT (OMP_CLAUSE_DECL (c))
++                    == current_function_decl)
++                && is_taskreg_ctx (ctx)
++                && !DECL_IGNORED_P (OMP_CLAUSE_DECL (c)))
++              {
++                new_var = omp_copy_decl_1 (OMP_CLAUSE_DECL (c), ctx);
++                SET_DECL_VALUE_EXPR (new_var, OMP_CLAUSE_DECL (c));
++                DECL_HAS_VALUE_EXPR_P (new_var) = 1;
++              }
+             if (maybe_lookup_decl (OMP_CLAUSE_DECL (c), ctx) == NULL)
+               {
+                 gcc_assert (is_global_var (OMP_CLAUSE_DECL (c)));
+--- gcc/testsuite/gcc.dg/gomp/tls-3.c.jj       2010-07-26 10:45:15.868228753 +0200
++++ gcc/testsuite/gcc.dg/gomp/tls-3.c  2010-07-26 10:45:15.868228753 +0200
+@@ -0,0 +1,21 @@
++/* { dg-do compile } */
++/* { dg-require-effective-target tls_native } */
++
++int thr;
++#pragma omp threadprivate(thr)
++
++void
++foo (void)
++{
++  #pragma omp task untied     /* { dg-error "enclosing task" } */
++  {
++    static int thr2;
++    #pragma omp threadprivate(thr2)
++    static int thr3;
++    #pragma omp threadprivate(thr3)
++    thr++;    /* { dg-error "used in untied task" } */
++    thr2++;   /* { dg-error "used in untied task" } */
++    thr++;
++    thr2++;
++  }
++}
diff --git a/src/patches/gcc/gcc44-rh610785.patch b/src/patches/gcc/gcc44-rh610785.patch
new file mode 100644 (file)
index 0000000..91d0934
--- /dev/null
@@ -0,0 +1,74 @@
+2010-07-07  Jakub Jelinek  <jakub@redhat.com>
+
+       * tree-sra.c (sra_build_assignment): Don't add BIT_XOR_EXPR/MINUS_EXPR
+       of signbit if signbit is the most significant bit of utype already.
+
+       * gcc.c-torture/execute/20100707-1.c: New test.
+
+--- gcc/tree-sra.c.jj  2010-05-13 13:08:52.000000000 +0200
++++ gcc/tree-sra.c     2010-07-06 19:50:09.000000000 +0200
+@@ -2211,7 +2211,10 @@ sra_build_assignment (tree dst, tree src
+       /* Perform sign extension, if required.
+        ???  This should never be necessary.  */
+-      if (!unsignedp)
++      if (!unsignedp
++        && (TREE_INT_CST_LOW (width) != TYPE_PRECISION (utype)
++            || (TREE_INT_CST_LOW (width)
++                != GET_MODE_BITSIZE (TYPE_MODE (utype)))))
+       {
+         tree signbit = int_const_binop (LSHIFT_EXPR,
+                                         build_int_cst_wide (utype, 1, 0),
+--- gcc/testsuite/gcc.c-torture/execute/20100707-1.c   2010-05-27 15:41:40.446237053 +0200
++++ gcc/testsuite/gcc.c-torture/execute/20100707-1.c   2010-07-06 13:55:35.000000000 +0200
+@@ -0,0 +1,50 @@
++struct S { int s; };
++struct T { int w; int h; };
++int vr;
++
++inline struct T
++bar (const struct S * x)
++{
++  struct T t;
++  t.w = vr;
++  t.h = x->s;
++  return t;
++}
++
++__attribute__ ((noinline))
++void foo (struct S * w, unsigned char *x, int y, int *z[2])
++{
++  struct T t;
++  int i, j, k;
++  t = bar (w);
++  k = t.w + 2;
++  for (i = 0; i <= t.h; i++)
++    {
++      int *u = z[i > 0] + 1;
++      unsigned char *v;
++      int q = 0;
++      v = x + k * i + 1;
++      for (j = 0; j < t.w; j++)
++      {
++        int m = u[j];
++        if (m > y && !q && v[j - k] != 2)
++          v[j] = 0;
++      }
++    }
++}
++
++unsigned char b[64];
++
++int
++main (void)
++{
++  int v[32], *z[2];
++  struct S s;
++  __builtin_memset (v, 0, sizeof (v));
++  vr = 16;
++  s.s = 16;
++  z[0] = v;
++  z[1] = v;
++  foo (&s, b + 32, -1, z);
++  return 0;
++}
diff --git a/src/patches/gcc/gcc44-unwind-debug-hook.patch b/src/patches/gcc/gcc44-unwind-debug-hook.patch
new file mode 100644 (file)
index 0000000..9b7c59e
--- /dev/null
@@ -0,0 +1,51 @@
+2010-04-27  Jakub Jelinek  <jakub@redhat.com>
+
+       * unwind-dw2.c (_Unwind_DebugHook): Add used attribute.
+
+2009-05-27  Tom Tromey  <tromey@redhat.com>
+
+       * unwind-dw2.c (_Unwind_DebugHook): New function.
+       (uw_install_context): Call _Unwind_DebugHook.
+
+--- gcc/unwind-dw2.c   (revision 147933)
++++ gcc/unwind-dw2.c   (revision 147934)
+@@ -1473,18 +1473,32 @@ uw_init_context_1 (struct _Unwind_Contex
+   context->ra = __builtin_extract_return_addr (outer_ra);
+ }
++static void _Unwind_DebugHook (void *, void *)
++  __attribute__ ((__noinline__, __used__));
++
++/* This function is called during unwinding.  It is intended as a hook
++   for a debugger to intercept exceptions.  CFA is the CFA of the
++   target frame.  HANDLER is the PC to which control will be
++   transferred.  */
++static void
++_Unwind_DebugHook (void *cfa __attribute__ ((__unused__)),
++                 void *handler __attribute__ ((__unused__)))
++{
++  asm ("");
++}
+ /* Install TARGET into CURRENT so that we can return to it.  This is a
+    macro because __builtin_eh_return must be invoked in the context of
+    our caller.  */
+-#define uw_install_context(CURRENT, TARGET)                            \
+-  do                                                                   \
+-    {                                                                  \
+-      long offset = uw_install_context_1 ((CURRENT), (TARGET));                \
+-      void *handler = __builtin_frob_return_addr ((TARGET)->ra);       \
+-      __builtin_eh_return (offset, handler);                           \
+-    }                                                                  \
++#define uw_install_context(CURRENT, TARGET)                           \
++  do                                                                  \
++    {                                                                 \
++      long offset = uw_install_context_1 ((CURRENT), (TARGET));               \
++      void *handler = __builtin_frob_return_addr ((TARGET)->ra);      \
++      _Unwind_DebugHook ((TARGET)->cfa, handler);                     \
++      __builtin_eh_return (offset, handler);                          \
++    }                                                                 \
+   while (0)
+ static long
diff --git a/src/patches/glibc-2.3.6-dont_use_origin_on_privil_exec.patch b/src/patches/glibc-2.3.6-dont_use_origin_on_privil_exec.patch
deleted file mode 100644 (file)
index 26c8ac8..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-diff -Naur glibc-2.3.6.org/elf/dl-load.c glibc-2.3.6/elf/dl-load.c
---- glibc-2.3.6.org/elf/dl-load.c      2005-04-06 04:50:10.000000000 +0200
-+++ glibc-2.3.6/elf/dl-load.c  2010-10-19 17:41:09.000000000 +0200
-@@ -176,8 +176,7 @@
- static size_t
--is_dst (const char *start, const char *name, const char *str,
--      int is_path, int secure)
-+is_dst (const char *start, const char *name, const char *str, int is_path)
- {
-   size_t len;
-   bool is_curly = false;
-@@ -206,11 +205,6 @@
-          && (!is_path || name[len] != ':'))
-     return 0;
--  if (__builtin_expect (secure, 0)
--      && ((name[len] != '\0' && (!is_path || name[len] != ':'))
--        || (name != start + 1 && (!is_path || name[-2] != ':'))))
--    return 0;
--
-   return len;
- }
-@@ -225,13 +219,12 @@
-     {
-       size_t len;
--      /* $ORIGIN is not expanded for SUID/GUID programs (except if it
--       is $ORIGIN alone) and it must always appear first in path.  */
-+      /* $ORIGIN is not expanded for SUID/GUID programs.  */
-       ++name;
--      if ((len = is_dst (start, name, "ORIGIN", is_path,
--                       INTUSE(__libc_enable_secure))) != 0
--        || (len = is_dst (start, name, "PLATFORM", is_path, 0)) != 0
--        || (len = is_dst (start, name, "LIB", is_path, 0)) != 0)
-+      if (((len = is_dst (start, name, "ORIGIN", is_path)) != 0
-+         && !INTUSE(__libc_enable_secure))
-+        || (len = is_dst (start, name, "PLATFORM", is_path)) != 0
-+        || (len = is_dst (start, name, "LIB", is_path)) != 0)
-       ++cnt;
-       name = strchr (name + len, '$');
-@@ -263,12 +256,17 @@
-         size_t len;
-         ++name;
--        if ((len = is_dst (start, name, "ORIGIN", is_path,
--                           INTUSE(__libc_enable_secure))) != 0)
--          repl = l->l_origin;
--        else if ((len = is_dst (start, name, "PLATFORM", is_path, 0)) != 0)
-+        if ((len = is_dst (start, name, "ORIGIN", is_path)) != 0)
-+          {
-+              // Ignore this path at SUID/GUID
-+              if (INTUSE(__libc_enable_secure))
-+                      repl = (const char *) -1;
-+              else
-+              repl = l->l_origin;
-+          }
-+        else if ((len = is_dst (start, name, "PLATFORM", is_path)) != 0)
-           repl = GLRO(dl_platform);
--        else if ((len = is_dst (start, name, "LIB", is_path, 0)) != 0)
-+        else if ((len = is_dst (start, name, "LIB", is_path)) != 0)
-           repl = DL_DST_LIB;
-         if (repl != NULL && repl != (const char *) -1)
diff --git a/src/patches/glibc-2.3.6-inotify-1.patch b/src/patches/glibc-2.3.6-inotify-1.patch
deleted file mode 100644 (file)
index 30af30c..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-Submitted By: Dan Nicholson <dnicholson at linuxfromscratch dot org>
-Date: 2006-09-01
-Initial Package Version: 2.3.6
-Origin: udev-096, syscall functions generated by Alexander E. Patrakov
-Upstream Status: Added to syscall list in 2.4
-Description: Adds inotify syscall functions for use in userspace. Minimal
-             syscall functions borrowed from udev local implementation to
-             provide system inotify support.
-Testcase: dovecot-1.0rc2, ./configure --with-notify=inotify
-
-diff -pNur glibc-2.3.6.orig/sysdeps/unix/sysv/linux/inotify.h glibc-2.3.6/sysdeps/unix/sysv/linux/inotify.h
---- glibc-2.3.6.orig/sysdeps/unix/sysv/linux/inotify.h 1970-01-01 00:00:00.000000000 +0000
-+++ glibc-2.3.6/sysdeps/unix/sysv/linux/inotify.h      2006-08-01 05:48:27.000000000 +0000
-@@ -0,0 +1,31 @@
-+/*
-+ * Inode based directory notification for Linux
-+ *
-+ * Copyright (C) 2005 John McCutchan
-+ */
-+
-+#ifndef _SYS_INOTIFY_H
-+#define _SYS_INOTIFY_H
-+
-+#include <stdint.h>
-+#include <linux/inotify.h>
-+#include <asm/unistd.h>
-+
-+extern long int syscall (long int __sysno, ...) __THROW;
-+
-+static inline int inotify_init(void)
-+{
-+      return syscall(__NR_inotify_init);
-+}
-+      
-+static inline int inotify_add_watch(int fd, const char *name, uint32_t mask)
-+{
-+      return syscall(__NR_inotify_add_watch, fd, name, mask);
-+}
-+
-+static inline int inotify_rm_watch (int fd, uint32_t wd)
-+{
-+      return syscall(__NR_inotify_rm_watch, fd, wd);
-+}
-+              
-+#endif        /* _SYS_INOTIFY_H */
diff --git a/src/patches/glibc-2.3.6-linux_types-1.patch b/src/patches/glibc-2.3.6-linux_types-1.patch
deleted file mode 100644 (file)
index a365b81..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-Submitted By: DJ Lucas <dj at linuxfromscratch dot org>
-Date: 2006-04-05
-Initial Package Version: 2.3.6
-Upstream Status: Committed
-Origin: Glibc CVS
-Description: Fixes build errors where linux/types.h is included after sys/kd.h.
-
-diff -Naur glibc-2.3.6-orig/sysdeps/unix/sysv/linux/sys/kd.h glibc-2.3.6/sysdeps/unix/sysv/linux/sys/kd.h
---- glibc-2.3.6-orig/sysdeps/unix/sysv/linux/sys/kd.h  2001-07-05 23:56:21.000000000 -0500
-+++ glibc-2.3.6/sysdeps/unix/sysv/linux/sys/kd.h       2006-04-04 21:40:50.000000000 -0500
-@@ -1,4 +1,4 @@
--/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
-+/* Copyright (C) 1996, 1997, 2005 Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
-    The GNU C Library is free software; you can redistribute it and/or
-@@ -21,9 +21,15 @@
- /* Make sure the <linux/types.h> header is not loaded.  */
- #ifndef _LINUX_TYPES_H
--# define _LINUX_TYPES_H       1
-+# define _LINUX_TYPES_H               1
-+# define __undef_LINUX_TYPES_H
- #endif
- #include <linux/kd.h>
-+#ifdef __undef_LINUX_TYPES_H
-+# undef _LINUX_TYPES_H
-+# undef __undef_LINUX_TYPES_H
-+#endif
-+
- #endif        /* sys/kd.h */
diff --git a/src/patches/glibc-arm-dont-use-swp.patch b/src/patches/glibc-arm-dont-use-swp.patch
new file mode 100644 (file)
index 0000000..293c20c
--- /dev/null
@@ -0,0 +1,305 @@
+commit 1ba025a9a21eda65d8c36cc0dbb51d214a3ebb1a
+Author: Daniel Jacobowitz <dan@codesourcery.com>
+Date:   Mon Jun 2 01:57:03 2008 +0000
+
+    2008-06-01  Paul Brook  <paul@codesourcery.com>
+           Zack Weinberg  <zack@codesourcery.com>
+           Daniel Jacobowitz  <dan@codesourcery.com>
+    
+       * sysdeps/arm/nptl/pthread_spin_lock.S,
+       sysdeps/arm/nptl/pthread_spin_trylock.S: Delete.
+       * sysdeps/arm/nptl/pthread_spin_lock.c,
+       sysdeps/arm/nptl/pthread_spin_trylock.c: New files using
+       atomic_compare_and_exchange_val_acq to take spinlocks.
+       * sysdeps/unix/sysv/linux/arm/nptl/bits/atomic.h (lll_trylock,
+       lll_cond_trylock): Use atomic_compare_and_exchange_val_acq.
+       (__lll_trylock, __lll_cond_trylock): Delete.
+       * sysdeps/unix/sysv/linux/arm/nptl/bits/atomic.h
+       (atomic_exchange_acq): Delete.
+       (atomic_full_barrier): Define.
+       (__arch_compare_and_exchange_val_32_acq): Use named operands.
+       * sysdeps/unix/sysv/linux/arm/eabi/configure.in: Update
+       arch_minimum_kernel to 2.6.16.
+       * sysdeps/unix/sysv/linux/arm/eabi/configure: Regenerated.
+
+diff --git a/sysdeps/arm/nptl/pthread_spin_lock.S b/sysdeps/arm/nptl/pthread_spin_lock.S
+deleted file mode 100644
+index bd6adf7..0000000
+--- a/sysdeps/arm/nptl/pthread_spin_lock.S
++++ /dev/null
+@@ -1,31 +0,0 @@
+-/* Copyright (C) 2005 Free Software Foundation, Inc.
+-   This file is part of the GNU C Library.
+-
+-   The GNU C Library is free software; you can redistribute it and/or
+-   modify it under the terms of the GNU Lesser General Public
+-   License as published by the Free Software Foundation; either
+-   version 2.1 of the License, or (at your option) any later version.
+-
+-   The GNU C Library is distributed in the hope that it will be useful,
+-   but WITHOUT ANY WARRANTY; without even the implied warranty of
+-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-   Lesser General Public License for more details.
+-
+-   You should have received a copy of the GNU Lesser General Public
+-   License along with the GNU C Library; if not, write to the Free
+-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+-   02111-1307 USA.  */
+-
+-#include <sysdep.h>
+-
+-      .text
+-      .align  4
+-
+-ENTRY (pthread_spin_lock)
+-      mov     r1, #1
+-1:    swp     r2, r1, [r0]
+-      teq     r2, #0
+-      bne     1b
+-      mov     r0, #0
+-      PSEUDO_RET_NOERRNO
+-END (pthread_spin_lock)
+diff --git a/sysdeps/arm/nptl/pthread_spin_lock.c b/sysdeps/arm/nptl/pthread_spin_lock.c
+new file mode 100644
+index 0000000..1217b89
+--- /dev/null
++++ b/sysdeps/arm/nptl/pthread_spin_lock.c
+@@ -0,0 +1,30 @@
++/* Copyright (C) 2008 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#include <atomic.h>
++#include "pthreadP.h"
++
++int
++pthread_spin_lock (pthread_spinlock_t *lock)
++{
++  while (atomic_compare_and_exchange_val_acq (lock, 1, 0) != 0)
++   while (*lock != 0)
++    ;
++
++  return 0;
++}
+diff --git a/sysdeps/arm/nptl/pthread_spin_trylock.S b/sysdeps/arm/nptl/pthread_spin_trylock.S
+deleted file mode 100644
+index 8593150..0000000
+--- a/sysdeps/arm/nptl/pthread_spin_trylock.S
++++ /dev/null
+@@ -1,34 +0,0 @@
+-/* Copyright (C) 2005 Free Software Foundation, Inc.
+-   This file is part of the GNU C Library.
+-
+-   The GNU C Library is free software; you can redistribute it and/or
+-   modify it under the terms of the GNU Lesser General Public
+-   License as published by the Free Software Foundation; either
+-   version 2.1 of the License, or (at your option) any later version.
+-
+-   The GNU C Library is distributed in the hope that it will be useful,
+-   but WITHOUT ANY WARRANTY; without even the implied warranty of
+-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-   Lesser General Public License for more details.
+-
+-   You should have received a copy of the GNU Lesser General Public
+-   License along with the GNU C Library; if not, write to the Free
+-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+-   02111-1307 USA.  */
+-
+-#define _ERRNO_H 1
+-#include <bits/errno.h>
+-
+-#include <sysdep.h>
+-
+-      .text
+-      .align  4
+-
+-ENTRY (pthread_spin_trylock)
+-      mov     r1, #1
+-      swp     r2, r1, [r0]
+-      teq     r2, #0
+-      moveq   r0, #0
+-      movne   r0, #EBUSY
+-      PSEUDO_RET_NOERRNO
+-END (pthread_spin_trylock)
+diff --git a/sysdeps/arm/nptl/pthread_spin_trylock.c b/sysdeps/arm/nptl/pthread_spin_trylock.c
+new file mode 100644
+index 0000000..fb998d2
+--- /dev/null
++++ b/sysdeps/arm/nptl/pthread_spin_trylock.c
+@@ -0,0 +1,27 @@
++/* Copyright (C) 2008 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#include <errno.h>
++#include <atomic.h>
++#include "pthreadP.h"
++
++int
++pthread_spin_trylock (pthread_spinlock_t *lock)
++{
++  return atomic_compare_and_exchange_val_acq (lock, 1, 0) ? EBUSY : 0;
++}
+diff --git a/sysdeps/unix/sysv/linux/arm/eabi/configure b/sysdeps/unix/sysv/linux/arm/eabi/configure
+index ab83048..28fb9ef 100644
+--- a/sysdeps/unix/sysv/linux/arm/eabi/configure
++++ b/sysdeps/unix/sysv/linux/arm/eabi/configure
+@@ -1,5 +1,5 @@
+ # This file is generated from configure.in by Autoconf.  DO NOT EDIT!
+  # Local configure fragment for sysdeps/unix/sysv/linux/arm/eabi.
+-arch_minimum_kernel=2.6.14
++arch_minimum_kernel=2.6.16
+ libc_cv_gcc_unwind_find_fde=no
+diff --git a/sysdeps/unix/sysv/linux/arm/eabi/configure.in b/sysdeps/unix/sysv/linux/arm/eabi/configure.in
+index 83aa8fc..d1fb7f4 100644
+--- a/sysdeps/unix/sysv/linux/arm/eabi/configure.in
++++ b/sysdeps/unix/sysv/linux/arm/eabi/configure.in
+@@ -1,5 +1,5 @@
+ GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
+ # Local configure fragment for sysdeps/unix/sysv/linux/arm/eabi.
+-arch_minimum_kernel=2.6.14
++arch_minimum_kernel=2.6.16
+ libc_cv_gcc_unwind_find_fde=no
+diff --git a/sysdeps/unix/sysv/linux/arm/nptl/bits/atomic.h b/sysdeps/unix/sysv/linux/arm/nptl/bits/atomic.h
+index 71ed714..247ddd3 100644
+--- a/sysdeps/unix/sysv/linux/arm/nptl/bits/atomic.h
++++ b/sysdeps/unix/sysv/linux/arm/nptl/bits/atomic.h
+@@ -37,22 +37,12 @@ typedef uintmax_t uatomic_max_t;
+ void __arm_link_error (void);
+-#define atomic_exchange_acq(mem, newvalue)                                  \
+-  ({ __typeof (*mem) result;                                                \
+-     if (sizeof (*mem) == 1)                                                \
+-       __asm__ __volatile__ ("swpb %0, %1, [%2]"                            \
+-                           : "=&r,&r" (result)                              \
+-                           : "r,0" (newvalue), "r,r" (mem) : "memory");     \
+-     else if (sizeof (*mem) == 4)                                           \
+-       __asm__ __volatile__ ("swp %0, %1, [%2]"                                     \
+-                           : "=&r,&r" (result)                              \
+-                           : "r,0" (newvalue), "r,r" (mem) : "memory");     \
+-     else                                                                   \
+-       {                                                                    \
+-       result = 0;                                                          \
+-       abort ();                                                            \
+-       }                                                                    \
+-     result; })
++#define atomic_full_barrier() \
++     __asm__ __volatile__                                                   \
++           ("mov\tip, #0xffff0fff\n\t"                                      \
++            "mov\tlr, pc\n\t"                                               \
++            "add\tpc, ip, #(0xffff0fa0 - 0xffff0fff)"                       \
++            : : : "ip", "lr", "cc", "memory");
+ /* Atomic compare and exchange.  This sequence relies on the kernel to
+    provide a compare and exchange operation which is atomic on the
+@@ -76,18 +66,19 @@ void __arm_link_error (void);
+      register __typeof (oldval) a_tmp asm ("r3");                           \
+      register __typeof (oldval) a_oldval2 asm ("r4") = (oldval);            \
+      __asm__ __volatile__                                                   \
+-           ("0:\tldr\t%1,[%3]\n\t"                                          \
+-            "cmp\t%1, %4\n\t"                                               \
++           ("0:\tldr\t%[tmp],[%[ptr]]\n\t"                                  \
++            "cmp\t%[tmp], %[old2]\n\t"                                      \
+             "bne\t1f\n\t"                                                   \
+-            "mov\t%0, %4\n\t"                                               \
+-            "mov\t%1, #0xffff0fff\n\t"                                      \
++            "mov\t%[old], %[old2]\n\t"                                      \
++            "mov\t%[tmp], #0xffff0fff\n\t"                                  \
+             "mov\tlr, pc\n\t"                                               \
+-            "add\tpc, %1, #(0xffff0fc0 - 0xffff0fff)\n\t"                   \
++            "add\tpc, %[tmp], #(0xffff0fc0 - 0xffff0fff)\n\t"               \
+             "bcc\t0b\n\t"                                                   \
+-            "mov\t%1, %4\n\t"                                               \
++            "mov\t%[tmp], %[old2]\n\t"                                      \
+             "1:"                                                            \
+-            : "=&r" (a_oldval), "=&r" (a_tmp)                               \
+-            : "r" (a_newval), "r" (a_ptr), "r" (a_oldval2)                  \
++            : [old] "=&r" (a_oldval), [tmp] "=&r" (a_tmp)                   \
++            : [new] "r" (a_newval), [ptr] "r" (a_ptr),                      \
++              [old2] "r" (a_oldval2)                                        \
+             : "ip", "lr", "cc", "memory");                                  \
+      a_tmp; })
+diff --git a/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h b/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h
+index f48e867..889f97c 100644
+--- a/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h
++++ b/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h
+@@ -126,43 +126,11 @@
+   })
+-static inline int __attribute__((always_inline))
+-__lll_mutex_trylock (int *futex)
+-{
+-  int flag = 1, old;
+-  asm volatile (
+-    "\tswp    %[old], %[flag], [%[futex]]     @ try to take the lock\n"
+-    "\tcmp    %[old], #1                      @ check old lock value\n"
+-    "\tmovlo  %[flag], #0                     @ if we got it, return 0\n"
+-    "\tswphi  %[flag], %[old], [%[futex]]     @ if it was contested,\n"
+-    "                                         @ restore the contested flag,\n"
+-    "                                         @ and check whether that won."
+-    : [futex] "+&r" (futex), [flag] "+&r" (flag), [old] "=&r" (old)
+-    : : "memory" );
+-
+-  return flag;
+-}
+-#define lll_mutex_trylock(lock)       __lll_mutex_trylock (&(lock))
+-
+-
+-static inline int __attribute__((always_inline))
+-__lll_mutex_cond_trylock (int *futex)
+-{
+-  int flag = 2, old;
+-  asm volatile (
+-    "\tswp    %[old], %[flag], [%[futex]]     @ try to take the lock\n"
+-    "\tcmp    %[old], #1                      @ check old lock value\n"
+-    "\tmovlo  %[flag], #0                     @ if we got it, return 0\n"
+-    "\tswphi  %[flag], %[old], [%[futex]]     @ if it was contested,\n"
+-    "                                         @ restore the contested flag,\n"
+-    "                                         @ and check whether that won."
+-    : [futex] "+&r" (futex), [flag] "+&r" (flag), [old] "=&r" (old)
+-    : : "memory" );
+-
+-  return flag;
+-}
+-#define lll_mutex_cond_trylock(lock)  __lll_mutex_cond_trylock (&(lock))
++#define lll_mutex_trylock(lock)       \
++  atomic_compare_and_exchange_val_acq(&(lock), 1, 0)
++#define lll_mutex_cond_trylock(lock)  \
++  atomic_compare_and_exchange_val_acq(&(lock), 2, 0)
+ #define __lll_robust_trylock(futex, id) \
+   (atomic_compare_and_exchange_val_acq (futex, id, 0) != 0)
diff --git a/src/patches/glibc-cfi-entry-not-closed.patch b/src/patches/glibc-cfi-entry-not-closed.patch
new file mode 100644 (file)
index 0000000..02cfe8f
--- /dev/null
@@ -0,0 +1,23 @@
+--- glibc-2.12.2/ports/sysdeps/unix/sysv/linux/arm/sigrestorer.S       2011-09-08 22:22:41.000000000 +0400
++++ glibc-2.12.2/ports/sysdeps/unix/sysv/linux/arm/sigrestorer.S       2011-09-08 21:44:49.000000000 +0400
+@@ -18,16 +18,20 @@ 
+ #include <sysdep.h>
++        .text
++
+ /* If no SA_RESTORER function was specified by the application we use
+    one of these.  This avoids the need for the kernel to synthesise a return
+    instruction on the stack, which would involve expensive cache flushes. */
+ ENTRY(__default_sa_restorer)
+       swi     SYS_ify(sigreturn)
++PSEUDO_END (__default_sa_restorer)
+ #ifdef __NR_rt_sigreturn
+ ENTRY(__default_rt_sa_restorer)
+       swi     SYS_ify(rt_sigreturn)
++PSEUDO_END (__default_rt_sa_restorer)
+ #endif
diff --git a/src/patches/glibc-ports-avoid-using-asm-procinfo.patch b/src/patches/glibc-ports-avoid-using-asm-procinfo.patch
deleted file mode 100644 (file)
index 53a6d1b..0000000
+++ /dev/null
@@ -1,340 +0,0 @@
-#
-# Submitted-By: Marc Kleine-Budde, 2006-11-22
-# Committed-By: Marc Kleine-Budde
-#
-# Error:
-#
-# try to compile glibc-ports with sanitized headers
-#
-# arm-v4t-linux-gnueabi-gcc ../ports/sysdeps/arm/eabi/setfpucw.c -c
-#-std=gnu99 -O2 -Wall -Winline -Wwrite-strings -fmerge-all-constants
-#-g -Wstrict-prototypes -Wno-uninitialized -D__NO_MATH_INLINES
-#-D__LIBC_INTERNAL_MATH_INLINES -DNO_LONG_DOUBLE
-#-D_Mlong_double_=double -I../include
-#-I/home/mkl/pengutronix/ptxdist/build/OSELAS.Toolchain-trunk-headers/build-target/glibc-2.5-build/math
-#-I/home/mkl/pengutronix/ptxdist/build/OSELAS.Toolchain-trunk-headers/build-target/glibc-2.5-build
-#-I../ports/sysdeps/arm/elf
-#-I../ports/sysdeps/unix/sysv/linux/arm/eabi/nptl
-#-I../ports/sysdeps/unix/sysv/linux/arm/eabi
-#-I../ports/sysdeps/unix/sysv/linux/arm/nptl
-#-I../ports/sysdeps/unix/sysv/linux/arm
-#-I../ports/sysdeps/unix/sysv/linux -I../nptl/sysdeps/unix/sysv/linux
-#-I../nptl/sysdeps/pthread -I../sysdeps/pthread
-#-I../sysdeps/unix/sysv/linux -I../sysdeps/gnu
-#-I../sysdeps/unix/common -I../sysdeps/unix/mman
-#-I../sysdeps/unix/inet -I../ports/sysdeps/unix/sysv
-#-I../nptl/sysdeps/unix/sysv -I../sysdeps/unix/sysv
-#-I../ports/sysdeps/unix/arm -I../ports/sysdeps/unix
-#-I../nptl/sysdeps/unix -I../sysdeps/unix -I../sysdeps/posix
-#-I../ports/sysdeps/arm/eabi -I../ports/sysdeps/arm/nptl
-#-I../ports/sysdeps/arm -I../sysdeps/wordsize-32
-#-I../sysdeps/ieee754/flt-32 -I../sysdeps/ieee754/dbl-64
-#-I../sysdeps/ieee754 -I../sysdeps/generic/elf -I../sysdeps/generic
-#-I../ports -I../nptl -I.. -I../libio -I. -nostdinc -isystem
-#/ptx/work/mkl/ptxdist/build/OSELAS.Toolchain-trunk-headers/install/arm-v4t-linux-gnueabi/gcc-4.1.1-glibc-2.5-linux-2.6.19-rc6-s/bin/../lib/gcc/arm-v4t-linux-gnueabi/4.1.1/include
-#-isystem
-#/home/mkl/pengutronix/ptxdist/build/OSELAS.Toolchain-trunk-headers/install/arm-v4t-linux-gnueabi/gcc-4.1.1-glibc-2.5-linux-2.6.19-rc6-s/sysroot-arm-v4t-linux-gnueabi/usr/include
-#-D_LIBC_REENTRANT -include ../include/libc-symbols.h -o
-#/home/mkl/pengutronix/ptxdist/build/OSELAS.Toolchain-trunk-headers/build-target/glibc-2.5-build/math/setfpucw.o
-#-MD -MP -MF
-#/home/mkl/pengutronix/ptxdist/build/OSELAS.Toolchain-trunk-headers/build-target/glibc-2.5-build/math/setfpucw.o.dt
-#-MT
-#/home/mkl/pengutronix/ptxdist/build/OSELAS.Toolchain-trunk-headers/build-target/glibc-2.5-build/math/setfpucw.o
-# ../ports/sysdeps/arm/eabi/setfpucw.c:26:26: error: asm/procinfo.h: No such file or directory
-# ../ports/sysdeps/arm/eabi/setfpucw.c: In function '__setfpucw':
-# ../ports/sysdeps/arm/eabi/setfpucw.c:31: error: 'HWCAP_VFP' undeclared (first use in this function)
-# ../ports/sysdeps/arm/eabi/setfpucw.c:31: error: (Each undeclared identifier is reported only once
-# ../ports/sysdeps/arm/eabi/setfpucw.c:31: error: for each function it appears in.)
-#
-# Description:
-#
-# http://sourceware.org/ml/libc-ports/2006-10/msg00040.html
-#
-# State:
-#
-# added to glibc-ports on 10/31/2006 06:20 PM
-#
-Date: Tue, 24 Oct 2006 19:25:12 +0000 (UTC)
-From: "Joseph S. Myers" <joseph@codesourcery.com>
-To: libc-ports@sourceware.org
-Subject: Avoid using asm/procinfo.h
-
-I previously noted
-<http://sourceware.org/ml/libc-ports/2006-08/msg00023.html> that the
-use of <asm/procinfo.h>, a Linux-specific kernel header, in
-sysdeps/arm/eabi, is an abstraction violation, and that in principle
-all the files in sysdeps/arm/eabi should use sysdep.h not
-asm/procinfo.h for HWCAP_VFP.
-
-The ARM kernel maintainers have now declared that <asm/procinfo.h>
-should not be used outside the kernel at all (and in particular that
-headers_install is correct in not exporting it), and that these
-definitions will move to a different kernel header.  This gives a
-concrete reason for making the change to use glibc's internal
-definitions, which this patch does, thereby allowing glibc to build
-with the exported headers.
-
-2006-10-24  Joseph S. Myers  <joseph@codesourcery.com>
-
-       * sysdeps/arm/eabi/fclrexcpt.c: Include <sysdep.h> instead of
-       <asm/procinfo.h>.  Use HWCAP_ARM_VFP instead of HWCAP_VFP.
-       * sysdeps/arm/eabi/fedisblxcpt.c: Likewise.
-       * sysdeps/arm/eabi/feenablxcpt.c: Likewise.
-       * sysdeps/arm/eabi/fegetenv.c: Likewise.
-       * sysdeps/arm/eabi/fegetexcept.c: Likewise.
-       * sysdeps/arm/eabi/fegetround.c: Likewise.
-       * sysdeps/arm/eabi/feholdexcpt.c: Likewise.
-       * sysdeps/arm/eabi/fesetenv.c: Likewise.
-       * sysdeps/arm/eabi/fesetround.c: Likewise.
-       * sysdeps/arm/eabi/fraiseexcpt.c: Likewise.
-       * sysdeps/arm/eabi/fsetexcptflg.c: Likewise.
-       * sysdeps/arm/eabi/ftestexcept.c: Likewise.
-       * sysdeps/arm/eabi/setfpucw.c: Likewise.
-
-Index: glibc-ports-2.5/sysdeps/arm/eabi/fclrexcpt.c
-===================================================================
---- glibc-ports-2.5.orig/sysdeps/arm/eabi/fclrexcpt.c
-+++ glibc-ports-2.5/sysdeps/arm/eabi/fclrexcpt.c
-@@ -23,12 +23,12 @@
- #include <unistd.h>
- #include <ldsodefs.h>
- #include <dl-procinfo.h>
--#include <asm/procinfo.h>
-+#include <sysdep.h>
- int
- __feclearexcept (int excepts)
- {
--  if (GLRO (dl_hwcap) & HWCAP_VFP)
-+  if (GLRO (dl_hwcap) & HWCAP_ARM_VFP)
-     {
-       unsigned long int temp;
-Index: glibc-ports-2.5/sysdeps/arm/eabi/fedisblxcpt.c
-===================================================================
---- glibc-ports-2.5.orig/sysdeps/arm/eabi/fedisblxcpt.c
-+++ glibc-ports-2.5/sysdeps/arm/eabi/fedisblxcpt.c
-@@ -24,12 +24,12 @@
- #include <unistd.h>
- #include <ldsodefs.h>
- #include <dl-procinfo.h>
--#include <asm/procinfo.h>
-+#include <sysdep.h>
- int
- fedisableexcept (int excepts)
- {
--  if (GLRO (dl_hwcap) & HWCAP_VFP)
-+  if (GLRO (dl_hwcap) & HWCAP_ARM_VFP)
-     {
-       unsigned long int new_exc, old_exc;
-Index: glibc-ports-2.5/sysdeps/arm/eabi/feenablxcpt.c
-===================================================================
---- glibc-ports-2.5.orig/sysdeps/arm/eabi/feenablxcpt.c
-+++ glibc-ports-2.5/sysdeps/arm/eabi/feenablxcpt.c
-@@ -24,12 +24,12 @@
- #include <unistd.h>
- #include <ldsodefs.h>
- #include <dl-procinfo.h>
--#include <asm/procinfo.h>
-+#include <sysdep.h>
- int
- feenableexcept (int excepts)
- {
--  if (GLRO (dl_hwcap) & HWCAP_VFP)
-+  if (GLRO (dl_hwcap) & HWCAP_ARM_VFP)
-     {
-       unsigned long int new_exc, old_exc;
-Index: glibc-ports-2.5/sysdeps/arm/eabi/fegetenv.c
-===================================================================
---- glibc-ports-2.5.orig/sysdeps/arm/eabi/fegetenv.c
-+++ glibc-ports-2.5/sysdeps/arm/eabi/fegetenv.c
-@@ -23,12 +23,12 @@
- #include <unistd.h>
- #include <ldsodefs.h>
- #include <dl-procinfo.h>
--#include <asm/procinfo.h>
-+#include <sysdep.h>
- int
- __fegetenv (fenv_t *envp)
- {
--  if (GLRO (dl_hwcap) & HWCAP_VFP)
-+  if (GLRO (dl_hwcap) & HWCAP_ARM_VFP)
-     {
-       unsigned long int temp;
-       _FPU_GETCW (temp);
-Index: glibc-ports-2.5/sysdeps/arm/eabi/fegetexcept.c
-===================================================================
---- glibc-ports-2.5.orig/sysdeps/arm/eabi/fegetexcept.c
-+++ glibc-ports-2.5/sysdeps/arm/eabi/fegetexcept.c
-@@ -24,12 +24,12 @@
- #include <unistd.h>
- #include <ldsodefs.h>
- #include <dl-procinfo.h>
--#include <asm/procinfo.h>
-+#include <sysdep.h>
- int
- fegetexcept (void)
- {
--  if (GLRO (dl_hwcap) & HWCAP_VFP)
-+  if (GLRO (dl_hwcap) & HWCAP_ARM_VFP)
-     {
-       unsigned long temp;
-Index: glibc-ports-2.5/sysdeps/arm/eabi/fegetround.c
-===================================================================
---- glibc-ports-2.5.orig/sysdeps/arm/eabi/fegetround.c
-+++ glibc-ports-2.5/sysdeps/arm/eabi/fegetround.c
-@@ -23,12 +23,12 @@
- #include <unistd.h>
- #include <ldsodefs.h>
- #include <dl-procinfo.h>
--#include <asm/procinfo.h>
-+#include <sysdep.h>
- int
- fegetround (void)
- {
--  if (GLRO (dl_hwcap) & HWCAP_VFP)
-+  if (GLRO (dl_hwcap) & HWCAP_ARM_VFP)
-     {
-       unsigned int temp;
-Index: glibc-ports-2.5/sysdeps/arm/eabi/feholdexcpt.c
-===================================================================
---- glibc-ports-2.5.orig/sysdeps/arm/eabi/feholdexcpt.c
-+++ glibc-ports-2.5/sysdeps/arm/eabi/feholdexcpt.c
-@@ -23,12 +23,12 @@
- #include <unistd.h>
- #include <ldsodefs.h>
- #include <dl-procinfo.h>
--#include <asm/procinfo.h>
-+#include <sysdep.h>
- int
- feholdexcept (fenv_t *envp)
- {
--  if (GLRO (dl_hwcap) & HWCAP_VFP)
-+  if (GLRO (dl_hwcap) & HWCAP_ARM_VFP)
-     {
-       unsigned long int temp;
-Index: glibc-ports-2.5/sysdeps/arm/eabi/fesetenv.c
-===================================================================
---- glibc-ports-2.5.orig/sysdeps/arm/eabi/fesetenv.c
-+++ glibc-ports-2.5/sysdeps/arm/eabi/fesetenv.c
-@@ -23,12 +23,12 @@
- #include <unistd.h>
- #include <ldsodefs.h>
- #include <dl-procinfo.h>
--#include <asm/procinfo.h>
-+#include <sysdep.h>
- int
- __fesetenv (const fenv_t *envp)
- {
--  if (GLRO (dl_hwcap) & HWCAP_VFP)
-+  if (GLRO (dl_hwcap) & HWCAP_ARM_VFP)
-     {
-       unsigned int temp;
-Index: glibc-ports-2.5/sysdeps/arm/eabi/fesetround.c
-===================================================================
---- glibc-ports-2.5.orig/sysdeps/arm/eabi/fesetround.c
-+++ glibc-ports-2.5/sysdeps/arm/eabi/fesetround.c
-@@ -23,12 +23,12 @@
- #include <unistd.h>
- #include <ldsodefs.h>
- #include <dl-procinfo.h>
--#include <asm/procinfo.h>
-+#include <sysdep.h>
- int
- fesetround (int round)
- {
--  if (GLRO (dl_hwcap) & HWCAP_VFP)
-+  if (GLRO (dl_hwcap) & HWCAP_ARM_VFP)
-     {
-       fpu_control_t temp;
-Index: glibc-ports-2.5/sysdeps/arm/eabi/fraiseexcpt.c
-===================================================================
---- glibc-ports-2.5.orig/sysdeps/arm/eabi/fraiseexcpt.c
-+++ glibc-ports-2.5/sysdeps/arm/eabi/fraiseexcpt.c
-@@ -24,12 +24,12 @@
- #include <unistd.h>
- #include <ldsodefs.h>
- #include <dl-procinfo.h>
--#include <asm/procinfo.h>
-+#include <sysdep.h>
- int
- feraiseexcept (int excepts)
- {
--  if (GLRO (dl_hwcap) & HWCAP_VFP)
-+  if (GLRO (dl_hwcap) & HWCAP_ARM_VFP)
-     {
-       int fpscr;
-       const float fp_zero = 0.0, fp_one = 1.0, fp_max = FLT_MAX,
-Index: glibc-ports-2.5/sysdeps/arm/eabi/fsetexcptflg.c
-===================================================================
---- glibc-ports-2.5.orig/sysdeps/arm/eabi/fsetexcptflg.c
-+++ glibc-ports-2.5/sysdeps/arm/eabi/fsetexcptflg.c
-@@ -24,12 +24,12 @@
- #include <unistd.h>
- #include <ldsodefs.h>
- #include <dl-procinfo.h>
--#include <asm/procinfo.h>
-+#include <sysdep.h>
- int
- __fesetexceptflag (const fexcept_t *flagp, int excepts)
- {
--  if (GLRO (dl_hwcap) & HWCAP_VFP)
-+  if (GLRO (dl_hwcap) & HWCAP_ARM_VFP)
-     {
-       fexcept_t temp;
-Index: glibc-ports-2.5/sysdeps/arm/eabi/ftestexcept.c
-===================================================================
---- glibc-ports-2.5.orig/sysdeps/arm/eabi/ftestexcept.c
-+++ glibc-ports-2.5/sysdeps/arm/eabi/ftestexcept.c
-@@ -23,12 +23,12 @@
- #include <unistd.h>
- #include <ldsodefs.h>
- #include <dl-procinfo.h>
--#include <asm/procinfo.h>
-+#include <sysdep.h>
- int
- fetestexcept (int excepts)
- {
--  if (GLRO (dl_hwcap) & HWCAP_VFP)
-+  if (GLRO (dl_hwcap) & HWCAP_ARM_VFP)
-     {
-       fexcept_t temp;
-Index: glibc-ports-2.5/sysdeps/arm/eabi/setfpucw.c
-===================================================================
---- glibc-ports-2.5.orig/sysdeps/arm/eabi/setfpucw.c
-+++ glibc-ports-2.5/sysdeps/arm/eabi/setfpucw.c
-@@ -23,12 +23,12 @@
- #include <unistd.h>
- #include <ldsodefs.h>
- #include <dl-procinfo.h>
--#include <asm/procinfo.h>
-+#include <sysdep.h>
- void
- __setfpucw (fpu_control_t set)
- {
--  if (GLRO (dl_hwcap) & HWCAP_VFP)
-+  if (GLRO (dl_hwcap) & HWCAP_ARM_VFP)
-     {
-       fpu_control_t cw;
diff --git a/src/patches/glibc-remove-ctors-dtors-output-sections.patch b/src/patches/glibc-remove-ctors-dtors-output-sections.patch
new file mode 100644 (file)
index 0000000..91155c9
--- /dev/null
@@ -0,0 +1,150 @@
+From 4a531bb0b3b582cb693de9f76d2d97d970f9a5d5 Mon Sep 17 00:00:00 2001
+From: H.J. Lu <hongjiu.lu@intel.com>
+Date: Fri, 24 Dec 2010 20:14:37 -0500
+Subject: [PATCH] Remove `.ctors' and `.dtors' output sections
+
+---
+ config.h.in                            |    3 +
+ configure.in                           |    2 +
+ elf/sofini.c                           |    2 +
+ elf/soinit.c                           |    2 +
+ sysdeps/i386/init-first.c              |    2 +
+ sysdeps/mach/hurd/i386/init-first.c    |    2 +-
+ sysdeps/mach/hurd/powerpc/init-first.c |    2 +-
+ sysdeps/sh/init-first.c                |    2 +
+ sysdeps/unix/sysv/linux/init-first.c   |    2 +-
+ 9 files changed, 16 insertions(+), 3 deletions(-)
+
+diff --git a/config.h.in b/config.h.in
+index 18bf01a..9e797eb 100644
+--- a/config.h.in
++++ b/config.h.in
+@@ -201,6 +201,9 @@
+ /* Define if multi-arch DSOs should be generated.  */
+ #undef USE_MULTIARCH
++/* Define if `.ctors' and `.dtors' sections shouldn't be used.  */
++#undef        NO_CTORS_DTORS_SECTIONS
++
+ /*
\f */
+diff --git a/configure.in b/configure.in
+index d8cd5f1..ad25b9b 100644
+--- a/configure.in
++++ b/configure.in
+@@ -1497,6 +1497,8 @@ EOF
+   rm -f conftest*])
+   if test $libc_cv_initfini_array != yes; then
+     AC_MSG_ERROR([Need linker with .init_array/.fini_array support.])
++  elif AC_TRY_COMMAND([${CC-cc} -Wl,--verbose 2>&1|grep SORT_BY_INIT_PRIORITY 1>&AS_MESSAGE_LOG_FD]); then
++    AC_DEFINE(NO_CTORS_DTORS_SECTIONS)
+   fi
+   AC_CACHE_CHECK(for libunwind-support in compiler,
+diff --git a/elf/sofini.c b/elf/sofini.c
+index 5e06f0c..13e74b7 100644
+--- a/elf/sofini.c
++++ b/elf/sofini.c
+@@ -1,12 +1,14 @@
+ /* Finalizer module for ELF shared C library.  This provides terminating
+    null pointer words in the `.ctors' and `.dtors' sections.  */
++#ifndef NO_CTORS_DTORS_SECTIONS
+ static void (*const __CTOR_END__[1]) (void)
+      __attribute__ ((used, section (".ctors")))
+      = { 0 };
+ static void (*const __DTOR_END__[1]) (void)
+      __attribute__ ((used, section (".dtors")))
+      = { 0 };
++#endif
+ /* Terminate the frame unwind info section with a 4byte 0 as a sentinel;
+    this would be the 'length' field in a real FDE.  */
+diff --git a/elf/soinit.c b/elf/soinit.c
+index 6fecbb5..1db676a 100644
+--- a/elf/soinit.c
++++ b/elf/soinit.c
+@@ -3,6 +3,7 @@
+    the `.ctors' and `.dtors' sections so the lists are terminated, and
+    calling those lists of functions.  */
++#ifndef NO_CTORS_DTORS_SECTIONS
+ #include <libc-internal.h>
+ #include <stdlib.h>
+@@ -40,3 +41,4 @@ __libc_fini (void)
+ void (*_fini_ptr) (void) __attribute__ ((section (".fini_array")))
+      = &__libc_fini;
++#endif
+diff --git a/sysdeps/i386/init-first.c b/sysdeps/i386/init-first.c
+index c6355a8..2af042f 100644
+--- a/sysdeps/i386/init-first.c
++++ b/sysdeps/i386/init-first.c
+@@ -59,7 +59,9 @@ _init (int argc, ...)
+ {
+   init (&argc);
++#ifndef NO_CTORS_DTORS_SECTIONS
+   __libc_global_ctors ();
++#endif
+ }
+ #endif
+diff --git a/sysdeps/mach/hurd/i386/init-first.c b/sysdeps/mach/hurd/i386/init-first.c
+index f9a7a58..60823bd 100644
+--- a/sysdeps/mach/hurd/i386/init-first.c
++++ b/sysdeps/mach/hurd/i386/init-first.c
+@@ -92,7 +92,7 @@ posixland_init (int argc, char **argv, char **envp)
+   __getopt_clean_environment (envp);
+ #endif
+-#ifdef SHARED
++#if defined SHARED && !defined NO_CTORS_DTORS_SECTIONS
+   __libc_global_ctors ();
+ #endif
+ }
+diff --git a/sysdeps/mach/hurd/powerpc/init-first.c b/sysdeps/mach/hurd/powerpc/init-first.c
+index 20fa1d4..21b5054 100644
+--- a/sysdeps/mach/hurd/powerpc/init-first.c
++++ b/sysdeps/mach/hurd/powerpc/init-first.c
+@@ -82,7 +82,7 @@ posixland_init (int argc, char **argv, char **envp)
+   __getopt_clean_environment (__environ);
+ #endif
+-#ifdef SHARED
++#if defined SHARED && !defined NO_CTORS_DTORS_SECTIONS
+   __libc_global_ctors ();
+ #endif
+ }
+diff --git a/sysdeps/sh/init-first.c b/sysdeps/sh/init-first.c
+index d816625..1f3a821 100644
+--- a/sysdeps/sh/init-first.c
++++ b/sysdeps/sh/init-first.c
+@@ -59,7 +59,9 @@ _init (int argc, ...)
+ {
+   init (&argc);
++#ifndef NO_CTORS_DTORS_SECTIONS
+   __libc_global_ctors ();
++#endif
+ }
+ #endif
+diff --git a/sysdeps/unix/sysv/linux/init-first.c b/sysdeps/unix/sysv/linux/init-first.c
+index 7b2333d..a60212f 100644
+--- a/sysdeps/unix/sysv/linux/init-first.c
++++ b/sysdeps/unix/sysv/linux/init-first.c
+@@ -93,7 +93,7 @@ _init (int argc, char **argv, char **envp)
+   __getopt_clean_environment (envp);
+ #endif
+-#ifdef SHARED
++#if defined SHARED && !defined NO_CTORS_DTORS_SECTIONS
+   __libc_global_ctors ();
+ #endif
+ }
+-- 
+1.7.3.4
+
diff --git a/src/patches/glibc-resolv-stack_chk_fail.patch b/src/patches/glibc-resolv-stack_chk_fail.patch
new file mode 100644 (file)
index 0000000..00bb710
--- /dev/null
@@ -0,0 +1,35 @@
+From e057a1b5930ec538c2b8abbba700a436ef2c81d5 Mon Sep 17 00:00:00 2001
+From: Joseph Myers <joseph@codesourcery.com>
+Date: Wed, 21 Sep 2011 13:27:50 -0700
+Subject: [PATCH] Link libresolv.so with ld.so for __stack_chk_guard.
+
+---
+ resolv/Makefile |    8 +++++++-
+ 1 files changed, 7 insertions(+), 1 deletions(-)
+
+diff --git a/resolv/Makefile b/resolv/Makefile
+index ec3788f..b4287de 100644
+--- a/resolv/Makefile
++++ b/resolv/Makefile
+@@ -1,4 +1,5 @@
+-# Copyright (C) 1994-2001,2003,2004,2007,2008 Free Software Foundation, Inc.
++# Copyright (C) 1994-2001,2003,2004,2007,2008,2011
++#     Free Software Foundation, Inc.
+ # This file is part of the GNU C Library.
+ # The GNU C Library is free software; you can redistribute it and/or
+@@ -88,6 +89,11 @@ CFLAGS-res_hconf.c = -fexceptions
+ # This ensures they will load libc.so for needed symbols if loaded by
+ # a statically-linked program that hasn't already loaded it.
+ $(objpfx)libresolv.so: $(common-objpfx)libc.so $(common-objpfx)libc_nonshared.a
++# Some hosts need '__stack_chk_guard', so pull in the definition from
++# ld.so if required.
++ifeq (yesyes,$(have-ssp)$(elf))
++LDLIBS-resolv.so += $(as-needed) $(elfobjdir)/ld.so $(no-as-needed)
++endif
+ # The DNS NSS modules needs the resolver.
+ $(objpfx)libnss_dns.so: $(objpfx)libresolv.so $(common-objpfx)libc.so \
+-- 
+1.7.3.4
+
diff --git a/src/patches/glibc-test-installation.pl-libgcc_s.patch b/src/patches/glibc-test-installation.pl-libgcc_s.patch
new file mode 100644 (file)
index 0000000..a63d5d8
--- /dev/null
@@ -0,0 +1,97 @@
+From 6e236b92765cdafb46d19e4907471699accc8269 Mon Sep 17 00:00:00 2001
+From: Siddhesh Poyarekar <siddhesh@redhat.com>
+Date: Thu, 26 Apr 2012 09:18:48 +0530
+Subject: [PATCH] move libgcc_s soname definition to shlib-versions
+
+diff --git a/nptl/sysdeps/pthread/unwind-forcedunwind.c b/nptl/sysdeps/pthread/unwind-forcedunwind.c
+index adce6e7..60dfbe6 100644
+--- a/nptl/sysdeps/pthread/unwind-forcedunwind.c
++++ b/nptl/sysdeps/pthread/unwind-forcedunwind.c
+@@ -21,7 +21,7 @@
+ #include <unwind.h>
+ #include <pthreadP.h>
+ #include <sysdep.h>
+-#include <libgcc_s.h>
++#include <gnu/lib-names.h>
+ static void *libgcc_s_handle;
+ static void (*libgcc_s_resume) (struct _Unwind_Exception *exc);
+diff --git a/scripts/test-installation.pl b/scripts/test-installation.pl
+index c4f3d6d..1b22086 100755
+--- a/scripts/test-installation.pl
++++ b/scripts/test-installation.pl
+
+@@ -105,9 +105,10 @@ while (<SOVERSIONS>) {
+     # - libnss1_* from glibc-compat add-on
+     # - libthread_db since it contains unresolved references
+     # - it's just a test NSS module
++    # - We don't provide the libgcc so we don't test it
+     if ($name ne "nss_ldap" && $name ne "db1"
+       && !($name =~/^nss1_/) && $name ne "thread_db"
+-      && $name ne "nss_test1") {
++      && $name ne "nss_test1" && $name ne "libgcc_s") {
+       $link_libs .= " -l$name";
+       $versions{$name} = $version;
+     }
+diff --git a/shlib-versions b/shlib-versions
+index c530a44..840e08f 100644
+--- a/shlib-versions
++++ b/shlib-versions
+@@ -124,3 +124,7 @@ sparc64.*-.*-.*            libBrokenLocale=1       GLIBC_2.2
+ # The asynchronous name lookup library.
+ .*-.*-.*              libanl=1
++
++# This defines the libgcc soname version this glibc is to load for
++# asynchronous cancellation to work correctly.
++.*-.*-.*              libgcc_s=1
+diff --git a/sysdeps/generic/framestate.c b/sysdeps/generic/framestate.c
+index 3638bbe..3bad5b5 100644
+--- a/sysdeps/generic/framestate.c
++++ b/sysdeps/generic/framestate.c
+@@ -1,5 +1,5 @@
+ /* __frame_state_for unwinder helper function wrapper.
+-   Copyright (C) 2001, 2003 Free Software Foundation, Inc.
++   Copyright (C) 2001-2012 Free Software Foundation, Inc.
+    This file is part of the GNU C Library.
+    Contributed by Jakub Jelinek <jakub@redhat.com>, 2001.
+@@ -23,7 +23,7 @@
+ #define __frame_state_for fallback_frame_state_for
+ #include <unwind-dw2.c>
+ #undef __frame_state_for
+-#include <libgcc_s.h>
++#include <gnu/lib-names.h>
+ typedef struct frame_state * (*framesf)(void *pc, struct frame_state *);
+ struct frame_state *__frame_state_for (void *pc,
+diff --git a/sysdeps/generic/libgcc_s.h b/sysdeps/generic/libgcc_s.h
+deleted file mode 100644
+index e74a103..0000000
+--- a/sysdeps/generic/libgcc_s.h
++++ /dev/null
+@@ -1,2 +0,0 @@
+-/* Name of libgcc_s library provided by gcc.  */
+-#define LIBGCC_S_SO "libgcc_s.so.1"
+diff --git a/sysdeps/gnu/unwind-resume.c b/sysdeps/gnu/unwind-resume.c
+index 1d3e33f..6afaebd 100644
+--- a/sysdeps/gnu/unwind-resume.c
++++ b/sysdeps/gnu/unwind-resume.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2003 Free Software Foundation, Inc.
++/* Copyright (C) 2003-2012 Free Software Foundation, Inc.
+    This file is part of the GNU C Library.
+    Contributed by Jakub Jelinek <jakub@redhat.com>.
+@@ -19,7 +19,7 @@
+ #include <dlfcn.h>
+ #include <stdio.h>
+ #include <unwind.h>
+-#include <libgcc_s.h>
++#include <gnu/lib-names.h>
+ static void (*libgcc_s_resume) (struct _Unwind_Exception *exc);
+ static _Unwind_Reason_Code (*libgcc_s_personality)
+-- 
+1.7.3.4
+
diff --git a/src/patches/glibc-test-installation.pl-nss_test1.patch b/src/patches/glibc-test-installation.pl-nss_test1.patch
new file mode 100644 (file)
index 0000000..8881d94
--- /dev/null
@@ -0,0 +1,31 @@
+From 9191c04a7e19fffbea0a08523e579cd8e55142df Mon Sep 17 00:00:00 2001
+From: Ulrich Drepper <drepper@gmail.com>
+Date: Sat, 23 Jul 2011 15:28:31 -0400
+Subject: [PATCH] Adjust test for correct installation
+
+diff --git a/scripts/test-installation.pl b/scripts/test-installation.pl
+index 90cd9d7..25a919b 100755
+--- a/scripts/test-installation.pl
++++ b/scripts/test-installation.pl
+@@ -1,5 +1,5 @@
+ #! /usr/bin/perl -w
+-# Copyright (C) 1997, 1998, 1999, 2004 Free Software Foundation, Inc.
++# Copyright (C) 1997, 1998, 1999, 2004, 2011 Free Software Foundation, Inc.
+ # This file is part of the GNU C Library.
+ # Contributed by Andreas Jaeger <aj@arthur.rhein-neckar.de>, 1997.
+@@ -105,8 +105,10 @@ while (<SOVERSIONS>) {
+     # - libdb1 since it conflicts with libdb
+     # - libnss1_* from glibc-compat add-on
+     # - libthread_db since it contains unresolved references
++    # - it's just a test NSS module
+     if ($name ne "nss_ldap" && $name ne "db1"
+-      && !($name =~/^nss1_/) && $name ne "thread_db") {
++      && !($name =~/^nss1_/) && $name ne "thread_db"
++      && $name ne "nss_test1") {
+       $link_libs .= " -l$name";
+       $versions{$name} = $version;
+     }
+-- 
+1.7.3.4
+
diff --git a/src/patches/glibc/glibc-aliasing.patch b/src/patches/glibc/glibc-aliasing.patch
new file mode 100644 (file)
index 0000000..016a4d4
--- /dev/null
@@ -0,0 +1,87 @@
+Index: glibc-2.12-2-gc4ccff1/elf/Makefile
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/elf/Makefile
++++ glibc-2.12-2-gc4ccff1/elf/Makefile
+@@ -129,6 +129,7 @@ include ../Makeconfig
+ ifeq ($(unwind-find-fde),yes)
+ routines += unwind-dw2-fde-glibc
+ shared-only-routines += unwind-dw2-fde-glibc
++CFLAGS-unwind-dw2-fde-glibc.c += -fno-strict-aliasing
+ endif
+ before-compile  = $(objpfx)trusted-dirs.h
+Index: glibc-2.12-2-gc4ccff1/inet/Makefile
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/inet/Makefile
++++ glibc-2.12-2-gc4ccff1/inet/Makefile
+@@ -57,6 +57,8 @@ tests := htontest test_ifindex tst-ntoa 
+ include ../Rules
++CFLAGS-tst-inet6_rth.c += -fno-strict-aliasing
++
+ ifeq ($(have-thread-library),yes)
+ CFLAGS-gethstbyad_r.c = -DUSE_NSCD=1 -fexceptions
+Index: glibc-2.12-2-gc4ccff1/nis/Makefile
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nis/Makefile
++++ glibc-2.12-2-gc4ccff1/nis/Makefile
+@@ -69,6 +69,8 @@ libnss_nisplus-inhibit-o = $(filter-out 
+ include ../Rules
++CFLAGS-nis_findserv.c += -fno-strict-aliasing
++CFLAGS-ypclnt.c += -fno-strict-aliasing
+ $(objpfx)libnss_compat.so: $(objpfx)libnsl.so$(libnsl.so-version)
+ $(objpfx)libnss_nis.so: $(objpfx)libnsl.so$(libnsl.so-version) \
+Index: glibc-2.12-2-gc4ccff1/nss/Makefile
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nss/Makefile
++++ glibc-2.12-2-gc4ccff1/nss/Makefile
+@@ -74,6 +74,7 @@ endif
+ include ../Rules
++CFLAGS-files-hosts.c += -fno-strict-aliasing
+ ifeq (yes,$(build-static-nss))
+ $(objpfx)getent: $(objpfx)libnss_files.a
+Index: glibc-2.12-2-gc4ccff1/resolv/Makefile
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/resolv/Makefile
++++ glibc-2.12-2-gc4ccff1/resolv/Makefile
+@@ -77,6 +77,7 @@ CPPFLAGS += -Dgethostbyname=res_gethostb
+           -Dgetnetbyaddr=res_getnetbyaddr
+ CFLAGS-res_hconf.c = -fexceptions
++CFLAGS-res_send.c += -fno-strict-aliasing
+ # The BIND code elicits some harmless warnings.
+ +cflags += -Wno-strict-prototypes -Wno-write-strings
+Index: glibc-2.12-2-gc4ccff1/sunrpc/Makefile
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sunrpc/Makefile
++++ glibc-2.12-2-gc4ccff1/sunrpc/Makefile
+@@ -129,6 +129,10 @@ CFLAGS-openchild.c = -fexceptions
+ CPPFLAGS += -D_RPC_THREAD_SAFE_
++CFLAGS-clnt_tcp.c += -fno-strict-aliasing
++CFLAGS-clnt_udp.c += -fno-strict-aliasing
++CFLAGS-clnt_unix.c += -fno-strict-aliasing
++
+ include ../Rules
+ $(objpfx)rpcgen: $(addprefix $(objpfx),$(rpcgen-objs)) \
+Index: glibc-2.12-2-gc4ccff1/sysdeps/powerpc/powerpc64/elf/Makefile
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/powerpc/powerpc64/elf/Makefile
++++ glibc-2.12-2-gc4ccff1/sysdeps/powerpc/powerpc64/elf/Makefile
+@@ -9,3 +9,5 @@ CFLAGS-rtld-mempcpy.os = $(no-special-re
+ CFLAGS-rtld-memmove.os = $(no-special-regs)
+ CFLAGS-rtld-memchr.os = $(no-special-regs)
+ CFLAGS-rtld-strnlen.os = $(no-special-regs)
++
++CFLAGS-gmon-start.c += -fno-strict-aliasing
diff --git a/src/patches/glibc/glibc-fedora.patch b/src/patches/glibc/glibc-fedora.patch
new file mode 100644 (file)
index 0000000..5a7fce9
--- /dev/null
@@ -0,0 +1,2106 @@
+--- glibc-2.12-2-gc4ccff1/ChangeLog
++++ glibc-2.12-1/ChangeLog
+@@ -241,6 +241,12 @@
+       * Makerules (libc-abis): Fix search for libc-abis in add-ons.
++2010-04-06  Ulrich Drepper  <drepper@redhat.com>
++
++      * sysdeps/posix/getaddrinfo.c (default_scopes): Assign global
++      scope to RFC 1918 addresses.
++      * posix/gai.conf: Document difference from RFC 3484.
++
+ 2010-04-05  Thomas Schwinge  <thomas@schwinge.name>
+       * sysdeps/gnu/unwind-resume.c: New, moved from nptl/sysdeps/pthread/.
+@@ -995,6 +1001,19 @@
+       * sysdeps/x86_64/fpu/fegetenv.c: Likewise
+       * sysdeps/s390/fpu/fegetenv.c: Likewise.  Remove unused headers.
++2009-10-27  Aurelien Jarno  <aurelien@aurel32.net>
++
++      [BZ #10855]
++      * locale/programs/locarchive.c: use MMAP_SHARED to reserve memory
++      used later with MMAP_FIXED | MMAP_SHARED to cope with different
++      alignment restrictions.
++
++2010-02-08  Andreas Schwab  <schwab@redhat.com>
++
++      [BZ #11155]
++      * sysdeps/unix/sysv/linux/sparc/sparc64/fxstat.c: Include i386
++      version.
++
+ 2010-02-05  H.J. Lu  <hongjiu.lu@intel.com>
+       [BZ #11230]
+@@ -2938,6 +2957,11 @@ d2009-10-30  Ulrich Drepper  <drepper@re
+       * sysdeps/generic/ldsodefs.h (struct rtld_global): The map element in
+       the unique symbol hash table should not be const.
++2009-07-22  Jakub Jelinek  <jakub@redhat.com>
++
++      * Makeconfig (ASFLAGS): Append $(sysdep-ASFLAGS).
++      * sysdeps/i386/Makefile (sysdep-ASFLAGS): Add -U__i686.
++
+ 2009-07-21  Ulrich Drepper  <drepper@redhat.com>
+       * sysdeps/x86_64/multiarch/strstr.c: Minor cleanups.  Remove
+@@ -3203,6 +3227,11 @@ d2009-10-30  Ulrich Drepper  <drepper@re
+       out common code into new function get_common_indeces. Determine
+       extended family and model for Intel processors.
++2009-06-26  Andreas Schwab  <aschwab@redhat.com>
++
++      * timezone/zic.c (stringzone): Don't try to generate a POSIX TZ
++      string when the timezone ends in DST.
++
+ 2009-06-26  Ulrich Drepper  <drepper@redhat.com>
+       * resolv/resolv.h: Define RES_SNGLKUPREOP.
+@@ -11896,6 +11925,10 @@ d2009-10-30  Ulrich Drepper  <drepper@re
+       [BZ #4368]
+       * stdlib/stdlib.h: Remove obsolete part of comment for realpath.
++2007-04-16  Jakub Jelinek  <jakub@redhat.com>
++
++      * locale/programs/locarchive.c (add_alias, insert_name): Remove static.
++
+ 2007-04-16  Ulrich Drepper  <drepper@redhat.com>
+       [BZ #4364]
+@@ -13153,6 +13186,15 @@ d2009-10-30  Ulrich Drepper  <drepper@re
+       separators also if no non-zero digits found.
+       * stdlib/Makefile (tests): Add tst-strtod3.
++2006-12-10  Jakub Jelinek  <jakub@redhat.com>
++
++      * sysdeps/unix/sysv/linux/netlinkaccess.h: Include linux/if_addr.h
++      if IFA_MAX is not defined.
++      (IFA_RTA, IFA_PAYLOAD, IFLA_RTA, IFLA_PAYLOAD): Define if not
++      defined.
++      * sysdeps/unix/sysv/linux/check_pf.c: Include netlinkaccess.h
++      instead of asm/types.h, linux/netlink.h and linux/rtnetlink.h.
++
+ 2006-12-09  Ulrich Drepper  <drepper@redhat.com>
+       [BZ #3632]
+--- glibc-2.12-2-gc4ccff1/ChangeLog.15
++++ glibc-2.12-1/ChangeLog.15
+@@ -477,6 +477,14 @@
+ 2004-11-26  Jakub Jelinek  <jakub@redhat.com>
++      * posix/Makefile (generated: Add getconf.speclist.
++      ($(inst_libexecdir)/getconf): Use getconf.speclist instead of
++      getconf output.
++      ($(objpfx)getconf.speclist): New rule.
++      * posix/getconf.speclist.h: New file.
++
++2004-11-26  Jakub Jelinek  <jakub@redhat.com>
++
+       * sysdeps/generic/unsecvars.h (UNSECURE_ENVVARS): Add GETCONF_DIR.
+ 2004-11-26  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
+@@ -1103,6 +1111,13 @@
+       * sysdeps/generic/tempname.c (__path_search): Add missing argument
+       TRY_TMPDIR.
++2004-11-02  Jakub Jelinek  <jakub@redhat.com>
++
++      * include/features.h (__USE_FORTIFY_LEVEL): Also set for Red Hat
++      GCC 3.4.x-RH >= 3.4.2-8.
++      * debug/tst-chk1.c (do_test): Deal with GCC 3.4.x-RH not
++      being able to recognize subobjects.
++
+ 2004-10-31  Mariusz Mazur <mmazur@kernel.pl>
+       * sysdeps/unix/sysv/linux/alpha/setregid.c: New file.
+@@ -1443,6 +1458,11 @@
+       * sysdeps/generic/readonly-area.c (__readonly_str): Renamed to ...
+       (__readonly_area): ... this.
++2004-10-19  Jakub Jelinek  <jakub@redhat.com>
++
++      * include/features.h (__USE_FORTIFY_LEVEL): Enable even with
++      Red Hat gcc4 4.0.0 and above.
++
+ 2004-10-18  Jakub Jelinek  <jakub@redhat.com>
+       * sysdeps/generic/strcpy_chk.c (__strcpy_chk): Speed up by checking
+@@ -3182,6 +3202,23 @@
+       before return type.
+       * locale/localename.c (__current_locale_name): Likewise.
++2004-08-31  Jakub Jelinek  <jakub@redhat.com>
++
++      * elf/ldconfig.c (parse_conf): Add prefix argument, prepend it
++      before arguments to add_dir and pass to parse_conf_include.
++      (parse_conf_include): Add prefix argument, pass it down to
++      parse_conf.
++      (main): Call arch_startup.  Adjust parse_conf caller.
++      Call add_arch_dirs.
++      * sysdeps/generic/dl-cache.h (arch_startup, add_arch_dirs): Define.
++      * sysdeps/unix/sysv/linux/i386/dl-cache.h: New file.
++      * sysdeps/unix/sysv/linux/ia64/dl-cache.h (EMUL_HACK, arch_startup,
++      add_arch_dirs): Define.
++      * sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed: Prepend
++      /emul/ia32-linux before the 32-bit ld.so pathname.
++      * sysdeps/unix/sysv/linux/ia64/dl-procinfo.c: New file.
++      * sysdeps/unix/sysv/linux/ia64/dl-procinfo.h: New file.
++
+ 2004-08-30  Roland McGrath  <roland@frob.com>
+       * scripts/extract-abilist.awk: If `lastversion' variable defined, omit
+--- glibc-2.12-2-gc4ccff1/ChangeLog.16
++++ glibc-2.12-1/ChangeLog.16
+@@ -2042,6 +2042,9 @@
+       (__MATHDECL_2): Use __REDIRECT_NTH instead of __REDIRECT
+       followed by __THROW.
++      * sysdeps/unix/sysv/linux/futimesat.c (futimesat): If
++      file == NULL, use __futimes unconditionally.
++
+ 2006-02-02  Ulrich Drepper  <drepper@redhat.com>
+       * sysdeps/unix/sysv/linux/futimesat.c [__NR_futimesat]
+@@ -2101,6 +2104,11 @@
+       * sysdeps/ieee754/ldbl-128/s_llrintl.c (__llrintl): Fix a typo.
+       * sysdeps/s390/fpu/libm-test-ulps: Remove llrint ulps.
++2006-01-30  Jakub Jelinek  <jakub@redhat.com>
++
++      * include/bits/stdlib-ldbl.h: New file.
++      * include/bits/wchar-ldbl.h: New file.
++
+ 2006-01-19  Thomas Schwinge  <tschwinge@gnu.org>
+       * libio/genops.c: Include <stdbool.h>.
+@@ -8922,6 +8930,12 @@
+       * argp/argp-help.c (__argp_error): __asprintf -> vasprintf.
+       (__argp_failure): Likewise.
++2005-08-08  Jakub Jelinek  <jakub@redhat.com>
++
++      * sysdeps/unix/sysv/linux/dl-osinfo.h (_dl_setup_stack_chk_guard):
++      Shift marked &errno down on big-endian instead of up.
++      * elf/tst-stackguard1.c (do_test): Fix a typo.
++
+ 2005-08-08  Ulrich Drepper  <drepper@redhat.com>
+       * nscd/cache.c (cache_add): Commit hash table and header to disk.
+@@ -9046,6 +9060,17 @@
+       __syslog_chk.
+       * misc/Versions: Export __syslog_chk and __vsyslog_chk.
++2005-07-29  Jakub Jelinek  <jakub@redhat.com>
++
++      * sysdeps/unix/sysv/linux/dl-osinfo.h: Include errno.h, hp-timing.h,
++      endian.h.
++      (_dl_setup_stack_chk_guard): Even without
++      --enable-stackguard-randomization attempt to do some guard
++      randomization using hp-timing (if available) and kernel stack and
++      mmap randomization.
++      * elf/tst-stackguard1.c (do_test): Don't fail if the poor man's
++      randomization doesn't work well enough.
++
+ 2005-07-28  Thomas Schwinge  <schwinge@nic-nac-project.de>
+       [BZ #1137]
+--- glibc-2.12-2-gc4ccff1/Makeconfig
++++ glibc-2.12-1/Makeconfig
+@@ -789,12 +789,12 @@ endif
+ # The assembler can generate debug information too.
+ ifndef ASFLAGS
+ ifeq ($(have-cpp-asm-debuginfo),yes)
+-ASFLAGS := $(filter -g% -fdebug-prefix-map=%,$(CFLAGS))
++ASFLAGS = $(filter -g% -fdebug-prefix-map=%,$(CFLAGS))
+ else
+-ASFLAGS :=
++ASFLAGS =
+ endif
+ endif
+-ASFLAGS += $(ASFLAGS-config) $(asflags-cpu)
++ASFLAGS += $(ASFLAGS-config) $(asflags-cpu) $(sysdep-ASFLAGS)
+ ifndef BUILD_CC
+ BUILD_CC = $(CC)
+--- glibc-2.12-2-gc4ccff1/csu/Makefile
++++ glibc-2.12-1/csu/Makefile
+@@ -93,7 +93,8 @@ omit-deps += $(crtstuff)
+ $(crtstuff:%=$(objpfx)%.o): %.o: %.S $(objpfx)defs.h
+       $(compile.S) -g0 $(ASFLAGS-.os) -o $@
+-CFLAGS-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time)
++CFLAGS-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time) \
++                  -fno-asynchronous-unwind-tables
+ vpath initfini.c $(sysdirs)
+--- glibc-2.12-2-gc4ccff1/csu/elf-init.c
++++ glibc-2.12-1/csu/elf-init.c
+@@ -63,6 +63,23 @@ extern void (*__init_array_end []) (int,
+ extern void (*__fini_array_start []) (void) attribute_hidden;
+ extern void (*__fini_array_end []) (void) attribute_hidden;
++#if defined HAVE_VISIBILITY_ATTRIBUTE \
++    && (defined SHARED || defined LIBC_NONSHARED)
++# define hidden_undef_2(x) #x
++# define hidden_undef_1(x) hidden_undef_2 (x)
++# define hidden_undef(x) \
++  __asm (hidden_undef_1 (ASM_GLOBAL_DIRECTIVE) " " #x); \
++  __asm (".hidden " #x);
++#else
++# define hidden_undef(x)
++#endif
++
++hidden_undef (__preinit_array_start)
++hidden_undef (__preinit_array_end)
++hidden_undef (__init_array_start)
++hidden_undef (__init_array_end)
++hidden_undef (__fini_array_start)
++hidden_undef (__fini_array_end)
+ /* These function symbols are provided for the .init/.fini section entry
+    points automagically by the linker.  */
+--- glibc-2.12-2-gc4ccff1/debug/tst-chk1.c
++++ glibc-2.12-1/debug/tst-chk1.c
+@@ -17,6 +17,9 @@
+    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+    02111-1307 USA.  */
++/* Hack: make sure GCC doesn't know __chk_fail () will not return.  */
++#define __noreturn__
++
+ #include <assert.h>
+ #include <fcntl.h>
+ #include <locale.h>
+@@ -242,7 +245,7 @@ do_test (void)
+   if (memcmp (a.buf1, "aabcdabcjj", 10))
+     FAIL ();
+-#if __USE_FORTIFY_LEVEL < 2
++#if __USE_FORTIFY_LEVEL < 2 || !__GNUC_PREREQ (4, 0)
+   /* The following tests are supposed to crash with -D_FORTIFY_SOURCE=2
+      and sufficient GCC support, as the string operations overflow
+      from a.buf1 into a.buf2.  */
+@@ -357,7 +360,7 @@ do_test (void)
+   memset (a.buf1 + 9, 'j', l0 + 2);
+   CHK_FAIL_END
+-# if __USE_FORTIFY_LEVEL >= 2
++# if __USE_FORTIFY_LEVEL >= 2 && __GNUC_PREREQ (4, 0)
+ #  define O 0
+ # else
+ #  define O 1
+--- glibc-2.12-2-gc4ccff1/elf/ldconfig.c
++++ glibc-2.12-1/elf/ldconfig.c
+@@ -1031,17 +1031,19 @@ search_dirs (void)
+ static void parse_conf_include (const char *config_file, unsigned int lineno,
+-                              bool do_chroot, const char *pattern);
++                              const char *prefix, bool do_chroot,
++                              const char *pattern);
+ /* Parse configuration file.  */
+ static void
+-parse_conf (const char *filename, bool do_chroot)
++parse_conf (const char *filename, const char *prefix, bool do_chroot)
+ {
+   FILE *file = NULL;
+   char *line = NULL;
+   const char *canon;
+   size_t len = 0;
+   unsigned int lineno;
++  size_t prefix_len = prefix ? strlen (prefix) : 0;
+   if (do_chroot && opt_chroot)
+     {
+@@ -1102,7 +1104,14 @@ parse_conf (const char *filename, bool d
+         cp += 8;
+         while ((dir = strsep (&cp, " \t")) != NULL)
+           if (dir[0] != '\0')
+-            parse_conf_include (filename, lineno, do_chroot, dir);
++            parse_conf_include (filename, lineno, prefix, do_chroot, dir);
++      }
++      else if (prefix != NULL)
++      {
++        size_t cp_len = strlen (cp);
++        char new_cp [prefix_len + cp_len + 1];
++        memcpy (mempcpy (new_cp, prefix, prefix_len), cp, cp_len + 1);
++        add_dir (new_cp);
+       }
+       else if (!strncasecmp (cp, "hwcap", 5) && isblank (cp[5]))
+       {
+@@ -1165,7 +1174,7 @@ parse_conf (const char *filename, bool d
+    config files to read.  */
+ static void
+ parse_conf_include (const char *config_file, unsigned int lineno,
+-                  bool do_chroot, const char *pattern)
++                  const char *prefix, bool do_chroot, const char *pattern)
+ {
+   if (opt_chroot && pattern[0] != '/')
+     error (EXIT_FAILURE, 0,
+@@ -1197,7 +1206,7 @@ parse_conf_include (const char *config_f
+     {
+     case 0:
+       for (size_t i = 0; i < gl.gl_pathc; ++i)
+-      parse_conf (gl.gl_pathv[i], false);
++      parse_conf (gl.gl_pathv[i], prefix, false);
+       globfree64 (&gl);
+       break;
+@@ -1240,6 +1249,8 @@ main (int argc, char **argv)
+   /* Set the text message domain.  */
+   textdomain (_libc_intl_domainname);
++  arch_startup (argc, argv);
++
+   /* Parse and process arguments.  */
+   int remaining;
+   argp_parse (&argp, argc, argv, 0, &remaining, NULL);
+@@ -1349,12 +1360,14 @@ main (int argc, char **argv)
+   if (!opt_only_cline)
+     {
+-      parse_conf (config_file, true);
++      parse_conf (config_file, NULL, true);
+       /* Always add the standard search paths.  */
+       add_system_dir (SLIBDIR);
+       if (strcmp (SLIBDIR, LIBDIR))
+       add_system_dir (LIBDIR);
++
++      add_arch_dirs (config_file);
+     }
+   char *aux_cache_file = _PATH_LDCONFIG_AUX_CACHE;
+--- glibc-2.12-2-gc4ccff1/elf/tst-stackguard1.c
++++ glibc-2.12-1/elf/tst-stackguard1.c
+@@ -160,17 +160,21 @@ do_test (void)
+      the 16 runs, something is very wrong.  */
+   int ndifferences = 0;
+   int ndefaults = 0;
++  int npartlyrandomized = 0;
+   for (i = 0; i < N; ++i) 
+     {
+       if (child_stack_chk_guards[i] != child_stack_chk_guards[i+1])
+       ndifferences++;
+       else if (child_stack_chk_guards[i] == default_guard)
+       ndefaults++;
++      else if (*(char *) &child_stack_chk_guards[i] == 0)
++      npartlyrandomized++;
+     }
+-  printf ("differences %d defaults %d\n", ndifferences, ndefaults);
++  printf ("differences %d defaults %d partly randomized %d\n",
++        ndifferences, ndefaults, npartlyrandomized);
+-  if (ndifferences < N / 2 && ndefaults < N / 2)
++  if ((ndifferences + ndefaults + npartlyrandomized) < 3 * N / 4)
+     {
+       puts ("stack guard canaries are not randomized enough");
+       puts ("nor equal to the default canary value");
+--- glibc-2.12-2-gc4ccff1/include/bits/stdlib-ldbl.h
++++ glibc-2.12-1/include/bits/stdlib-ldbl.h
+@@ -0,0 +1 @@
++#include <stdlib/bits/stdlib-ldbl.h>
+--- glibc-2.12-2-gc4ccff1/include/bits/wchar-ldbl.h
++++ glibc-2.12-1/include/bits/wchar-ldbl.h
+@@ -0,0 +1 @@
++#include <wcsmbs/bits/wchar-ldbl.h>
+--- glibc-2.12-2-gc4ccff1/include/features.h
++++ glibc-2.12-1/include/features.h
+@@ -308,8 +308,13 @@
+ #endif
+ #if defined _FORTIFY_SOURCE && _FORTIFY_SOURCE > 0 \
+-    && __GNUC_PREREQ (4, 1) && defined __OPTIMIZE__ && __OPTIMIZE__ > 0
+-# if _FORTIFY_SOURCE > 1
++    && defined __OPTIMIZE__ && __OPTIMIZE__ > 0
++# if !__GNUC_PREREQ (4, 1)
++#  ifdef __GNUC_RH_RELEASE__
++#   warning _FORTIFY_SOURCE supported only with GCC 4.1 and later
++#  endif
++#  define __USE_FORTIFY_LEVEL 0
++# elif _FORTIFY_SOURCE > 1
+ #  define __USE_FORTIFY_LEVEL 2
+ # else
+ #  define __USE_FORTIFY_LEVEL 1
+--- glibc-2.12-2-gc4ccff1/intl/locale.alias
++++ glibc-2.12-1/intl/locale.alias
+@@ -57,8 +57,6 @@ korean               ko_KR.eucKR
+ korean.euc    ko_KR.eucKR
+ ko_KR         ko_KR.eucKR
+ lithuanian      lt_LT.ISO-8859-13
+-no_NO         nb_NO.ISO-8859-1
+-no_NO.ISO-8859-1 nb_NO.ISO-8859-1
+ norwegian       nb_NO.ISO-8859-1
+ nynorsk               nn_NO.ISO-8859-1
+ polish          pl_PL.ISO-8859-2
+--- glibc-2.12-2-gc4ccff1/libio/stdio.h
++++ glibc-2.12-1/libio/stdio.h
+@@ -165,10 +165,12 @@ typedef _G_fpos64_t fpos64_t;
+ extern struct _IO_FILE *stdin;                /* Standard input stream.  */
+ extern struct _IO_FILE *stdout;               /* Standard output stream.  */
+ extern struct _IO_FILE *stderr;               /* Standard error output stream.  */
++#ifdef __STDC__
+ /* C89/C99 say they're macros.  Make them happy.  */
+ #define stdin stdin
+ #define stdout stdout
+ #define stderr stderr
++#endif
+ __BEGIN_NAMESPACE_STD
+ /* Remove file FILENAME.  */
+--- glibc-2.12-2-gc4ccff1/locale/iso-4217.def
++++ glibc-2.12-1/locale/iso-4217.def
+@@ -8,6 +8,7 @@
+  *
+  * !!! The list has to be sorted !!!
+  */
++DEFINE_INT_CURR("ADP")                /* Andorran Peseta -> EUR  */
+ DEFINE_INT_CURR("AED")                /* United Arab Emirates Dirham  */
+ DEFINE_INT_CURR("AFN")                /* Afghanistan Afgani  */
+ DEFINE_INT_CURR("ALL")                /* Albanian Lek  */
+@@ -15,12 +16,14 @@ DEFINE_INT_CURR("AMD")             /* Armenia Dram 
+ DEFINE_INT_CURR("ANG")                /* Netherlands Antilles  */
+ DEFINE_INT_CURR("AOA")                /* Angolan Kwanza  */
+ DEFINE_INT_CURR("ARS")                /* Argentine Peso  */
++DEFINE_INT_CURR("ATS")                /* Austrian Schilling -> EUR  */
+ DEFINE_INT_CURR("AUD")                /* Australian Dollar  */
+ DEFINE_INT_CURR("AWG")                /* Aruba Guilder  */
+ DEFINE_INT_CURR("AZM")                /* Azerbaijan Manat  */
+ DEFINE_INT_CURR("BAM")                /* Bosnian and Herzegovina Convertible Mark  */
+ DEFINE_INT_CURR("BBD")                /* Barbados Dollar  */
+ DEFINE_INT_CURR("BDT")                /* Bangladesh Taka  */
++DEFINE_INT_CURR("BEF")                /* Belgian Franc -> EUR  */
+ DEFINE_INT_CURR("BGN")                /* Bulgarian Lev  */
+ DEFINE_INT_CURR("BHD")                /* Bahraini Dinar  */
+ DEFINE_INT_CURR("BIF")                /* Burundi Franc  */
+@@ -44,6 +47,7 @@ DEFINE_INT_CURR("CUP")               /* Cuban Peso  *
+ DEFINE_INT_CURR("CVE")                /* Cape Verde Escudo  */
+ DEFINE_INT_CURR("CYP")                /* Cypriot Pound  */
+ DEFINE_INT_CURR("CZK")                /* Czech Koruna  */
++DEFINE_INT_CURR("DEM")                /* German Mark -> EUR  */
+ DEFINE_INT_CURR("DJF")                /* Djibouti Franc  */
+ DEFINE_INT_CURR("DKK")                /* Danish Krone (Faroe Islands, Greenland)  */
+ DEFINE_INT_CURR("DOP")                /* Dominican Republic  */
+@@ -51,16 +55,20 @@ DEFINE_INT_CURR("DZD")             /* Algerian Dina
+ DEFINE_INT_CURR("EEK")                /* Estonian Kroon  */
+ DEFINE_INT_CURR("EGP")                /* Egyptian Pound  */
+ DEFINE_INT_CURR("ERN")                /* Eritrean Nakfa  */
++DEFINE_INT_CURR("ESP")                /* Spanish Peseta -> EUR  */
+ DEFINE_INT_CURR("ETB")                /* Ethiopian Birr  */
+ DEFINE_INT_CURR("EUR")                /* European Union Euro  */
++DEFINE_INT_CURR("FIM")                /* Finnish Markka -> EUR  */
+ DEFINE_INT_CURR("FJD")                /* Fiji Dollar  */
+ DEFINE_INT_CURR("FKP")                /* Falkland Islands Pound (Malvinas)  */
++DEFINE_INT_CURR("FRF")                /* French Franc -> EUR  */
+ DEFINE_INT_CURR("GBP")                /* British Pound  */
+ DEFINE_INT_CURR("GEL")                /* Georgia Lari  */
+ DEFINE_INT_CURR("GHC")                /* Ghana Cedi  */
+ DEFINE_INT_CURR("GIP")                /* Gibraltar Pound  */
+ DEFINE_INT_CURR("GMD")                /* Gambian Dalasi  */
+ DEFINE_INT_CURR("GNF")                /* Guinea Franc  */
++DEFINE_INT_CURR("GRD")                /* Greek Drachma -> EUR  */
+ DEFINE_INT_CURR("GTQ")                /* Guatemala Quetzal  */
+ DEFINE_INT_CURR("GYD")                /* Guyana Dollar  */
+ DEFINE_INT_CURR("HKD")                /* Hong Kong Dollar  */
+@@ -69,12 +77,14 @@ DEFINE_INT_CURR("HRK")             /* Croatia Kuna 
+ DEFINE_INT_CURR("HTG")                /* Haiti Gourde  */
+ DEFINE_INT_CURR("HUF")                /* Hungarian Forint  */
+ DEFINE_INT_CURR("IDR")                /* Indonesia Rupiah  */
++DEFINE_INT_CURR("IEP")                /* Irish Pound -> EUR  */
+ DEFINE_INT_CURR("ILS")                /* Israeli Shekel  */
+ DEFINE_INT_CURR("IMP")                /* Isle of Man Pounds  */
+ DEFINE_INT_CURR("INR")                /* Indian Rupee (Bhutan)  */
+ DEFINE_INT_CURR("IQD")                /* Iraqi Dinar  */
+ DEFINE_INT_CURR("IRR")                /* Iranian Rial  */
+ DEFINE_INT_CURR("ISK")                /* Iceland Krona  */
++DEFINE_INT_CURR("ITL")                /* Italian Lira -> EUR  */
+ DEFINE_INT_CURR("JEP")                /* Jersey Pound  */
+ DEFINE_INT_CURR("JMD")                /* Jamaican Dollar  */
+ DEFINE_INT_CURR("JOD")                /* Jordanian Dinar  */
+@@ -94,6 +104,7 @@ DEFINE_INT_CURR("LKR")              /* Sri Lankan Ru
+ DEFINE_INT_CURR("LRD")                /* Liberian Dollar  */
+ DEFINE_INT_CURR("LSL")                /* Lesotho Maloti  */
+ DEFINE_INT_CURR("LTL")                /* Lithuanian Litas  */
++DEFINE_INT_CURR("LUF")                /* Luxembourg Franc -> EUR  */
+ DEFINE_INT_CURR("LVL")                /* Latvia Lat  */
+ DEFINE_INT_CURR("LYD")                /* Libyan Arab Jamahiriya Dinar  */
+ DEFINE_INT_CURR("MAD")                /* Moroccan Dirham  */
+@@ -114,6 +125,7 @@ DEFINE_INT_CURR("MZM")             /* Mozambique Me
+ DEFINE_INT_CURR("NAD")                /* Namibia Dollar  */
+ DEFINE_INT_CURR("NGN")                /* Nigeria Naira  */
+ DEFINE_INT_CURR("NIO")                /* Nicaragua Cordoba Oro  */
++DEFINE_INT_CURR("NLG")                /* Netherlands Guilder -> EUR  */
+ DEFINE_INT_CURR("NOK")                /* Norwegian Krone  */
+ DEFINE_INT_CURR("NPR")                /* Nepalese Rupee  */
+ DEFINE_INT_CURR("NZD")                /* New Zealand Dollar  */
+@@ -124,6 +136,7 @@ DEFINE_INT_CURR("PGK")             /* Papau New Gui
+ DEFINE_INT_CURR("PHP")                /* Philippines Peso  */
+ DEFINE_INT_CURR("PKR")                /* Pakistan Rupee  */
+ DEFINE_INT_CURR("PLN")                /* Polish Zloty  */
++DEFINE_INT_CURR("PTE")                /* Portugese Escudo -> EUR  */
+ DEFINE_INT_CURR("PYG")                /* Paraguay Guarani  */
+ DEFINE_INT_CURR("QAR")                /* Qatar Rial  */
+ DEFINE_INT_CURR("ROL")                /* Romanian Leu  */
+--- glibc-2.12-2-gc4ccff1/locale/programs/locarchive.c
++++ glibc-2.12-1/locale/programs/locarchive.c
+@@ -134,7 +134,7 @@ create_archive (const char *archivefname
+   size_t reserved = RESERVE_MMAP_SIZE;
+   int xflags = 0;
+   if (total < reserved
+-      && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_PRIVATE | MAP_ANON,
++      && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_SHARED | MAP_ANON,
+                      -1, 0)) != MAP_FAILED))
+     xflags = MAP_FIXED;
+   else
+@@ -241,9 +241,9 @@ oldlocrecentcmp (const void *a, const vo
+ /* forward decls for below */
+ static uint32_t add_locale (struct locarhandle *ah, const char *name,
+                           locale_data_t data, bool replace);
+-static void add_alias (struct locarhandle *ah, const char *alias,
+-                     bool replace, const char *oldname,
+-                     uint32_t *locrec_offset_p);
++void add_alias (struct locarhandle *ah, const char *alias,
++              bool replace, const char *oldname,
++              uint32_t *locrec_offset_p);
+ static bool
+@@ -396,7 +396,7 @@ enlarge_archive (struct locarhandle *ah,
+   size_t reserved = RESERVE_MMAP_SIZE;
+   int xflags = 0;
+   if (total < reserved
+-      && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_PRIVATE | MAP_ANON,
++      && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_SHARED | MAP_ANON,
+                      -1, 0)) != MAP_FAILED))
+     xflags = MAP_FIXED;
+   else
+@@ -614,7 +614,7 @@ open_archive (struct locarhandle *ah, bo
+   int xflags = 0;
+   void *p;
+   if (st.st_size < reserved
+-      && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_PRIVATE | MAP_ANON,
++      && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_SHARED | MAP_ANON,
+                      -1, 0)) != MAP_FAILED))
+     xflags = MAP_FIXED;
+   else
+@@ -649,7 +649,7 @@ close_archive (struct locarhandle *ah)
+ #include "../../intl/explodename.c"
+ #include "../../intl/l10nflist.c"
+-static struct namehashent *
++struct namehashent *
+ insert_name (struct locarhandle *ah,
+            const char *name, size_t name_len, bool replace)
+ {
+@@ -707,7 +707,7 @@ insert_name (struct locarhandle *ah,
+   return &namehashtab[idx];
+ }
+-static void
++void
+ add_alias (struct locarhandle *ah, const char *alias, bool replace,
+          const char *oldname, uint32_t *locrec_offset_p)
+ {
+--- glibc-2.12-2-gc4ccff1/localedata/Makefile
++++ glibc-2.12-1/localedata/Makefile
+@@ -227,6 +227,7 @@ $(INSTALL-SUPPORTED-LOCALES): install-lo
+       echo -n '...'; \
+       input=`echo $$locale | sed 's/\([^.]*\)[^@]*\(.*\)/\1\2/'`; \
+       $(LOCALEDEF) --alias-file=../intl/locale.alias \
++                   --no-archive \
+                    -i locales/$$input -c -f charmaps/$$charset \
+                    $(addprefix --prefix=,$(install_root)) $$locale; \
+       echo ' done'; \
+--- glibc-2.12-2-gc4ccff1/localedata/SUPPORTED
++++ glibc-2.12-1/localedata/SUPPORTED
+@@ -85,6 +85,7 @@ cy_GB.UTF-8/UTF-8 \
+ cy_GB/ISO-8859-14 \
+ da_DK.UTF-8/UTF-8 \
+ da_DK/ISO-8859-1 \
++da_DK.ISO-8859-15/ISO-8859-15 \
+ de_AT.UTF-8/UTF-8 \
+ de_AT/ISO-8859-1 \
+ de_AT@euro/ISO-8859-15 \
+@@ -116,6 +117,7 @@ en_DK.UTF-8/UTF-8 \
+ en_DK/ISO-8859-1 \
+ en_GB.UTF-8/UTF-8 \
+ en_GB/ISO-8859-1 \
++en_GB.ISO-8859-15/ISO-8859-15 \
+ en_HK.UTF-8/UTF-8 \
+ en_HK/ISO-8859-1 \
+ en_IE.UTF-8/UTF-8 \
+@@ -131,6 +133,7 @@ en_SG.UTF-8/UTF-8 \
+ en_SG/ISO-8859-1 \
+ en_US.UTF-8/UTF-8 \
+ en_US/ISO-8859-1 \
++en_US.ISO-8859-15/ISO-8859-15 \
+ en_ZA.UTF-8/UTF-8 \
+ en_ZA/ISO-8859-1 \
+ en_ZW.UTF-8/UTF-8 \
+@@ -307,6 +310,8 @@ nl_NL/ISO-8859-1 \
+ nl_NL@euro/ISO-8859-15 \
+ nn_NO.UTF-8/UTF-8 \
+ nn_NO/ISO-8859-1 \
++no_NO.UTF-8/UTF-8 \
++no_NO/ISO-8859-1 \
+ nr_ZA/UTF-8 \
+ nso_ZA/UTF-8 \
+ oc_FR.UTF-8/UTF-8 \
+@@ -367,6 +372,7 @@ sv_FI/ISO-8859-1 \
+ sv_FI@euro/ISO-8859-15 \
+ sv_SE.UTF-8/UTF-8 \
+ sv_SE/ISO-8859-1 \
++sv_SE.ISO-8859-15/ISO-8859-15 \
+ ta_IN/UTF-8 \
+ te_IN/UTF-8 \
+ tg_TJ.UTF-8/UTF-8 \
+--- glibc-2.12-2-gc4ccff1/localedata/locales/cy_GB
++++ glibc-2.12-1/localedata/locales/cy_GB
+@@ -248,8 +248,11 @@ mon         "<U0049><U006F><U006E><U0061
+ d_t_fmt     "<U0044><U0079><U0064><U0064><U0020><U0025><U0041><U0020><U0025><U0064><U0020><U006d><U0069><U0073><U0020><U0025><U0042><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+ d_fmt       "<U0025><U0064><U002E><U0025><U006D><U002E><U0025><U0079>"
+ t_fmt       "<U0025><U0054>"
+-am_pm       "";""
+-t_fmt_ampm  ""
++am_pm       "<U0041><U004D>";"<U0050><U004D>"
++t_fmt_ampm  "<U0025><U006C><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0050><U0020><U0025><U005A>"
++date_fmt    "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065>/
++<U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/
++<U0025><U005A><U0020><U0025><U0059>"
+ END LC_TIME
+ LC_MESSAGES
+--- glibc-2.12-2-gc4ccff1/localedata/locales/en_GB
++++ glibc-2.12-1/localedata/locales/en_GB
+@@ -116,8 +116,8 @@ mon         "<U004A><U0061><U006E><U0075
+ d_t_fmt     "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+ d_fmt       "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
+ t_fmt       "<U0025><U0054>"
+-am_pm       "";""
+-t_fmt_ampm  ""
++am_pm       "<U0041><U004D>";"<U0050><U004D>"
++t_fmt_ampm  "<U0025><U006C><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0050><U0020><U0025><U005A>"
+ date_fmt      "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065>/
+ <U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/
+ <U0025><U005A><U0020><U0025><U0059>"
+--- glibc-2.12-2-gc4ccff1/localedata/locales/no_NO
++++ glibc-2.12-1/localedata/locales/no_NO
+@@ -0,0 +1,69 @@
++escape_char   /
++comment_char    %
++
++% Norwegian language locale for Norway
++% Source: Norsk Standardiseringsforbund
++% Address: University Library,
++%   Drammensveien 41, N-9242 Oslo, Norge
++% Contact: Kolbjoern Aamboe
++% Tel: +47 - 22859109
++% Fax: +47 - 22434497
++% Email: kolbjorn.aambo@usit.uio.no
++% Language: no
++% Territory: NO
++% Revision: 4.3
++% Date: 1996-10-15
++% Application: general
++% Users: general
++% Repertoiremap: mnemonic.ds
++% Charset: ISO-8859-1
++% Distribution and use is free, also
++% for commercial purposes.
++
++LC_IDENTIFICATION
++copy "nb_NO"
++END LC_IDENTIFICATION
++
++LC_COLLATE
++copy "nb_NO"
++END LC_COLLATE
++
++LC_CTYPE
++copy "nb_NO"
++END LC_CTYPE
++
++LC_MONETARY
++copy "nb_NO"
++END LC_MONETARY
++
++LC_NUMERIC
++copy "nb_NO"
++END LC_NUMERIC
++
++LC_TIME
++copy "nb_NO"
++END LC_TIME
++
++LC_MESSAGES
++copy "nb_NO"
++END LC_MESSAGES
++
++LC_PAPER
++copy "nb_NO"
++END LC_PAPER
++
++LC_TELEPHONE
++copy "nb_NO"
++END LC_TELEPHONE
++
++LC_MEASUREMENT
++copy "nb_NO"
++END LC_MEASUREMENT
++
++LC_NAME
++copy "nb_NO"
++END LC_NAME
++
++LC_ADDRESS
++copy "nb_NO"
++END LC_ADDRESS
+--- glibc-2.12-2-gc4ccff1/localedata/locales/zh_TW
++++ glibc-2.12-1/localedata/locales/zh_TW
+@@ -1,7 +1,7 @@
+ comment_char %
+ escape_char /
+ %
+-% Chinese language locale for Taiwan R.O.C.
++% Chinese language locale for Taiwan
+ % charmap: BIG5-CP950
+ %
+ % Original Author:
+@@ -17,7 +17,7 @@ escape_char /
+ % Reference:  http://wwwold.dkuug.dk/JTC1/SC22/WG20/docs/n690.pdf
+ LC_IDENTIFICATION
+-title      "Chinese locale for Taiwan R.O.C."
++title      "Chinese locale for Taiwan"
+ source     ""
+ address    ""
+ contact    ""
+@@ -25,7 +25,7 @@ email      "bug-glibc-locales@gnu.org"
+ tel        ""
+ fax        ""
+ language   "Chinese"
+-territory  "Taiwan R.O.C."
++territory  "Taiwan"
+ revision   "0.2"
+ date       "2000-08-02"
+ %
+--- glibc-2.12-2-gc4ccff1/malloc/mcheck.c
++++ glibc-2.12-1/malloc/mcheck.c
+@@ -24,9 +24,25 @@
+ # include <mcheck.h>
+ # include <stdint.h>
+ # include <stdio.h>
++# include <stdlib.h>
+ # include <libintl.h>
+ #endif
++#ifdef _LIBC
++extern __typeof (malloc) __libc_malloc;
++extern __typeof (free) __libc_free;
++extern __typeof (realloc) __libc_realloc;
++libc_hidden_proto (__libc_malloc)
++libc_hidden_proto (__libc_realloc)
++libc_hidden_proto (__libc_free)
++libc_hidden_proto (__libc_memalign)
++#else
++# define __libc_malloc(sz) malloc (sz)
++# define __libc_free(ptr) free (ptr)
++# define __libc_realloc(ptr, sz) realloc (ptr, sz)
++# define __libc_memalign(al, sz) memalign (al, sz)
++#endif
++
+ /* Old hook values.  */
+ static void (*old_free_hook) (__ptr_t ptr, __const __ptr_t);
+ static __ptr_t (*old_malloc_hook) (__malloc_size_t size, const __ptr_t);
+@@ -197,7 +213,7 @@ freehook (__ptr_t ptr, const __ptr_t cal
+   if (old_free_hook != NULL)
+     (*old_free_hook) (ptr, caller);
+   else
+-    free (ptr);
++    __libc_free (ptr);
+   __free_hook = freehook;
+ }
+@@ -214,7 +230,7 @@ mallochook (__malloc_size_t size, const 
+     hdr = (struct hdr *) (*old_malloc_hook) (sizeof (struct hdr) + size + 1,
+                                            caller);
+   else
+-    hdr = (struct hdr *) malloc (sizeof (struct hdr) + size + 1);
++    hdr = (struct hdr *) __libc_malloc (sizeof (struct hdr) + size + 1);
+   __malloc_hook = mallochook;
+   if (hdr == NULL)
+     return NULL;
+@@ -245,7 +261,7 @@ memalignhook (__malloc_size_t alignment,
+   if (old_memalign_hook != NULL)
+     block = (*old_memalign_hook) (alignment, slop + size + 1, caller);
+   else
+-    block = memalign (alignment, slop + size + 1);
++    block = __libc_memalign (alignment, slop + size + 1);
+   __memalign_hook = memalignhook;
+   if (block == NULL)
+     return NULL;
+@@ -300,8 +316,8 @@ reallochook (__ptr_t ptr, __malloc_size_
+                                             sizeof (struct hdr) + size + 1,
+                                             caller);
+   else
+-    hdr = (struct hdr *) realloc ((__ptr_t) hdr,
+-                                sizeof (struct hdr) + size + 1);
++    hdr = (struct hdr *) __libc_realloc ((__ptr_t) hdr,
++                                       sizeof (struct hdr) + size + 1);
+   __free_hook = freehook;
+   __malloc_hook = mallochook;
+   __memalign_hook = memalignhook;
+@@ -361,8 +377,8 @@ mcheck (func)
+   if (__malloc_initialized <= 0 && !mcheck_used)
+     {
+       /* We call malloc() once here to ensure it is initialized.  */
+-      void *p = malloc (0);
+-      free (p);
++      void *p = __libc_malloc (0);
++      __libc_free (p);
+       old_free_hook = __free_hook;
+       __free_hook = freehook;
+--- glibc-2.12-2-gc4ccff1/manual/libc.texinfo
++++ glibc-2.12-1/manual/libc.texinfo
+@@ -5,7 +5,7 @@
+ @c setchapternewpage odd
+ @comment Tell install-info what to do.
+-@dircategory Software libraries
++@dircategory Libraries
+ @direntry
+ * Libc: (libc).                 C library.
+ @end direntry
+--- glibc-2.12-2-gc4ccff1/misc/sys/cdefs.h
++++ glibc-2.12-1/misc/sys/cdefs.h
+@@ -132,7 +132,10 @@
+ #define __bos(ptr) __builtin_object_size (ptr, __USE_FORTIFY_LEVEL > 1)
+ #define __bos0(ptr) __builtin_object_size (ptr, 0)
+-#if __GNUC_PREREQ (4,3)
++#if __GNUC_PREREQ (4,3) \
++    || (defined __GNUC_RH_RELEASE__ && __GNUC__ == 4 \
++      && __GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ == 2 \
++      && __GNUC_RH_RELEASE__ >= 31)
+ # define __warndecl(name, msg) \
+   extern void name (void) __attribute__((__warning__ (msg)))
+ # define __warnattr(msg) __attribute__((__warning__ (msg)))
+@@ -291,10 +294,16 @@
+ /* GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+    inline semantics, unless -fgnu89-inline is used.  */
+-#if !defined __cplusplus || __GNUC_PREREQ (4,3)
++#if !defined __cplusplus || __GNUC_PREREQ (4,3) \
++    || (defined __GNUC_RH_RELEASE__ && __GNUC__ == 4 \
++      && __GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ == 2 \
++      && __GNUC_RH_RELEASE__ >= 31)
+ # if defined __GNUC_STDC_INLINE__ || defined __cplusplus
+ #  define __extern_inline extern __inline __attribute__ ((__gnu_inline__))
+-#  if __GNUC_PREREQ (4,3)
++#  if __GNUC_PREREQ (4,3) \
++      || (defined __GNUC_RH_RELEASE__ && __GNUC__ == 4 \
++          && __GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ == 2 \
++          && __GNUC_RH_RELEASE__ >= 31)
+ #   define __extern_always_inline \
+   extern __always_inline __attribute__ ((__gnu_inline__, __artificial__))
+ #  else
+@@ -314,7 +323,10 @@
+ /* GCC 4.3 and above allow passing all anonymous arguments of an
+    __extern_always_inline function to some other vararg function.  */
+-#if __GNUC_PREREQ (4,3)
++#if __GNUC_PREREQ (4,3) \
++    || (defined __GNUC_RH_RELEASE__ && __GNUC__ == 4 \
++      && __GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ == 2 \
++      && __GNUC_RH_RELEASE__ >= 31)
+ # define __va_arg_pack() __builtin_va_arg_pack ()
+ # define __va_arg_pack_len() __builtin_va_arg_pack_len ()
+ #endif
+--- glibc-2.12-2-gc4ccff1/nis/nss
++++ glibc-2.12-1/nis/nss
+@@ -25,7 +25,7 @@
+ #  memory with every getXXent() call.  Otherwise each getXXent() call
+ #  might result into a network communication with the server to get
+ #  the next entry.
+-#SETENT_BATCH_READ=TRUE
++SETENT_BATCH_READ=TRUE
+ #
+ # ADJUNCT_AS_SHADOW
+ #  If set to TRUE, the passwd routines in the NIS NSS module will not
+--- glibc-2.12-2-gc4ccff1/nptl/ChangeLog
++++ glibc-2.12-1/nptl/ChangeLog
+@@ -3884,6 +3884,15 @@
+       Use __sigfillset.  Document that sigfillset does the right thing wrt
+       to SIGSETXID.
++2005-08-08  Jakub Jelinek  <jakub@redhat.com>
++
++      * tst-stackguard1.c (do_test): Likewise.
++
++2005-07-29  Jakub Jelinek  <jakub@redhat.com>
++
++      * tst-stackguard1.c (do_test): Don't fail if the poor man's
++      randomization doesn't work well enough.
++
+ 2005-07-11  Jakub Jelinek  <jakub@redhat.com>
+       [BZ #1102]
+@@ -4620,6 +4629,11 @@
+       Move definition inside libpthread, libc, librt check.  Provide
+       definition for rtld.
++2004-09-02  Jakub Jelinek  <jakub@redhat.com>
++
++      * pthread_cond_destroy.c (__pthread_cond_destroy): If there are
++      waiters, awake all waiters on the associated mutex.
++
+ 2004-09-02  Ulrich Drepper  <drepper@redhat.com>
+       * sysdeps/alpha/jmpbuf-unwind.h: Define __libc_unwind_longjmp.
+@@ -6694,6 +6708,11 @@
+       * Makefile [$(build-shared) = yes] (tests): Depend on $(test-modules).
++2003-07-22  Jakub Jelinek  <jakub@redhat.com>
++
++      * descr.h: Don't include lowlevellock.h, pthreaddef.h and dl-sysdep.h
++      if __need_struct_pthread_size, instead define lll_lock_t.
++
+ 2003-07-25  Jakub Jelinek  <jakub@redhat.com>
+       * tst-cancel17.c (do_test): Check if aio_cancel failed.
+--- glibc-2.12-2-gc4ccff1/nptl/Makefile
++++ glibc-2.12-1/nptl/Makefile
+@@ -341,7 +341,8 @@ endif
+ extra-objs += $(crti-objs) $(crtn-objs)
+ omit-deps += crti crtn
+-CFLAGS-pt-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time)
++CFLAGS-pt-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time) \
++                     -fno-asynchronous-unwind-tables
+ endif
+ CFLAGS-flockfile.c = -D_IO_MTSAFE_IO
+@@ -527,15 +528,19 @@ $(addprefix $(objpfx), \
+     $(tests) $(xtests) $(test-srcs))): $(objpfx)libpthread.so \
+                                      $(objpfx)libpthread_nonshared.a
+ $(objpfx)tst-unload: $(common-objpfx)dlfcn/libdl.so
+-# $(objpfx)../libc.so is used instead of $(common-objpfx)libc.so,
++# $(objpfx)linklibc.so is used instead of $(common-objpfx)libc.so,
+ # since otherwise libpthread.so comes before libc.so when linking.
+ $(addprefix $(objpfx), $(tests-reverse)): \
+-  $(objpfx)../libc.so $(objpfx)libpthread.so \
++  $(objpfx)linklibc.so $(objpfx)libpthread.so \
+   $(objpfx)libpthread_nonshared.a
+ $(objpfx)../libc.so: $(common-objpfx)libc.so ;
+ $(addprefix $(objpfx),$(tests-static) $(xtests-static)): $(objpfx)libpthread.a
+ $(objpfx)tst-atfork2.out: $(objpfx)tst-atfork2mod.so
++
++$(objpfx)linklibc.so: $(common-objpfx)libc.so
++      ln -s ../libc.so $@
++generated += libclink.so
+ else
+ $(addprefix $(objpfx),$(tests) $(test-srcs)): $(objpfx)libpthread.a
+ endif
+--- glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h
++++ glibc-2.12-1/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h
+@@ -189,4 +189,7 @@
+ /* Typed memory objects are not available.  */
+ #define _POSIX_TYPED_MEMORY_OBJECTS   -1
++/* Streams are not available.  */
++#define _XOPEN_STREAMS        -1
++
+ #endif /* bits/posix_opt.h */
+--- glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/kernel-features.h
++++ glibc-2.12-1/nptl/sysdeps/unix/sysv/linux/kernel-features.h
+@@ -0,0 +1,6 @@
++#include_next <kernel-features.h>
++
++/* NPTL can always assume all clone thread flags work.  */
++#ifndef __ASSUME_CLONE_THREAD_FLAGS
++# define __ASSUME_CLONE_THREAD_FLAGS  1
++#endif
+--- glibc-2.12-2-gc4ccff1/nptl/tst-stackguard1.c
++++ glibc-2.12-1/nptl/tst-stackguard1.c
+@@ -190,17 +190,21 @@ do_test (void)
+      the 16 runs, something is very wrong.  */
+   int ndifferences = 0;
+   int ndefaults = 0;
++  int npartlyrandomized = 0;
+   for (i = 0; i < N; ++i) 
+     {
+       if (child_stack_chk_guards[i] != child_stack_chk_guards[i+1])
+       ndifferences++;
+       else if (child_stack_chk_guards[i] == default_guard)
+       ndefaults++;
++      else if (*(char *) &child_stack_chk_guards[i] == 0)
++      npartlyrandomized++;
+     }
+-  printf ("differences %d defaults %d\n", ndifferences, ndefaults);
++  printf ("differences %d defaults %d partly randomized %d\n",
++        ndifferences, ndefaults, npartlyrandomized);
+-  if (ndifferences < N / 2 && ndefaults < N / 2)
++  if ((ndifferences + ndefaults + npartlyrandomized) < 3 * N / 4)
+     {
+       puts ("stack guard canaries are not randomized enough");
+       puts ("nor equal to the default canary value");
+--- glibc-2.12-2-gc4ccff1/nscd/nscd.conf
++++ glibc-2.12-1/nscd/nscd.conf
+@@ -33,7 +33,7 @@
+ #     logfile                 /var/log/nscd.log
+ #     threads                 4
+ #     max-threads             32
+-#     server-user             nobody
++      server-user             nscd
+ #     stat-user               somebody
+       debug-level             0
+ #     reload-count            5
+--- glibc-2.12-2-gc4ccff1/nscd/nscd.init
++++ glibc-2.12-1/nscd/nscd.init
+@@ -9,6 +9,7 @@
+ #             slow naming services like NIS, NIS+, LDAP, or hesiod.
+ # processname: /usr/sbin/nscd
+ # config: /etc/nscd.conf
++# config: /etc/sysconfig/nscd
+ #
+ ### BEGIN INIT INFO
+ # Provides: nscd
+@@ -28,20 +29,8 @@
+ # Source function library.
+ . /etc/init.d/functions
+-# nscd does not run on any kernel lower than 2.2.0 because of threading
+-# problems, so we require that in first place.
+-case $(uname -r) in
+-    2.[2-9].*)
+-      # this is okay
+-      ;;
+-    [3-9]*)
+-      # these are of course also okay
+-      ;;
+-    *)
+-      #this is not
+-      exit 1
+-      ;;
+-esac
++# Source an auxiliary options file if we have one, and pick up NSCD_OPTIONS.
++[ -r /etc/sysconfig/nscd ] && . /etc/sysconfig/nscd
+ RETVAL=0
+ prog=nscd
+@@ -50,7 +39,7 @@ start () {
+     [ -d /var/run/nscd ] || mkdir /var/run/nscd
+     [ -d /var/db/nscd ] || mkdir /var/db/nscd
+     echo -n $"Starting $prog: "
+-    daemon /usr/sbin/nscd
++    daemon /usr/sbin/nscd $NSCD_OPTIONS
+     RETVAL=$?
+     echo
+     [ $RETVAL -eq 0 ] && touch /var/lock/subsys/nscd
+@@ -83,7 +72,7 @@ restart() {
+ # See how we were called.
+ case "$1" in
+     start)
+-      start
++      [ -e /var/lock/subsys/nscd ] || start
+       RETVAL=$?
+       ;;
+     stop)
+@@ -99,14 +88,17 @@ case "$1" in
+       RETVAL=$?
+       ;;
+     try-restart | condrestart)
+-      [ -e /var/lock/subsys/nscd ] && restart
++      [ ! -e /var/lock/subsys/nscd ] || restart
+       RETVAL=$?
+       ;;
+     force-reload | reload)
+       echo -n $"Reloading $prog: "
+-      killproc /usr/sbin/nscd -HUP
+-      RETVAL=$?
+-      echo
++      RETVAL=0
++      /usr/sbin/nscd -i passwd || RETVAL=$?
++      /usr/sbin/nscd -i group || RETVAL=$?
++      /usr/sbin/nscd -i hosts || RETVAL=$?
++      /usr/sbin/nscd -i services || RETVAL=$?
++      echo
+       ;;
+     *)
+       echo $"Usage: $0 {start|stop|status|restart|reload|condrestart}"
+--- glibc-2.12-2-gc4ccff1/posix/Makefile
++++ glibc-2.12-1/posix/Makefile
+@@ -305,15 +305,8 @@ $(inst_libexecdir)/getconf: $(inst_bindi
+         mv -f $@/$$spec.new $@/$$spec; \
+       done < $(objpfx)getconf.speclist
+-$(objpfx)getconf.speclist: $(objpfx)getconf
+-ifeq (no,$(cross-compiling))
+-      LC_ALL=C GETCONF_DIR=/dev/null \
+-      $(run-program-prefix) $< _POSIX_V7_WIDTH_RESTRICTED_ENVS > $@.new
+-      LC_ALL=C GETCONF_DIR=/dev/null \
+-      $(run-program-prefix) $< _POSIX_V6_WIDTH_RESTRICTED_ENVS >> $@.new
+-      LC_ALL=C GETCONF_DIR=/dev/null \
+-      $(run-program-prefix) $< _XBS5_WIDTH_RESTRICTED_ENVS >> $@.new
+-else
+-      > $@.new
+-endif
++$(objpfx)getconf.speclist: getconf.speclist.h
++      $(CC) -E $(CFLAGS) $(CPPFLAGS) $< \
++        | sed -n -e '/START_OF_STRINGS/,$${/\(POSIX_V[67]\|_XBS5\)_/{s/^[^"]*"//;s/".*$$//;p}}' \
++        > $@.new
+       mv -f $@.new $@
+--- glibc-2.12-2-gc4ccff1/posix/gai.conf
++++ glibc-2.12-1/posix/gai.conf
+@@ -41,7 +41,7 @@
+ #
+ # precedence  <mask>   <value>
+ #    Add another rule to the RFC 3484 precedence table.  See section 2.1
+-#    and 10.3 in RFC 3484.  The default is:
++#    and 10.3 in RFC 3484.  The RFC requires:
+ #
+ #precedence  ::1/128       50
+ #precedence  ::/0          40
+@@ -58,7 +58,7 @@
+ #    Add another rule to the RFC 3484 scope table for IPv4 addresses.
+ #    By default the scope IDs described in section 3.2 in RFC 3484 are
+ #    used.  Changing these defaults should hardly ever be necessary.
+-#    The defaults are equivalent to:
++#    The definitions in RFC 1918 are equivalent to:
+ #
+ #scopev4 ::ffff:169.254.0.0/112  2
+ #scopev4 ::ffff:127.0.0.0/104    2
+@@ -75,3 +75,5 @@
+ #scopev4 ::ffff:169.254.0.0/112  2
+ #scopev4 ::ffff:127.0.0.0/104    2
+ #scopev4 ::ffff:0.0.0.0/96       14
++#
++#    This is what the Red Hat setting currently uses.
+--- glibc-2.12-2-gc4ccff1/posix/getconf.speclist.h
++++ glibc-2.12-1/posix/getconf.speclist.h
+@@ -0,0 +1,39 @@
++#include <unistd.h>
++const char *START_OF_STRINGS =
++#if _POSIX_V7_ILP32_OFF32 == 1
++"POSIX_V7_ILP32_OFF32"
++#endif
++#if _POSIX_V7_ILP32_OFFBIG == 1
++"POSIX_V7_ILP32_OFFBIG"
++#endif
++#if _POSIX_V7_LP64_OFF64 == 1
++"POSIX_V7_LP64_OFF64"
++#endif
++#if _POSIX_V7_LPBIG_OFFBIG == 1
++"POSIX_V7_LPBIG_OFFBIG"
++#endif
++#if _POSIX_V6_ILP32_OFF32 == 1
++"POSIX_V6_ILP32_OFF32"
++#endif
++#if _POSIX_V6_ILP32_OFFBIG == 1
++"POSIX_V6_ILP32_OFFBIG"
++#endif
++#if _POSIX_V6_LP64_OFF64 == 1
++"POSIX_V6_LP64_OFF64"
++#endif
++#if _POSIX_V6_LPBIG_OFFBIG == 1
++"POSIX_V6_LPBIG_OFFBIG"
++#endif
++#if _XBS5_ILP32_OFF32 == 1
++"XBS5_ILP32_OFF32"
++#endif
++#if _XBS5_ILP32_OFFBIG == 1
++"XBS5_ILP32_OFFBIG"
++#endif
++#if _XBS5_LP64_OFF64 == 1
++"XBS5_LP64_OFF64"
++#endif
++#if _XBS5_LPBIG_OFFBIG == 1
++"XBS5_LPBIG_OFFBIG"
++#endif
++"";
+--- glibc-2.12-2-gc4ccff1/streams/Makefile
++++ glibc-2.12-1/streams/Makefile
+@@ -21,7 +21,7 @@
+ #
+ subdir        := streams
+-headers               = stropts.h sys/stropts.h bits/stropts.h bits/xtitypes.h
++#headers              = stropts.h sys/stropts.h bits/stropts.h bits/xtitypes.h
+ routines      = isastream getmsg getpmsg putmsg putpmsg fattach fdetach
+ include ../Rules
+--- glibc-2.12-2-gc4ccff1/sysdeps/generic/dl-cache.h
++++ glibc-2.12-1/sysdeps/generic/dl-cache.h
+@@ -36,6 +36,14 @@
+ # define add_system_dir(dir) add_dir (dir)
+ #endif
++#ifndef arch_startup
++# define arch_startup(argc, argv) do { } while (0)
++#endif
++
++#ifndef add_arch_dirs
++# define add_arch_dirs(config_file) do { } while (0)
++#endif
++
+ #define CACHEMAGIC "ld.so-1.7.0"
+ /* libc5 and glibc 2.0/2.1 use the same format.  For glibc 2.2 another
+--- glibc-2.12-2-gc4ccff1/sysdeps/i386/Makefile
++++ glibc-2.12-1/sysdeps/i386/Makefile
+@@ -2,6 +2,8 @@
+ # Every i386 port in use uses gas syntax (I think).
+ asm-CPPFLAGS += -DGAS_SYNTAX
++sysdep-ASFLAGS += -U__i686
++
+ # The i386 `long double' is a distinct type we support.
+ long-double-fcts = yes
+@@ -64,6 +66,14 @@ endif
+ ifneq (,$(filter -mno-tls-direct-seg-refs,$(CFLAGS)))
+ defines += -DNO_TLS_DIRECT_SEG_REFS
++else
++# .a libraries are not performance critical and so we
++# build them without direct TLS segment references
++# always.
++CPPFLAGS-.o += -DNO_TLS_DIRECT_SEG_REFS
++CFLAGS-.o += -mno-tls-direct-seg-refs
++CPPFLAGS-.oS += -DNO_TLS_DIRECT_SEG_REFS
++CFLAGS-.oS += -mno-tls-direct-seg-refs
+ endif
+ ifeq ($(subdir),elf)
+--- glibc-2.12-2-gc4ccff1/sysdeps/ia64/Makefile
++++ glibc-2.12-1/sysdeps/ia64/Makefile
+@@ -12,8 +12,8 @@ elide-routines.os += hp-timing
+ ifeq (yes,$(build-shared))
+ # Compatibility
+-sysdep_routines += ia64libgcc
+-shared-only-routines += ia64libgcc
++sysdep_routines += libgcc-compat
++shared-only-routines += libgcc-compat
+ endif
+ endif
+--- glibc-2.12-2-gc4ccff1/sysdeps/ia64/ia64libgcc.S
++++ glibc-2.12-1/sysdeps/ia64/ia64libgcc.S
+@@ -1,350 +0,0 @@
+-/* From the Intel IA-64 Optimization Guide, choose the minimum latency
+-   alternative.  */
+-
+-#include <sysdep.h>
+-#undef ret
+-
+-#include <shlib-compat.h>
+-
+-#if SHLIB_COMPAT(libc, GLIBC_2_2, GLIBC_2_2_6)
+-
+-/* __divtf3
+-   Compute a 80-bit IEEE double-extended quotient.
+-   farg0 holds the dividend.  farg1 holds the divisor.  */
+-
+-ENTRY(___divtf3)
+-      cmp.eq p7, p0 = r0, r0
+-      frcpa.s0 f10, p6 = farg0, farg1
+-      ;;
+-(p6)  cmp.ne p7, p0 = r0, r0
+-      .pred.rel.mutex p6, p7
+-(p6)  fnma.s1 f11 = farg1, f10, f1
+-(p6)  fma.s1 f12 = farg0, f10, f0
+-      ;;
+-(p6)  fma.s1 f13 = f11, f11, f0
+-(p6)  fma.s1 f14 = f11, f11, f11
+-      ;;
+-(p6)  fma.s1 f11 = f13, f13, f11
+-(p6)  fma.s1 f13 = f14, f10, f10
+-      ;;
+-(p6)  fma.s1 f10 = f13, f11, f10
+-(p6)  fnma.s1 f11 = farg1, f12, farg0
+-      ;;
+-(p6)  fma.s1 f11 = f11, f10, f12
+-(p6)  fnma.s1 f12 = farg1, f10, f1
+-      ;;
+-(p6)  fma.s1 f10 = f12, f10, f10
+-(p6)  fnma.s1 f12 = farg1, f11, farg0
+-      ;;
+-(p6)  fma.s0 fret0 = f12, f10, f11
+-(p7)  mov fret0 = f10
+-      br.ret.sptk rp
+-END(___divtf3)
+-      .symver ___divtf3, __divtf3@GLIBC_2.2
+-
+-/* __divdf3
+-   Compute a 64-bit IEEE double quotient.
+-   farg0 holds the dividend.  farg1 holds the divisor.  */
+-
+-ENTRY(___divdf3)
+-      cmp.eq p7, p0 = r0, r0
+-      frcpa.s0 f10, p6 = farg0, farg1
+-      ;;
+-(p6)  cmp.ne p7, p0 = r0, r0
+-      .pred.rel.mutex p6, p7
+-(p6)  fmpy.s1 f11 = farg0, f10
+-(p6)  fnma.s1 f12 = farg1, f10, f1
+-      ;;
+-(p6)  fma.s1 f11 = f12, f11, f11
+-(p6)  fmpy.s1 f13 = f12, f12
+-      ;;
+-(p6)  fma.s1 f10 = f12, f10, f10
+-(p6)  fma.s1 f11 = f13, f11, f11
+-      ;;
+-(p6)  fmpy.s1 f12 = f13, f13
+-(p6)  fma.s1 f10 = f13, f10, f10
+-      ;;
+-(p6)  fma.d.s1 f11 = f12, f11, f11
+-(p6)  fma.s1 f10 = f12, f10, f10
+-      ;;
+-(p6)  fnma.d.s1 f8 = farg1, f11, farg0
+-      ;;
+-(p6)  fma.d fret0 = f8, f10, f11
+-(p7)  mov fret0 = f10
+-      br.ret.sptk rp
+-      ;;
+-END(___divdf3)
+-      .symver ___divdf3, __divdf3@GLIBC_2.2
+-
+-/* __divsf3
+-   Compute a 32-bit IEEE float quotient.
+-   farg0 holds the dividend.  farg1 holds the divisor.  */
+-
+-ENTRY(___divsf3)
+-      cmp.eq p7, p0 = r0, r0
+-      frcpa.s0 f10, p6 = farg0, farg1
+-      ;;
+-(p6)  cmp.ne p7, p0 = r0, r0
+-      .pred.rel.mutex p6, p7
+-(p6)  fmpy.s1 f8 = farg0, f10
+-(p6)  fnma.s1 f9 = farg1, f10, f1
+-      ;;
+-(p6)  fma.s1 f8 = f9, f8, f8
+-(p6)  fmpy.s1 f9 = f9, f9
+-      ;;
+-(p6)  fma.s1 f8 = f9, f8, f8
+-(p6)  fmpy.s1 f9 = f9, f9
+-      ;;
+-(p6)  fma.d.s1 f10 = f9, f8, f8
+-      ;;
+-(p6)  fnorm.s.s0 fret0 = f10
+-(p7)  mov fret0 = f10
+-      br.ret.sptk rp
+-      ;;
+-END(___divsf3)
+-      .symver ___divsf3, __divsf3@GLIBC_2.2
+-
+-/* __divdi3
+-   Compute a 64-bit integer quotient.
+-   in0 holds the dividend.  in1 holds the divisor.  */
+-
+-ENTRY(___divdi3)
+-      .regstk 2,0,0,0
+-      /* Transfer inputs to FP registers.  */
+-      setf.sig f8 = in0
+-      setf.sig f9 = in1
+-      ;;
+-      /* Convert the inputs to FP, so that they won't be treated as
+-         unsigned.  */
+-      fcvt.xf f8 = f8
+-      fcvt.xf f9 = f9
+-      ;;
+-      /* Compute the reciprocal approximation.  */
+-      frcpa.s1 f10, p6 = f8, f9
+-      ;;
+-      /* 3 Newton-Raphson iterations.  */
+-(p6)  fnma.s1 f11 = f9, f10, f1
+-(p6)  fmpy.s1 f12 = f8, f10
+-      ;;
+-(p6)  fmpy.s1 f13 = f11, f11
+-(p6)  fma.s1 f12 = f11, f12, f12
+-      ;;
+-(p6)  fma.s1 f10 = f11, f10, f10
+-(p6)  fma.s1 f11 = f13, f12, f12
+-      ;;
+-(p6)  fma.s1 f10 = f13, f10, f10
+-(p6)  fnma.s1 f12 = f9, f11, f8
+-      ;;
+-(p6)  fma.s1 f10 = f12, f10, f11
+-      ;;
+-      /* Round quotient to an integer.  */
+-      fcvt.fx.trunc.s1 f10 = f10
+-      ;;
+-      /* Transfer result to GP registers.  */
+-      getf.sig ret0 = f10
+-      br.ret.sptk rp
+-      ;;
+-END(___divdi3)
+-      .symver ___divdi3, __divdi3@GLIBC_2.2
+-
+-/* __moddi3
+-   Compute a 64-bit integer modulus.
+-   in0 holds the dividend (a).  in1 holds the divisor (b).  */
+-
+-ENTRY(___moddi3)
+-      .regstk 2,0,0,0
+-      /* Transfer inputs to FP registers.  */
+-      setf.sig f14 = in0
+-      setf.sig f9 = in1
+-      ;;
+-      /* Convert the inputs to FP, so that they won't be treated as
+-         unsigned.  */
+-      fcvt.xf f8 = f14
+-      fcvt.xf f9 = f9
+-      ;;
+-      /* Compute the reciprocal approximation.  */
+-      frcpa.s1 f10, p6 = f8, f9
+-      ;;
+-      /* 3 Newton-Raphson iterations.  */
+-(p6)  fmpy.s1 f12 = f8, f10
+-(p6)  fnma.s1 f11 = f9, f10, f1
+-      ;;
+-(p6)  fma.s1 f12 = f11, f12, f12
+-(p6)  fmpy.s1 f13 = f11, f11
+-      ;;
+-(p6)  fma.s1 f10 = f11, f10, f10
+-(p6)  fma.s1 f11 = f13, f12, f12
+-      ;;
+-      sub in1 = r0, in1
+-(p6)  fma.s1 f10 = f13, f10, f10
+-(p6)  fnma.s1 f12 = f9, f11, f8
+-      ;;
+-      setf.sig f9 = in1
+-(p6)  fma.s1 f10 = f12, f10, f11
+-      ;;
+-      fcvt.fx.trunc.s1 f10 = f10
+-      ;;
+-      /* r = q * (-b) + a  */
+-      xma.l f10 = f10, f9, f14
+-      ;;
+-      /* Transfer result to GP registers.  */
+-      getf.sig ret0 = f10
+-      br.ret.sptk rp
+-      ;;
+-END(___moddi3)
+-      .symver ___moddi3, __moddi3@GLIBC_2.2
+-
+-/* __udivdi3
+-   Compute a 64-bit unsigned integer quotient.
+-   in0 holds the dividend.  in1 holds the divisor.  */
+-
+-ENTRY(___udivdi3)
+-      .regstk 2,0,0,0
+-      /* Transfer inputs to FP registers.  */
+-      setf.sig f8 = in0
+-      setf.sig f9 = in1
+-      ;;
+-      /* Convert the inputs to FP, to avoid FP software-assist faults.  */
+-      fcvt.xuf.s1 f8 = f8
+-      fcvt.xuf.s1 f9 = f9
+-      ;;
+-      /* Compute the reciprocal approximation.  */
+-      frcpa.s1 f10, p6 = f8, f9
+-      ;;
+-      /* 3 Newton-Raphson iterations.  */
+-(p6)  fnma.s1 f11 = f9, f10, f1
+-(p6)  fmpy.s1 f12 = f8, f10
+-      ;;
+-(p6)  fmpy.s1 f13 = f11, f11
+-(p6)  fma.s1 f12 = f11, f12, f12
+-      ;;
+-(p6)  fma.s1 f10 = f11, f10, f10
+-(p6)  fma.s1 f11 = f13, f12, f12
+-      ;;
+-(p6)  fma.s1 f10 = f13, f10, f10
+-(p6)  fnma.s1 f12 = f9, f11, f8
+-      ;;
+-(p6)  fma.s1 f10 = f12, f10, f11
+-      ;;
+-      /* Round quotient to an unsigned integer.  */
+-      fcvt.fxu.trunc.s1 f10 = f10
+-      ;;
+-      /* Transfer result to GP registers.  */
+-      getf.sig ret0 = f10
+-      br.ret.sptk rp
+-      ;;
+-END(___udivdi3)
+-      .symver ___udivdi3, __udivdi3@GLIBC_2.2
+-
+-/* __umoddi3
+-   Compute a 64-bit unsigned integer modulus.
+-   in0 holds the dividend (a).  in1 holds the divisor (b).  */
+-
+-ENTRY(___umoddi3)
+-      .regstk 2,0,0,0
+-      /* Transfer inputs to FP registers.  */
+-      setf.sig f14 = in0
+-      setf.sig f9 = in1
+-      ;;
+-      /* Convert the inputs to FP, to avoid FP software assist faults.  */
+-      fcvt.xuf.s1 f8 = f14
+-      fcvt.xuf.s1 f9 = f9
+-      ;;
+-      /* Compute the reciprocal approximation.  */
+-      frcpa.s1 f10, p6 = f8, f9
+-      ;;
+-      /* 3 Newton-Raphson iterations.  */
+-(p6)  fmpy.s1 f12 = f8, f10
+-(p6)  fnma.s1 f11 = f9, f10, f1
+-      ;;
+-(p6)  fma.s1 f12 = f11, f12, f12
+-(p6)  fmpy.s1 f13 = f11, f11
+-      ;;
+-(p6)  fma.s1 f10 = f11, f10, f10
+-(p6)  fma.s1 f11 = f13, f12, f12
+-      ;;
+-      sub in1 = r0, in1
+-(p6)  fma.s1 f10 = f13, f10, f10
+-(p6)  fnma.s1 f12 = f9, f11, f8
+-      ;;
+-      setf.sig f9 = in1
+-(p6)  fma.s1 f10 = f12, f10, f11
+-      ;;
+-      /* Round quotient to an unsigned integer.  */
+-      fcvt.fxu.trunc.s1 f10 = f10
+-      ;;
+-      /* r = q * (-b) + a  */
+-      xma.l f10 = f10, f9, f14
+-      ;;
+-      /* Transfer result to GP registers.  */
+-      getf.sig ret0 = f10
+-      br.ret.sptk rp
+-      ;;
+-END(___umoddi3)
+-      .symver ___umoddi3, __umoddi3@GLIBC_2.2
+-
+-/* __multi3
+-   Compute a 128-bit multiply of 128-bit multiplicands.
+-   in0/in1 holds one multiplicand (a), in2/in3 holds the other one (b).  */
+-
+-ENTRY(___multi3)
+-      .regstk 4,0,0,0
+-      setf.sig f6 = in1
+-      movl r19 = 0xffffffff
+-      setf.sig f7 = in2
+-      ;;
+-      and r14 = r19, in0
+-      ;;
+-      setf.sig f10 = r14
+-      and r14 = r19, in2
+-      xmpy.l f9 = f6, f7
+-      ;;
+-      setf.sig f6 = r14
+-      shr.u r14 = in0, 32
+-      ;;
+-      setf.sig f7 = r14
+-      shr.u r14 = in2, 32
+-      ;;
+-      setf.sig f8 = r14
+-      xmpy.l f11 = f10, f6
+-      xmpy.l f6 = f7, f6
+-      ;;
+-      getf.sig r16 = f11
+-      xmpy.l f7 = f7, f8
+-      ;;
+-      shr.u r14 = r16, 32
+-      and r16 = r19, r16
+-      getf.sig r17 = f6
+-      setf.sig f6 = in0
+-      ;;
+-      setf.sig f11 = r14
+-      getf.sig r21 = f7
+-      setf.sig f7 = in3
+-      ;;
+-      xma.l f11 = f10, f8, f11
+-      xma.l f6 = f6, f7, f9
+-      ;;
+-      getf.sig r18 = f11
+-      ;;
+-      add r18 = r18, r17
+-      ;;
+-      and r15 = r19, r18
+-      cmp.ltu p7, p6 = r18, r17
+-      ;;
+-      getf.sig r22 = f6
+-(p7)  adds r14 = 1, r19
+-      ;;
+-(p7)  add r21 = r21, r14
+-      shr.u r14 = r18, 32
+-      shl r15 = r15, 32
+-      ;;
+-      add r20 = r21, r14
+-      ;;
+-      add ret0 = r15, r16
+-      add ret1 = r22, r20
+-      br.ret.sptk rp
+-      ;;
+-END(___multi3)
+-      .symver ___multi3, __multi3@GLIBC_2.2
+-
+-#endif
+--- glibc-2.12-2-gc4ccff1/sysdeps/ia64/libgcc-compat.c
++++ glibc-2.12-1/sysdeps/ia64/libgcc-compat.c
+@@ -0,0 +1,84 @@
++/* pre-.hidden libgcc compatibility
++   Copyright (C) 2002 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++
++#include <stdint.h>
++#include <shlib-compat.h>
++
++#if SHLIB_COMPAT(libc, GLIBC_2_2, GLIBC_2_2_6)
++
++typedef int int128_t __attribute__((__mode__(TI)));
++
++extern long double __divtf3 (long double, long double) attribute_hidden;
++long double INTUSE (__divtf3) (long double x, long double y)
++{
++  return __divtf3 (x, y);
++}
++symbol_version (INTUSE (__divtf3), __divtf3, GLIBC_2.2);
++
++extern double __divdf3 (double, double) attribute_hidden;
++double INTUSE (__divdf3) (double x, double y)
++{
++  return __divdf3 (x, y);
++}
++symbol_version (INTUSE (__divdf3), __divdf3, GLIBC_2.2);
++
++extern float __divsf3 (float, float) attribute_hidden;
++float INTUSE (__divsf3) (float x, float y)
++{
++  return __divsf3 (x, y);
++}
++symbol_version (INTUSE (__divsf3), __divsf3, GLIBC_2.2);
++
++extern int64_t __divdi3 (int64_t, int64_t) attribute_hidden;
++int64_t INTUSE (__divdi3) (int64_t x, int64_t y)
++{
++  return __divdi3 (x, y);
++}
++symbol_version (INTUSE (__divdi3), __divdi3, GLIBC_2.2);
++
++extern int64_t __moddi3 (int64_t, int64_t) attribute_hidden;
++int64_t INTUSE (__moddi3) (int64_t x, int64_t y)
++{
++  return __moddi3 (x, y);
++}
++symbol_version (INTUSE (__moddi3), __moddi3, GLIBC_2.2);
++
++extern uint64_t __udivdi3 (uint64_t, uint64_t) attribute_hidden;
++uint64_t INTUSE (__udivdi3) (uint64_t x, uint64_t y)
++{
++  return __udivdi3 (x, y);
++}
++symbol_version (INTUSE (__udivdi3), __udivdi3, GLIBC_2.2);
++
++extern uint64_t __umoddi3 (uint64_t, uint64_t) attribute_hidden;
++uint64_t INTUSE (__umoddi3) (uint64_t x, uint64_t y)
++{
++  return __umoddi3 (x, y);
++}
++symbol_version (INTUSE (__umoddi3), __umoddi3, GLIBC_2.2);
++
++extern int128_t __multi3 (int128_t, int128_t) attribute_hidden;
++int128_t INTUSE (__multi3) (int128_t x, int128_t y)
++{
++  return __multi3 (x, y);
++}
++symbol_version (INTUSE (__multi3), __multi3, GLIBC_2.2);
++
++#endif
+--- glibc-2.12-2-gc4ccff1/sysdeps/posix/getaddrinfo.c
++++ glibc-2.12-1/sysdeps/posix/getaddrinfo.c
+@@ -1099,10 +1099,12 @@ static const struct scopeentry
+     /* Link-local addresses: scope 2.  */
+     { { { 169, 254, 0, 0 } }, htonl_c (0xffff0000), 2 },
+     { { { 127, 0, 0, 0 } }, htonl_c (0xff000000), 2 },
++#if 0
+     /* Site-local addresses: scope 5.  */
+     { { { 10, 0, 0, 0 } }, htonl_c (0xff000000), 5 },
+     { { { 172, 16, 0, 0 } }, htonl_c (0xfff00000), 5 },
+     { { { 192, 168, 0, 0 } }, htonl_c (0xffff0000), 5 },
++#endif
+     /* Default: scope 14.  */
+     { { { 0, 0, 0, 0 } }, htonl_c (0x00000000), 14 }
+   };
+--- glibc-2.12-2-gc4ccff1/sysdeps/powerpc/powerpc64/Makefile
++++ glibc-2.12-1/sysdeps/powerpc/powerpc64/Makefile
+@@ -30,6 +30,7 @@ ifneq ($(elf),no)
+ # we use -fpic instead which is much better.
+ CFLAGS-initfini.s += -fpic -O1
+ endif
++CFLAGS-libc-start.c += -fno-asynchronous-unwind-tables
+ endif
+ ifeq ($(subdir),elf)
+--- glibc-2.12-2-gc4ccff1/sysdeps/unix/nice.c
++++ glibc-2.12-1/sysdeps/unix/nice.c
+@@ -42,7 +42,12 @@ nice (int incr)
+       __set_errno (save);
+     }
+-  result = setpriority (PRIO_PROCESS, 0, prio + incr);
++  prio += incr;
++  if (prio < PRIO_MIN)
++    prio = PRIO_MIN;
++  else if (prio >= PRIO_MAX)
++    prio = PRIO_MAX - 1;
++  result = setpriority (PRIO_PROCESS, 0, prio);
+   if (result == -1)
+     {
+       if (errno == EACCES)
+--- glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/check_pf.c
++++ glibc-2.12-1/sysdeps/unix/sysv/linux/check_pf.c
+@@ -27,13 +27,10 @@
+ #include <unistd.h>
+ #include <sys/socket.h>
+-#include <asm/types.h>
+-#include <linux/netlink.h>
+-#include <linux/rtnetlink.h>
+-
+ #include <not-cancel.h>
+ #include <kernel-features.h>
++#include "netlinkaccess.h"
+ #ifndef IFA_F_HOMEADDRESS
+ # define IFA_F_HOMEADDRESS 0
+--- glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/dl-osinfo.h
++++ glibc-2.12-1/sysdeps/unix/sysv/linux/dl-osinfo.h
+@@ -17,10 +17,13 @@
+    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+    02111-1307 USA.  */
++#include <errno.h>
+ #include <kernel-features.h>
+ #include <dl-sysdep.h>
+ #include <fcntl.h>
+ #include <stdint.h>
++#include <hp-timing.h>
++#include <endian.h>
+ #ifndef MIN
+ # define MIN(a,b) (((a)<(b))?(a):(b))
+@@ -80,6 +83,32 @@ _dl_setup_stack_chk_guard (void *dl_rand
+       unsigned char *p = (unsigned char *) &ret;
+       p[sizeof (ret) - 1] = 255;
+       p[sizeof (ret) - 2] = '\n';
++#ifdef HP_TIMING_NOW
++      hp_timing_t hpt;
++      HP_TIMING_NOW (hpt);
++      hpt = (hpt & 0xffff) << 8;
++      ret ^= hpt;
++#endif
++      uintptr_t stk;
++      /* Avoid GCC being too smart.  */
++      asm ("" : "=r" (stk) : "r" (p));
++      stk &= 0x7ffff0;
++#if __BYTE_ORDER == __LITTLE_ENDIAN
++      stk <<= (__WORDSIZE - 23);
++#elif __WORDSIZE == 64
++      stk <<= 31;
++#endif
++      ret ^= stk;
++      /* Avoid GCC being too smart.  */
++      p = (unsigned char *) &errno;
++      asm ("" : "=r" (stk) : "r" (p));
++      stk &= 0x7fff00;
++#if __BYTE_ORDER == __LITTLE_ENDIAN
++      stk <<= (__WORDSIZE - 29);
++#else
++      stk >>= 8;
++#endif
++      ret ^= stk;
+     }
+   else
+ #endif
+--- glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/futimesat.c
++++ glibc-2.12-1/sysdeps/unix/sysv/linux/futimesat.c
+@@ -37,14 +37,14 @@ futimesat (fd, file, tvp)
+ {
+   int result;
++  if (file == NULL)
++    return __futimes (fd, tvp);
++
+ #ifdef __NR_futimesat
+ # ifndef __ASSUME_ATFCTS
+   if (__have_atfcts >= 0)
+ # endif
+     {
+-      if (file == NULL)
+-      return __futimes (fd, tvp);
+-
+       result = INLINE_SYSCALL (futimesat, 3, fd, file, tvp);
+ # ifndef __ASSUME_ATFCTS
+       if (result == -1 && errno == ENOSYS)
+@@ -58,22 +58,7 @@ futimesat (fd, file, tvp)
+ #ifndef __ASSUME_ATFCTS
+   char *buf = NULL;
+-  if (file == NULL)
+-    {
+-      static const char procfd[] = "/proc/self/fd/%d";
+-      /* Buffer for the path name we are going to use.  It consists of
+-       - the string /proc/self/fd/
+-       - the file descriptor number.
+-       The final NUL is included in the sizeof.   A bit of overhead
+-       due to the format elements compensates for possible negative
+-       numbers.  */
+-      size_t buflen = sizeof (procfd) + sizeof (int) * 3;
+-      buf = alloca (buflen);
+-
+-      __snprintf (buf, buflen, procfd, fd);
+-      file = buf;
+-    }
+-  else if (fd != AT_FDCWD && file[0] != '/')
++  if (fd != AT_FDCWD && file[0] != '/')
+     {
+       size_t filelen = strlen (file);
+       if (__builtin_expect (filelen == 0, 0))
+--- glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/i386/dl-cache.h
++++ glibc-2.12-1/sysdeps/unix/sysv/linux/i386/dl-cache.h
+@@ -0,0 +1,59 @@
++/* Support for reading /etc/ld.so.cache files written by Linux ldconfig.
++   Copyright (C) 2004 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++static inline int
++is_ia64 (void)
++{
++  unsigned int fl1, fl2;
++
++  /* See if we can use cpuid.  */
++  __asm__ ("pushfl; pushfl; popl %0; movl %0,%1; xorl %2,%0;"
++           "pushl %0; popfl; pushfl; popl %0; popfl"
++           : "=&r" (fl1), "=&r" (fl2)
++           : "i" (0x00200000));
++  if (((fl1 ^ fl2) & 0x00200000) == 0)
++    return 0;
++
++  /* Host supports cpuid.  See if cpuid gives capabilities, try
++     CPUID(0).  Preserve %ebx and %ecx; cpuid insn clobbers these, we
++     don't need their CPUID values here, and %ebx may be the PIC
++     register.  */
++  __asm__ ("pushl %%ecx; pushl %%ebx; cpuid; popl %%ebx; popl %%ecx"
++           : "=a" (fl1) : "0" (0) : "edx", "cc");
++  if (fl1 == 0)
++    return 0;
++
++  /* Invoke CPUID(1), return %edx; caller can examine bits to
++     determine what's supported.  */
++  __asm__ ("pushl %%ecx; pushl %%ebx; cpuid; popl %%ebx; popl %%ecx"
++           : "=d" (fl2), "=a" (fl1) : "1" (1) : "cc");
++  return (fl2 & (1 << 30)) != 0;
++}
++
++#define arch_startup(argc, argv) \
++  do {                                                                        \
++    /* On IA-64, try to execute 64-bit ldconfig if possible.          \
++       This is because the badly designed /emul/ia32-linux hack               \
++       will cause 32-bit ldconfig to do all sorts of weird things.  */        \
++    if (is_ia64 ())                                                   \
++      execv ("/emul/ia32-linux/../../sbin/ldconfig",                  \
++           (char *const *) argv);                                     \
++  } while (0)
++
++#include_next <dl-cache.h>
+--- glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/ia64/dl-cache.h
++++ glibc-2.12-1/sysdeps/unix/sysv/linux/ia64/dl-cache.h
+@@ -22,4 +22,31 @@
+ #define _dl_cache_check_flags(flags) \
+   ((flags) == _DL_CACHE_DEFAULT_ID)
++#define EMUL_HACK "/emul/ia32-linux"
++
++#define arch_startup(argc, argv) unlink (EMUL_HACK LD_SO_CACHE)
++
++#define add_arch_dirs(config_file) \
++  do {                                                        \
++    int save_verbose = opt_verbose;                   \
++    opt_verbose = 0;                                  \
++                                                      \
++    parse_conf (config_file, EMUL_HACK, true);                \
++                                                      \
++    /* Always add the standard search paths.  */      \
++    add_system_dir (EMUL_HACK SLIBDIR);                       \
++    if (strcmp (SLIBDIR, LIBDIR))                     \
++      add_system_dir (EMUL_HACK LIBDIR);              \
++                                                      \
++    char emul_config_file[strlen (config_file)                \
++                        + sizeof EMUL_HACK];          \
++    strcpy (mempcpy (emul_config_file, EMUL_HACK,     \
++                   strlen (EMUL_HACK)), config_file); \
++                                                      \
++    if (! access (emul_config_file, R_OK))            \
++      parse_conf (emul_config_file, EMUL_HACK, true); \
++                                                      \
++    opt_verbose = save_verbose;                               \
++  } while (0)
++
+ #include_next <dl-cache.h>
+--- glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/ia64/dl-procinfo.c
++++ glibc-2.12-1/sysdeps/unix/sysv/linux/ia64/dl-procinfo.c
+@@ -0,0 +1,5 @@
++#ifdef IS_IN_ldconfig
++#include <sysdeps/i386/dl-procinfo.c>
++#else
++#include <sysdeps/generic/dl-procinfo.c>
++#endif
+--- glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/ia64/dl-procinfo.h
++++ glibc-2.12-1/sysdeps/unix/sysv/linux/ia64/dl-procinfo.h
+@@ -0,0 +1,5 @@
++#ifdef IS_IN_ldconfig
++#include <sysdeps/unix/sysv/linux/i386/dl-procinfo.h>
++#else
++#include <sysdeps/generic/dl-procinfo.h>
++#endif
+--- glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed
++++ glibc-2.12-1/sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed
+@@ -1 +1 @@
+-s_^\(RTLDLIST=\)\([^  ]*\)-ia64\(\.so\.[0-9.]*\)[     ]*$_\1"\2-ia64\3 \2\3"_
++s_^\(RTLDLIST=\)\([^  ]*\)-ia64\(\.so\.[0-9.]*\)[     ]*$_\1"\2-ia64\3 /emul/ia32-linux\2\3"_
+--- glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/netlinkaccess.h
++++ glibc-2.12-1/sysdeps/unix/sysv/linux/netlinkaccess.h
+@@ -25,6 +25,24 @@
+ #include <kernel-features.h>
++#ifndef IFA_MAX
++/* 2.6.19 kernel headers helpfully removed some macros and
++   moved lots of stuff into new headers, some of which aren't
++   included by linux/rtnetlink.h.  */
++#include <linux/if_addr.h>
++#endif
++
++#ifndef IFA_RTA
++# define IFA_RTA(r) \
++  ((struct rtattr*) ((char*)(r) + NLMSG_ALIGN (sizeof (struct ifaddrmsg))))
++# define IFA_PAYLOAD(n) NLMSG_PAYLOAD (n, sizeof (struct ifaddrmsg))
++#endif
++
++#ifndef IFLA_RTA
++# define IFLA_RTA(r) \
++  ((struct rtattr*) ((char*)(r) + NLMSG_ALIGN (sizeof (struct ifinfomsg))))
++# define IFLA_PAYLOAD(n) NLMSG_PAYLOAD (n, sizeof (struct ifinfomsg))
++#endif
+ struct netlink_res
+ {
+--- glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/paths.h
++++ glibc-2.12-1/sysdeps/unix/sysv/linux/paths.h
+@@ -62,7 +62,7 @@
+ #define       _PATH_TTY       "/dev/tty"
+ #define       _PATH_UNIX      "/boot/vmlinux"
+ #define _PATH_UTMP    "/var/run/utmp"
+-#define       _PATH_VI        "/usr/bin/vi"
++#define       _PATH_VI        "/bin/vi"
+ #define _PATH_WTMP    "/var/log/wtmp"
+ /* Provide trailing slash, since mostly used for building pathnames. */
+--- glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/sparc/sparc64/fxstat.c
++++ glibc-2.12-1/sysdeps/unix/sysv/linux/sparc/sparc64/fxstat.c
+@@ -1 +1 @@
+-#include "../../fxstat.c"
++#include "../../i386/fxstat.c"
+--- glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/tcsetattr.c
++++ glibc-2.12-1/sysdeps/unix/sysv/linux/tcsetattr.c
+@@ -49,6 +49,7 @@ tcsetattr (fd, optional_actions, termios
+ {
+   struct __kernel_termios k_termios;
+   unsigned long int cmd;
++  int retval;
+   switch (optional_actions)
+     {
+@@ -80,6 +81,35 @@ tcsetattr (fd, optional_actions, termios
+   memcpy (&k_termios.c_cc[0], &termios_p->c_cc[0],
+         __KERNEL_NCCS * sizeof (cc_t));
+-  return INLINE_SYSCALL (ioctl, 3, fd, cmd, &k_termios);
++  retval = INLINE_SYSCALL (ioctl, 3, fd, cmd, &k_termios);
++
++  if (retval == 0 && cmd == TCSETS)
++    {
++      /* The Linux kernel has a bug which silently ignore the invalid
++        c_cflag on pty. We have to check it here. */
++      int save = errno;
++      retval = INLINE_SYSCALL (ioctl, 3, fd, TCGETS, &k_termios);
++      if (retval)
++       {
++         /* We cannot verify if the setting is ok. We don't return
++            an error (?). */
++         __set_errno (save);
++         retval = 0;
++       }
++      else if ((termios_p->c_cflag & (PARENB | CREAD))
++              != (k_termios.c_cflag & (PARENB | CREAD))
++              || ((termios_p->c_cflag & CSIZE)
++                  && ((termios_p->c_cflag & CSIZE)
++                      != (k_termios.c_cflag & CSIZE))))
++       {
++         /* It looks like the Linux kernel silently changed the
++            PARENB/CREAD/CSIZE bits in c_cflag. Report it as an
++            error. */
++         __set_errno (EINVAL);
++         retval = -1;
++       }
++    }
++
++  return retval;
+ }
+ libc_hidden_def (tcsetattr)
+--- glibc-2.12-2-gc4ccff1/timezone/zic.c
++++ glibc-2.12-1/timezone/zic.c
+@@ -1921,7 +1921,7 @@ const int                        zonecount;
+               if (stdrp != NULL && stdrp->r_hiyear == 2037)
+                       return;
+       }
+-      if (stdrp == NULL && zp->z_nrules != 0)
++      if (stdrp == NULL && (zp->z_nrules != 0 || zp->z_stdoff != 0))
+               return;
+       abbrvar = (stdrp == NULL) ? "" : stdrp->r_abbrvar;
+       doabbr(result, zp->z_format, abbrvar, FALSE, TRUE);
diff --git a/src/patches/glibc/glibc-getlogin-r.patch b/src/patches/glibc/glibc-getlogin-r.patch
new file mode 100644 (file)
index 0000000..9181ce1
--- /dev/null
@@ -0,0 +1,36 @@
+2010-05-05  Ulrich Drepper  <drepper@redhat.com>
+
+       [BZ #11571]
+       * sysdeps/unix/sysv/linux/getlogin_r.c (__getlogin_r_loginuid): Handle
+       too small buffers according to the standard.
+
+Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/getlogin_r.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/getlogin_r.c
++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/getlogin_r.c
+@@ -81,13 +81,22 @@ __getlogin_r_loginuid (name, namesize)
+   if (tpwd == NULL)
+     goto fail;
+-  strncpy (name, pwd.pw_name, namesize - 1);
+-  name[namesize - 1] = '\0';
++  int result = 0;
++  size_t needed = strlen (pwd.pw_name) + 1;
++  if (needed > namesize)
++    {
++      __set_errno (ERANGE);
++      result = ERANGE;
++      goto out;
++    }
++  memcpy (name, pwd.pw_name, needed);
++
++ out:
+   if (use_malloc)
+     free (buf);
+-  return 0;
++  return result;
+ }
diff --git a/src/patches/glibc/glibc-localedata.patch b/src/patches/glibc/glibc-localedata.patch
new file mode 100644 (file)
index 0000000..15de7c6
--- /dev/null
@@ -0,0 +1,18 @@
+2010-05-04  Andreas Schwab  <schwab@redhat.com>
+
+       * SUPPORTED (SUPPORTED-LOCALES): Fix name of tt_RU.UTF-8@iqtelif
+       locale.
+
+Index: glibc-2.12-2-gc4ccff1/localedata/SUPPORTED
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/SUPPORTED
++++ glibc-2.12-2-gc4ccff1/localedata/SUPPORTED
+@@ -392,7 +392,7 @@ tr_TR.UTF-8/UTF-8 \
+ tr_TR/ISO-8859-9 \
+ ts_ZA/UTF-8 \
+ tt_RU.UTF-8/UTF-8 \
+-tt_RU@iqtelif.UTF-8/UTF-8 \
++tt_RU.UTF-8@iqtelif/UTF-8 \
+ ug_CN/UTF-8 \
+ uk_UA.UTF-8/UTF-8 \
+ uk_UA/KOI8-U \
diff --git a/src/patches/glibc/glibc-recvmmsg.patch b/src/patches/glibc/glibc-recvmmsg.patch
new file mode 100644 (file)
index 0000000..9e3aa7a
--- /dev/null
@@ -0,0 +1,182 @@
+2010-05-21  Andreas Schwab  <schwab@redhat.com>
+
+       * sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Add recvmmsg
+       and internal_recvmmsg.
+       * sysdeps/unix/sysv/linux/recvmmsg.c: New file.
+       * sysdeps/unix/sysv/linux/internal_recvmmsg.S: New file.
+       * sysdeps/unix/sysv/linux/socketcall.h (SOCKOP_recvmmsg): Define.
+       * sysdeps/unix/sysv/linux/syscalls.list (recvmmsg): Remove.
+
+Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/Makefile
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/Makefile
++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/Makefile
+@@ -12,7 +12,7 @@ CFLAGS-malloc.c += -DMORECORE_CLEARS=2
+ endif
+ ifeq ($(subdir),socket)
+-sysdep_routines += internal_accept4
++sysdep_routines += internal_accept4 recvmmsg internal_recvmmsg
+ endif
+ ifeq ($(subdir),misc)
+Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/internal_recvmmsg.S
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/internal_recvmmsg.S
+@@ -0,0 +1,14 @@
++#include <kernel-features.h>
++#include <sys/syscall.h>
++#if !defined __NR_recvmmsg && defined __NR_socketcall
++# define socket       recvmmsg
++# ifdef __ASSUME_RECVMMSG
++#  define __socket recvmmsg
++# else
++#  define __socket __internal_recvmmsg
++# endif
++# define NARGS 5
++# define NEED_CANCELLATION
++# define NO_WEAK_ALIAS
++# include <socket.S>
++#endif
+Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/kernel-features.h
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/kernel-features.h
++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/kernel-features.h
+@@ -547,3 +547,8 @@
+ #if __LINUX_KERNEL_VERSION >= 0x020620
+ # define __ASSUME_F_GETOWN_EX 1
+ #endif
++
++/* Support for the recvmmsg syscall was added in 2.6.33.  */
++#if __LINUX_KERNEL_VERSION >= 0x020621
++# define __ASSUME_RECVMMSG    1
++#endif
+Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/recvmmsg.c
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/recvmmsg.c
+@@ -0,0 +1,100 @@
++/* Copyright (C) 2010 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++   Contributed by Andreas Schwab <schwab@redhat.com>, 2010.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#include <errno.h>
++#include <sys/socket.h>
++
++#include <sysdep-cancel.h>
++#include <sys/syscall.h>
++#include <kernel-features.h>
++
++
++#ifdef __NR_recvmmsg
++int
++recvmmsg (int fd, struct mmsghdr *vmessages, unsigned int vlen, int flags,
++        const struct timespec *tmo)
++{
++  if (SINGLE_THREAD_P)
++    return INLINE_SYSCALL (recvmmsg, 5, fd, vmessages, vlen, flags, tmo);
++
++  int oldtype = LIBC_CANCEL_ASYNC ();
++
++  int result = INLINE_SYSCALL (recvmmsg, 5, fd, vmessages, vlen, flags, tmo);
++
++  LIBC_CANCEL_RESET (oldtype);
++
++  return result;
++}
++#elif defined __NR_socketcall
++# ifndef __ASSUME_RECVMMSG
++extern int __internal_recvmmsg (int fd, struct mmsghdr *vmessages,
++                              unsigned int vlen, int flags,
++                              const struct timespec *tmo)
++     attribute_hidden;
++
++static int have_recvmmsg;
++
++int
++recvmmsg (int fd, struct mmsghdr *vmessages, unsigned int vlen, int flags,
++        const struct timespec *tmo)
++{
++  if (__builtin_expect (have_recvmmsg >= 0, 1))
++    {
++      int ret = __internal_recvmmsg (fd, vmessages, vlen, flags, tmo);
++      /* The kernel returns -EINVAL for unknown socket operations.
++       We need to convert that error to an ENOSYS error.  */
++      if (__builtin_expect (ret < 0, 0)
++        && have_recvmmsg == 0
++        && errno == EINVAL)
++      {
++        /* Try another call, this time with an invalid file
++           descriptor and all other parameters cleared.  This call
++           will not cause any harm and it will return
++           immediately.  */
++        ret = __internal_recvmmsg (-1, 0, 0, 0, 0);
++        if (errno == EINVAL)
++          {
++            have_recvmmsg = -1;
++            __set_errno (ENOSYS);
++          }
++        else
++          {
++            have_recvmmsg = 1;
++            __set_errno (EINVAL);
++          }
++        return -1;
++      }
++      return ret;
++    }
++  __set_errno (ENOSYS);
++  return -1;
++}
++# else
++/* When __ASSUME_RECVMMSG recvmmsg is defined in internal_recvmmsg.S.  */
++# endif
++#else
++int
++recvmmsg (int fd, struct mmsghdr *vmessages, unsigned int vlen, int flags,
++        const struct timespec *tmo)
++{
++  __set_errno (ENOSYS);
++  return -1;
++}
++stub_warning (recvmmsg)
++#endif
+Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/socketcall.h
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/socketcall.h
++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/socketcall.h
+@@ -44,5 +44,6 @@
+ #define SOCKOP_sendmsg                16
+ #define SOCKOP_recvmsg                17
+ #define SOCKOP_accept4                18
++#define SOCKOP_recvmmsg               19
+ #endif /* sys/socketcall.h */
+Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/syscalls.list
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/syscalls.list
++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/syscalls.list
+@@ -53,7 +53,6 @@ prctl                EXTRA   prctl           i:iiiii __prctl         prc
+ putpmsg               -       putpmsg         i:ippii putpmsg
+ query_module  EXTRA   query_module    i:sipip query_module
+ quotactl      EXTRA   quotactl        i:isip  quotactl
+-recvmmsg      EXTRA   recvmmsg        Ci:ipiip        recvmmsg
+ remap_file_pages -    remap_file_pages i:piiii        __remap_file_pages remap_file_pages
+ sched_getp    -       sched_getparam  i:ip    __sched_getparam        sched_getparam
+ sched_gets    -       sched_getscheduler      i:i     __sched_getscheduler    sched_getscheduler
diff --git a/src/patches/glibc/glibc-rh580498.patch b/src/patches/glibc/glibc-rh580498.patch
new file mode 100644 (file)
index 0000000..05b673a
--- /dev/null
@@ -0,0 +1,296 @@
+2010-07-03  Ulrich Drepper  <drepper@redhat.com>
+
+       * tst-abstime.c (do_test): Some more cleanups
+
+2010-07-02  Ulrich Drepper  <drepper@redhat.com>
+
+       * tst-abstime.c: Correct testing and add test for sem_timedwait.
+
+2010-07-01  Andreas Schwab  <schwab@redhat.com>
+           Ulrich Drepper  <drepper@redhat.com>
+
+       * Makefile (tests): Add tst-abstime.
+       * tst-abstime.c: New file.
+       * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
+       (__lll_timedlock_wait): Check for timestamp before the Epoch.
+       * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
+       (__lll_timedlock_wait): Likewise.
+       * sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S
+       (__lll_robust_timedlock_wait): Likewise.
+       * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
+       (__pthread_cond_timedwait): Likewise.
+       * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S
+       (pthread_rwlock_timedrdlock): Likewise.
+       * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S
+       (pthread_rwlock_timedwrlock): Likewise.
+       * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S (sem_timedwait):
+       Likewise.
+
+Index: glibc-2.12-2-gc4ccff1/nptl/Makefile
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nptl/Makefile
++++ glibc-2.12-2-gc4ccff1/nptl/Makefile
+@@ -256,6 +256,7 @@ tests = tst-typesizes \
+       tst-sched1 \
+       tst-backtrace1 \
+       tst-oddstacklimit \
++      tst-abstime \
+       tst-vfork1 tst-vfork2 tst-vfork1x tst-vfork2x \
+       tst-getpid1 tst-getpid2 tst-getpid3 \
+       tst-initializers1 $(patsubst %,tst-initializers1-%,c89 gnu89 c99 gnu99)
+Index: glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
++++ glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
+@@ -188,6 +188,9 @@ __lll_timedlock_wait:
+       je      .Lreltmo
+ # endif
++      cmpl    $0, (%edx)
++      js      8f
++
+       movl    %ecx, %ebx
+       movl    %esi, %ecx
+       movl    %edx, %esi
+@@ -223,6 +226,9 @@ __lll_timedlock_wait:
+       cfi_restore(%ebp)
+       ret
++8:    movl    $ETIMEDOUT, %eax
++      jmp     7b
++
+ # ifndef __ASSUME_FUTEX_CLOCK_REALTIME
+ .Lreltmo:
+       /* Check for a valid timeout value.  */
+Index: glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
++++ glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
+@@ -169,9 +169,13 @@ __lll_timedlock_wait:
+       je      .Lreltmo
+ # endif
++      cmpq    $0, (%rdx)
++      js      5f
++
+       pushq   %r9
+       cfi_adjust_cfa_offset(8)
+       cfi_rel_offset(%r9, 0)
++
+       movq    %rdx, %r10
+       movl    $0xffffffff, %r9d
+       LOAD_FUTEX_WAIT_ABS (%esi)
+@@ -202,6 +206,9 @@ __lll_timedlock_wait:
+       cfi_restore(%r9)
+       retq
++5:    movl    $ETIMEDOUT, %eax
++      retq
++
+ # ifndef __ASSUME_FUTEX_CLOCK_REALTIME
+ .Lreltmo:
+       /* Check for a valid timeout value.  */
+Index: glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S
++++ glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S
+@@ -125,6 +125,9 @@ __lll_robust_timedlock_wait:
+       je      .Lreltmo
+ # endif
++      cmpq    $0, (%rdx)
++      js      7f
++
+       pushq   %r9
+       cfi_adjust_cfa_offset(8)
+       cfi_rel_offset(%r9, 0)
+@@ -180,6 +183,9 @@ __lll_robust_timedlock_wait:
+       cfi_adjust_cfa_offset(-8)
+       cfi_restore(%r9)
++7:    movl    $ETIMEDOUT, %eax
++      retq
++
+ # ifndef __ASSUME_FUTEX_CLOCK_REALTIME
+ .Lreltmo:
+Index: glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
++++ glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
+@@ -144,6 +144,10 @@ __pthread_cond_timedwait:
+       movq    %r9, 24(%rsp)
+       movl    %edx, 4(%rsp)
++      cmpq    $0, (%r13)
++      movq    $-ETIMEDOUT, %r14
++      js      36f
++
+ 38:   movl    cond_futex(%rdi), %r12d
+       /* Unlock.  */
+Index: glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S
++++ glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S
+@@ -102,6 +102,9 @@ pthread_rwlock_timedrdlock:
+       je      .Lreltmo
+ #endif
++      cmpq    $0, (%r13)
++      js      16f             /* Time is already up.  */
++
+       movl    $FUTEX_PRIVATE_FLAG|FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME, %esi
+       xorl    PSHARED(%r12), %esi
+       movq    %r13, %r10
+Index: glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S
++++ glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S
+@@ -99,6 +99,9 @@ pthread_rwlock_timedwrlock:
+       je      .Lreltmo
+ #endif
++      cmpq    $0, (%r13)
++      js      16f             /* Time is already up. */
++
+       movl    $FUTEX_PRIVATE_FLAG|FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME, %esi
+       xorl    PSHARED(%r12), %esi
+       movq    %r13, %r10
+Index: glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nptl/sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S
++++ glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S
+@@ -77,6 +77,9 @@ sem_timedwait:
+       je      .Lreltmo
+ #endif
++      cmpq    $0, (%rsi)
++      js      16f
++
+       /* This push is only needed to store the sem_t pointer for the
+          exception handler.  */
+       pushq   %rdi
+@@ -169,6 +172,19 @@ sem_timedwait:
+       retq
++16:
++#if USE___THREAD
++      movq    errno@gottpoff(%rip), %rdx
++      movl    $ETIMEDOUT, %fs:(%rdx)
++#else
++      callq   __errno_location@plt
++      movl    $ETIMEDOUT, (%rax)
++#endif
++
++      orl     $-1, %eax
++
++      retq
++
+ #ifndef __ASSUME_FUTEX_CLOCK_REALTIME
+ .Lreltmo:
+       pushq   %r12
+Index: glibc-2.12-2-gc4ccff1/nptl/tst-abstime.c
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/nptl/tst-abstime.c
+@@ -0,0 +1,98 @@
++/* Copyright (C) 2010 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++   Contributed by Andreas Schwab <schwab@redhat.com>, 2010.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#include <errno.h>
++#include <pthread.h>
++#include <semaphore.h>
++#include <stdio.h>
++
++static pthread_cond_t c = PTHREAD_COND_INITIALIZER;
++static pthread_mutex_t m1 = PTHREAD_MUTEX_INITIALIZER;
++static pthread_mutex_t m2 = PTHREAD_MUTEX_INITIALIZER;
++static pthread_rwlock_t rw1 = PTHREAD_RWLOCK_INITIALIZER;
++static pthread_rwlock_t rw2 = PTHREAD_RWLOCK_INITIALIZER;
++static sem_t sem;
++
++static void *
++th (void *arg)
++{
++  long int res = 0;
++  int r;
++  struct timespec t = { -2, 0 };
++
++  r = pthread_mutex_timedlock (&m1, &t);
++  if (r != ETIMEDOUT)
++    {
++      puts ("pthread_mutex_timedlock did not return ETIMEDOUT");
++      res = 1;
++    }
++  r = pthread_rwlock_timedrdlock (&rw1, &t);
++  if (r != ETIMEDOUT)
++    {
++      puts ("pthread_rwlock_timedrdlock did not return ETIMEDOUT");
++      res = 1;
++    }
++  r = pthread_rwlock_timedwrlock (&rw2, &t);
++  if (r != ETIMEDOUT)
++    {
++      puts ("pthread_rwlock_timedwrlock did not return ETIMEDOUT");
++      res = 1;
++    }
++  return (void *) res;
++}
++
++static int
++do_test (void)
++{
++  int res = 0;
++  int r;
++  struct timespec t = { -2, 0 };
++  pthread_t pth;
++
++  sem_init (&sem, 0, 0);
++  r = sem_timedwait (&sem, &t);
++  if (r != -1 || errno != ETIMEDOUT)
++    {
++      puts ("sem_timedwait did not fail with ETIMEDOUT");
++      res = 1;
++    }
++
++  pthread_mutex_lock (&m1);
++  pthread_rwlock_wrlock (&rw1);
++  pthread_rwlock_rdlock (&rw2);
++  pthread_mutex_lock (&m2);
++  if (pthread_create (&pth, 0, th, 0) != 0)
++    {
++      puts ("cannot create thread");
++      return 1;
++    }
++  r = pthread_cond_timedwait (&c, &m2, &t);
++  if (r != ETIMEDOUT)
++    {
++      puts ("pthread_cond_timedwait did not return ETIMEDOUT");
++      res = 1;
++    }
++  void *thres;
++  pthread_join (pth, &thres);
++  return res | (thres != NULL);
++}
++
++
++#define TEST_FUNCTION do_test ()
++#include "../test-skeleton.c"
diff --git a/src/patches/glibc/glibc-rh582738.patch b/src/patches/glibc/glibc-rh582738.patch
new file mode 100644 (file)
index 0000000..40f7b80
--- /dev/null
@@ -0,0 +1,13 @@
+Index: glibc-2.11-382-g1cdb215/nscd/nscd.init
+===================================================================
+--- glibc-2.11-382-g1cdb215.orig/nscd/nscd.init
++++ glibc-2.11-382-g1cdb215/nscd/nscd.init
+@@ -76,7 +76,7 @@ case "$1" in
+       RETVAL=$?
+       ;;
+     stop)
+-      stop
++      [ ! -e /var/lock/subsys/nscd ] || stop
+       RETVAL=$?
+       ;;
+     status)
diff --git a/src/patches/glibc/glibc-rh587360.patch b/src/patches/glibc/glibc-rh587360.patch
new file mode 100644 (file)
index 0000000..07b62e6
--- /dev/null
@@ -0,0 +1,13 @@
+Index: glibc-2.11-382-g1cdb215/posix/regexec.c
+===================================================================
+--- glibc-2.11-382-g1cdb215.orig/posix/regexec.c
++++ glibc-2.11-382-g1cdb215/posix/regexec.c
+@@ -4031,7 +4031,7 @@ find_collation_sequence_value (const uns
+         /* Skip the collation sequence value.  */
+         idx += sizeof (uint32_t);
+         /* Skip the wide char sequence of the collating element.  */
+-        idx = idx + sizeof (uint32_t) * (extra[idx] + 1);
++        idx = idx + sizeof (uint32_t) * (*(int32_t *) (extra + idx) + 1);
+         /* If we found the entry, return the sequence value.  */
+         if (found)
+           return *(uint32_t *) (extra + idx);
diff --git a/src/patches/glibc/glibc-rh593396.patch b/src/patches/glibc/glibc-rh593396.patch
new file mode 100644 (file)
index 0000000..b907a36
--- /dev/null
@@ -0,0 +1,42 @@
+2010-05-06  Ulrich Drepper  <drepper@redhat.com>
+
+       * malloc/malloc.c (_int_free): Possible race in the most recently
+       added check.  Only act on the data if no current modification
+       happened.
+
+Index: glibc-2.12-2-gc4ccff1/malloc/malloc.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/malloc/malloc.c
++++ glibc-2.12-2-gc4ccff1/malloc/malloc.c
+@@ -4859,6 +4859,7 @@ _int_free(mstate av, mchunkptr p)
+ #ifdef ATOMIC_FASTBINS
+     mchunkptr fd;
+     mchunkptr old = *fb;
++    unsigned int old_idx = ~0u;
+     do
+       {
+       /* Another simple check: make sure the top of the bin is not the
+@@ -4868,15 +4869,17 @@ _int_free(mstate av, mchunkptr p)
+           errstr = "double free or corruption (fasttop)";
+           goto errout;
+         }
+-      if (old != NULL
+-          && __builtin_expect (fastbin_index(chunksize(old)) != idx, 0))
+-        {
+-          errstr = "invalid fastbin entry (free)";
+-          goto errout;
+-        }
++      if (old != NULL)
++        old_idx = fastbin_index(chunksize(old));
+       p->fd = fd = old;
+       }
+     while ((old = catomic_compare_and_exchange_val_rel (fb, p, fd)) != fd);
++
++    if (fd != NULL && __builtin_expect (old_idx != idx, 0))
++      {
++      errstr = "invalid fastbin entry (free)";
++      goto errout;
++      }
+ #else
+     /* Another simple check: make sure the top of the bin is not the
+        record we are going to add (i.e., double free).  */
diff --git a/src/patches/glibc/glibc-rh593686.patch b/src/patches/glibc/glibc-rh593686.patch
new file mode 100644 (file)
index 0000000..3eceb68
--- /dev/null
@@ -0,0 +1,179 @@
+2010-05-26  Andreas Schwab  <schwab@redhat.com>
+
+       * elf/Makefile: Add rules to build and run unload8 test.
+       * elf/unload8.c: New file.
+       * elf/unload8mod1.c: New file.
+       * elf/unload8mod1x.c: New file.
+       * elf/unload8mod2.c: New file.
+       * elf/unload8mod3.c: New file.
+
+       * elf/dl-close.c (_dl_close_worker): Reset private search list if
+       it wasn't used.
+
+Index: glibc-2.12-2-gc4ccff1/elf/Makefile
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/elf/Makefile
++++ glibc-2.12-2-gc4ccff1/elf/Makefile
+@@ -89,6 +89,7 @@ distribute   := rtld-Rules \
+                  unload4mod1.c unload4mod2.c unload4mod3.c unload4mod4.c \
+                  unload6mod1.c unload6mod2.c unload6mod3.c \
+                  unload7mod1.c unload7mod2.c \
++                 unload8mod1.c unload8mod1x.c unload8mod2.c unload8mod3.c \
+                  tst-audit1.c tst-audit2.c tst-audit3.c tst-audit4.c \
+                  tst-auditmod1.c tst-auditmod3a.c tst-auditmod3b.c \
+                  tst-auditmod4a.c tst-auditmod4b.c \
+@@ -196,7 +197,7 @@ tests += loadtest restest1 preloadtest l
+        tst-align tst-align2 $(tests-execstack-$(have-z-execstack)) \
+        tst-dlmodcount tst-dlopenrpath tst-deep1 \
+        tst-dlmopen1 tst-dlmopen2 tst-dlmopen3 \
+-       unload3 unload4 unload5 unload6 unload7 tst-global1 order2 \
++       unload3 unload4 unload5 unload6 unload7 unload8 tst-global1 order2 \
+        tst-audit1 tst-audit2 \
+        tst-stackguard1 tst-addr1 tst-thrlock \
+        tst-unique1 tst-unique2
+@@ -247,6 +248,7 @@ modules-names = testobj1 testobj2 testob
+               unload4mod1 unload4mod2 unload4mod3 unload4mod4 \
+               unload6mod1 unload6mod2 unload6mod3 \
+               unload7mod1 unload7mod2 \
++              unload8mod1 unload8mod1x unload8mod2 unload8mod3 \
+               order2mod1 order2mod2 order2mod3 order2mod4 \
+               tst-unique1mod1 tst-unique1mod2 \
+               tst-unique2mod1 tst-unique2mod2
+@@ -522,6 +524,9 @@ $(objpfx)unload6mod2.so: $(libdl)
+ $(objpfx)unload6mod3.so: $(libdl)
+ $(objpfx)unload7mod1.so: $(libdl)
+ $(objpfx)unload7mod2.so: $(objpfx)unload7mod1.so
++$(objpfx)unload8mod1.so: $(objpfx)unload8mod2.so
++$(objpfx)unload8mod2.so: $(objpfx)unload8mod3.so
++$(objpfx)unload8mod3.so: $(libdl)
+ LDFLAGS-tst-tlsmod5.so = -nostdlib
+ LDFLAGS-tst-tlsmod6.so = -nostdlib
+@@ -823,6 +828,9 @@ $(objpfx)unload7: $(libdl)
+ $(objpfx)unload7.out: $(objpfx)unload7mod1.so $(objpfx)unload7mod2.so
+ unload7-ENV = MALLOC_PERTURB_=85
++$(objpfx)unload8: $(libdl)
++$(objpfx)unload8.out: $(objpfx)unload8mod1.so $(objpfx)unload8mod1x.so
++
+ ifdef libdl
+ $(objpfx)tst-tls9-static: $(common-objpfx)dlfcn/libdl.a
+ $(objpfx)tst-tls9-static.out: $(objpfx)tst-tlsmod5.so $(objpfx)tst-tlsmod6.so
+Index: glibc-2.12-2-gc4ccff1/elf/dl-close.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/elf/dl-close.c
++++ glibc-2.12-2-gc4ccff1/elf/dl-close.c
+@@ -421,6 +421,13 @@ _dl_close_worker (struct link_map *map)
+             imap->l_scope_max = new_size;
+           }
++        else if (new_list != NULL)
++          {
++            /* We didn't change the scope array, so reset the search
++               list.  */
++            imap->l_searchlist.r_list = NULL;
++            imap->l_searchlist.r_nlist = 0;
++          }
+         /* The loader is gone, so mark the object as not having one.
+            Note: l_idx != IDX_STILL_USED -> object will be removed.  */
+Index: glibc-2.12-2-gc4ccff1/elf/unload8.c
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/elf/unload8.c
+@@ -0,0 +1,33 @@
++#include <dlfcn.h>
++#include <stdio.h>
++
++int
++main (void)
++{
++  void *h = dlopen ("$ORIGIN/unload8mod1.so", RTLD_LAZY);
++  if (h == NULL)
++    {
++      puts ("dlopen unload8mod1.so failed");
++      return 1;
++    }
++
++  void *h2 = dlopen ("$ORIGIN/unload8mod1x.so", RTLD_LAZY);
++  if (h2 == NULL)
++    {
++      puts ("dlopen unload8mod1x.so failed");
++      return 1;
++    }
++  dlclose (h2);
++
++  int (*mod1) (void) = dlsym (h, "mod1");
++  if (mod1 == NULL)
++    {
++      puts ("dlsym failed");
++      return 1;
++    }
++
++  mod1 ();
++  dlclose (h);
++
++  return 0;
++}
+Index: glibc-2.12-2-gc4ccff1/elf/unload8mod1.c
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/elf/unload8mod1.c
+@@ -0,0 +1,7 @@
++extern void mod2 (void);
++
++void
++mod1 (void)
++{
++  mod2 ();
++}
+Index: glibc-2.12-2-gc4ccff1/elf/unload8mod1x.c
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/elf/unload8mod1x.c
+@@ -0,0 +1 @@
++int mod1x;
+Index: glibc-2.12-2-gc4ccff1/elf/unload8mod2.c
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/elf/unload8mod2.c
+@@ -0,0 +1,7 @@
++extern void mod3 (void);
++
++void
++mod2 (void)
++{
++  mod3 ();
++}
+Index: glibc-2.12-2-gc4ccff1/elf/unload8mod3.c
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/elf/unload8mod3.c
+@@ -0,0 +1,27 @@
++#include <dlfcn.h>
++#include <stdio.h>
++#include <stdlib.h>
++
++void
++mod3_fini2 (void)
++{
++}
++
++void
++mod3_fini (void)
++{
++  mod3_fini2 ();
++}
++
++void
++mod3 (void)
++{
++  void *h = dlopen ("$ORIGIN/unload8mod2.so", RTLD_LAZY);
++  if (h == NULL)
++    {
++      puts ("dlopen unload8mod2.so failed");
++      exit (1);
++    }
++
++  atexit (mod3_fini);
++}
diff --git a/src/patches/glibc/glibc-rh601686.patch b/src/patches/glibc/glibc-rh601686.patch
new file mode 100644 (file)
index 0000000..01e42dc
--- /dev/null
@@ -0,0 +1,4640 @@
+2010-11-09  H.J. Lu  <hongjiu.lu@intel.com>
+
+       [BZ #12205]
+       * string/test-strncasecmp.c (check_result): New function.
+       (do_one_test): Use it.
+       (check1): New function.
+       (test_main): Use it.
+       * sysdeps/i386/i686/multiarch/strcmp.S (nibble_ashr_use_sse4_2_exit):
+       Support strcasecmp and strncasecmp.
+
+2010-10-03  Ulrich Drepper  <drepper@gmail.com>
+
+       [BZ #12077]
+       * sysdeps/x86_64/strcmp.S: Fix handling of remaining bytes in buffer
+       for strncmp and strncasecmp.
+       * string/stratcliff.c: Add tests for strcmp and strncmp.
+       * wcsmbs/wcsatcliff.c: Adjust for stratcliff change.
+
+2010-09-20  Ulrich Drepper  <drepper@redhat.com>
+
+       * sysdeps/x86_64/strcmp.S: Fix another type in strncasecmp limit
+       detection.
+
+2010-08-19  Ulrich Drepper  <drepper@redhat.com>
+
+       * sysdeps/x86_64/multiarch/strcmp.S: Fix two typos in strncasecmp
+       handling.
+
+2010-08-15  Ulrich Drepper  <drepper@redhat.com>
+
+       * sysdeps/x86_64/strcmp.S: Use correct register for fourth parameter
+       of strncasecmp_l.
+       * sysdeps/multiarch/strcmp.S: Likewise.
+
+2010-08-14  Ulrich Drepper  <drepper@redhat.com>
+
+       * sysdeps/x86_64/Makefile [subdir=string] (sysdep_routines): Add
+       strncase_l-nonascii.
+       * sysdeps/x86_64/multiarch/Makefile [subdir=string] (sysdep_routines):
+       Add strncase_l-ssse3.
+       * sysdeps/x86_64/multiarch/strcmp.S: Prepare for use as strncasecmp.
+       * sysdeps/x86_64/strcmp.S: Likewise.
+       * sysdeps/x86_64/multiarch/strncase_l-ssse3.S: New file.
+       * sysdeps/x86_64/multiarch/strncase_l.S: New file.
+       * sysdeps/x86_64/strncase.S: New file.
+       * sysdeps/x86_64/strncase_l-nonascii.c: New file.
+       * sysdeps/x86_64/strncase_l.S: New file.
+       * string/Makefile (strop-tests): Add strncasecmp.
+       * string/test-strncasecmp.c: New file.
+
+       * sysdeps/x86_64/strcasecmp_l-nonascii.c: Add prototype to avoid
+       warning.
+
+       * sysdeps/x86_64/strcmp.S: Move definition of NO_NOLOCALE_ALIAS to...
+       * sysdeps/x86_64/multiarch/strcasecmp_l-ssse3.S: ... here.
+
+2010-07-31  Ulrich Drepper  <drepper@redhat.com>
+
+       * sysdeps/x86_64/multiarch/Makefile [subdir=string] (sysdep_routines):
+       Add strcasecmp_l-ssse3.
+       * sysdeps/x86_64/multiarch/strcmp.S: Add support to compile for
+       strcasecmp.
+       * sysdeps/x86_64/strcmp.S: Allow more flexible compiling of strcasecmp.
+       * sysdeps/x86_64/multiarch/strcasecmp_l.S: New file.
+       * sysdeps/x86_64/multiarch/strcasecmp_l-ssse3.S: New file.
+
+2010-07-30  Ulrich Drepper  <drepper@redhat.com>
+
+       * sysdeps/x86_64/multiarch/strcmp.S: Pretty printing.
+
+       * string/Makefile (strop-tests): Add strcasecmp.
+       * sysdeps/x86_64/Makefile [subdir=string] (sysdep_routines): Add
+       strcasecmp_l-nonascii.
+       (gen-as-const-headers): Add locale-defines.sym.
+       * sysdeps/x86_64/strcmp.S: Add support for strcasecmp implementation.
+       * sysdeps/x86_64/strcasecmp.S: New file.
+       * sysdeps/x86_64/strcasecmp_l.S: New file.
+       * sysdeps/x86_64/strcasecmp_l-nonascii.c: New file.
+       * sysdeps/x86_64/locale-defines.sym: New file.
+       * string/test-strcasecmp.c: New file.
+
+       * string/test-strcasestr.c: Test both ends of the range of characters.
+       * sysdeps/x86_64/multiarch/strstr.c: Fix UCHIGH definition.
+
+2010-07-26  Ulrich Drepper  <drepper@redhat.com>
+
+       * string/test-strnlen.c: New file.
+       * string/Makefile (strop-tests): Add strnlen.
+       * string/tester.c (test_strnlen): Add a few more test cases.
+       * string/tst-strlen.c: Better error reporting.
+
+       * sysdeps/x86_64/strnlen.S: New file.
+
+2010-07-24  Ulrich Drepper  <drepper@redhat.com>
+
+       * sysdeps/x86_64/multiarch/strstr.c (__m128i_strloadu_tolower): Use
+       lower-latency instructions.
+
+2010-07-23  Ulrich Drepper  <drepper@redhat.com>
+
+       * string/test-strcasestr.c: New file.
+       * string/test-strstr.c: New file.
+       * string/Makefile (strop-tests): Add strstr and strcasestr.
+       * string/str-two-way.h: Don't undefine MAX.
+       * string/strcasestr.c: Don't define alias if NO_ALIAS is defined.
+
+2010-07-21  Andreas Schwab  <schwab@redhat.com>
+
+       * sysdeps/i386/i686/multiarch/Makefile (sysdep_routines): Add
+       strcasestr-nonascii.
+       (CFLAGS-strcasestr-nonascii.c): Define.
+       * sysdeps/i386/i686/multiarch/strcasestr-nonascii.c: New file.
+       * sysdeps/x86_64/multiarch/strcasestr-nonascii.c (STRSTR_SSE42):
+       Remove unused attribute.
+
+2010-07-16  Ulrich Drepper  <drepper@redhat.com>
+
+       * sysdeps/x86_64/multiarch/strstr.c: Rewrite to avoid indirect function
+       call in strcasestr.
+       * sysdeps/x86_64/multiarch/strcasestr.c: Declare
+       __strcasestr_sse42_nonascii.
+       * sysdeps/x86_64/multiarch/Makefile: Add rules to build
+       strcasestr-nonascii.c.
+       * sysdeps/x86_64/multiarch/strcasestr-nonascii.c: New file.
+
+Index: glibc-2.12-2-gc4ccff1/string/Makefile
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/string/Makefile
++++ glibc-2.12-2-gc4ccff1/string/Makefile
+@@ -48,7 +48,8 @@ o-objects.ob := memcpy.o memset.o memchr
+ strop-tests   := memchr memcmp memcpy memmove mempcpy memset memccpy  \
+                  stpcpy stpncpy strcat strchr strcmp strcpy strcspn   \
+-                 strlen strncmp strncpy strpbrk strrchr strspn memmem
++                 strlen strncmp strncpy strpbrk strrchr strspn memmem \
++                 strstr strcasestr strnlen strcasecmp strncasecmp
+ tests         := tester inl-tester noinl-tester testcopy test-ffs     \
+                  tst-strlen stratcliff tst-svc tst-inlcall            \
+                  bug-strncat1 bug-strspn1 bug-strpbrk1 tst-bswap      \
+Index: glibc-2.12-2-gc4ccff1/string/str-two-way.h
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/string/str-two-way.h
++++ glibc-2.12-2-gc4ccff1/string/str-two-way.h
+@@ -426,5 +426,4 @@ two_way_long_needle (const unsigned char
+ #undef AVAILABLE
+ #undef CANON_ELEMENT
+ #undef CMP_FUNC
+-#undef MAX
+ #undef RETURN_TYPE
+Index: glibc-2.12-2-gc4ccff1/string/stratcliff.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/string/stratcliff.c
++++ glibc-2.12-2-gc4ccff1/string/stratcliff.c
+@@ -47,6 +47,8 @@
+ # define MEMCPY memcpy
+ # define MEMPCPY mempcpy
+ # define MEMCHR memchr
++# define STRCMP strcmp
++# define STRNCMP strncmp
+ #endif
+@@ -277,7 +279,74 @@ do_test (void)
+             adr[inner] = L('T');
+           }
+-        }
++      }
++
++      /* strcmp/wcscmp tests */
++      for (outer = 1; outer < 32; ++outer)
++      for (middle = 0; middle < 16; ++middle)
++        {
++          MEMSET (adr + middle, L('T'), 256);
++          adr[256] = L('\0');
++          MEMSET (dest + nchars - outer, L('T'), outer - 1);
++          dest[nchars - 1] = L('\0');
++
++          if (STRCMP (adr + middle, dest + nchars - outer) <= 0)
++            {
++              printf ("%s 1 flunked for outer = %d, middle = %d\n",
++                      STRINGIFY (STRCMP), outer, middle);
++              result = 1;
++            }
++
++          if (STRCMP (dest + nchars - outer, adr + middle) >= 0)
++            {
++              printf ("%s 2 flunked for outer = %d, middle = %d\n",
++                      STRINGIFY (STRCMP), outer, middle);
++              result = 1;
++            }
++        }
++
++      /* strncmp/wcsncmp tests */
++      for (outer = 1; outer < 32; ++outer)
++      for (middle = 0; middle < 16; ++middle)
++        {
++          MEMSET (adr + middle, L('T'), 256);
++          adr[256] = L('\0');
++          MEMSET (dest + nchars - outer, L('T'), outer - 1);
++          dest[nchars - 1] = L('U');
++
++          for (inner = 0; inner < outer; ++inner)
++            {
++              if (STRNCMP (adr + middle, dest + nchars - outer, inner) != 0)
++                {
++                  printf ("%s 1 flunked for outer = %d, middle = %d, "
++                          "inner = %d\n",
++                          STRINGIFY (STRNCMP), outer, middle, inner);
++                  result = 1;
++                }
++
++              if (STRNCMP (dest + nchars - outer, adr + middle, inner) != 0)
++                {
++                  printf ("%s 2 flunked for outer = %d, middle = %d, "
++                          "inner = %d\n",
++                          STRINGIFY (STRNCMP), outer, middle, inner);
++                  result = 1;
++                }
++            }
++
++          if (STRNCMP (adr + middle, dest + nchars - outer, outer) >= 0)
++            {
++              printf ("%s 1 flunked for outer = %d, middle = %d, full\n",
++                      STRINGIFY (STRNCMP), outer, middle);
++              result = 1;
++            }
++
++          if (STRNCMP (dest + nchars - outer, adr + middle, outer) <= 0)
++            {
++              printf ("%s 2 flunked for outer = %d, middle = %d, full\n",
++                      STRINGIFY (STRNCMP), outer, middle);
++              result = 1;
++            }
++        }
+       /* strncpy/wcsncpy tests */
+       adr[nchars - 1] = L('T');
+Index: glibc-2.12-2-gc4ccff1/string/strcasestr.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/string/strcasestr.c
++++ glibc-2.12-2-gc4ccff1/string/strcasestr.c
+@@ -103,4 +103,6 @@ STRCASESTR (const char *haystack_start, 
+ #undef LONG_NEEDLE_THRESHOLD
++#ifndef NO_ALIAS
+ weak_alias (__strcasestr, strcasestr)
++#endif
+Index: glibc-2.12-2-gc4ccff1/string/test-strcasecmp.c
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/string/test-strcasecmp.c
+@@ -0,0 +1,276 @@
++/* Test and measure strcasecmp functions.
++   Copyright (C) 1999, 2002, 2003, 2005, 2010 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++   Written by Jakub Jelinek <jakub@redhat.com>, 1999.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#include <ctype.h>
++#define TEST_MAIN
++#include "test-string.h"
++
++typedef int (*proto_t) (const char *, const char *);
++static int simple_strcasecmp (const char *, const char *);
++static int stupid_strcasecmp (const char *, const char *);
++
++IMPL (stupid_strcasecmp, 0)
++IMPL (simple_strcasecmp, 0)
++IMPL (strcasecmp, 1)
++
++static int
++simple_strcasecmp (const char *s1, const char *s2)
++{
++  int ret;
++
++  while ((ret = ((unsigned char) tolower (*s1)
++               - (unsigned char) tolower (*s2))) == 0
++       && *s1++)
++    ++s2;
++  return ret;
++}
++
++static int
++stupid_strcasecmp (const char *s1, const char *s2)
++{
++  size_t ns1 = strlen (s1) + 1, ns2 = strlen (s2) + 1;
++  size_t n = ns1 < ns2 ? ns1 : ns2;
++  int ret = 0;
++
++  while (n--)
++    {
++      if ((ret = ((unsigned char) tolower (*s1)
++                - (unsigned char) tolower (*s2))) != 0)
++      break;
++      ++s1;
++      ++s2;
++    }
++  return ret;
++}
++
++static void
++do_one_test (impl_t *impl, const char *s1, const char *s2, int exp_result)
++{
++  int result = CALL (impl, s1, s2);
++  if ((exp_result == 0 && result != 0)
++      || (exp_result < 0 && result >= 0)
++      || (exp_result > 0 && result <= 0))
++    {
++      error (0, 0, "Wrong result in function %s %d %d", impl->name,
++           result, exp_result);
++      ret = 1;
++      return;
++    }
++
++  if (HP_TIMING_AVAIL)
++    {
++      hp_timing_t start __attribute ((unused));
++      hp_timing_t stop __attribute ((unused));
++      hp_timing_t best_time = ~ (hp_timing_t) 0;
++      size_t i;
++
++      for (i = 0; i < 32; ++i)
++      {
++        HP_TIMING_NOW (start);
++        CALL (impl, s1, s2);
++        HP_TIMING_NOW (stop);
++        HP_TIMING_BEST (best_time, start, stop);
++      }
++
++      printf ("\t%zd", (size_t) best_time);
++    }
++}
++
++static void
++do_test (size_t align1, size_t align2, size_t len, int max_char,
++       int exp_result)
++{
++  size_t i;
++  char *s1, *s2;
++
++  if (len == 0)
++    return;
++
++  align1 &= 7;
++  if (align1 + len + 1 >= page_size)
++    return;
++
++  align2 &= 7;
++  if (align2 + len + 1 >= page_size)
++    return;
++
++  s1 = (char *) (buf1 + align1);
++  s2 = (char *) (buf2 + align2);
++
++  for (i = 0; i < len; i++)
++    {
++      s1[i] = toupper (1 + 23 * i % max_char);
++      s2[i] = tolower (s1[i]);
++    }
++
++  s1[len] = s2[len] = 0;
++  s1[len + 1] = 23;
++  s2[len + 1] = 24 + exp_result;
++  if ((s2[len - 1] == 'z' && exp_result == -1)
++      || (s2[len - 1] == 'a' && exp_result == 1))
++    s1[len - 1] += exp_result;
++  else
++    s2[len - 1] -= exp_result;
++
++  if (HP_TIMING_AVAIL)
++    printf ("Length %4zd, alignment %2zd/%2zd:", len, align1, align2);
++
++  FOR_EACH_IMPL (impl, 0)
++    do_one_test (impl, s1, s2, exp_result);
++
++  if (HP_TIMING_AVAIL)
++    putchar ('\n');
++}
++
++static void
++do_random_tests (void)
++{
++  size_t i, j, n, align1, align2, pos, len1, len2;
++  int result;
++  long r;
++  unsigned char *p1 = buf1 + page_size - 512;
++  unsigned char *p2 = buf2 + page_size - 512;
++
++  for (n = 0; n < ITERATIONS; n++)
++    {
++      align1 = random () & 31;
++      if (random () & 1)
++      align2 = random () & 31;
++      else
++      align2 = align1 + (random () & 24);
++      pos = random () & 511;
++      j = align1 > align2 ? align1 : align2;
++      if (pos + j >= 511)
++      pos = 510 - j - (random () & 7);
++      len1 = random () & 511;
++      if (pos >= len1 && (random () & 1))
++      len1 = pos + (random () & 7);
++      if (len1 + j >= 512)
++      len1 = 511 - j - (random () & 7);
++      if (pos >= len1)
++      len2 = len1;
++      else
++      len2 = len1 + (len1 != 511 - j ? random () % (511 - j - len1) : 0);
++      j = (pos > len2 ? pos : len2) + align1 + 64;
++      if (j > 512)
++      j = 512;
++      for (i = 0; i < j; ++i)
++      {
++        p1[i] = tolower (random () & 255);
++        if (i < len1 + align1 && !p1[i])
++          {
++            p1[i] = tolower (random () & 255);
++            if (!p1[i])
++              p1[i] = tolower (1 + (random () & 127));
++          }
++      }
++      for (i = 0; i < j; ++i)
++      {
++        p2[i] = toupper (random () & 255);
++        if (i < len2 + align2 && !p2[i])
++          {
++            p2[i] = toupper (random () & 255);
++            if (!p2[i])
++              toupper (p2[i] = 1 + (random () & 127));
++          }
++      }
++
++      result = 0;
++      memcpy (p2 + align2, p1 + align1, pos);
++      if (pos < len1)
++      {
++        if (tolower (p2[align2 + pos]) == p1[align1 + pos])
++          {
++            p2[align2 + pos] = toupper (random () & 255);
++            if (tolower (p2[align2 + pos]) == p1[align1 + pos])
++              p2[align2 + pos] = toupper (p1[align1 + pos]
++                                          + 3 + (random () & 127));
++          }
++
++        if (p1[align1 + pos] < tolower (p2[align2 + pos]))
++          result = -1;
++        else
++          result = 1;
++      }
++      p1[len1 + align1] = 0;
++      p2[len2 + align2] = 0;
++
++      FOR_EACH_IMPL (impl, 1)
++      {
++        r = CALL (impl, (char *) (p1 + align1), (char *) (p2 + align2));
++        /* Test whether on 64-bit architectures where ABI requires
++           callee to promote has the promotion been done.  */
++        asm ("" : "=g" (r) : "0" (r));
++        if ((r == 0 && result)
++            || (r < 0 && result >= 0)
++            || (r > 0 && result <= 0))
++          {
++            error (0, 0, "Iteration %zd - wrong result in function %s (%zd, %zd, %zd, %zd, %zd) %ld != %d, p1 %p p2 %p",
++                   n, impl->name, align1, align2, len1, len2, pos, r, result, p1, p2);
++            ret = 1;
++          }
++      }
++    }
++}
++
++int
++test_main (void)
++{
++  size_t i;
++
++  test_init ();
++
++  printf ("%23s", "");
++  FOR_EACH_IMPL (impl, 0)
++    printf ("\t%s", impl->name);
++  putchar ('\n');
++
++  for (i = 1; i < 16; ++i)
++    {
++      do_test (i, i, i, 127, 0);
++      do_test (i, i, i, 127, 1);
++      do_test (i, i, i, 127, -1);
++    }
++
++  for (i = 1; i < 10; ++i)
++    {
++      do_test (0, 0, 2 << i, 127, 0);
++      do_test (0, 0, 2 << i, 254, 0);
++      do_test (0, 0, 2 << i, 127, 1);
++      do_test (0, 0, 2 << i, 254, 1);
++      do_test (0, 0, 2 << i, 127, -1);
++      do_test (0, 0, 2 << i, 254, -1);
++    }
++
++  for (i = 1; i < 8; ++i)
++    {
++      do_test (i, 2 * i, 8 << i, 127, 0);
++      do_test (2 * i, i, 8 << i, 254, 0);
++      do_test (i, 2 * i, 8 << i, 127, 1);
++      do_test (2 * i, i, 8 << i, 254, 1);
++      do_test (i, 2 * i, 8 << i, 127, -1);
++      do_test (2 * i, i, 8 << i, 254, -1);
++    }
++
++  do_random_tests ();
++  return ret;
++}
++
++#include "../test-skeleton.c"
+Index: glibc-2.12-2-gc4ccff1/string/test-strcasestr.c
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/string/test-strcasestr.c
+@@ -0,0 +1,197 @@
++/* Test and measure strcasestr functions.
++   Copyright (C) 2010 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++   Written by Ulrich Drepper <drepper@redhat.com>, 2010.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#define TEST_MAIN
++#include "test-string.h"
++
++
++#define STRCASESTR simple_strcasestr
++#define NO_ALIAS
++#define __strncasecmp strncasecmp
++#include "strcasestr.c"
++
++
++static char *
++stupid_strcasestr (const char *s1, const char *s2)
++{
++  ssize_t s1len = strlen (s1);
++  ssize_t s2len = strlen (s2);
++
++  if (s2len > s1len)
++    return NULL;
++
++  for (ssize_t i = 0; i <= s1len - s2len; ++i)
++    {
++      size_t j;
++      for (j = 0; j < s2len; ++j)
++      if (tolower (s1[i + j]) != tolower (s2[j]))
++        break;
++      if (j == s2len)
++      return (char *) s1 + i;
++    }
++
++  return NULL;
++}
++
++
++typedef char *(*proto_t) (const char *, const char *);
++
++IMPL (stupid_strcasestr, 0)
++IMPL (simple_strcasestr, 0)
++IMPL (strcasestr, 1)
++
++
++static void
++do_one_test (impl_t *impl, const char *s1, const char *s2, char *exp_result)
++{
++  char *result = CALL (impl, s1, s2);
++  if (result != exp_result)
++    {
++      error (0, 0, "Wrong result in function %s %s %s", impl->name,
++           result, exp_result);
++      ret = 1;
++      return;
++    }
++
++  if (HP_TIMING_AVAIL)
++    {
++      hp_timing_t start __attribute ((unused));
++      hp_timing_t stop __attribute ((unused));
++      hp_timing_t best_time = ~(hp_timing_t) 0;
++      size_t i;
++
++      for (i = 0; i < 32; ++i)
++      {
++        HP_TIMING_NOW (start);
++        CALL (impl, s1, s2);
++        HP_TIMING_NOW (stop);
++        HP_TIMING_BEST (best_time, start, stop);
++      }
++
++      printf ("\t%zd", (size_t) best_time);
++    }
++}
++
++
++static void
++do_test (size_t align1, size_t align2, size_t len1, size_t len2,
++       int fail)
++{
++  char *s1 = (char *) (buf1 + align1);
++  char *s2 = (char *) (buf2 + align2);
++
++  static const char d[] = "1234567890abcxyz";
++#define dl (sizeof (d) - 1)
++  char *ss2 = s2;
++  for (size_t l = len2; l > 0; l = l > dl ? l - dl : 0)
++    {
++      size_t t = l > dl ? dl : l;
++      ss2 = mempcpy (ss2, d, t);
++    }
++  s2[len2] = '\0';
++
++  if (fail)
++    {
++      char *ss1 = s1;
++      for (size_t l = len1; l > 0; l = l > dl ? l - dl : 0)
++      {
++        size_t t = l > dl ? dl : l;
++        memcpy (ss1, d, t);
++        ++ss1[len2 > 7 ? 7 : len2 - 1];
++        ss1 += t;
++      }
++    }
++  else
++    {
++      memset (s1, '0', len1);
++      for (size_t i = 0; i < len2; ++i)
++      s1[len1 - len2 + i] = toupper (s2[i]);
++    }
++  s1[len1] = '\0';
++
++  if (HP_TIMING_AVAIL)
++    printf ("Length %4zd/%zd, alignment %2zd/%2zd, %s:",
++          len1, len2, align1, align2, fail ? "fail" : "found");
++
++  FOR_EACH_IMPL (impl, 0)
++    do_one_test (impl, s1, s2, fail ? NULL : s1 + len1 - len2);
++
++  if (HP_TIMING_AVAIL)
++    putchar ('\n');
++}
++
++
++static int
++test_main (void)
++{
++  test_init ();
++
++  printf ("%23s", "");
++  FOR_EACH_IMPL (impl, 0)
++    printf ("\t%s", impl->name);
++  putchar ('\n');
++
++  for (size_t klen = 2; klen < 32; ++klen)
++    for (size_t hlen = 2 * klen; hlen < 16 * klen; hlen += klen)
++      {
++      do_test (0, 0, hlen, klen, 0);
++      do_test (0, 0, hlen, klen, 1);
++      do_test (0, 3, hlen, klen, 0);
++      do_test (0, 3, hlen, klen, 1);
++      do_test (0, 9, hlen, klen, 0);
++      do_test (0, 9, hlen, klen, 1);
++      do_test (0, 15, hlen, klen, 0);
++      do_test (0, 15, hlen, klen, 1);
++
++      do_test (3, 0, hlen, klen, 0);
++      do_test (3, 0, hlen, klen, 1);
++      do_test (3, 3, hlen, klen, 0);
++      do_test (3, 3, hlen, klen, 1);
++      do_test (3, 9, hlen, klen, 0);
++      do_test (3, 9, hlen, klen, 1);
++      do_test (3, 15, hlen, klen, 0);
++      do_test (3, 15, hlen, klen, 1);
++
++      do_test (9, 0, hlen, klen, 0);
++      do_test (9, 0, hlen, klen, 1);
++      do_test (9, 3, hlen, klen, 0);
++      do_test (9, 3, hlen, klen, 1);
++      do_test (9, 9, hlen, klen, 0);
++      do_test (9, 9, hlen, klen, 1);
++      do_test (9, 15, hlen, klen, 0);
++      do_test (9, 15, hlen, klen, 1);
++
++      do_test (15, 0, hlen, klen, 0);
++      do_test (15, 0, hlen, klen, 1);
++      do_test (15, 3, hlen, klen, 0);
++      do_test (15, 3, hlen, klen, 1);
++      do_test (15, 9, hlen, klen, 0);
++      do_test (15, 9, hlen, klen, 1);
++      do_test (15, 15, hlen, klen, 0);
++      do_test (15, 15, hlen, klen, 1);
++      }
++
++  do_test (0, 0, page_size - 1, 16, 0);
++  do_test (0, 0, page_size - 1, 16, 1);
++
++  return ret;
++}
++
++#include "../test-skeleton.c"
+Index: glibc-2.12-2-gc4ccff1/string/test-strncasecmp.c
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/string/test-strncasecmp.c
+@@ -0,0 +1,349 @@
++/* Test and measure strncasecmp functions.
++   Copyright (C) 1999, 2002, 2003, 2005, 2010 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++   Written by Jakub Jelinek <jakub@redhat.com>, 1999.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#include <ctype.h>
++#define TEST_MAIN
++#include "test-string.h"
++
++typedef int (*proto_t) (const char *, const char *, size_t);
++static int simple_strncasecmp (const char *, const char *, size_t);
++static int stupid_strncasecmp (const char *, const char *, size_t);
++
++IMPL (stupid_strncasecmp, 0)
++IMPL (simple_strncasecmp, 0)
++IMPL (strncasecmp, 1)
++
++static int
++simple_strncasecmp (const char *s1, const char *s2, size_t n)
++{
++  int ret;
++
++  if (n == 0)
++    return 0;
++
++  while ((ret = ((unsigned char) tolower (*s1)
++               - (unsigned char) tolower (*s2))) == 0
++       && *s1++)
++    {
++      if (--n == 0)
++      return 0;
++      ++s2;
++    }
++  return ret;
++}
++
++static int
++stupid_strncasecmp (const char *s1, const char *s2, size_t max)
++{
++  size_t ns1 = strlen (s1) + 1;
++  size_t ns2 = strlen (s2) + 1;
++  size_t n = ns1 < ns2 ? ns1 : ns2;
++  if (n > max)
++    n = max;
++  int ret = 0;
++
++  while (n--)
++    {
++      if ((ret = ((unsigned char) tolower (*s1)
++                - (unsigned char) tolower (*s2))) != 0)
++      break;
++      ++s1;
++      ++s2;
++    }
++  return ret;
++}
++
++static int
++check_result (impl_t *impl, const char *s1, const char *s2, size_t n,
++            int exp_result)
++{
++  int result = CALL (impl, s1, s2, n);
++  if ((exp_result == 0 && result != 0)
++      || (exp_result < 0 && result >= 0)
++      || (exp_result > 0 && result <= 0))
++    {
++      error (0, 0, "Wrong result in function %s %d %d", impl->name,
++           result, exp_result);
++      ret = 1;
++      return -1;
++    }
++
++  return 0;
++}
++
++static void
++do_one_test (impl_t *impl, const char *s1, const char *s2, size_t n,
++           int exp_result)
++{
++  if (check_result (impl, s1, s2, n, exp_result) < 0)
++    return;
++
++  if (HP_TIMING_AVAIL)
++    {
++      hp_timing_t start __attribute ((unused));
++      hp_timing_t stop __attribute ((unused));
++      hp_timing_t best_time = ~ (hp_timing_t) 0;
++      size_t i;
++
++      for (i = 0; i < 32; ++i)
++      {
++        HP_TIMING_NOW (start);
++        CALL (impl, s1, s2, n);
++        HP_TIMING_NOW (stop);
++        HP_TIMING_BEST (best_time, start, stop);
++      }
++
++      printf ("\t%zd", (size_t) best_time);
++    }
++}
++
++static void
++do_test (size_t align1, size_t align2, size_t n, size_t len, int max_char,
++       int exp_result)
++{
++  size_t i;
++  char *s1, *s2;
++
++  if (len == 0)
++    return;
++
++  align1 &= 7;
++  if (align1 + len + 1 >= page_size)
++    return;
++
++  align2 &= 7;
++  if (align2 + len + 1 >= page_size)
++    return;
++
++  s1 = (char *) (buf1 + align1);
++  s2 = (char *) (buf2 + align2);
++
++  for (i = 0; i < len; i++)
++    {
++      s1[i] = toupper (1 + 23 * i % max_char);
++      s2[i] = tolower (s1[i]);
++    }
++
++  s1[len] = s2[len] = 0;
++  s1[len + 1] = 23;
++  s2[len + 1] = 24 + exp_result;
++  if ((s2[len - 1] == 'z' && exp_result == -1)
++      || (s2[len - 1] == 'a' && exp_result == 1))
++    s1[len - 1] += exp_result;
++  else
++    s2[len - 1] -= exp_result;
++
++  if (HP_TIMING_AVAIL)
++    printf ("Length %4zd, alignment %2zd/%2zd:", len, align1, align2);
++
++  FOR_EACH_IMPL (impl, 0)
++    do_one_test (impl, s1, s2, n, exp_result);
++
++  if (HP_TIMING_AVAIL)
++    putchar ('\n');
++}
++
++static void
++do_random_tests (void)
++{
++  size_t i, j, n, align1, align2, pos, len1, len2;
++  int result;
++  long r;
++  unsigned char *p1 = buf1 + page_size - 512;
++  unsigned char *p2 = buf2 + page_size - 512;
++
++  for (n = 0; n < ITERATIONS; n++)
++    {
++      align1 = random () & 31;
++      if (random () & 1)
++      align2 = random () & 31;
++      else
++      align2 = align1 + (random () & 24);
++      pos = random () & 511;
++      j = align1 > align2 ? align1 : align2;
++      if (pos + j >= 511)
++      pos = 510 - j - (random () & 7);
++      len1 = random () & 511;
++      if (pos >= len1 && (random () & 1))
++      len1 = pos + (random () & 7);
++      if (len1 + j >= 512)
++      len1 = 511 - j - (random () & 7);
++      if (pos >= len1)
++      len2 = len1;
++      else
++      len2 = len1 + (len1 != 511 - j ? random () % (511 - j - len1) : 0);
++      j = (pos > len2 ? pos : len2) + align1 + 64;
++      if (j > 512)
++      j = 512;
++      for (i = 0; i < j; ++i)
++      {
++        p1[i] = tolower (random () & 255);
++        if (i < len1 + align1 && !p1[i])
++          {
++            p1[i] = tolower (random () & 255);
++            if (!p1[i])
++              p1[i] = tolower (1 + (random () & 127));
++          }
++      }
++      for (i = 0; i < j; ++i)
++      {
++        p2[i] = toupper (random () & 255);
++        if (i < len2 + align2 && !p2[i])
++          {
++            p2[i] = toupper (random () & 255);
++            if (!p2[i])
++              toupper (p2[i] = 1 + (random () & 127));
++          }
++      }
++
++      result = 0;
++      memcpy (p2 + align2, p1 + align1, pos);
++      if (pos < len1)
++      {
++        if (tolower (p2[align2 + pos]) == p1[align1 + pos])
++          {
++            p2[align2 + pos] = toupper (random () & 255);
++            if (tolower (p2[align2 + pos]) == p1[align1 + pos])
++              p2[align2 + pos] = toupper (p1[align1 + pos]
++                                          + 3 + (random () & 127));
++          }
++
++        if (p1[align1 + pos] < tolower (p2[align2 + pos]))
++          result = -1;
++        else
++          result = 1;
++      }
++      p1[len1 + align1] = 0;
++      p2[len2 + align2] = 0;
++
++      FOR_EACH_IMPL (impl, 1)
++      {
++        r = CALL (impl, (char *) (p1 + align1), (char *) (p2 + align2),
++                  pos + 1 + (random () & 255));
++        /* Test whether on 64-bit architectures where ABI requires
++           callee to promote has the promotion been done.  */
++        asm ("" : "=g" (r) : "0" (r));
++        if ((r == 0 && result)
++            || (r < 0 && result >= 0)
++            || (r > 0 && result <= 0))
++          {
++            error (0, 0, "Iteration %zd - wrong result in function %s (%zd, %zd, %zd, %zd, %zd) %ld != %d, p1 %p p2 %p",
++                   n, impl->name, align1, align2, len1, len2, pos, r, result, p1, p2);
++            ret = 1;
++          }
++      }
++    }
++}
++
++
++static void
++check1 (void)
++{
++  static char cp [4096+16] __attribute__ ((aligned(4096)));
++  static char gotrel[4096] __attribute__ ((aligned(4096)));
++  char *s1 = cp + 0xffa;
++  char *s2 = gotrel + 0xcbe;
++  int exp_result;
++  size_t n = 6;
++
++  strcpy (s1, "gottpoff");
++  strcpy (s2, "GOTPLT");
++
++  exp_result = simple_strncasecmp (s1, s2, n);
++  FOR_EACH_IMPL (impl, 0)
++    check_result (impl, s1, s2, n, exp_result);
++}
++
++int
++test_main (void)
++{
++  size_t i;
++
++  test_init ();
++
++  check1 ();
++
++  printf ("%23s", "");
++  FOR_EACH_IMPL (impl, 0)
++    printf ("\t%s", impl->name);
++  putchar ('\n');
++
++  for (i = 1; i < 16; ++i)
++    {
++      do_test (i, i, i - 1, i, 127, 0);
++
++      do_test (i, i, i, i, 127, 0);
++      do_test (i, i, i, i, 127, 1);
++      do_test (i, i, i, i, 127, -1);
++
++      do_test (i, i, i + 1, i, 127, 0);
++      do_test (i, i, i + 1, i, 127, 1);
++      do_test (i, i, i + 1, i, 127, -1);
++    }
++
++  for (i = 1; i < 10; ++i)
++    {
++      do_test (0, 0, (2 << i) - 1, 2 << i, 127, 0);
++      do_test (0, 0, 2 << i, 2 << i, 254, 0);
++      do_test (0, 0, (2 << i) + 1, 2 << i, 127, 0);
++
++      do_test (0, 0, (2 << i) + 1, 2 << i, 254, 0);
++
++      do_test (0, 0, 2 << i, 2 << i, 127, 1);
++      do_test (0, 0, (2 << i) + 10, 2 << i, 127, 1);
++
++      do_test (0, 0, 2 << i, 2 << i, 254, 1);
++      do_test (0, 0, (2 << i) + 10, 2 << i, 254, 1);
++
++      do_test (0, 0, 2 << i, 2 << i, 127, -1);
++      do_test (0, 0, (2 << i) + 10, 2 << i, 127, -1);
++
++      do_test (0, 0, 2 << i, 2 << i, 254, -1);
++      do_test (0, 0, (2 << i) + 10, 2 << i, 254, -1);
++    }
++
++  for (i = 1; i < 8; ++i)
++    {
++      do_test (i, 2 * i, (8 << i) - 1, 8 << i, 127, 0);
++      do_test (i, 2 * i, 8 << i, 8 << i, 127, 0);
++      do_test (i, 2 * i, (8 << i) + 100, 8 << i, 127, 0);
++
++      do_test (2 * i, i, (8 << i) - 1, 8 << i, 254, 0);
++      do_test (2 * i, i, 8 << i, 8 << i, 254, 0);
++      do_test (2 * i, i, (8 << i) + 100, 8 << i, 254, 0);
++
++      do_test (i, 2 * i, 8 << i, 8 << i, 127, 1);
++      do_test (i, 2 * i, (8 << i) + 100, 8 << i, 127, 1);
++
++      do_test (2 * i, i, 8 << i, 8 << i, 254, 1);
++      do_test (2 * i, i, (8 << i) + 100, 8 << i, 254, 1);
++
++      do_test (i, 2 * i, 8 << i, 8 << i, 127, -1);
++      do_test (i, 2 * i, (8 << i) + 100, 8 << i, 127, -1);
++
++      do_test (2 * i, i, 8 << i, 8 << i, 254, -1);
++      do_test (2 * i, i, (8 << i) + 100, 8 << i, 254, -1);
++    }
++
++  do_random_tests ();
++  return ret;
++}
++
++#include "../test-skeleton.c"
+Index: glibc-2.12-2-gc4ccff1/string/test-strnlen.c
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/string/test-strnlen.c
+@@ -0,0 +1,197 @@
++/* Test and measure strlen functions.
++   Copyright (C) 1999, 2002, 2003, 2005, 2010 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++   Written by Jakub Jelinek <jakub@redhat.com>, 1999.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#define TEST_MAIN
++#include "test-string.h"
++
++typedef size_t (*proto_t) (const char *, size_t);
++size_t simple_strnlen (const char *, size_t);
++
++IMPL (simple_strnlen, 0)
++IMPL (strnlen, 1)
++
++size_t
++simple_strnlen (const char *s, size_t maxlen)
++{
++  size_t i;
++
++  for (i = 0; i < maxlen && s[i]; ++i);
++  return i;
++}
++
++static void
++do_one_test (impl_t *impl, const char *s, size_t maxlen, size_t exp_len)
++{
++  size_t len = CALL (impl, s, maxlen);
++  if (len != exp_len)
++    {
++      error (0, 0, "Wrong result in function %s %zd %zd", impl->name,
++           len, exp_len);
++      ret = 1;
++      return;
++    }
++
++  if (HP_TIMING_AVAIL)
++    {
++      hp_timing_t start __attribute ((unused));
++      hp_timing_t stop __attribute ((unused));
++      hp_timing_t best_time = ~ (hp_timing_t) 0;
++      size_t i;
++
++      for (i = 0; i < 32; ++i)
++      {
++        HP_TIMING_NOW (start);
++        CALL (impl, s, maxlen);
++        HP_TIMING_NOW (stop);
++        HP_TIMING_BEST (best_time, start, stop);
++      }
++
++      printf ("\t%zd", (size_t) best_time);
++    }
++}
++
++static void
++do_test (size_t align, size_t len, size_t maxlen, int max_char)
++{
++  size_t i;
++
++  align &= 7;
++  if (align + len >= page_size)
++    return;
++
++  for (i = 0; i < len; ++i)
++    buf1[align + i] = 1 + 7 * i % max_char;
++  buf1[align + len] = 0;
++
++  if (HP_TIMING_AVAIL)
++    printf ("Length %4zd, alignment %2zd:", len, align);
++
++  FOR_EACH_IMPL (impl, 0)
++    do_one_test (impl, (char *) (buf1 + align), maxlen, MIN (len, maxlen));
++
++  if (HP_TIMING_AVAIL)
++    putchar ('\n');
++}
++
++static void
++do_random_tests (void)
++{
++  size_t i, j, n, align, len;
++  unsigned char *p = buf1 + page_size - 512;
++
++  for (n = 0; n < ITERATIONS; n++)
++    {
++      align = random () & 15;
++      len = random () & 511;
++      if (len + align > 510)
++      len = 511 - align - (random () & 7);
++      j = len + align + 64;
++      if (j > 512)
++      j = 512;
++
++      for (i = 0; i < j; i++)
++      {
++        if (i == len + align)
++          p[i] = 0;
++        else
++          {
++            p[i] = random () & 255;
++            if (i >= align && i < len + align && !p[i])
++              p[i] = (random () & 127) + 1;
++          }
++      }
++
++      FOR_EACH_IMPL (impl, 1)
++      {
++        if (len > 0
++            && CALL (impl, (char *) (p + align), len - 1) != len - 1)
++          {
++            error (0, 0, "Iteration %zd (limited) - wrong result in function %s (%zd) %zd != %zd, p %p",
++                   n, impl->name, align,
++                   CALL (impl, (char *) (p + align), len - 1), len - 1, p);
++            ret = 1;
++          }
++        if (CALL (impl, (char *) (p + align), len) != len)
++          {
++            error (0, 0, "Iteration %zd (exact) - wrong result in function %s (%zd) %zd != %zd, p %p",
++                   n, impl->name, align,
++                   CALL (impl, (char *) (p + align), len), len, p);
++            ret = 1;
++          }
++        if (CALL (impl, (char *) (p + align), len + 1) != len)
++          {
++            error (0, 0, "Iteration %zd (long) - wrong result in function %s (%zd) %zd != %zd, p %p",
++                   n, impl->name, align,
++                   CALL (impl, (char *) (p + align), len + 1), len, p);
++            ret = 1;
++          }
++      }
++    }
++}
++
++int
++test_main (void)
++{
++  size_t i;
++
++  test_init ();
++
++  printf ("%20s", "");
++  FOR_EACH_IMPL (impl, 0)
++    printf ("\t%s", impl->name);
++  putchar ('\n');
++
++  for (i = 1; i < 8; ++i)
++    {
++      do_test (0, i, i - 1, 127);
++      do_test (0, i, i, 127);
++      do_test (0, i, i + 1, 127);
++    }
++
++  for (i = 1; i < 8; ++i)
++    {
++      do_test (i, i, i - 1, 127);
++      do_test (i, i, i, 127);
++      do_test (i, i, i + 1, 127);
++    }
++
++  for (i = 2; i <= 10; ++i)
++    {
++      do_test (0, 1 << i, 5000, 127);
++      do_test (1, 1 << i, 5000, 127);
++    }
++
++  for (i = 1; i < 8; ++i)
++    do_test (0, i, 5000, 255);
++
++  for (i = 1; i < 8; ++i)
++    do_test (i, i, 5000, 255);
++
++  for (i = 2; i <= 10; ++i)
++    {
++      do_test (0, 1 << i, 5000, 255);
++      do_test (1, 1 << i, 5000, 255);
++    }
++
++  do_random_tests ();
++  return ret;
++}
++
++#include "../test-skeleton.c"
+Index: glibc-2.12-2-gc4ccff1/string/test-strstr.c
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/string/test-strstr.c
+@@ -0,0 +1,194 @@
++/* Test and measure strstr functions.
++   Copyright (C) 2010 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++   Written by Ulrich Drepper <drepper@redhat.com>, 2010.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#define TEST_MAIN
++#include "test-string.h"
++
++
++#define STRSTR simple_strstr
++#include "strstr.c"
++
++
++static char *
++stupid_strstr (const char *s1, const char *s2)
++{
++  ssize_t s1len = strlen (s1);
++  ssize_t s2len = strlen (s2);
++
++  if (s2len > s1len)
++    return NULL;
++
++  for (ssize_t i = 0; i <= s1len - s2len; ++i)
++    {
++      size_t j;
++      for (j = 0; j < s2len; ++j)
++      if (s1[i + j] != s2[j])
++        break;
++      if (j == s2len)
++      return (char *) s1 + i;
++    }
++
++  return NULL;
++}
++
++
++typedef char *(*proto_t) (const char *, const char *);
++
++IMPL (stupid_strstr, 0)
++IMPL (simple_strstr, 0)
++IMPL (strstr, 1)
++
++
++static void
++do_one_test (impl_t *impl, const char *s1, const char *s2, char *exp_result)
++{
++  char *result = CALL (impl, s1, s2);
++  if (result != exp_result)
++    {
++      error (0, 0, "Wrong result in function %s %s %s", impl->name,
++           result, exp_result);
++      ret = 1;
++      return;
++    }
++
++  if (HP_TIMING_AVAIL)
++    {
++      hp_timing_t start __attribute ((unused));
++      hp_timing_t stop __attribute ((unused));
++      hp_timing_t best_time = ~(hp_timing_t) 0;
++      size_t i;
++
++      for (i = 0; i < 32; ++i)
++      {
++        HP_TIMING_NOW (start);
++        CALL (impl, s1, s2);
++        HP_TIMING_NOW (stop);
++        HP_TIMING_BEST (best_time, start, stop);
++      }
++
++      printf ("\t%zd", (size_t) best_time);
++    }
++}
++
++
++static void
++do_test (size_t align1, size_t align2, size_t len1, size_t len2,
++       int fail)
++{
++  char *s1 = (char *) (buf1 + align1);
++  char *s2 = (char *) (buf2 + align2);
++
++  static const char d[] = "1234567890abcdef";
++#define dl (sizeof (d) - 1)
++  char *ss2 = s2;
++  for (size_t l = len2; l > 0; l = l > dl ? l - dl : 0)
++    {
++      size_t t = l > dl ? dl : l;
++      ss2 = mempcpy (ss2, d, t);
++    }
++  s2[len2] = '\0';
++
++  if (fail)
++    {
++      char *ss1 = s1;
++      for (size_t l = len1; l > 0; l = l > dl ? l - dl : 0)
++      {
++        size_t t = l > dl ? dl : l;
++        memcpy (ss1, d, t);
++        ++ss1[len2 > 7 ? 7 : len2 - 1];
++        ss1 += t;
++      }
++    }
++  else
++    {
++      memset (s1, '0', len1);
++      memcpy (s1 + len1 - len2, s2, len2);
++    }
++  s1[len1] = '\0';
++
++  if (HP_TIMING_AVAIL)
++    printf ("Length %4zd/%zd, alignment %2zd/%2zd, %s:",
++          len1, len2, align1, align2, fail ? "fail" : "found");
++
++  FOR_EACH_IMPL (impl, 0)
++    do_one_test (impl, s1, s2, fail ? NULL : s1 + len1 - len2);
++
++  if (HP_TIMING_AVAIL)
++    putchar ('\n');
++}
++
++
++static int
++test_main (void)
++{
++  test_init ();
++
++  printf ("%23s", "");
++  FOR_EACH_IMPL (impl, 0)
++    printf ("\t%s", impl->name);
++  putchar ('\n');
++
++  for (size_t klen = 2; klen < 32; ++klen)
++    for (size_t hlen = 2 * klen; hlen < 16 * klen; hlen += klen)
++      {
++      do_test (0, 0, hlen, klen, 0);
++      do_test (0, 0, hlen, klen, 1);
++      do_test (0, 3, hlen, klen, 0);
++      do_test (0, 3, hlen, klen, 1);
++      do_test (0, 9, hlen, klen, 0);
++      do_test (0, 9, hlen, klen, 1);
++      do_test (0, 15, hlen, klen, 0);
++      do_test (0, 15, hlen, klen, 1);
++
++      do_test (3, 0, hlen, klen, 0);
++      do_test (3, 0, hlen, klen, 1);
++      do_test (3, 3, hlen, klen, 0);
++      do_test (3, 3, hlen, klen, 1);
++      do_test (3, 9, hlen, klen, 0);
++      do_test (3, 9, hlen, klen, 1);
++      do_test (3, 15, hlen, klen, 0);
++      do_test (3, 15, hlen, klen, 1);
++
++      do_test (9, 0, hlen, klen, 0);
++      do_test (9, 0, hlen, klen, 1);
++      do_test (9, 3, hlen, klen, 0);
++      do_test (9, 3, hlen, klen, 1);
++      do_test (9, 9, hlen, klen, 0);
++      do_test (9, 9, hlen, klen, 1);
++      do_test (9, 15, hlen, klen, 0);
++      do_test (9, 15, hlen, klen, 1);
++
++      do_test (15, 0, hlen, klen, 0);
++      do_test (15, 0, hlen, klen, 1);
++      do_test (15, 3, hlen, klen, 0);
++      do_test (15, 3, hlen, klen, 1);
++      do_test (15, 9, hlen, klen, 0);
++      do_test (15, 9, hlen, klen, 1);
++      do_test (15, 15, hlen, klen, 0);
++      do_test (15, 15, hlen, klen, 1);
++      }
++
++  do_test (0, 0, page_size - 1, 16, 0);
++  do_test (0, 0, page_size - 1, 16, 1);
++
++  return ret;
++}
++
++#include "../test-skeleton.c"
+Index: glibc-2.12-2-gc4ccff1/string/tester.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/string/tester.c
++++ glibc-2.12-2-gc4ccff1/string/tester.c
+@@ -441,20 +441,21 @@ test_strnlen (void)
+   check (strnlen ("", 10) == 0, 1);           /* Empty. */
+   check (strnlen ("a", 10) == 1, 2);          /* Single char. */
+   check (strnlen ("abcd", 10) == 4, 3);               /* Multiple chars. */
+-  check (strnlen ("foo", (size_t)-1) == 3, 4);        /* limits of n. */
++  check (strnlen ("foo", (size_t) -1) == 3, 4);       /* limits of n. */
++  check (strnlen ("abcd", 0) == 0, 5);                /* Restricted. */
++  check (strnlen ("abcd", 1) == 1, 6);                /* Restricted. */
++  check (strnlen ("abcd", 2) == 2, 7);                /* Restricted. */
++  check (strnlen ("abcd", 3) == 3, 8);                /* Restricted. */
++  check (strnlen ("abcd", 4) == 4, 9);                /* Restricted. */
+-  {
+-    char buf[4096];
+-    int i;
+-    char *p;
+-    for (i=0; i < 0x100; i++)
+-      {
+-      p = (char *) ((unsigned long int)(buf + 0xff) & ~0xff) + i;
+-      strcpy (p, "OK");
+-      strcpy (p+3, "BAD/WRONG");
+-      check (strnlen (p, 100) == 2, 5+i);
+-      }
+-   }
++  char buf[4096];
++  for (int i = 0; i < 0x100; ++i)
++    {
++      char *p = (char *) ((unsigned long int)(buf + 0xff) & ~0xff) + i;
++      strcpy (p, "OK");
++      strcpy (p + 3, "BAD/WRONG");
++      check (strnlen (p, 100) == 2, 10 + i);
++    }
+ }
+ static void
+Index: glibc-2.12-2-gc4ccff1/string/tst-strlen.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/string/tst-strlen.c
++++ glibc-2.12-2-gc4ccff1/string/tst-strlen.c
+@@ -31,11 +31,21 @@ main(int argc, char *argv[])
+             buf[words * 4 + 3] = (last & 8) != 0 ? 'e' : '\0';
+             buf[words * 4 + 4] = '\0';
+-            if (strlen (buf) != words * 4 + lens[last]
+-                || strnlen (buf, -1) != words * 4 + lens[last])
++            if (strlen (buf) != words * 4 + lens[last])
+               {
+-                printf ("failed for base=%Zu, words=%Zu, and last=%Zu\n",
+-                        base, words, last);
++                printf ("\
++strlen failed for base=%Zu, words=%Zu, and last=%Zu (is %zd, expected %zd)\n",
++                        base, words, last,
++                        strlen (buf), words * 4 + lens[last]);
++                return 1;
++              }
++
++            if (strnlen (buf, -1) != words * 4 + lens[last])
++              {
++                printf ("\
++strnlen failed for base=%Zu, words=%Zu, and last=%Zu (is %zd, expected %zd)\n",
++                        base, words, last,
++                        strnlen (buf, -1), words * 4 + lens[last]);
+                 return 1;
+               }
+           }
+Index: glibc-2.12-2-gc4ccff1/sysdeps/i386/i686/multiarch/Makefile
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/i386/i686/multiarch/Makefile
++++ glibc-2.12-2-gc4ccff1/sysdeps/i386/i686/multiarch/Makefile
+@@ -9,7 +9,7 @@ sysdep_routines += bzero-sse2 memset-sse
+                  memmove-ssse3-rep bcopy-ssse3 bcopy-ssse3-rep \
+                  memset-sse2-rep bzero-sse2-rep strcmp-ssse3 \
+                  strcmp-sse4 strncmp-c strncmp-ssse3 strncmp-sse4 \
+-                 memcmp-ssse3 memcmp-sse4
++                 memcmp-ssse3 memcmp-sse4 strcasestr-nonascii
+ ifeq (yes,$(config-cflags-sse4))
+ sysdep_routines += strcspn-c strpbrk-c strspn-c strstr-c strcasestr-c
+ CFLAGS-strcspn-c.c += -msse4
+@@ -17,6 +17,7 @@ CFLAGS-strpbrk-c.c += -msse4
+ CFLAGS-strspn-c.c += -msse4
+ CFLAGS-strstr.c += -msse4
+ CFLAGS-strcasestr.c += -msse4
++CFLAGS-strcasestr-nonascii.c += -msse4
+ endif
+ endif
+Index: glibc-2.12-2-gc4ccff1/sysdeps/i386/i686/multiarch/strcasestr-nonascii.c
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/sysdeps/i386/i686/multiarch/strcasestr-nonascii.c
+@@ -0,0 +1,2 @@
++#include <nmmintrin.h>
++#include <sysdeps/x86_64/multiarch/strcasestr-nonascii.c>
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/Makefile
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/Makefile
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/Makefile
+@@ -12,7 +12,8 @@ sysdep_routines += _mcount
+ endif
+ ifeq ($(subdir),string)
+-sysdep_routines += cacheinfo
++sysdep_routines += cacheinfo strcasecmp_l-nonascii strncase_l-nonascii
++gen-as-const-headers += locale-defines.sym
+ endif
+ ifeq ($(subdir),elf)
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/locale-defines.sym
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/locale-defines.sym
+@@ -0,0 +1,11 @@
++#include <locale/localeinfo.h>
++#include <langinfo.h>
++#include <stddef.h>
++
++--
++
++LOCALE_T___LOCALES            offsetof (struct __locale_struct, __locales)
++LC_CTYPE
++_NL_CTYPE_NONASCII_CASE
++LOCALE_DATA_VALUES            offsetof (struct __locale_data, values)
++SIZEOF_VALUES                 sizeof (((struct __locale_data *) 0)->values[0])
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/Makefile
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/multiarch/Makefile
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/Makefile
+@@ -5,7 +5,9 @@ endif
+ ifeq ($(subdir),string)
+ sysdep_routines += stpncpy-c strncpy-c strcmp-ssse3 strncmp-ssse3 \
+-                 strend-sse4 memcmp-sse4
++                 strend-sse4 memcmp-sse4 \
++                 strcasestr-nonascii strcasecmp_l-ssse3 \
++                 strncase_l-ssse3
+ ifeq (yes,$(config-cflags-sse4))
+ sysdep_routines += strcspn-c strpbrk-c strspn-c strstr-c strcasestr-c
+ CFLAGS-strcspn-c.c += -msse4
+@@ -13,5 +15,6 @@ CFLAGS-strpbrk-c.c += -msse4
+ CFLAGS-strspn-c.c += -msse4
+ CFLAGS-strstr.c += -msse4
+ CFLAGS-strcasestr.c += -msse4
++CFLAGS-strcasestr-nonascii.c += -msse4
+ endif
+ endif
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strcasecmp_l-ssse3.S
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strcasecmp_l-ssse3.S
+@@ -0,0 +1,6 @@
++#define USE_SSSE3 1
++#define USE_AS_STRCASECMP_L
++#define NO_NOLOCALE_ALIAS
++#define STRCMP __strcasecmp_l_ssse3
++#define __strcasecmp __strcasecmp_ssse3
++#include "../strcmp.S"
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strcasecmp_l.S
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strcasecmp_l.S
+@@ -0,0 +1,6 @@
++#define STRCMP __strcasecmp_l
++#define USE_AS_STRCASECMP_L
++#include "strcmp.S"
++
++weak_alias (__strcasecmp_l, strcasecmp_l)
++libc_hidden_def (strcasecmp_l)
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strcasestr-nonascii.c
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strcasestr-nonascii.c
+@@ -0,0 +1,50 @@
++/* strstr with SSE4.2 intrinsics
++   Copyright (C) 2010 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++# include <ctype.h>
++
++
++/* Similar to __m128i_strloadu.  Convert to lower case for none-POSIX/C
++   locale.  */
++static inline __m128i
++__m128i_strloadu_tolower (const unsigned char *p)
++{
++  union
++    {
++      char b[16];
++      __m128i x;
++    } u;
++
++  for (int i = 0; i < 16; ++i)
++    if (p[i] == 0)
++      {
++      u.b[i] = 0;
++      break;
++      }
++    else
++      u.b[i] = tolower (p[i]);
++
++  return u.x;
++}
++
++
++#define STRCASESTR_NONASCII
++#define USE_AS_STRCASESTR
++#define STRSTR_SSE42 __strcasestr_sse42_nonascii
++#include "strstr.c"
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strcasestr.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/multiarch/strcasestr.c
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strcasestr.c
+@@ -1,3 +1,7 @@
++extern char *__strcasestr_sse42_nonascii (const unsigned char *s1,
++                                        const unsigned char *s2)
++  attribute_hidden;
++
+ #define USE_AS_STRCASESTR
+ #define STRSTR_SSE42 __strcasestr_sse42
+ #include "strstr.c"
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strcmp.S
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/multiarch/strcmp.S
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strcmp.S
+@@ -24,7 +24,7 @@
+ #ifdef USE_AS_STRNCMP
+ /* Since the counter, %r11, is unsigned, we branch to strcmp_exitz
+    if the new counter > the old one or is 0.  */
+-#define UPDATE_STRNCMP_COUNTER                                \
++# define UPDATE_STRNCMP_COUNTER                               \
+       /* calculate left number to compare */          \
+       lea     -16(%rcx, %r11), %r9;                   \
+       cmp     %r9, %r11;                              \
+@@ -33,23 +33,50 @@
+       je      LABEL(strcmp_exitz_sse4_2);             \
+       mov     %r9, %r11
+-#define STRCMP_SSE42  __strncmp_sse42
+-#define STRCMP_SSSE3  __strncmp_ssse3
+-#define STRCMP_SSE2   __strncmp_sse2
+-#define __GI_STRCMP   __GI_strncmp
++# define STRCMP_SSE42 __strncmp_sse42
++# define STRCMP_SSSE3 __strncmp_ssse3
++# define STRCMP_SSE2  __strncmp_sse2
++# define __GI_STRCMP  __GI_strncmp
++#elif defined USE_AS_STRCASECMP_L
++# include "locale-defines.h"
++
++# define UPDATE_STRNCMP_COUNTER
++
++# define STRCMP_SSE42 __strcasecmp_l_sse42
++# define STRCMP_SSSE3 __strcasecmp_l_ssse3
++# define STRCMP_SSE2  __strcasecmp_l_sse2
++# define __GI_STRCMP  __GI___strcasecmp_l
++#elif defined USE_AS_STRNCASECMP_L
++# include "locale-defines.h"
++
++/* Since the counter, %r11, is unsigned, we branch to strcmp_exitz
++   if the new counter > the old one or is 0.  */
++# define UPDATE_STRNCMP_COUNTER                               \
++      /* calculate left number to compare */          \
++      lea     -16(%rcx, %r11), %r9;                   \
++      cmp     %r9, %r11;                              \
++      jb      LABEL(strcmp_exitz_sse4_2);             \
++      test    %r9, %r9;                               \
++      je      LABEL(strcmp_exitz_sse4_2);             \
++      mov     %r9, %r11
++
++# define STRCMP_SSE42 __strncasecmp_l_sse42
++# define STRCMP_SSSE3 __strncasecmp_l_ssse3
++# define STRCMP_SSE2  __strncasecmp_l_sse2
++# define __GI_STRCMP  __GI___strncasecmp_l
+ #else
+-#define UPDATE_STRNCMP_COUNTER
+-#ifndef STRCMP
+-#define STRCMP                strcmp
+-#define STRCMP_SSE42  __strcmp_sse42
+-#define STRCMP_SSSE3  __strcmp_ssse3
+-#define STRCMP_SSE2   __strcmp_sse2
+-#define __GI_STRCMP   __GI_strcmp
+-#endif
++# define UPDATE_STRNCMP_COUNTER
++# ifndef STRCMP
++#  define STRCMP      strcmp
++#  define STRCMP_SSE42        __strcmp_sse42
++#  define STRCMP_SSSE3        __strcmp_ssse3
++#  define STRCMP_SSE2 __strcmp_sse2
++#  define __GI_STRCMP __GI_strcmp
++# endif
+ #endif
+ #ifndef LABEL
+-#define LABEL(l) L(l)
++# define LABEL(l) L(l)
+ #endif
+ /* Define multiple versions only for the definition in libc.  Don't
+@@ -73,6 +100,43 @@ ENTRY(STRCMP)
+ 2:    ret
+ END(STRCMP)
++# ifdef USE_AS_STRCASECMP_L
++ENTRY(__strcasecmp)
++      .type   __strcasecmp, @gnu_indirect_function
++      cmpl    $0, __cpu_features+KIND_OFFSET(%rip)
++      jne     1f
++      call    __init_cpu_features
++1:
++      leaq    __strcasecmp_sse42(%rip), %rax
++      testl   $bit_SSE4_2, __cpu_features+CPUID_OFFSET+index_SSE4_2(%rip)
++      jnz     2f
++      leaq    __strcasecmp_ssse3(%rip), %rax
++      testl   $bit_SSSE3, __cpu_features+CPUID_OFFSET+index_SSSE3(%rip)
++      jnz     2f
++      leaq    __strcasecmp_sse2(%rip), %rax
++2:    ret
++END(__strcasecmp)
++weak_alias (__strcasecmp, strcasecmp)
++# endif
++# ifdef USE_AS_STRNCASECMP_L
++ENTRY(__strncasecmp)
++      .type   __strncasecmp, @gnu_indirect_function
++      cmpl    $0, __cpu_features+KIND_OFFSET(%rip)
++      jne     1f
++      call    __init_cpu_features
++1:
++      leaq    __strncasecmp_sse42(%rip), %rax
++      testl   $bit_SSE4_2, __cpu_features+CPUID_OFFSET+index_SSE4_2(%rip)
++      jnz     2f
++      leaq    __strncasecmp_ssse3(%rip), %rax
++      testl   $bit_SSSE3, __cpu_features+CPUID_OFFSET+index_SSSE3(%rip)
++      jnz     2f
++      leaq    __strncasecmp_sse2(%rip), %rax
++2:    ret
++END(__strncasecmp)
++weak_alias (__strncasecmp, strncasecmp)
++# endif
++
+ /* We use 0x1a:
+       _SIDD_SBYTE_OPS
+       | _SIDD_CMP_EQUAL_EACH
+@@ -101,8 +165,31 @@ END(STRCMP)
+       /* Put all SSE 4.2 functions together.  */
+       .section .text.sse4.2,"ax",@progbits
+-      .align  16
++      .align  16
+       .type   STRCMP_SSE42, @function
++# ifdef USE_AS_STRCASECMP_L
++ENTRY (__strcasecmp_sse42)
++      movq    __libc_tsd_LOCALE@gottpoff(%rip),%rax
++      movq    %fs:(%rax),%rdx
++
++      // XXX 5 byte should be before the function
++      /* 5-byte NOP.  */
++      .byte   0x0f,0x1f,0x44,0x00,0x00
++END (__strcasecmp_sse42)
++      /* FALLTHROUGH to strcasecmp_l.  */
++# endif
++# ifdef USE_AS_STRNCASECMP_L
++ENTRY (__strncasecmp_sse42)
++      movq    __libc_tsd_LOCALE@gottpoff(%rip),%rax
++      movq    %fs:(%rax),%rcx
++
++      // XXX 5 byte should be before the function
++      /* 5-byte NOP.  */
++      .byte   0x0f,0x1f,0x44,0x00,0x00
++END (__strncasecmp_sse42)
++      /* FALLTHROUGH to strncasecmp_l.  */
++# endif
++
+ STRCMP_SSE42:
+       cfi_startproc
+       CALL_MCOUNT
+@@ -110,24 +197,87 @@ STRCMP_SSE42:
+ /*
+  * This implementation uses SSE to compare up to 16 bytes at a time.
+  */
+-#ifdef USE_AS_STRNCMP
++# ifdef USE_AS_STRCASECMP_L
++      /* We have to fall back on the C implementation for locales
++         with encodings not matching ASCII for single bytes.  */
++#  if LOCALE_T___LOCALES != 0 || LC_CTYPE != 0
++      movq    LOCALE_T___LOCALES+LC_CTYPE*8(%rdx), %rax
++#  else
++      movq    (%rdx), %rax
++#  endif
++      testl   $0, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%rax)
++      jne     __strcasecmp_l_nonascii
++# endif
++# ifdef USE_AS_STRNCASECMP_L
++      /* We have to fall back on the C implementation for locales
++         with encodings not matching ASCII for single bytes.  */
++#  if LOCALE_T___LOCALES != 0 || LC_CTYPE != 0
++      movq    LOCALE_T___LOCALES+LC_CTYPE*8(%rcx), %rax
++#  else
++      movq    (%rcx), %rax
++#  endif
++      testl   $0, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%rax)
++      jne     __strncasecmp_l_nonascii
++# endif
++
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       test    %rdx, %rdx
+       je      LABEL(strcmp_exitz_sse4_2)
+       cmp     $1, %rdx
+       je      LABEL(Byte0_sse4_2)
+       mov     %rdx, %r11
+-#endif
++# endif
+       mov     %esi, %ecx
+       mov     %edi, %eax
+ /* Use 64bit AND here to avoid long NOP padding.  */
+       and     $0x3f, %rcx             /* rsi alignment in cache line */
+       and     $0x3f, %rax             /* rdi alignment in cache line */
++# if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
++      .section .rodata.cst16,"aM",@progbits,16
++      .align 16
++.Lbelowupper_sse4:
++      .quad   0x4040404040404040
++      .quad   0x4040404040404040
++.Ltopupper_sse4:
++      .quad   0x5b5b5b5b5b5b5b5b
++      .quad   0x5b5b5b5b5b5b5b5b
++.Ltouppermask_sse4:
++      .quad   0x2020202020202020
++      .quad   0x2020202020202020
++      .previous
++      movdqa  .Lbelowupper_sse4(%rip), %xmm4
++#  define UCLOW_reg %xmm4
++      movdqa  .Ltopupper_sse4(%rip), %xmm5
++#  define UCHIGH_reg %xmm5
++      movdqa  .Ltouppermask_sse4(%rip), %xmm6
++#  define LCQWORD_reg %xmm6
++# endif
+       cmp     $0x30, %ecx
+       ja      LABEL(crosscache_sse4_2)/* rsi: 16-byte load will cross cache line */
+       cmp     $0x30, %eax
+       ja      LABEL(crosscache_sse4_2)/* rdi: 16-byte load will cross cache line */
+       movdqu  (%rdi), %xmm1
+       movdqu  (%rsi), %xmm2
++# if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
++#  define TOLOWER(reg1, reg2) \
++      movdqa  reg1, %xmm7;                                    \
++      movdqa  UCHIGH_reg, %xmm8;                              \
++      movdqa  reg2, %xmm9;                                    \
++      movdqa  UCHIGH_reg, %xmm10;                             \
++      pcmpgtb UCLOW_reg, %xmm7;                               \
++      pcmpgtb reg1, %xmm8;                                    \
++      pcmpgtb UCLOW_reg, %xmm9;                               \
++      pcmpgtb reg2, %xmm10;                                   \
++      pand    %xmm8, %xmm7;                                   \
++      pand    %xmm10, %xmm9;                                  \
++      pand    LCQWORD_reg, %xmm7;                             \
++      pand    LCQWORD_reg, %xmm9;                             \
++      por     %xmm7, reg1;                                    \
++      por     %xmm9, reg2
++      TOLOWER (%xmm1, %xmm2)
++# else
++#  define TOLOWER(reg1, reg2)
++# endif
+       pxor    %xmm0, %xmm0            /* clear %xmm0 for null char checks */
+       pcmpeqb %xmm1, %xmm0            /* Any null chars? */
+       pcmpeqb %xmm2, %xmm1            /* compare first 16 bytes for equality */
+@@ -135,10 +285,10 @@ STRCMP_SSE42:
+       pmovmskb %xmm1, %edx
+       sub     $0xffff, %edx           /* if first 16 bytes are same, edx == 0xffff */
+       jnz     LABEL(less16bytes_sse4_2)/* If not, find different value or null char */
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)/* finish comparision */
+-#endif
++# endif
+       add     $16, %rsi               /* prepare to search next 16 bytes */
+       add     $16, %rdi               /* prepare to search next 16 bytes */
+@@ -180,7 +330,13 @@ LABEL(ashr_0_sse4_2):
+       movdqa  (%rsi), %xmm1
+       pxor    %xmm0, %xmm0                    /* clear %xmm0 for null char check */
+       pcmpeqb %xmm1, %xmm0                    /* Any null chars? */
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+       pcmpeqb (%rdi), %xmm1                   /* compare 16 bytes for equality */
++# else
++      movdqa  (%rdi), %xmm2
++      TOLOWER (%xmm1, %xmm2)
++      pcmpeqb %xmm2, %xmm1                    /* compare 16 bytes for equality */
++# endif
+       psubb   %xmm0, %xmm1                    /* packed sub of comparison results*/
+       pmovmskb %xmm1, %r9d
+       shr     %cl, %edx                       /* adjust 0xffff for offset */
+@@ -204,44 +360,60 @@ LABEL(ashr_0_sse4_2):
+       .p2align 4
+ LABEL(ashr_0_use_sse4_2):
+       movdqa  (%rdi,%rdx), %xmm0
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+       pcmpistri      $0x1a,(%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       lea     16(%rdx), %rdx
+       jbe     LABEL(ashr_0_use_sse4_2_exit)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       movdqa  (%rdi,%rdx), %xmm0
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+       pcmpistri      $0x1a,(%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       lea     16(%rdx), %rdx
+       jbe     LABEL(ashr_0_use_sse4_2_exit)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       jmp     LABEL(ashr_0_use_sse4_2)
+       .p2align 4
+ LABEL(ashr_0_use_sse4_2_exit):
+       jnc     LABEL(strcmp_exitz_sse4_2)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     %rcx, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       lea     -16(%rdx, %rcx), %rcx
+       movzbl  (%rdi, %rcx), %eax
+       movzbl  (%rsi, %rcx), %edx
++# if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
++      leaq    _nl_C_LC_CTYPE_tolower+128*4(%rip), %rcx
++      movl    (%rcx,%rax,4), %eax
++      movl    (%rcx,%rdx,4), %edx
++# endif
+       sub     %edx, %eax
+       ret
+-
+ /*
+  * The following cases will be handled by ashr_1
+- * rcx(offset of rsi)  rax(offset of rdi)   relative offset           corresponding case
++ * rcx(offset of rsi)  rax(offset of rdi)   relative offset   corresponding case
+  *        n(15)            n -15            0(15 +(n-15) - n)         ashr_1
+  */
+       .p2align 4
+@@ -251,6 +423,7 @@ LABEL(ashr_1_sse4_2):
+       movdqa  (%rsi), %xmm1
+       pcmpeqb %xmm1, %xmm0            /* Any null chars? */
+       pslldq  $15, %xmm2              /* shift first string to align with second */
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm2            /* compare 16 bytes for equality */
+       psubb   %xmm0, %xmm2            /* packed sub of comparison results*/
+       pmovmskb %xmm2, %r9d
+@@ -281,12 +454,18 @@ LABEL(loop_ashr_1_use_sse4_2):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $1, -16(%rdi, %rdx), %xmm0
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+       pcmpistri       $0x1a,(%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       jbe     LABEL(use_sse4_2_exit)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       add     $16, %rdx
+       add     $16, %r10
+@@ -294,12 +473,18 @@ LABEL(loop_ashr_1_use_sse4_2):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $1, -16(%rdi, %rdx), %xmm0
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+       pcmpistri       $0x1a,(%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       jbe     LABEL(use_sse4_2_exit)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       add     $16, %rdx
+       jmp     LABEL(loop_ashr_1_use_sse4_2)
+@@ -309,10 +494,10 @@ LABEL(nibble_ashr_1_use_sse4_2):
+       movdqa  -16(%rdi, %rdx), %xmm0
+       psrldq  $1, %xmm0
+       pcmpistri      $0x3a,%xmm0, %xmm0
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       cmp     %r11, %rcx
+       jae     LABEL(nibble_ashr_use_sse4_2_exit)
+-#endif
++# endif
+       cmp     $14, %ecx
+       ja      LABEL(loop_ashr_1_use_sse4_2)
+@@ -320,7 +505,7 @@ LABEL(nibble_ashr_1_use_sse4_2):
+ /*
+  * The following cases will be handled by ashr_2
+- * rcx(offset of rsi)  rax(offset of rdi)   relative offset           corresponding case
++ * rcx(offset of rsi)  rax(offset of rdi)   relative offset   corresponding case
+  *        n(14~15)            n -14         1(15 +(n-14) - n)         ashr_2
+  */
+       .p2align 4
+@@ -330,6 +515,7 @@ LABEL(ashr_2_sse4_2):
+       movdqa  (%rsi), %xmm1
+       pcmpeqb %xmm1, %xmm0
+       pslldq  $14, %xmm2
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm2
+       psubb   %xmm0, %xmm2
+       pmovmskb %xmm2, %r9d
+@@ -360,12 +546,18 @@ LABEL(loop_ashr_2_use_sse4_2):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $2, -16(%rdi, %rdx), %xmm0
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+       pcmpistri       $0x1a,(%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       jbe     LABEL(use_sse4_2_exit)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       add     $16, %rdx
+       add     $16, %r10
+@@ -373,12 +565,18 @@ LABEL(loop_ashr_2_use_sse4_2):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $2, -16(%rdi, %rdx), %xmm0
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+       pcmpistri       $0x1a,(%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       jbe     LABEL(use_sse4_2_exit)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       add     $16, %rdx
+       jmp     LABEL(loop_ashr_2_use_sse4_2)
+@@ -388,10 +586,10 @@ LABEL(nibble_ashr_2_use_sse4_2):
+       movdqa  -16(%rdi, %rdx), %xmm0
+       psrldq  $2, %xmm0
+       pcmpistri      $0x3a,%xmm0, %xmm0
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       cmp     %r11, %rcx
+       jae     LABEL(nibble_ashr_use_sse4_2_exit)
+-#endif
++# endif
+       cmp     $13, %ecx
+       ja      LABEL(loop_ashr_2_use_sse4_2)
+@@ -409,6 +607,7 @@ LABEL(ashr_3_sse4_2):
+       movdqa  (%rsi), %xmm1
+       pcmpeqb %xmm1, %xmm0
+       pslldq  $13, %xmm2
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm2
+       psubb   %xmm0, %xmm2
+       pmovmskb %xmm2, %r9d
+@@ -439,12 +638,18 @@ LABEL(loop_ashr_3_use_sse4_2):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $3, -16(%rdi, %rdx), %xmm0
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+       pcmpistri       $0x1a,(%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       jbe     LABEL(use_sse4_2_exit)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       add     $16, %rdx
+       add     $16, %r10
+@@ -452,12 +657,18 @@ LABEL(loop_ashr_3_use_sse4_2):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $3, -16(%rdi, %rdx), %xmm0
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+       pcmpistri       $0x1a,(%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       jbe     LABEL(use_sse4_2_exit)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       add     $16, %rdx
+       jmp     LABEL(loop_ashr_3_use_sse4_2)
+@@ -467,10 +678,10 @@ LABEL(nibble_ashr_3_use_sse4_2):
+       movdqa  -16(%rdi, %rdx), %xmm0
+       psrldq  $3, %xmm0
+       pcmpistri      $0x3a,%xmm0, %xmm0
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       cmp     %r11, %rcx
+       jae     LABEL(nibble_ashr_use_sse4_2_exit)
+-#endif
++# endif
+       cmp     $12, %ecx
+       ja      LABEL(loop_ashr_3_use_sse4_2)
+@@ -488,6 +699,7 @@ LABEL(ashr_4_sse4_2):
+       movdqa  (%rsi), %xmm1
+       pcmpeqb %xmm1, %xmm0
+       pslldq  $12, %xmm2
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm2
+       psubb   %xmm0, %xmm2
+       pmovmskb %xmm2, %r9d
+@@ -519,12 +731,18 @@ LABEL(loop_ashr_4_use_sse4_2):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $4, -16(%rdi, %rdx), %xmm0
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+       pcmpistri       $0x1a,(%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       jbe     LABEL(use_sse4_2_exit)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       add     $16, %rdx
+       add     $16, %r10
+@@ -532,12 +750,18 @@ LABEL(loop_ashr_4_use_sse4_2):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $4, -16(%rdi, %rdx), %xmm0
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+       pcmpistri       $0x1a,(%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       jbe     LABEL(use_sse4_2_exit)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       add     $16, %rdx
+       jmp     LABEL(loop_ashr_4_use_sse4_2)
+@@ -547,10 +771,10 @@ LABEL(nibble_ashr_4_use_sse4_2):
+       movdqa  -16(%rdi, %rdx), %xmm0
+       psrldq  $4, %xmm0
+       pcmpistri      $0x3a,%xmm0, %xmm0
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       cmp     %r11, %rcx
+       jae     LABEL(nibble_ashr_use_sse4_2_exit)
+-#endif
++# endif
+       cmp     $11, %ecx
+       ja      LABEL(loop_ashr_4_use_sse4_2)
+@@ -559,7 +783,7 @@ LABEL(nibble_ashr_4_use_sse4_2):
+ /*
+  * The following cases will be handled by ashr_5
+  *  rcx(offset of rsi)  rax(offset of rdi)        relative offset      corresponding case
+- *        n(11~15)          n - 11              4(15 +(n-11) - n)         ashr_5
++ *        n(11~15)          n - 11              4(15 +(n-11) - n)         ashr_5
+  */
+       .p2align 4
+ LABEL(ashr_5_sse4_2):
+@@ -568,6 +792,7 @@ LABEL(ashr_5_sse4_2):
+       movdqa  (%rsi), %xmm1
+       pcmpeqb %xmm1, %xmm0
+       pslldq  $11, %xmm2
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm2
+       psubb   %xmm0, %xmm2
+       pmovmskb %xmm2, %r9d
+@@ -599,12 +824,18 @@ LABEL(loop_ashr_5_use_sse4_2):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $5, -16(%rdi, %rdx), %xmm0
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+       pcmpistri       $0x1a,(%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       jbe     LABEL(use_sse4_2_exit)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       add     $16, %rdx
+       add     $16, %r10
+@@ -613,12 +844,18 @@ LABEL(loop_ashr_5_use_sse4_2):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $5, -16(%rdi, %rdx), %xmm0
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+       pcmpistri       $0x1a,(%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       jbe     LABEL(use_sse4_2_exit)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       add     $16, %rdx
+       jmp     LABEL(loop_ashr_5_use_sse4_2)
+@@ -628,10 +865,10 @@ LABEL(nibble_ashr_5_use_sse4_2):
+       movdqa  -16(%rdi, %rdx), %xmm0
+       psrldq  $5, %xmm0
+       pcmpistri      $0x3a,%xmm0, %xmm0
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       cmp     %r11, %rcx
+       jae     LABEL(nibble_ashr_use_sse4_2_exit)
+-#endif
++# endif
+       cmp     $10, %ecx
+       ja      LABEL(loop_ashr_5_use_sse4_2)
+@@ -640,7 +877,7 @@ LABEL(nibble_ashr_5_use_sse4_2):
+ /*
+  * The following cases will be handled by ashr_6
+  *  rcx(offset of rsi)  rax(offset of rdi)        relative offset      corresponding case
+- *        n(10~15)          n - 10              5(15 +(n-10) - n)         ashr_6
++ *        n(10~15)          n - 10              5(15 +(n-10) - n)         ashr_6
+  */
+       .p2align 4
+ LABEL(ashr_6_sse4_2):
+@@ -649,6 +886,7 @@ LABEL(ashr_6_sse4_2):
+       movdqa  (%rsi), %xmm1
+       pcmpeqb %xmm1, %xmm0
+       pslldq  $10, %xmm2
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm2
+       psubb   %xmm0, %xmm2
+       pmovmskb %xmm2, %r9d
+@@ -680,12 +918,18 @@ LABEL(loop_ashr_6_use_sse4_2):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $6, -16(%rdi, %rdx), %xmm0
+-      pcmpistri       $0x1a,(%rsi,%rdx), %xmm0
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
++      pcmpistri $0x1a,(%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       jbe     LABEL(use_sse4_2_exit)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       add     $16, %rdx
+       add     $16, %r10
+@@ -693,12 +937,18 @@ LABEL(loop_ashr_6_use_sse4_2):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $6, -16(%rdi, %rdx), %xmm0
+-      pcmpistri       $0x1a,(%rsi,%rdx), %xmm0
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
++      pcmpistri $0x1a,(%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       jbe     LABEL(use_sse4_2_exit)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       add     $16, %rdx
+       jmp     LABEL(loop_ashr_6_use_sse4_2)
+@@ -708,10 +958,10 @@ LABEL(nibble_ashr_6_use_sse4_2):
+       movdqa  -16(%rdi, %rdx), %xmm0
+       psrldq  $6, %xmm0
+       pcmpistri      $0x3a,%xmm0, %xmm0
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       cmp     %r11, %rcx
+       jae     LABEL(nibble_ashr_use_sse4_2_exit)
+-#endif
++# endif
+       cmp     $9, %ecx
+       ja      LABEL(loop_ashr_6_use_sse4_2)
+@@ -720,7 +970,7 @@ LABEL(nibble_ashr_6_use_sse4_2):
+ /*
+  * The following cases will be handled by ashr_7
+  *  rcx(offset of rsi)  rax(offset of rdi)        relative offset      corresponding case
+- *        n(9~15)          n - 9                      6(15 +(n - 9) - n)         ashr_7
++ *        n(9~15)          n - 9                6(15 +(n - 9) - n)         ashr_7
+  */
+       .p2align 4
+ LABEL(ashr_7_sse4_2):
+@@ -729,6 +979,7 @@ LABEL(ashr_7_sse4_2):
+       movdqa  (%rsi), %xmm1
+       pcmpeqb %xmm1, %xmm0
+       pslldq  $9, %xmm2
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm2
+       psubb   %xmm0, %xmm2
+       pmovmskb %xmm2, %r9d
+@@ -760,12 +1011,18 @@ LABEL(loop_ashr_7_use_sse4_2):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $7, -16(%rdi, %rdx), %xmm0
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+       pcmpistri       $0x1a,(%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       jbe     LABEL(use_sse4_2_exit)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       add     $16, %rdx
+       add     $16, %r10
+@@ -773,12 +1030,18 @@ LABEL(loop_ashr_7_use_sse4_2):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $7, -16(%rdi, %rdx), %xmm0
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+       pcmpistri       $0x1a,(%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       jbe     LABEL(use_sse4_2_exit)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       add     $16, %rdx
+       jmp     LABEL(loop_ashr_7_use_sse4_2)
+@@ -788,10 +1051,10 @@ LABEL(nibble_ashr_7_use_sse4_2):
+       movdqa  -16(%rdi, %rdx), %xmm0
+       psrldq  $7, %xmm0
+       pcmpistri      $0x3a,%xmm0, %xmm0
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       cmp     %r11, %rcx
+       jae     LABEL(nibble_ashr_use_sse4_2_exit)
+-#endif
++# endif
+       cmp     $8, %ecx
+       ja      LABEL(loop_ashr_7_use_sse4_2)
+@@ -800,7 +1063,7 @@ LABEL(nibble_ashr_7_use_sse4_2):
+ /*
+  *  The following cases will be handled by ashr_8
+  *  rcx(offset of rsi)  rax(offset of rdi)        relative offset      corresponding case
+- *        n(8~15)          n - 8                      7(15 +(n - 8) - n)         ashr_8
++ *        n(8~15)          n - 8                7(15 +(n - 8) - n)         ashr_8
+  */
+       .p2align 4
+ LABEL(ashr_8_sse4_2):
+@@ -809,6 +1072,7 @@ LABEL(ashr_8_sse4_2):
+       movdqa  (%rsi), %xmm1
+       pcmpeqb %xmm1, %xmm0
+       pslldq  $8, %xmm2
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm2
+       psubb   %xmm0, %xmm2
+       pmovmskb %xmm2, %r9d
+@@ -840,12 +1104,18 @@ LABEL(loop_ashr_8_use_sse4_2):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $8, -16(%rdi, %rdx), %xmm0
+-      pcmpistri       $0x1a,(%rsi,%rdx), %xmm0
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
++      pcmpistri $0x1a, (%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       jbe     LABEL(use_sse4_2_exit)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       add     $16, %rdx
+       add     $16, %r10
+@@ -853,12 +1123,18 @@ LABEL(loop_ashr_8_use_sse4_2):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $8, -16(%rdi, %rdx), %xmm0
+-      pcmpistri       $0x1a,(%rsi,%rdx), %xmm0
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
++      pcmpistri $0x1a, (%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       jbe     LABEL(use_sse4_2_exit)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       add     $16, %rdx
+       jmp     LABEL(loop_ashr_8_use_sse4_2)
+@@ -868,10 +1144,10 @@ LABEL(nibble_ashr_8_use_sse4_2):
+       movdqa  -16(%rdi, %rdx), %xmm0
+       psrldq  $8, %xmm0
+       pcmpistri      $0x3a,%xmm0, %xmm0
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       cmp     %r11, %rcx
+       jae     LABEL(nibble_ashr_use_sse4_2_exit)
+-#endif
++# endif
+       cmp     $7, %ecx
+       ja      LABEL(loop_ashr_8_use_sse4_2)
+@@ -880,7 +1156,7 @@ LABEL(nibble_ashr_8_use_sse4_2):
+ /*
+  *  The following cases will be handled by ashr_9
+  *  rcx(offset of rsi)  rax(offset of rdi)        relative offset      corresponding case
+- *        n(7~15)          n - 7                      8(15 +(n - 7) - n)         ashr_9
++ *        n(7~15)          n - 7                8(15 +(n - 7) - n)         ashr_9
+  */
+       .p2align 4
+ LABEL(ashr_9_sse4_2):
+@@ -889,6 +1165,7 @@ LABEL(ashr_9_sse4_2):
+       movdqa  (%rsi), %xmm1
+       pcmpeqb %xmm1, %xmm0
+       pslldq  $7, %xmm2
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm2
+       psubb   %xmm0, %xmm2
+       pmovmskb %xmm2, %r9d
+@@ -921,12 +1198,18 @@ LABEL(loop_ashr_9_use_sse4_2):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $9, -16(%rdi, %rdx), %xmm0
+-      pcmpistri       $0x1a,(%rsi,%rdx), %xmm0
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
++      pcmpistri $0x1a, (%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       jbe     LABEL(use_sse4_2_exit)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       add     $16, %rdx
+       add     $16, %r10
+@@ -934,12 +1217,18 @@ LABEL(loop_ashr_9_use_sse4_2):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $9, -16(%rdi, %rdx), %xmm0
+-      pcmpistri       $0x1a,(%rsi,%rdx), %xmm0
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
++      pcmpistri $0x1a, (%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       jbe     LABEL(use_sse4_2_exit)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       add     $16, %rdx
+       jmp     LABEL(loop_ashr_9_use_sse4_2)
+@@ -949,10 +1238,10 @@ LABEL(nibble_ashr_9_use_sse4_2):
+       movdqa  -16(%rdi, %rdx), %xmm0
+       psrldq  $9, %xmm0
+       pcmpistri      $0x3a,%xmm0, %xmm0
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       cmp     %r11, %rcx
+       jae     LABEL(nibble_ashr_use_sse4_2_exit)
+-#endif
++# endif
+       cmp     $6, %ecx
+       ja      LABEL(loop_ashr_9_use_sse4_2)
+@@ -961,7 +1250,7 @@ LABEL(nibble_ashr_9_use_sse4_2):
+ /*
+  *  The following cases will be handled by ashr_10
+  *  rcx(offset of rsi)  rax(offset of rdi)        relative offset      corresponding case
+- *        n(6~15)          n - 6                      9(15 +(n - 6) - n)         ashr_10
++ *        n(6~15)          n - 6                9(15 +(n - 6) - n)         ashr_10
+  */
+       .p2align 4
+ LABEL(ashr_10_sse4_2):
+@@ -970,6 +1259,7 @@ LABEL(ashr_10_sse4_2):
+       movdqa  (%rsi), %xmm1
+       pcmpeqb %xmm1, %xmm0
+       pslldq  $6, %xmm2
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm2
+       psubb   %xmm0, %xmm2
+       pmovmskb %xmm2, %r9d
+@@ -1001,12 +1291,18 @@ LABEL(loop_ashr_10_use_sse4_2):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $10, -16(%rdi, %rdx), %xmm0
+-      pcmpistri       $0x1a,(%rsi,%rdx), %xmm0
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
++      pcmpistri $0x1a, (%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       jbe     LABEL(use_sse4_2_exit)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       add     $16, %rdx
+       add     $16, %r10
+@@ -1014,12 +1310,18 @@ LABEL(loop_ashr_10_use_sse4_2):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $10, -16(%rdi, %rdx), %xmm0
+-      pcmpistri       $0x1a,(%rsi,%rdx), %xmm0
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
++      pcmpistri $0x1a, (%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       jbe     LABEL(use_sse4_2_exit)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       add     $16, %rdx
+       jmp     LABEL(loop_ashr_10_use_sse4_2)
+@@ -1029,10 +1331,10 @@ LABEL(nibble_ashr_10_use_sse4_2):
+       movdqa  -16(%rdi, %rdx), %xmm0
+       psrldq  $10, %xmm0
+       pcmpistri      $0x3a,%xmm0, %xmm0
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       cmp     %r11, %rcx
+       jae     LABEL(nibble_ashr_use_sse4_2_exit)
+-#endif
++# endif
+       cmp     $5, %ecx
+       ja      LABEL(loop_ashr_10_use_sse4_2)
+@@ -1041,7 +1343,7 @@ LABEL(nibble_ashr_10_use_sse4_2):
+ /*
+  *  The following cases will be handled by ashr_11
+  *  rcx(offset of rsi)  rax(offset of rdi)        relative offset      corresponding case
+- *        n(5~15)          n - 5                      10(15 +(n - 5) - n)         ashr_11
++ *        n(5~15)          n - 5                10(15 +(n - 5) - n)         ashr_11
+  */
+       .p2align 4
+ LABEL(ashr_11_sse4_2):
+@@ -1050,6 +1352,7 @@ LABEL(ashr_11_sse4_2):
+       movdqa  (%rsi), %xmm1
+       pcmpeqb %xmm1, %xmm0
+       pslldq  $5, %xmm2
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm2
+       psubb   %xmm0, %xmm2
+       pmovmskb %xmm2, %r9d
+@@ -1081,12 +1384,18 @@ LABEL(loop_ashr_11_use_sse4_2):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $11, -16(%rdi, %rdx), %xmm0
+-      pcmpistri       $0x1a,(%rsi,%rdx), %xmm0
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
++      pcmpistri $0x1a, (%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       jbe     LABEL(use_sse4_2_exit)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       add     $16, %rdx
+       add     $16, %r10
+@@ -1094,12 +1403,18 @@ LABEL(loop_ashr_11_use_sse4_2):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $11, -16(%rdi, %rdx), %xmm0
+-      pcmpistri       $0x1a,(%rsi,%rdx), %xmm0
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
++      pcmpistri $0x1a, (%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       jbe     LABEL(use_sse4_2_exit)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       add     $16, %rdx
+       jmp     LABEL(loop_ashr_11_use_sse4_2)
+@@ -1109,10 +1424,10 @@ LABEL(nibble_ashr_11_use_sse4_2):
+       movdqa  -16(%rdi, %rdx), %xmm0
+       psrldq  $11, %xmm0
+       pcmpistri      $0x3a,%xmm0, %xmm0
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       cmp     %r11, %rcx
+       jae     LABEL(nibble_ashr_use_sse4_2_exit)
+-#endif
++# endif
+       cmp     $4, %ecx
+       ja      LABEL(loop_ashr_11_use_sse4_2)
+@@ -1121,7 +1436,7 @@ LABEL(nibble_ashr_11_use_sse4_2):
+ /*
+  *  The following cases will be handled by ashr_12
+  *  rcx(offset of rsi)  rax(offset of rdi)        relative offset      corresponding case
+- *        n(4~15)          n - 4                      11(15 +(n - 4) - n)         ashr_12
++ *        n(4~15)          n - 4                11(15 +(n - 4) - n)         ashr_12
+  */
+       .p2align 4
+ LABEL(ashr_12_sse4_2):
+@@ -1130,6 +1445,7 @@ LABEL(ashr_12_sse4_2):
+       movdqa  (%rsi), %xmm1
+       pcmpeqb %xmm1, %xmm0
+       pslldq  $4, %xmm2
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm2
+       psubb   %xmm0, %xmm2
+       pmovmskb %xmm2, %r9d
+@@ -1161,12 +1477,18 @@ LABEL(loop_ashr_12_use_sse4_2):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $12, -16(%rdi, %rdx), %xmm0
+-      pcmpistri       $0x1a,(%rsi,%rdx), %xmm0
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
++      pcmpistri $0x1a, (%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       jbe     LABEL(use_sse4_2_exit)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       add     $16, %rdx
+       add     $16, %r10
+@@ -1174,12 +1496,18 @@ LABEL(loop_ashr_12_use_sse4_2):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $12, -16(%rdi, %rdx), %xmm0
+-      pcmpistri       $0x1a,(%rsi,%rdx), %xmm0
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
++      pcmpistri $0x1a, (%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       jbe     LABEL(use_sse4_2_exit)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       add     $16, %rdx
+       jmp     LABEL(loop_ashr_12_use_sse4_2)
+@@ -1189,10 +1517,10 @@ LABEL(nibble_ashr_12_use_sse4_2):
+       movdqa  -16(%rdi, %rdx), %xmm0
+       psrldq  $12, %xmm0
+       pcmpistri      $0x3a,%xmm0, %xmm0
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       cmp     %r11, %rcx
+       jae     LABEL(nibble_ashr_use_sse4_2_exit)
+-#endif
++# endif
+       cmp     $3, %ecx
+       ja      LABEL(loop_ashr_12_use_sse4_2)
+@@ -1201,7 +1529,7 @@ LABEL(nibble_ashr_12_use_sse4_2):
+ /*
+  *  The following cases will be handled by ashr_13
+  *  rcx(offset of rsi)  rax(offset of rdi)        relative offset      corresponding case
+- *        n(3~15)          n - 3                      12(15 +(n - 3) - n)         ashr_13
++ *        n(3~15)          n - 3                12(15 +(n - 3) - n)         ashr_13
+  */
+       .p2align 4
+ LABEL(ashr_13_sse4_2):
+@@ -1210,6 +1538,7 @@ LABEL(ashr_13_sse4_2):
+       movdqa  (%rsi), %xmm1
+       pcmpeqb %xmm1, %xmm0
+       pslldq  $3, %xmm2
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm2
+       psubb   %xmm0, %xmm2
+       pmovmskb %xmm2, %r9d
+@@ -1242,12 +1571,18 @@ LABEL(loop_ashr_13_use_sse4_2):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $13, -16(%rdi, %rdx), %xmm0
+-      pcmpistri       $0x1a,(%rsi,%rdx), %xmm0
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
++      pcmpistri $0x1a, (%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       jbe     LABEL(use_sse4_2_exit)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       add     $16, %rdx
+       add     $16, %r10
+@@ -1255,12 +1590,18 @@ LABEL(loop_ashr_13_use_sse4_2):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $13, -16(%rdi, %rdx), %xmm0
+-      pcmpistri       $0x1a,(%rsi,%rdx), %xmm0
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
++      pcmpistri $0x1a, (%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       jbe     LABEL(use_sse4_2_exit)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       add     $16, %rdx
+       jmp     LABEL(loop_ashr_13_use_sse4_2)
+@@ -1270,10 +1611,10 @@ LABEL(nibble_ashr_13_use_sse4_2):
+       movdqa  -16(%rdi, %rdx), %xmm0
+       psrldq  $13, %xmm0
+       pcmpistri      $0x3a,%xmm0, %xmm0
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       cmp     %r11, %rcx
+       jae     LABEL(nibble_ashr_use_sse4_2_exit)
+-#endif
++# endif
+       cmp     $2, %ecx
+       ja      LABEL(loop_ashr_13_use_sse4_2)
+@@ -1282,7 +1623,7 @@ LABEL(nibble_ashr_13_use_sse4_2):
+ /*
+  *  The following cases will be handled by ashr_14
+  *  rcx(offset of rsi)  rax(offset of rdi)        relative offset      corresponding case
+- *        n(2~15)          n - 2                      13(15 +(n - 2) - n)         ashr_14
++ *        n(2~15)          n - 2                13(15 +(n - 2) - n)         ashr_14
+  */
+       .p2align 4
+ LABEL(ashr_14_sse4_2):
+@@ -1291,6 +1632,7 @@ LABEL(ashr_14_sse4_2):
+       movdqa  (%rsi), %xmm1
+       pcmpeqb %xmm1, %xmm0
+       pslldq  $2, %xmm2
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm2
+       psubb   %xmm0, %xmm2
+       pmovmskb %xmm2, %r9d
+@@ -1323,12 +1665,18 @@ LABEL(loop_ashr_14_use_sse4_2):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $14, -16(%rdi, %rdx), %xmm0
+-      pcmpistri       $0x1a,(%rsi,%rdx), %xmm0
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
++      pcmpistri $0x1a, (%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       jbe     LABEL(use_sse4_2_exit)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       add     $16, %rdx
+       add     $16, %r10
+@@ -1336,12 +1684,18 @@ LABEL(loop_ashr_14_use_sse4_2):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $14, -16(%rdi, %rdx), %xmm0
+-      pcmpistri       $0x1a,(%rsi,%rdx), %xmm0
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
++      pcmpistri $0x1a, (%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       jbe     LABEL(use_sse4_2_exit)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       add     $16, %rdx
+       jmp     LABEL(loop_ashr_14_use_sse4_2)
+@@ -1351,10 +1705,10 @@ LABEL(nibble_ashr_14_use_sse4_2):
+       movdqa  -16(%rdi, %rdx), %xmm0
+       psrldq  $14, %xmm0
+       pcmpistri      $0x3a,%xmm0, %xmm0
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       cmp     %r11, %rcx
+       jae     LABEL(nibble_ashr_use_sse4_2_exit)
+-#endif
++# endif
+       cmp     $1, %ecx
+       ja      LABEL(loop_ashr_14_use_sse4_2)
+@@ -1363,7 +1717,7 @@ LABEL(nibble_ashr_14_use_sse4_2):
+ /*
+  *  The following cases will be handled by ashr_15
+  *  rcx(offset of rsi)  rax(offset of rdi)        relative offset      corresponding case
+- *        n(1~15)          n - 1                      14(15 +(n - 1) - n)         ashr_15
++ *        n(1~15)          n - 1                14(15 +(n - 1) - n)         ashr_15
+  */
+       .p2align 4
+ LABEL(ashr_15_sse4_2):
+@@ -1372,6 +1726,7 @@ LABEL(ashr_15_sse4_2):
+       movdqa  (%rsi), %xmm1
+       pcmpeqb %xmm1, %xmm0
+       pslldq  $1, %xmm2
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm2
+       psubb   %xmm0, %xmm2
+       pmovmskb %xmm2, %r9d
+@@ -1406,12 +1761,18 @@ LABEL(loop_ashr_15_use_sse4_2):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $15, -16(%rdi, %rdx), %xmm0
+-      pcmpistri      $0x1a,(%rsi,%rdx), %xmm0
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
++      pcmpistri $0x1a, (%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       jbe     LABEL(use_sse4_2_exit)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       add     $16, %rdx
+       add     $16, %r10
+@@ -1419,12 +1780,18 @@ LABEL(loop_ashr_15_use_sse4_2):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $15, -16(%rdi, %rdx), %xmm0
+-      pcmpistri      $0x1a,(%rsi,%rdx), %xmm0
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
++      pcmpistri $0x1a, (%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       jbe     LABEL(use_sse4_2_exit)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       add     $16, %rdx
+       jmp     LABEL(loop_ashr_15_use_sse4_2)
+@@ -1434,22 +1801,28 @@ LABEL(nibble_ashr_15_use_sse4_2):
+       movdqa  -16(%rdi, %rdx), %xmm0
+       psrldq  $15, %xmm0
+       pcmpistri      $0x3a,%xmm0, %xmm0
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       cmp     %r11, %rcx
+       jae     LABEL(nibble_ashr_use_sse4_2_exit)
+-#endif
++# endif
+       cmp     $0, %ecx
+       ja      LABEL(loop_ashr_15_use_sse4_2)
+ LABEL(nibble_ashr_use_sse4_2_exit):
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+       pcmpistri      $0x1a,(%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       .p2align 4
+ LABEL(use_sse4_2_exit):
+       jnc     LABEL(strcmp_exitz_sse4_2)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     %rcx, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       add     %rcx, %rdx
+       lea     -16(%rdi, %r9), %rdi
+       movzbl  (%rdi, %rdx), %eax
+@@ -1458,6 +1831,12 @@ LABEL(use_sse4_2_exit):
+       jz      LABEL(use_sse4_2_ret_sse4_2)
+       xchg    %eax, %edx
+ LABEL(use_sse4_2_ret_sse4_2):
++# if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
++      leaq    _nl_C_LC_CTYPE_tolower+128*4(%rip), %rcx
++      movl    (%rcx,%rdx,4), %edx
++      movl    (%rcx,%rax,4), %eax
++# endif
++
+       sub     %edx, %eax
+       ret
+@@ -1473,13 +1852,19 @@ LABEL(ret_sse4_2):
+ LABEL(less16bytes_sse4_2):
+       bsf     %rdx, %rdx              /* find and store bit index in %rdx */
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     %rdx, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       movzbl  (%rsi, %rdx), %ecx
+       movzbl  (%rdi, %rdx), %eax
++# if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
++      leaq    _nl_C_LC_CTYPE_tolower+128*4(%rip), %rdx
++      movl    (%rdx,%rcx,4), %ecx
++      movl    (%rdx,%rax,4), %eax
++# endif
++
+       sub     %ecx, %eax
+       ret
+@@ -1488,15 +1873,27 @@ LABEL(strcmp_exitz_sse4_2):
+       ret
+       .p2align 4
++      // XXX Same as code above
+ LABEL(Byte0_sse4_2):
+       movzx   (%rsi), %ecx
+       movzx   (%rdi), %eax
++# if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
++      leaq    _nl_C_LC_CTYPE_tolower+128*4(%rip), %rdx
++      movl    (%rdx,%rcx,4), %ecx
++      movl    (%rdx,%rax,4), %eax
++# endif
++
+       sub     %ecx, %eax
+       ret
+       cfi_endproc
+       .size   STRCMP_SSE42, .-STRCMP_SSE42
++# undef UCLOW_reg
++# undef UCHIGH_reg
++# undef LCQWORD_reg
++# undef TOLOWER
++
+       /* Put all SSE 4.2 functions together.  */
+       .section .rodata.sse4.2,"a",@progbits
+       .p2align 3
+@@ -1528,6 +1925,27 @@ LABEL(unaligned_table_sse4_2):
+ # undef END
+ # define END(name) \
+       cfi_endproc; .size STRCMP_SSE2, .-STRCMP_SSE2
++
++# ifdef USE_AS_STRCASECMP_L
++#  define ENTRY2(name) \
++      .type __strcasecmp_sse2, @function; \
++      .align 16; \
++      __strcasecmp_sse2: cfi_startproc; \
++      CALL_MCOUNT
++#  define END2(name) \
++      cfi_endproc; .size __strcasecmp_sse2, .-__strcasecmp_sse2
++# endif
++
++# ifdef USE_AS_STRNCASECMP_L
++#  define ENTRY2(name) \
++      .type __strncasecmp_sse2, @function; \
++      .align 16; \
++      __strncasecmp_sse2: cfi_startproc; \
++      CALL_MCOUNT
++#  define END2(name) \
++      cfi_endproc; .size __strncasecmp_sse2, .-__strncasecmp_sse2
++# endif
++
+ # undef libc_hidden_builtin_def
+ /* It doesn't make sense to send libc-internal strcmp calls through a PLT.
+    The speedup we get from using SSE4.2 instruction is likely eaten away
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strncase_l-ssse3.S
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strncase_l-ssse3.S
+@@ -0,0 +1,6 @@
++#define USE_SSSE3 1
++#define USE_AS_STRNCASECMP_L
++#define NO_NOLOCALE_ALIAS
++#define STRCMP __strncasecmp_l_ssse3
++#define __strncasecmp __strncasecmp_ssse3
++#include "../strcmp.S"
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strncase_l.S
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strncase_l.S
+@@ -0,0 +1,6 @@
++#define STRCMP __strncasecmp_l
++#define USE_AS_STRNCASECMP_L
++#include "strcmp.S"
++
++weak_alias (__strncasecmp_l, strncasecmp_l)
++libc_hidden_def (strncasecmp_l)
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strstr.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/multiarch/strstr.c
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strstr.c
+@@ -67,10 +67,10 @@
+    case               ECX     CFlag   ZFlag   SFlag
+     3          X        1       0       0/1
+-    4a                 0        1       0       0
+-    4b                 0        1       0       1
+-    4c                0 < X     1       0       0/1
+-    5         16        0       1       0
++    4a                 0        1       0       0
++    4b                 0        1       0       1
++    4c                0 < X     1       0       0/1
++    5         16        0       1       0
+    3. An initial ordered-comparison fragment match, we fix up to do
+       subsequent string comparison
+@@ -147,8 +147,7 @@ __m128i_shift_right (__m128i value, int 
+    If EOS occurs within less than 16B before 4KB boundary, we don't
+    cross to next page.  */
+-static __m128i
+-__attribute__ ((section (".text.sse4.2")))
++static inline __m128i
+ __m128i_strloadu (const unsigned char * p)
+ {
+   int offset = ((size_t) p & (16 - 1));
+@@ -164,59 +163,36 @@ __m128i_strloadu (const unsigned char * 
+   return _mm_loadu_si128 ((__m128i *) p);
+ }
+-#ifdef USE_AS_STRCASESTR
++#if defined USE_AS_STRCASESTR && !defined STRCASESTR_NONASCII
+ /* Similar to __m128i_strloadu.  Convert to lower case for POSIX/C
+    locale.  */
+-
+-static __m128i
+-__attribute__ ((section (".text.sse4.2")))
+-__m128i_strloadu_tolower_posix (const unsigned char * p)
++static inline __m128i
++__m128i_strloadu_tolower (const unsigned char *p, __m128i rangeuc,
++                        __m128i u2ldelta)
+ {
+   __m128i frag = __m128i_strloadu (p);
+-  /* Convert frag to lower case for POSIX/C locale.  */
+-  __m128i rangeuc = _mm_set_epi64x (0x0, 0x5a41);
+-  __m128i u2ldelta = _mm_set1_epi64x (0xe0e0e0e0e0e0e0e0);
+-  __m128i mask1 = _mm_cmpistrm (rangeuc, frag, 0x44);
+-  __m128i mask2 = _mm_blendv_epi8 (u2ldelta, frag, mask1);
+-  mask2 = _mm_sub_epi8 (mask2, u2ldelta);
+-  return  _mm_blendv_epi8 (frag, mask2, mask1);
++#define UCLOW 0x4040404040404040ULL
++#define UCHIGH 0x5b5b5b5b5b5b5b5bULL
++#define LCQWORD 0x2020202020202020ULL
++  /* Compare if 'Z' > bytes. Inverted way to get a mask for byte <= 'Z'.  */
++  __m128i r2 = _mm_cmpgt_epi8 (_mm_set1_epi64x (UCHIGH), frag);
++  /* Compare if bytes are > 'A' - 1.  */
++  __m128i r1 = _mm_cmpgt_epi8 (frag, _mm_set1_epi64x (UCLOW));
++  /* Mask byte == ff if byte(r2) <= 'Z' and byte(r1) > 'A' - 1.  */
++  __m128i mask = _mm_and_si128 (r2, r1);
++  /* Apply lowercase bit 6 mask for above mask bytes == ff.  */
++  return _mm_or_si128 (frag, _mm_and_si128 (mask, _mm_set1_epi64x (LCQWORD)));
+ }
+-/* Similar to __m128i_strloadu.  Convert to lower case for none-POSIX/C
+-   locale.  */
+-
+-static __m128i
+-__attribute__ ((section (".text.sse4.2")))
+-__m128i_strloadu_tolower (const unsigned char * p)
+-{
+-  union
+-    {
+-      char b[16];
+-      __m128i x;
+-    } u;
+-
+-  for (int i = 0; i < 16; i++)
+-    if (p[i] == 0)
+-      {
+-      u.b[i] = 0;
+-      break;
+-      }
+-    else
+-      u.b[i] = tolower (p[i]);
+-
+-  return u.x;
+-}
+ #endif
+ /* Calculate Knuth-Morris-Pratt string searching algorithm (or KMP
+    algorithm) overlap for a fully populated 16B vector.
+    Input parameter: 1st 16Byte loaded from the reference string of a
+                   strstr function.
+-   We don't use KMP algorithm if reference string is less than 16B.
+- */
+-
++   We don't use KMP algorithm if reference string is less than 16B.  */
+ static int
+ __inline__ __attribute__ ((__always_inline__,))
+ KMP16Bovrlap (__m128i s2)
+@@ -236,7 +212,7 @@ KMP16Bovrlap (__m128i s2)
+     return 1;
+   else if (!k1)
+     {
+-      /* There are al least two ditinct char in s2.  If byte 0 and 1 are
++      /* There are al least two distinct chars in s2.  If byte 0 and 1 are
+        idential and the distinct value lies farther down, we can deduce
+        the next byte offset to restart full compare is least no earlier
+        than byte 3.  */
+@@ -256,23 +232,30 @@ STRSTR_SSE42 (const unsigned char *s1, c
+ #define p1 s1
+   const unsigned char *p2 = s2;
+-  if (p2[0] == '\0')
++#ifndef STRCASESTR_NONASCII
++  if (__builtin_expect (p2[0] == '\0', 0))
+     return (char *) p1;
+-  if (p1[0] == '\0')
++  if (__builtin_expect (p1[0] == '\0', 0))
+     return NULL;
+   /* Check if p1 length is 1 byte long.  */
+-  if (p1[1] == '\0')
++  if (__builtin_expect (p1[1] == '\0', 0))
+     return p2[1] == '\0' && CMPBYTE (p1[0], p2[0]) ? (char *) p1 : NULL;
++#endif
+ #ifdef USE_AS_STRCASESTR
+-  __m128i (*strloadu) (const unsigned char *);
+-
+-  if (_NL_CURRENT_WORD (LC_CTYPE, _NL_CTYPE_NONASCII_CASE) == 0)
+-    strloadu = __m128i_strloadu_tolower_posix;
+-  else
+-    strloadu = __m128i_strloadu_tolower;
++# ifndef STRCASESTR_NONASCII
++  if (__builtin_expect (_NL_CURRENT_WORD (LC_CTYPE, _NL_CTYPE_NONASCII_CASE)
++                      != 0, 0))
++    return __strcasestr_sse42_nonascii (s1, s2);
++
++  const __m128i rangeuc = _mm_set_epi64x (0x0, 0x5a41);
++  const __m128i u2ldelta = _mm_set1_epi64x (0xe0e0e0e0e0e0e0e0);
++#  define strloadu(p) __m128i_strloadu_tolower (p, rangeuc, u2ldelta)
++# else
++#  define strloadu __m128i_strloadu_tolower
++# endif
+ #else
+ # define strloadu __m128i_strloadu
+ #endif
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strcasecmp.S
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strcasecmp.S
+@@ -0,0 +1 @@
++/* In strcasecmp_l.S.  */
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strcasecmp_l-nonascii.c
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strcasecmp_l-nonascii.c
+@@ -0,0 +1,8 @@
++#include <string.h>
++
++extern int __strcasecmp_l_nonascii (__const char *__s1, __const char *__s2,
++                                  __locale_t __loc);
++
++#define __strcasecmp_l __strcasecmp_l_nonascii
++#define USE_IN_EXTENDED_LOCALE_MODEL    1
++#include <string/strcasecmp.c>
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strcasecmp_l.S
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strcasecmp_l.S
+@@ -0,0 +1,6 @@
++#define STRCMP __strcasecmp_l
++#define USE_AS_STRCASECMP_L
++#include "strcmp.S"
++
++weak_alias (__strcasecmp_l, strcasecmp_l)
++libc_hidden_def (strcasecmp_l)
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strcmp.S
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/strcmp.S
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strcmp.S
+@@ -51,6 +51,31 @@
+       je      LABEL(strcmp_exitz);                    \
+       mov     %r9, %r11
++#elif defined USE_AS_STRCASECMP_L
++# include "locale-defines.h"
++
++/* No support for strcasecmp outside libc so far since it is not needed.  */
++# ifdef NOT_IN_lib
++#  error "strcasecmp_l not implemented so far"
++# endif
++
++# define UPDATE_STRNCMP_COUNTER
++#elif defined USE_AS_STRNCASECMP_L
++# include "locale-defines.h"
++
++/* No support for strncasecmp outside libc so far since it is not needed.  */
++# ifdef NOT_IN_lib
++#  error "strncasecmp_l not implemented so far"
++# endif
++
++# define UPDATE_STRNCMP_COUNTER                               \
++      /* calculate left number to compare */          \
++      lea     -16(%rcx, %r11), %r9;                   \
++      cmp     %r9, %r11;                              \
++      jb      LABEL(strcmp_exitz);                    \
++      test    %r9, %r9;                               \
++      je      LABEL(strcmp_exitz);                    \
++      mov     %r9, %r11
+ #else
+ # define UPDATE_STRNCMP_COUNTER
+ # ifndef STRCMP
+@@ -64,6 +89,46 @@
+       .section .text.ssse3,"ax",@progbits
+ #endif
++#ifdef USE_AS_STRCASECMP_L
++# ifndef ENTRY2
++#  define ENTRY2(name) ENTRY (name)
++#  define END2(name) END (name)
++# endif
++
++ENTRY2 (__strcasecmp)
++      movq    __libc_tsd_LOCALE@gottpoff(%rip),%rax
++      movq    %fs:(%rax),%rdx
++
++      // XXX 5 byte should be before the function
++      /* 5-byte NOP.  */
++      .byte   0x0f,0x1f,0x44,0x00,0x00
++END2 (__strcasecmp)
++# ifndef NO_NOLOCALE_ALIAS
++weak_alias (__strcasecmp, strcasecmp)
++libc_hidden_def (__strcasecmp)
++# endif
++      /* FALLTHROUGH to strcasecmp_l.  */
++#elif defined USE_AS_STRNCASECMP_L
++# ifndef ENTRY2
++#  define ENTRY2(name) ENTRY (name)
++#  define END2(name) END (name)
++# endif
++
++ENTRY2 (__strncasecmp)
++      movq    __libc_tsd_LOCALE@gottpoff(%rip),%rax
++      movq    %fs:(%rax),%rcx
++
++      // XXX 5 byte should be before the function
++      /* 5-byte NOP.  */
++      .byte   0x0f,0x1f,0x44,0x00,0x00
++END2 (__strncasecmp)
++# ifndef NO_NOLOCALE_ALIAS
++weak_alias (__strncasecmp, strncasecmp)
++libc_hidden_def (__strncasecmp)
++# endif
++      /* FALLTHROUGH to strncasecmp_l.  */
++#endif
++
+ ENTRY (BP_SYM (STRCMP))
+ #ifdef NOT_IN_libc
+ /* Simple version since we can't use SSE registers in ld.so.  */
+@@ -84,10 +149,32 @@ L(neq):   movl    $1, %eax
+       ret
+ END (BP_SYM (STRCMP))
+ #else /* NOT_IN_libc */
++# ifdef USE_AS_STRCASECMP_L
++      /* We have to fall back on the C implementation for locales
++         with encodings not matching ASCII for single bytes.  */
++#  if LOCALE_T___LOCALES != 0 || LC_CTYPE != 0
++      movq    LOCALE_T___LOCALES+LC_CTYPE*8(%rdx), %rax
++#  else
++      movq    (%rdx), %rax
++#  endif
++      testl   $0, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%rax)
++      jne     __strcasecmp_l_nonascii
++# elif defined USE_AS_STRNCASECMP_L
++      /* We have to fall back on the C implementation for locales
++         with encodings not matching ASCII for single bytes.  */
++#  if LOCALE_T___LOCALES != 0 || LC_CTYPE != 0
++      movq    LOCALE_T___LOCALES+LC_CTYPE*8(%rcx), %rax
++#  else
++      movq    (%rcx), %rax
++#  endif
++      testl   $0, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%rax)
++      jne     __strncasecmp_l_nonascii
++# endif
++
+ /*
+  * This implementation uses SSE to compare up to 16 bytes at a time.
+  */
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       test    %rdx, %rdx
+       je      LABEL(strcmp_exitz)
+       cmp     $1, %rdx
+@@ -99,6 +186,26 @@ END (BP_SYM (STRCMP))
+ /* Use 64bit AND here to avoid long NOP padding.  */
+       and     $0x3f, %rcx             /* rsi alignment in cache line */
+       and     $0x3f, %rax             /* rdi alignment in cache line */
++# if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
++      .section .rodata.cst16,"aM",@progbits,16
++      .align 16
++.Lbelowupper:
++      .quad   0x4040404040404040
++      .quad   0x4040404040404040
++.Ltopupper:
++      .quad   0x5b5b5b5b5b5b5b5b
++      .quad   0x5b5b5b5b5b5b5b5b
++.Ltouppermask:
++      .quad   0x2020202020202020
++      .quad   0x2020202020202020
++      .previous
++      movdqa  .Lbelowupper(%rip), %xmm5
++#  define UCLOW_reg %xmm5
++      movdqa  .Ltopupper(%rip), %xmm6
++#  define UCHIGH_reg %xmm6
++      movdqa  .Ltouppermask(%rip), %xmm7
++#  define LCQWORD_reg %xmm7
++# endif
+       cmp     $0x30, %ecx
+       ja      LABEL(crosscache)       /* rsi: 16-byte load will cross cache line */
+       cmp     $0x30, %eax
+@@ -107,6 +214,26 @@ END (BP_SYM (STRCMP))
+       movlpd  (%rsi), %xmm2
+       movhpd  8(%rdi), %xmm1
+       movhpd  8(%rsi), %xmm2
++# if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
++#  define TOLOWER(reg1, reg2) \
++      movdqa  reg1, %xmm8;                                    \
++      movdqa  UCHIGH_reg, %xmm9;                              \
++      movdqa  reg2, %xmm10;                                   \
++      movdqa  UCHIGH_reg, %xmm11;                             \
++      pcmpgtb UCLOW_reg, %xmm8;                               \
++      pcmpgtb reg1, %xmm9;                                    \
++      pcmpgtb UCLOW_reg, %xmm10;                              \
++      pcmpgtb reg2, %xmm11;                                   \
++      pand    %xmm9, %xmm8;                                   \
++      pand    %xmm11, %xmm10;                                 \
++      pand    LCQWORD_reg, %xmm8;                             \
++      pand    LCQWORD_reg, %xmm10;                            \
++      por     %xmm8, reg1;                                    \
++      por     %xmm10, reg2
++      TOLOWER (%xmm1, %xmm2)
++# else
++#  define TOLOWER(reg1, reg2)
++# endif
+       pxor    %xmm0, %xmm0            /* clear %xmm0 for null char checks */
+       pcmpeqb %xmm1, %xmm0            /* Any null chars? */
+       pcmpeqb %xmm2, %xmm1            /* compare first 16 bytes for equality */
+@@ -114,7 +241,7 @@ END (BP_SYM (STRCMP))
+       pmovmskb %xmm1, %edx
+       sub     $0xffff, %edx           /* if first 16 bytes are same, edx == 0xffff */
+       jnz     LABEL(less16bytes)      /* If not, find different value or null char */
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)     /* finish comparision */
+ # endif
+@@ -159,7 +286,13 @@ LABEL(ashr_0):
+       movdqa  (%rsi), %xmm1
+       pxor    %xmm0, %xmm0                    /* clear %xmm0 for null char check */
+       pcmpeqb %xmm1, %xmm0                    /* Any null chars? */
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+       pcmpeqb (%rdi), %xmm1                   /* compare 16 bytes for equality */
++# else
++      movdqa  (%rdi), %xmm2
++      TOLOWER (%xmm1, %xmm2)
++      pcmpeqb %xmm2, %xmm1                    /* compare 16 bytes for equality */
++# endif
+       psubb   %xmm0, %xmm1                    /* packed sub of comparison results*/
+       pmovmskb %xmm1, %r9d
+       shr     %cl, %edx                       /* adjust 0xffff for offset */
+@@ -183,6 +316,7 @@ LABEL(ashr_0):
+ LABEL(loop_ashr_0):
+       movdqa  (%rsi, %rcx), %xmm1
+       movdqa  (%rdi, %rcx), %xmm2
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm0
+       pcmpeqb %xmm2, %xmm1
+@@ -191,13 +325,14 @@ LABEL(loop_ashr_0):
+       sub     $0xffff, %edx
+       jnz     LABEL(exit)             /* mismatch or null char seen */
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+       add     $16, %rcx
+       movdqa  (%rsi, %rcx), %xmm1
+       movdqa  (%rdi, %rcx), %xmm2
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm0
+       pcmpeqb %xmm2, %xmm1
+@@ -205,7 +340,7 @@ LABEL(loop_ashr_0):
+       pmovmskb %xmm1, %edx
+       sub     $0xffff, %edx
+       jnz     LABEL(exit)
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+@@ -214,7 +349,7 @@ LABEL(loop_ashr_0):
+ /*
+  * The following cases will be handled by ashr_1
+- * rcx(offset of rsi)  rax(offset of rdi)   relative offset           corresponding case
++ * rcx(offset of rsi)  rax(offset of rdi)   relative offset   corresponding case
+  *        n(15)            n -15            0(15 +(n-15) - n)         ashr_1
+  */
+       .p2align 4
+@@ -224,6 +359,7 @@ LABEL(ashr_1):
+       movdqa  (%rsi), %xmm1
+       pcmpeqb %xmm1, %xmm0            /* Any null chars? */
+       pslldq  $15, %xmm2              /* shift first string to align with second */
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm2            /* compare 16 bytes for equality */
+       psubb   %xmm0, %xmm2            /* packed sub of comparison results*/
+       pmovmskb %xmm2, %r9d
+@@ -263,6 +399,7 @@ LABEL(gobble_ashr_1):
+ # else
+       palignr $1, %xmm3, %xmm2        /* merge into one 16byte value */
+ # endif
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm0
+       pcmpeqb %xmm2, %xmm1
+@@ -271,7 +408,7 @@ LABEL(gobble_ashr_1):
+       sub     $0xffff, %edx
+       jnz     LABEL(exit)
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+@@ -292,6 +429,7 @@ LABEL(gobble_ashr_1):
+ # else
+       palignr $1, %xmm3, %xmm2        /* merge into one 16byte value */
+ # endif
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm0
+       pcmpeqb %xmm2, %xmm1
+@@ -300,7 +438,7 @@ LABEL(gobble_ashr_1):
+       sub     $0xffff, %edx
+       jnz     LABEL(exit)
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+@@ -319,8 +457,8 @@ LABEL(nibble_ashr_1):
+       test    $0xfffe, %edx
+       jnz     LABEL(ashr_1_exittail)  /* find null char*/
+-# ifdef USE_AS_STRNCMP
+-      cmp     $14, %r11
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
++      cmp     $15, %r11
+       jbe     LABEL(ashr_1_exittail)
+ # endif
+@@ -351,6 +489,7 @@ LABEL(ashr_2):
+       movdqa  (%rsi), %xmm1
+       pcmpeqb %xmm1, %xmm0
+       pslldq  $14, %xmm2
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm2
+       psubb   %xmm0, %xmm2
+       pmovmskb %xmm2, %r9d
+@@ -390,6 +529,7 @@ LABEL(gobble_ashr_2):
+ # else
+       palignr $2, %xmm3, %xmm2        /* merge into one 16byte value */
+ # endif
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm0
+       pcmpeqb %xmm2, %xmm1
+@@ -398,7 +538,7 @@ LABEL(gobble_ashr_2):
+       sub     $0xffff, %edx
+       jnz     LABEL(exit)
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+@@ -420,6 +560,7 @@ LABEL(gobble_ashr_2):
+ # else
+       palignr $2, %xmm3, %xmm2        /* merge into one 16byte value */
+ # endif
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm0
+       pcmpeqb %xmm2, %xmm1
+@@ -428,7 +569,7 @@ LABEL(gobble_ashr_2):
+       sub     $0xffff, %edx
+       jnz     LABEL(exit)
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+@@ -444,8 +585,8 @@ LABEL(nibble_ashr_2):
+       test    $0xfffc, %edx
+       jnz     LABEL(ashr_2_exittail)
+-# ifdef USE_AS_STRNCMP
+-      cmp     $13, %r11
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
++      cmp     $14, %r11
+       jbe     LABEL(ashr_2_exittail)
+ # endif
+@@ -472,6 +613,7 @@ LABEL(ashr_3):
+       movdqa  (%rsi), %xmm1
+       pcmpeqb %xmm1, %xmm0
+       pslldq  $13, %xmm2
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm2
+       psubb   %xmm0, %xmm2
+       pmovmskb %xmm2, %r9d
+@@ -512,6 +654,7 @@ LABEL(gobble_ashr_3):
+ # else
+       palignr $3, %xmm3, %xmm2        /* merge into one 16byte value */
+ # endif
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm0
+       pcmpeqb %xmm2, %xmm1
+@@ -520,7 +663,7 @@ LABEL(gobble_ashr_3):
+       sub     $0xffff, %edx
+       jnz     LABEL(exit)
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+@@ -542,6 +685,7 @@ LABEL(gobble_ashr_3):
+ # else
+       palignr $3, %xmm3, %xmm2        /* merge into one 16byte value */
+ # endif
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm0
+       pcmpeqb %xmm2, %xmm1
+@@ -550,7 +694,7 @@ LABEL(gobble_ashr_3):
+       sub     $0xffff, %edx
+       jnz     LABEL(exit)
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+@@ -566,8 +710,8 @@ LABEL(nibble_ashr_3):
+       test    $0xfff8, %edx
+       jnz     LABEL(ashr_3_exittail)
+-# ifdef USE_AS_STRNCMP
+-      cmp     $12, %r11
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
++      cmp     $13, %r11
+       jbe     LABEL(ashr_3_exittail)
+ # endif
+@@ -594,6 +738,7 @@ LABEL(ashr_4):
+       movdqa  (%rsi), %xmm1
+       pcmpeqb %xmm1, %xmm0
+       pslldq  $12, %xmm2
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm2
+       psubb   %xmm0, %xmm2
+       pmovmskb %xmm2, %r9d
+@@ -634,6 +779,7 @@ LABEL(gobble_ashr_4):
+ # else
+       palignr $4, %xmm3, %xmm2        /* merge into one 16byte value */
+ # endif
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm0
+       pcmpeqb %xmm2, %xmm1
+@@ -642,7 +788,7 @@ LABEL(gobble_ashr_4):
+       sub     $0xffff, %edx
+       jnz     LABEL(exit)
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+@@ -664,6 +810,7 @@ LABEL(gobble_ashr_4):
+ # else
+       palignr $4, %xmm3, %xmm2        /* merge into one 16byte value */
+ # endif
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm0
+       pcmpeqb %xmm2, %xmm1
+@@ -672,7 +819,7 @@ LABEL(gobble_ashr_4):
+       sub     $0xffff, %edx
+       jnz     LABEL(exit)
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+@@ -688,8 +835,8 @@ LABEL(nibble_ashr_4):
+       test    $0xfff0, %edx
+       jnz     LABEL(ashr_4_exittail)
+-# ifdef USE_AS_STRNCMP
+-      cmp     $11, %r11
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
++      cmp     $12, %r11
+       jbe     LABEL(ashr_4_exittail)
+ # endif
+@@ -716,6 +863,7 @@ LABEL(ashr_5):
+       movdqa  (%rsi), %xmm1
+       pcmpeqb %xmm1, %xmm0
+       pslldq  $11, %xmm2
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm2
+       psubb   %xmm0, %xmm2
+       pmovmskb %xmm2, %r9d
+@@ -756,6 +904,7 @@ LABEL(gobble_ashr_5):
+ # else
+       palignr $5, %xmm3, %xmm2        /* merge into one 16byte value */
+ # endif
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm0
+       pcmpeqb %xmm2, %xmm1
+@@ -764,7 +913,7 @@ LABEL(gobble_ashr_5):
+       sub     $0xffff, %edx
+       jnz     LABEL(exit)
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+@@ -786,6 +935,7 @@ LABEL(gobble_ashr_5):
+ # else
+       palignr $5, %xmm3, %xmm2        /* merge into one 16byte value */
+ # endif
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm0
+       pcmpeqb %xmm2, %xmm1
+@@ -794,7 +944,7 @@ LABEL(gobble_ashr_5):
+       sub     $0xffff, %edx
+       jnz     LABEL(exit)
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+@@ -810,8 +960,8 @@ LABEL(nibble_ashr_5):
+       test    $0xffe0, %edx
+       jnz     LABEL(ashr_5_exittail)
+-# ifdef USE_AS_STRNCMP
+-      cmp     $10, %r11
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
++      cmp     $11, %r11
+       jbe     LABEL(ashr_5_exittail)
+ # endif
+@@ -838,6 +988,7 @@ LABEL(ashr_6):
+       movdqa  (%rsi), %xmm1
+       pcmpeqb %xmm1, %xmm0
+       pslldq  $10, %xmm2
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm2
+       psubb   %xmm0, %xmm2
+       pmovmskb %xmm2, %r9d
+@@ -878,6 +1029,7 @@ LABEL(gobble_ashr_6):
+ # else
+       palignr $6, %xmm3, %xmm2        /* merge into one 16byte value */
+ # endif
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm0
+       pcmpeqb %xmm2, %xmm1
+@@ -886,7 +1038,7 @@ LABEL(gobble_ashr_6):
+       sub     $0xffff, %edx
+       jnz     LABEL(exit)
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+@@ -908,6 +1060,7 @@ LABEL(gobble_ashr_6):
+ # else
+       palignr $6, %xmm3, %xmm2        /* merge into one 16byte value */
+ # endif
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm0
+       pcmpeqb %xmm2, %xmm1
+@@ -916,7 +1069,7 @@ LABEL(gobble_ashr_6):
+       sub     $0xffff, %edx
+       jnz     LABEL(exit)
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+@@ -932,8 +1085,8 @@ LABEL(nibble_ashr_6):
+       test    $0xffc0, %edx
+       jnz     LABEL(ashr_6_exittail)
+-# ifdef USE_AS_STRNCMP
+-      cmp     $9, %r11
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
++      cmp     $10, %r11
+       jbe     LABEL(ashr_6_exittail)
+ # endif
+@@ -960,6 +1113,7 @@ LABEL(ashr_7):
+       movdqa  (%rsi), %xmm1
+       pcmpeqb %xmm1, %xmm0
+       pslldq  $9, %xmm2
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm2
+       psubb   %xmm0, %xmm2
+       pmovmskb %xmm2, %r9d
+@@ -1000,6 +1154,7 @@ LABEL(gobble_ashr_7):
+ # else
+       palignr $7, %xmm3, %xmm2        /* merge into one 16byte value */
+ # endif
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm0
+       pcmpeqb %xmm2, %xmm1
+@@ -1008,7 +1163,7 @@ LABEL(gobble_ashr_7):
+       sub     $0xffff, %edx
+       jnz     LABEL(exit)
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+@@ -1030,6 +1185,7 @@ LABEL(gobble_ashr_7):
+ # else
+       palignr $7, %xmm3, %xmm2        /* merge into one 16byte value */
+ # endif
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm0
+       pcmpeqb %xmm2, %xmm1
+@@ -1038,7 +1194,7 @@ LABEL(gobble_ashr_7):
+       sub     $0xffff, %edx
+       jnz     LABEL(exit)
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+@@ -1054,8 +1210,8 @@ LABEL(nibble_ashr_7):
+       test    $0xff80, %edx
+       jnz     LABEL(ashr_7_exittail)
+-# ifdef USE_AS_STRNCMP
+-      cmp     $8, %r11
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
++      cmp     $9, %r11
+       jbe     LABEL(ashr_7_exittail)
+ # endif
+@@ -1082,6 +1238,7 @@ LABEL(ashr_8):
+       movdqa  (%rsi), %xmm1
+       pcmpeqb %xmm1, %xmm0
+       pslldq  $8, %xmm2
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm2
+       psubb   %xmm0, %xmm2
+       pmovmskb %xmm2, %r9d
+@@ -1122,6 +1279,7 @@ LABEL(gobble_ashr_8):
+ # else
+       palignr $8, %xmm3, %xmm2        /* merge into one 16byte value */
+ # endif
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm0
+       pcmpeqb %xmm2, %xmm1
+@@ -1130,7 +1288,7 @@ LABEL(gobble_ashr_8):
+       sub     $0xffff, %edx
+       jnz     LABEL(exit)
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+@@ -1152,6 +1310,7 @@ LABEL(gobble_ashr_8):
+ # else
+       palignr $8, %xmm3, %xmm2        /* merge into one 16byte value */
+ # endif
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm0
+       pcmpeqb %xmm2, %xmm1
+@@ -1160,7 +1319,7 @@ LABEL(gobble_ashr_8):
+       sub     $0xffff, %edx
+       jnz     LABEL(exit)
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+@@ -1176,8 +1335,8 @@ LABEL(nibble_ashr_8):
+       test    $0xff00, %edx
+       jnz     LABEL(ashr_8_exittail)
+-# ifdef USE_AS_STRNCMP
+-      cmp     $7, %r11
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
++      cmp     $8, %r11
+       jbe     LABEL(ashr_8_exittail)
+ # endif
+@@ -1204,6 +1363,7 @@ LABEL(ashr_9):
+       movdqa  (%rsi), %xmm1
+       pcmpeqb %xmm1, %xmm0
+       pslldq  $7, %xmm2
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm2
+       psubb   %xmm0, %xmm2
+       pmovmskb %xmm2, %r9d
+@@ -1244,6 +1404,7 @@ LABEL(gobble_ashr_9):
+ # else
+       palignr $9, %xmm3, %xmm2        /* merge into one 16byte value */
+ # endif
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm0
+       pcmpeqb %xmm2, %xmm1
+@@ -1252,7 +1413,7 @@ LABEL(gobble_ashr_9):
+       sub     $0xffff, %edx
+       jnz     LABEL(exit)
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+@@ -1274,6 +1435,7 @@ LABEL(gobble_ashr_9):
+ # else
+       palignr $9, %xmm3, %xmm2        /* merge into one 16byte value */
+ # endif
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm0
+       pcmpeqb %xmm2, %xmm1
+@@ -1282,7 +1444,7 @@ LABEL(gobble_ashr_9):
+       sub     $0xffff, %edx
+       jnz     LABEL(exit)
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+@@ -1298,8 +1460,8 @@ LABEL(nibble_ashr_9):
+       test    $0xfe00, %edx
+       jnz     LABEL(ashr_9_exittail)
+-# ifdef USE_AS_STRNCMP
+-      cmp     $6, %r11
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
++      cmp     $7, %r11
+       jbe     LABEL(ashr_9_exittail)
+ # endif
+@@ -1326,6 +1488,7 @@ LABEL(ashr_10):
+       movdqa  (%rsi), %xmm1
+       pcmpeqb %xmm1, %xmm0
+       pslldq  $6, %xmm2
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm2
+       psubb   %xmm0, %xmm2
+       pmovmskb %xmm2, %r9d
+@@ -1366,6 +1529,7 @@ LABEL(gobble_ashr_10):
+ # else
+       palignr $10, %xmm3, %xmm2       /* merge into one 16byte value */
+ # endif
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm0
+       pcmpeqb %xmm2, %xmm1
+@@ -1374,7 +1538,7 @@ LABEL(gobble_ashr_10):
+       sub     $0xffff, %edx
+       jnz     LABEL(exit)
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+@@ -1396,6 +1560,7 @@ LABEL(gobble_ashr_10):
+ # else
+       palignr $10, %xmm3, %xmm2       /* merge into one 16byte value */
+ # endif
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm0
+       pcmpeqb %xmm2, %xmm1
+@@ -1404,7 +1569,7 @@ LABEL(gobble_ashr_10):
+       sub     $0xffff, %edx
+       jnz     LABEL(exit)
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+@@ -1420,8 +1585,8 @@ LABEL(nibble_ashr_10):
+       test    $0xfc00, %edx
+       jnz     LABEL(ashr_10_exittail)
+-# ifdef USE_AS_STRNCMP
+-      cmp     $5, %r11
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
++      cmp     $6, %r11
+       jbe     LABEL(ashr_10_exittail)
+ # endif
+@@ -1448,6 +1613,7 @@ LABEL(ashr_11):
+       movdqa  (%rsi), %xmm1
+       pcmpeqb %xmm1, %xmm0
+       pslldq  $5, %xmm2
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm2
+       psubb   %xmm0, %xmm2
+       pmovmskb %xmm2, %r9d
+@@ -1488,6 +1654,7 @@ LABEL(gobble_ashr_11):
+ # else
+       palignr $11, %xmm3, %xmm2       /* merge into one 16byte value */
+ # endif
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm0
+       pcmpeqb %xmm2, %xmm1
+@@ -1496,7 +1663,7 @@ LABEL(gobble_ashr_11):
+       sub     $0xffff, %edx
+       jnz     LABEL(exit)
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+@@ -1518,6 +1685,7 @@ LABEL(gobble_ashr_11):
+ # else
+       palignr $11, %xmm3, %xmm2       /* merge into one 16byte value */
+ # endif
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm0
+       pcmpeqb %xmm2, %xmm1
+@@ -1526,7 +1694,7 @@ LABEL(gobble_ashr_11):
+       sub     $0xffff, %edx
+       jnz     LABEL(exit)
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+@@ -1542,8 +1710,8 @@ LABEL(nibble_ashr_11):
+       test    $0xf800, %edx
+       jnz     LABEL(ashr_11_exittail)
+-# ifdef USE_AS_STRNCMP
+-      cmp     $4, %r11
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
++      cmp     $5, %r11
+       jbe     LABEL(ashr_11_exittail)
+ # endif
+@@ -1570,6 +1738,7 @@ LABEL(ashr_12):
+       movdqa  (%rsi), %xmm1
+       pcmpeqb %xmm1, %xmm0
+       pslldq  $4, %xmm2
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm2
+       psubb   %xmm0, %xmm2
+       pmovmskb %xmm2, %r9d
+@@ -1610,6 +1779,7 @@ LABEL(gobble_ashr_12):
+ # else
+       palignr $12, %xmm3, %xmm2       /* merge into one 16byte value */
+ # endif
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm0
+       pcmpeqb %xmm2, %xmm1
+@@ -1618,7 +1788,7 @@ LABEL(gobble_ashr_12):
+       sub     $0xffff, %edx
+       jnz     LABEL(exit)
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+@@ -1640,6 +1810,7 @@ LABEL(gobble_ashr_12):
+ # else
+       palignr $12, %xmm3, %xmm2       /* merge into one 16byte value */
+ # endif
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm0
+       pcmpeqb %xmm2, %xmm1
+@@ -1648,7 +1819,7 @@ LABEL(gobble_ashr_12):
+       sub     $0xffff, %edx
+       jnz     LABEL(exit)
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+@@ -1664,8 +1835,8 @@ LABEL(nibble_ashr_12):
+       test    $0xf000, %edx
+       jnz     LABEL(ashr_12_exittail)
+-# ifdef USE_AS_STRNCMP
+-      cmp     $3, %r11
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
++      cmp     $4, %r11
+       jbe     LABEL(ashr_12_exittail)
+ # endif
+@@ -1692,6 +1863,7 @@ LABEL(ashr_13):
+       movdqa  (%rsi), %xmm1
+       pcmpeqb %xmm1, %xmm0
+       pslldq  $3, %xmm2
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm2
+       psubb   %xmm0, %xmm2
+       pmovmskb %xmm2, %r9d
+@@ -1732,6 +1904,7 @@ LABEL(gobble_ashr_13):
+ # else
+       palignr $13, %xmm3, %xmm2       /* merge into one 16byte value */
+ # endif
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm0
+       pcmpeqb %xmm2, %xmm1
+@@ -1740,7 +1913,7 @@ LABEL(gobble_ashr_13):
+       sub     $0xffff, %edx
+       jnz     LABEL(exit)
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+@@ -1762,6 +1935,7 @@ LABEL(gobble_ashr_13):
+ # else
+       palignr $13, %xmm3, %xmm2       /* merge into one 16byte value */
+ # endif
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm0
+       pcmpeqb %xmm2, %xmm1
+@@ -1770,7 +1944,7 @@ LABEL(gobble_ashr_13):
+       sub     $0xffff, %edx
+       jnz     LABEL(exit)
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+@@ -1786,8 +1960,8 @@ LABEL(nibble_ashr_13):
+       test    $0xe000, %edx
+       jnz     LABEL(ashr_13_exittail)
+-# ifdef USE_AS_STRNCMP
+-      cmp     $2, %r11
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
++      cmp     $3, %r11
+       jbe     LABEL(ashr_13_exittail)
+ # endif
+@@ -1814,6 +1988,7 @@ LABEL(ashr_14):
+       movdqa  (%rsi), %xmm1
+       pcmpeqb %xmm1, %xmm0
+       pslldq  $2, %xmm2
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm2
+       psubb   %xmm0, %xmm2
+       pmovmskb %xmm2, %r9d
+@@ -1854,6 +2029,7 @@ LABEL(gobble_ashr_14):
+ # else
+       palignr $14, %xmm3, %xmm2       /* merge into one 16byte value */
+ # endif
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm0
+       pcmpeqb %xmm2, %xmm1
+@@ -1862,7 +2038,7 @@ LABEL(gobble_ashr_14):
+       sub     $0xffff, %edx
+       jnz     LABEL(exit)
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+@@ -1884,6 +2060,7 @@ LABEL(gobble_ashr_14):
+ # else
+       palignr $14, %xmm3, %xmm2       /* merge into one 16byte value */
+ # endif
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm0
+       pcmpeqb %xmm2, %xmm1
+@@ -1892,7 +2069,7 @@ LABEL(gobble_ashr_14):
+       sub     $0xffff, %edx
+       jnz     LABEL(exit)
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP | defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+@@ -1908,8 +2085,8 @@ LABEL(nibble_ashr_14):
+       test    $0xc000, %edx
+       jnz     LABEL(ashr_14_exittail)
+-# ifdef USE_AS_STRNCMP
+-      cmp     $1, %r11
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
++      cmp     $2, %r11
+       jbe     LABEL(ashr_14_exittail)
+ # endif
+@@ -1936,6 +2113,7 @@ LABEL(ashr_15):
+       movdqa  (%rsi), %xmm1
+       pcmpeqb %xmm1, %xmm0
+       pslldq  $1, %xmm2
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm2
+       psubb   %xmm0, %xmm2
+       pmovmskb %xmm2, %r9d
+@@ -1978,6 +2156,7 @@ LABEL(gobble_ashr_15):
+ # else
+       palignr $15, %xmm3, %xmm2       /* merge into one 16byte value */
+ # endif
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm0
+       pcmpeqb %xmm2, %xmm1
+@@ -1986,7 +2165,7 @@ LABEL(gobble_ashr_15):
+       sub     $0xffff, %edx
+       jnz     LABEL(exit)
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+@@ -2008,6 +2187,7 @@ LABEL(gobble_ashr_15):
+ # else
+       palignr $15, %xmm3, %xmm2       /* merge into one 16byte value */
+ # endif
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm0
+       pcmpeqb %xmm2, %xmm1
+@@ -2016,7 +2196,7 @@ LABEL(gobble_ashr_15):
+       sub     $0xffff, %edx
+       jnz     LABEL(exit)
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+@@ -2032,9 +2212,9 @@ LABEL(nibble_ashr_15):
+       test    $0x8000, %edx
+       jnz     LABEL(ashr_15_exittail)
+-# ifdef USE_AS_STRNCMP
+-      test    %r11, %r11
+-      je      LABEL(ashr_15_exittail)
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
++      cmpq    $1, %r11
++      jbe     LABEL(ashr_15_exittail)
+ # endif
+       pxor    %xmm0, %xmm0
+@@ -2049,6 +2229,7 @@ LABEL(ashr_15_exittail):
+       .p2align 4
+ LABEL(aftertail):
++      TOLOWER (%xmm1, %xmm3)
+       pcmpeqb %xmm3, %xmm1
+       psubb   %xmm0, %xmm1
+       pmovmskb %xmm1, %edx
+@@ -2069,13 +2250,19 @@ LABEL(ret):
+ LABEL(less16bytes):
+       bsf     %rdx, %rdx              /* find and store bit index in %rdx */
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     %rdx, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+       movzbl  (%rsi, %rdx), %ecx
+       movzbl  (%rdi, %rdx), %eax
++# if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
++      leaq    _nl_C_LC_CTYPE_tolower+128*4(%rip), %rdx
++      movl    (%rdx,%rcx,4), %ecx
++      movl    (%rdx,%rax,4), %eax
++# endif
++
+       sub     %ecx, %eax
+       ret
+@@ -2088,6 +2275,12 @@ LABEL(Byte0):
+       movzx   (%rsi), %ecx
+       movzx   (%rdi), %eax
++# if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
++      leaq    _nl_C_LC_CTYPE_tolower+128*4(%rip), %rdx
++      movl    (%rdx,%rcx,4), %ecx
++      movl    (%rdx,%rax,4), %eax
++# endif
++
+       sub     %ecx, %eax
+       ret
+ END (BP_SYM (STRCMP))
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strncase.S
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strncase.S
+@@ -0,0 +1 @@
++/* In strncase_l.S.  */
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strncase_l-nonascii.c
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strncase_l-nonascii.c
+@@ -0,0 +1,8 @@
++#include <string.h>
++
++extern int __strncasecmp_l_nonascii (__const char *__s1, __const char *__s2,
++                                   size_t __n, __locale_t __loc);
++
++#define __strncasecmp_l __strncasecmp_l_nonascii
++#define USE_IN_EXTENDED_LOCALE_MODEL    1
++#include <string/strncase.c>
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strncase_l.S
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strncase_l.S
+@@ -0,0 +1,6 @@
++#define STRCMP __strncasecmp_l
++#define USE_AS_STRNCASECMP_L
++#include "strcmp.S"
++
++weak_alias (__strncasecmp_l, strncasecmp_l)
++libc_hidden_def (strncasecmp_l)
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strnlen.S
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strnlen.S
+@@ -0,0 +1,64 @@
++/* strnlen(str,maxlen) -- determine the length of the string STR up to MAXLEN.
++   Copyright (C) 2010 Free Software Foundation, Inc.
++   Contributed by Ulrich Drepper <drepper@redhat.com>.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#include <sysdep.h>
++
++
++      .text
++ENTRY(__strnlen)
++      movq    %rsi, %rax
++      testq   %rsi, %rsi
++      jz      3f
++      pxor    %xmm2, %xmm2
++      movq    %rdi, %rcx
++      movq    %rdi, %r8
++      movq    $16, %r9
++      andq    $~15, %rdi
++      movdqa  %xmm2, %xmm1
++      pcmpeqb (%rdi), %xmm2
++      orl     $0xffffffff, %r10d
++      subq    %rdi, %rcx
++      shll    %cl, %r10d
++      subq    %rcx, %r9
++      pmovmskb %xmm2, %edx
++      andl    %r10d, %edx
++      jnz     1f
++      subq    %r9, %rsi
++      jbe     3f
++
++2:    movdqa  16(%rdi), %xmm0
++      leaq    16(%rdi), %rdi
++      pcmpeqb %xmm1, %xmm0
++      pmovmskb %xmm0, %edx
++      testl   %edx, %edx
++      jnz     1f
++      subq    $16, %rsi
++      jnbe    2b
++3:    ret
++
++1:    subq    %r8, %rdi
++      bsfl    %edx, %edx
++      addq    %rdi, %rdx
++      cmpq    %rdx, %rax
++      cmovnbq %rdx, %rax
++      ret
++END(__strnlen)
++weak_alias (__strnlen, strnlen)
++libc_hidden_def (strnlen)
+Index: glibc-2.12-2-gc4ccff1/wcsmbs/wcsatcliff.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/wcsmbs/wcsatcliff.c
++++ glibc-2.12-2-gc4ccff1/wcsmbs/wcsatcliff.c
+@@ -16,6 +16,8 @@
+ #define MEMCPY wmemcpy
+ #define MEMPCPY wmempcpy
+ #define MEMCHR wmemchr
++#define STRCMP wcscmp
++#define STRNCMP wcsncmp
+ #include "../string/stratcliff.c"
diff --git a/src/patches/glibc/glibc-rh607010.patch b/src/patches/glibc/glibc-rh607010.patch
new file mode 100644 (file)
index 0000000..6952dad
--- /dev/null
@@ -0,0 +1,26 @@
+2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * sysdeps/x86_64/cacheinfo.c (init_cacheinfo): Round cache sizes
+       up to multiple of 256 bytes.
+
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/cacheinfo.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/cacheinfo.c
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/cacheinfo.c
+@@ -661,12 +661,16 @@ init_cacheinfo (void)
+   if (data > 0)
+     {
++      /* Round data cache size up to multiple of 256 bytes.  */
++      data = (data + 255) & ~255L;
+       __x86_64_data_cache_size_half = data / 2;
+       __x86_64_data_cache_size = data;
+     }
+   if (shared > 0)
+     {
++      /* Round shared cache size up to multiple of 256 bytes.  */
++      shared = (shared + 255) & ~255L;
+       __x86_64_shared_cache_size_half = shared / 2;
+       __x86_64_shared_cache_size = shared;
+     }
diff --git a/src/patches/glibc/glibc-rh607461.patch b/src/patches/glibc/glibc-rh607461.patch
new file mode 100644 (file)
index 0000000..79fc72c
--- /dev/null
@@ -0,0 +1,22 @@
+Index: glibc-2.12-2-gc4ccff1/nptl/allocatestack.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nptl/allocatestack.c
++++ glibc-2.12-2-gc4ccff1/nptl/allocatestack.c
+@@ -994,7 +994,16 @@ setxid_mark_thread (struct xid_command *
+       /* If the thread is exiting right now, ignore it.  */
+       if ((ch & EXITING_BITMASK) != 0)
+-      return;
++      {
++        /* Release the futex if there is no other setxid in
++           progress.  */
++        if ((ch & SETXID_BITMASK) == 0)
++          {
++            t->setxid_futex = 1;
++            lll_futex_wake (&t->setxid_futex, 1, LLL_PRIVATE);
++          }
++        return;
++      }
+     }
+   while (atomic_compare_and_exchange_bool_acq (&t->cancelhandling,
+                                              ch | SETXID_BITMASK, ch));
diff --git a/src/patches/glibc/glibc-rh615090.patch b/src/patches/glibc/glibc-rh615090.patch
new file mode 100644 (file)
index 0000000..e6c00f0
--- /dev/null
@@ -0,0 +1,21 @@
+2010-07-27  Andreas Schwab  <schwab@redhat.com>
+
+       * manual/memory.texi (Malloc Tunable Parameters): Document
+       M_PERTURB.
+
+Index: glibc-2.12-2-gc4ccff1/manual/memory.texi
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/manual/memory.texi
++++ glibc-2.12-2-gc4ccff1/manual/memory.texi
+@@ -702,6 +702,11 @@ be allocated via @code{mmap}.
+ @item M_MMAP_MAX
+ The maximum number of chunks to allocate with @code{mmap}.  Setting this
+ to zero disables all use of @code{mmap}.
++@item M_PERTURB
++If non-zero, memory blocks are filled with values depending on some
++low order bits of this parameter when they are allocated (except when
++allocated by @code{calloc}) and freed.  This can be used to debug the
++use of uninitialized or freed heap memory.
+ @end table
+ @end deftypefun
diff --git a/src/patches/glibc/glibc-rh615701.patch b/src/patches/glibc/glibc-rh615701.patch
new file mode 100644 (file)
index 0000000..283e3fe
--- /dev/null
@@ -0,0 +1,23 @@
+2010-07-20  Roland McGrath  <roland@redhat.com>
+
+       * elf/dl-sysdep.c (_dl_important_hwcaps): Add dsocaps mask to
+       dl_hwcap_mask as well as dl_hwcap.  Without this, dsocaps matching in
+       ld.so.cache was broken.  With it, there is no way to disable dsocaps
+       like LD_HWCAP_MASK can disable hwcaps.
+
+Index: glibc-2.12-2-gc4ccff1/elf/dl-sysdep.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/elf/dl-sysdep.c
++++ glibc-2.12-2-gc4ccff1/elf/dl-sysdep.c
+@@ -425,6 +425,11 @@ _dl_important_hwcaps (const char *platfo
+     {
+       const ElfW(Word) mask = ((const ElfW(Word) *) dsocaps)[-1];
+       GLRO(dl_hwcap) |= (uint64_t) mask << _DL_FIRST_EXTRA;
++      /* Note that we add the dsocaps to the set already chosen by the
++       LD_HWCAP_MASK environment variable (or default HWCAP_IMPORTANT).
++       So there is no way to request ignoring an OS-supplied dsocap
++       string and bit like you can ignore an OS-supplied HWCAP bit.  */
++      GLRO(dl_hwcap_mask) |= (uint64_t) mask << _DL_FIRST_EXTRA;
+       size_t len;
+       for (const char *p = dsocaps; p < dsocaps + dsocapslen; p += len + 1)
+       {
diff --git a/src/patches/glibc/glibc-rh621959.patch b/src/patches/glibc/glibc-rh621959.patch
new file mode 100644 (file)
index 0000000..315521f
--- /dev/null
@@ -0,0 +1,120 @@
+2010-08-06  Ulrich Drepper  <drepper@redhat.com>
+
+       * sysdeps/unix/sysv/linux/getlogin_r.c (__getlogin_r_loginuid):
+       Also fail if tpwd after pwuid call is NULL.
+
+2010-06-21  Andreas Schwab <schwab@redhat.com>
+
+       * sysdeps/unix/sysv/linux/getlogin_r.c (__getlogin_r_loginuid):
+       Restore proper fallback handling.
+
+2010-06-19  Ulrich Drepper  <drepper@redhat.com>
+
+       * sysdeps/unix/sysv/linux/getlogin_r.c (__getlogin_r_loginuid): Handle
+       OOM in getpwuid_r correctly.  Return error number when the caller
+       should return, otherwise -1.
+       (getlogin_r): Adjust to return also for result of __getlogin_r_loginuid
+       call returning > 0 value.
+       * sysdeps/unix/sysv/linux/getlogin.c (getlogin): Likewise.
+
+Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/getlogin.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/getlogin.c
++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/getlogin.c
+@@ -32,8 +32,9 @@
+ char *
+ getlogin (void)
+ {
+-  if (__getlogin_r_loginuid (name, sizeof (name)) == 0)
+-    return name;
++  int res = __getlogin_r_loginuid (name, sizeof (name));
++  if (res >= 0)
++    return res == 0 ? name : NULL;
+   return getlogin_fd0 ();
+ }
+Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/getlogin_r.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/getlogin_r.c
++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/getlogin_r.c
+@@ -27,6 +27,10 @@ static int getlogin_r_fd0 (char *name, s
+ #undef getlogin_r
++/* Try to determine login name from /proc/self/loginuid and return 0
++   if successful.  If /proc/self/loginuid cannot be read return -1.
++   Otherwise return the error number.  */
++
+ int
+ attribute_hidden
+ __getlogin_r_loginuid (name, namesize)
+@@ -35,7 +39,7 @@ __getlogin_r_loginuid (name, namesize)
+ {
+   int fd = open_not_cancel_2 ("/proc/self/loginuid", O_RDONLY);
+   if (fd == -1)
+-    return 1;
++    return -1;
+   /* We are reading a 32-bit number.  12 bytes are enough for the text
+      representation.  If not, something is wrong.  */
+@@ -51,37 +55,38 @@ __getlogin_r_loginuid (name, namesize)
+       || (uidbuf[n] = '\0',
+         uid = strtoul (uidbuf, &endp, 10),
+         endp == uidbuf || *endp != '\0'))
+-    return 1;
++    return -1;
+   size_t buflen = 1024;
+   char *buf = alloca (buflen);
+   bool use_malloc = false;
+   struct passwd pwd;
+   struct passwd *tpwd;
++  int result = 0;
+   int res;
+-  while ((res = __getpwuid_r (uid, &pwd, buf, buflen, &tpwd)) != 0)
++  while ((res = __getpwuid_r (uid, &pwd, buf, buflen, &tpwd)) == ERANGE)
+     if (__libc_use_alloca (2 * buflen))
+-      extend_alloca (buf, buflen, 2 * buflen);
++      buf = extend_alloca (buf, buflen, 2 * buflen);
+     else
+       {
+       buflen *= 2;
+       char *newp = realloc (use_malloc ? buf : NULL, buflen);
+       if (newp == NULL)
+         {
+-        fail:
+-          if (use_malloc)
+-            free (buf);
+-          return 1;
++          result = ENOMEM;
++          goto out;
+         }
+       buf = newp;
+       use_malloc = true;
+       }
+-  if (tpwd == NULL)
+-    goto fail;
++  if (res != 0 || tpwd == NULL)
++    {
++      result = -1;
++      goto out;
++    }
+-  int result = 0;
+   size_t needed = strlen (pwd.pw_name) + 1;
+   if (needed > namesize)
+     {
+@@ -109,8 +114,9 @@ getlogin_r (name, namesize)
+      char *name;
+      size_t namesize;
+ {
+-  if (__getlogin_r_loginuid (name, namesize) == 0)
+-    return 0;
++  int res = __getlogin_r_loginuid (name, namesize);
++  if (res >= 0)
++    return res;
+   return getlogin_r_fd0 (name, namesize);
+ }
diff --git a/src/patches/glibc/glibc-rh623187.patch b/src/patches/glibc/glibc-rh623187.patch
new file mode 100644 (file)
index 0000000..596fdd6
--- /dev/null
@@ -0,0 +1,18 @@
+2010-08-10  Dinakar Guniguntala  <dino@in.ibm.com>
+           Stefan Hajnoczi  <stefanha@linux.vnet.ibm.com>
+
+       * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: If
+       FUTEX_WAKE_OP fails make sure to call FUTEX_WAKE instead.
+
+Index: glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
++++ glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
+@@ -163,7 +163,6 @@ __pthread_cond_signal:
+ #endif
+       orl     $FUTEX_WAKE, %ecx
+-      xorl    $(FUTEX_WAKE ^ FUTEX_WAKE_OP), %ecx
+       movl    $SYS_futex, %eax
+       /* %edx should be 1 already from $FUTEX_WAKE_OP syscall.
+       movl    $1, %edx  */
diff --git a/src/patches/glibc/glibc-rh625893.patch b/src/patches/glibc/glibc-rh625893.patch
new file mode 100644 (file)
index 0000000..5337a42
--- /dev/null
@@ -0,0 +1,79 @@
+2010-08-12  Andreas Schwab  <schwab@redhat.com>
+
+       [BZ #11904]
+       * locale/programs/locale.c (print_assignment): New function.
+       (show_locale_vars): Use it.
+
+Index: glibc-2.12-2-gc4ccff1/locale/programs/locale.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/locale/programs/locale.c
++++ glibc-2.12-2-gc4ccff1/locale/programs/locale.c
+@@ -762,6 +762,29 @@ write_charmaps (void)
+   twalk (all_data, print_names);
+ }
++/* Print a properly quoted assignment of NAME with VAL, using double
++   quotes iff DQUOTE is true.  */
++static void
++print_assignment (const char *name, const char *val, bool dquote)
++{
++  printf ("%s=", name);
++  if (dquote)
++    putchar ('"');
++  while (*val != '\0')
++    {
++      size_t segment
++      = strcspn (val, dquote ? "$`\"\\" : "~|&;<>()$`\\\"' \t\n");
++      printf ("%.*s", (int) segment, val);
++      val += segment;
++      if (*val == '\0')
++      break;
++      putchar ('\\');
++      putchar (*val++);
++    }
++  if (dquote)
++    putchar ('"');
++  putchar ('\n');
++}
+ /* We have to show the contents of the environments determining the
+    locale.  */
+@@ -769,7 +792,7 @@ static void
+ show_locale_vars (void)
+ {
+   size_t cat_no;
+-  const char *lcall = getenv ("LC_ALL");
++  const char *lcall = getenv ("LC_ALL") ? : "";
+   const char *lang = getenv ("LANG") ? : "";
+   auto void get_source (const char *name);
+@@ -778,15 +801,15 @@ show_locale_vars (void)
+     {
+       char *val = getenv (name);
+-      if ((lcall ?: "")[0] != '\0' || val == NULL)
+-      printf ("%s=\"%s\"\n", name,
+-              (lcall ?: "")[0] ? lcall : (lang ?: "")[0] ? lang : "POSIX");
++      if (lcall[0] != '\0' || val == NULL)
++      print_assignment (name, lcall[0] ? lcall : lang[0] ? lang : "POSIX",
++                        true);
+       else
+-      printf ("%s=%s\n", name, val);
++      print_assignment (name, val, false);
+     }
+   /* LANG has to be the first value.  */
+-  printf ("LANG=%s\n", lang);
++  print_assignment ("LANG", lang, false);
+   /* Now all categories in an unspecified order.  */
+   for (cat_no = 0; cat_no < NCATEGORIES; ++cat_no)
+@@ -794,7 +817,7 @@ show_locale_vars (void)
+       get_source (category[cat_no].name);
+   /* The last is the LC_ALL value.  */
+-  printf ("LC_ALL=%s\n", lcall ? : "");
++  print_assignment ("LC_ALL", lcall, false);
+ }
diff --git a/src/patches/glibc/glibc-rh630801.patch b/src/patches/glibc/glibc-rh630801.patch
new file mode 100644 (file)
index 0000000..5bd3c66
--- /dev/null
@@ -0,0 +1,29 @@
+2010-05-26  H.J. Lu  <hongjiu.lu@intel.com>
+
+       [BZ #11640]
+       * sysdeps/x86_64/multiarch/init-arch.c (__init_cpu_features):
+       Properly check family and model.
+
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/init-arch.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/multiarch/init-arch.c
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/init-arch.c
+@@ -62,15 +62,15 @@ __init_cpu_features (void)
+       unsigned int eax = __cpu_features.cpuid[COMMON_CPUID_INDEX_1].eax;
+       unsigned int extended_family = (eax >> 20) & 0xff;
+       unsigned int extended_model = (eax >> 12) & 0xf0;
+-      if (__cpu_features.family == 0x0f)
++      if (family == 0x0f)
+       {
+         family += extended_family;
+         model += extended_model;
+       }
+-      else if (__cpu_features.family == 0x06)
++      else if (family == 0x06)
+       {
+         model += extended_model;
+-        switch (__cpu_features.model)
++        switch (model)
+           {
+           case 0x1a:
+           case 0x1e:
diff --git a/src/patches/glibc/glibc-rh631011.patch b/src/patches/glibc/glibc-rh631011.patch
new file mode 100644 (file)
index 0000000..42a1a56
--- /dev/null
@@ -0,0 +1,17 @@
+2010-08-19  Andreas Schwab  <schwab@redhat.com>
+
+       * sysdeps/i386/i686/multiarch/strspn.S [!SHARED]: Fix SSE4.2 check.
+
+Index: glibc-2.12-2-gc4ccff1/sysdeps/i386/i686/multiarch/strspn.S
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/i386/i686/multiarch/strspn.S
++++ glibc-2.12-2-gc4ccff1/sysdeps/i386/i686/multiarch/strspn.S
+@@ -65,7 +65,7 @@ ENTRY(strspn)
+       jne     1f
+       call    __init_cpu_features
+ 1:    leal    __strspn_ia32, %eax
+-      testl   $index_SSE2, CPUID_OFFSET+index_SSE4_2+__cpu_features
++      testl   $bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features
+       jz      2f
+       leal    __strspn_sse42, %eax
+ 2:    ret
diff --git a/src/patches/glibc/glibc-rh641128.patch b/src/patches/glibc/glibc-rh641128.patch
new file mode 100644 (file)
index 0000000..52df4ae
--- /dev/null
@@ -0,0 +1,78 @@
+2010-10-06  Ulrich Drepper  <drepper@gmail.com>
+
+       * string/bug-strstr1.c: New file.
+       * string/Makefile: Add rules to build and run bug-strstr1.
+
+2010-10-05  Eric Blake  <eblake@redhat.com>
+
+       [BZ #12092]
+       * string/str-two-way.h (two_way_long_needle): Always clear memory
+       when skipping input due to the shift table.
+
+Index: glibc-2.12-2-gc4ccff1/string/Makefile
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/string/Makefile
++++ glibc-2.12-2-gc4ccff1/string/Makefile
+@@ -54,7 +54,8 @@ tests                := tester inl-tester noinl-tester
+                  bug-strncat1 bug-strspn1 bug-strpbrk1 tst-bswap      \
+                  tst-strtok tst-strxfrm bug-strcoll1 tst-strfry       \
+                  bug-strtok1 $(addprefix test-,$(strop-tests))        \
+-                 bug-envz1 tst-strxfrm2 tst-endian tst-svc2
++                 bug-envz1 tst-strxfrm2 tst-endian tst-svc2           \
++                 bug-strstr1
+ distribute    := memcopy.h pagecopy.h tst-svc.expect test-string.h    \
+                  str-two-way.h
+@@ -73,6 +74,7 @@ CFLAGS-tst-strlen.c = -fno-builtin
+ CFLAGS-stratcliff.c = -fno-builtin
+ CFLAGS-test-ffs.c = -fno-builtin
+ CFLAGS-tst-inlcall.c = -fno-builtin
++CFLAGS-bug-strstr1.c = -fno-builtin
+ ifeq ($(cross-compiling),no)
+ tests: $(objpfx)tst-svc.out
+Index: glibc-2.12-2-gc4ccff1/string/bug-strstr1.c
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/string/bug-strstr1.c
+@@ -0,0 +1,26 @@
++#include <stdio.h>
++#include <string.h>
++
++int main (int argc, char** argv)
++{
++  const char haystack[] =
++    "F_BD_CE_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD_C3_88_20_EF_BF_BD_EF_BF_BD_EF_BF_BD_C3_A7_20_EF_BF_BD";
++
++  const char needle[] =
++    "_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD";
++
++  const char* sub = strstr (haystack, needle);
++
++  if (sub != NULL)
++    {
++      int j;
++
++      fprintf (stderr, "BUG: expected NULL, got:\n%s\n%s\n", sub, needle);
++      for (j = 0; needle[j] != '\0'; ++j)
++        putchar (needle[j] == sub[j] ? ' ' : '^');
++      puts ("");
++      return 1;
++    }
++
++  return 0;
++}
+Index: glibc-2.12-2-gc4ccff1/string/str-two-way.h
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/string/str-two-way.h
++++ glibc-2.12-2-gc4ccff1/string/str-two-way.h
+@@ -350,8 +350,8 @@ two_way_long_needle (const unsigned char
+                    a byte out of place, there can be no match until
+                    after the mismatch.  */
+                 shift = needle_len - period;
+-                memory = 0;
+               }
++            memory = 0;
+             j += shift;
+             continue;
+           }
diff --git a/src/patches/glibc/glibc-rh642584.patch b/src/patches/glibc/glibc-rh642584.patch
new file mode 100644 (file)
index 0000000..7fd390d
--- /dev/null
@@ -0,0 +1,41 @@
+2010-10-13  H.J. Lu  <hongjiu.lu@intel.com>
+
+       [BZ #12113]
+       * sysdeps/x86_64/pthreaddef.h (TCB_ALIGNMENT): Changed to 32.
+       * sysdeps/x86_64/tls.h (TLS_TCB_ALIGN): Defined with alignment
+       of "struct pthread".
+
+Index: glibc-2.12-2-gc4ccff1/nptl/sysdeps/x86_64/pthreaddef.h
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nptl/sysdeps/x86_64/pthreaddef.h
++++ glibc-2.12-2-gc4ccff1/nptl/sysdeps/x86_64/pthreaddef.h
+@@ -27,8 +27,9 @@
+ /* Minimal stack size after allocating thread descriptor and guard size.  */
+ #define MINIMAL_REST_STACK    2048
+-/* Alignment requirement for TCB.  */
+-#define TCB_ALIGNMENT         16
++/* Alignment requirement for TCB.  Need to store post-AVX vector registers
++   in the TCB and we want the storage to be aligned at 32-byte.  */
++#define TCB_ALIGNMENT         32
+ /* Location of current stack frame.  The frame pointer is not usable.  */
+Index: glibc-2.12-2-gc4ccff1/nptl/sysdeps/x86_64/tls.h
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nptl/sysdeps/x86_64/tls.h
++++ glibc-2.12-2-gc4ccff1/nptl/sysdeps/x86_64/tls.h
+@@ -117,12 +117,7 @@ typedef struct
+ # define TLS_TCB_SIZE sizeof (struct pthread)
+ /* Alignment requirements for the TCB.  */
+-//# define TLS_TCB_ALIGN __alignof__ (struct pthread)
+-// Normally the above would be correct  But we have to store post-AVX
+-// vector registers in the TCB and we want the storage to be aligned.
+-// unfortunately there isn't yet a type for these values and hence no
+-// 32-byte alignment requirement.  Make this explicit, for now.
+-# define TLS_TCB_ALIGN 32
++# define TLS_TCB_ALIGN __alignof__ (struct pthread)
+ /* The TCB can have any size and the memory following the address the
+    thread pointer points to is unspecified.  Allocate the TCB there.  */
diff --git a/src/patches/glibc/glibc-rh643822.patch b/src/patches/glibc/glibc-rh643822.patch
new file mode 100644 (file)
index 0000000..c32c1fe
--- /dev/null
@@ -0,0 +1,64 @@
+2010-12-09  Andreas Schwab  <schwab@redhat.com>
+
+       * elf/dl-object.c (_dl_new_object): Ignore origin of privileged
+       program.
+
+2010-10-18  Andreas Schwab  <schwab@redhat.com>
+
+       * elf/dl-open.c (dl_open_worker): Don't expand DST here, let
+       _dl_map_object do it.
+
+Index: glibc-2.12-2-gc4ccff1/elf/dl-object.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/elf/dl-object.c
++++ glibc-2.12-2-gc4ccff1/elf/dl-object.c
+@@ -214,6 +214,9 @@ _dl_new_object (char *realname, const ch
+     out:
+       new->l_origin = origin;
+     }
++  else if (INTUSE(__libc_enable_secure) && type == lt_executable)
++    /* The origin of a privileged program cannot be trusted.  */
++    new->l_origin = (char *) -1;
+   return new;
+ }
+Index: glibc-2.12-2-gc4ccff1/elf/dl-open.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/elf/dl-open.c
++++ glibc-2.12-2-gc4ccff1/elf/dl-open.c
+@@ -221,35 +221,6 @@ dl_open_worker (void *a)
+   assert (_dl_debug_initialize (0, args->nsid)->r_state == RT_CONSISTENT);
+-  /* Maybe we have to expand a DST.  */
+-  if (__builtin_expect (dst != NULL, 0))
+-    {
+-      size_t len = strlen (file);
+-
+-      /* Determine how much space we need.  We have to allocate the
+-       memory locally.  */
+-      size_t required = DL_DST_REQUIRED (call_map, file, len,
+-                                       _dl_dst_count (dst, 0));
+-
+-      /* Get space for the new file name.  */
+-      char *new_file = (char *) alloca (required + 1);
+-
+-      /* Generate the new file name.  */
+-      _dl_dst_substitute (call_map, file, new_file, 0);
+-
+-      /* If the substitution failed don't try to load.  */
+-      if (*new_file == '\0')
+-      _dl_signal_error (0, "dlopen", NULL,
+-                        N_("empty dynamic string token substitution"));
+-
+-      /* Now we have a new file name.  */
+-      file = new_file;
+-
+-      /* It does not matter whether call_map is set even if we
+-       computed it only because of the DST.  Since the path contains
+-       a slash the value is not used.  See dl-load.c.  */
+-    }
+-
+   /* Load the named object.  */
+   struct link_map *new;
+   args->map = new = _dl_map_object (call_map, file, 0, lt_loaded, 0,
diff --git a/src/patches/glibc/glibc-rh645672.patch b/src/patches/glibc/glibc-rh645672.patch
new file mode 100644 (file)
index 0000000..644614e
--- /dev/null
@@ -0,0 +1,215 @@
+2010-10-22  Andreas Schwab  <schwab@redhat.com>
+
+       * include/dlfcn.h (__RTLD_SECURE): Define.
+       * elf/dl-load.c (_dl_map_object): Remove preloaded parameter.  Use
+       mode & __RTLD_SECURE instead.
+       (open_path): Remove preloaded parameter to secure.
+       * sysdeps/generic/ldsodefs.h (_dl_map_object): Adjust declaration.
+       * elf/dl-open.c (dl_open_worker): Adjust call to _dl_map_object.
+       * elf/dl-deps.c (openaux): Likewise.
+       * elf/rtld.c (struct map_args): Remove is_preloaded.
+       (map_doit): Don't use it.
+       (dl_main): Likewise.
+       (do_preload): Use __RTLD_SECURE instead of is_preloaded.
+       (dlmopen_doit): Add __RTLD_SECURE to mode bits.
+
+Index: glibc-2.12-2-gc4ccff1/elf/dl-deps.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/elf/dl-deps.c
++++ glibc-2.12-2-gc4ccff1/elf/dl-deps.c
+@@ -62,7 +62,7 @@ openaux (void *a)
+ {
+   struct openaux_args *args = (struct openaux_args *) a;
+-  args->aux = _dl_map_object (args->map, args->name, 0,
++  args->aux = _dl_map_object (args->map, args->name,
+                             (args->map->l_type == lt_executable
+                              ? lt_library : args->map->l_type),
+                             args->trace_mode, args->open_mode,
+Index: glibc-2.12-2-gc4ccff1/elf/dl-load.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/elf/dl-load.c
++++ glibc-2.12-2-gc4ccff1/elf/dl-load.c
+@@ -1811,7 +1811,7 @@ open_verify (const char *name, struct fi
+    if MAY_FREE_DIRS is true.  */
+ static int
+-open_path (const char *name, size_t namelen, int preloaded,
++open_path (const char *name, size_t namelen, int secure,
+          struct r_search_path_struct *sps, char **realname,
+          struct filebuf *fbp, struct link_map *loader, int whatcode,
+          bool *found_other_class)
+@@ -1893,7 +1893,7 @@ open_path (const char *name, size_t name
+         /* Remember whether we found any existing directory.  */
+         here_any |= this_dir->status[cnt] != nonexisting;
+-        if (fd != -1 && __builtin_expect (preloaded, 0)
++        if (fd != -1 && __builtin_expect (secure, 0)
+             && INTUSE(__libc_enable_secure))
+           {
+             /* This is an extra security effort to make sure nobody can
+@@ -1962,7 +1962,7 @@ open_path (const char *name, size_t name
+ struct link_map *
+ internal_function
+-_dl_map_object (struct link_map *loader, const char *name, int preloaded,
++_dl_map_object (struct link_map *loader, const char *name,
+               int type, int trace_mode, int mode, Lmid_t nsid)
+ {
+   int fd;
+@@ -2066,7 +2066,8 @@ _dl_map_object (struct link_map *loader,
+         for (l = loader; l; l = l->l_loader)
+           if (cache_rpath (l, &l->l_rpath_dirs, DT_RPATH, "RPATH"))
+             {
+-              fd = open_path (name, namelen, preloaded, &l->l_rpath_dirs,
++              fd = open_path (name, namelen, mode & __RTLD_SECURE,
++                              &l->l_rpath_dirs,
+                               &realname, &fb, loader, LA_SER_RUNPATH,
+                               &found_other_class);
+               if (fd != -1)
+@@ -2081,14 +2082,15 @@ _dl_map_object (struct link_map *loader,
+             && main_map != NULL && main_map->l_type != lt_loaded
+             && cache_rpath (main_map, &main_map->l_rpath_dirs, DT_RPATH,
+                             "RPATH"))
+-          fd = open_path (name, namelen, preloaded, &main_map->l_rpath_dirs,
++          fd = open_path (name, namelen, mode & __RTLD_SECURE,
++                          &main_map->l_rpath_dirs,
+                           &realname, &fb, loader ?: main_map, LA_SER_RUNPATH,
+                           &found_other_class);
+       }
+       /* Try the LD_LIBRARY_PATH environment variable.  */
+       if (fd == -1 && env_path_list.dirs != (void *) -1)
+-      fd = open_path (name, namelen, preloaded, &env_path_list,
++      fd = open_path (name, namelen, mode & __RTLD_SECURE, &env_path_list,
+                       &realname, &fb,
+                       loader ?: GL(dl_ns)[LM_ID_BASE]._ns_loaded,
+                       LA_SER_LIBPATH, &found_other_class);
+@@ -2097,12 +2099,12 @@ _dl_map_object (struct link_map *loader,
+       if (fd == -1 && loader != NULL
+         && cache_rpath (loader, &loader->l_runpath_dirs,
+                         DT_RUNPATH, "RUNPATH"))
+-      fd = open_path (name, namelen, preloaded,
++      fd = open_path (name, namelen, mode & __RTLD_SECURE,
+                       &loader->l_runpath_dirs, &realname, &fb, loader,
+                       LA_SER_RUNPATH, &found_other_class);
+       if (fd == -1
+-        && (__builtin_expect (! preloaded, 1)
++        && (__builtin_expect (! (mode & __RTLD_SECURE), 1)
+             || ! INTUSE(__libc_enable_secure)))
+       {
+         /* Check the list of libraries in the file /etc/ld.so.cache,
+@@ -2168,7 +2170,7 @@ _dl_map_object (struct link_map *loader,
+         && ((l = loader ?: GL(dl_ns)[nsid]._ns_loaded) == NULL
+             || __builtin_expect (!(l->l_flags_1 & DF_1_NODEFLIB), 1))
+         && rtld_search_dirs.dirs != (void *) -1)
+-      fd = open_path (name, namelen, preloaded, &rtld_search_dirs,
++      fd = open_path (name, namelen, mode & __RTLD_SECURE, &rtld_search_dirs,
+                       &realname, &fb, l, LA_SER_DEFAULT, &found_other_class);
+       /* Add another newline when we are tracing the library loading.  */
+Index: glibc-2.12-2-gc4ccff1/elf/dl-open.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/elf/dl-open.c
++++ glibc-2.12-2-gc4ccff1/elf/dl-open.c
+@@ -252,7 +252,7 @@ dl_open_worker (void *a)
+   /* Load the named object.  */
+   struct link_map *new;
+-  args->map = new = _dl_map_object (call_map, file, 0, lt_loaded, 0,
++  args->map = new = _dl_map_object (call_map, file, lt_loaded, 0,
+                                   mode | __RTLD_CALLMAP, args->nsid);
+   /* If the pointer returned is NULL this means the RTLD_NOLOAD flag is
+Index: glibc-2.12-2-gc4ccff1/elf/rtld.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/elf/rtld.c
++++ glibc-2.12-2-gc4ccff1/elf/rtld.c
+@@ -589,7 +589,6 @@ struct map_args
+   /* Argument to map_doit.  */
+   char *str;
+   struct link_map *loader;
+-  int is_preloaded;
+   int mode;
+   /* Return value of map_doit.  */
+   struct link_map *map;
+@@ -627,16 +626,17 @@ static void
+ map_doit (void *a)
+ {
+   struct map_args *args = (struct map_args *) a;
+-  args->map = _dl_map_object (args->loader, args->str,
+-                            args->is_preloaded, lt_library, 0, args->mode,
+-                            LM_ID_BASE);
++  args->map = _dl_map_object (args->loader, args->str, lt_library, 0,
++                            args->mode, LM_ID_BASE);
+ }
+ static void
+ dlmopen_doit (void *a)
+ {
+   struct dlmopen_args *args = (struct dlmopen_args *) a;
+-  args->map = _dl_open (args->fname, RTLD_LAZY | __RTLD_DLOPEN | __RTLD_AUDIT,
++  args->map = _dl_open (args->fname,
++                      (RTLD_LAZY | __RTLD_DLOPEN | __RTLD_AUDIT
++                       | __RTLD_SECURE),
+                       dl_main, LM_ID_NEWLM, _dl_argc, INTUSE(_dl_argv),
+                       __environ);
+ }
+@@ -806,8 +806,7 @@ do_preload (char *fname, struct link_map
+   args.str = fname;
+   args.loader = main_map;
+-  args.is_preloaded = 1;
+-  args.mode = 0;
++  args.mode = __RTLD_SECURE;
+   unsigned int old_nloaded = GL(dl_ns)[LM_ID_BASE]._ns_nloaded;
+@@ -1054,7 +1053,6 @@ of this helper program; chances are you 
+         args.str = rtld_progname;
+         args.loader = NULL;
+-        args.is_preloaded = 0;
+         args.mode = __RTLD_OPENEXEC;
+         (void) _dl_catch_error (&objname, &err_str, &malloced, map_doit,
+                                 &args);
+@@ -1066,7 +1064,7 @@ of this helper program; chances are you 
+       else
+       {
+         HP_TIMING_NOW (start);
+-        _dl_map_object (NULL, rtld_progname, 0, lt_library, 0,
++        _dl_map_object (NULL, rtld_progname, lt_library, 0,
+                         __RTLD_OPENEXEC, LM_ID_BASE);
+         HP_TIMING_NOW (stop);
+Index: glibc-2.12-2-gc4ccff1/include/dlfcn.h
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/include/dlfcn.h
++++ glibc-2.12-2-gc4ccff1/include/dlfcn.h
+@@ -9,6 +9,7 @@
+ #define __RTLD_OPENEXEC       0x20000000
+ #define __RTLD_CALLMAP        0x10000000
+ #define __RTLD_AUDIT  0x08000000
++#define __RTLD_SECURE 0x04000000 /* Apply additional security checks.  */
+ #define __LM_ID_CALLER        -2
+Index: glibc-2.12-2-gc4ccff1/sysdeps/generic/ldsodefs.h
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/generic/ldsodefs.h
++++ glibc-2.12-2-gc4ccff1/sysdeps/generic/ldsodefs.h
+@@ -824,11 +824,9 @@ extern void _dl_receive_error (receiver_
+ /* Open the shared object NAME and map in its segments.
+    LOADER's DT_RPATH is used in searching for NAME.
+-   If the object is already opened, returns its existing map.
+-   For preloaded shared objects PRELOADED is set to a non-zero
+-   value to allow additional security checks.  */
++   If the object is already opened, returns its existing map.  */
+ extern struct link_map *_dl_map_object (struct link_map *loader,
+-                                      const char *name, int preloaded,
++                                      const char *name,
+                                       int type, int trace_mode, int mode,
+                                       Lmid_t nsid)
+      internal_function attribute_hidden;
diff --git a/src/patches/glibc/glibc-rh646954.patch b/src/patches/glibc/glibc-rh646954.patch
new file mode 100644 (file)
index 0000000..bbb959e
--- /dev/null
@@ -0,0 +1,216 @@
+2010-10-26  Ulrich Drepper  <drepper@gmail.com>
+
+       * elf/rtld.c (dl_main): Move assertion after the point where rtld map
+       is added to the list.
+
+2010-10-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
+           Ulrich Drepper  <drepper@gmail.com>
+
+       * elf/dl-object.c (_dl_new_object): Don't append the new object to
+       the global list here.  Move code to...
+       (_dl_add_to_namespace_list): ...here.  New function.
+       * elf/rtld.c (dl_main): Invoke _dl_add_to_namespace_list.
+       * sysdeps/generic/ldsodefs.h (_dl_add_to_namespace_list): Declare.
+       * elf/dl-load.c (lose): Don't remove the element from the list.
+       (_dl_map_object_from_fd): Invoke _dl_add_to_namespace_list.
+       (_dl_map_object): Likewise.
+
+Index: glibc-2.12-2-gc4ccff1/elf/dl-load.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/elf/dl-load.c
++++ glibc-2.12-2-gc4ccff1/elf/dl-load.c
+@@ -797,22 +797,7 @@ lose (int code, int fd, const char *name
+   /* The file might already be closed.  */
+   if (fd != -1)
+     (void) __close (fd);
+-  if (l != NULL)
+-    {
+-      /* We modify the list of loaded objects.  */
+-      __rtld_lock_lock_recursive (GL(dl_load_write_lock));
+-      /* Remove the stillborn object from the list and free it.  */
+-      assert (l->l_next == NULL);
+-      if (l->l_prev == NULL)
+-      /* No other module loaded. This happens only in the static library,
+-         or in rtld under --verify.  */
+-      GL(dl_ns)[l->l_ns]._ns_loaded = NULL;
+-      else
+-      l->l_prev->l_next = NULL;
+-      --GL(dl_ns)[l->l_ns]._ns_nloaded;
+-      free (l);
+-      __rtld_lock_unlock_recursive (GL(dl_load_write_lock));
+-    }
++  free (l);
+   free (realname);
+   if (r != NULL)
+@@ -897,6 +882,9 @@ _dl_map_object_from_fd (const char *name
+        never be unloaded.  */
+       __close (fd);
++      /* Add the map for the mirrored object to the object list.  */
++      _dl_add_to_namespace_list (l, nsid);
++
+       return l;
+     }
+ #endif
+@@ -1491,6 +1479,9 @@ cannot enable executable stack as shared
+     add_name_to_object (l, ((const char *) D_PTR (l, l_info[DT_STRTAB])
+                           + l->l_info[DT_SONAME]->d_un.d_val));
++  /* Now that the object is fully initialized add it to the object list.  */
++  _dl_add_to_namespace_list (l, nsid);
++
+ #ifdef SHARED
+   /* Auditing checkpoint: we have a new object.  */
+   if (__builtin_expect (GLRO(dl_naudit) > 0, 0)
+@@ -2215,7 +2206,7 @@ _dl_map_object (struct link_map *loader,
+            have.  */
+         static const Elf_Symndx dummy_bucket = STN_UNDEF;
+-        /* Enter the new object in the list of loaded objects.  */
++        /* Allocate a new object map.  */
+         if ((name_copy = local_strdup (name)) == NULL
+             || (l = _dl_new_object (name_copy, name, type, loader,
+                                     mode, nsid)) == NULL)
+@@ -2233,6 +2224,9 @@ _dl_map_object (struct link_map *loader,
+         l->l_nbuckets = 1;
+         l->l_relocated = 1;
++        /* Enter the object in the object list.  */
++        _dl_add_to_namespace_list (l, nsid);
++
+         return l;
+       }
+       else if (found_other_class)
+Index: glibc-2.12-2-gc4ccff1/elf/dl-object.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/elf/dl-object.c
++++ glibc-2.12-2-gc4ccff1/elf/dl-object.c
+@@ -26,16 +26,41 @@
+ #include <assert.h>
++/* Add the new link_map NEW to the end of the namespace list.  */
++void
++internal_function
++_dl_add_to_namespace_list (struct link_map *new, Lmid_t nsid)
++{
++  /* We modify the list of loaded objects.  */
++  __rtld_lock_lock_recursive (GL(dl_load_write_lock));
++
++  if (GL(dl_ns)[nsid]._ns_loaded != NULL)
++    {
++      struct link_map *l = GL(dl_ns)[nsid]._ns_loaded;
++      while (l->l_next != NULL)
++      l = l->l_next;
++      new->l_prev = l;
++      /* new->l_next = NULL;   Would be necessary but we use calloc.  */
++      l->l_next = new;
++    }
++  else
++    GL(dl_ns)[nsid]._ns_loaded = new;
++  ++GL(dl_ns)[nsid]._ns_nloaded;
++  new->l_serial = GL(dl_load_adds);
++  ++GL(dl_load_adds);
++
++  __rtld_lock_unlock_recursive (GL(dl_load_write_lock));
++}
++
++
+ /* Allocate a `struct link_map' for a new object being loaded,
+    and enter it into the _dl_loaded list.  */
+-
+ struct link_map *
+ internal_function
+ _dl_new_object (char *realname, const char *libname, int type,
+               struct link_map *loader, int mode, Lmid_t nsid)
+ {
+   struct link_map *l;
+-  int idx;
+   size_t libname_len = strlen (libname) + 1;
+   struct link_map *new;
+   struct libname_list *newname;
+@@ -93,31 +118,12 @@ _dl_new_object (char *realname, const ch
+   new->l_scope = new->l_scope_mem;
+   new->l_scope_max = sizeof (new->l_scope_mem) / sizeof (new->l_scope_mem[0]);
+-  /* We modify the list of loaded objects.  */
+-  __rtld_lock_lock_recursive (GL(dl_load_write_lock));
+-
+   /* Counter for the scopes we have to handle.  */
+-  idx = 0;
++  int idx = 0;
+   if (GL(dl_ns)[nsid]._ns_loaded != NULL)
+-    {
+-      l = GL(dl_ns)[nsid]._ns_loaded;
+-      while (l->l_next != NULL)
+-      l = l->l_next;
+-      new->l_prev = l;
+-      /* new->l_next = NULL;  Would be necessary but we use calloc.  */
+-      l->l_next = new;
+-
+-      /* Add the global scope.  */
+-      new->l_scope[idx++] = &GL(dl_ns)[nsid]._ns_loaded->l_searchlist;
+-    }
+-  else
+-    GL(dl_ns)[nsid]._ns_loaded = new;
+-  ++GL(dl_ns)[nsid]._ns_nloaded;
+-  new->l_serial = GL(dl_load_adds);
+-  ++GL(dl_load_adds);
+-
+-  __rtld_lock_unlock_recursive (GL(dl_load_write_lock));
++    /* Add the global scope.  */
++    new->l_scope[idx++] = &GL(dl_ns)[nsid]._ns_loaded->l_searchlist;
+   /* If we have no loader the new object acts as it.  */
+   if (loader == NULL)
+Index: glibc-2.12-2-gc4ccff1/elf/rtld.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/elf/rtld.c
++++ glibc-2.12-2-gc4ccff1/elf/rtld.c
+@@ -1108,11 +1108,15 @@ of this helper program; chances are you 
+       main_map = _dl_new_object ((char *) "", "", lt_executable, NULL,
+                                __RTLD_OPENEXEC, LM_ID_BASE);
+       assert (main_map != NULL);
+-      assert (main_map == GL(dl_ns)[LM_ID_BASE]._ns_loaded);
+       main_map->l_phdr = phdr;
+       main_map->l_phnum = phnum;
+       main_map->l_entry = *user_entry;
++      /* Even though the link map is not yet fully initialized we can add
++       it to the map list since there are no possible users running yet.  */
++      _dl_add_to_namespace_list (main_map, LM_ID_BASE);
++      assert (main_map == GL(dl_ns)[LM_ID_BASE]._ns_loaded);
++
+       /* At this point we are in a bit of trouble.  We would have to
+        fill in the values for l_dev and l_ino.  But in general we
+        do not know where the file is.  We also do not handle AT_EXECFD
+@@ -1380,6 +1384,9 @@ of this helper program; chances are you 
+             l->l_libname->name = memcpy (copy, dsoname, len);
+           }
++        /* Add the vDSO to the object list.  */
++        _dl_add_to_namespace_list (l, LM_ID_BASE);
++
+         /* Rearrange the list so this DSO appears after rtld_map.  */
+         assert (l->l_next == NULL);
+         assert (l->l_prev == main_map);
+Index: glibc-2.12-2-gc4ccff1/sysdeps/generic/ldsodefs.h
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/generic/ldsodefs.h
++++ glibc-2.12-2-gc4ccff1/sysdeps/generic/ldsodefs.h
+@@ -891,8 +891,11 @@ extern lookup_t _dl_lookup_symbol_x (con
+ extern ElfW(Addr) _dl_symbol_value (struct link_map *map, const char *name)
+      internal_function;
+-/* Allocate a `struct link_map' for a new object being loaded,
+-   and enter it into the _dl_main_map list.  */
++/* Add the new link_map NEW to the end of the namespace list.  */
++extern void _dl_add_to_namespace_list (struct link_map *new, Lmid_t nsid)
++     internal_function attribute_hidden;
++
++/* Allocate a `struct link_map' for a new object being loaded.  */
+ extern struct link_map *_dl_new_object (char *realname, const char *libname,
+                                       int type, struct link_map *loader,
+                                       int mode, Lmid_t nsid)
diff --git a/src/patches/glibc/glibc-rh647448.patch b/src/patches/glibc/glibc-rh647448.patch
new file mode 100644 (file)
index 0000000..ff55945
--- /dev/null
@@ -0,0 +1,58 @@
+2010-10-25  Ulrich Drepper  <drepper@redhat.com>
+
+       [BZ #12159]
+       * sysdeps/x86_64/multiarch/strchr.S: Fix propagation of search byte
+       into all bytes of SSE register.
+       Patch by Richard Li <richardpku@gmail.com>.
+
+Index: glibc-2.12-2-gc4ccff1/string/Makefile
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/string/Makefile
++++ glibc-2.12-2-gc4ccff1/string/Makefile
+@@ -55,7 +55,7 @@ tests                := tester inl-tester noinl-tester
+                  tst-strtok tst-strxfrm bug-strcoll1 tst-strfry       \
+                  bug-strtok1 $(addprefix test-,$(strop-tests))        \
+                  bug-envz1 tst-strxfrm2 tst-endian tst-svc2           \
+-                 bug-strstr1
++                 bug-strstr1 bug-strchr1
+ distribute    := memcopy.h pagecopy.h tst-svc.expect test-string.h    \
+                  str-two-way.h
+Index: glibc-2.12-2-gc4ccff1/string/bug-strchr1.c
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/string/bug-strchr1.c
+@@ -0,0 +1,14 @@
++#include <stdio.h>
++#include <string.h>
++
++static int
++do_test (void)
++{
++  char s[] __attribute__((aligned(16))) = "\xff";
++  char *p = strchr (s, '\xfe');
++  printf ("%p\n", p);
++  return p != NULL;
++}
++
++#define TEST_FUNCTION do_test ()
++#include "../test-skeleton.c"
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strchr.S
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/multiarch/strchr.S
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strchr.S
+@@ -87,13 +87,13 @@ __strchr_sse42:
+       pxor    %xmm2, %xmm2
+       movd    %esi, %xmm1
+       movl    %edi, %ecx
++      pshufb  %xmm2, %xmm1
+       andl    $15, %ecx
+       movq    %rdi, %r8
+       je      L(aligned_start)
+ /* Handle unaligned string.  */
+       andq    $-16, %r8
+-      pshufb  %xmm2, %xmm1
+       movdqa  (%r8), %xmm0
+       pcmpeqb  %xmm0, %xmm2
+       pcmpeqb  %xmm1, %xmm0
diff --git a/src/patches/glibc/glibc-rh652661.patch b/src/patches/glibc/glibc-rh652661.patch
new file mode 100644 (file)
index 0000000..79a3212
--- /dev/null
@@ -0,0 +1,21 @@
+2010-05-20  Andreas Schwab  <schwab@redhat.com>
+
+       * sysdeps/unix/sysv/linux/sys/timex.h: Use __REDIRECT_NTH.
+
+Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/sys/timex.h
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/sys/timex.h
++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/sys/timex.h
+@@ -140,9 +140,9 @@ __BEGIN_DECLS
+ extern int __adjtimex (struct timex *__ntx) __THROW;
+ extern int adjtimex (struct timex *__ntx) __THROW;
+-#if defined __GNUC__ && __GNUC__ >= 2
+-extern int ntp_gettime (struct ntptimeval *__ntv)
+-     __asm__ ("ntp_gettimex") __THROW;
++#ifdef __REDIRECT_NTH
++extern int __REDIRECT_NTH (ntp_gettime, (struct ntptimeval *__ntv),
++                         ntp_gettimex);
+ #else
+ extern int ntp_gettimex (struct ntptimeval *__ntv) __THROW;
+ # define ntp_gettime ntp_gettimex
diff --git a/src/patches/glibc/glibc-rh656014.patch b/src/patches/glibc/glibc-rh656014.patch
new file mode 100644 (file)
index 0000000..5ef68dc
--- /dev/null
@@ -0,0 +1,45 @@
+2010-11-24  Andreas Schwab  <schwab@redhat.com>
+
+       * resolv/nss_dns/dns-host.c (getanswer_r): Don't handle ttl == 0
+       specially.
+       (gaih_getanswer_slice): Likewise.
+
+Index: glibc-2.12-2-gc4ccff1/resolv/nss_dns/dns-host.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/resolv/nss_dns/dns-host.c
++++ glibc-2.12-2-gc4ccff1/resolv/nss_dns/dns-host.c
+@@ -599,7 +599,6 @@ getanswer_r (const querybuf *answer, int
+   int (*name_ok) (const char *);
+   u_char packtmp[NS_MAXCDNAME];
+   int have_to_map = 0;
+-  int32_t ttl = 0;
+   uintptr_t pad = -(uintptr_t) buffer % __alignof__ (struct host_data);
+   buffer += pad;
+   if (__builtin_expect (buflen < sizeof (struct host_data) + pad, 0))
+@@ -733,7 +732,7 @@ getanswer_r (const querybuf *answer, int
+       cp += INT16SZ;                  /* type */
+       class = __ns_get16 (cp);
+       cp += INT16SZ;                  /* class */
+-      ttl = __ns_get32 (cp);
++      int32_t ttl = __ns_get32 (cp);
+       cp += INT32SZ;                  /* TTL */
+       n = __ns_get16 (cp);
+       cp += INT16SZ;                  /* len */
+@@ -907,7 +906,7 @@ getanswer_r (const querybuf *answer, int
+           {
+             register int nn;
+-            if (ttlp != NULL && ttl != 0)
++            if (ttlp != NULL)
+               *ttlp = ttl;
+             if (canonp != NULL)
+               *canonp = bp;
+@@ -1163,7 +1162,7 @@ gaih_getanswer_slice (const querybuf *an
+       if (*firstp)
+       {
+-        if (ttl != 0 && ttlp != NULL)
++        if (ttlp != NULL)
+           *ttlp = ttl;
+         (*pat)->name = canon ?: h_name;
diff --git a/src/patches/glibc/glibc-rh656530.patch b/src/patches/glibc/glibc-rh656530.patch
new file mode 100644 (file)
index 0000000..f101430
--- /dev/null
@@ -0,0 +1,21 @@
+2010-11-10  Luis Machado  <luisgpm@br.ibm.com>
+
+       * sysdeps/ieee754/ldbl-128ibm/e_sqrtl.c (__ieee754_sqrtl): Force
+         signed comparison.
+
+Index: glibc-2.12-2-gc4ccff1/sysdeps/ieee754/ldbl-128ibm/e_sqrtl.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/ieee754/ldbl-128ibm/e_sqrtl.c
++++ glibc-2.12-2-gc4ccff1/sysdeps/ieee754/ldbl-128ibm/e_sqrtl.c
+@@ -73,9 +73,9 @@ long double __ieee754_sqrtl(long double 
+       m = ((a.i[2] >> 20) & 0x7ff) - 54;
+       }
+       m += n;
+-      if (m > 0)
++      if ((int) m > 0)
+       a.i[2] = (a.i[2] & 0x800fffff) | (m << 20);
+-      else if (m <= -54) {
++      else if ((int) m <= -54) {
+       a.i[2] &= 0x80000000;
+       a.i[3] = 0;
+       } else {
diff --git a/src/patches/glibc/glibc-rh657572.patch b/src/patches/glibc/glibc-rh657572.patch
new file mode 100644 (file)
index 0000000..a720130
--- /dev/null
@@ -0,0 +1,141 @@
+commit 42c5011242e48f846111237552d3bf3ca18c4885
+Author: Ulrich Drepper <drepper@gmail.com>
+Date:   Fri Dec 23 09:51:10 2011 -0500
+
+    Various fixes to fi_FI
+
+ 2011-12-23  Ulrich Drepper  <drepper@gmail.com>
+       [BZ #12962]
+       * locales/fi_FI: Various fixups.
+       Patch by Marko Myllynen <myllynen@redhat.com>.
+
+diff --git a/localedata/locales/fi_FI b/localedata/locales/fi_FI
+index acc9ce6..f51700c 100644
+--- a/localedata/locales/fi_FI
++++ b/localedata/locales/fi_FI
+@@ -1,4 +1,4 @@
+-escape_char   /
++escape_char     /
+ comment_char    %
+ % Finnish language locale for Finland
+@@ -45,10 +45,10 @@ category  "fi_FI:2000";LC_NUMERIC
+ category  "fi_FI:2000";LC_MONETARY
+ category  "fi_FI:2000";LC_MESSAGES
+ category  "fi_FI:2000";LC_PAPER
++category  "fi_FI:2000";LC_MEASUREMENT
+ category  "fi_FI:2000";LC_NAME
+ category  "fi_FI:2000";LC_ADDRESS
+ category  "fi_FI:2000";LC_TELEPHONE
+-
+ END LC_IDENTIFICATION
+ LC_COLLATE
+@@ -125,7 +125,6 @@ reorder-after <U0044>
+ <U0110> <d>;<OBL>;<CAP>;IGNORE
+ reorder-end
+-
+ END LC_COLLATE
+ LC_CTYPE
+@@ -146,12 +145,10 @@ positive_sign        ""
+ negative_sign        "<U002D>"
+ int_frac_digits      2
+ frac_digits          2
+-% int_curr_symbol precedes
+-% curr_symbol succeeds
+ p_cs_precedes        0
+-p_sep_by_space       2
++p_sep_by_space       1
+ n_cs_precedes        0
+-n_sep_by_space       2
++n_sep_by_space       1
+ p_sign_posn          1
+ n_sign_posn          1
+ END LC_MONETARY
+@@ -173,18 +170,18 @@ day      "<U0073><U0075><U006E><U006E><U0075><U006E><U0074><U0061><U0069>";/
+          "<U0074><U006F><U0072><U0073><U0074><U0061><U0069>";/
+          "<U0070><U0065><U0072><U006A><U0061><U006E><U0074><U0061><U0069>";/
+          "<U006C><U0061><U0075><U0061><U006E><U0074><U0061><U0069>"
+-abmon    "<U0074><U0061><U006D><U006D><U0069><U00A0>";/
+-         "<U0068><U0065><U006C><U006D><U0069><U00A0>";/
++abmon    "<U0074><U0061><U006D><U006D><U0069>";/
++         "<U0068><U0065><U006C><U006D><U0069>";/
+          "<U006D><U0061><U0061><U006C><U0069><U0073>";/
+-         "<U0068><U0075><U0068><U0074><U0069><U00A0>";/
+-         "<U0074><U006F><U0075><U006B><U006F><U00A0>";/
+-         "<U006B><U0065><U0073><U00E4><U00A0><U00A0>";/
+-         "<U0068><U0065><U0069><U006E><U00E4><U00A0>";/
+-         "<U0065><U006C><U006F><U00A0><U00A0><U00A0>";/
+-         "<U0073><U0079><U0079><U0073><U00A0><U00A0>";/
+-         "<U006C><U006F><U006B><U0061><U00A0><U00A0>";/
++         "<U0068><U0075><U0068><U0074><U0069>";/
++         "<U0074><U006F><U0075><U006B><U006F>";/
++         "<U006B><U0065><U0073><U00E4>";/
++         "<U0068><U0065><U0069><U006E><U00E4>";/
++         "<U0065><U006C><U006F>";/
++         "<U0073><U0079><U0079><U0073>";/
++         "<U006C><U006F><U006B><U0061>";/
+          "<U006D><U0061><U0072><U0072><U0061><U0073>";/
+-         "<U006A><U006F><U0075><U006C><U0075><U00A0>"
++         "<U006A><U006F><U0075><U006C><U0075>"
+ mon      "<U0074><U0061><U006D><U006D><U0069><U006B><U0075><U0075>";/
+          "<U0068><U0065><U006C><U006D><U0069><U006B><U0075><U0075>";/
+          "<U006D><U0061><U0061><U006C><U0069><U0073><U006B><U0075><U0075>";/
+@@ -207,13 +204,14 @@ t_fmt_ampm  ""
+ date_fmt       "<U0025><U0061><U0020><U0025><U002D><U0064><U002E><U0025>/
+ <U002D><U006D><U002E><U0025><U0059><U0020><U0025><U0048><U002E><U0025>/
+ <U004D><U002E><U0025><U0053><U0020><U0025><U007A>"
++week     7;19971130;4
+ first_weekday 2 % Monday
+ first_workday 2 % Monday
+ END LC_TIME
+ LC_MESSAGES
+-yesexpr  "<U005E><U005B><U004B><U006B><U004A><U006A><U0059><U0079><U005D><U002E><U002A>"
+-noexpr   "<U005E><U005B><U004E><U006E><U0045><U0065><U005D><U002E><U002A>"
++yesexpr  "<U005E><U005B><U004B><U006B><U0059><U0079><U005D><U002E><U002A>"
++noexpr   "<U005E><U005B><U0045><U0065><U004E><U006E><U005D><U002E><U002A>"
+ END LC_MESSAGES
+ LC_PAPER
+@@ -222,6 +220,7 @@ width    210
+ END LC_PAPER
+ LC_TELEPHONE
++tel_dom_fmt    "<U0028><U0025><U0041><U0029><U0020><U0025><U006C>"
+ tel_int_fmt    "<U002B><U0025><U0063><U0020><U0025><U0061><U0020><U0025>/
+ <U006C>"
+ int_prefix     "<U0033><U0035><U0038>"
+@@ -235,15 +234,25 @@ END LC_MEASUREMENT
+ LC_NAME
+ name_fmt    "<U0025><U0064><U0025><U0074><U0025><U0067><U0025><U0074>/
+ <U0025><U006D><U0025><U0074><U0025><U0066>"
++% Finnish equivalents for Mr/Mrs/Miss/Ms are herra/rouva/rouva/neiti
++% but they are practically never used, thus we don't define them here.
+ END LC_NAME
+ LC_ADDRESS
+-postal_fmt    "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
+-<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073>/
+-<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/
+-<U004E><U0025><U007A><U0020><U0025><U0054><U0025>/
++postal_fmt   "<U0025><U0066><U0025><U004E><U0025><U0064><U0025><U004E>/
++<U0025><U0062><U0025><U004E><U0025><U0061><U0025><U004E><U0025><U0073>/
++<U0020><U0025><U0068><U0025><U0074><U0025><U0065><U0025><U0074><U0025>/
++<U0072><U0025><U004E><U0025><U007A><U0020><U0025><U0054><U0025>/
+ <U004E><U0025><U0063><U0025><U004E>"
+ country_ab2 "<U0046><U0049>"
+ country_ab3 "<U0046><U0049><U004E>"
+ country_num 246
++country_name "<U0053><U0075><U006F><U006D><U0069>"
++country_post "<U0046><U0049>"
++country_car  "<U0046><U0049><U004E>"
++country_isbn 952
++lang_name    "<U0073><U0075><U006F><U006D><U0069>"
++lang_ab      "<U0066><U0069>"
++lang_term    "<U0066><U0069><U006E>"
++lang_lib     "<U0066><U0069><U006E>"
+ END LC_ADDRESS
diff --git a/src/patches/glibc/glibc-rh661982.patch b/src/patches/glibc/glibc-rh661982.patch
new file mode 100644 (file)
index 0000000..60b840b
--- /dev/null
@@ -0,0 +1,188 @@
+2010-12-10  Andreas Schwab  <schwab@redhat.com>
+
+       * wcsmbs/wchar.h (wcpcpy, wcpncpy): Only declare under
+       _GNU_SOURCE.
+
+2010-12-10  Andreas Schwab  <schwab@redhat.com>
+
+       * wcsmbs/wchar.h (wcpcpy, wcpncpy): Add __restrict.
+       * wcsmbs/bits/wchar2.h (__wmemmove_chk_warn, wmemmove, wmemset):
+       Remove __restrict.
+       (wcscpy, __wcpcpy_chk, __wcpcpy_alias, wcpcpy, wcsncpy, wcpncpy)
+       (wcscat, wcsncat, __wcrtomb_chk, wcrtomb): Add __restrict.
+
+2010-12-09  Jakub Jelinek  <jakub@redhat.com>
+
+       * string/bits/string3.h (memmove, bcopy): Remove __restrict.
+
+Index: glibc-2.12-2-gc4ccff1/string/bits/string3.h
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/string/bits/string3.h
++++ glibc-2.12-2-gc4ccff1/string/bits/string3.h
+@@ -53,8 +53,7 @@ __NTH (memcpy (void *__restrict __dest, 
+ }
+ __extern_always_inline void *
+-__NTH (memmove (void *__restrict __dest, __const void *__restrict __src,
+-              size_t __len))
++__NTH (memmove (void *__dest, __const void *__src, size_t __len))
+ {
+   return __builtin___memmove_chk (__dest, __src, __len, __bos0 (__dest));
+ }
+@@ -88,8 +87,7 @@ __NTH (memset (void *__dest, int __ch, s
+ #ifdef __USE_BSD
+ __extern_always_inline void
+-__NTH (bcopy (__const void *__restrict __src, void *__restrict __dest,
+-            size_t __len))
++__NTH (bcopy (__const void *__src, void *__dest, size_t __len))
+ {
+   (void) __builtin___memmove_chk (__dest, __src, __len, __bos0 (__dest));
+ }
+Index: glibc-2.12-2-gc4ccff1/wcsmbs/bits/wchar2.h
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/wcsmbs/bits/wchar2.h
++++ glibc-2.12-2-gc4ccff1/wcsmbs/bits/wchar2.h
+@@ -60,15 +60,13 @@ extern wchar_t *__REDIRECT_NTH (__wmemmo
+                                                  __const wchar_t *__s2,
+                                                  size_t __n), wmemmove);
+ extern wchar_t *__REDIRECT_NTH (__wmemmove_chk_warn,
+-                              (wchar_t *__restrict __s1,
+-                               __const wchar_t *__restrict __s2, size_t __n,
+-                               size_t __ns1), __wmemmove_chk)
++                              (wchar_t *__s1, __const wchar_t *__s2,
++                               size_t __n, size_t __ns1), __wmemmove_chk)
+      __warnattr ("wmemmove called with length bigger than size of destination "
+                "buffer");
+ __extern_always_inline wchar_t *
+-__NTH (wmemmove (wchar_t *__restrict __s1, __const wchar_t *__restrict __s2,
+-               size_t __n))
++__NTH (wmemmove (wchar_t *__s1, __const wchar_t *__s2, size_t __n))
+ {
+   if (__bos0 (__s1) != (size_t) -1)
+     {
+@@ -129,7 +127,7 @@ extern wchar_t *__REDIRECT_NTH (__wmemse
+                "buffer");
+ __extern_always_inline wchar_t *
+-__NTH (wmemset (wchar_t *__restrict __s, wchar_t __c, size_t __n))
++__NTH (wmemset (wchar_t *__s, wchar_t __c, size_t __n))
+ {
+   if (__bos0 (__s) != (size_t) -1)
+     {
+@@ -152,7 +150,7 @@ extern wchar_t *__REDIRECT_NTH (__wcscpy
+                                __const wchar_t *__restrict __src), wcscpy);
+ __extern_always_inline wchar_t *
+-__NTH (wcscpy (wchar_t *__dest, __const wchar_t *__src))
++__NTH (wcscpy (wchar_t *__restrict __dest, __const wchar_t *__restrict __src))
+ {
+   if (__bos (__dest) != (size_t) -1)
+     return __wcscpy_chk (__dest, __src, __bos (__dest) / sizeof (wchar_t));
+@@ -160,14 +158,15 @@ __NTH (wcscpy (wchar_t *__dest, __const 
+ }
+-extern wchar_t *__wcpcpy_chk (wchar_t *__dest, __const wchar_t *__src,
++extern wchar_t *__wcpcpy_chk (wchar_t *__restrict __dest,
++                            __const wchar_t *__restrict __src,
+                             size_t __destlen) __THROW;
+-extern wchar_t *__REDIRECT_NTH (__wcpcpy_alias, (wchar_t *__dest,
+-                                               __const wchar_t *__src),
+-                              wcpcpy);
++extern wchar_t *__REDIRECT_NTH (__wcpcpy_alias,
++                              (wchar_t *__restrict __dest,
++                               __const wchar_t *__restrict __src), wcpcpy);
+ __extern_always_inline wchar_t *
+-__NTH (wcpcpy (wchar_t *__dest, __const wchar_t *__src))
++__NTH (wcpcpy (wchar_t *__restrict __dest, __const wchar_t *__restrict __src))
+ {
+   if (__bos (__dest) != (size_t) -1)
+     return __wcpcpy_chk (__dest, __src, __bos (__dest) / sizeof (wchar_t));
+@@ -190,7 +189,8 @@ extern wchar_t *__REDIRECT_NTH (__wcsncp
+                "buffer");
+ __extern_always_inline wchar_t *
+-__NTH (wcsncpy (wchar_t *__dest, __const wchar_t *__src, size_t __n))
++__NTH (wcsncpy (wchar_t *__restrict __dest, __const wchar_t *__restrict __src,
++              size_t __n))
+ {
+   if (__bos (__dest) != (size_t) -1)
+     {
+@@ -220,7 +220,8 @@ extern wchar_t *__REDIRECT_NTH (__wcpncp
+                "buffer");
+ __extern_always_inline wchar_t *
+-__NTH (wcpncpy (wchar_t *__dest, __const wchar_t *__src, size_t __n))
++__NTH (wcpncpy (wchar_t *__restrict __dest, __const wchar_t *__restrict __src,
++              size_t __n))
+ {
+   if (__bos (__dest) != (size_t) -1)
+     {
+@@ -243,7 +244,7 @@ extern wchar_t *__REDIRECT_NTH (__wcscat
+                                __const wchar_t *__restrict __src), wcscat);
+ __extern_always_inline wchar_t *
+-__NTH (wcscat (wchar_t *__dest, __const wchar_t *__src))
++__NTH (wcscat (wchar_t *__restrict __dest, __const wchar_t *__restrict __src))
+ {
+   if (__bos (__dest) != (size_t) -1)
+     return __wcscat_chk (__dest, __src, __bos (__dest) / sizeof (wchar_t));
+@@ -260,7 +261,8 @@ extern wchar_t *__REDIRECT_NTH (__wcsnca
+                                size_t __n), wcsncat);
+ __extern_always_inline wchar_t *
+-__NTH (wcsncat (wchar_t *__dest, __const wchar_t *__src, size_t __n))
++__NTH (wcsncat (wchar_t *__restrict __dest, __const wchar_t *__restrict __src,
++              size_t __n))
+ {
+   if (__bos (__dest) != (size_t) -1)
+     return __wcsncat_chk (__dest, __src, __n,
+@@ -428,14 +430,16 @@ fgetws_unlocked (wchar_t *__restrict __s
+ #endif
+-extern size_t __wcrtomb_chk (char *__s, wchar_t __wchar, mbstate_t *__p,
+-                        size_t __buflen) __THROW __wur;
++extern size_t __wcrtomb_chk (char *__restrict __s, wchar_t __wchar,
++                           mbstate_t *__restrict __p,
++                           size_t __buflen) __THROW __wur;
+ extern size_t __REDIRECT_NTH (__wcrtomb_alias,
+                             (char *__restrict __s, wchar_t __wchar,
+                              mbstate_t *__restrict __ps), wcrtomb) __wur;
+ __extern_always_inline __wur size_t
+-__NTH (wcrtomb (char *__s, wchar_t __wchar, mbstate_t *__ps))
++__NTH (wcrtomb (char *__restrict __s, wchar_t __wchar,
++              mbstate_t *__restrict __ps))
+ {
+   /* We would have to include <limits.h> to get a definition of MB_LEN_MAX.
+      But this would only disturb the namespace.  So we define our own
+Index: glibc-2.12-2-gc4ccff1/wcsmbs/wchar.h
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/wcsmbs/wchar.h
++++ glibc-2.12-2-gc4ccff1/wcsmbs/wchar.h
+@@ -555,17 +555,17 @@ extern float wcstof_l (__const wchar_t *
+ extern long double wcstold_l (__const wchar_t *__restrict __nptr,
+                             wchar_t **__restrict __endptr,
+                             __locale_t __loc) __THROW;
+-#endif /* GNU */
+-#ifdef        __USE_XOPEN2K8
+ /* Copy SRC to DEST, returning the address of the terminating L'\0' in
+    DEST.  */
+-extern wchar_t *wcpcpy (wchar_t *__dest, __const wchar_t *__src) __THROW;
++extern wchar_t *wcpcpy (wchar_t *__restrict __dest,
++                      __const wchar_t *__restrict __src) __THROW;
+ /* Copy no more than N characters of SRC to DEST, returning the address of
+    the last character written into DEST.  */
+-extern wchar_t *wcpncpy (wchar_t *__dest, __const wchar_t *__src, size_t __n)
++extern wchar_t *wcpncpy (wchar_t *__restrict __dest,
++                       __const wchar_t *__restrict __src, size_t __n)
+      __THROW;
+ #endif        /* use GNU */
diff --git a/src/patches/glibc/glibc-rh667974.patch b/src/patches/glibc/glibc-rh667974.patch
new file mode 100644 (file)
index 0000000..48aacac
--- /dev/null
@@ -0,0 +1,160 @@
+2011-03-14  Andreas Schwab  <schwab@redhat.com>
+
+       * elf/dl-load.c (is_dst): Remove parameter secure, all callers
+       changed.  Don't check for isolated use.
+       (_dl_dst_substitute): Ignore rpath elements containing
+       non-isolated use of $ORIGIN when privileged.
+
+       * elf/dl-load.c (_dl_dst_substitute): When skipping the first
+       rpath element also skip the following colon.
+       (expand_dynamic_string_token): Add is_path parameter and pass
+       down to DL_DST_REQUIRED and _dl_dst_substitute.
+       (decompose_rpath): Call expand_dynamic_string_token with
+       non-zero is_path.  Ignore empty rpaths.
+       (_dl_map_object_from_fd): Call expand_dynamic_string_token
+       with zero is_path.
+
+Index: glibc-2.12-2-gc4ccff1/elf/dl-load.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/elf/dl-load.c
++++ glibc-2.12-2-gc4ccff1/elf/dl-load.c
+@@ -169,8 +169,7 @@ local_strdup (const char *s)
+ static size_t
+-is_dst (const char *start, const char *name, const char *str,
+-      int is_path, int secure)
++is_dst (const char *start, const char *name, const char *str, int is_path)
+ {
+   size_t len;
+   bool is_curly = false;
+@@ -199,11 +198,6 @@ is_dst (const char *start, const char *n
+          && (!is_path || name[len] != ':'))
+     return 0;
+-  if (__builtin_expect (secure, 0)
+-      && ((name[len] != '\0' && (!is_path || name[len] != ':'))
+-        || (name != start + 1 && (!is_path || name[-2] != ':'))))
+-    return 0;
+-
+   return len;
+ }
+@@ -218,13 +212,10 @@ _dl_dst_count (const char *name, int is_
+     {
+       size_t len;
+-      /* $ORIGIN is not expanded for SUID/GUID programs (except if it
+-       is $ORIGIN alone) and it must always appear first in path.  */
+       ++name;
+-      if ((len = is_dst (start, name, "ORIGIN", is_path,
+-                       INTUSE(__libc_enable_secure))) != 0
+-        || (len = is_dst (start, name, "PLATFORM", is_path, 0)) != 0
+-        || (len = is_dst (start, name, "LIB", is_path, 0)) != 0)
++      if ((len = is_dst (start, name, "ORIGIN", is_path)) != 0
++        || (len = is_dst (start, name, "PLATFORM", is_path)) != 0
++        || (len = is_dst (start, name, "LIB", is_path)) != 0)
+       ++cnt;
+       name = strchr (name + len, '$');
+@@ -256,9 +247,16 @@ _dl_dst_substitute (struct link_map *l, 
+         size_t len;
+         ++name;
+-        if ((len = is_dst (start, name, "ORIGIN", is_path,
+-                           INTUSE(__libc_enable_secure))) != 0)
++        if ((len = is_dst (start, name, "ORIGIN", is_path)) != 0)
+           {
++            /* $ORIGIN is not expanded for SUID/GUID programs
++               (except if it is $ORIGIN alone) and it must always
++               appear first in path.  */
++            if (__builtin_expect (INTUSE(__libc_enable_secure), 0)
++                && ((name[len] != '\0' && (!is_path || name[len] != ':'))
++                    || (name != start + 1 && (!is_path || name[-2] != ':'))))
++              repl = (const char *) -1;
++            else
+ #ifndef SHARED
+             if (l == NULL)
+               repl = _dl_get_origin ();
+@@ -266,9 +264,9 @@ _dl_dst_substitute (struct link_map *l, 
+ #endif
+               repl = l->l_origin;
+           }
+-        else if ((len = is_dst (start, name, "PLATFORM", is_path, 0)) != 0)
++        else if ((len = is_dst (start, name, "PLATFORM", is_path)) != 0)
+           repl = GLRO(dl_platform);
+-        else if ((len = is_dst (start, name, "LIB", is_path, 0)) != 0)
++        else if ((len = is_dst (start, name, "LIB", is_path)) != 0)
+           repl = DL_DST_LIB;
+         if (repl != NULL && repl != (const char *) -1)
+@@ -284,6 +282,10 @@ _dl_dst_substitute (struct link_map *l, 
+             name += len;
+             while (*name != '\0' && (!is_path || *name != ':'))
+               ++name;
++            /* Also skip following colon if this is the first rpath
++               element, but keep an empty element at the end.  */
++            if (wp == result && is_path && *name == ':' && name[1] != '\0')
++              ++name;
+           }
+         else
+           /* No DST we recognize.  */
+@@ -310,7 +312,7 @@ _dl_dst_substitute (struct link_map *l, 
+    belonging to the map is loaded.  In this case the path element
+    containing $ORIGIN is left out.  */
+ static char *
+-expand_dynamic_string_token (struct link_map *l, const char *s)
++expand_dynamic_string_token (struct link_map *l, const char *s, int is_path)
+ {
+   /* We make two runs over the string.  First we determine how large the
+      resulting string is and then we copy it over.  Since this is no
+@@ -321,7 +323,7 @@ expand_dynamic_string_token (struct link
+   char *result;
+   /* Determine the number of DST elements.  */
+-  cnt = DL_DST_COUNT (s, 1);
++  cnt = DL_DST_COUNT (s, is_path);
+   /* If we do not have to replace anything simply copy the string.  */
+   if (__builtin_expect (cnt, 0) == 0)
+@@ -335,7 +337,7 @@ expand_dynamic_string_token (struct link
+   if (result == NULL)
+     return NULL;
+-  return _dl_dst_substitute (l, s, result, 1);
++  return _dl_dst_substitute (l, s, result, is_path);
+ }
+@@ -551,13 +553,21 @@ decompose_rpath (struct r_search_path_st
+   /* Make a writable copy.  At the same time expand possible dynamic
+      string tokens.  */
+-  copy = expand_dynamic_string_token (l, rpath);
++  copy = expand_dynamic_string_token (l, rpath, 1);
+   if (copy == NULL)
+     {
+       errstring = N_("cannot create RUNPATH/RPATH copy");
+       goto signal_error;
+     }
++  /* Ignore empty rpaths.  */
++  if (*copy == 0)
++    {
++      free (copy);
++      sps->dirs = (char *) -1;
++      return false;
++    }
++
+   /* Count the number of necessary elements in the result array.  */
+   nelems = 0;
+   for (cp = copy; *cp != '\0'; ++cp)
+@@ -2176,7 +2186,7 @@ _dl_map_object (struct link_map *loader,
+     {
+       /* The path may contain dynamic string tokens.  */
+       realname = (loader
+-                ? expand_dynamic_string_token (loader, name)
++                ? expand_dynamic_string_token (loader, name, 0)
+                 : local_strdup (name));
+       if (realname == NULL)
+       fd = -1;
diff --git a/src/patches/glibc/glibc-rh676076.patch b/src/patches/glibc/glibc-rh676076.patch
new file mode 100644 (file)
index 0000000..c5aa2d4
--- /dev/null
@@ -0,0 +1,714 @@
+2011-03-02  Harsha Jagasia  <harsha.jagasia@amd.com>
+           Ulrich Drepper  <drepper@gmail.com>
+
+       * sysdeps/x86_64/memset.S: After aligning destination, code
+       branches to different locations depending on the value of
+       misalignment, when multiarch is enabled. Fix this.
+
+2011-03-02  Harsha Jagasia  <harsha.jagasia@amd.com>
+
+       * sysdeps/x86_64/cacheinfo.c (init_cacheinfo):
+       Set _x86_64_preferred_memory_instruction for AMD processsors.
+       * sysdeps/x86_64/multiarch/init-arch.c (__init_cpu_features):
+       Set bit_Prefer_SSE_for_memop for AMD processors.
+
+2010-11-07  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * sysdeps/x86_64/memset.S: Check USE_MULTIARCH and USE_SSE2 for
+       IFUNC support.
+       * sysdeps/x86_64/multiarch/Makefile (sysdep_routines): Add
+       memset-x86-64.
+       * sysdeps/x86_64/multiarch/bzero.S: New file.
+       * sysdeps/x86_64/multiarch/cacheinfo.c: New file.
+       * sysdeps/x86_64/multiarch/memset-x86-64.S: New file.
+       * sysdeps/x86_64/multiarch/memset.S: New file.
+       * sysdeps/x86_64/multiarch/memset_chk.S: New file.
+       * sysdeps/x86_64/multiarch/init-arch.c (__init_cpu_features):
+       Set bit_Prefer_SSE_for_memop for Intel processors.
+       * sysdeps/x86_64/multiarch/init-arch.h (bit_Prefer_SSE_for_memop):
+       Define.
+       (index_Prefer_SSE_for_memop): Define.
+       (HAS_PREFER_SSE_FOR_MEMOP): Define.
+
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/cacheinfo.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/cacheinfo.c
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/cacheinfo.c
+@@ -613,6 +613,25 @@ init_cacheinfo (void)
+       long int core = handle_amd (_SC_LEVEL2_CACHE_SIZE);
+       shared = handle_amd (_SC_LEVEL3_CACHE_SIZE);
++#ifndef DISABLE_PREFERRED_MEMORY_INSTRUCTION
++# ifdef USE_MULTIARCH
++      eax = __cpu_features.cpuid[COMMON_CPUID_INDEX_1].eax;
++      ebx = __cpu_features.cpuid[COMMON_CPUID_INDEX_1].ebx;
++      ecx = __cpu_features.cpuid[COMMON_CPUID_INDEX_1].ecx;
++      edx = __cpu_features.cpuid[COMMON_CPUID_INDEX_1].edx;
++# else
++      __cpuid (1, eax, ebx, ecx, edx);
++# endif
++
++      /* AMD prefers SSSE3 instructions for memory/string routines
++       if they are avaiable, otherwise it prefers integer
++       instructions.  */
++      if ((ecx & 0x200))
++      __x86_64_preferred_memory_instruction = 3;
++      else
++      __x86_64_preferred_memory_instruction = 0;
++#endif
++
+       /* Get maximum extended function. */
+       __cpuid (0x80000000, max_cpuid_ex, ebx, ecx, edx);
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/memset.S
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/memset.S
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/memset.S
+@@ -24,7 +24,7 @@
+ #define __STOS_UPPER_BOUNDARY $65536
+         .text
+-#ifndef NOT_IN_libc
++#if !defined NOT_IN_libc && !defined USE_MULTIARCH
+ ENTRY(__bzero)
+       mov     %rsi,%rdx       /* Adjust parameter.  */
+       xorl    %esi,%esi       /* Fill with 0s.  */
+@@ -34,10 +34,10 @@ weak_alias (__bzero, bzero)
+ #endif
+ #if defined PIC && !defined NOT_IN_libc
+-ENTRY (__memset_chk)
++ENTRY_CHK (__memset_chk)
+       cmpq    %rdx, %rcx
+       jb      HIDDEN_JUMPTARGET (__chk_fail)
+-END (__memset_chk)
++END_CHK (__memset_chk)
+ #endif
+ ENTRY (memset)
+ L(memset_entry):
+@@ -591,157 +591,15 @@ L(A6Q1):    mov    %dx,-0xe(%rdi)
+ L(A7Q0):    mov    %dl,-0x7(%rdi)
+ L(A6Q0):    mov    %dx,-0x6(%rdi)
+       mov    %edx,-0x4(%rdi)
+-      jmp    L(aligned_now)
+-
+-      .balign     16
+-L(aligned_now):
+-
+-       cmpl   $0x1,__x86_64_preferred_memory_instruction(%rip)
+-       jg     L(SSE_pre)
+-
+-L(8byte_move_try):
+-      cmpq    __STOS_LOWER_BOUNDARY,%r8
+-      jae     L(8byte_stos_try)
+-
+-      .balign     16
+-L(8byte_move):
+-      movq    %r8,%rcx
+-      shrq    $7,%rcx
+-      jz      L(8byte_move_skip)
+-
+-      .p2align 4
+-
+-L(8byte_move_loop):
+-      decq    %rcx
+-
+-      movq    %rdx,    (%rdi)
+-      movq    %rdx,  8 (%rdi)
+-      movq    %rdx, 16 (%rdi)
+-      movq    %rdx, 24 (%rdi)
+-      movq    %rdx, 32 (%rdi)
+-      movq    %rdx, 40 (%rdi)
+-      movq    %rdx, 48 (%rdi)
+-      movq    %rdx, 56 (%rdi)
+-      movq    %rdx, 64 (%rdi)
+-      movq    %rdx, 72 (%rdi)
+-      movq    %rdx, 80 (%rdi)
+-      movq    %rdx, 88 (%rdi)
+-      movq    %rdx, 96 (%rdi)
+-      movq    %rdx, 104 (%rdi)
+-      movq    %rdx, 112 (%rdi)
+-      movq    %rdx, 120 (%rdi)
+-
+-      leaq    128 (%rdi),%rdi
+-
+-      jnz     L(8byte_move_loop)
+-
+-L(8byte_move_skip):
+-      andl    $127,%r8d
+-      lea     (%rdi,%r8,1),%rdi
+-
+-#ifndef PIC
+-      lea     L(setPxQx)(%rip),%r11
+-      jmpq    *(%r11,%r8,8) # old scheme remained for nonPIC
+-#else
+-      lea     L(Got0)(%rip),%r11
+-      lea     L(setPxQx)(%rip),%rcx
+-      movswq  (%rcx,%r8,2),%rcx
+-      lea     (%rcx,%r11,1),%r11
+-      jmpq    *%r11
+-#endif
+-
+-      .balign     16
+-L(8byte_stos_try):
+-      mov    __x86_64_shared_cache_size(%rip),%r9d // ck largest cache size
+-      cmpq    %r8,%r9         // calculate the lesser of remaining
+-      cmovaq  %r8,%r9         // bytes and largest cache size
+-      jbe     L(8byte_stos)
+-
+-L(8byte_move_reuse_try):
+-      cmp     __STOS_UPPER_BOUNDARY,%r8
+-      jae     L(8byte_move)
+-
+-      .balign     16
+-L(8byte_stos):
+-      movq    %r9,%rcx
+-      andq    $-8,%r9
+-
+-      shrq    $3,%rcx
+-      jz      L(8byte_stos_skip)
+-
+-      xchgq   %rax,%rdx
+-
+-      rep
+-      stosq
+-
+-      xchgq   %rax,%rdx
+-
+-L(8byte_stos_skip):
+-      subq    %r9,%r8
+-      ja      L(8byte_nt_move)
+-
+-      andl    $7,%r8d
+-      lea     (%rdi,%r8,1),%rdi
+-#ifndef PIC
+-      lea     L(setPxQx)(%rip),%r11
+-      jmpq    *(%r11,%r8,8) # old scheme remained for nonPIC
+-#else
+-      lea     L(Got0)(%rip),%r11
+-      lea     L(setPxQx)(%rip),%rcx
+-      movswq  (%rcx,%r8,2),%rcx
+-      lea     (%rcx,%r11,1),%r11
+-      jmpq    *%r11
+-#endif
+-      .balign     16
+-L(8byte_nt_move):
+-      movq    %r8,%rcx
+-      shrq    $7,%rcx
+-      jz      L(8byte_nt_move_skip)
+-
+-      .balign     16
+-L(8byte_nt_move_loop):
+-      decq    %rcx
+-
+-      movntiq %rdx,     (%rdi)
+-      movntiq %rdx,   8 (%rdi)
+-      movntiq %rdx,  16 (%rdi)
+-      movntiq %rdx,  24 (%rdi)
+-      movntiq %rdx,  32 (%rdi)
+-      movntiq %rdx,  40 (%rdi)
+-      movntiq %rdx,  48 (%rdi)
+-      movntiq %rdx,  56 (%rdi)
+-      movntiq %rdx,  64 (%rdi)
+-      movntiq %rdx,  72 (%rdi)
+-      movntiq %rdx,  80 (%rdi)
+-      movntiq %rdx,  88 (%rdi)
+-      movntiq %rdx,  96 (%rdi)
+-      movntiq %rdx, 104 (%rdi)
+-      movntiq %rdx, 112 (%rdi)
+-      movntiq %rdx, 120 (%rdi)
+-
+-      leaq    128 (%rdi),%rdi
+-
+-      jnz     L(8byte_nt_move_loop)
+-
+-      sfence
+-
+-L(8byte_nt_move_skip):
+-      andl    $127,%r8d
++#ifndef USE_MULTIARCH
++      jmp    L(aligned_now)
+-      lea     (%rdi,%r8,1),%rdi
+-#ifndef PIC
+-      lea     L(setPxQx)(%rip),%r11
+-      jmpq    *(%r11,%r8,8) # old scheme remained for nonPIC
++L(SSE_pre):
+ #else
+-      lea     L(Got0)(%rip),%r11
+-      lea     L(setPxQx)(%rip),%rcx
+-      movswq  (%rcx,%r8,2),%rcx
+-      lea     (%rcx,%r11,1),%r11
+-      jmpq    *%r11
++L(aligned_now):
+ #endif
+-
+-L(SSE_pre):
++#if !defined USE_MULTIARCH || defined USE_SSE2
+        # fill RegXMM0 with the pattern
+        movd   %rdx,%xmm0
+        punpcklqdq %xmm0,%xmm0
+@@ -1342,11 +1200,162 @@ L(SSExDx):
+       .short     L(SSE15QB)-L(SSE0Q0)
+ #endif
+       .popsection
++#endif /* !defined USE_MULTIARCH || defined USE_SSE2  */
++
++      .balign     16
++#ifndef USE_MULTIARCH
++L(aligned_now):
++
++       cmpl   $0x1,__x86_64_preferred_memory_instruction(%rip)
++       jg     L(SSE_pre)
++#endif /* USE_MULTIARCH */
++
++L(8byte_move_try):
++      cmpq    __STOS_LOWER_BOUNDARY,%r8
++      jae     L(8byte_stos_try)
++
++      .balign     16
++L(8byte_move):
++      movq    %r8,%rcx
++      shrq    $7,%rcx
++      jz      L(8byte_move_skip)
++
++      .p2align 4
++
++L(8byte_move_loop):
++      decq    %rcx
++
++      movq    %rdx,    (%rdi)
++      movq    %rdx,  8 (%rdi)
++      movq    %rdx, 16 (%rdi)
++      movq    %rdx, 24 (%rdi)
++      movq    %rdx, 32 (%rdi)
++      movq    %rdx, 40 (%rdi)
++      movq    %rdx, 48 (%rdi)
++      movq    %rdx, 56 (%rdi)
++      movq    %rdx, 64 (%rdi)
++      movq    %rdx, 72 (%rdi)
++      movq    %rdx, 80 (%rdi)
++      movq    %rdx, 88 (%rdi)
++      movq    %rdx, 96 (%rdi)
++      movq    %rdx, 104 (%rdi)
++      movq    %rdx, 112 (%rdi)
++      movq    %rdx, 120 (%rdi)
++
++      leaq    128 (%rdi),%rdi
++
++      jnz     L(8byte_move_loop)
++
++L(8byte_move_skip):
++      andl    $127,%r8d
++      lea     (%rdi,%r8,1),%rdi
++
++#ifndef PIC
++      lea     L(setPxQx)(%rip),%r11
++      jmpq    *(%r11,%r8,8) # old scheme remained for nonPIC
++#else
++      lea     L(Got0)(%rip),%r11
++      lea     L(setPxQx)(%rip),%rcx
++      movswq  (%rcx,%r8,2),%rcx
++      lea     (%rcx,%r11,1),%r11
++      jmpq    *%r11
++#endif
++
++      .balign     16
++L(8byte_stos_try):
++      mov    __x86_64_shared_cache_size(%rip),%r9d // ck largest cache size
++      cmpq    %r8,%r9         // calculate the lesser of remaining
++      cmovaq  %r8,%r9         // bytes and largest cache size
++      jbe     L(8byte_stos)
++
++L(8byte_move_reuse_try):
++      cmp     __STOS_UPPER_BOUNDARY,%r8
++      jae     L(8byte_move)
++
++      .balign     16
++L(8byte_stos):
++      movq    %r9,%rcx
++      andq    $-8,%r9
++
++      shrq    $3,%rcx
++      jz      L(8byte_stos_skip)
++
++      xchgq   %rax,%rdx
++
++      rep
++      stosq
++
++      xchgq   %rax,%rdx
++
++L(8byte_stos_skip):
++      subq    %r9,%r8
++      ja      L(8byte_nt_move)
++
++      andl    $7,%r8d
++      lea     (%rdi,%r8,1),%rdi
++#ifndef PIC
++      lea     L(setPxQx)(%rip),%r11
++      jmpq    *(%r11,%r8,8) # old scheme remained for nonPIC
++#else
++      lea     L(Got0)(%rip),%r11
++      lea     L(setPxQx)(%rip),%rcx
++      movswq  (%rcx,%r8,2),%rcx
++      lea     (%rcx,%r11,1),%r11
++      jmpq    *%r11
++#endif
++
++      .balign     16
++L(8byte_nt_move):
++      movq    %r8,%rcx
++      shrq    $7,%rcx
++      jz      L(8byte_nt_move_skip)
++
++      .balign     16
++L(8byte_nt_move_loop):
++      decq    %rcx
++
++      movntiq %rdx,     (%rdi)
++      movntiq %rdx,   8 (%rdi)
++      movntiq %rdx,  16 (%rdi)
++      movntiq %rdx,  24 (%rdi)
++      movntiq %rdx,  32 (%rdi)
++      movntiq %rdx,  40 (%rdi)
++      movntiq %rdx,  48 (%rdi)
++      movntiq %rdx,  56 (%rdi)
++      movntiq %rdx,  64 (%rdi)
++      movntiq %rdx,  72 (%rdi)
++      movntiq %rdx,  80 (%rdi)
++      movntiq %rdx,  88 (%rdi)
++      movntiq %rdx,  96 (%rdi)
++      movntiq %rdx, 104 (%rdi)
++      movntiq %rdx, 112 (%rdi)
++      movntiq %rdx, 120 (%rdi)
++
++      leaq    128 (%rdi),%rdi
++
++      jnz     L(8byte_nt_move_loop)
++
++      sfence
++
++L(8byte_nt_move_skip):
++      andl    $127,%r8d
++
++      lea     (%rdi,%r8,1),%rdi
++#ifndef PIC
++      lea     L(setPxQx)(%rip),%r11
++      jmpq    *(%r11,%r8,8) # old scheme remained for nonPIC
++#else
++      lea     L(Got0)(%rip),%r11
++      lea     L(setPxQx)(%rip),%rcx
++      movswq  (%rcx,%r8,2),%rcx
++      lea     (%rcx,%r11,1),%r11
++      jmpq    *%r11
++#endif
+ END (memset)
+ libc_hidden_builtin_def (memset)
+-#if defined PIC && !defined NOT_IN_libc
++#if defined PIC && !defined NOT_IN_libc && !defined USE_MULTIARCH
+ strong_alias (__memset_chk, __memset_zero_constant_len_parameter)
+       .section .gnu.warning.__memset_zero_constant_len_parameter
+       .string "memset used with constant zero length parameter; this could be due to transposed parameters"
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/Makefile
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/multiarch/Makefile
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/Makefile
+@@ -7,7 +7,8 @@ ifeq ($(subdir),string)
+ sysdep_routines += stpncpy-c strncpy-c strcmp-ssse3 strncmp-ssse3 \
+                  strend-sse4 memcmp-sse4 \
+                  strcasestr-nonascii strcasecmp_l-ssse3 \
+-                 strncase_l-ssse3
++                 strncase_l-ssse3 \
++                 memset-x86-64
+ ifeq (yes,$(config-cflags-sse4))
+ sysdep_routines += strcspn-c strpbrk-c strspn-c strstr-c strcasestr-c
+ CFLAGS-strcspn-c.c += -msse4
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/bzero.S
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/bzero.S
+@@ -0,0 +1,56 @@
++/* Multiple versions of bzero
++   Copyright (C) 2010 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#include <sysdep.h>
++#include <init-arch.h>
++
++      .text
++ENTRY(__bzero)
++      .type   __bzero, @gnu_indirect_function
++      cmpl    $0, __cpu_features+KIND_OFFSET(%rip)
++      jne     1f
++      call    __init_cpu_features
++1:    leaq    __bzero_x86_64(%rip), %rax
++      testl   $bit_Prefer_SSE_for_memop, __cpu_features+FEATURE_OFFSET+index_Prefer_SSE_for_memop(%rip)
++      jz      2f
++      leaq    __bzero_sse2(%rip), %rax
++2:    ret
++END(__bzero)
++
++      .type   __bzero_sse2, @function
++__bzero_sse2:
++      cfi_startproc
++      CALL_MCOUNT
++      mov     %rsi,%rdx       /* Adjust parameter.  */
++      xorl    %esi,%esi       /* Fill with 0s.  */
++      jmp     __memset_sse2
++      cfi_endproc
++      .size __bzero_sse2, .-__bzero_sse2
++
++      .type   __bzero_x86_64, @function
++__bzero_x86_64:
++      cfi_startproc
++      CALL_MCOUNT
++      mov     %rsi,%rdx       /* Adjust parameter.  */
++      xorl    %esi,%esi       /* Fill with 0s.  */
++      jmp     __memset_x86_64
++      cfi_endproc
++      .size __bzero_x86_64, .-__bzero_x86_64
++
++weak_alias (__bzero, bzero)
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/cacheinfo.c
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/cacheinfo.c
+@@ -0,0 +1,2 @@
++#define DISABLE_PREFERRED_MEMORY_INSTRUCTION
++#include "../cacheinfo.c"
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/init-arch.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/multiarch/init-arch.c
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/init-arch.c
+@@ -59,6 +59,11 @@ __init_cpu_features (void)
+       get_common_indeces (&family, &model);
++      /* Intel processors prefer SSE instruction for memory/string
++       routines if they are avaiable.  */
++      __cpu_features.feature[index_Prefer_SSE_for_memop]
++      |= bit_Prefer_SSE_for_memop;
++
+       unsigned int eax = __cpu_features.cpuid[COMMON_CPUID_INDEX_1].eax;
+       unsigned int extended_family = (eax >> 20) & 0xff;
+       unsigned int extended_model = (eax >> 12) & 0xf0;
+@@ -92,6 +97,14 @@ __init_cpu_features (void)
+       kind = arch_kind_amd;
+       get_common_indeces (&family, &model);
++
++      unsigned int ecx = __cpu_features.cpuid[COMMON_CPUID_INDEX_1].ecx;
++
++      /* AMD processors prefer SSE instructions for memory/string routines
++       if they are available, otherwise they prefer integer instructions.  */
++      if ((ecx & 0x200))
++      __cpu_features.feature[index_Prefer_SSE_for_memop]
++        |= bit_Prefer_SSE_for_memop;
+     }
+   else
+     kind = arch_kind_other;
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/init-arch.h
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/multiarch/init-arch.h
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/init-arch.h
+@@ -16,7 +16,8 @@
+    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+    02111-1307 USA.  */
+-#define bit_Fast_Rep_String   (1 << 0)
++#define bit_Fast_Rep_String           (1 << 0)
++#define bit_Prefer_SSE_for_memop      (1 << 3)
+ #ifdef        __ASSEMBLER__
+@@ -33,6 +34,7 @@
+ # define index_SSE4_2 COMMON_CPUID_INDEX_1*CPUID_SIZE+CPUID_ECX_OFFSET
+ #define index_Fast_Rep_String FEATURE_INDEX_1*FEATURE_SIZE
++# define index_Prefer_SSE_for_memop   FEATURE_INDEX_1*FEATURE_SIZE
+ #else /* __ASSEMBLER__ */
+@@ -103,5 +105,12 @@ extern const struct cpu_features *__get_
+ # define HAS_FMA      HAS_CPU_FEATURE (COMMON_CPUID_INDEX_1, ecx, 12)
+ # define index_Fast_Rep_String        FEATURE_INDEX_1
++# define index_Prefer_SSE_for_memop   FEATURE_INDEX_1
++
++#define HAS_ARCH_FEATURE(idx, bit) \
++  ((__get_cpu_features ()->feature[idx] & (bit)) != 0)
++
++#define HAS_PREFER_SSE_FOR_MEMOP \
++  HAS_ARCH_FEATURE (index_Prefer_SSE_for_memop, bit_Prefer_SSE_for_memop)
+ #endif        /* __ASSEMBLER__ */
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/memset-x86-64.S
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/memset-x86-64.S
+@@ -0,0 +1,18 @@
++#include <sysdep.h>
++
++#ifndef NOT_IN_libc
++# undef ENTRY_CHK
++# define ENTRY_CHK(name) \
++      .type __memset_chk_x86_64, @function; \
++      .globl __memset_chk_x86_64; \
++      .p2align 4; \
++      __memset_chk_x86_64: cfi_startproc; \
++      CALL_MCOUNT
++# undef END_CHK
++# define END_CHK(name) \
++      cfi_endproc; .size __memset_chk_x86_64, .-__memset_chk_x86_64
++
++# define libc_hidden_builtin_def(name)
++# define memset __memset_x86_64
++# include "../memset.S"
++#endif
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/memset.S
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/memset.S
+@@ -0,0 +1,74 @@
++/* Multiple versions of memset
++   Copyright (C) 2010 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#include <sysdep.h>
++#include <init-arch.h>
++
++/* Define multiple versions only for the definition in lib.  */
++#ifndef NOT_IN_libc
++ENTRY(memset)
++      .type   memset, @gnu_indirect_function
++      cmpl    $0, __cpu_features+KIND_OFFSET(%rip)
++      jne     1f
++      call    __init_cpu_features
++1:    leaq    __memset_x86_64(%rip), %rax
++      testl   $bit_Prefer_SSE_for_memop, __cpu_features+FEATURE_OFFSET+index_Prefer_SSE_for_memop(%rip)
++      jz      2f
++      leaq    __memset_sse2(%rip), %rax
++2:    ret
++END(memset)
++
++# define USE_SSE2 1
++
++# undef ENTRY
++# define ENTRY(name) \
++      .type __memset_sse2, @function; \
++      .globl __memset_sse2; \
++      .p2align 4; \
++      __memset_sse2: cfi_startproc; \
++      CALL_MCOUNT
++# undef END
++# define END(name) \
++      cfi_endproc; .size __memset_sse2, .-__memset_sse2
++
++# undef ENTRY_CHK
++# define ENTRY_CHK(name) \
++      .type __memset_chk_sse2, @function; \
++      .globl __memset_chk_sse2; \
++      .p2align 4; \
++      __memset_chk_sse2: cfi_startproc; \
++      CALL_MCOUNT
++# undef END_CHK
++# define END_CHK(name) \
++      cfi_endproc; .size __memset_chk_sse2, .-__memset_chk_sse2
++
++# ifdef SHARED
++#  undef libc_hidden_builtin_def
++/* It doesn't make sense to send libc-internal memset calls through a PLT.
++   The speedup we get from using GPR instruction is likely eaten away
++   by the indirect call in the PLT.  */
++#  define libc_hidden_builtin_def(name) \
++      .globl __GI_memset; __GI_memset = __memset_sse2
++# endif
++
++# undef strong_alias
++# define strong_alias(original, alias)
++#endif
++
++#include "../memset.S"
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/memset_chk.S
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/memset_chk.S
+@@ -0,0 +1,44 @@
++/* Multiple versions of __memset_chk
++   Copyright (C) 2010 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#include <sysdep.h>
++#include <init-arch.h>
++
++/* Define multiple versions only for the definition in lib.  */
++#ifndef NOT_IN_libc
++# ifdef SHARED
++ENTRY(__memset_chk)
++      .type   __memset_chk, @gnu_indirect_function
++      cmpl    $0, __cpu_features+KIND_OFFSET(%rip)
++      jne     1f
++      call    __init_cpu_features
++1:    leaq    __memset_chk_x86_64(%rip), %rax
++      testl   $bit_Prefer_SSE_for_memop, __cpu_features+FEATURE_OFFSET+index_Prefer_SSE_for_memop(%rip)
++      jz      2f
++      leaq    __memset_chk_sse2(%rip), %rax
++2:    ret
++END(__memset_chk)
++
++strong_alias (__memset_chk, __memset_zero_constant_len_parameter)
++      .section .gnu.warning.__memset_zero_constant_len_parameter
++      .string "memset used with constant zero length parameter; this could be due to transposed parameters"
++# else
++#  include "../memset_chk.S"
++# endif
++#endif
diff --git a/src/patches/glibc/glibc-rh676591.patch b/src/patches/glibc/glibc-rh676591.patch
new file mode 100644 (file)
index 0000000..fd6df1e
--- /dev/null
@@ -0,0 +1,352 @@
+2011-05-15  Ulrich Drepper  <drepper@gmail.com>
+
+       [BZ #11901]
+       * include/stdlib.h: Move include protection to the right place.
+       Define abort_msg_s.  Declare __abort_msg with it.
+       * stdlib/abort.c (__abort_msg): Adjust type.
+       * assert/assert.c (__assert_fail_base): New function.  Majority
+       of code from __assert_fail.  Allocate memory for __abort_msg with
+       mmap.
+       (__assert_fail): Now call __assert_fail_base.
+       * assert/assert-perr.c: Remove bulk of implementation.  Use
+       __assert_fail_base.
+       * include/assert.hL Declare __assert_fail_base.
+       * sysdeps/posix/libc_fatal.c: Allocate memory for __abort_msg with
+       mmap.
+       * sysdeps/unix/sysv/linux/libc_fatal.c: Likewise.
+
+Index: glibc-2.12-2-gc4ccff1/assert/assert-perr.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/assert/assert-perr.c
++++ glibc-2.12-2-gc4ccff1/assert/assert-perr.c
+@@ -17,66 +17,23 @@
+    02111-1307 USA.  */
+ #include <assert.h>
+-#include <atomic.h>
+ #include <libintl.h>
+-#include <stdio.h>
+-#include <stdlib.h>
+ #include <string.h>
+-#include <sysdep.h>
+-#include <unistd.h>
+-extern const char *__progname;
+-
+-#ifdef USE_IN_LIBIO
+-# include <wchar.h>
+-# include <libio/iolibio.h>
+-# define fflush(s) INTUSE(_IO_fflush) (s)
+-#endif
+-
+ /* This function, when passed an error number, a filename, and a line
+    number, prints a message on the standard error stream of the form:
+-      a.c:10: foobar: Unexpected error: Computer bought the farm
++      a.c:10: foobar: Unexpected error: Computer bought the farm
+    It then aborts program execution via a call to `abort'.  */
+-
+-#ifdef FATAL_PREPARE_INCLUDE
+-# include FATAL_PREPARE_INCLUDE
+-#endif
+-
+ void
+ __assert_perror_fail (int errnum,
+                     const char *file, unsigned int line,
+                     const char *function)
+ {
+   char errbuf[1024];
+-  char *buf;
+-
+-#ifdef FATAL_PREPARE
+-  FATAL_PREPARE;
+-#endif
+-
+-  if (__asprintf (&buf, _("%s%s%s:%u: %s%sUnexpected error: %s.\n"),
+-                __progname, __progname[0] ? ": " : "",
+-                file, line,
+-                function ? function : "", function ? ": " : "",
+-                __strerror_r (errnum, errbuf, sizeof errbuf)) >= 0)
+-    {
+-      /* Print the message.  */
+-      (void) __fxprintf (NULL, "%s", buf);
+-      (void) fflush (stderr);
+-
+-      /* We have to free the old buffer since the application might
+-       catch the SIGABRT signal.  */
+-      char *old = atomic_exchange_acq (&__abort_msg, buf);
+-      free (old);
+-    }
+-  else
+-    {
+-      /* At least print a minimal message.  */
+-      static const char errstr[] = "Unexpected error.\n";
+-      __libc_write (STDERR_FILENO, errstr, sizeof (errstr) - 1);
+-    }
+-  abort ();
++  char *e = __strerror_r (errnum, errbuf, sizeof errbuf);
++  __assert_fail_base (_("%s%s%s:%u: %s%sUnexpected error: %s.\n"),
++                    e, file, line, function);
+ }
+ libc_hidden_def (__assert_perror_fail)
+Index: glibc-2.12-2-gc4ccff1/assert/assert.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/assert/assert.c
++++ glibc-2.12-2-gc4ccff1/assert/assert.c
+@@ -19,11 +19,13 @@
+ #include <assert.h>
+ #include <atomic.h>
++#include <ldsodefs.h>
+ #include <libintl.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <sysdep.h>
+ #include <unistd.h>
++#include <sys/mman.h>
+ extern const char *__progname;
+@@ -45,31 +47,44 @@ extern const char *__progname;
+ #endif
+-#undef __assert_fail
+ void
+-__assert_fail (const char *assertion, const char *file, unsigned int line,
+-             const char *function)
++__assert_fail_base (const char *fmt, const char *assertion, const char *file,
++                  unsigned int line, const char *function)
+ {
+-  char *buf;
++  char *str;
+ #ifdef FATAL_PREPARE
+   FATAL_PREPARE;
+ #endif
+-  if (__asprintf (&buf, _("%s%s%s:%u: %s%sAssertion `%s' failed.\n"),
++  int total;
++  if (__asprintf (&str, fmt,
+                 __progname, __progname[0] ? ": " : "",
+                 file, line,
+                 function ? function : "", function ? ": " : "",
+-                assertion) >= 0)
++                assertion, &total) >= 0)
+     {
+       /* Print the message.  */
+-      (void) __fxprintf (NULL, "%s", buf);
++      (void) __fxprintf (NULL, "%s", str);
+       (void) fflush (stderr);
+-      /* We have to free the old buffer since the application might
+-       catch the SIGABRT signal.  */
+-      char *old = atomic_exchange_acq (&__abort_msg, buf);
+-      free (old);
++      total = (total + 1 + GLRO(dl_pagesize) - 1) & ~(GLRO(dl_pagesize) - 1);
++      struct abort_msg_s *buf = __mmap (NULL, total, PROT_READ | PROT_WRITE,
++                                      MAP_ANON | MAP_PRIVATE, -1, 0);
++      if (__builtin_expect (buf != MAP_FAILED, 1))
++      {
++        buf->size = total;
++        strcpy (buf->msg, str);
++
++        /* We have to free the old buffer since the application might
++           catch the SIGABRT signal.  */
++        struct abort_msg_s *old = atomic_exchange_acq (&__abort_msg, buf);
++
++        if (old != NULL)
++          __munmap (old, old->size);
++      }
++
++      free (str);
+     }
+   else
+     {
+@@ -80,4 +95,14 @@ __assert_fail (const char *assertion, co
+   abort ();
+ }
++
++
++#undef __assert_fail
++void
++__assert_fail (const char *assertion, const char *file, unsigned int line,
++             const char *function)
++{
++  __assert_fail_base (_("%s%s%s:%u: %s%sAssertion `%s' failed.\n%n"),
++                    assertion, file, line, function);
++}
+ hidden_def(__assert_fail)
+Index: glibc-2.12-2-gc4ccff1/include/assert.h
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/include/assert.h
++++ glibc-2.12-2-gc4ccff1/include/assert.h
+@@ -13,6 +13,12 @@ extern void __assert_perror_fail (int __
+                                 __const char *__function)
+      __THROW __attribute__ ((__noreturn__));
++/* The real implementation of the two functions above.  */
++extern void __assert_fail_base (const char *fmt, const char *assertion,
++                              const char *file, unsigned int line,
++                              const char *function)
++     __THROW  __attribute__ ((__noreturn__));
++
+ #if !defined NOT_IN_libc || defined IS_IN_rtld
+ hidden_proto (__assert_fail)
+ hidden_proto (__assert_perror_fail)
+Index: glibc-2.12-2-gc4ccff1/include/stdlib.h
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/include/stdlib.h
++++ glibc-2.12-2-gc4ccff1/include/stdlib.h
+@@ -223,16 +223,21 @@ extern int __qfcvt_r (long double __valu
+ # define __cxa_atexit(func, arg, d) INTUSE(__cxa_atexit) (func, arg, d)
+ # endif
+-#endif
+-
+ extern void *__default_morecore (ptrdiff_t) __THROW;
+ libc_hidden_proto (__default_morecore)
+-extern char *__abort_msg;
++struct abort_msg_s
++{
++  unsigned int size;
++  char msg[0];
++};
++extern struct abort_msg_s *__abort_msg;
+ libc_hidden_proto (__abort_msg)
+ __END_DECLS
++#endif
++
+ #undef __Need_M_And_C
+ #endif  /* include/stdlib.h */
+Index: glibc-2.12-2-gc4ccff1/stdlib/abort.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/stdlib/abort.c
++++ glibc-2.12-2-gc4ccff1/stdlib/abort.c
+@@ -37,7 +37,7 @@
+ #endif
+ /* Exported variable to locate abort message in core files etc.  */
+-char *__abort_msg __attribute__ ((nocommon));
++struct abort_msg_s *__abort_msg __attribute__ ((nocommon));
+ libc_hidden_def (__abort_msg)
+ /* We must avoid to run in circles.  Therefore we remember how far we
+Index: glibc-2.12-2-gc4ccff1/sysdeps/posix/libc_fatal.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/posix/libc_fatal.c
++++ glibc-2.12-2-gc4ccff1/sysdeps/posix/libc_fatal.c
+@@ -20,6 +20,7 @@
+ #include <atomic.h>
+ #include <errno.h>
+ #include <fcntl.h>
++#include <ldsodefs.h>
+ #include <paths.h>
+ #include <stdarg.h>
+ #include <stdbool.h>
+@@ -125,18 +126,28 @@ __libc_message (int do_abort, const char
+       if (TEMP_FAILURE_RETRY (__writev (fd, iov, nlist)) == total)
+       written = true;
+-      char *buf = do_abort ? malloc (total + 1) : NULL;
+-      if (buf != NULL)
++      if (do_abort)
+       {
+-        char *wp = buf;
+-        for (int cnt = 0; cnt < nlist; ++cnt)
+-          wp = mempcpy (wp, iov[cnt].iov_base, iov[cnt].iov_len);
+-        *wp = '\0';
+-
+-        /* We have to free the old buffer since the application might
+-           catch the SIGABRT signal.  */
+-        char *old = atomic_exchange_acq (&__abort_msg, buf);
+-        free (old);
++        total = ((total + 1 + GLRO(dl_pagesize) - 1)
++                 & ~(GLRO(dl_pagesize) - 1));
++        struct abort_msg_s *buf = __mmap (NULL, total,
++                                          PROT_READ | PROT_WRITE,
++                                          MAP_ANON | MAP_PRIVATE, -1, 0);
++        if (buf != MAP_FAILED)
++          {
++            buf->size = total;
++            char *wp = buf->msg;
++            for (int cnt = 0; cnt < nlist; ++cnt)
++              wp = mempcpy (wp, iov[cnt].iov_base, iov[cnt].iov_len);
++            *wp = '\0';
++
++            /* We have to free the old buffer since the application might
++               catch the SIGABRT signal.  */
++            struct abort_msg_s *old = atomic_exchange_acq (&__abort_msg,
++                                                           buf);
++            if (old != NULL)
++              __munmap (old, old->size);
++          }
+       }
+     }
+Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/libc_fatal.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/libc_fatal.c
++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/libc_fatal.c
+@@ -20,6 +20,7 @@
+ #include <atomic.h>
+ #include <errno.h>
+ #include <fcntl.h>
++#include <ldsodefs.h>
+ #include <paths.h>
+ #include <stdarg.h>
+ #include <stdbool.h>
+@@ -28,6 +29,7 @@
+ #include <string.h>
+ #include <sysdep.h>
+ #include <unistd.h>
++#include <sys/mman.h>
+ #include <sys/syslog.h>
+ #include <execinfo.h>
+@@ -134,18 +136,28 @@ __libc_message (int do_abort, const char
+       if (cnt == total)
+       written = true;
+-      char *buf = do_abort ? malloc (total + 1) : NULL;
+-      if (buf != NULL)
++      if (do_abort)
+       {
+-        char *wp = buf;
+-        for (int cnt = 0; cnt < nlist; ++cnt)
+-          wp = mempcpy (wp, iov[cnt].iov_base, iov[cnt].iov_len);
+-        *wp = '\0';
+-
+-        /* We have to free the old buffer since the application might
+-           catch the SIGABRT signal.  */
+-        char *old = atomic_exchange_acq (&__abort_msg, buf);
+-        free (old);
++        total = ((total + 1 + GLRO(dl_pagesize) - 1)
++                 & ~(GLRO(dl_pagesize) - 1));
++        struct abort_msg_s *buf = __mmap (NULL, total,
++                                          PROT_READ | PROT_WRITE,
++                                          MAP_ANON | MAP_PRIVATE, -1, 0);
++        if (__builtin_expect (buf != MAP_FAILED, 1))
++          {
++            buf->size = total;
++            char *wp = buf->msg;
++            for (int cnt = 0; cnt < nlist; ++cnt)
++              wp = mempcpy (wp, iov[cnt].iov_base, iov[cnt].iov_len);
++            *wp = '\0';
++
++            /* We have to free the old buffer since the application might
++               catch the SIGABRT signal.  */
++            struct abort_msg_s *old = atomic_exchange_acq (&__abort_msg,
++                                                           buf);
++            if (old != NULL)
++              __munmap (old, old->size);
++          }
+       }
+     }
diff --git a/src/patches/glibc/glibc-rh681054.patch b/src/patches/glibc/glibc-rh681054.patch
new file mode 100644 (file)
index 0000000..27b7361
--- /dev/null
@@ -0,0 +1,514 @@
+2011-03-18  Ulrich Drepper  <drepper@gmail.com>
+
+       * posix/fnmatch.c (fnmatch): Check size of pattern in wide
+       character representation.
+       Partly based on a patch by Tomas Hoger <thoger@redhat.com>.
+
+2010-11-11  Andreas Schwab  <schwab@redhat.com>
+
+       * posix/fnmatch_loop.c (NEW_PATTERN): Fix use of alloca.
+       * posix/Makefile (tests): Add $(objpfx)tst-fnmatch-mem.
+       (tst-fnmatch-ENV): Set MALLOC_TRACE.
+       ($(objpfx)tst-fnmatch-mem): New rule.
+       (generated): Add tst-fnmatch-mem and tst-fnmatch.mtrace.
+       * posix/tst-fnmatch.c (main): Call mtrace.
+
+2010-08-09  Ulrich Drepper  <drepper@redhat.com>
+
+       [BZ #11883]
+       * posix/fnmatch.c: Keep track of alloca use and fall back on malloc.
+       * posix/fnmatch_loop.c: Likewise.
+
+Index: glibc-2.12-2-gc4ccff1/posix/Makefile
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/posix/Makefile
++++ glibc-2.12-2-gc4ccff1/posix/Makefile
+@@ -114,7 +114,8 @@ generated := $(addprefix wordexp-test-re
+            tst-rxspencer-mem tst-rxspencer.mtrace tst-getconf.out \
+            tst-pcre-mem tst-pcre.mtrace tst-boost-mem tst-boost.mtrace \
+            bug-ga2.mtrace bug-ga2-mem bug-glob2.mtrace bug-glob2-mem \
+-           tst-vfork3-mem tst-vfork3.mtrace getconf.speclist
++           tst-vfork3-mem tst-vfork3.mtrace getconf.speclist \
++           tst-fnmatch-mem tst-fnmatch.mtrace
+ include ../Rules
+@@ -226,7 +227,7 @@ ifeq (no,$(cross-compiling))
+ tests: $(objpfx)bug-regex2-mem $(objpfx)bug-regex14-mem \
+   $(objpfx)bug-regex21-mem $(objpfx)tst-rxspencer-mem \
+   $(objpfx)tst-pcre-mem $(objpfx)tst-boost-mem $(objpfx)tst-getconf.out \
+-  $(objpfx)bug-glob2-mem $(objpfx)tst-vfork3-mem
++  $(objpfx)bug-glob2-mem $(objpfx)tst-vfork3-mem $(objpfx)tst-fnmatch-mem
+ xtests: $(objpfx)bug-ga2-mem
+ endif
+@@ -238,6 +239,11 @@ annexc-CFLAGS = -O
+ $(objpfx)annexc: annexc.c
+       $(native-compile)
++tst-fnmatch-ENV += MALLOC_TRACE=$(objpfx)tst-fnmatch.mtrace
++
++$(objpfx)tst-fnmatch-mem: $(objpfx)tst-fnmatch.out
++      $(common-objpfx)malloc/mtrace $(objpfx)tst-fnmatch.mtrace > $@
++
+ bug-regex2-ENV = MALLOC_TRACE=$(objpfx)bug-regex2.mtrace
+ $(objpfx)bug-regex2-mem: $(objpfx)bug-regex2.out
+Index: glibc-2.12-2-gc4ccff1/posix/fnmatch.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/posix/fnmatch.c
++++ glibc-2.12-2-gc4ccff1/posix/fnmatch.c
+@@ -41,6 +41,12 @@
+ # include <stdlib.h>
+ #endif
++#ifdef _LIBC
++# include <alloca.h>
++#else
++# define alloca_account(size., var) alloca (size)
++#endif
++
+ /* For platform which support the ISO C amendement 1 functionality we
+    support user defined character classes.  */
+ #if defined _LIBC || (defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H)
+@@ -330,8 +336,11 @@ fnmatch (pattern, string, flags)
+       mbstate_t ps;
+       size_t n;
+       const char *p;
++      wchar_t *wpattern_malloc = NULL;
+       wchar_t *wpattern;
++      wchar_t *wstring_malloc = NULL;
+       wchar_t *wstring;
++      size_t alloca_used = 0;
+       /* Convert the strings into wide characters.  */
+       memset (&ps, '\0', sizeof (ps));
+@@ -343,7 +352,8 @@ fnmatch (pattern, string, flags)
+ #endif
+       if (__builtin_expect (n < 1024, 1))
+       {
+-        wpattern = (wchar_t *) alloca ((n + 1) * sizeof (wchar_t));
++        wpattern = (wchar_t *) alloca_account ((n + 1) * sizeof (wchar_t),
++                                               alloca_used);
+         n = mbsrtowcs (wpattern, &p, n + 1, &ps);
+         if (__builtin_expect (n == (size_t) -1, 0))
+           /* Something wrong.
+@@ -365,8 +375,16 @@ fnmatch (pattern, string, flags)
+              XXX Do we have to set `errno' to something which mbsrtows hasn't
+              already done?  */
+           return -1;
+-        wpattern = (wchar_t *) alloca ((n + 1) * sizeof (wchar_t));
++        if (__builtin_expect (n >= (size_t) -1 / sizeof (wchar_t), 0))
++          {
++            __set_errno (ENOMEM);
++            return -2;
++          }
++        wpattern_malloc = wpattern
++          = (wchar_t *) malloc ((n + 1) * sizeof (wchar_t));
+         assert (mbsinit (&ps));
++        if (wpattern == NULL)
++          return -2;
+         (void) mbsrtowcs (wpattern, &pattern, n + 1, &ps);
+       }
+@@ -379,13 +397,18 @@ fnmatch (pattern, string, flags)
+       p = string;
+       if (__builtin_expect (n < 1024, 1))
+       {
+-        wstring = (wchar_t *) alloca ((n + 1) * sizeof (wchar_t));
++        wstring = (wchar_t *) alloca_account ((n + 1) * sizeof (wchar_t),
++                                              alloca_used);
+         n = mbsrtowcs (wstring, &p, n + 1, &ps);
+         if (__builtin_expect (n == (size_t) -1, 0))
+-          /* Something wrong.
+-             XXX Do we have to set `errno' to something which mbsrtows hasn't
+-             already done?  */
+-          return -1;
++          {
++            /* Something wrong.
++               XXX Do we have to set `errno' to something which
++               mbsrtows hasn't already done?  */
++          free_return:
++            free (wpattern_malloc);
++            return -1;
++          }
+         if (p)
+           {
+             memset (&ps, '\0', sizeof (ps));
+@@ -400,19 +423,38 @@ fnmatch (pattern, string, flags)
+           /* Something wrong.
+              XXX Do we have to set `errno' to something which mbsrtows hasn't
+              already done?  */
+-          return -1;
+-        wstring = (wchar_t *) alloca ((n + 1) * sizeof (wchar_t));
++          goto free_return;
++        if (__builtin_expect (n >= (size_t) -1 / sizeof (wchar_t), 0))
++          {
++            free (wpattern_malloc);
++            __set_errno (ENOMEM);
++            return -2;
++          }
++
++        wstring_malloc = wstring
++          = (wchar_t *) malloc ((n + 1) * sizeof (wchar_t));
++        if (wstring == NULL)
++          {
++            free (wpattern_malloc);
++            return -2;
++          }
+         assert (mbsinit (&ps));
+         (void) mbsrtowcs (wstring, &string, n + 1, &ps);
+       }
+-      return internal_fnwmatch (wpattern, wstring, wstring + n,
+-                              flags & FNM_PERIOD, flags, NULL);
++      int res = internal_fnwmatch (wpattern, wstring, wstring + n,
++                                 flags & FNM_PERIOD, flags, NULL,
++                                 alloca_used);
++
++      free (wstring_malloc);
++      free (wpattern_malloc);
++
++      return res;
+     }
+ # endif  /* mbstate_t and mbsrtowcs or _LIBC.  */
+   return internal_fnmatch (pattern, string, string + strlen (string),
+-                         flags & FNM_PERIOD, flags, NULL);
++                         flags & FNM_PERIOD, flags, NULL, 0);
+ }
+ # ifdef _LIBC
+Index: glibc-2.12-2-gc4ccff1/posix/fnmatch_loop.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/posix/fnmatch_loop.c
++++ glibc-2.12-2-gc4ccff1/posix/fnmatch_loop.c
+@@ -28,22 +28,24 @@ struct STRUCT
+    it matches, nonzero if not.  */
+ static int FCT (const CHAR *pattern, const CHAR *string,
+               const CHAR *string_end, int no_leading_period, int flags,
+-              struct STRUCT *ends)
++              struct STRUCT *ends, size_t alloca_used)
+      internal_function;
+ static int EXT (INT opt, const CHAR *pattern, const CHAR *string,
+-              const CHAR *string_end, int no_leading_period, int flags)
++              const CHAR *string_end, int no_leading_period, int flags,
++              size_t alloca_used)
+      internal_function;
+ static const CHAR *END (const CHAR *patternp) internal_function;
+ static int
+ internal_function
+-FCT (pattern, string, string_end, no_leading_period, flags, ends)
++FCT (pattern, string, string_end, no_leading_period, flags, ends, alloca_used)
+      const CHAR *pattern;
+      const CHAR *string;
+      const CHAR *string_end;
+      int no_leading_period;
+      int flags;
+      struct STRUCT *ends;
++     size_t alloca_used;
+ {
+   register const CHAR *p = pattern, *n = string;
+   register UCHAR c;
+@@ -67,10 +69,8 @@ FCT (pattern, string, string_end, no_lea
+       case L('?'):
+         if (__builtin_expect (flags & FNM_EXTMATCH, 0) && *p == '(')
+           {
+-            int res;
+-
+-            res = EXT (c, p, n, string_end, no_leading_period,
+-                       flags);
++            int res = EXT (c, p, n, string_end, no_leading_period,
++                           flags, alloca_used);
+             if (res != -1)
+               return res;
+           }
+@@ -99,10 +99,8 @@ FCT (pattern, string, string_end, no_lea
+       case L('*'):
+         if (__builtin_expect (flags & FNM_EXTMATCH, 0) && *p == '(')
+           {
+-            int res;
+-
+-            res = EXT (c, p, n, string_end, no_leading_period,
+-                       flags);
++            int res = EXT (c, p, n, string_end, no_leading_period,
++                           flags, alloca_used);
+             if (res != -1)
+               return res;
+           }
+@@ -191,7 +189,7 @@ FCT (pattern, string, string_end, no_lea
+                 for (--p; n < endp; ++n, no_leading_period = 0)
+                   if (FCT (p, n, string_end, no_leading_period, flags2,
+-                           &end) == 0)
++                           &end, alloca_used) == 0)
+                     goto found;
+               }
+             else if (c == L('/') && (flags & FNM_FILE_NAME))
+@@ -200,7 +198,7 @@ FCT (pattern, string, string_end, no_lea
+                   ++n;
+                 if (n < string_end && *n == L('/')
+                     && (FCT (p, n + 1, string_end, flags & FNM_PERIOD, flags,
+-                             NULL) == 0))
++                             NULL, alloca_used) == 0))
+                   return 0;
+               }
+             else
+@@ -214,7 +212,7 @@ FCT (pattern, string, string_end, no_lea
+                 for (--p; n < endp; ++n, no_leading_period = 0)
+                   if (FOLD ((UCHAR) *n) == c
+                       && (FCT (p, n, string_end, no_leading_period, flags2,
+-                               &end) == 0))
++                               &end, alloca_used) == 0))
+                     {
+                     found:
+                       if (end.pattern == NULL)
+@@ -749,7 +747,7 @@ FCT (pattern, string, string_end, no_lea
+                                              _NL_COLLATE_SYMB_EXTRAMB);
+                               /* Locate the character in the hashing
+-                                   table.  */
++                                 table.  */
+                               hash = elem_hash (str, c1);
+                               idx = 0;
+@@ -971,9 +969,8 @@ FCT (pattern, string, string_end, no_lea
+       case L('!'):
+         if (__builtin_expect (flags & FNM_EXTMATCH, 0) && *p == '(')
+           {
+-            int res;
+-
+-            res = EXT (c, p, n, string_end, no_leading_period, flags);
++            int res = EXT (c, p, n, string_end, no_leading_period, flags,
++                           alloca_used);
+             if (res != -1)
+               return res;
+           }
+@@ -1052,26 +1049,32 @@ END (const CHAR *pattern)
+ static int
+ internal_function
+ EXT (INT opt, const CHAR *pattern, const CHAR *string, const CHAR *string_end,
+-     int no_leading_period, int flags)
++     int no_leading_period, int flags, size_t alloca_used)
+ {
+   const CHAR *startp;
+   int level;
+   struct patternlist
+   {
+     struct patternlist *next;
++    CHAR malloced;
+     CHAR str[0];
+   } *list = NULL;
+   struct patternlist **lastp = &list;
+   size_t pattern_len = STRLEN (pattern);
++  int any_malloced = 0;
+   const CHAR *p;
+   const CHAR *rs;
++  int retval = 0;
+   /* Parse the pattern.  Store the individual parts in the list.  */
+   level = 0;
+   for (startp = p = pattern + 1; level >= 0; ++p)
+     if (*p == L('\0'))
+-      /* This is an invalid pattern.  */
+-      return -1;
++      {
++      /* This is an invalid pattern.  */
++      retval = -1;
++      goto out;
++      }
+     else if (*p == L('['))
+       {
+       /* Handle brackets special.  */
+@@ -1088,8 +1091,11 @@ EXT (INT opt, const CHAR *pattern, const
+       /* Skip over all characters of the list.  */
+       while (*p != L(']'))
+         if (*p++ == L('\0'))
+-          /* This is no valid pattern.  */
+-          return -1;
++          {
++            /* This is no valid pattern.  */
++            retval = -1;
++            goto out;
++          }
+       }
+     else if ((*p == L('?') || *p == L('*') || *p == L('+') || *p == L('@')
+             || *p == L('!')) && p[1] == L('('))
+@@ -1102,15 +1108,25 @@ EXT (INT opt, const CHAR *pattern, const
+           /* This means we found the end of the pattern.  */
+ #define NEW_PATTERN \
+           struct patternlist *newp;                                         \
+-                                                                            \
+-          if (opt == L('?') || opt == L('@'))                               \
+-            newp = alloca (sizeof (struct patternlist)                      \
+-                           + (pattern_len * sizeof (CHAR)));                \
++          size_t slen = (opt == L('?') || opt == L('@')                     \
++                         ? pattern_len : (p - startp + 1));                 \
++          slen = sizeof (struct patternlist) + (slen * sizeof (CHAR));      \
++          int malloced = ! __libc_use_alloca (alloca_used + slen);          \
++          if (__builtin_expect (malloced, 0))                               \
++            {                                                               \
++              newp = malloc (slen);                                         \
++              if (newp == NULL)                                             \
++                {                                                           \
++                  retval = -2;                                              \
++                  goto out;                                                 \
++                }                                                           \
++              any_malloced = 1;                                             \
++            }                                                               \
+           else                                                              \
+-            newp = alloca (sizeof (struct patternlist)                      \
+-                           + ((p - startp + 1) * sizeof (CHAR)));           \
+-          *((CHAR *) MEMPCPY (newp->str, startp, p - startp)) = L('\0');    \
++            newp = alloca_account (slen, alloca_used);                      \
+           newp->next = NULL;                                                \
++          newp->malloced = malloced;                                        \
++          *((CHAR *) MEMPCPY (newp->str, startp, p - startp)) = L('\0');    \
+           *lastp = newp;                                                    \
+           lastp = &newp->next
+           NEW_PATTERN;
+@@ -1131,8 +1147,9 @@ EXT (INT opt, const CHAR *pattern, const
+   switch (opt)
+     {
+     case L('*'):
+-      if (FCT (p, string, string_end, no_leading_period, flags, NULL) == 0)
+-      return 0;
++      if (FCT (p, string, string_end, no_leading_period, flags, NULL,
++             alloca_used) == 0)
++      goto success;
+       /* FALLTHROUGH */
+     case L('+'):
+@@ -1143,7 +1160,7 @@ EXT (INT opt, const CHAR *pattern, const
+              current pattern.  */
+           if (FCT (list->str, string, rs, no_leading_period,
+                    flags & FNM_FILE_NAME ? flags : flags & ~FNM_PERIOD,
+-                   NULL) == 0
++                   NULL, alloca_used) == 0
+               /* This was successful.  Now match the rest with the rest
+                  of the pattern.  */
+               && (FCT (p, rs, string_end,
+@@ -1151,7 +1168,7 @@ EXT (INT opt, const CHAR *pattern, const
+                        ? no_leading_period
+                        : rs[-1] == '/' && NO_LEADING_PERIOD (flags) ? 1 : 0,
+                        flags & FNM_FILE_NAME
+-                       ? flags : flags & ~FNM_PERIOD, NULL) == 0
++                       ? flags : flags & ~FNM_PERIOD, NULL, alloca_used) == 0
+                   /* This didn't work.  Try the whole pattern.  */
+                   || (rs != string
+                       && FCT (pattern - 1, rs, string_end,
+@@ -1160,18 +1177,21 @@ EXT (INT opt, const CHAR *pattern, const
+                               : (rs[-1] == '/' && NO_LEADING_PERIOD (flags)
+                                  ? 1 : 0),
+                               flags & FNM_FILE_NAME
+-                              ? flags : flags & ~FNM_PERIOD, NULL) == 0)))
++                              ? flags : flags & ~FNM_PERIOD, NULL,
++                              alloca_used) == 0)))
+             /* It worked.  Signal success.  */
+-            return 0;
++            goto success;
+       }
+       while ((list = list->next) != NULL);
+       /* None of the patterns lead to a match.  */
+-      return FNM_NOMATCH;
++      retval = FNM_NOMATCH;
++      break;
+     case L('?'):
+-      if (FCT (p, string, string_end, no_leading_period, flags, NULL) == 0)
+-      return 0;
++      if (FCT (p, string, string_end, no_leading_period, flags, NULL,
++             alloca_used) == 0)
++      goto success;
+       /* FALLTHROUGH */
+     case L('@'):
+@@ -1183,13 +1203,14 @@ EXT (INT opt, const CHAR *pattern, const
+       if (FCT (STRCAT (list->str, p), string, string_end,
+                no_leading_period,
+                flags & FNM_FILE_NAME ? flags : flags & ~FNM_PERIOD,
+-               NULL) == 0)
++               NULL, alloca_used) == 0)
+         /* It worked.  Signal success.  */
+-        return 0;
++        goto success;
+       while ((list = list->next) != NULL);
+       /* None of the patterns lead to a match.  */
+-      return FNM_NOMATCH;
++      retval = FNM_NOMATCH;
++      break;
+     case L('!'):
+       for (rs = string; rs <= string_end; ++rs)
+@@ -1199,7 +1220,7 @@ EXT (INT opt, const CHAR *pattern, const
+         for (runp = list; runp != NULL; runp = runp->next)
+           if (FCT (runp->str, string, rs,  no_leading_period,
+                    flags & FNM_FILE_NAME ? flags : flags & ~FNM_PERIOD,
+-                   NULL) == 0)
++                   NULL, alloca_used) == 0)
+             break;
+         /* If none of the patterns matched see whether the rest does.  */
+@@ -1209,21 +1230,34 @@ EXT (INT opt, const CHAR *pattern, const
+                      ? no_leading_period
+                      : rs[-1] == '/' && NO_LEADING_PERIOD (flags) ? 1 : 0,
+                      flags & FNM_FILE_NAME ? flags : flags & ~FNM_PERIOD,
+-                     NULL) == 0))
++                     NULL, alloca_used) == 0))
+           /* This is successful.  */
+-          return 0;
++          goto success;
+       }
+       /* None of the patterns together with the rest of the pattern
+        lead to a match.  */
+-      return FNM_NOMATCH;
++      retval = FNM_NOMATCH;
++      break;
+     default:
+       assert (! "Invalid extended matching operator");
++      retval = -1;
+       break;
+     }
+-  return -1;
++ success:
++ out:
++  if (any_malloced)
++    while (list != NULL)
++      {
++      struct patternlist *old = list;
++      list = list->next;
++      if (old->malloced)
++        free (old);
++      }
++
++  return retval;
+ }
+Index: glibc-2.12-2-gc4ccff1/posix/tst-fnmatch.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/posix/tst-fnmatch.c
++++ glibc-2.12-2-gc4ccff1/posix/tst-fnmatch.c
+@@ -25,6 +25,7 @@
+ #include <stdlib.h>
+ #include <string.h>
+ #include <sys/types.h>
++#include <mcheck.h>
+ static char *next_input (char **line, int first, int last);
+@@ -46,6 +47,8 @@ main (void)
+   size_t escpatternlen = 0;
+   int nr = 0;
++  mtrace ();
++
+   /* Read lines from stdin with the following format:
+        locale  input-string  match-string  flags  result
diff --git a/src/patches/glibc/glibc-rh688720.patch b/src/patches/glibc/glibc-rh688720.patch
new file mode 100644 (file)
index 0000000..0c86f25
--- /dev/null
@@ -0,0 +1,1638 @@
+2011-11-11  Ulrich Drepper  <drepper@gmail.com>
+
+       [BZ #13147]
+       * locales/de_AT: Use de_DE for LC_NUMERIC.
+       * locales/es_BO: Use es_ES for LC_MESSAGES and LC_NUMERIC.
+       * locales/es_CL: Likewise.
+       * locales/es_CO: Likewise.
+       * locales/es_DO: Likewise.
+       * locales/es_EC: Likewise.
+       * locales/es_GT: Likewise.
+       * locales/es_HN: Likewise.
+       * locales/es_MX: Likewise.
+       * locales/es_NI: Likewise.
+       * locales/es_PA: Likewise.
+       * locales/es_PE: Likewise.
+       * locales/es_PR: Likewise.
+       * locales/es_PY: Likewise.
+       * locales/es_SV: Likewise.
+       * locales/es_UY: Likewise.
+       * locales/es_VE: Likewise.
+       * locales/es_ES: Fix LC_NUMERIC.
+       * locales/es_CR: Use es_ES for LC_MESSAGES.
+       * locales/fr_BE: Actually use grouping in LC_NUMERIC.
+       * locales/fr_CA: Use fr_FR for LC_MESSAGES and LC_NUMERIC.
+       * locales/fr_CH: Use de_CH for LC_NUMERIC.
+       * locales/fr_LU: Use same grouping in LC_NUMERIC as in LC_MONETARY.
+
+2010-05-17  Andreas Schwab  <schwab@redhat.com>
+
+       * locales/es_CR (LC_ADDRESS): Fix character names in lang_ab.
+
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/de_AT
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/de_AT
++++ glibc-2.12-2-gc4ccff1/localedata/locales/de_AT
+@@ -78,41 +78,39 @@ n_sign_posn               1
+ END LC_MONETARY
+ LC_NUMERIC
+-decimal_point             "<U002C>"
+-thousands_sep             ""
+-grouping                  0;0
++copy "de_DE"
+ END LC_NUMERIC
+ LC_TIME
+ abday   "<U0053><U006F><U006E>";"<U004D><U006F><U006E>";/
+-        "<U0044><U0069><U0065>";"<U004D><U0069><U0074>";/
+-        "<U0044><U006F><U006E>";"<U0046><U0072><U0065>";/
+-        "<U0053><U0061><U006D>"
++      "<U0044><U0069><U0065>";"<U004D><U0069><U0074>";/
++      "<U0044><U006F><U006E>";"<U0046><U0072><U0065>";/
++      "<U0053><U0061><U006D>"
+ day     "<U0053><U006F><U006E><U006E><U0074><U0061><U0067>";/
+-        "<U004D><U006F><U006E><U0074><U0061><U0067>";/
+-        "<U0044><U0069><U0065><U006E><U0073><U0074><U0061><U0067>";/
+-        "<U004D><U0069><U0074><U0074><U0077><U006F><U0063><U0068>";/
+-        "<U0044><U006F><U006E><U006E><U0065><U0072><U0073><U0074><U0061><U0067>";/
+-        "<U0046><U0072><U0065><U0069><U0074><U0061><U0067>";/
+-        "<U0053><U0061><U006D><U0073><U0074><U0061><U0067>"
++      "<U004D><U006F><U006E><U0074><U0061><U0067>";/
++      "<U0044><U0069><U0065><U006E><U0073><U0074><U0061><U0067>";/
++      "<U004D><U0069><U0074><U0074><U0077><U006F><U0063><U0068>";/
++      "<U0044><U006F><U006E><U006E><U0065><U0072><U0073><U0074><U0061><U0067>";/
++      "<U0046><U0072><U0065><U0069><U0074><U0061><U0067>";/
++      "<U0053><U0061><U006D><U0073><U0074><U0061><U0067>"
+ abmon   "<U004A><U00E4><U006E>";"<U0046><U0065><U0062>";/
+-        "<U004D><U00E4><U0072>";"<U0041><U0070><U0072>";/
+-        "<U004D><U0061><U0069>";"<U004A><U0075><U006E>";/
+-        "<U004A><U0075><U006C>";"<U0041><U0075><U0067>";/
+-        "<U0053><U0065><U0070>";"<U004F><U006B><U0074>";/
+-        "<U004E><U006F><U0076>";"<U0044><U0065><U007A>"
++      "<U004D><U00E4><U0072>";"<U0041><U0070><U0072>";/
++      "<U004D><U0061><U0069>";"<U004A><U0075><U006E>";/
++      "<U004A><U0075><U006C>";"<U0041><U0075><U0067>";/
++      "<U0053><U0065><U0070>";"<U004F><U006B><U0074>";/
++      "<U004E><U006F><U0076>";"<U0044><U0065><U007A>"
+ mon     "<U004A><U00E4><U006E><U006E><U0065><U0072>";/
+-        "<U0046><U0065><U0062><U0065><U0072>";/
+-        "<U004D><U00E4><U0072><U007A>";/
+-        "<U0041><U0070><U0072><U0069><U006C>";/
+-        "<U004D><U0061><U0069>";/
+-        "<U004A><U0075><U006E><U0069>";/
+-        "<U004A><U0075><U006C><U0069>";/
+-        "<U0041><U0075><U0067><U0075><U0073><U0074>";/
+-        "<U0053><U0065><U0070><U0074><U0065><U006D><U0062><U0065><U0072>";/
+-        "<U004F><U006B><U0074><U006F><U0062><U0065><U0072>";/
+-        "<U004E><U006F><U0076><U0065><U006D><U0062><U0065><U0072>";/
+-        "<U0044><U0065><U007A><U0065><U006D><U0062><U0065><U0072>"
++      "<U0046><U0065><U0062><U0065><U0072>";/
++      "<U004D><U00E4><U0072><U007A>";/
++      "<U0041><U0070><U0072><U0069><U006C>";/
++      "<U004D><U0061><U0069>";/
++      "<U004A><U0075><U006E><U0069>";/
++      "<U004A><U0075><U006C><U0069>";/
++      "<U0041><U0075><U0067><U0075><U0073><U0074>";/
++      "<U0053><U0065><U0070><U0074><U0065><U006D><U0062><U0065><U0072>";/
++      "<U004F><U006B><U0074><U006F><U0062><U0065><U0072>";/
++      "<U004E><U006F><U0076><U0065><U006D><U0062><U0065><U0072>";/
++      "<U0044><U0065><U007A><U0065><U006D><U0062><U0065><U0072>"
+ d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+ d_fmt   "<U0025><U0059><U002D><U0025><U006D><U002D><U0025><U0064>"
+ t_fmt   "<U0025><U0054>"
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_BO
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_BO
++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_BO
+@@ -56,8 +56,7 @@ copy "es_ES"
+ END LC_CTYPE
+ LC_MESSAGES
+-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>"
+-noexpr  "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
++copy "es_ES"
+ END LC_MESSAGES
+ LC_MONETARY
+@@ -79,41 +78,39 @@ n_sign_posn          1
+ END LC_MONETARY
+ LC_NUMERIC
+-decimal_point        "<U002C>"
+-thousands_sep        ""
+-grouping             0;0
++copy "es_ES"
+ END LC_NUMERIC
+ LC_TIME
+ abday   "<U0064><U006F><U006D>";"<U006C><U0075><U006E>";/
+-        "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
+-        "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
+-        "<U0073><U00E1><U0062>"
++      "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
++      "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
++      "<U0073><U00E1><U0062>"
+ day     "<U0064><U006F><U006D><U0069><U006E><U0067><U006F>";/
+-        "<U006C><U0075><U006E><U0065><U0073>";/
+-        "<U006D><U0061><U0072><U0074><U0065><U0073>";/
+-        "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
+-        "<U006A><U0075><U0065><U0076><U0065><U0073>";/
+-        "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
+-        "<U0073><U00E1><U0062><U0061><U0064><U006F>"
++      "<U006C><U0075><U006E><U0065><U0073>";/
++      "<U006D><U0061><U0072><U0074><U0065><U0073>";/
++      "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
++      "<U006A><U0075><U0065><U0076><U0065><U0073>";/
++      "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
++      "<U0073><U00E1><U0062><U0061><U0064><U006F>"
+ abmon   "<U0065><U006E><U0065>";"<U0066><U0065><U0062>";/
+-        "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
+-        "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
+-        "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
+-        "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
+-        "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
++      "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
++      "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
++      "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
++      "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
++      "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
+ mon     "<U0065><U006E><U0065><U0072><U006F>";/
+-        "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
+-        "<U006D><U0061><U0072><U007A><U006F>";/
+-        "<U0061><U0062><U0072><U0069><U006C>";/
+-        "<U006D><U0061><U0079><U006F>";/
+-        "<U006A><U0075><U006E><U0069><U006F>";/
+-        "<U006A><U0075><U006C><U0069><U006F>";/
+-        "<U0061><U0067><U006F><U0073><U0074><U006F>";/
+-        "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
+-        "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
++      "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
++      "<U006D><U0061><U0072><U007A><U006F>";/
++      "<U0061><U0062><U0072><U0069><U006C>";/
++      "<U006D><U0061><U0079><U006F>";/
++      "<U006A><U0075><U006E><U0069><U006F>";/
++      "<U006A><U0075><U006C><U0069><U006F>";/
++      "<U0061><U0067><U006F><U0073><U0074><U006F>";/
++      "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
++      "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
++      "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
++      "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
+ d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+ d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
+ t_fmt   "<U0025><U0054>"
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_CL
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_CL
++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_CL
+@@ -56,8 +56,7 @@ copy "es_ES"
+ END LC_CTYPE
+ LC_MESSAGES
+-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>"
+-noexpr  "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
++copy "es_ES"
+ END LC_MESSAGES
+ LC_MONETARY
+@@ -79,41 +78,39 @@ n_sign_posn          1
+ END LC_MONETARY
+ LC_NUMERIC
+-decimal_point        "<U002C>"
+-thousands_sep        ""
+-grouping             0;0
++copy "es_ES"
+ END LC_NUMERIC
+ LC_TIME
+ abday   "<U0064><U006F><U006D>";"<U006C><U0075><U006E>";/
+-        "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
+-        "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
+-        "<U0073><U00E1><U0062>"
++      "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
++      "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
++      "<U0073><U00E1><U0062>"
+ day     "<U0064><U006F><U006D><U0069><U006E><U0067><U006F>";/
+-        "<U006C><U0075><U006E><U0065><U0073>";/
+-        "<U006D><U0061><U0072><U0074><U0065><U0073>";/
+-        "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
+-        "<U006A><U0075><U0065><U0076><U0065><U0073>";/
+-        "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
+-        "<U0073><U00E1><U0062><U0061><U0064><U006F>"
++      "<U006C><U0075><U006E><U0065><U0073>";/
++      "<U006D><U0061><U0072><U0074><U0065><U0073>";/
++      "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
++      "<U006A><U0075><U0065><U0076><U0065><U0073>";/
++      "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
++      "<U0073><U00E1><U0062><U0061><U0064><U006F>"
+ abmon   "<U0065><U006E><U0065>";"<U0066><U0065><U0062>";/
+-        "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
+-        "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
+-        "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
+-        "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
+-        "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
++      "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
++      "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
++      "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
++      "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
++      "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
+ mon     "<U0065><U006E><U0065><U0072><U006F>";/
+-        "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
+-        "<U006D><U0061><U0072><U007A><U006F>";/
+-        "<U0061><U0062><U0072><U0069><U006C>";/
+-        "<U006D><U0061><U0079><U006F>";/
+-        "<U006A><U0075><U006E><U0069><U006F>";/
+-        "<U006A><U0075><U006C><U0069><U006F>";/
+-        "<U0061><U0067><U006F><U0073><U0074><U006F>";/
+-        "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
+-        "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
++      "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
++      "<U006D><U0061><U0072><U007A><U006F>";/
++      "<U0061><U0062><U0072><U0069><U006C>";/
++      "<U006D><U0061><U0079><U006F>";/
++      "<U006A><U0075><U006E><U0069><U006F>";/
++      "<U006A><U0075><U006C><U0069><U006F>";/
++      "<U0061><U0067><U006F><U0073><U0074><U006F>";/
++      "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
++      "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
++      "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
++      "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
+ d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+ d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
+ t_fmt   "<U0025><U0054>"
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_CO
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_CO
++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_CO
+@@ -56,8 +56,7 @@ copy "es_ES"
+ END LC_CTYPE
+ LC_MESSAGES
+-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>"
+-noexpr  "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
++copy "es_ES"
+ END LC_MESSAGES
+ LC_MONETARY
+@@ -79,41 +78,39 @@ n_sign_posn          1
+ END LC_MONETARY
+ LC_NUMERIC
+-decimal_point        "<U002C>"
+-thousands_sep        ""
+-grouping             0;0
++copy "es_ES"
+ END LC_NUMERIC
+ LC_TIME
+ abday   "<U0064><U006F><U006D>";"<U006C><U0075><U006E>";/
+-        "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
+-        "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
+-        "<U0073><U00E1><U0062>"
++      "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
++      "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
++      "<U0073><U00E1><U0062>"
+ day     "<U0064><U006F><U006D><U0069><U006E><U0067><U006F>";/
+-        "<U006C><U0075><U006E><U0065><U0073>";/
+-        "<U006D><U0061><U0072><U0074><U0065><U0073>";/
+-        "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
+-        "<U006A><U0075><U0065><U0076><U0065><U0073>";/
+-        "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
+-        "<U0073><U00E1><U0062><U0061><U0064><U006F>"
++      "<U006C><U0075><U006E><U0065><U0073>";/
++      "<U006D><U0061><U0072><U0074><U0065><U0073>";/
++      "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
++      "<U006A><U0075><U0065><U0076><U0065><U0073>";/
++      "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
++      "<U0073><U00E1><U0062><U0061><U0064><U006F>"
+ abmon   "<U0065><U006E><U0065>";"<U0066><U0065><U0062>";/
+-        "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
+-        "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
+-        "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
+-        "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
+-        "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
++      "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
++      "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
++      "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
++      "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
++      "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
+ mon     "<U0065><U006E><U0065><U0072><U006F>";/
+-        "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
+-        "<U006D><U0061><U0072><U007A><U006F>";/
+-        "<U0061><U0062><U0072><U0069><U006C>";/
+-        "<U006D><U0061><U0079><U006F>";/
+-        "<U006A><U0075><U006E><U0069><U006F>";/
+-        "<U006A><U0075><U006C><U0069><U006F>";/
+-        "<U0061><U0067><U006F><U0073><U0074><U006F>";/
+-        "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
+-        "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
++      "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
++      "<U006D><U0061><U0072><U007A><U006F>";/
++      "<U0061><U0062><U0072><U0069><U006C>";/
++      "<U006D><U0061><U0079><U006F>";/
++      "<U006A><U0075><U006E><U0069><U006F>";/
++      "<U006A><U0075><U006C><U0069><U006F>";/
++      "<U0061><U0067><U006F><U0073><U0074><U006F>";/
++      "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
++      "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
++      "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
++      "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
+ d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+ d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
+ t_fmt   "<U0025><U0054>"
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_CR
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_CR
++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_CR
+@@ -47,8 +47,7 @@ copy "es_ES"
+ END LC_CTYPE
+ LC_MESSAGES
+-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>"
+-noexpr  "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
++copy "es_ES"
+ END LC_MESSAGES
+ LC_MONETARY
+@@ -79,34 +78,34 @@ END LC_NUMERIC
+ LC_TIME
+ abday   "<U0064><U006F><U006D>";"<U006C><U0075><U006E>";/
+-        "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
+-        "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
+-        "<U0073><U00E1><U0062>"
++      "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
++      "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
++      "<U0073><U00E1><U0062>"
+ day     "<U0064><U006F><U006D><U0069><U006E><U0067><U006F>";/
+-        "<U006C><U0075><U006E><U0065><U0073>";/
+-        "<U006D><U0061><U0072><U0074><U0065><U0073>";/
+-        "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
+-        "<U006A><U0075><U0065><U0076><U0065><U0073>";/
+-        "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
+-        "<U0073><U00E1><U0062><U0061><U0064><U006F>"
++      "<U006C><U0075><U006E><U0065><U0073>";/
++      "<U006D><U0061><U0072><U0074><U0065><U0073>";/
++      "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
++      "<U006A><U0075><U0065><U0076><U0065><U0073>";/
++      "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
++      "<U0073><U00E1><U0062><U0061><U0064><U006F>"
+ abmon   "<U0065><U006E><U0065>";"<U0066><U0065><U0062>";/
+-        "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
+-        "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
+-        "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
+-        "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
+-        "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
++      "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
++      "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
++      "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
++      "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
++      "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
+ mon     "<U0065><U006E><U0065><U0072><U006F>";/
+-        "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
+-        "<U006D><U0061><U0072><U007A><U006F>";/
+-        "<U0061><U0062><U0072><U0069><U006C>";/
+-        "<U006D><U0061><U0079><U006F>";/
+-        "<U006A><U0075><U006E><U0069><U006F>";/
+-        "<U006A><U0075><U006C><U0069><U006F>";/
+-        "<U0061><U0067><U006F><U0073><U0074><U006F>";/
+-        "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
+-        "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
++      "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
++      "<U006D><U0061><U0072><U007A><U006F>";/
++      "<U0061><U0062><U0072><U0069><U006C>";/
++      "<U006D><U0061><U0079><U006F>";/
++      "<U006A><U0075><U006E><U0069><U006F>";/
++      "<U006A><U0075><U006C><U0069><U006F>";/
++      "<U0061><U0067><U006F><U0073><U0074><U006F>";/
++      "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
++      "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
++      "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
++      "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
+ d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+ d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0059>"
+ t_fmt   "<U0025><U0054>"
+@@ -157,7 +156,7 @@ country_post  "<U0043><U0052>"
+ country_car   "<U0043><U0052>"
+ country_isbn  "9930,9977,9968"
+ lang_name     "<U0045><U0073><U0070><U0061><U00F1><U006F><U006C>"
+-lang_ab       "<0065><0073>"
++lang_ab       "<U0065><U0073>"
+ lang_term     "<U0073><U0070><U0061>"
+ country_ab2   "<U0043><U0052>"
+ country_ab3   "<U0043><U0052><U0049>"
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_DO
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_DO
++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_DO
+@@ -56,8 +56,7 @@ copy "es_ES"
+ END LC_CTYPE
+ LC_MESSAGES
+-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>"
+-noexpr  "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
++copy "es_ES"
+ END LC_MESSAGES
+ LC_MONETARY
+@@ -79,41 +78,39 @@ n_sign_posn          1
+ END LC_MONETARY
+ LC_NUMERIC
+-decimal_point        "<U002E>"
+-thousands_sep        ""
+-grouping             0;0
++copy "es_ES"
+ END LC_NUMERIC
+ LC_TIME
+ abday   "<U0064><U006F><U006D>";"<U006C><U0075><U006E>";/
+-        "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
+-        "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
+-        "<U0073><U00E1><U0062>"
++      "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
++      "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
++      "<U0073><U00E1><U0062>"
+ day     "<U0064><U006F><U006D><U0069><U006E><U0067><U006F>";/
+-        "<U006C><U0075><U006E><U0065><U0073>";/
+-        "<U006D><U0061><U0072><U0074><U0065><U0073>";/
+-        "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
+-        "<U006A><U0075><U0065><U0076><U0065><U0073>";/
+-        "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
+-        "<U0073><U00E1><U0062><U0061><U0064><U006F>"
++      "<U006C><U0075><U006E><U0065><U0073>";/
++      "<U006D><U0061><U0072><U0074><U0065><U0073>";/
++      "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
++      "<U006A><U0075><U0065><U0076><U0065><U0073>";/
++      "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
++      "<U0073><U00E1><U0062><U0061><U0064><U006F>"
+ abmon   "<U0065><U006E><U0065>";"<U0066><U0065><U0062>";/
+-        "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
+-        "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
+-        "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
+-        "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
+-        "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
++      "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
++      "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
++      "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
++      "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
++      "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
+ mon     "<U0065><U006E><U0065><U0072><U006F>";/
+-        "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
+-        "<U006D><U0061><U0072><U007A><U006F>";/
+-        "<U0061><U0062><U0072><U0069><U006C>";/
+-        "<U006D><U0061><U0079><U006F>";/
+-        "<U006A><U0075><U006E><U0069><U006F>";/
+-        "<U006A><U0075><U006C><U0069><U006F>";/
+-        "<U0061><U0067><U006F><U0073><U0074><U006F>";/
+-        "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
+-        "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
++      "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
++      "<U006D><U0061><U0072><U007A><U006F>";/
++      "<U0061><U0062><U0072><U0069><U006C>";/
++      "<U006D><U0061><U0079><U006F>";/
++      "<U006A><U0075><U006E><U0069><U006F>";/
++      "<U006A><U0075><U006C><U0069><U006F>";/
++      "<U0061><U0067><U006F><U0073><U0074><U006F>";/
++      "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
++      "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
++      "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
++      "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
+ d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+ d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
+ t_fmt   "<U0025><U0054>"
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_EC
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_EC
++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_EC
+@@ -56,8 +56,7 @@ copy "es_ES"
+ END LC_CTYPE
+ LC_MESSAGES
+-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>"
+-noexpr  "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
++copy "es_ES"
+ END LC_MESSAGES
+ LC_MONETARY
+@@ -79,41 +78,39 @@ n_sign_posn          1
+ END LC_MONETARY
+ LC_NUMERIC
+-decimal_point        "<U002C>"
+-thousands_sep        ""
+-grouping             0;0
++copy "es_ES"
+ END LC_NUMERIC
+ LC_TIME
+ abday   "<U0064><U006F><U006D>";"<U006C><U0075><U006E>";/
+-        "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
+-        "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
+-        "<U0073><U00E1><U0062>"
++      "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
++      "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
++      "<U0073><U00E1><U0062>"
+ day     "<U0064><U006F><U006D><U0069><U006E><U0067><U006F>";/
+-        "<U006C><U0075><U006E><U0065><U0073>";/
+-        "<U006D><U0061><U0072><U0074><U0065><U0073>";/
+-        "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
+-        "<U006A><U0075><U0065><U0076><U0065><U0073>";/
+-        "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
+-        "<U0073><U00E1><U0062><U0061><U0064><U006F>"
++      "<U006C><U0075><U006E><U0065><U0073>";/
++      "<U006D><U0061><U0072><U0074><U0065><U0073>";/
++      "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
++      "<U006A><U0075><U0065><U0076><U0065><U0073>";/
++      "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
++      "<U0073><U00E1><U0062><U0061><U0064><U006F>"
+ abmon   "<U0065><U006E><U0065>";"<U0066><U0065><U0062>";/
+-        "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
+-        "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
+-        "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
+-        "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
+-        "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
++      "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
++      "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
++      "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
++      "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
++      "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
+ mon     "<U0065><U006E><U0065><U0072><U006F>";/
+-        "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
+-        "<U006D><U0061><U0072><U007A><U006F>";/
+-        "<U0061><U0062><U0072><U0069><U006C>";/
+-        "<U006D><U0061><U0079><U006F>";/
+-        "<U006A><U0075><U006E><U0069><U006F>";/
+-        "<U006A><U0075><U006C><U0069><U006F>";/
+-        "<U0061><U0067><U006F><U0073><U0074><U006F>";/
+-        "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
+-        "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
++      "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
++      "<U006D><U0061><U0072><U007A><U006F>";/
++      "<U0061><U0062><U0072><U0069><U006C>";/
++      "<U006D><U0061><U0079><U006F>";/
++      "<U006A><U0075><U006E><U0069><U006F>";/
++      "<U006A><U0075><U006C><U0069><U006F>";/
++      "<U0061><U0067><U006F><U0073><U0074><U006F>";/
++      "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
++      "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
++      "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
++      "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
+ d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+ d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
+ t_fmt   "<U0025><U0054>"
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_ES
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_ES
++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_ES
+@@ -85,40 +85,40 @@ END LC_MONETARY
+ LC_NUMERIC
+ decimal_point        "<U002C>"
+-thousands_sep        ""
+-grouping             0;0
++thousands_sep        "<U002E>"
++grouping             3;3
+ END LC_NUMERIC
+ LC_TIME
+ abday   "<U0064><U006F><U006D>";"<U006C><U0075><U006E>";/
+-        "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
+-        "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
+-        "<U0073><U00E1><U0062>"
++      "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
++      "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
++      "<U0073><U00E1><U0062>"
+ day     "<U0064><U006F><U006D><U0069><U006E><U0067><U006F>";/
+-        "<U006C><U0075><U006E><U0065><U0073>";/
+-        "<U006D><U0061><U0072><U0074><U0065><U0073>";/
+-        "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
+-        "<U006A><U0075><U0065><U0076><U0065><U0073>";/
+-        "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
+-        "<U0073><U00E1><U0062><U0061><U0064><U006F>"
++      "<U006C><U0075><U006E><U0065><U0073>";/
++      "<U006D><U0061><U0072><U0074><U0065><U0073>";/
++      "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
++      "<U006A><U0075><U0065><U0076><U0065><U0073>";/
++      "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
++      "<U0073><U00E1><U0062><U0061><U0064><U006F>"
+ abmon   "<U0065><U006E><U0065>";"<U0066><U0065><U0062>";/
+-        "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
+-        "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
+-        "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
+-        "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
+-        "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
++      "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
++      "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
++      "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
++      "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
++      "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
+ mon     "<U0065><U006E><U0065><U0072><U006F>";/
+-        "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
+-        "<U006D><U0061><U0072><U007A><U006F>";/
+-        "<U0061><U0062><U0072><U0069><U006C>";/
+-        "<U006D><U0061><U0079><U006F>";/
+-        "<U006A><U0075><U006E><U0069><U006F>";/
+-        "<U006A><U0075><U006C><U0069><U006F>";/
+-        "<U0061><U0067><U006F><U0073><U0074><U006F>";/
+-        "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
+-        "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
++      "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
++      "<U006D><U0061><U0072><U007A><U006F>";/
++      "<U0061><U0062><U0072><U0069><U006C>";/
++      "<U006D><U0061><U0079><U006F>";/
++      "<U006A><U0075><U006E><U0069><U006F>";/
++      "<U006A><U0075><U006C><U0069><U006F>";/
++      "<U0061><U0067><U006F><U0073><U0074><U006F>";/
++      "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
++      "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
++      "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
++      "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
+ d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+ d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
+ t_fmt   "<U0025><U0054>"
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_GT
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_GT
++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_GT
+@@ -55,8 +55,7 @@ copy "es_ES"
+ END LC_CTYPE
+ LC_MESSAGES
+-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>"
+-noexpr  "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
++copy "es_ES"
+ END LC_MESSAGES
+ LC_MONETARY
+@@ -78,9 +77,7 @@ n_sign_posn          1
+ END LC_MONETARY
+ LC_NUMERIC
+-decimal_point        "<U002E>"
+-thousands_sep        ""
+-grouping             0;0
++copy "es_ES"
+ END LC_NUMERIC
+ LC_TIME
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_HN
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_HN
++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_HN
+@@ -56,8 +56,7 @@ copy "es_ES"
+ END LC_CTYPE
+ LC_MESSAGES
+-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>"
+-noexpr  "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
++copy "es_ES"
+ END LC_MESSAGES
+ LC_MONETARY
+@@ -79,41 +78,39 @@ n_sign_posn          1
+ END LC_MONETARY
+ LC_NUMERIC
+-decimal_point        "<U002E>"
+-thousands_sep        ""
+-grouping             0;0
++copy "es_ES"
+ END LC_NUMERIC
+ LC_TIME
+ abday   "<U0064><U006F><U006D>";"<U006C><U0075><U006E>";/
+-        "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
+-        "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
+-        "<U0073><U00E1><U0062>"
++      "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
++      "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
++      "<U0073><U00E1><U0062>"
+ day     "<U0064><U006F><U006D><U0069><U006E><U0067><U006F>";/
+-        "<U006C><U0075><U006E><U0065><U0073>";/
+-        "<U006D><U0061><U0072><U0074><U0065><U0073>";/
+-        "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
+-        "<U006A><U0075><U0065><U0076><U0065><U0073>";/
+-        "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
+-        "<U0073><U00E1><U0062><U0061><U0064><U006F>"
++      "<U006C><U0075><U006E><U0065><U0073>";/
++      "<U006D><U0061><U0072><U0074><U0065><U0073>";/
++      "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
++      "<U006A><U0075><U0065><U0076><U0065><U0073>";/
++      "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
++      "<U0073><U00E1><U0062><U0061><U0064><U006F>"
+ abmon   "<U0065><U006E><U0065>";"<U0066><U0065><U0062>";/
+-        "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
+-        "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
+-        "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
+-        "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
+-        "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
++      "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
++      "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
++      "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
++      "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
++      "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
+ mon     "<U0065><U006E><U0065><U0072><U006F>";/
+-        "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
+-        "<U006D><U0061><U0072><U007A><U006F>";/
+-        "<U0061><U0062><U0072><U0069><U006C>";/
+-        "<U006D><U0061><U0079><U006F>";/
+-        "<U006A><U0075><U006E><U0069><U006F>";/
+-        "<U006A><U0075><U006C><U0069><U006F>";/
+-        "<U0061><U0067><U006F><U0073><U0074><U006F>";/
+-        "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
+-        "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
++      "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
++      "<U006D><U0061><U0072><U007A><U006F>";/
++      "<U0061><U0062><U0072><U0069><U006C>";/
++      "<U006D><U0061><U0079><U006F>";/
++      "<U006A><U0075><U006E><U0069><U006F>";/
++      "<U006A><U0075><U006C><U0069><U006F>";/
++      "<U0061><U0067><U006F><U0073><U0074><U006F>";/
++      "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
++      "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
++      "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
++      "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
+ d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+ d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
+ t_fmt   "<U0025><U0054>"
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_MX
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_MX
++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_MX
+@@ -56,8 +56,7 @@ copy "es_ES"
+ END LC_CTYPE
+ LC_MESSAGES
+-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>"
+-noexpr  "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
++copy "es_ES"
+ END LC_MESSAGES
+ LC_MONETARY
+@@ -79,41 +78,39 @@ n_sign_posn          1
+ END LC_MONETARY
+ LC_NUMERIC
+-decimal_point        "<U002E>"
+-thousands_sep        ""
+-grouping             0;0
++copy "es_ES"
+ END LC_NUMERIC
+ LC_TIME
+ abday   "<U0064><U006F><U006D>";"<U006C><U0075><U006E>";/
+-        "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
+-        "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
+-        "<U0073><U00E1><U0062>"
++      "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
++      "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
++      "<U0073><U00E1><U0062>"
+ day     "<U0064><U006F><U006D><U0069><U006E><U0067><U006F>";/
+-        "<U006C><U0075><U006E><U0065><U0073>";/
+-        "<U006D><U0061><U0072><U0074><U0065><U0073>";/
+-        "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
+-        "<U006A><U0075><U0065><U0076><U0065><U0073>";/
+-        "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
+-        "<U0073><U00E1><U0062><U0061><U0064><U006F>"
++      "<U006C><U0075><U006E><U0065><U0073>";/
++      "<U006D><U0061><U0072><U0074><U0065><U0073>";/
++      "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
++      "<U006A><U0075><U0065><U0076><U0065><U0073>";/
++      "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
++      "<U0073><U00E1><U0062><U0061><U0064><U006F>"
+ abmon   "<U0065><U006E><U0065>";"<U0066><U0065><U0062>";/
+-        "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
+-        "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
+-        "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
+-        "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
+-        "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
++      "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
++      "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
++      "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
++      "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
++      "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
+ mon     "<U0065><U006E><U0065><U0072><U006F>";/
+-        "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
+-        "<U006D><U0061><U0072><U007A><U006F>";/
+-        "<U0061><U0062><U0072><U0069><U006C>";/
+-        "<U006D><U0061><U0079><U006F>";/
+-        "<U006A><U0075><U006E><U0069><U006F>";/
+-        "<U006A><U0075><U006C><U0069><U006F>";/
+-        "<U0061><U0067><U006F><U0073><U0074><U006F>";/
+-        "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
+-        "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
++      "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
++      "<U006D><U0061><U0072><U007A><U006F>";/
++      "<U0061><U0062><U0072><U0069><U006C>";/
++      "<U006D><U0061><U0079><U006F>";/
++      "<U006A><U0075><U006E><U0069><U006F>";/
++      "<U006A><U0075><U006C><U0069><U006F>";/
++      "<U0061><U0067><U006F><U0073><U0074><U006F>";/
++      "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
++      "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
++      "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
++      "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
+ d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+ d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
+ t_fmt   "<U0025><U0054>"
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_NI
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_NI
++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_NI
+@@ -47,8 +47,7 @@ copy "es_ES"
+ END LC_CTYPE
+ LC_MESSAGES
+-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>"
+-noexpr  "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
++copy "es_ES"
+ END LC_MESSAGES
+ LC_MONETARY
+@@ -70,9 +69,7 @@ n_sign_posn          1
+ END LC_MONETARY
+ LC_NUMERIC
+-decimal_point        "<U002E>"
+-thousands_sep        ""
+-grouping             0;0
++copy "es_ES"
+ END LC_NUMERIC
+ LC_TIME
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_PA
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_PA
++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_PA
+@@ -56,8 +56,7 @@ copy "es_ES"
+ END LC_CTYPE
+ LC_MESSAGES
+-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>"
+-noexpr  "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
++copy "es_ES"
+ END LC_MESSAGES
+ LC_MONETARY
+@@ -79,41 +78,39 @@ n_sign_posn          1
+ END LC_MONETARY
+ LC_NUMERIC
+-decimal_point        "<U002E>"
+-thousands_sep        ""
+-grouping             0;0
++copy "es_ES"
+ END LC_NUMERIC
+ LC_TIME
+ abday   "<U0064><U006F><U006D>";"<U006C><U0075><U006E>";/
+-        "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
+-        "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
+-        "<U0073><U00E1><U0062>"
++      "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
++      "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
++      "<U0073><U00E1><U0062>"
+ day     "<U0064><U006F><U006D><U0069><U006E><U0067><U006F>";/
+-        "<U006C><U0075><U006E><U0065><U0073>";/
+-        "<U006D><U0061><U0072><U0074><U0065><U0073>";/
+-        "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
+-        "<U006A><U0075><U0065><U0076><U0065><U0073>";/
+-        "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
+-        "<U0073><U00E1><U0062><U0061><U0064><U006F>"
++      "<U006C><U0075><U006E><U0065><U0073>";/
++      "<U006D><U0061><U0072><U0074><U0065><U0073>";/
++      "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
++      "<U006A><U0075><U0065><U0076><U0065><U0073>";/
++      "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
++      "<U0073><U00E1><U0062><U0061><U0064><U006F>"
+ abmon   "<U0065><U006E><U0065>";"<U0066><U0065><U0062>";/
+-        "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
+-        "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
+-        "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
+-        "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
+-        "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
++      "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
++      "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
++      "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
++      "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
++      "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
+ mon     "<U0065><U006E><U0065><U0072><U006F>";/
+-        "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
+-        "<U006D><U0061><U0072><U007A><U006F>";/
+-        "<U0061><U0062><U0072><U0069><U006C>";/
+-        "<U006D><U0061><U0079><U006F>";/
+-        "<U006A><U0075><U006E><U0069><U006F>";/
+-        "<U006A><U0075><U006C><U0069><U006F>";/
+-        "<U0061><U0067><U006F><U0073><U0074><U006F>";/
+-        "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
+-        "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
++      "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
++      "<U006D><U0061><U0072><U007A><U006F>";/
++      "<U0061><U0062><U0072><U0069><U006C>";/
++      "<U006D><U0061><U0079><U006F>";/
++      "<U006A><U0075><U006E><U0069><U006F>";/
++      "<U006A><U0075><U006C><U0069><U006F>";/
++      "<U0061><U0067><U006F><U0073><U0074><U006F>";/
++      "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
++      "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
++      "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
++      "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
+ d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+ d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
+ t_fmt   "<U0025><U0054>"
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_PE
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_PE
++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_PE
+@@ -56,8 +56,7 @@ copy "es_ES"
+ END LC_CTYPE
+ LC_MESSAGES
+-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>"
+-noexpr  "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
++copy "es_ES"
+ END LC_MESSAGES
+ LC_MONETARY
+@@ -79,41 +78,39 @@ n_sign_posn          1
+ END LC_MONETARY
+ LC_NUMERIC
+-decimal_point        "<U002E>"
+-thousands_sep        ""
+-grouping             0;0
++copy "es_ES"
+ END LC_NUMERIC
+ LC_TIME
+ abday   "<U0064><U006F><U006D>";"<U006C><U0075><U006E>";/
+-        "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
+-        "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
+-        "<U0073><U00E1><U0062>"
++      "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
++      "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
++      "<U0073><U00E1><U0062>"
+ day     "<U0064><U006F><U006D><U0069><U006E><U0067><U006F>";/
+-        "<U006C><U0075><U006E><U0065><U0073>";/
+-        "<U006D><U0061><U0072><U0074><U0065><U0073>";/
+-        "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
+-        "<U006A><U0075><U0065><U0076><U0065><U0073>";/
+-        "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
+-        "<U0073><U00E1><U0062><U0061><U0064><U006F>"
++      "<U006C><U0075><U006E><U0065><U0073>";/
++      "<U006D><U0061><U0072><U0074><U0065><U0073>";/
++      "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
++      "<U006A><U0075><U0065><U0076><U0065><U0073>";/
++      "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
++      "<U0073><U00E1><U0062><U0061><U0064><U006F>"
+ abmon   "<U0065><U006E><U0065>";"<U0066><U0065><U0062>";/
+-        "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
+-        "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
+-        "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
+-        "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
+-        "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
++      "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
++      "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
++      "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
++      "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
++      "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
+ mon     "<U0065><U006E><U0065><U0072><U006F>";/
+-        "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
+-        "<U006D><U0061><U0072><U007A><U006F>";/
+-        "<U0061><U0062><U0072><U0069><U006C>";/
+-        "<U006D><U0061><U0079><U006F>";/
+-        "<U006A><U0075><U006E><U0069><U006F>";/
+-        "<U006A><U0075><U006C><U0069><U006F>";/
+-        "<U0061><U0067><U006F><U0073><U0074><U006F>";/
+-        "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
+-        "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
++      "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
++      "<U006D><U0061><U0072><U007A><U006F>";/
++      "<U0061><U0062><U0072><U0069><U006C>";/
++      "<U006D><U0061><U0079><U006F>";/
++      "<U006A><U0075><U006E><U0069><U006F>";/
++      "<U006A><U0075><U006C><U0069><U006F>";/
++      "<U0061><U0067><U006F><U0073><U0074><U006F>";/
++      "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
++      "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
++      "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
++      "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
+ d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+ d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
+ t_fmt   "<U0025><U0054>"
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_PR
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_PR
++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_PR
+@@ -47,8 +47,7 @@ copy "es_ES"
+ END LC_CTYPE
+ LC_MESSAGES
+-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>"
+-noexpr  "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
++copy "es_ES"
+ END LC_MESSAGES
+ LC_MONETARY
+@@ -70,41 +69,39 @@ n_sign_posn          1
+ END LC_MONETARY
+ LC_NUMERIC
+-decimal_point        "<U002E>"
+-thousands_sep        ""
+-grouping             0;0
++copy "es_ES"
+ END LC_NUMERIC
+ LC_TIME
+ abday   "<U0064><U006F><U006D>";"<U006C><U0075><U006E>";/
+-        "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
+-        "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
+-        "<U0073><U00E1><U0062>"
++      "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
++      "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
++      "<U0073><U00E1><U0062>"
+ day     "<U0064><U006F><U006D><U0069><U006E><U0067><U006F>";/
+-        "<U006C><U0075><U006E><U0065><U0073>";/
+-        "<U006D><U0061><U0072><U0074><U0065><U0073>";/
+-        "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
+-        "<U006A><U0075><U0065><U0076><U0065><U0073>";/
+-        "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
+-        "<U0073><U00E1><U0062><U0061><U0064><U006F>"
++      "<U006C><U0075><U006E><U0065><U0073>";/
++      "<U006D><U0061><U0072><U0074><U0065><U0073>";/
++      "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
++      "<U006A><U0075><U0065><U0076><U0065><U0073>";/
++      "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
++      "<U0073><U00E1><U0062><U0061><U0064><U006F>"
+ abmon   "<U0065><U006E><U0065>";"<U0066><U0065><U0062>";/
+-        "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
+-        "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
+-        "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
+-        "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
+-        "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
++      "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
++      "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
++      "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
++      "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
++      "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
+ mon     "<U0065><U006E><U0065><U0072><U006F>";/
+-        "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
+-        "<U006D><U0061><U0072><U007A><U006F>";/
+-        "<U0061><U0062><U0072><U0069><U006C>";/
+-        "<U006D><U0061><U0079><U006F>";/
+-        "<U006A><U0075><U006E><U0069><U006F>";/
+-        "<U006A><U0075><U006C><U0069><U006F>";/
+-        "<U0061><U0067><U006F><U0073><U0074><U006F>";/
+-        "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
+-        "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
++      "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
++      "<U006D><U0061><U0072><U007A><U006F>";/
++      "<U0061><U0062><U0072><U0069><U006C>";/
++      "<U006D><U0061><U0079><U006F>";/
++      "<U006A><U0075><U006E><U0069><U006F>";/
++      "<U006A><U0075><U006C><U0069><U006F>";/
++      "<U0061><U0067><U006F><U0073><U0074><U006F>";/
++      "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
++      "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
++      "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
++      "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
+ d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+ d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
+ t_fmt   "<U0025><U0054>"
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_PY
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_PY
++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_PY
+@@ -56,8 +56,7 @@ copy "es_ES"
+ END LC_CTYPE
+ LC_MESSAGES
+-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>"
+-noexpr  "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
++copy "es_ES"
+ END LC_MESSAGES
+ LC_MONETARY
+@@ -79,41 +78,39 @@ n_sign_posn          1
+ END LC_MONETARY
+ LC_NUMERIC
+-decimal_point        "<U002C>"
+-thousands_sep        ""
+-grouping             0;0
++copy "es_ES"
+ END LC_NUMERIC
+ LC_TIME
+ abday   "<U0064><U006F><U006D>";"<U006C><U0075><U006E>";/
+-        "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
+-        "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
+-        "<U0073><U00E1><U0062>"
++      "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
++      "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
++      "<U0073><U00E1><U0062>"
+ day     "<U0064><U006F><U006D><U0069><U006E><U0067><U006F>";/
+-        "<U006C><U0075><U006E><U0065><U0073>";/
+-        "<U006D><U0061><U0072><U0074><U0065><U0073>";/
+-        "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
+-        "<U006A><U0075><U0065><U0076><U0065><U0073>";/
+-        "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
+-        "<U0073><U00E1><U0062><U0061><U0064><U006F>"
++      "<U006C><U0075><U006E><U0065><U0073>";/
++      "<U006D><U0061><U0072><U0074><U0065><U0073>";/
++      "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
++      "<U006A><U0075><U0065><U0076><U0065><U0073>";/
++      "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
++      "<U0073><U00E1><U0062><U0061><U0064><U006F>"
+ abmon   "<U0065><U006E><U0065>";"<U0066><U0065><U0062>";/
+-        "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
+-        "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
+-        "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
+-        "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
+-        "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
++      "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
++      "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
++      "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
++      "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
++      "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
+ mon     "<U0065><U006E><U0065><U0072><U006F>";/
+-        "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
+-        "<U006D><U0061><U0072><U007A><U006F>";/
+-        "<U0061><U0062><U0072><U0069><U006C>";/
+-        "<U006D><U0061><U0079><U006F>";/
+-        "<U006A><U0075><U006E><U0069><U006F>";/
+-        "<U006A><U0075><U006C><U0069><U006F>";/
+-        "<U0061><U0067><U006F><U0073><U0074><U006F>";/
+-        "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
+-        "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
++      "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
++      "<U006D><U0061><U0072><U007A><U006F>";/
++      "<U0061><U0062><U0072><U0069><U006C>";/
++      "<U006D><U0061><U0079><U006F>";/
++      "<U006A><U0075><U006E><U0069><U006F>";/
++      "<U006A><U0075><U006C><U0069><U006F>";/
++      "<U0061><U0067><U006F><U0073><U0074><U006F>";/
++      "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
++      "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
++      "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
++      "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
+ d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+ d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
+ t_fmt   "<U0025><U0054>"
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_SV
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_SV
++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_SV
+@@ -56,8 +56,7 @@ copy "es_ES"
+ END LC_CTYPE
+ LC_MESSAGES
+-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>"
+-noexpr  "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
++copy "es_ES"
+ END LC_MESSAGES
+ LC_MONETARY
+@@ -79,9 +78,7 @@ n_sign_posn          1
+ END LC_MONETARY
+ LC_NUMERIC
+-decimal_point        "<U002E>"
+-thousands_sep        ""
+-grouping             0;0
++copy "es_ES"
+ END LC_NUMERIC
+ LC_TIME
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_UY
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_UY
++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_UY
+@@ -56,8 +56,7 @@ copy "es_ES"
+ END LC_CTYPE
+ LC_MESSAGES
+-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>"
+-noexpr  "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
++copy "es_ES"
+ END LC_MESSAGES
+ LC_MONETARY
+@@ -79,41 +78,39 @@ n_sign_posn          1
+ END LC_MONETARY
+ LC_NUMERIC
+-decimal_point        "<U002C>"
+-thousands_sep        ""
+-grouping             0;0
++copy "es_ES"
+ END LC_NUMERIC
+ LC_TIME
+ abday   "<U0064><U006F><U006D>";"<U006C><U0075><U006E>";/
+-        "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
+-        "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
+-        "<U0073><U00E1><U0062>"
++      "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
++      "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
++      "<U0073><U00E1><U0062>"
+ day     "<U0064><U006F><U006D><U0069><U006E><U0067><U006F>";/
+-        "<U006C><U0075><U006E><U0065><U0073>";/
+-        "<U006D><U0061><U0072><U0074><U0065><U0073>";/
+-        "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
+-        "<U006A><U0075><U0065><U0076><U0065><U0073>";/
+-        "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
+-        "<U0073><U00E1><U0062><U0061><U0064><U006F>"
++      "<U006C><U0075><U006E><U0065><U0073>";/
++      "<U006D><U0061><U0072><U0074><U0065><U0073>";/
++      "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
++      "<U006A><U0075><U0065><U0076><U0065><U0073>";/
++      "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
++      "<U0073><U00E1><U0062><U0061><U0064><U006F>"
+ abmon   "<U0065><U006E><U0065>";"<U0066><U0065><U0062>";/
+-        "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
+-        "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
+-        "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
+-        "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
+-        "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
++      "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
++      "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
++      "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
++      "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
++      "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
+ mon     "<U0065><U006E><U0065><U0072><U006F>";/
+-        "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
+-        "<U006D><U0061><U0072><U007A><U006F>";/
+-        "<U0061><U0062><U0072><U0069><U006C>";/
+-        "<U006D><U0061><U0079><U006F>";/
+-        "<U006A><U0075><U006E><U0069><U006F>";/
+-        "<U006A><U0075><U006C><U0069><U006F>";/
+-        "<U0061><U0067><U006F><U0073><U0074><U006F>";/
+-        "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
+-        "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
++      "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
++      "<U006D><U0061><U0072><U007A><U006F>";/
++      "<U0061><U0062><U0072><U0069><U006C>";/
++      "<U006D><U0061><U0079><U006F>";/
++      "<U006A><U0075><U006E><U0069><U006F>";/
++      "<U006A><U0075><U006C><U0069><U006F>";/
++      "<U0061><U0067><U006F><U0073><U0074><U006F>";/
++      "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
++      "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
++      "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
++      "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
+ d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+ d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
+ t_fmt   "<U0025><U0054>"
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_VE
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_VE
++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_VE
+@@ -56,8 +56,7 @@ copy "es_ES"
+ END LC_CTYPE
+ LC_MESSAGES
+-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>"
+-noexpr  "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
++copy "es_ES"
+ END LC_MESSAGES
+ LC_MONETARY
+@@ -79,41 +78,39 @@ n_sign_posn          1
+ END LC_MONETARY
+ LC_NUMERIC
+-decimal_point        "<U002C>"
+-thousands_sep        ""
+-grouping             0;0
++copy "es_ES"
+ END LC_NUMERIC
+ LC_TIME
+ abday   "<U0064><U006F><U006D>";"<U006C><U0075><U006E>";/
+-        "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
+-        "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
+-        "<U0073><U00E1><U0062>"
++      "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
++      "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
++      "<U0073><U00E1><U0062>"
+ day     "<U0064><U006F><U006D><U0069><U006E><U0067><U006F>";/
+-        "<U006C><U0075><U006E><U0065><U0073>";/
+-        "<U006D><U0061><U0072><U0074><U0065><U0073>";/
+-        "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
+-        "<U006A><U0075><U0065><U0076><U0065><U0073>";/
+-        "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
+-        "<U0073><U00E1><U0062><U0061><U0064><U006F>"
++      "<U006C><U0075><U006E><U0065><U0073>";/
++      "<U006D><U0061><U0072><U0074><U0065><U0073>";/
++      "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
++      "<U006A><U0075><U0065><U0076><U0065><U0073>";/
++      "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
++      "<U0073><U00E1><U0062><U0061><U0064><U006F>"
+ abmon   "<U0065><U006E><U0065>";"<U0066><U0065><U0062>";/
+-        "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
+-        "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
+-        "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
+-        "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
+-        "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
++      "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
++      "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
++      "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
++      "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
++      "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
+ mon     "<U0065><U006E><U0065><U0072><U006F>";/
+-        "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
+-        "<U006D><U0061><U0072><U007A><U006F>";/
+-        "<U0061><U0062><U0072><U0069><U006C>";/
+-        "<U006D><U0061><U0079><U006F>";/
+-        "<U006A><U0075><U006E><U0069><U006F>";/
+-        "<U006A><U0075><U006C><U0069><U006F>";/
+-        "<U0061><U0067><U006F><U0073><U0074><U006F>";/
+-        "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
+-        "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
++      "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
++      "<U006D><U0061><U0072><U007A><U006F>";/
++      "<U0061><U0062><U0072><U0069><U006C>";/
++      "<U006D><U0061><U0079><U006F>";/
++      "<U006A><U0075><U006E><U0069><U006F>";/
++      "<U006A><U0075><U006C><U0069><U006F>";/
++      "<U0061><U0067><U006F><U0073><U0074><U006F>";/
++      "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
++      "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
++      "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
++      "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
+ d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+ d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
+ t_fmt   "<U0025><U0054>"
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/fr_BE
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/fr_BE
++++ glibc-2.12-2-gc4ccff1/localedata/locales/fr_BE
+@@ -79,7 +79,7 @@ END LC_MONETARY
+ LC_NUMERIC
+ decimal_point             "<U002C>"
+ thousands_sep             "<U002E>"
+-grouping                  0;0
++grouping                  3;3
+ END LC_NUMERIC
+ LC_TIME
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/fr_CA
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/fr_CA
++++ glibc-2.12-2-gc4ccff1/localedata/locales/fr_CA
+@@ -55,8 +55,7 @@ copy "en_CA"
+ END LC_COLLATE
+ LC_MESSAGES
+-yesexpr "<U005E><U005B><U006F><U004F><U0079><U0059><U005D><U002E><U002A>"
+-noexpr  "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
++copy "fr_FR"
+ END LC_MESSAGES
+ LC_MONETARY
+@@ -78,41 +77,39 @@ n_sign_posn               0
+ END LC_MONETARY
+ LC_NUMERIC
+-decimal_point             "<U002C>"
+-thousands_sep             "<U0020>"
+-grouping                  0;0
++copy "fr_FR"
+ END LC_NUMERIC
+ LC_TIME
+ abday   "<U0064><U0069><U006D>";"<U006C><U0075><U006E>";/
+-        "<U006D><U0061><U0072>";"<U006D><U0065><U0072>";/
+-        "<U006A><U0065><U0075>";"<U0076><U0065><U006E>";/
+-        "<U0073><U0061><U006D>"
++      "<U006D><U0061><U0072>";"<U006D><U0065><U0072>";/
++      "<U006A><U0065><U0075>";"<U0076><U0065><U006E>";/
++      "<U0073><U0061><U006D>"
+ day     "<U0064><U0069><U006D><U0061><U006E><U0063><U0068><U0065>";/
+-        "<U006C><U0075><U006E><U0064><U0069>";/
+-        "<U006D><U0061><U0072><U0064><U0069>";/
+-        "<U006D><U0065><U0072><U0063><U0072><U0065><U0064><U0069>";/
+-        "<U006A><U0065><U0075><U0064><U0069>";/
+-        "<U0076><U0065><U006E><U0064><U0072><U0065><U0064><U0069>";/
+-        "<U0073><U0061><U006D><U0065><U0064><U0069>"
++      "<U006C><U0075><U006E><U0064><U0069>";/
++      "<U006D><U0061><U0072><U0064><U0069>";/
++      "<U006D><U0065><U0072><U0063><U0072><U0065><U0064><U0069>";/
++      "<U006A><U0065><U0075><U0064><U0069>";/
++      "<U0076><U0065><U006E><U0064><U0072><U0065><U0064><U0069>";/
++      "<U0073><U0061><U006D><U0065><U0064><U0069>"
+ abmon   "<U006A><U0061><U006E>";"<U0066><U00E9><U0076>";/
+-        "<U006D><U0061><U0072>";"<U0061><U0076><U0072>";/
+-        "<U006D><U0061><U0069>";"<U006A><U0075><U006E>";/
+-        "<U006A><U0075><U0069>";"<U0061><U006F><U00FB>";/
+-        "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
+-        "<U006E><U006F><U0076>";"<U0064><U00E9><U0063>"
++      "<U006D><U0061><U0072>";"<U0061><U0076><U0072>";/
++      "<U006D><U0061><U0069>";"<U006A><U0075><U006E>";/
++      "<U006A><U0075><U0069>";"<U0061><U006F><U00FB>";/
++      "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
++      "<U006E><U006F><U0076>";"<U0064><U00E9><U0063>"
+ mon     "<U006A><U0061><U006E><U0076><U0069><U0065><U0072>";/
+-        "<U0066><U00E9><U0076><U0072><U0069><U0065><U0072>";/
+-        "<U006D><U0061><U0072><U0073>";/
+-        "<U0061><U0076><U0072><U0069><U006C>";/
+-        "<U006D><U0061><U0069>";/
+-        "<U006A><U0075><U0069><U006E>";/
+-        "<U006A><U0075><U0069><U006C><U006C><U0065><U0074>";/
+-        "<U0061><U006F><U00FB><U0074>";/
+-        "<U0073><U0065><U0070><U0074><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U006F><U0063><U0074><U006F><U0062><U0072><U0065>";/
+-        "<U006E><U006F><U0076><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U0064><U00E9><U0063><U0065><U006D><U0062><U0072><U0065>"
++      "<U0066><U00E9><U0076><U0072><U0069><U0065><U0072>";/
++      "<U006D><U0061><U0072><U0073>";/
++      "<U0061><U0076><U0072><U0069><U006C>";/
++      "<U006D><U0061><U0069>";/
++      "<U006A><U0075><U0069><U006E>";/
++      "<U006A><U0075><U0069><U006C><U006C><U0065><U0074>";/
++      "<U0061><U006F><U00FB><U0074>";/
++      "<U0073><U0065><U0070><U0074><U0065><U006D><U0062><U0072><U0065>";/
++      "<U006F><U0063><U0074><U006F><U0062><U0072><U0065>";/
++      "<U006E><U006F><U0076><U0065><U006D><U0062><U0072><U0065>";/
++      "<U0064><U00E9><U0063><U0065><U006D><U0062><U0072><U0065>"
+ d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+ d_fmt   "<U0025><U0059><U002D><U0025><U006D><U002D><U0025><U0064>"
+ t_fmt   "<U0025><U0054>"
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/fr_CH
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/fr_CH
++++ glibc-2.12-2-gc4ccff1/localedata/locales/fr_CH
+@@ -64,41 +64,39 @@ copy  "de_CH"
+ END LC_MONETARY
+ LC_NUMERIC
+-decimal_point             "<U002C>"
+-thousands_sep             ""
+-grouping                  0;0
++copy "de_CH"
+ END LC_NUMERIC
+ LC_TIME
+ abday   "<U0064><U0069><U006D>";"<U006C><U0075><U006E>";/
+-        "<U006D><U0061><U0072>";"<U006D><U0065><U0072>";/
+-        "<U006A><U0065><U0075>";"<U0076><U0065><U006E>";/
+-        "<U0073><U0061><U006D>"
++      "<U006D><U0061><U0072>";"<U006D><U0065><U0072>";/
++      "<U006A><U0065><U0075>";"<U0076><U0065><U006E>";/
++      "<U0073><U0061><U006D>"
+ day     "<U0064><U0069><U006D><U0061><U006E><U0063><U0068><U0065>";/
+-        "<U006C><U0075><U006E><U0064><U0069>";/
+-        "<U006D><U0061><U0072><U0064><U0069>";/
+-        "<U006D><U0065><U0072><U0063><U0072><U0065><U0064><U0069>";/
+-        "<U006A><U0065><U0075><U0064><U0069>";/
+-        "<U0076><U0065><U006E><U0064><U0072><U0065><U0064><U0069>";/
+-        "<U0073><U0061><U006D><U0065><U0064><U0069>"
++      "<U006C><U0075><U006E><U0064><U0069>";/
++      "<U006D><U0061><U0072><U0064><U0069>";/
++      "<U006D><U0065><U0072><U0063><U0072><U0065><U0064><U0069>";/
++      "<U006A><U0065><U0075><U0064><U0069>";/
++      "<U0076><U0065><U006E><U0064><U0072><U0065><U0064><U0069>";/
++      "<U0073><U0061><U006D><U0065><U0064><U0069>"
+ abmon   "<U006A><U0061><U006E>";"<U0066><U00E9><U0076>";/
+-        "<U006D><U0061><U0072>";"<U0061><U0076><U0072>";/
+-        "<U006D><U0061><U0069>";"<U006A><U0075><U006E>";/
+-        "<U006A><U0075><U0069>";"<U0061><U006F><U00FB>";/
+-        "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
+-        "<U006E><U006F><U0076>";"<U0064><U00E9><U0063>"
++      "<U006D><U0061><U0072>";"<U0061><U0076><U0072>";/
++      "<U006D><U0061><U0069>";"<U006A><U0075><U006E>";/
++      "<U006A><U0075><U0069>";"<U0061><U006F><U00FB>";/
++      "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
++      "<U006E><U006F><U0076>";"<U0064><U00E9><U0063>"
+ mon     "<U006A><U0061><U006E><U0076><U0069><U0065><U0072>";/
+-        "<U0066><U00E9><U0076><U0072><U0069><U0065><U0072>";/
+-        "<U006D><U0061><U0072><U0073>";/
+-        "<U0061><U0076><U0072><U0069><U006C>";/
+-        "<U006D><U0061><U0069>";/
+-        "<U006A><U0075><U0069><U006E>";/
+-        "<U006A><U0075><U0069><U006C><U006C><U0065><U0074>";/
+-        "<U0061><U006F><U00FB><U0074>";/
+-        "<U0073><U0065><U0070><U0074><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U006F><U0063><U0074><U006F><U0062><U0072><U0065>";/
+-        "<U006E><U006F><U0076><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U0064><U00E9><U0063><U0065><U006D><U0062><U0072><U0065>"
++      "<U0066><U00E9><U0076><U0072><U0069><U0065><U0072>";/
++      "<U006D><U0061><U0072><U0073>";/
++      "<U0061><U0076><U0072><U0069><U006C>";/
++      "<U006D><U0061><U0069>";/
++      "<U006A><U0075><U0069><U006E>";/
++      "<U006A><U0075><U0069><U006C><U006C><U0065><U0074>";/
++      "<U0061><U006F><U00FB><U0074>";/
++      "<U0073><U0065><U0070><U0074><U0065><U006D><U0062><U0072><U0065>";/
++      "<U006F><U0063><U0074><U006F><U0062><U0072><U0065>";/
++      "<U006E><U006F><U0076><U0065><U006D><U0062><U0072><U0065>";/
++      "<U0064><U00E9><U0063><U0065><U006D><U0062><U0072><U0065>"
+ d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+ d_fmt   "<U0025><U0064><U002E><U0020><U0025><U006D><U002E><U0020><U0025><U0079>"
+ t_fmt   "<U0025><U0054>"
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/fr_LU
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/fr_LU
++++ glibc-2.12-2-gc4ccff1/localedata/locales/fr_LU
+@@ -78,40 +78,40 @@ END LC_MONETARY
+ LC_NUMERIC
+ decimal_point             "<U002C>"
+-thousands_sep             ""
+-grouping                  0;0
++thousands_sep             "<U0020>"
++grouping                  3;3
+ END LC_NUMERIC
+ LC_TIME
+ abday   "<U0064><U0069><U006D>";"<U006C><U0075><U006E>";/
+-        "<U006D><U0061><U0072>";"<U006D><U0065><U0072>";/
+-        "<U006A><U0065><U0075>";"<U0076><U0065><U006E>";/
+-        "<U0073><U0061><U006D>"
++      "<U006D><U0061><U0072>";"<U006D><U0065><U0072>";/
++      "<U006A><U0065><U0075>";"<U0076><U0065><U006E>";/
++      "<U0073><U0061><U006D>"
+ day     "<U0064><U0069><U006D><U0061><U006E><U0063><U0068><U0065>";/
+-        "<U006C><U0075><U006E><U0064><U0069>";/
+-        "<U006D><U0061><U0072><U0064><U0069>";/
+-        "<U006D><U0065><U0072><U0063><U0072><U0065><U0064><U0069>";/
+-        "<U006A><U0065><U0075><U0064><U0069>";/
+-        "<U0076><U0065><U006E><U0064><U0072><U0065><U0064><U0069>";/
+-        "<U0073><U0061><U006D><U0065><U0064><U0069>"
++      "<U006C><U0075><U006E><U0064><U0069>";/
++      "<U006D><U0061><U0072><U0064><U0069>";/
++      "<U006D><U0065><U0072><U0063><U0072><U0065><U0064><U0069>";/
++      "<U006A><U0065><U0075><U0064><U0069>";/
++      "<U0076><U0065><U006E><U0064><U0072><U0065><U0064><U0069>";/
++      "<U0073><U0061><U006D><U0065><U0064><U0069>"
+ abmon   "<U006A><U0061><U006E>";"<U0066><U00E9><U0076>";/
+-        "<U006D><U0061><U0072>";"<U0061><U0076><U0072>";/
+-        "<U006D><U0061><U0069>";"<U006A><U0075><U006E>";/
+-        "<U006A><U0075><U0069>";"<U0061><U006F><U00FB>";/
+-        "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
+-        "<U006E><U006F><U0076>";"<U0064><U00E9><U0063>"
++      "<U006D><U0061><U0072>";"<U0061><U0076><U0072>";/
++      "<U006D><U0061><U0069>";"<U006A><U0075><U006E>";/
++      "<U006A><U0075><U0069>";"<U0061><U006F><U00FB>";/
++      "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
++      "<U006E><U006F><U0076>";"<U0064><U00E9><U0063>"
+ mon     "<U006A><U0061><U006E><U0076><U0069><U0065><U0072>";/
+-        "<U0066><U00E9><U0076><U0072><U0069><U0065><U0072>";/
+-        "<U006D><U0061><U0072><U0073>";/
+-        "<U0061><U0076><U0072><U0069><U006C>";/
+-        "<U006D><U0061><U0069>";/
+-        "<U006A><U0075><U0069><U006E>";/
+-        "<U006A><U0075><U0069><U006C><U006C><U0065><U0074>";/
+-        "<U0061><U006F><U00FB><U0074>";/
+-        "<U0073><U0065><U0070><U0074><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U006F><U0063><U0074><U006F><U0062><U0072><U0065>";/
+-        "<U006E><U006F><U0076><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U0064><U00E9><U0063><U0065><U006D><U0062><U0072><U0065>"
++      "<U0066><U00E9><U0076><U0072><U0069><U0065><U0072>";/
++      "<U006D><U0061><U0072><U0073>";/
++      "<U0061><U0076><U0072><U0069><U006C>";/
++      "<U006D><U0061><U0069>";/
++      "<U006A><U0075><U0069><U006E>";/
++      "<U006A><U0075><U0069><U006C><U006C><U0065><U0074>";/
++      "<U0061><U006F><U00FB><U0074>";/
++      "<U0073><U0065><U0070><U0074><U0065><U006D><U0062><U0072><U0065>";/
++      "<U006F><U0063><U0074><U006F><U0062><U0072><U0065>";/
++      "<U006E><U006F><U0076><U0065><U006D><U0062><U0072><U0065>";/
++      "<U0064><U00E9><U0063><U0065><U006D><U0062><U0072><U0065>"
+ d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+ d_fmt   "<U0025><U0064><U002E><U0025><U006D><U002E><U0025><U0059>"
+ t_fmt   "<U0025><U0054>"
diff --git a/src/patches/glibc/glibc-rh688980.patch b/src/patches/glibc/glibc-rh688980.patch
new file mode 100644 (file)
index 0000000..ce98926
--- /dev/null
@@ -0,0 +1,20 @@
+2011-05-11  Ulrich Drepper  <drepper@gmail.com>
+
+       [BZ #12625]
+       * misc/mntent_r.c (addmntent): Flush the stream after the output
+
+Index: glibc-2.12-2-gc4ccff1/misc/mntent_r.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/misc/mntent_r.c
++++ glibc-2.12-2-gc4ccff1/misc/mntent_r.c
+@@ -263,8 +263,8 @@ __addmntent (FILE *stream, const struct 
+                  mntcopy.mnt_type,
+                  mntcopy.mnt_opts,
+                  mntcopy.mnt_freq,
+-                 mntcopy.mnt_passno)
+-        < 0 ? 1 : 0);
++                 mntcopy.mnt_passno) < 0
++        || fflush (stream) != 0);
+ }
+ weak_alias (__addmntent, addmntent)
diff --git a/src/patches/glibc/glibc-rh689471.patch b/src/patches/glibc/glibc-rh689471.patch
new file mode 100644 (file)
index 0000000..4c7fc8a
--- /dev/null
@@ -0,0 +1,333 @@
+2011-03-20  H.J. Lu  <hongjiu.lu@intel.com>
+
+       [BZ #12597]
+       * string/test-strncmp.c (do_page_test): New function.
+       (check2): Likewise.
+       (test_main): Call check2.
+       * sysdeps/x86_64/multiarch/strcmp.S: Properly cross page boundary.
+
+Index: glibc-2.12-2-gc4ccff1/string/test-strncmp.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/string/test-strncmp.c
++++ glibc-2.12-2-gc4ccff1/string/test-strncmp.c
+@@ -200,6 +200,27 @@ do_test (size_t align1, size_t align2, s
+ }
+ static void
++do_page_test (size_t offset1, size_t offset2, char *s2)
++{
++  char *s1;
++  int exp_result;
++
++  if (offset1 >= page_size || offset2 >= page_size)
++    return;
++
++  s1 = (char *) (buf1 + offset1);
++  s2 += offset2;
++
++  exp_result= *s1;
++  
++  FOR_EACH_IMPL (impl, 0)
++    {
++      check_result (impl, s1, s2, page_size, -exp_result);
++      check_result (impl, s2, s1, page_size, exp_result);
++    }
++}
++
++static void
+ do_random_tests (void)
+ {
+   size_t i, j, n, align1, align2, pos, len1, len2, size;
+@@ -312,6 +333,25 @@ check1 (void)
+     }
+ }
++static void
++check2 (void)
++{
++  size_t i;
++  char *s1, *s2;
++
++  s1 = (char *) buf1;
++  for (i = 0; i < page_size - 1; i++)
++    s1[i] = 23;
++  s1[i] = 0;
++
++  s2 = strdup (s1);
++
++  for (i = 0; i < 64; ++i)
++    do_page_test (3990 + i, 2635, s2);
++
++  free (s2);
++}
++
+ int
+ test_main (void)
+ {
+@@ -320,6 +360,7 @@ test_main (void)
+   test_init ();
+   check1 ();
++  check2 ();
+   printf ("%23s", "");
+   FOR_EACH_IMPL (impl, 0)
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strcmp.S
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/multiarch/strcmp.S
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strcmp.S
+@@ -452,6 +452,7 @@ LABEL(loop_ashr_1_use_sse4_2):
+       add     $16, %r10
+       jg      LABEL(nibble_ashr_1_use_sse4_2)
++LABEL(nibble_ashr_1_use_sse4_2_restart):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $1, -16(%rdi, %rdx), %xmm0
+ # if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+@@ -499,7 +500,7 @@ LABEL(nibble_ashr_1_use_sse4_2):
+       jae     LABEL(nibble_ashr_use_sse4_2_exit)
+ # endif
+       cmp     $14, %ecx
+-      ja      LABEL(loop_ashr_1_use_sse4_2)
++      ja      LABEL(nibble_ashr_1_use_sse4_2_restart)
+       jmp     LABEL(nibble_ashr_use_sse4_2_exit)
+@@ -544,6 +545,7 @@ LABEL(loop_ashr_2_use_sse4_2):
+       add     $16, %r10
+       jg      LABEL(nibble_ashr_2_use_sse4_2)
++LABEL(nibble_ashr_2_use_sse4_2_restart):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $2, -16(%rdi, %rdx), %xmm0
+ # if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+@@ -591,7 +593,7 @@ LABEL(nibble_ashr_2_use_sse4_2):
+       jae     LABEL(nibble_ashr_use_sse4_2_exit)
+ # endif
+       cmp     $13, %ecx
+-      ja      LABEL(loop_ashr_2_use_sse4_2)
++      ja      LABEL(nibble_ashr_2_use_sse4_2_restart)
+       jmp     LABEL(nibble_ashr_use_sse4_2_exit)
+@@ -636,6 +638,7 @@ LABEL(loop_ashr_3_use_sse4_2):
+       add     $16, %r10
+       jg      LABEL(nibble_ashr_3_use_sse4_2)
++LABEL(nibble_ashr_3_use_sse4_2_restart):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $3, -16(%rdi, %rdx), %xmm0
+ # if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+@@ -683,7 +686,7 @@ LABEL(nibble_ashr_3_use_sse4_2):
+       jae     LABEL(nibble_ashr_use_sse4_2_exit)
+ # endif
+       cmp     $12, %ecx
+-      ja      LABEL(loop_ashr_3_use_sse4_2)
++      ja      LABEL(nibble_ashr_3_use_sse4_2_restart)
+       jmp     LABEL(nibble_ashr_use_sse4_2_exit)
+@@ -729,6 +732,7 @@ LABEL(loop_ashr_4_use_sse4_2):
+       add     $16, %r10
+       jg      LABEL(nibble_ashr_4_use_sse4_2)
++LABEL(nibble_ashr_4_use_sse4_2_restart):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $4, -16(%rdi, %rdx), %xmm0
+ # if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+@@ -776,7 +780,7 @@ LABEL(nibble_ashr_4_use_sse4_2):
+       jae     LABEL(nibble_ashr_use_sse4_2_exit)
+ # endif
+       cmp     $11, %ecx
+-      ja      LABEL(loop_ashr_4_use_sse4_2)
++      ja      LABEL(nibble_ashr_4_use_sse4_2_restart)
+       jmp     LABEL(nibble_ashr_use_sse4_2_exit)
+@@ -822,6 +826,7 @@ LABEL(loop_ashr_5_use_sse4_2):
+       add     $16, %r10
+       jg      LABEL(nibble_ashr_5_use_sse4_2)
++LABEL(nibble_ashr_5_use_sse4_2_restart):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $5, -16(%rdi, %rdx), %xmm0
+ # if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+@@ -870,7 +875,7 @@ LABEL(nibble_ashr_5_use_sse4_2):
+       jae     LABEL(nibble_ashr_use_sse4_2_exit)
+ # endif
+       cmp     $10, %ecx
+-      ja      LABEL(loop_ashr_5_use_sse4_2)
++      ja      LABEL(nibble_ashr_5_use_sse4_2_restart)
+       jmp     LABEL(nibble_ashr_use_sse4_2_exit)
+@@ -916,6 +921,7 @@ LABEL(loop_ashr_6_use_sse4_2):
+       add     $16, %r10
+       jg      LABEL(nibble_ashr_6_use_sse4_2)
++LABEL(nibble_ashr_6_use_sse4_2_restart):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $6, -16(%rdi, %rdx), %xmm0
+ # if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+@@ -963,7 +969,7 @@ LABEL(nibble_ashr_6_use_sse4_2):
+       jae     LABEL(nibble_ashr_use_sse4_2_exit)
+ # endif
+       cmp     $9, %ecx
+-      ja      LABEL(loop_ashr_6_use_sse4_2)
++      ja      LABEL(nibble_ashr_6_use_sse4_2_restart)
+       jmp     LABEL(nibble_ashr_use_sse4_2_exit)
+@@ -1009,6 +1015,7 @@ LABEL(loop_ashr_7_use_sse4_2):
+       add     $16, %r10
+       jg      LABEL(nibble_ashr_7_use_sse4_2)
++LABEL(nibble_ashr_7_use_sse4_2_restart):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $7, -16(%rdi, %rdx), %xmm0
+ # if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+@@ -1056,7 +1063,7 @@ LABEL(nibble_ashr_7_use_sse4_2):
+       jae     LABEL(nibble_ashr_use_sse4_2_exit)
+ # endif
+       cmp     $8, %ecx
+-      ja      LABEL(loop_ashr_7_use_sse4_2)
++      ja      LABEL(nibble_ashr_7_use_sse4_2_restart)
+       jmp     LABEL(nibble_ashr_use_sse4_2_exit)
+@@ -1102,6 +1109,7 @@ LABEL(loop_ashr_8_use_sse4_2):
+       add     $16, %r10
+       jg      LABEL(nibble_ashr_8_use_sse4_2)
++LABEL(nibble_ashr_8_use_sse4_2_restart):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $8, -16(%rdi, %rdx), %xmm0
+ # if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+@@ -1149,7 +1157,7 @@ LABEL(nibble_ashr_8_use_sse4_2):
+       jae     LABEL(nibble_ashr_use_sse4_2_exit)
+ # endif
+       cmp     $7, %ecx
+-      ja      LABEL(loop_ashr_8_use_sse4_2)
++      ja      LABEL(nibble_ashr_8_use_sse4_2_restart)
+       jmp     LABEL(nibble_ashr_use_sse4_2_exit)
+@@ -1195,6 +1203,7 @@ LABEL(loop_ashr_9_use_sse4_2):
+       add     $16, %r10
+       jg      LABEL(nibble_ashr_9_use_sse4_2)
++LABEL(nibble_ashr_9_use_sse4_2_restart):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $9, -16(%rdi, %rdx), %xmm0
+@@ -1243,7 +1252,7 @@ LABEL(nibble_ashr_9_use_sse4_2):
+       jae     LABEL(nibble_ashr_use_sse4_2_exit)
+ # endif
+       cmp     $6, %ecx
+-      ja      LABEL(loop_ashr_9_use_sse4_2)
++      ja      LABEL(nibble_ashr_9_use_sse4_2_restart)
+       jmp     LABEL(nibble_ashr_use_sse4_2_exit)
+@@ -1289,6 +1298,7 @@ LABEL(loop_ashr_10_use_sse4_2):
+       add     $16, %r10
+       jg      LABEL(nibble_ashr_10_use_sse4_2)
++LABEL(nibble_ashr_10_use_sse4_2_restart):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $10, -16(%rdi, %rdx), %xmm0
+ # if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+@@ -1336,7 +1346,7 @@ LABEL(nibble_ashr_10_use_sse4_2):
+       jae     LABEL(nibble_ashr_use_sse4_2_exit)
+ # endif
+       cmp     $5, %ecx
+-      ja      LABEL(loop_ashr_10_use_sse4_2)
++      ja      LABEL(nibble_ashr_10_use_sse4_2_restart)
+       jmp     LABEL(nibble_ashr_use_sse4_2_exit)
+@@ -1382,6 +1392,7 @@ LABEL(loop_ashr_11_use_sse4_2):
+       add     $16, %r10
+       jg      LABEL(nibble_ashr_11_use_sse4_2)
++LABEL(nibble_ashr_11_use_sse4_2_restart):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $11, -16(%rdi, %rdx), %xmm0
+ # if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+@@ -1429,7 +1440,7 @@ LABEL(nibble_ashr_11_use_sse4_2):
+       jae     LABEL(nibble_ashr_use_sse4_2_exit)
+ # endif
+       cmp     $4, %ecx
+-      ja      LABEL(loop_ashr_11_use_sse4_2)
++      ja      LABEL(nibble_ashr_11_use_sse4_2_restart)
+       jmp     LABEL(nibble_ashr_use_sse4_2_exit)
+@@ -1475,6 +1486,7 @@ LABEL(loop_ashr_12_use_sse4_2):
+       add     $16, %r10
+       jg      LABEL(nibble_ashr_12_use_sse4_2)
++LABEL(nibble_ashr_12_use_sse4_2_restart):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $12, -16(%rdi, %rdx), %xmm0
+ # if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+@@ -1522,7 +1534,7 @@ LABEL(nibble_ashr_12_use_sse4_2):
+       jae     LABEL(nibble_ashr_use_sse4_2_exit)
+ # endif
+       cmp     $3, %ecx
+-      ja      LABEL(loop_ashr_12_use_sse4_2)
++      ja      LABEL(nibble_ashr_12_use_sse4_2_restart)
+       jmp     LABEL(nibble_ashr_use_sse4_2_exit)
+@@ -1569,6 +1581,7 @@ LABEL(loop_ashr_13_use_sse4_2):
+       add     $16, %r10
+       jg      LABEL(nibble_ashr_13_use_sse4_2)
++LABEL(nibble_ashr_13_use_sse4_2_restart):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $13, -16(%rdi, %rdx), %xmm0
+ # if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+@@ -1616,7 +1629,7 @@ LABEL(nibble_ashr_13_use_sse4_2):
+       jae     LABEL(nibble_ashr_use_sse4_2_exit)
+ # endif
+       cmp     $2, %ecx
+-      ja      LABEL(loop_ashr_13_use_sse4_2)
++      ja      LABEL(nibble_ashr_13_use_sse4_2_restart)
+       jmp     LABEL(nibble_ashr_use_sse4_2_exit)
+@@ -1663,6 +1676,7 @@ LABEL(loop_ashr_14_use_sse4_2):
+       add     $16, %r10
+       jg      LABEL(nibble_ashr_14_use_sse4_2)
++LABEL(nibble_ashr_14_use_sse4_2_restart):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $14, -16(%rdi, %rdx), %xmm0
+ # if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+@@ -1710,7 +1724,7 @@ LABEL(nibble_ashr_14_use_sse4_2):
+       jae     LABEL(nibble_ashr_use_sse4_2_exit)
+ # endif
+       cmp     $1, %ecx
+-      ja      LABEL(loop_ashr_14_use_sse4_2)
++      ja      LABEL(nibble_ashr_14_use_sse4_2_restart)
+       jmp     LABEL(nibble_ashr_use_sse4_2_exit)
+@@ -1759,6 +1773,7 @@ LABEL(loop_ashr_15_use_sse4_2):
+       add     $16, %r10
+       jg      LABEL(nibble_ashr_15_use_sse4_2)
++LABEL(nibble_ashr_15_use_sse4_2_restart):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $15, -16(%rdi, %rdx), %xmm0
+ # if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+@@ -1806,7 +1821,7 @@ LABEL(nibble_ashr_15_use_sse4_2):
+       jae     LABEL(nibble_ashr_use_sse4_2_exit)
+ # endif
+       cmp     $0, %ecx
+-      ja      LABEL(loop_ashr_15_use_sse4_2)
++      ja      LABEL(nibble_ashr_15_use_sse4_2_restart)
+ LABEL(nibble_ashr_use_sse4_2_exit):
+ # if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
diff --git a/src/patches/glibc/glibc-rh692177.patch b/src/patches/glibc/glibc-rh692177.patch
new file mode 100644 (file)
index 0000000..1036769
--- /dev/null
@@ -0,0 +1,137 @@
+2011-03-22  Ulrich Drepper  <drepper@gmail.com>
+
+       * sysdeps/unix/sysv/linux/i386/sysconf.c (intel_check_word): Increment
+       round counter.
+       * sysdeps/x86_64/cacheinfo.c (intel_check_word): Likewise.
+
+2011-03-20  Ulrich Drepper  <drepper@gmail.com>
+
+       [BZ #12587]
+       * sysdeps/unix/sysv/linux/i386/sysconf.c (intel_check_word):
+       Handle cache information in CPU leaf 4.
+       * sysdeps/x86_64/cacheinfo.c (intel_check_word): Likewise.
+
+Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/i386/sysconf.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/i386/sysconf.c
++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/i386/sysconf.c
+@@ -186,6 +186,57 @@ intel_check_word (int name, unsigned int
+           /* No need to look further.  */
+           break;
+       }
++      else if (byte == 0xff)
++      {
++        /* CPUID leaf 0x4 contains all the information.  We need to
++           iterate over it.  */
++        unsigned int eax;
++        unsigned int ebx;
++        unsigned int ecx;
++        unsigned int edx;
++
++        unsigned int round = 0;
++        while (1)
++          {
++            asm volatile ("xchgl %%ebx, %1; cpuid; xchgl %%ebx, %1"
++                          : "=a" (eax), "=r" (ebx), "=c" (ecx), "=d" (edx)
++                          : "0" (4), "2" (round));
++
++            enum { null = 0, data = 1, inst = 2, uni = 3 } type = eax & 0x1f;
++            if (type == null)
++              /* That was the end.  */
++              break;
++
++            unsigned int level = (eax >> 5) & 0x7;
++
++            if ((level == 1 && type == data
++                 && folded_rel_name == M(_SC_LEVEL1_DCACHE_SIZE))
++                || (level == 1 && type == inst
++                    && folded_rel_name == M(_SC_LEVEL1_ICACHE_SIZE))
++                || (level == 2 && folded_rel_name == M(_SC_LEVEL2_CACHE_SIZE))
++                || (level == 3 && folded_rel_name == M(_SC_LEVEL3_CACHE_SIZE))
++                || (level == 4 && folded_rel_name == M(_SC_LEVEL4_CACHE_SIZE)))
++              {
++                unsigned int offset = M(name) - folded_rel_name;
++
++                if (offset == 0)
++                  /* Cache size.  */
++                  return (((ebx >> 22) + 1)
++                          * (((ebx >> 12) & 0x3ff) + 1)
++                          * ((ebx & 0xfff) + 1)
++                          * (ecx + 1));
++                if (offset == 1)
++                  return (ebx >> 22) + 1;
++
++                assert (offset == 2);
++                return (ebx & 0xfff) + 1;
++              }
++
++            ++round;
++          }
++        /* There is no other cache information anywhere else.  */
++        break;
++      }
+       else
+       {
+         if (byte == 0x49 && folded_rel_name == M(_SC_LEVEL3_CACHE_SIZE))
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/cacheinfo.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/cacheinfo.c
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/cacheinfo.c
+@@ -181,6 +181,57 @@ intel_check_word (int name, unsigned int
+           /* No need to look further.  */
+           break;
+       }
++      else if (byte == 0xff)
++      {
++        /* CPUID leaf 0x4 contains all the information.  We need to
++           iterate over it.  */
++        unsigned int eax;
++        unsigned int ebx;
++        unsigned int ecx;
++        unsigned int edx;
++
++        unsigned int round = 0;
++        while (1)
++          {
++            asm volatile ("xchgl %%ebx, %1; cpuid; xchgl %%ebx, %1"
++                          : "=a" (eax), "=r" (ebx), "=c" (ecx), "=d" (edx)
++                          : "0" (4), "2" (round));
++
++            enum { null = 0, data = 1, inst = 2, uni = 3 } type = eax & 0x1f;
++            if (type == null)
++              /* That was the end.  */
++              break;
++
++            unsigned int level = (eax >> 5) & 0x7;
++
++            if ((level == 1 && type == data
++                 && folded_rel_name == M(_SC_LEVEL1_DCACHE_SIZE))
++                || (level == 1 && type == inst
++                    && folded_rel_name == M(_SC_LEVEL1_ICACHE_SIZE))
++                || (level == 2 && folded_rel_name == M(_SC_LEVEL2_CACHE_SIZE))
++                || (level == 3 && folded_rel_name == M(_SC_LEVEL3_CACHE_SIZE))
++                || (level == 4 && folded_rel_name == M(_SC_LEVEL4_CACHE_SIZE)))
++              {
++                unsigned int offset = M(name) - folded_rel_name;
++
++                if (offset == 0)
++                  /* Cache size.  */
++                  return (((ebx >> 22) + 1)
++                          * (((ebx >> 12) & 0x3ff) + 1)
++                          * ((ebx & 0xfff) + 1)
++                          * (ecx + 1));
++                if (offset == 1)
++                  return (ebx >> 22) + 1;
++
++                assert (offset == 2);
++                return (ebx & 0xfff) + 1;
++              }
++
++            ++round;
++          }
++        /* There is no other cache information anywhere else.  */
++        break;
++      }
+       else
+       {
+         if (byte == 0x49 && folded_rel_name == M(_SC_LEVEL3_CACHE_SIZE))
diff --git a/src/patches/glibc/glibc-rh692838.patch b/src/patches/glibc/glibc-rh692838.patch
new file mode 100644 (file)
index 0000000..aa2adf1
--- /dev/null
@@ -0,0 +1,6165 @@
+2011-05-09  Ulrich Drepper  <drepper@gmail.com>
+
+       [BZ #12541]
+       * locales/ar_IN: Update currency_symbol.
+       * locales/as_IN: Likewise.
+       * locales/bn_IN: Likewise.
+       * locales/en_IN: Likewise.
+       * locales/gu_IN: Likewise.
+       * locales/hi_IN: Likewise.
+       * locales/kn_IN: Likewise.
+       * locales/kok_IN: Likewise.
+       * locales/ks_IN: Likewise.
+       * locales/ml_IN: Likewise.
+       * locales/mr_IN: Likewise.
+       * locales/or_IN: Likewise.
+       * locales/pa_IN: Likewise.
+       * locales/sa_IN: Likewise.
+       * locales/sd_IN: Likewise.
+       * locales/ta_IN: Likewise.
+       * locales/te_IN: Likewise.
+       Patch by pravin.d.s@gmail.com.
+
+2011-05-09  Ulrich Drepper  <drepper@gmail.com>
+
+       [BZ #12711]
+       * locale/C-translit.h.in: Add entry for U20B9.
+       Patch by pravin.d.s@gmail.com.
+
+Index: glibc-2.12-2-gc4ccff1/locale/C-translit.h
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/locale/C-translit.h
++++ glibc-2.12-2-gc4ccff1/locale/C-translit.h
+@@ -1,4 +1,4 @@
+-#define NTRANSLIT 1353
++#define NTRANSLIT 1354
+ static const uint32_t translit_from_idx[] =
+ {
+      0,    2,    4,    6,    8,   10,   12,   14,   16,   18,   20,   22,
+@@ -113,7 +113,7 @@ static const uint32_t translit_from_idx[
+   2616, 2618, 2620, 2622, 2624, 2626, 2628, 2630, 2632, 2634, 2636, 2638,
+   2640, 2642, 2644, 2646, 2648, 2650, 2652, 2654, 2656, 2658, 2660, 2662,
+   2664, 2666, 2668, 2670, 2672, 2674, 2676, 2678, 2680, 2682, 2684, 2686,
+-  2688, 2690, 2692, 2694, 2696, 2698, 2700, 2702, 2704
++  2688, 2690, 2692, 2694, 2696, 2698, 2700, 2702, 2704, 2706
+ };
+ static const wchar_t translit_from_tbl[] =
+   L"\x00a0" L"\0" L"\x00a9" L"\0" L"\x00ab" L"\0" L"\x00ad" L"\0" L"\x00ae"
+@@ -134,334 +134,334 @@ static const wchar_t translit_from_tbl[]
+   L"\0" L"\x2035" L"\0" L"\x2036" L"\0" L"\x2037" L"\0" L"\x2039" L"\0"
+   L"\x203a" L"\0" L"\x203c" L"\0" L"\x2044" L"\0" L"\x2047" L"\0" L"\x2048"
+   L"\0" L"\x2049" L"\0" L"\x205f" L"\0" L"\x2060" L"\0" L"\x2061" L"\0"
+-  L"\x2062" L"\0" L"\x2063" L"\0" L"\x20a8" L"\0" L"\x20ac" L"\0" L"\x2100"
+-  L"\0" L"\x2101" L"\0" L"\x2102" L"\0" L"\x2105" L"\0" L"\x2106" L"\0"
+-  L"\x210a" L"\0" L"\x210b" L"\0" L"\x210c" L"\0" L"\x210d" L"\0" L"\x210e"
+-  L"\0" L"\x2110" L"\0" L"\x2111" L"\0" L"\x2112" L"\0" L"\x2113" L"\0"
+-  L"\x2115" L"\0" L"\x2116" L"\0" L"\x2119" L"\0" L"\x211a" L"\0" L"\x211b"
+-  L"\0" L"\x211c" L"\0" L"\x211d" L"\0" L"\x2121" L"\0" L"\x2122" L"\0"
+-  L"\x2124" L"\0" L"\x2126" L"\0" L"\x2128" L"\0" L"\x212c" L"\0" L"\x212d"
+-  L"\0" L"\x212e" L"\0" L"\x212f" L"\0" L"\x2130" L"\0" L"\x2131" L"\0"
+-  L"\x2133" L"\0" L"\x2134" L"\0" L"\x2139" L"\0" L"\x2145" L"\0" L"\x2146"
+-  L"\0" L"\x2147" L"\0" L"\x2148" L"\0" L"\x2149" L"\0" L"\x2153" L"\0"
+-  L"\x2154" L"\0" L"\x2155" L"\0" L"\x2156" L"\0" L"\x2157" L"\0" L"\x2158"
+-  L"\0" L"\x2159" L"\0" L"\x215a" L"\0" L"\x215b" L"\0" L"\x215c" L"\0"
+-  L"\x215d" L"\0" L"\x215e" L"\0" L"\x215f" L"\0" L"\x2160" L"\0" L"\x2161"
+-  L"\0" L"\x2162" L"\0" L"\x2163" L"\0" L"\x2164" L"\0" L"\x2165" L"\0"
+-  L"\x2166" L"\0" L"\x2167" L"\0" L"\x2168" L"\0" L"\x2169" L"\0" L"\x216a"
+-  L"\0" L"\x216b" L"\0" L"\x216c" L"\0" L"\x216d" L"\0" L"\x216e" L"\0"
+-  L"\x216f" L"\0" L"\x2170" L"\0" L"\x2171" L"\0" L"\x2172" L"\0" L"\x2173"
+-  L"\0" L"\x2174" L"\0" L"\x2175" L"\0" L"\x2176" L"\0" L"\x2177" L"\0"
+-  L"\x2178" L"\0" L"\x2179" L"\0" L"\x217a" L"\0" L"\x217b" L"\0" L"\x217c"
+-  L"\0" L"\x217d" L"\0" L"\x217e" L"\0" L"\x217f" L"\0" L"\x2190" L"\0"
+-  L"\x2192" L"\0" L"\x2194" L"\0" L"\x21d0" L"\0" L"\x21d2" L"\0" L"\x21d4"
+-  L"\0" L"\x2212" L"\0" L"\x2215" L"\0" L"\x2216" L"\0" L"\x2217" L"\0"
+-  L"\x2223" L"\0" L"\x2236" L"\0" L"\x223c" L"\0" L"\x2264" L"\0" L"\x2265"
+-  L"\0" L"\x226a" L"\0" L"\x226b" L"\0" L"\x22d8" L"\0" L"\x22d9" L"\0"
+-  L"\x2400" L"\0" L"\x2401" L"\0" L"\x2402" L"\0" L"\x2403" L"\0" L"\x2404"
+-  L"\0" L"\x2405" L"\0" L"\x2406" L"\0" L"\x2407" L"\0" L"\x2408" L"\0"
+-  L"\x2409" L"\0" L"\x240a" L"\0" L"\x240b" L"\0" L"\x240c" L"\0" L"\x240d"
+-  L"\0" L"\x240e" L"\0" L"\x240f" L"\0" L"\x2410" L"\0" L"\x2411" L"\0"
+-  L"\x2412" L"\0" L"\x2413" L"\0" L"\x2414" L"\0" L"\x2415" L"\0" L"\x2416"
+-  L"\0" L"\x2417" L"\0" L"\x2418" L"\0" L"\x2419" L"\0" L"\x241a" L"\0"
+-  L"\x241b" L"\0" L"\x241c" L"\0" L"\x241d" L"\0" L"\x241e" L"\0" L"\x241f"
+-  L"\0" L"\x2420" L"\0" L"\x2421" L"\0" L"\x2423" L"\0" L"\x2424" L"\0"
+-  L"\x2460" L"\0" L"\x2461" L"\0" L"\x2462" L"\0" L"\x2463" L"\0" L"\x2464"
+-  L"\0" L"\x2465" L"\0" L"\x2466" L"\0" L"\x2467" L"\0" L"\x2468" L"\0"
+-  L"\x2469" L"\0" L"\x246a" L"\0" L"\x246b" L"\0" L"\x246c" L"\0" L"\x246d"
+-  L"\0" L"\x246e" L"\0" L"\x246f" L"\0" L"\x2470" L"\0" L"\x2471" L"\0"
+-  L"\x2472" L"\0" L"\x2473" L"\0" L"\x2474" L"\0" L"\x2475" L"\0" L"\x2476"
+-  L"\0" L"\x2477" L"\0" L"\x2478" L"\0" L"\x2479" L"\0" L"\x247a" L"\0"
+-  L"\x247b" L"\0" L"\x247c" L"\0" L"\x247d" L"\0" L"\x247e" L"\0" L"\x247f"
+-  L"\0" L"\x2480" L"\0" L"\x2481" L"\0" L"\x2482" L"\0" L"\x2483" L"\0"
+-  L"\x2484" L"\0" L"\x2485" L"\0" L"\x2486" L"\0" L"\x2487" L"\0" L"\x2488"
+-  L"\0" L"\x2489" L"\0" L"\x248a" L"\0" L"\x248b" L"\0" L"\x248c" L"\0"
+-  L"\x248d" L"\0" L"\x248e" L"\0" L"\x248f" L"\0" L"\x2490" L"\0" L"\x2491"
+-  L"\0" L"\x2492" L"\0" L"\x2493" L"\0" L"\x2494" L"\0" L"\x2495" L"\0"
+-  L"\x2496" L"\0" L"\x2497" L"\0" L"\x2498" L"\0" L"\x2499" L"\0" L"\x249a"
+-  L"\0" L"\x249b" L"\0" L"\x249c" L"\0" L"\x249d" L"\0" L"\x249e" L"\0"
+-  L"\x249f" L"\0" L"\x24a0" L"\0" L"\x24a1" L"\0" L"\x24a2" L"\0" L"\x24a3"
+-  L"\0" L"\x24a4" L"\0" L"\x24a5" L"\0" L"\x24a6" L"\0" L"\x24a7" L"\0"
+-  L"\x24a8" L"\0" L"\x24a9" L"\0" L"\x24aa" L"\0" L"\x24ab" L"\0" L"\x24ac"
+-  L"\0" L"\x24ad" L"\0" L"\x24ae" L"\0" L"\x24af" L"\0" L"\x24b0" L"\0"
+-  L"\x24b1" L"\0" L"\x24b2" L"\0" L"\x24b3" L"\0" L"\x24b4" L"\0" L"\x24b5"
+-  L"\0" L"\x24b6" L"\0" L"\x24b7" L"\0" L"\x24b8" L"\0" L"\x24b9" L"\0"
+-  L"\x24ba" L"\0" L"\x24bb" L"\0" L"\x24bc" L"\0" L"\x24bd" L"\0" L"\x24be"
+-  L"\0" L"\x24bf" L"\0" L"\x24c0" L"\0" L"\x24c1" L"\0" L"\x24c2" L"\0"
+-  L"\x24c3" L"\0" L"\x24c4" L"\0" L"\x24c5" L"\0" L"\x24c6" L"\0" L"\x24c7"
+-  L"\0" L"\x24c8" L"\0" L"\x24c9" L"\0" L"\x24ca" L"\0" L"\x24cb" L"\0"
+-  L"\x24cc" L"\0" L"\x24cd" L"\0" L"\x24ce" L"\0" L"\x24cf" L"\0" L"\x24d0"
+-  L"\0" L"\x24d1" L"\0" L"\x24d2" L"\0" L"\x24d3" L"\0" L"\x24d4" L"\0"
+-  L"\x24d5" L"\0" L"\x24d6" L"\0" L"\x24d7" L"\0" L"\x24d8" L"\0" L"\x24d9"
+-  L"\0" L"\x24da" L"\0" L"\x24db" L"\0" L"\x24dc" L"\0" L"\x24dd" L"\0"
+-  L"\x24de" L"\0" L"\x24df" L"\0" L"\x24e0" L"\0" L"\x24e1" L"\0" L"\x24e2"
+-  L"\0" L"\x24e3" L"\0" L"\x24e4" L"\0" L"\x24e5" L"\0" L"\x24e6" L"\0"
+-  L"\x24e7" L"\0" L"\x24e8" L"\0" L"\x24e9" L"\0" L"\x24ea" L"\0" L"\x2500"
+-  L"\0" L"\x2502" L"\0" L"\x250c" L"\0" L"\x2510" L"\0" L"\x2514" L"\0"
+-  L"\x2518" L"\0" L"\x251c" L"\0" L"\x2524" L"\0" L"\x252c" L"\0" L"\x2534"
+-  L"\0" L"\x253c" L"\0" L"\x25e6" L"\0" L"\x2a74" L"\0" L"\x2a75" L"\0"
+-  L"\x2a76" L"\0" L"\x3000" L"\0" L"\x30a0" L"\0" L"\x3251" L"\0" L"\x3252"
+-  L"\0" L"\x3253" L"\0" L"\x3254" L"\0" L"\x3255" L"\0" L"\x3256" L"\0"
+-  L"\x3257" L"\0" L"\x3258" L"\0" L"\x3259" L"\0" L"\x325a" L"\0" L"\x325b"
+-  L"\0" L"\x325c" L"\0" L"\x325d" L"\0" L"\x325e" L"\0" L"\x325f" L"\0"
+-  L"\x32b1" L"\0" L"\x32b2" L"\0" L"\x32b3" L"\0" L"\x32b4" L"\0" L"\x32b5"
+-  L"\0" L"\x32b6" L"\0" L"\x32b7" L"\0" L"\x32b8" L"\0" L"\x32b9" L"\0"
+-  L"\x32ba" L"\0" L"\x32bb" L"\0" L"\x32bc" L"\0" L"\x32bd" L"\0" L"\x32be"
+-  L"\0" L"\x32bf" L"\0" L"\x3371" L"\0" L"\x3372" L"\0" L"\x3373" L"\0"
+-  L"\x3374" L"\0" L"\x3375" L"\0" L"\x3376" L"\0" L"\x3380" L"\0" L"\x3381"
+-  L"\0" L"\x3382" L"\0" L"\x3383" L"\0" L"\x3384" L"\0" L"\x3385" L"\0"
+-  L"\x3386" L"\0" L"\x3387" L"\0" L"\x3388" L"\0" L"\x3389" L"\0" L"\x338a"
+-  L"\0" L"\x338b" L"\0" L"\x338c" L"\0" L"\x338d" L"\0" L"\x338e" L"\0"
+-  L"\x338f" L"\0" L"\x3390" L"\0" L"\x3391" L"\0" L"\x3392" L"\0" L"\x3393"
+-  L"\0" L"\x3394" L"\0" L"\x3395" L"\0" L"\x3396" L"\0" L"\x3397" L"\0"
+-  L"\x3398" L"\0" L"\x3399" L"\0" L"\x339a" L"\0" L"\x339b" L"\0" L"\x339c"
+-  L"\0" L"\x339d" L"\0" L"\x339e" L"\0" L"\x339f" L"\0" L"\x33a0" L"\0"
+-  L"\x33a1" L"\0" L"\x33a2" L"\0" L"\x33a3" L"\0" L"\x33a4" L"\0" L"\x33a5"
+-  L"\0" L"\x33a6" L"\0" L"\x33a7" L"\0" L"\x33a8" L"\0" L"\x33a9" L"\0"
+-  L"\x33aa" L"\0" L"\x33ab" L"\0" L"\x33ac" L"\0" L"\x33ad" L"\0" L"\x33ae"
+-  L"\0" L"\x33af" L"\0" L"\x33b0" L"\0" L"\x33b1" L"\0" L"\x33b2" L"\0"
+-  L"\x33b3" L"\0" L"\x33b4" L"\0" L"\x33b5" L"\0" L"\x33b6" L"\0" L"\x33b7"
+-  L"\0" L"\x33b8" L"\0" L"\x33b9" L"\0" L"\x33ba" L"\0" L"\x33bb" L"\0"
+-  L"\x33bc" L"\0" L"\x33bd" L"\0" L"\x33be" L"\0" L"\x33bf" L"\0" L"\x33c2"
+-  L"\0" L"\x33c3" L"\0" L"\x33c4" L"\0" L"\x33c5" L"\0" L"\x33c6" L"\0"
+-  L"\x33c7" L"\0" L"\x33c8" L"\0" L"\x33c9" L"\0" L"\x33ca" L"\0" L"\x33cb"
+-  L"\0" L"\x33cc" L"\0" L"\x33cd" L"\0" L"\x33ce" L"\0" L"\x33cf" L"\0"
+-  L"\x33d0" L"\0" L"\x33d1" L"\0" L"\x33d2" L"\0" L"\x33d3" L"\0" L"\x33d4"
+-  L"\0" L"\x33d5" L"\0" L"\x33d6" L"\0" L"\x33d7" L"\0" L"\x33d8" L"\0"
+-  L"\x33d9" L"\0" L"\x33da" L"\0" L"\x33db" L"\0" L"\x33dc" L"\0" L"\x33dd"
+-  L"\0" L"\xfb00" L"\0" L"\xfb01" L"\0" L"\xfb02" L"\0" L"\xfb03" L"\0"
+-  L"\xfb04" L"\0" L"\xfb06" L"\0" L"\xfb29" L"\0" L"\xfe00" L"\0" L"\xfe01"
+-  L"\0" L"\xfe02" L"\0" L"\xfe03" L"\0" L"\xfe04" L"\0" L"\xfe05" L"\0"
+-  L"\xfe06" L"\0" L"\xfe07" L"\0" L"\xfe08" L"\0" L"\xfe09" L"\0" L"\xfe0a"
+-  L"\0" L"\xfe0b" L"\0" L"\xfe0c" L"\0" L"\xfe0d" L"\0" L"\xfe0e" L"\0"
+-  L"\xfe0f" L"\0" L"\xfe4d" L"\0" L"\xfe4e" L"\0" L"\xfe4f" L"\0" L"\xfe50"
+-  L"\0" L"\xfe52" L"\0" L"\xfe54" L"\0" L"\xfe55" L"\0" L"\xfe56" L"\0"
+-  L"\xfe57" L"\0" L"\xfe59" L"\0" L"\xfe5a" L"\0" L"\xfe5b" L"\0" L"\xfe5c"
+-  L"\0" L"\xfe5f" L"\0" L"\xfe60" L"\0" L"\xfe61" L"\0" L"\xfe62" L"\0"
+-  L"\xfe63" L"\0" L"\xfe64" L"\0" L"\xfe65" L"\0" L"\xfe66" L"\0" L"\xfe68"
+-  L"\0" L"\xfe69" L"\0" L"\xfe6a" L"\0" L"\xfe6b" L"\0" L"\xfeff" L"\0"
+-  L"\xff01" L"\0" L"\xff02" L"\0" L"\xff03" L"\0" L"\xff04" L"\0" L"\xff05"
+-  L"\0" L"\xff06" L"\0" L"\xff07" L"\0" L"\xff08" L"\0" L"\xff09" L"\0"
+-  L"\xff0a" L"\0" L"\xff0b" L"\0" L"\xff0c" L"\0" L"\xff0d" L"\0" L"\xff0e"
+-  L"\0" L"\xff0f" L"\0" L"\xff10" L"\0" L"\xff11" L"\0" L"\xff12" L"\0"
+-  L"\xff13" L"\0" L"\xff14" L"\0" L"\xff15" L"\0" L"\xff16" L"\0" L"\xff17"
+-  L"\0" L"\xff18" L"\0" L"\xff19" L"\0" L"\xff1a" L"\0" L"\xff1b" L"\0"
+-  L"\xff1c" L"\0" L"\xff1d" L"\0" L"\xff1e" L"\0" L"\xff1f" L"\0" L"\xff20"
+-  L"\0" L"\xff21" L"\0" L"\xff22" L"\0" L"\xff23" L"\0" L"\xff24" L"\0"
+-  L"\xff25" L"\0" L"\xff26" L"\0" L"\xff27" L"\0" L"\xff28" L"\0" L"\xff29"
+-  L"\0" L"\xff2a" L"\0" L"\xff2b" L"\0" L"\xff2c" L"\0" L"\xff2d" L"\0"
+-  L"\xff2e" L"\0" L"\xff2f" L"\0" L"\xff30" L"\0" L"\xff31" L"\0" L"\xff32"
+-  L"\0" L"\xff33" L"\0" L"\xff34" L"\0" L"\xff35" L"\0" L"\xff36" L"\0"
+-  L"\xff37" L"\0" L"\xff38" L"\0" L"\xff39" L"\0" L"\xff3a" L"\0" L"\xff3b"
+-  L"\0" L"\xff3c" L"\0" L"\xff3d" L"\0" L"\xff3e" L"\0" L"\xff3f" L"\0"
+-  L"\xff40" L"\0" L"\xff41" L"\0" L"\xff42" L"\0" L"\xff43" L"\0" L"\xff44"
+-  L"\0" L"\xff45" L"\0" L"\xff46" L"\0" L"\xff47" L"\0" L"\xff48" L"\0"
+-  L"\xff49" L"\0" L"\xff4a" L"\0" L"\xff4b" L"\0" L"\xff4c" L"\0" L"\xff4d"
+-  L"\0" L"\xff4e" L"\0" L"\xff4f" L"\0" L"\xff50" L"\0" L"\xff51" L"\0"
+-  L"\xff52" L"\0" L"\xff53" L"\0" L"\xff54" L"\0" L"\xff55" L"\0" L"\xff56"
+-  L"\0" L"\xff57" L"\0" L"\xff58" L"\0" L"\xff59" L"\0" L"\xff5a" L"\0"
+-  L"\xff5b" L"\0" L"\xff5c" L"\0" L"\xff5d" L"\0" L"\xff5e" L"\0"
+-  L"\x0001d400" L"\0" L"\x0001d401" L"\0" L"\x0001d402" L"\0" L"\x0001d403"
+-  L"\0" L"\x0001d404" L"\0" L"\x0001d405" L"\0" L"\x0001d406" L"\0"
+-  L"\x0001d407" L"\0" L"\x0001d408" L"\0" L"\x0001d409" L"\0" L"\x0001d40a"
+-  L"\0" L"\x0001d40b" L"\0" L"\x0001d40c" L"\0" L"\x0001d40d" L"\0"
+-  L"\x0001d40e" L"\0" L"\x0001d40f" L"\0" L"\x0001d410" L"\0" L"\x0001d411"
+-  L"\0" L"\x0001d412" L"\0" L"\x0001d413" L"\0" L"\x0001d414" L"\0"
+-  L"\x0001d415" L"\0" L"\x0001d416" L"\0" L"\x0001d417" L"\0" L"\x0001d418"
+-  L"\0" L"\x0001d419" L"\0" L"\x0001d41a" L"\0" L"\x0001d41b" L"\0"
+-  L"\x0001d41c" L"\0" L"\x0001d41d" L"\0" L"\x0001d41e" L"\0" L"\x0001d41f"
+-  L"\0" L"\x0001d420" L"\0" L"\x0001d421" L"\0" L"\x0001d422" L"\0"
+-  L"\x0001d423" L"\0" L"\x0001d424" L"\0" L"\x0001d425" L"\0" L"\x0001d426"
+-  L"\0" L"\x0001d427" L"\0" L"\x0001d428" L"\0" L"\x0001d429" L"\0"
+-  L"\x0001d42a" L"\0" L"\x0001d42b" L"\0" L"\x0001d42c" L"\0" L"\x0001d42d"
+-  L"\0" L"\x0001d42e" L"\0" L"\x0001d42f" L"\0" L"\x0001d430" L"\0"
+-  L"\x0001d431" L"\0" L"\x0001d432" L"\0" L"\x0001d433" L"\0" L"\x0001d434"
+-  L"\0" L"\x0001d435" L"\0" L"\x0001d436" L"\0" L"\x0001d437" L"\0"
+-  L"\x0001d438" L"\0" L"\x0001d439" L"\0" L"\x0001d43a" L"\0" L"\x0001d43b"
+-  L"\0" L"\x0001d43c" L"\0" L"\x0001d43d" L"\0" L"\x0001d43e" L"\0"
+-  L"\x0001d43f" L"\0" L"\x0001d440" L"\0" L"\x0001d441" L"\0" L"\x0001d442"
+-  L"\0" L"\x0001d443" L"\0" L"\x0001d444" L"\0" L"\x0001d445" L"\0"
+-  L"\x0001d446" L"\0" L"\x0001d447" L"\0" L"\x0001d448" L"\0" L"\x0001d449"
+-  L"\0" L"\x0001d44a" L"\0" L"\x0001d44b" L"\0" L"\x0001d44c" L"\0"
+-  L"\x0001d44d" L"\0" L"\x0001d44e" L"\0" L"\x0001d44f" L"\0" L"\x0001d450"
+-  L"\0" L"\x0001d451" L"\0" L"\x0001d452" L"\0" L"\x0001d453" L"\0"
+-  L"\x0001d454" L"\0" L"\x0001d456" L"\0" L"\x0001d457" L"\0" L"\x0001d458"
+-  L"\0" L"\x0001d459" L"\0" L"\x0001d45a" L"\0" L"\x0001d45b" L"\0"
+-  L"\x0001d45c" L"\0" L"\x0001d45d" L"\0" L"\x0001d45e" L"\0" L"\x0001d45f"
+-  L"\0" L"\x0001d460" L"\0" L"\x0001d461" L"\0" L"\x0001d462" L"\0"
+-  L"\x0001d463" L"\0" L"\x0001d464" L"\0" L"\x0001d465" L"\0" L"\x0001d466"
+-  L"\0" L"\x0001d467" L"\0" L"\x0001d468" L"\0" L"\x0001d469" L"\0"
+-  L"\x0001d46a" L"\0" L"\x0001d46b" L"\0" L"\x0001d46c" L"\0" L"\x0001d46d"
+-  L"\0" L"\x0001d46e" L"\0" L"\x0001d46f" L"\0" L"\x0001d470" L"\0"
+-  L"\x0001d471" L"\0" L"\x0001d472" L"\0" L"\x0001d473" L"\0" L"\x0001d474"
+-  L"\0" L"\x0001d475" L"\0" L"\x0001d476" L"\0" L"\x0001d477" L"\0"
+-  L"\x0001d478" L"\0" L"\x0001d479" L"\0" L"\x0001d47a" L"\0" L"\x0001d47b"
+-  L"\0" L"\x0001d47c" L"\0" L"\x0001d47d" L"\0" L"\x0001d47e" L"\0"
+-  L"\x0001d47f" L"\0" L"\x0001d480" L"\0" L"\x0001d481" L"\0" L"\x0001d482"
+-  L"\0" L"\x0001d483" L"\0" L"\x0001d484" L"\0" L"\x0001d485" L"\0"
+-  L"\x0001d486" L"\0" L"\x0001d487" L"\0" L"\x0001d488" L"\0" L"\x0001d489"
+-  L"\0" L"\x0001d48a" L"\0" L"\x0001d48b" L"\0" L"\x0001d48c" L"\0"
+-  L"\x0001d48d" L"\0" L"\x0001d48e" L"\0" L"\x0001d48f" L"\0" L"\x0001d490"
+-  L"\0" L"\x0001d491" L"\0" L"\x0001d492" L"\0" L"\x0001d493" L"\0"
+-  L"\x0001d494" L"\0" L"\x0001d495" L"\0" L"\x0001d496" L"\0" L"\x0001d497"
+-  L"\0" L"\x0001d498" L"\0" L"\x0001d499" L"\0" L"\x0001d49a" L"\0"
+-  L"\x0001d49b" L"\0" L"\x0001d49c" L"\0" L"\x0001d49e" L"\0" L"\x0001d49f"
+-  L"\0" L"\x0001d4a2" L"\0" L"\x0001d4a5" L"\0" L"\x0001d4a6" L"\0"
+-  L"\x0001d4a9" L"\0" L"\x0001d4aa" L"\0" L"\x0001d4ab" L"\0" L"\x0001d4ac"
+-  L"\0" L"\x0001d4ae" L"\0" L"\x0001d4af" L"\0" L"\x0001d4b0" L"\0"
+-  L"\x0001d4b1" L"\0" L"\x0001d4b2" L"\0" L"\x0001d4b3" L"\0" L"\x0001d4b4"
+-  L"\0" L"\x0001d4b5" L"\0" L"\x0001d4b6" L"\0" L"\x0001d4b7" L"\0"
+-  L"\x0001d4b8" L"\0" L"\x0001d4b9" L"\0" L"\x0001d4bb" L"\0" L"\x0001d4bd"
+-  L"\0" L"\x0001d4be" L"\0" L"\x0001d4bf" L"\0" L"\x0001d4c0" L"\0"
+-  L"\x0001d4c2" L"\0" L"\x0001d4c3" L"\0" L"\x0001d4c5" L"\0" L"\x0001d4c6"
+-  L"\0" L"\x0001d4c7" L"\0" L"\x0001d4c8" L"\0" L"\x0001d4c9" L"\0"
+-  L"\x0001d4ca" L"\0" L"\x0001d4cb" L"\0" L"\x0001d4cc" L"\0" L"\x0001d4cd"
+-  L"\0" L"\x0001d4ce" L"\0" L"\x0001d4cf" L"\0" L"\x0001d4d0" L"\0"
+-  L"\x0001d4d1" L"\0" L"\x0001d4d2" L"\0" L"\x0001d4d3" L"\0" L"\x0001d4d4"
+-  L"\0" L"\x0001d4d5" L"\0" L"\x0001d4d6" L"\0" L"\x0001d4d7" L"\0"
+-  L"\x0001d4d8" L"\0" L"\x0001d4d9" L"\0" L"\x0001d4da" L"\0" L"\x0001d4db"
+-  L"\0" L"\x0001d4dc" L"\0" L"\x0001d4dd" L"\0" L"\x0001d4de" L"\0"
+-  L"\x0001d4df" L"\0" L"\x0001d4e0" L"\0" L"\x0001d4e1" L"\0" L"\x0001d4e2"
+-  L"\0" L"\x0001d4e3" L"\0" L"\x0001d4e4" L"\0" L"\x0001d4e5" L"\0"
+-  L"\x0001d4e6" L"\0" L"\x0001d4e7" L"\0" L"\x0001d4e8" L"\0" L"\x0001d4e9"
+-  L"\0" L"\x0001d4ea" L"\0" L"\x0001d4eb" L"\0" L"\x0001d4ec" L"\0"
+-  L"\x0001d4ed" L"\0" L"\x0001d4ee" L"\0" L"\x0001d4ef" L"\0" L"\x0001d4f0"
+-  L"\0" L"\x0001d4f1" L"\0" L"\x0001d4f2" L"\0" L"\x0001d4f3" L"\0"
+-  L"\x0001d4f4" L"\0" L"\x0001d4f5" L"\0" L"\x0001d4f6" L"\0" L"\x0001d4f7"
+-  L"\0" L"\x0001d4f8" L"\0" L"\x0001d4f9" L"\0" L"\x0001d4fa" L"\0"
+-  L"\x0001d4fb" L"\0" L"\x0001d4fc" L"\0" L"\x0001d4fd" L"\0" L"\x0001d4fe"
+-  L"\0" L"\x0001d4ff" L"\0" L"\x0001d500" L"\0" L"\x0001d501" L"\0"
+-  L"\x0001d502" L"\0" L"\x0001d503" L"\0" L"\x0001d504" L"\0" L"\x0001d505"
+-  L"\0" L"\x0001d507" L"\0" L"\x0001d508" L"\0" L"\x0001d509" L"\0"
+-  L"\x0001d50a" L"\0" L"\x0001d50d" L"\0" L"\x0001d50e" L"\0" L"\x0001d50f"
+-  L"\0" L"\x0001d510" L"\0" L"\x0001d511" L"\0" L"\x0001d512" L"\0"
+-  L"\x0001d513" L"\0" L"\x0001d514" L"\0" L"\x0001d516" L"\0" L"\x0001d517"
+-  L"\0" L"\x0001d518" L"\0" L"\x0001d519" L"\0" L"\x0001d51a" L"\0"
+-  L"\x0001d51b" L"\0" L"\x0001d51c" L"\0" L"\x0001d51e" L"\0" L"\x0001d51f"
+-  L"\0" L"\x0001d520" L"\0" L"\x0001d521" L"\0" L"\x0001d522" L"\0"
+-  L"\x0001d523" L"\0" L"\x0001d524" L"\0" L"\x0001d525" L"\0" L"\x0001d526"
+-  L"\0" L"\x0001d527" L"\0" L"\x0001d528" L"\0" L"\x0001d529" L"\0"
+-  L"\x0001d52a" L"\0" L"\x0001d52b" L"\0" L"\x0001d52c" L"\0" L"\x0001d52d"
+-  L"\0" L"\x0001d52e" L"\0" L"\x0001d52f" L"\0" L"\x0001d530" L"\0"
+-  L"\x0001d531" L"\0" L"\x0001d532" L"\0" L"\x0001d533" L"\0" L"\x0001d534"
+-  L"\0" L"\x0001d535" L"\0" L"\x0001d536" L"\0" L"\x0001d537" L"\0"
+-  L"\x0001d538" L"\0" L"\x0001d539" L"\0" L"\x0001d53b" L"\0" L"\x0001d53c"
+-  L"\0" L"\x0001d53d" L"\0" L"\x0001d53e" L"\0" L"\x0001d540" L"\0"
+-  L"\x0001d541" L"\0" L"\x0001d542" L"\0" L"\x0001d543" L"\0" L"\x0001d544"
+-  L"\0" L"\x0001d546" L"\0" L"\x0001d54a" L"\0" L"\x0001d54b" L"\0"
+-  L"\x0001d54c" L"\0" L"\x0001d54d" L"\0" L"\x0001d54e" L"\0" L"\x0001d54f"
+-  L"\0" L"\x0001d550" L"\0" L"\x0001d552" L"\0" L"\x0001d553" L"\0"
+-  L"\x0001d554" L"\0" L"\x0001d555" L"\0" L"\x0001d556" L"\0" L"\x0001d557"
+-  L"\0" L"\x0001d558" L"\0" L"\x0001d559" L"\0" L"\x0001d55a" L"\0"
+-  L"\x0001d55b" L"\0" L"\x0001d55c" L"\0" L"\x0001d55d" L"\0" L"\x0001d55e"
+-  L"\0" L"\x0001d55f" L"\0" L"\x0001d560" L"\0" L"\x0001d561" L"\0"
+-  L"\x0001d562" L"\0" L"\x0001d563" L"\0" L"\x0001d564" L"\0" L"\x0001d565"
+-  L"\0" L"\x0001d566" L"\0" L"\x0001d567" L"\0" L"\x0001d568" L"\0"
+-  L"\x0001d569" L"\0" L"\x0001d56a" L"\0" L"\x0001d56b" L"\0" L"\x0001d56c"
+-  L"\0" L"\x0001d56d" L"\0" L"\x0001d56e" L"\0" L"\x0001d56f" L"\0"
+-  L"\x0001d570" L"\0" L"\x0001d571" L"\0" L"\x0001d572" L"\0" L"\x0001d573"
+-  L"\0" L"\x0001d574" L"\0" L"\x0001d575" L"\0" L"\x0001d576" L"\0"
+-  L"\x0001d577" L"\0" L"\x0001d578" L"\0" L"\x0001d579" L"\0" L"\x0001d57a"
+-  L"\0" L"\x0001d57b" L"\0" L"\x0001d57c" L"\0" L"\x0001d57d" L"\0"
+-  L"\x0001d57e" L"\0" L"\x0001d57f" L"\0" L"\x0001d580" L"\0" L"\x0001d581"
+-  L"\0" L"\x0001d582" L"\0" L"\x0001d583" L"\0" L"\x0001d584" L"\0"
+-  L"\x0001d585" L"\0" L"\x0001d586" L"\0" L"\x0001d587" L"\0" L"\x0001d588"
+-  L"\0" L"\x0001d589" L"\0" L"\x0001d58a" L"\0" L"\x0001d58b" L"\0"
+-  L"\x0001d58c" L"\0" L"\x0001d58d" L"\0" L"\x0001d58e" L"\0" L"\x0001d58f"
+-  L"\0" L"\x0001d590" L"\0" L"\x0001d591" L"\0" L"\x0001d592" L"\0"
+-  L"\x0001d593" L"\0" L"\x0001d594" L"\0" L"\x0001d595" L"\0" L"\x0001d596"
+-  L"\0" L"\x0001d597" L"\0" L"\x0001d598" L"\0" L"\x0001d599" L"\0"
+-  L"\x0001d59a" L"\0" L"\x0001d59b" L"\0" L"\x0001d59c" L"\0" L"\x0001d59d"
+-  L"\0" L"\x0001d59e" L"\0" L"\x0001d59f" L"\0" L"\x0001d5a0" L"\0"
+-  L"\x0001d5a1" L"\0" L"\x0001d5a2" L"\0" L"\x0001d5a3" L"\0" L"\x0001d5a4"
+-  L"\0" L"\x0001d5a5" L"\0" L"\x0001d5a6" L"\0" L"\x0001d5a7" L"\0"
+-  L"\x0001d5a8" L"\0" L"\x0001d5a9" L"\0" L"\x0001d5aa" L"\0" L"\x0001d5ab"
+-  L"\0" L"\x0001d5ac" L"\0" L"\x0001d5ad" L"\0" L"\x0001d5ae" L"\0"
+-  L"\x0001d5af" L"\0" L"\x0001d5b0" L"\0" L"\x0001d5b1" L"\0" L"\x0001d5b2"
+-  L"\0" L"\x0001d5b3" L"\0" L"\x0001d5b4" L"\0" L"\x0001d5b5" L"\0"
+-  L"\x0001d5b6" L"\0" L"\x0001d5b7" L"\0" L"\x0001d5b8" L"\0" L"\x0001d5b9"
+-  L"\0" L"\x0001d5ba" L"\0" L"\x0001d5bb" L"\0" L"\x0001d5bc" L"\0"
+-  L"\x0001d5bd" L"\0" L"\x0001d5be" L"\0" L"\x0001d5bf" L"\0" L"\x0001d5c0"
+-  L"\0" L"\x0001d5c1" L"\0" L"\x0001d5c2" L"\0" L"\x0001d5c3" L"\0"
+-  L"\x0001d5c4" L"\0" L"\x0001d5c5" L"\0" L"\x0001d5c6" L"\0" L"\x0001d5c7"
+-  L"\0" L"\x0001d5c8" L"\0" L"\x0001d5c9" L"\0" L"\x0001d5ca" L"\0"
+-  L"\x0001d5cb" L"\0" L"\x0001d5cc" L"\0" L"\x0001d5cd" L"\0" L"\x0001d5ce"
+-  L"\0" L"\x0001d5cf" L"\0" L"\x0001d5d0" L"\0" L"\x0001d5d1" L"\0"
+-  L"\x0001d5d2" L"\0" L"\x0001d5d3" L"\0" L"\x0001d5d4" L"\0" L"\x0001d5d5"
+-  L"\0" L"\x0001d5d6" L"\0" L"\x0001d5d7" L"\0" L"\x0001d5d8" L"\0"
+-  L"\x0001d5d9" L"\0" L"\x0001d5da" L"\0" L"\x0001d5db" L"\0" L"\x0001d5dc"
+-  L"\0" L"\x0001d5dd" L"\0" L"\x0001d5de" L"\0" L"\x0001d5df" L"\0"
+-  L"\x0001d5e0" L"\0" L"\x0001d5e1" L"\0" L"\x0001d5e2" L"\0" L"\x0001d5e3"
+-  L"\0" L"\x0001d5e4" L"\0" L"\x0001d5e5" L"\0" L"\x0001d5e6" L"\0"
+-  L"\x0001d5e7" L"\0" L"\x0001d5e8" L"\0" L"\x0001d5e9" L"\0" L"\x0001d5ea"
+-  L"\0" L"\x0001d5eb" L"\0" L"\x0001d5ec" L"\0" L"\x0001d5ed" L"\0"
+-  L"\x0001d5ee" L"\0" L"\x0001d5ef" L"\0" L"\x0001d5f0" L"\0" L"\x0001d5f1"
+-  L"\0" L"\x0001d5f2" L"\0" L"\x0001d5f3" L"\0" L"\x0001d5f4" L"\0"
+-  L"\x0001d5f5" L"\0" L"\x0001d5f6" L"\0" L"\x0001d5f7" L"\0" L"\x0001d5f8"
+-  L"\0" L"\x0001d5f9" L"\0" L"\x0001d5fa" L"\0" L"\x0001d5fb" L"\0"
+-  L"\x0001d5fc" L"\0" L"\x0001d5fd" L"\0" L"\x0001d5fe" L"\0" L"\x0001d5ff"
+-  L"\0" L"\x0001d600" L"\0" L"\x0001d601" L"\0" L"\x0001d602" L"\0"
+-  L"\x0001d603" L"\0" L"\x0001d604" L"\0" L"\x0001d605" L"\0" L"\x0001d606"
+-  L"\0" L"\x0001d607" L"\0" L"\x0001d608" L"\0" L"\x0001d609" L"\0"
+-  L"\x0001d60a" L"\0" L"\x0001d60b" L"\0" L"\x0001d60c" L"\0" L"\x0001d60d"
+-  L"\0" L"\x0001d60e" L"\0" L"\x0001d60f" L"\0" L"\x0001d610" L"\0"
+-  L"\x0001d611" L"\0" L"\x0001d612" L"\0" L"\x0001d613" L"\0" L"\x0001d614"
+-  L"\0" L"\x0001d615" L"\0" L"\x0001d616" L"\0" L"\x0001d617" L"\0"
+-  L"\x0001d618" L"\0" L"\x0001d619" L"\0" L"\x0001d61a" L"\0" L"\x0001d61b"
+-  L"\0" L"\x0001d61c" L"\0" L"\x0001d61d" L"\0" L"\x0001d61e" L"\0"
+-  L"\x0001d61f" L"\0" L"\x0001d620" L"\0" L"\x0001d621" L"\0" L"\x0001d622"
+-  L"\0" L"\x0001d623" L"\0" L"\x0001d624" L"\0" L"\x0001d625" L"\0"
+-  L"\x0001d626" L"\0" L"\x0001d627" L"\0" L"\x0001d628" L"\0" L"\x0001d629"
+-  L"\0" L"\x0001d62a" L"\0" L"\x0001d62b" L"\0" L"\x0001d62c" L"\0"
+-  L"\x0001d62d" L"\0" L"\x0001d62e" L"\0" L"\x0001d62f" L"\0" L"\x0001d630"
+-  L"\0" L"\x0001d631" L"\0" L"\x0001d632" L"\0" L"\x0001d633" L"\0"
+-  L"\x0001d634" L"\0" L"\x0001d635" L"\0" L"\x0001d636" L"\0" L"\x0001d637"
+-  L"\0" L"\x0001d638" L"\0" L"\x0001d639" L"\0" L"\x0001d63a" L"\0"
+-  L"\x0001d63b" L"\0" L"\x0001d63c" L"\0" L"\x0001d63d" L"\0" L"\x0001d63e"
+-  L"\0" L"\x0001d63f" L"\0" L"\x0001d640" L"\0" L"\x0001d641" L"\0"
+-  L"\x0001d642" L"\0" L"\x0001d643" L"\0" L"\x0001d644" L"\0" L"\x0001d645"
+-  L"\0" L"\x0001d646" L"\0" L"\x0001d647" L"\0" L"\x0001d648" L"\0"
+-  L"\x0001d649" L"\0" L"\x0001d64a" L"\0" L"\x0001d64b" L"\0" L"\x0001d64c"
+-  L"\0" L"\x0001d64d" L"\0" L"\x0001d64e" L"\0" L"\x0001d64f" L"\0"
+-  L"\x0001d650" L"\0" L"\x0001d651" L"\0" L"\x0001d652" L"\0" L"\x0001d653"
+-  L"\0" L"\x0001d654" L"\0" L"\x0001d655" L"\0" L"\x0001d656" L"\0"
+-  L"\x0001d657" L"\0" L"\x0001d658" L"\0" L"\x0001d659" L"\0" L"\x0001d65a"
+-  L"\0" L"\x0001d65b" L"\0" L"\x0001d65c" L"\0" L"\x0001d65d" L"\0"
+-  L"\x0001d65e" L"\0" L"\x0001d65f" L"\0" L"\x0001d660" L"\0" L"\x0001d661"
+-  L"\0" L"\x0001d662" L"\0" L"\x0001d663" L"\0" L"\x0001d664" L"\0"
+-  L"\x0001d665" L"\0" L"\x0001d666" L"\0" L"\x0001d667" L"\0" L"\x0001d668"
+-  L"\0" L"\x0001d669" L"\0" L"\x0001d66a" L"\0" L"\x0001d66b" L"\0"
+-  L"\x0001d66c" L"\0" L"\x0001d66d" L"\0" L"\x0001d66e" L"\0" L"\x0001d66f"
+-  L"\0" L"\x0001d670" L"\0" L"\x0001d671" L"\0" L"\x0001d672" L"\0"
+-  L"\x0001d673" L"\0" L"\x0001d674" L"\0" L"\x0001d675" L"\0" L"\x0001d676"
+-  L"\0" L"\x0001d677" L"\0" L"\x0001d678" L"\0" L"\x0001d679" L"\0"
+-  L"\x0001d67a" L"\0" L"\x0001d67b" L"\0" L"\x0001d67c" L"\0" L"\x0001d67d"
+-  L"\0" L"\x0001d67e" L"\0" L"\x0001d67f" L"\0" L"\x0001d680" L"\0"
+-  L"\x0001d681" L"\0" L"\x0001d682" L"\0" L"\x0001d683" L"\0" L"\x0001d684"
+-  L"\0" L"\x0001d685" L"\0" L"\x0001d686" L"\0" L"\x0001d687" L"\0"
+-  L"\x0001d688" L"\0" L"\x0001d689" L"\0" L"\x0001d68a" L"\0" L"\x0001d68b"
+-  L"\0" L"\x0001d68c" L"\0" L"\x0001d68d" L"\0" L"\x0001d68e" L"\0"
+-  L"\x0001d68f" L"\0" L"\x0001d690" L"\0" L"\x0001d691" L"\0" L"\x0001d692"
+-  L"\0" L"\x0001d693" L"\0" L"\x0001d694" L"\0" L"\x0001d695" L"\0"
+-  L"\x0001d696" L"\0" L"\x0001d697" L"\0" L"\x0001d698" L"\0" L"\x0001d699"
+-  L"\0" L"\x0001d69a" L"\0" L"\x0001d69b" L"\0" L"\x0001d69c" L"\0"
+-  L"\x0001d69d" L"\0" L"\x0001d69e" L"\0" L"\x0001d69f" L"\0" L"\x0001d6a0"
+-  L"\0" L"\x0001d6a1" L"\0" L"\x0001d6a2" L"\0" L"\x0001d6a3" L"\0"
+-  L"\x0001d7ce" L"\0" L"\x0001d7cf" L"\0" L"\x0001d7d0" L"\0" L"\x0001d7d1"
+-  L"\0" L"\x0001d7d2" L"\0" L"\x0001d7d3" L"\0" L"\x0001d7d4" L"\0"
+-  L"\x0001d7d5" L"\0" L"\x0001d7d6" L"\0" L"\x0001d7d7" L"\0" L"\x0001d7d8"
+-  L"\0" L"\x0001d7d9" L"\0" L"\x0001d7da" L"\0" L"\x0001d7db" L"\0"
+-  L"\x0001d7dc" L"\0" L"\x0001d7dd" L"\0" L"\x0001d7de" L"\0" L"\x0001d7df"
+-  L"\0" L"\x0001d7e0" L"\0" L"\x0001d7e1" L"\0" L"\x0001d7e2" L"\0"
+-  L"\x0001d7e3" L"\0" L"\x0001d7e4" L"\0" L"\x0001d7e5" L"\0" L"\x0001d7e6"
+-  L"\0" L"\x0001d7e7" L"\0" L"\x0001d7e8" L"\0" L"\x0001d7e9" L"\0"
+-  L"\x0001d7ea" L"\0" L"\x0001d7eb" L"\0" L"\x0001d7ec" L"\0" L"\x0001d7ed"
+-  L"\0" L"\x0001d7ee" L"\0" L"\x0001d7ef" L"\0" L"\x0001d7f0" L"\0"
+-  L"\x0001d7f1" L"\0" L"\x0001d7f2" L"\0" L"\x0001d7f3" L"\0" L"\x0001d7f4"
+-  L"\0" L"\x0001d7f5" L"\0" L"\x0001d7f6" L"\0" L"\x0001d7f7" L"\0"
+-  L"\x0001d7f8" L"\0" L"\x0001d7f9" L"\0" L"\x0001d7fa" L"\0" L"\x0001d7fb"
+-  L"\0" L"\x0001d7fc" L"\0" L"\x0001d7fd" L"\0" L"\x0001d7fe" L"\0"
+-  L"\x0001d7ff";
++  L"\x2062" L"\0" L"\x2063" L"\0" L"\x20a8" L"\0" L"\x20ac" L"\0" L"\x20b9"
++  L"\0" L"\x2100" L"\0" L"\x2101" L"\0" L"\x2102" L"\0" L"\x2105" L"\0"
++  L"\x2106" L"\0" L"\x210a" L"\0" L"\x210b" L"\0" L"\x210c" L"\0" L"\x210d"
++  L"\0" L"\x210e" L"\0" L"\x2110" L"\0" L"\x2111" L"\0" L"\x2112" L"\0"
++  L"\x2113" L"\0" L"\x2115" L"\0" L"\x2116" L"\0" L"\x2119" L"\0" L"\x211a"
++  L"\0" L"\x211b" L"\0" L"\x211c" L"\0" L"\x211d" L"\0" L"\x2121" L"\0"
++  L"\x2122" L"\0" L"\x2124" L"\0" L"\x2126" L"\0" L"\x2128" L"\0" L"\x212c"
++  L"\0" L"\x212d" L"\0" L"\x212e" L"\0" L"\x212f" L"\0" L"\x2130" L"\0"
++  L"\x2131" L"\0" L"\x2133" L"\0" L"\x2134" L"\0" L"\x2139" L"\0" L"\x2145"
++  L"\0" L"\x2146" L"\0" L"\x2147" L"\0" L"\x2148" L"\0" L"\x2149" L"\0"
++  L"\x2153" L"\0" L"\x2154" L"\0" L"\x2155" L"\0" L"\x2156" L"\0" L"\x2157"
++  L"\0" L"\x2158" L"\0" L"\x2159" L"\0" L"\x215a" L"\0" L"\x215b" L"\0"
++  L"\x215c" L"\0" L"\x215d" L"\0" L"\x215e" L"\0" L"\x215f" L"\0" L"\x2160"
++  L"\0" L"\x2161" L"\0" L"\x2162" L"\0" L"\x2163" L"\0" L"\x2164" L"\0"
++  L"\x2165" L"\0" L"\x2166" L"\0" L"\x2167" L"\0" L"\x2168" L"\0" L"\x2169"
++  L"\0" L"\x216a" L"\0" L"\x216b" L"\0" L"\x216c" L"\0" L"\x216d" L"\0"
++  L"\x216e" L"\0" L"\x216f" L"\0" L"\x2170" L"\0" L"\x2171" L"\0" L"\x2172"
++  L"\0" L"\x2173" L"\0" L"\x2174" L"\0" L"\x2175" L"\0" L"\x2176" L"\0"
++  L"\x2177" L"\0" L"\x2178" L"\0" L"\x2179" L"\0" L"\x217a" L"\0" L"\x217b"
++  L"\0" L"\x217c" L"\0" L"\x217d" L"\0" L"\x217e" L"\0" L"\x217f" L"\0"
++  L"\x2190" L"\0" L"\x2192" L"\0" L"\x2194" L"\0" L"\x21d0" L"\0" L"\x21d2"
++  L"\0" L"\x21d4" L"\0" L"\x2212" L"\0" L"\x2215" L"\0" L"\x2216" L"\0"
++  L"\x2217" L"\0" L"\x2223" L"\0" L"\x2236" L"\0" L"\x223c" L"\0" L"\x2264"
++  L"\0" L"\x2265" L"\0" L"\x226a" L"\0" L"\x226b" L"\0" L"\x22d8" L"\0"
++  L"\x22d9" L"\0" L"\x2400" L"\0" L"\x2401" L"\0" L"\x2402" L"\0" L"\x2403"
++  L"\0" L"\x2404" L"\0" L"\x2405" L"\0" L"\x2406" L"\0" L"\x2407" L"\0"
++  L"\x2408" L"\0" L"\x2409" L"\0" L"\x240a" L"\0" L"\x240b" L"\0" L"\x240c"
++  L"\0" L"\x240d" L"\0" L"\x240e" L"\0" L"\x240f" L"\0" L"\x2410" L"\0"
++  L"\x2411" L"\0" L"\x2412" L"\0" L"\x2413" L"\0" L"\x2414" L"\0" L"\x2415"
++  L"\0" L"\x2416" L"\0" L"\x2417" L"\0" L"\x2418" L"\0" L"\x2419" L"\0"
++  L"\x241a" L"\0" L"\x241b" L"\0" L"\x241c" L"\0" L"\x241d" L"\0" L"\x241e"
++  L"\0" L"\x241f" L"\0" L"\x2420" L"\0" L"\x2421" L"\0" L"\x2423" L"\0"
++  L"\x2424" L"\0" L"\x2460" L"\0" L"\x2461" L"\0" L"\x2462" L"\0" L"\x2463"
++  L"\0" L"\x2464" L"\0" L"\x2465" L"\0" L"\x2466" L"\0" L"\x2467" L"\0"
++  L"\x2468" L"\0" L"\x2469" L"\0" L"\x246a" L"\0" L"\x246b" L"\0" L"\x246c"
++  L"\0" L"\x246d" L"\0" L"\x246e" L"\0" L"\x246f" L"\0" L"\x2470" L"\0"
++  L"\x2471" L"\0" L"\x2472" L"\0" L"\x2473" L"\0" L"\x2474" L"\0" L"\x2475"
++  L"\0" L"\x2476" L"\0" L"\x2477" L"\0" L"\x2478" L"\0" L"\x2479" L"\0"
++  L"\x247a" L"\0" L"\x247b" L"\0" L"\x247c" L"\0" L"\x247d" L"\0" L"\x247e"
++  L"\0" L"\x247f" L"\0" L"\x2480" L"\0" L"\x2481" L"\0" L"\x2482" L"\0"
++  L"\x2483" L"\0" L"\x2484" L"\0" L"\x2485" L"\0" L"\x2486" L"\0" L"\x2487"
++  L"\0" L"\x2488" L"\0" L"\x2489" L"\0" L"\x248a" L"\0" L"\x248b" L"\0"
++  L"\x248c" L"\0" L"\x248d" L"\0" L"\x248e" L"\0" L"\x248f" L"\0" L"\x2490"
++  L"\0" L"\x2491" L"\0" L"\x2492" L"\0" L"\x2493" L"\0" L"\x2494" L"\0"
++  L"\x2495" L"\0" L"\x2496" L"\0" L"\x2497" L"\0" L"\x2498" L"\0" L"\x2499"
++  L"\0" L"\x249a" L"\0" L"\x249b" L"\0" L"\x249c" L"\0" L"\x249d" L"\0"
++  L"\x249e" L"\0" L"\x249f" L"\0" L"\x24a0" L"\0" L"\x24a1" L"\0" L"\x24a2"
++  L"\0" L"\x24a3" L"\0" L"\x24a4" L"\0" L"\x24a5" L"\0" L"\x24a6" L"\0"
++  L"\x24a7" L"\0" L"\x24a8" L"\0" L"\x24a9" L"\0" L"\x24aa" L"\0" L"\x24ab"
++  L"\0" L"\x24ac" L"\0" L"\x24ad" L"\0" L"\x24ae" L"\0" L"\x24af" L"\0"
++  L"\x24b0" L"\0" L"\x24b1" L"\0" L"\x24b2" L"\0" L"\x24b3" L"\0" L"\x24b4"
++  L"\0" L"\x24b5" L"\0" L"\x24b6" L"\0" L"\x24b7" L"\0" L"\x24b8" L"\0"
++  L"\x24b9" L"\0" L"\x24ba" L"\0" L"\x24bb" L"\0" L"\x24bc" L"\0" L"\x24bd"
++  L"\0" L"\x24be" L"\0" L"\x24bf" L"\0" L"\x24c0" L"\0" L"\x24c1" L"\0"
++  L"\x24c2" L"\0" L"\x24c3" L"\0" L"\x24c4" L"\0" L"\x24c5" L"\0" L"\x24c6"
++  L"\0" L"\x24c7" L"\0" L"\x24c8" L"\0" L"\x24c9" L"\0" L"\x24ca" L"\0"
++  L"\x24cb" L"\0" L"\x24cc" L"\0" L"\x24cd" L"\0" L"\x24ce" L"\0" L"\x24cf"
++  L"\0" L"\x24d0" L"\0" L"\x24d1" L"\0" L"\x24d2" L"\0" L"\x24d3" L"\0"
++  L"\x24d4" L"\0" L"\x24d5" L"\0" L"\x24d6" L"\0" L"\x24d7" L"\0" L"\x24d8"
++  L"\0" L"\x24d9" L"\0" L"\x24da" L"\0" L"\x24db" L"\0" L"\x24dc" L"\0"
++  L"\x24dd" L"\0" L"\x24de" L"\0" L"\x24df" L"\0" L"\x24e0" L"\0" L"\x24e1"
++  L"\0" L"\x24e2" L"\0" L"\x24e3" L"\0" L"\x24e4" L"\0" L"\x24e5" L"\0"
++  L"\x24e6" L"\0" L"\x24e7" L"\0" L"\x24e8" L"\0" L"\x24e9" L"\0" L"\x24ea"
++  L"\0" L"\x2500" L"\0" L"\x2502" L"\0" L"\x250c" L"\0" L"\x2510" L"\0"
++  L"\x2514" L"\0" L"\x2518" L"\0" L"\x251c" L"\0" L"\x2524" L"\0" L"\x252c"
++  L"\0" L"\x2534" L"\0" L"\x253c" L"\0" L"\x25e6" L"\0" L"\x2a74" L"\0"
++  L"\x2a75" L"\0" L"\x2a76" L"\0" L"\x3000" L"\0" L"\x30a0" L"\0" L"\x3251"
++  L"\0" L"\x3252" L"\0" L"\x3253" L"\0" L"\x3254" L"\0" L"\x3255" L"\0"
++  L"\x3256" L"\0" L"\x3257" L"\0" L"\x3258" L"\0" L"\x3259" L"\0" L"\x325a"
++  L"\0" L"\x325b" L"\0" L"\x325c" L"\0" L"\x325d" L"\0" L"\x325e" L"\0"
++  L"\x325f" L"\0" L"\x32b1" L"\0" L"\x32b2" L"\0" L"\x32b3" L"\0" L"\x32b4"
++  L"\0" L"\x32b5" L"\0" L"\x32b6" L"\0" L"\x32b7" L"\0" L"\x32b8" L"\0"
++  L"\x32b9" L"\0" L"\x32ba" L"\0" L"\x32bb" L"\0" L"\x32bc" L"\0" L"\x32bd"
++  L"\0" L"\x32be" L"\0" L"\x32bf" L"\0" L"\x3371" L"\0" L"\x3372" L"\0"
++  L"\x3373" L"\0" L"\x3374" L"\0" L"\x3375" L"\0" L"\x3376" L"\0" L"\x3380"
++  L"\0" L"\x3381" L"\0" L"\x3382" L"\0" L"\x3383" L"\0" L"\x3384" L"\0"
++  L"\x3385" L"\0" L"\x3386" L"\0" L"\x3387" L"\0" L"\x3388" L"\0" L"\x3389"
++  L"\0" L"\x338a" L"\0" L"\x338b" L"\0" L"\x338c" L"\0" L"\x338d" L"\0"
++  L"\x338e" L"\0" L"\x338f" L"\0" L"\x3390" L"\0" L"\x3391" L"\0" L"\x3392"
++  L"\0" L"\x3393" L"\0" L"\x3394" L"\0" L"\x3395" L"\0" L"\x3396" L"\0"
++  L"\x3397" L"\0" L"\x3398" L"\0" L"\x3399" L"\0" L"\x339a" L"\0" L"\x339b"
++  L"\0" L"\x339c" L"\0" L"\x339d" L"\0" L"\x339e" L"\0" L"\x339f" L"\0"
++  L"\x33a0" L"\0" L"\x33a1" L"\0" L"\x33a2" L"\0" L"\x33a3" L"\0" L"\x33a4"
++  L"\0" L"\x33a5" L"\0" L"\x33a6" L"\0" L"\x33a7" L"\0" L"\x33a8" L"\0"
++  L"\x33a9" L"\0" L"\x33aa" L"\0" L"\x33ab" L"\0" L"\x33ac" L"\0" L"\x33ad"
++  L"\0" L"\x33ae" L"\0" L"\x33af" L"\0" L"\x33b0" L"\0" L"\x33b1" L"\0"
++  L"\x33b2" L"\0" L"\x33b3" L"\0" L"\x33b4" L"\0" L"\x33b5" L"\0" L"\x33b6"
++  L"\0" L"\x33b7" L"\0" L"\x33b8" L"\0" L"\x33b9" L"\0" L"\x33ba" L"\0"
++  L"\x33bb" L"\0" L"\x33bc" L"\0" L"\x33bd" L"\0" L"\x33be" L"\0" L"\x33bf"
++  L"\0" L"\x33c2" L"\0" L"\x33c3" L"\0" L"\x33c4" L"\0" L"\x33c5" L"\0"
++  L"\x33c6" L"\0" L"\x33c7" L"\0" L"\x33c8" L"\0" L"\x33c9" L"\0" L"\x33ca"
++  L"\0" L"\x33cb" L"\0" L"\x33cc" L"\0" L"\x33cd" L"\0" L"\x33ce" L"\0"
++  L"\x33cf" L"\0" L"\x33d0" L"\0" L"\x33d1" L"\0" L"\x33d2" L"\0" L"\x33d3"
++  L"\0" L"\x33d4" L"\0" L"\x33d5" L"\0" L"\x33d6" L"\0" L"\x33d7" L"\0"
++  L"\x33d8" L"\0" L"\x33d9" L"\0" L"\x33da" L"\0" L"\x33db" L"\0" L"\x33dc"
++  L"\0" L"\x33dd" L"\0" L"\xfb00" L"\0" L"\xfb01" L"\0" L"\xfb02" L"\0"
++  L"\xfb03" L"\0" L"\xfb04" L"\0" L"\xfb06" L"\0" L"\xfb29" L"\0" L"\xfe00"
++  L"\0" L"\xfe01" L"\0" L"\xfe02" L"\0" L"\xfe03" L"\0" L"\xfe04" L"\0"
++  L"\xfe05" L"\0" L"\xfe06" L"\0" L"\xfe07" L"\0" L"\xfe08" L"\0" L"\xfe09"
++  L"\0" L"\xfe0a" L"\0" L"\xfe0b" L"\0" L"\xfe0c" L"\0" L"\xfe0d" L"\0"
++  L"\xfe0e" L"\0" L"\xfe0f" L"\0" L"\xfe4d" L"\0" L"\xfe4e" L"\0" L"\xfe4f"
++  L"\0" L"\xfe50" L"\0" L"\xfe52" L"\0" L"\xfe54" L"\0" L"\xfe55" L"\0"
++  L"\xfe56" L"\0" L"\xfe57" L"\0" L"\xfe59" L"\0" L"\xfe5a" L"\0" L"\xfe5b"
++  L"\0" L"\xfe5c" L"\0" L"\xfe5f" L"\0" L"\xfe60" L"\0" L"\xfe61" L"\0"
++  L"\xfe62" L"\0" L"\xfe63" L"\0" L"\xfe64" L"\0" L"\xfe65" L"\0" L"\xfe66"
++  L"\0" L"\xfe68" L"\0" L"\xfe69" L"\0" L"\xfe6a" L"\0" L"\xfe6b" L"\0"
++  L"\xfeff" L"\0" L"\xff01" L"\0" L"\xff02" L"\0" L"\xff03" L"\0" L"\xff04"
++  L"\0" L"\xff05" L"\0" L"\xff06" L"\0" L"\xff07" L"\0" L"\xff08" L"\0"
++  L"\xff09" L"\0" L"\xff0a" L"\0" L"\xff0b" L"\0" L"\xff0c" L"\0" L"\xff0d"
++  L"\0" L"\xff0e" L"\0" L"\xff0f" L"\0" L"\xff10" L"\0" L"\xff11" L"\0"
++  L"\xff12" L"\0" L"\xff13" L"\0" L"\xff14" L"\0" L"\xff15" L"\0" L"\xff16"
++  L"\0" L"\xff17" L"\0" L"\xff18" L"\0" L"\xff19" L"\0" L"\xff1a" L"\0"
++  L"\xff1b" L"\0" L"\xff1c" L"\0" L"\xff1d" L"\0" L"\xff1e" L"\0" L"\xff1f"
++  L"\0" L"\xff20" L"\0" L"\xff21" L"\0" L"\xff22" L"\0" L"\xff23" L"\0"
++  L"\xff24" L"\0" L"\xff25" L"\0" L"\xff26" L"\0" L"\xff27" L"\0" L"\xff28"
++  L"\0" L"\xff29" L"\0" L"\xff2a" L"\0" L"\xff2b" L"\0" L"\xff2c" L"\0"
++  L"\xff2d" L"\0" L"\xff2e" L"\0" L"\xff2f" L"\0" L"\xff30" L"\0" L"\xff31"
++  L"\0" L"\xff32" L"\0" L"\xff33" L"\0" L"\xff34" L"\0" L"\xff35" L"\0"
++  L"\xff36" L"\0" L"\xff37" L"\0" L"\xff38" L"\0" L"\xff39" L"\0" L"\xff3a"
++  L"\0" L"\xff3b" L"\0" L"\xff3c" L"\0" L"\xff3d" L"\0" L"\xff3e" L"\0"
++  L"\xff3f" L"\0" L"\xff40" L"\0" L"\xff41" L"\0" L"\xff42" L"\0" L"\xff43"
++  L"\0" L"\xff44" L"\0" L"\xff45" L"\0" L"\xff46" L"\0" L"\xff47" L"\0"
++  L"\xff48" L"\0" L"\xff49" L"\0" L"\xff4a" L"\0" L"\xff4b" L"\0" L"\xff4c"
++  L"\0" L"\xff4d" L"\0" L"\xff4e" L"\0" L"\xff4f" L"\0" L"\xff50" L"\0"
++  L"\xff51" L"\0" L"\xff52" L"\0" L"\xff53" L"\0" L"\xff54" L"\0" L"\xff55"
++  L"\0" L"\xff56" L"\0" L"\xff57" L"\0" L"\xff58" L"\0" L"\xff59" L"\0"
++  L"\xff5a" L"\0" L"\xff5b" L"\0" L"\xff5c" L"\0" L"\xff5d" L"\0" L"\xff5e"
++  L"\0" L"\x0001d400" L"\0" L"\x0001d401" L"\0" L"\x0001d402" L"\0"
++  L"\x0001d403" L"\0" L"\x0001d404" L"\0" L"\x0001d405" L"\0" L"\x0001d406"
++  L"\0" L"\x0001d407" L"\0" L"\x0001d408" L"\0" L"\x0001d409" L"\0"
++  L"\x0001d40a" L"\0" L"\x0001d40b" L"\0" L"\x0001d40c" L"\0" L"\x0001d40d"
++  L"\0" L"\x0001d40e" L"\0" L"\x0001d40f" L"\0" L"\x0001d410" L"\0"
++  L"\x0001d411" L"\0" L"\x0001d412" L"\0" L"\x0001d413" L"\0" L"\x0001d414"
++  L"\0" L"\x0001d415" L"\0" L"\x0001d416" L"\0" L"\x0001d417" L"\0"
++  L"\x0001d418" L"\0" L"\x0001d419" L"\0" L"\x0001d41a" L"\0" L"\x0001d41b"
++  L"\0" L"\x0001d41c" L"\0" L"\x0001d41d" L"\0" L"\x0001d41e" L"\0"
++  L"\x0001d41f" L"\0" L"\x0001d420" L"\0" L"\x0001d421" L"\0" L"\x0001d422"
++  L"\0" L"\x0001d423" L"\0" L"\x0001d424" L"\0" L"\x0001d425" L"\0"
++  L"\x0001d426" L"\0" L"\x0001d427" L"\0" L"\x0001d428" L"\0" L"\x0001d429"
++  L"\0" L"\x0001d42a" L"\0" L"\x0001d42b" L"\0" L"\x0001d42c" L"\0"
++  L"\x0001d42d" L"\0" L"\x0001d42e" L"\0" L"\x0001d42f" L"\0" L"\x0001d430"
++  L"\0" L"\x0001d431" L"\0" L"\x0001d432" L"\0" L"\x0001d433" L"\0"
++  L"\x0001d434" L"\0" L"\x0001d435" L"\0" L"\x0001d436" L"\0" L"\x0001d437"
++  L"\0" L"\x0001d438" L"\0" L"\x0001d439" L"\0" L"\x0001d43a" L"\0"
++  L"\x0001d43b" L"\0" L"\x0001d43c" L"\0" L"\x0001d43d" L"\0" L"\x0001d43e"
++  L"\0" L"\x0001d43f" L"\0" L"\x0001d440" L"\0" L"\x0001d441" L"\0"
++  L"\x0001d442" L"\0" L"\x0001d443" L"\0" L"\x0001d444" L"\0" L"\x0001d445"
++  L"\0" L"\x0001d446" L"\0" L"\x0001d447" L"\0" L"\x0001d448" L"\0"
++  L"\x0001d449" L"\0" L"\x0001d44a" L"\0" L"\x0001d44b" L"\0" L"\x0001d44c"
++  L"\0" L"\x0001d44d" L"\0" L"\x0001d44e" L"\0" L"\x0001d44f" L"\0"
++  L"\x0001d450" L"\0" L"\x0001d451" L"\0" L"\x0001d452" L"\0" L"\x0001d453"
++  L"\0" L"\x0001d454" L"\0" L"\x0001d456" L"\0" L"\x0001d457" L"\0"
++  L"\x0001d458" L"\0" L"\x0001d459" L"\0" L"\x0001d45a" L"\0" L"\x0001d45b"
++  L"\0" L"\x0001d45c" L"\0" L"\x0001d45d" L"\0" L"\x0001d45e" L"\0"
++  L"\x0001d45f" L"\0" L"\x0001d460" L"\0" L"\x0001d461" L"\0" L"\x0001d462"
++  L"\0" L"\x0001d463" L"\0" L"\x0001d464" L"\0" L"\x0001d465" L"\0"
++  L"\x0001d466" L"\0" L"\x0001d467" L"\0" L"\x0001d468" L"\0" L"\x0001d469"
++  L"\0" L"\x0001d46a" L"\0" L"\x0001d46b" L"\0" L"\x0001d46c" L"\0"
++  L"\x0001d46d" L"\0" L"\x0001d46e" L"\0" L"\x0001d46f" L"\0" L"\x0001d470"
++  L"\0" L"\x0001d471" L"\0" L"\x0001d472" L"\0" L"\x0001d473" L"\0"
++  L"\x0001d474" L"\0" L"\x0001d475" L"\0" L"\x0001d476" L"\0" L"\x0001d477"
++  L"\0" L"\x0001d478" L"\0" L"\x0001d479" L"\0" L"\x0001d47a" L"\0"
++  L"\x0001d47b" L"\0" L"\x0001d47c" L"\0" L"\x0001d47d" L"\0" L"\x0001d47e"
++  L"\0" L"\x0001d47f" L"\0" L"\x0001d480" L"\0" L"\x0001d481" L"\0"
++  L"\x0001d482" L"\0" L"\x0001d483" L"\0" L"\x0001d484" L"\0" L"\x0001d485"
++  L"\0" L"\x0001d486" L"\0" L"\x0001d487" L"\0" L"\x0001d488" L"\0"
++  L"\x0001d489" L"\0" L"\x0001d48a" L"\0" L"\x0001d48b" L"\0" L"\x0001d48c"
++  L"\0" L"\x0001d48d" L"\0" L"\x0001d48e" L"\0" L"\x0001d48f" L"\0"
++  L"\x0001d490" L"\0" L"\x0001d491" L"\0" L"\x0001d492" L"\0" L"\x0001d493"
++  L"\0" L"\x0001d494" L"\0" L"\x0001d495" L"\0" L"\x0001d496" L"\0"
++  L"\x0001d497" L"\0" L"\x0001d498" L"\0" L"\x0001d499" L"\0" L"\x0001d49a"
++  L"\0" L"\x0001d49b" L"\0" L"\x0001d49c" L"\0" L"\x0001d49e" L"\0"
++  L"\x0001d49f" L"\0" L"\x0001d4a2" L"\0" L"\x0001d4a5" L"\0" L"\x0001d4a6"
++  L"\0" L"\x0001d4a9" L"\0" L"\x0001d4aa" L"\0" L"\x0001d4ab" L"\0"
++  L"\x0001d4ac" L"\0" L"\x0001d4ae" L"\0" L"\x0001d4af" L"\0" L"\x0001d4b0"
++  L"\0" L"\x0001d4b1" L"\0" L"\x0001d4b2" L"\0" L"\x0001d4b3" L"\0"
++  L"\x0001d4b4" L"\0" L"\x0001d4b5" L"\0" L"\x0001d4b6" L"\0" L"\x0001d4b7"
++  L"\0" L"\x0001d4b8" L"\0" L"\x0001d4b9" L"\0" L"\x0001d4bb" L"\0"
++  L"\x0001d4bd" L"\0" L"\x0001d4be" L"\0" L"\x0001d4bf" L"\0" L"\x0001d4c0"
++  L"\0" L"\x0001d4c2" L"\0" L"\x0001d4c3" L"\0" L"\x0001d4c5" L"\0"
++  L"\x0001d4c6" L"\0" L"\x0001d4c7" L"\0" L"\x0001d4c8" L"\0" L"\x0001d4c9"
++  L"\0" L"\x0001d4ca" L"\0" L"\x0001d4cb" L"\0" L"\x0001d4cc" L"\0"
++  L"\x0001d4cd" L"\0" L"\x0001d4ce" L"\0" L"\x0001d4cf" L"\0" L"\x0001d4d0"
++  L"\0" L"\x0001d4d1" L"\0" L"\x0001d4d2" L"\0" L"\x0001d4d3" L"\0"
++  L"\x0001d4d4" L"\0" L"\x0001d4d5" L"\0" L"\x0001d4d6" L"\0" L"\x0001d4d7"
++  L"\0" L"\x0001d4d8" L"\0" L"\x0001d4d9" L"\0" L"\x0001d4da" L"\0"
++  L"\x0001d4db" L"\0" L"\x0001d4dc" L"\0" L"\x0001d4dd" L"\0" L"\x0001d4de"
++  L"\0" L"\x0001d4df" L"\0" L"\x0001d4e0" L"\0" L"\x0001d4e1" L"\0"
++  L"\x0001d4e2" L"\0" L"\x0001d4e3" L"\0" L"\x0001d4e4" L"\0" L"\x0001d4e5"
++  L"\0" L"\x0001d4e6" L"\0" L"\x0001d4e7" L"\0" L"\x0001d4e8" L"\0"
++  L"\x0001d4e9" L"\0" L"\x0001d4ea" L"\0" L"\x0001d4eb" L"\0" L"\x0001d4ec"
++  L"\0" L"\x0001d4ed" L"\0" L"\x0001d4ee" L"\0" L"\x0001d4ef" L"\0"
++  L"\x0001d4f0" L"\0" L"\x0001d4f1" L"\0" L"\x0001d4f2" L"\0" L"\x0001d4f3"
++  L"\0" L"\x0001d4f4" L"\0" L"\x0001d4f5" L"\0" L"\x0001d4f6" L"\0"
++  L"\x0001d4f7" L"\0" L"\x0001d4f8" L"\0" L"\x0001d4f9" L"\0" L"\x0001d4fa"
++  L"\0" L"\x0001d4fb" L"\0" L"\x0001d4fc" L"\0" L"\x0001d4fd" L"\0"
++  L"\x0001d4fe" L"\0" L"\x0001d4ff" L"\0" L"\x0001d500" L"\0" L"\x0001d501"
++  L"\0" L"\x0001d502" L"\0" L"\x0001d503" L"\0" L"\x0001d504" L"\0"
++  L"\x0001d505" L"\0" L"\x0001d507" L"\0" L"\x0001d508" L"\0" L"\x0001d509"
++  L"\0" L"\x0001d50a" L"\0" L"\x0001d50d" L"\0" L"\x0001d50e" L"\0"
++  L"\x0001d50f" L"\0" L"\x0001d510" L"\0" L"\x0001d511" L"\0" L"\x0001d512"
++  L"\0" L"\x0001d513" L"\0" L"\x0001d514" L"\0" L"\x0001d516" L"\0"
++  L"\x0001d517" L"\0" L"\x0001d518" L"\0" L"\x0001d519" L"\0" L"\x0001d51a"
++  L"\0" L"\x0001d51b" L"\0" L"\x0001d51c" L"\0" L"\x0001d51e" L"\0"
++  L"\x0001d51f" L"\0" L"\x0001d520" L"\0" L"\x0001d521" L"\0" L"\x0001d522"
++  L"\0" L"\x0001d523" L"\0" L"\x0001d524" L"\0" L"\x0001d525" L"\0"
++  L"\x0001d526" L"\0" L"\x0001d527" L"\0" L"\x0001d528" L"\0" L"\x0001d529"
++  L"\0" L"\x0001d52a" L"\0" L"\x0001d52b" L"\0" L"\x0001d52c" L"\0"
++  L"\x0001d52d" L"\0" L"\x0001d52e" L"\0" L"\x0001d52f" L"\0" L"\x0001d530"
++  L"\0" L"\x0001d531" L"\0" L"\x0001d532" L"\0" L"\x0001d533" L"\0"
++  L"\x0001d534" L"\0" L"\x0001d535" L"\0" L"\x0001d536" L"\0" L"\x0001d537"
++  L"\0" L"\x0001d538" L"\0" L"\x0001d539" L"\0" L"\x0001d53b" L"\0"
++  L"\x0001d53c" L"\0" L"\x0001d53d" L"\0" L"\x0001d53e" L"\0" L"\x0001d540"
++  L"\0" L"\x0001d541" L"\0" L"\x0001d542" L"\0" L"\x0001d543" L"\0"
++  L"\x0001d544" L"\0" L"\x0001d546" L"\0" L"\x0001d54a" L"\0" L"\x0001d54b"
++  L"\0" L"\x0001d54c" L"\0" L"\x0001d54d" L"\0" L"\x0001d54e" L"\0"
++  L"\x0001d54f" L"\0" L"\x0001d550" L"\0" L"\x0001d552" L"\0" L"\x0001d553"
++  L"\0" L"\x0001d554" L"\0" L"\x0001d555" L"\0" L"\x0001d556" L"\0"
++  L"\x0001d557" L"\0" L"\x0001d558" L"\0" L"\x0001d559" L"\0" L"\x0001d55a"
++  L"\0" L"\x0001d55b" L"\0" L"\x0001d55c" L"\0" L"\x0001d55d" L"\0"
++  L"\x0001d55e" L"\0" L"\x0001d55f" L"\0" L"\x0001d560" L"\0" L"\x0001d561"
++  L"\0" L"\x0001d562" L"\0" L"\x0001d563" L"\0" L"\x0001d564" L"\0"
++  L"\x0001d565" L"\0" L"\x0001d566" L"\0" L"\x0001d567" L"\0" L"\x0001d568"
++  L"\0" L"\x0001d569" L"\0" L"\x0001d56a" L"\0" L"\x0001d56b" L"\0"
++  L"\x0001d56c" L"\0" L"\x0001d56d" L"\0" L"\x0001d56e" L"\0" L"\x0001d56f"
++  L"\0" L"\x0001d570" L"\0" L"\x0001d571" L"\0" L"\x0001d572" L"\0"
++  L"\x0001d573" L"\0" L"\x0001d574" L"\0" L"\x0001d575" L"\0" L"\x0001d576"
++  L"\0" L"\x0001d577" L"\0" L"\x0001d578" L"\0" L"\x0001d579" L"\0"
++  L"\x0001d57a" L"\0" L"\x0001d57b" L"\0" L"\x0001d57c" L"\0" L"\x0001d57d"
++  L"\0" L"\x0001d57e" L"\0" L"\x0001d57f" L"\0" L"\x0001d580" L"\0"
++  L"\x0001d581" L"\0" L"\x0001d582" L"\0" L"\x0001d583" L"\0" L"\x0001d584"
++  L"\0" L"\x0001d585" L"\0" L"\x0001d586" L"\0" L"\x0001d587" L"\0"
++  L"\x0001d588" L"\0" L"\x0001d589" L"\0" L"\x0001d58a" L"\0" L"\x0001d58b"
++  L"\0" L"\x0001d58c" L"\0" L"\x0001d58d" L"\0" L"\x0001d58e" L"\0"
++  L"\x0001d58f" L"\0" L"\x0001d590" L"\0" L"\x0001d591" L"\0" L"\x0001d592"
++  L"\0" L"\x0001d593" L"\0" L"\x0001d594" L"\0" L"\x0001d595" L"\0"
++  L"\x0001d596" L"\0" L"\x0001d597" L"\0" L"\x0001d598" L"\0" L"\x0001d599"
++  L"\0" L"\x0001d59a" L"\0" L"\x0001d59b" L"\0" L"\x0001d59c" L"\0"
++  L"\x0001d59d" L"\0" L"\x0001d59e" L"\0" L"\x0001d59f" L"\0" L"\x0001d5a0"
++  L"\0" L"\x0001d5a1" L"\0" L"\x0001d5a2" L"\0" L"\x0001d5a3" L"\0"
++  L"\x0001d5a4" L"\0" L"\x0001d5a5" L"\0" L"\x0001d5a6" L"\0" L"\x0001d5a7"
++  L"\0" L"\x0001d5a8" L"\0" L"\x0001d5a9" L"\0" L"\x0001d5aa" L"\0"
++  L"\x0001d5ab" L"\0" L"\x0001d5ac" L"\0" L"\x0001d5ad" L"\0" L"\x0001d5ae"
++  L"\0" L"\x0001d5af" L"\0" L"\x0001d5b0" L"\0" L"\x0001d5b1" L"\0"
++  L"\x0001d5b2" L"\0" L"\x0001d5b3" L"\0" L"\x0001d5b4" L"\0" L"\x0001d5b5"
++  L"\0" L"\x0001d5b6" L"\0" L"\x0001d5b7" L"\0" L"\x0001d5b8" L"\0"
++  L"\x0001d5b9" L"\0" L"\x0001d5ba" L"\0" L"\x0001d5bb" L"\0" L"\x0001d5bc"
++  L"\0" L"\x0001d5bd" L"\0" L"\x0001d5be" L"\0" L"\x0001d5bf" L"\0"
++  L"\x0001d5c0" L"\0" L"\x0001d5c1" L"\0" L"\x0001d5c2" L"\0" L"\x0001d5c3"
++  L"\0" L"\x0001d5c4" L"\0" L"\x0001d5c5" L"\0" L"\x0001d5c6" L"\0"
++  L"\x0001d5c7" L"\0" L"\x0001d5c8" L"\0" L"\x0001d5c9" L"\0" L"\x0001d5ca"
++  L"\0" L"\x0001d5cb" L"\0" L"\x0001d5cc" L"\0" L"\x0001d5cd" L"\0"
++  L"\x0001d5ce" L"\0" L"\x0001d5cf" L"\0" L"\x0001d5d0" L"\0" L"\x0001d5d1"
++  L"\0" L"\x0001d5d2" L"\0" L"\x0001d5d3" L"\0" L"\x0001d5d4" L"\0"
++  L"\x0001d5d5" L"\0" L"\x0001d5d6" L"\0" L"\x0001d5d7" L"\0" L"\x0001d5d8"
++  L"\0" L"\x0001d5d9" L"\0" L"\x0001d5da" L"\0" L"\x0001d5db" L"\0"
++  L"\x0001d5dc" L"\0" L"\x0001d5dd" L"\0" L"\x0001d5de" L"\0" L"\x0001d5df"
++  L"\0" L"\x0001d5e0" L"\0" L"\x0001d5e1" L"\0" L"\x0001d5e2" L"\0"
++  L"\x0001d5e3" L"\0" L"\x0001d5e4" L"\0" L"\x0001d5e5" L"\0" L"\x0001d5e6"
++  L"\0" L"\x0001d5e7" L"\0" L"\x0001d5e8" L"\0" L"\x0001d5e9" L"\0"
++  L"\x0001d5ea" L"\0" L"\x0001d5eb" L"\0" L"\x0001d5ec" L"\0" L"\x0001d5ed"
++  L"\0" L"\x0001d5ee" L"\0" L"\x0001d5ef" L"\0" L"\x0001d5f0" L"\0"
++  L"\x0001d5f1" L"\0" L"\x0001d5f2" L"\0" L"\x0001d5f3" L"\0" L"\x0001d5f4"
++  L"\0" L"\x0001d5f5" L"\0" L"\x0001d5f6" L"\0" L"\x0001d5f7" L"\0"
++  L"\x0001d5f8" L"\0" L"\x0001d5f9" L"\0" L"\x0001d5fa" L"\0" L"\x0001d5fb"
++  L"\0" L"\x0001d5fc" L"\0" L"\x0001d5fd" L"\0" L"\x0001d5fe" L"\0"
++  L"\x0001d5ff" L"\0" L"\x0001d600" L"\0" L"\x0001d601" L"\0" L"\x0001d602"
++  L"\0" L"\x0001d603" L"\0" L"\x0001d604" L"\0" L"\x0001d605" L"\0"
++  L"\x0001d606" L"\0" L"\x0001d607" L"\0" L"\x0001d608" L"\0" L"\x0001d609"
++  L"\0" L"\x0001d60a" L"\0" L"\x0001d60b" L"\0" L"\x0001d60c" L"\0"
++  L"\x0001d60d" L"\0" L"\x0001d60e" L"\0" L"\x0001d60f" L"\0" L"\x0001d610"
++  L"\0" L"\x0001d611" L"\0" L"\x0001d612" L"\0" L"\x0001d613" L"\0"
++  L"\x0001d614" L"\0" L"\x0001d615" L"\0" L"\x0001d616" L"\0" L"\x0001d617"
++  L"\0" L"\x0001d618" L"\0" L"\x0001d619" L"\0" L"\x0001d61a" L"\0"
++  L"\x0001d61b" L"\0" L"\x0001d61c" L"\0" L"\x0001d61d" L"\0" L"\x0001d61e"
++  L"\0" L"\x0001d61f" L"\0" L"\x0001d620" L"\0" L"\x0001d621" L"\0"
++  L"\x0001d622" L"\0" L"\x0001d623" L"\0" L"\x0001d624" L"\0" L"\x0001d625"
++  L"\0" L"\x0001d626" L"\0" L"\x0001d627" L"\0" L"\x0001d628" L"\0"
++  L"\x0001d629" L"\0" L"\x0001d62a" L"\0" L"\x0001d62b" L"\0" L"\x0001d62c"
++  L"\0" L"\x0001d62d" L"\0" L"\x0001d62e" L"\0" L"\x0001d62f" L"\0"
++  L"\x0001d630" L"\0" L"\x0001d631" L"\0" L"\x0001d632" L"\0" L"\x0001d633"
++  L"\0" L"\x0001d634" L"\0" L"\x0001d635" L"\0" L"\x0001d636" L"\0"
++  L"\x0001d637" L"\0" L"\x0001d638" L"\0" L"\x0001d639" L"\0" L"\x0001d63a"
++  L"\0" L"\x0001d63b" L"\0" L"\x0001d63c" L"\0" L"\x0001d63d" L"\0"
++  L"\x0001d63e" L"\0" L"\x0001d63f" L"\0" L"\x0001d640" L"\0" L"\x0001d641"
++  L"\0" L"\x0001d642" L"\0" L"\x0001d643" L"\0" L"\x0001d644" L"\0"
++  L"\x0001d645" L"\0" L"\x0001d646" L"\0" L"\x0001d647" L"\0" L"\x0001d648"
++  L"\0" L"\x0001d649" L"\0" L"\x0001d64a" L"\0" L"\x0001d64b" L"\0"
++  L"\x0001d64c" L"\0" L"\x0001d64d" L"\0" L"\x0001d64e" L"\0" L"\x0001d64f"
++  L"\0" L"\x0001d650" L"\0" L"\x0001d651" L"\0" L"\x0001d652" L"\0"
++  L"\x0001d653" L"\0" L"\x0001d654" L"\0" L"\x0001d655" L"\0" L"\x0001d656"
++  L"\0" L"\x0001d657" L"\0" L"\x0001d658" L"\0" L"\x0001d659" L"\0"
++  L"\x0001d65a" L"\0" L"\x0001d65b" L"\0" L"\x0001d65c" L"\0" L"\x0001d65d"
++  L"\0" L"\x0001d65e" L"\0" L"\x0001d65f" L"\0" L"\x0001d660" L"\0"
++  L"\x0001d661" L"\0" L"\x0001d662" L"\0" L"\x0001d663" L"\0" L"\x0001d664"
++  L"\0" L"\x0001d665" L"\0" L"\x0001d666" L"\0" L"\x0001d667" L"\0"
++  L"\x0001d668" L"\0" L"\x0001d669" L"\0" L"\x0001d66a" L"\0" L"\x0001d66b"
++  L"\0" L"\x0001d66c" L"\0" L"\x0001d66d" L"\0" L"\x0001d66e" L"\0"
++  L"\x0001d66f" L"\0" L"\x0001d670" L"\0" L"\x0001d671" L"\0" L"\x0001d672"
++  L"\0" L"\x0001d673" L"\0" L"\x0001d674" L"\0" L"\x0001d675" L"\0"
++  L"\x0001d676" L"\0" L"\x0001d677" L"\0" L"\x0001d678" L"\0" L"\x0001d679"
++  L"\0" L"\x0001d67a" L"\0" L"\x0001d67b" L"\0" L"\x0001d67c" L"\0"
++  L"\x0001d67d" L"\0" L"\x0001d67e" L"\0" L"\x0001d67f" L"\0" L"\x0001d680"
++  L"\0" L"\x0001d681" L"\0" L"\x0001d682" L"\0" L"\x0001d683" L"\0"
++  L"\x0001d684" L"\0" L"\x0001d685" L"\0" L"\x0001d686" L"\0" L"\x0001d687"
++  L"\0" L"\x0001d688" L"\0" L"\x0001d689" L"\0" L"\x0001d68a" L"\0"
++  L"\x0001d68b" L"\0" L"\x0001d68c" L"\0" L"\x0001d68d" L"\0" L"\x0001d68e"
++  L"\0" L"\x0001d68f" L"\0" L"\x0001d690" L"\0" L"\x0001d691" L"\0"
++  L"\x0001d692" L"\0" L"\x0001d693" L"\0" L"\x0001d694" L"\0" L"\x0001d695"
++  L"\0" L"\x0001d696" L"\0" L"\x0001d697" L"\0" L"\x0001d698" L"\0"
++  L"\x0001d699" L"\0" L"\x0001d69a" L"\0" L"\x0001d69b" L"\0" L"\x0001d69c"
++  L"\0" L"\x0001d69d" L"\0" L"\x0001d69e" L"\0" L"\x0001d69f" L"\0"
++  L"\x0001d6a0" L"\0" L"\x0001d6a1" L"\0" L"\x0001d6a2" L"\0" L"\x0001d6a3"
++  L"\0" L"\x0001d7ce" L"\0" L"\x0001d7cf" L"\0" L"\x0001d7d0" L"\0"
++  L"\x0001d7d1" L"\0" L"\x0001d7d2" L"\0" L"\x0001d7d3" L"\0" L"\x0001d7d4"
++  L"\0" L"\x0001d7d5" L"\0" L"\x0001d7d6" L"\0" L"\x0001d7d7" L"\0"
++  L"\x0001d7d8" L"\0" L"\x0001d7d9" L"\0" L"\x0001d7da" L"\0" L"\x0001d7db"
++  L"\0" L"\x0001d7dc" L"\0" L"\x0001d7dd" L"\0" L"\x0001d7de" L"\0"
++  L"\x0001d7df" L"\0" L"\x0001d7e0" L"\0" L"\x0001d7e1" L"\0" L"\x0001d7e2"
++  L"\0" L"\x0001d7e3" L"\0" L"\x0001d7e4" L"\0" L"\x0001d7e5" L"\0"
++  L"\x0001d7e6" L"\0" L"\x0001d7e7" L"\0" L"\x0001d7e8" L"\0" L"\x0001d7e9"
++  L"\0" L"\x0001d7ea" L"\0" L"\x0001d7eb" L"\0" L"\x0001d7ec" L"\0"
++  L"\x0001d7ed" L"\0" L"\x0001d7ee" L"\0" L"\x0001d7ef" L"\0" L"\x0001d7f0"
++  L"\0" L"\x0001d7f1" L"\0" L"\x0001d7f2" L"\0" L"\x0001d7f3" L"\0"
++  L"\x0001d7f4" L"\0" L"\x0001d7f5" L"\0" L"\x0001d7f6" L"\0" L"\x0001d7f7"
++  L"\0" L"\x0001d7f8" L"\0" L"\x0001d7f9" L"\0" L"\x0001d7fa" L"\0"
++  L"\x0001d7fb" L"\0" L"\x0001d7fc" L"\0" L"\x0001d7fd" L"\0" L"\x0001d7fe"
++  L"\0" L"\x0001d7ff";
+ static const uint32_t translit_to_idx[] =
+ {
+      0,    3,    8,   12,   15,   20,   23,   26,   30,   37,   44,   51,
+@@ -471,22 +471,22 @@ static const uint32_t translit_to_idx[] 
+    180,  183,  186,  189,  192,  196,  199,  202,  205,  208,  211,  214,
+    217,  221,  224,  227,  230,  233,  237,  242,  245,  248,  252,  257,
+    260,  263,  267,  270,  274,  278,  282,  285,  287,  289,  291,  293,
+-   297,  302,  307,  312,  315,  320,  325,  328,  331,  334,  337,  340,
+-   343,  346,  349,  352,  355,  359,  362,  365,  368,  371,  374,  379,
+-   385,  388,  393,  396,  399,  402,  405,  408,  411,  414,  417,  420,
+-   423,  426,  429,  432,  435,  438,  445,  452,  459,  466,  473,  480,
+-   487,  494,  501,  508,  515,  522,  527,  530,  534,  539,  543,  546,
+-   550,  555,  561,  565,  568,  572,  577,  580,  583,  586,  589,  592,
+-   596,  601,  605,  608,  612,  617,  623,  627,  630,  634,  639,  642,
+-   645,  648,  651,  655,  659,  664,  668,  672,  677,  680,  683,  686,
+-   689,  692,  695,  698,  702,  706,  710,  714,  719,  724,  729,  734,
+-   739,  744,  749,  754,  759,  764,  768,  772,  776,  780,  784,  788,
+-   792,  796,  801,  806,  811,  816,  821,  826,  831,  836,  841,  845,
+-   850,  855,  859,  863,  867,  871,  875,  880,  883,  887,  892,  897,
+-   902,  907,  912,  917,  922,  927,  932,  938,  944,  950,  956,  962,
+-   968,  974,  980,  986,  992,  998, 1003, 1008, 1013, 1018, 1023, 1028,
+-  1033, 1038, 1043, 1049, 1055, 1061, 1067, 1073, 1079, 1085, 1091, 1097,
+-  1103, 1109, 1113, 1117, 1121, 1125, 1129, 1133, 1137, 1141, 1145, 1150,
++   297,  302,  307,  312,  317,  320,  325,  330,  333,  336,  339,  342,
++   345,  348,  351,  354,  357,  360,  364,  367,  370,  373,  376,  379,
++   384,  390,  393,  398,  401,  404,  407,  410,  413,  416,  419,  422,
++   425,  428,  431,  434,  437,  440,  443,  450,  457,  464,  471,  478,
++   485,  492,  499,  506,  513,  520,  527,  532,  535,  539,  544,  548,
++   551,  555,  560,  566,  570,  573,  577,  582,  585,  588,  591,  594,
++   597,  601,  606,  610,  613,  617,  622,  628,  632,  635,  639,  644,
++   647,  650,  653,  656,  660,  664,  669,  673,  677,  682,  685,  688,
++   691,  694,  697,  700,  703,  707,  711,  715,  719,  724,  729,  734,
++   739,  744,  749,  754,  759,  764,  769,  773,  777,  781,  785,  789,
++   793,  797,  801,  806,  811,  816,  821,  826,  831,  836,  841,  846,
++   850,  855,  860,  864,  868,  872,  876,  880,  885,  888,  892,  897,
++   902,  907,  912,  917,  922,  927,  932,  937,  943,  949,  955,  961,
++   967,  973,  979,  985,  991,  997, 1003, 1008, 1013, 1018, 1023, 1028,
++  1033, 1038, 1043, 1048, 1054, 1060, 1066, 1072, 1078, 1084, 1090, 1096,
++  1102, 1108, 1114, 1118, 1122, 1126, 1130, 1134, 1138, 1142, 1146, 1150,
+   1155, 1160, 1165, 1170, 1175, 1180, 1185, 1190, 1195, 1200, 1205, 1210,
+   1215, 1220, 1225, 1230, 1235, 1240, 1245, 1250, 1255, 1260, 1265, 1270,
+   1275, 1280, 1285, 1290, 1295, 1300, 1305, 1310, 1315, 1320, 1325, 1330,
+@@ -494,89 +494,89 @@ static const uint32_t translit_to_idx[] 
+   1395, 1400, 1405, 1410, 1415, 1420, 1425, 1430, 1435, 1440, 1445, 1450,
+   1455, 1460, 1465, 1470, 1475, 1480, 1485, 1490, 1495, 1500, 1505, 1510,
+   1515, 1520, 1525, 1530, 1535, 1540, 1545, 1550, 1555, 1560, 1565, 1570,
+-  1575, 1580, 1585, 1590, 1595, 1598, 1601, 1604, 1607, 1610, 1613, 1616,
+-  1619, 1622, 1625, 1628, 1631, 1636, 1640, 1645, 1648, 1651, 1657, 1663,
+-  1669, 1675, 1681, 1687, 1693, 1699, 1705, 1711, 1717, 1723, 1729, 1735,
+-  1741, 1747, 1753, 1759, 1765, 1771, 1777, 1783, 1789, 1795, 1801, 1807,
+-  1813, 1819, 1825, 1831, 1836, 1840, 1844, 1849, 1853, 1857, 1861, 1865,
+-  1869, 1873, 1877, 1881, 1885, 1889, 1894, 1900, 1904, 1908, 1912, 1916,
+-  1920, 1924, 1928, 1933, 1938, 1943, 1948, 1952, 1956, 1960, 1964, 1968,
+-  1972, 1976, 1980, 1984, 1988, 1994, 2000, 2005, 2011, 2017, 2023, 2028,
+-  2034, 2039, 2046, 2050, 2055, 2060, 2065, 2070, 2077, 2086, 2090, 2094,
+-  2098, 2102, 2106, 2110, 2114, 2118, 2122, 2126, 2130, 2134, 2138, 2142,
+-  2146, 2150, 2156, 2160, 2164, 2168, 2174, 2179, 2183, 2187, 2191, 2195,
+-  2199, 2203, 2207, 2211, 2215, 2219, 2224, 2228, 2232, 2237, 2242, 2246,
+-  2252, 2257, 2261, 2265, 2269, 2273, 2277, 2281, 2285, 2290, 2295, 2299,
+-  2302, 2304, 2306, 2308, 2310, 2312, 2314, 2316, 2318, 2320, 2322, 2324,
+-  2326, 2328, 2330, 2332, 2334, 2337, 2340, 2343, 2346, 2349, 2352, 2355,
+-  2358, 2361, 2364, 2367, 2370, 2373, 2376, 2379, 2382, 2385, 2388, 2391,
+-  2394, 2397, 2400, 2403, 2406, 2409, 2411, 2414, 2417, 2420, 2423, 2426,
+-  2429, 2432, 2435, 2438, 2441, 2444, 2447, 2450, 2453, 2456, 2459, 2462,
+-  2465, 2468, 2471, 2474, 2477, 2480, 2483, 2486, 2489, 2492, 2495, 2498,
+-  2501, 2504, 2507, 2510, 2513, 2516, 2519, 2522, 2525, 2528, 2531, 2534,
+-  2537, 2540, 2543, 2546, 2549, 2552, 2555, 2558, 2561, 2564, 2567, 2570,
+-  2573, 2576, 2579, 2582, 2585, 2588, 2591, 2594, 2597, 2600, 2603, 2606,
+-  2609, 2612, 2615, 2618, 2621, 2624, 2627, 2630, 2633, 2636, 2639, 2642,
+-  2645, 2648, 2651, 2654, 2657, 2660, 2663, 2666, 2669, 2672, 2675, 2678,
+-  2681, 2684, 2687, 2690, 2693, 2696, 2699, 2702, 2705, 2708, 2711, 2714,
+-  2717, 2720, 2723, 2726, 2729, 2732, 2735, 2738, 2741, 2744, 2747, 2750,
+-  2753, 2756, 2759, 2762, 2765, 2768, 2771, 2774, 2777, 2780, 2783, 2786,
+-  2789, 2792, 2795, 2798, 2801, 2804, 2807, 2810, 2813, 2816, 2819, 2822,
+-  2825, 2828, 2831, 2834, 2837, 2840, 2843, 2846, 2849, 2852, 2855, 2858,
+-  2861, 2864, 2867, 2870, 2873, 2876, 2879, 2882, 2885, 2888, 2891, 2894,
+-  2897, 2900, 2903, 2906, 2909, 2912, 2915, 2918, 2921, 2924, 2927, 2930,
+-  2933, 2936, 2939, 2942, 2945, 2948, 2951, 2954, 2957, 2960, 2963, 2966,
+-  2969, 2972, 2975, 2978, 2981, 2984, 2987, 2990, 2993, 2996, 2999, 3002,
+-  3005, 3008, 3011, 3014, 3017, 3020, 3023, 3026, 3029, 3032, 3035, 3038,
+-  3041, 3044, 3047, 3050, 3053, 3056, 3059, 3062, 3065, 3068, 3071, 3074,
+-  3077, 3080, 3083, 3086, 3089, 3092, 3095, 3098, 3101, 3104, 3107, 3110,
+-  3113, 3116, 3119, 3122, 3125, 3128, 3131, 3134, 3137, 3140, 3143, 3146,
+-  3149, 3152, 3155, 3158, 3161, 3164, 3167, 3170, 3173, 3176, 3179, 3182,
+-  3185, 3188, 3191, 3194, 3197, 3200, 3203, 3206, 3209, 3212, 3215, 3218,
+-  3221, 3224, 3227, 3230, 3233, 3236, 3239, 3242, 3245, 3248, 3251, 3254,
+-  3257, 3260, 3263, 3266, 3269, 3272, 3275, 3278, 3281, 3284, 3287, 3290,
+-  3293, 3296, 3299, 3302, 3305, 3308, 3311, 3314, 3317, 3320, 3323, 3326,
+-  3329, 3332, 3335, 3338, 3341, 3344, 3347, 3350, 3353, 3356, 3359, 3362,
+-  3365, 3368, 3371, 3374, 3377, 3380, 3383, 3386, 3389, 3392, 3395, 3398,
+-  3401, 3404, 3407, 3410, 3413, 3416, 3419, 3422, 3425, 3428, 3431, 3434,
+-  3437, 3440, 3443, 3446, 3449, 3452, 3455, 3458, 3461, 3464, 3467, 3470,
+-  3473, 3476, 3479, 3482, 3485, 3488, 3491, 3494, 3497, 3500, 3503, 3506,
+-  3509, 3512, 3515, 3518, 3521, 3524, 3527, 3530, 3533, 3536, 3539, 3542,
+-  3545, 3548, 3551, 3554, 3557, 3560, 3563, 3566, 3569, 3572, 3575, 3578,
+-  3581, 3584, 3587, 3590, 3593, 3596, 3599, 3602, 3605, 3608, 3611, 3614,
+-  3617, 3620, 3623, 3626, 3629, 3632, 3635, 3638, 3641, 3644, 3647, 3650,
+-  3653, 3656, 3659, 3662, 3665, 3668, 3671, 3674, 3677, 3680, 3683, 3686,
+-  3689, 3692, 3695, 3698, 3701, 3704, 3707, 3710, 3713, 3716, 3719, 3722,
+-  3725, 3728, 3731, 3734, 3737, 3740, 3743, 3746, 3749, 3752, 3755, 3758,
+-  3761, 3764, 3767, 3770, 3773, 3776, 3779, 3782, 3785, 3788, 3791, 3794,
+-  3797, 3800, 3803, 3806, 3809, 3812, 3815, 3818, 3821, 3824, 3827, 3830,
+-  3833, 3836, 3839, 3842, 3845, 3848, 3851, 3854, 3857, 3860, 3863, 3866,
+-  3869, 3872, 3875, 3878, 3881, 3884, 3887, 3890, 3893, 3896, 3899, 3902,
+-  3905, 3908, 3911, 3914, 3917, 3920, 3923, 3926, 3929, 3932, 3935, 3938,
+-  3941, 3944, 3947, 3950, 3953, 3956, 3959, 3962, 3965, 3968, 3971, 3974,
+-  3977, 3980, 3983, 3986, 3989, 3992, 3995, 3998, 4001, 4004, 4007, 4010,
+-  4013, 4016, 4019, 4022, 4025, 4028, 4031, 4034, 4037, 4040, 4043, 4046,
+-  4049, 4052, 4055, 4058, 4061, 4064, 4067, 4070, 4073, 4076, 4079, 4082,
+-  4085, 4088, 4091, 4094, 4097, 4100, 4103, 4106, 4109, 4112, 4115, 4118,
+-  4121, 4124, 4127, 4130, 4133, 4136, 4139, 4142, 4145, 4148, 4151, 4154,
+-  4157, 4160, 4163, 4166, 4169, 4172, 4175, 4178, 4181, 4184, 4187, 4190,
+-  4193, 4196, 4199, 4202, 4205, 4208, 4211, 4214, 4217, 4220, 4223, 4226,
+-  4229, 4232, 4235, 4238, 4241, 4244, 4247, 4250, 4253, 4256, 4259, 4262,
+-  4265, 4268, 4271, 4274, 4277, 4280, 4283, 4286, 4289, 4292, 4295, 4298,
+-  4301, 4304, 4307, 4310, 4313, 4316, 4319, 4322, 4325, 4328, 4331, 4334,
+-  4337, 4340, 4343, 4346, 4349, 4352, 4355, 4358, 4361, 4364, 4367, 4370,
+-  4373, 4376, 4379, 4382, 4385, 4388, 4391, 4394, 4397, 4400, 4403, 4406,
+-  4409, 4412, 4415, 4418, 4421, 4424, 4427, 4430, 4433, 4436, 4439, 4442,
+-  4445, 4448, 4451, 4454, 4457, 4460, 4463, 4466, 4469, 4472, 4475, 4478,
+-  4481, 4484, 4487, 4490, 4493, 4496, 4499, 4502, 4505, 4508, 4511, 4514,
+-  4517, 4520, 4523, 4526, 4529, 4532, 4535, 4538, 4541, 4544, 4547, 4550,
+-  4553, 4556, 4559, 4562, 4565, 4568, 4571, 4574, 4577, 4580, 4583, 4586,
+-  4589, 4592, 4595, 4598, 4601, 4604, 4607, 4610, 4613, 4616, 4619, 4622,
+-  4625, 4628, 4631, 4634, 4637, 4640, 4643, 4646, 4649, 4652, 4655, 4658,
+-  4661, 4664, 4667, 4670, 4673, 4676, 4679, 4682, 4685, 4688, 4691, 4694,
+-  4697, 4700, 4703, 4706, 4709, 4712, 4715, 4718, 4721, 4724, 4727, 4730,
+-  4733, 4736, 4739, 4742, 4745, 4748, 4751, 4754, 4757, 4760, 4763, 4766,
+-  4769, 4772, 4775, 4778, 4781, 4784, 4787, 4790, 4793
++  1575, 1580, 1585, 1590, 1595, 1600, 1603, 1606, 1609, 1612, 1615, 1618,
++  1621, 1624, 1627, 1630, 1633, 1636, 1641, 1645, 1650, 1653, 1656, 1662,
++  1668, 1674, 1680, 1686, 1692, 1698, 1704, 1710, 1716, 1722, 1728, 1734,
++  1740, 1746, 1752, 1758, 1764, 1770, 1776, 1782, 1788, 1794, 1800, 1806,
++  1812, 1818, 1824, 1830, 1836, 1841, 1845, 1849, 1854, 1858, 1862, 1866,
++  1870, 1874, 1878, 1882, 1886, 1890, 1894, 1899, 1905, 1909, 1913, 1917,
++  1921, 1925, 1929, 1933, 1938, 1943, 1948, 1953, 1957, 1961, 1965, 1969,
++  1973, 1977, 1981, 1985, 1989, 1993, 1999, 2005, 2010, 2016, 2022, 2028,
++  2033, 2039, 2044, 2051, 2055, 2060, 2065, 2070, 2075, 2082, 2091, 2095,
++  2099, 2103, 2107, 2111, 2115, 2119, 2123, 2127, 2131, 2135, 2139, 2143,
++  2147, 2151, 2155, 2161, 2165, 2169, 2173, 2179, 2184, 2188, 2192, 2196,
++  2200, 2204, 2208, 2212, 2216, 2220, 2224, 2229, 2233, 2237, 2242, 2247,
++  2251, 2257, 2262, 2266, 2270, 2274, 2278, 2282, 2286, 2290, 2295, 2300,
++  2304, 2307, 2309, 2311, 2313, 2315, 2317, 2319, 2321, 2323, 2325, 2327,
++  2329, 2331, 2333, 2335, 2337, 2339, 2342, 2345, 2348, 2351, 2354, 2357,
++  2360, 2363, 2366, 2369, 2372, 2375, 2378, 2381, 2384, 2387, 2390, 2393,
++  2396, 2399, 2402, 2405, 2408, 2411, 2414, 2416, 2419, 2422, 2425, 2428,
++  2431, 2434, 2437, 2440, 2443, 2446, 2449, 2452, 2455, 2458, 2461, 2464,
++  2467, 2470, 2473, 2476, 2479, 2482, 2485, 2488, 2491, 2494, 2497, 2500,
++  2503, 2506, 2509, 2512, 2515, 2518, 2521, 2524, 2527, 2530, 2533, 2536,
++  2539, 2542, 2545, 2548, 2551, 2554, 2557, 2560, 2563, 2566, 2569, 2572,
++  2575, 2578, 2581, 2584, 2587, 2590, 2593, 2596, 2599, 2602, 2605, 2608,
++  2611, 2614, 2617, 2620, 2623, 2626, 2629, 2632, 2635, 2638, 2641, 2644,
++  2647, 2650, 2653, 2656, 2659, 2662, 2665, 2668, 2671, 2674, 2677, 2680,
++  2683, 2686, 2689, 2692, 2695, 2698, 2701, 2704, 2707, 2710, 2713, 2716,
++  2719, 2722, 2725, 2728, 2731, 2734, 2737, 2740, 2743, 2746, 2749, 2752,
++  2755, 2758, 2761, 2764, 2767, 2770, 2773, 2776, 2779, 2782, 2785, 2788,
++  2791, 2794, 2797, 2800, 2803, 2806, 2809, 2812, 2815, 2818, 2821, 2824,
++  2827, 2830, 2833, 2836, 2839, 2842, 2845, 2848, 2851, 2854, 2857, 2860,
++  2863, 2866, 2869, 2872, 2875, 2878, 2881, 2884, 2887, 2890, 2893, 2896,
++  2899, 2902, 2905, 2908, 2911, 2914, 2917, 2920, 2923, 2926, 2929, 2932,
++  2935, 2938, 2941, 2944, 2947, 2950, 2953, 2956, 2959, 2962, 2965, 2968,
++  2971, 2974, 2977, 2980, 2983, 2986, 2989, 2992, 2995, 2998, 3001, 3004,
++  3007, 3010, 3013, 3016, 3019, 3022, 3025, 3028, 3031, 3034, 3037, 3040,
++  3043, 3046, 3049, 3052, 3055, 3058, 3061, 3064, 3067, 3070, 3073, 3076,
++  3079, 3082, 3085, 3088, 3091, 3094, 3097, 3100, 3103, 3106, 3109, 3112,
++  3115, 3118, 3121, 3124, 3127, 3130, 3133, 3136, 3139, 3142, 3145, 3148,
++  3151, 3154, 3157, 3160, 3163, 3166, 3169, 3172, 3175, 3178, 3181, 3184,
++  3187, 3190, 3193, 3196, 3199, 3202, 3205, 3208, 3211, 3214, 3217, 3220,
++  3223, 3226, 3229, 3232, 3235, 3238, 3241, 3244, 3247, 3250, 3253, 3256,
++  3259, 3262, 3265, 3268, 3271, 3274, 3277, 3280, 3283, 3286, 3289, 3292,
++  3295, 3298, 3301, 3304, 3307, 3310, 3313, 3316, 3319, 3322, 3325, 3328,
++  3331, 3334, 3337, 3340, 3343, 3346, 3349, 3352, 3355, 3358, 3361, 3364,
++  3367, 3370, 3373, 3376, 3379, 3382, 3385, 3388, 3391, 3394, 3397, 3400,
++  3403, 3406, 3409, 3412, 3415, 3418, 3421, 3424, 3427, 3430, 3433, 3436,
++  3439, 3442, 3445, 3448, 3451, 3454, 3457, 3460, 3463, 3466, 3469, 3472,
++  3475, 3478, 3481, 3484, 3487, 3490, 3493, 3496, 3499, 3502, 3505, 3508,
++  3511, 3514, 3517, 3520, 3523, 3526, 3529, 3532, 3535, 3538, 3541, 3544,
++  3547, 3550, 3553, 3556, 3559, 3562, 3565, 3568, 3571, 3574, 3577, 3580,
++  3583, 3586, 3589, 3592, 3595, 3598, 3601, 3604, 3607, 3610, 3613, 3616,
++  3619, 3622, 3625, 3628, 3631, 3634, 3637, 3640, 3643, 3646, 3649, 3652,
++  3655, 3658, 3661, 3664, 3667, 3670, 3673, 3676, 3679, 3682, 3685, 3688,
++  3691, 3694, 3697, 3700, 3703, 3706, 3709, 3712, 3715, 3718, 3721, 3724,
++  3727, 3730, 3733, 3736, 3739, 3742, 3745, 3748, 3751, 3754, 3757, 3760,
++  3763, 3766, 3769, 3772, 3775, 3778, 3781, 3784, 3787, 3790, 3793, 3796,
++  3799, 3802, 3805, 3808, 3811, 3814, 3817, 3820, 3823, 3826, 3829, 3832,
++  3835, 3838, 3841, 3844, 3847, 3850, 3853, 3856, 3859, 3862, 3865, 3868,
++  3871, 3874, 3877, 3880, 3883, 3886, 3889, 3892, 3895, 3898, 3901, 3904,
++  3907, 3910, 3913, 3916, 3919, 3922, 3925, 3928, 3931, 3934, 3937, 3940,
++  3943, 3946, 3949, 3952, 3955, 3958, 3961, 3964, 3967, 3970, 3973, 3976,
++  3979, 3982, 3985, 3988, 3991, 3994, 3997, 4000, 4003, 4006, 4009, 4012,
++  4015, 4018, 4021, 4024, 4027, 4030, 4033, 4036, 4039, 4042, 4045, 4048,
++  4051, 4054, 4057, 4060, 4063, 4066, 4069, 4072, 4075, 4078, 4081, 4084,
++  4087, 4090, 4093, 4096, 4099, 4102, 4105, 4108, 4111, 4114, 4117, 4120,
++  4123, 4126, 4129, 4132, 4135, 4138, 4141, 4144, 4147, 4150, 4153, 4156,
++  4159, 4162, 4165, 4168, 4171, 4174, 4177, 4180, 4183, 4186, 4189, 4192,
++  4195, 4198, 4201, 4204, 4207, 4210, 4213, 4216, 4219, 4222, 4225, 4228,
++  4231, 4234, 4237, 4240, 4243, 4246, 4249, 4252, 4255, 4258, 4261, 4264,
++  4267, 4270, 4273, 4276, 4279, 4282, 4285, 4288, 4291, 4294, 4297, 4300,
++  4303, 4306, 4309, 4312, 4315, 4318, 4321, 4324, 4327, 4330, 4333, 4336,
++  4339, 4342, 4345, 4348, 4351, 4354, 4357, 4360, 4363, 4366, 4369, 4372,
++  4375, 4378, 4381, 4384, 4387, 4390, 4393, 4396, 4399, 4402, 4405, 4408,
++  4411, 4414, 4417, 4420, 4423, 4426, 4429, 4432, 4435, 4438, 4441, 4444,
++  4447, 4450, 4453, 4456, 4459, 4462, 4465, 4468, 4471, 4474, 4477, 4480,
++  4483, 4486, 4489, 4492, 4495, 4498, 4501, 4504, 4507, 4510, 4513, 4516,
++  4519, 4522, 4525, 4528, 4531, 4534, 4537, 4540, 4543, 4546, 4549, 4552,
++  4555, 4558, 4561, 4564, 4567, 4570, 4573, 4576, 4579, 4582, 4585, 4588,
++  4591, 4594, 4597, 4600, 4603, 4606, 4609, 4612, 4615, 4618, 4621, 4624,
++  4627, 4630, 4633, 4636, 4639, 4642, 4645, 4648, 4651, 4654, 4657, 4660,
++  4663, 4666, 4669, 4672, 4675, 4678, 4681, 4684, 4687, 4690, 4693, 4696,
++  4699, 4702, 4705, 4708, 4711, 4714, 4717, 4720, 4723, 4726, 4729, 4732,
++  4735, 4738, 4741, 4744, 4747, 4750, 4753, 4756, 4759, 4762, 4765, 4768,
++  4771, 4774, 4777, 4780, 4783, 4786, 4789, 4792, 4795, 4798
+ };
+ static const wchar_t translit_to_tbl[] =
+   L" \0" L"\0" L"(C)\0" L"\0" L"<<\0" L"\0" L"-\0" L"\0" L"(R)\0" L"\0" L"u\0"
+@@ -594,73 +594,73 @@ static const wchar_t translit_to_tbl[] =
+   L"\0" L"..\0" L"\0" L"...\0" L"\0" L" \0" L"\0" L"`\0" L"\0" L"``\0" L"\0"
+   L"```\0" L"\0" L"<\0" L"\0" L">\0" L"\0" L"!!\0" L"\0" L"/\0" L"\0" L"??\0"
+   L"\0" L"?!\0" L"\0" L"!?\0" L"\0" L" \0" L"\0" L"\0" L"\0" L"\0" L"\0" L"\0"
+-  L"\0" L"\0" L"\0" L"Rs\0" L"\0" L"EUR\0" L"\0" L"a/c\0" L"\0" L"a/s\0" L"\0"
+-  L"C\0" L"\0" L"c/o\0" L"\0" L"c/u\0" L"\0" L"g\0" L"\0" L"H\0" L"\0" L"H\0"
+-  L"\0" L"H\0" L"\0" L"h\0" L"\0" L"I\0" L"\0" L"I\0" L"\0" L"L\0" L"\0"
+-  L"l\0" L"\0" L"N\0" L"\0" L"No\0" L"\0" L"P\0" L"\0" L"Q\0" L"\0" L"R\0"
+-  L"\0" L"R\0" L"\0" L"R\0" L"\0" L"TEL\0" L"\0" L"(TM)\0" L"\0" L"Z\0" L"\0"
+-  L"Ohm\0" L"\0" L"Z\0" L"\0" L"B\0" L"\0" L"C\0" L"\0" L"e\0" L"\0" L"e\0"
+-  L"\0" L"E\0" L"\0" L"F\0" L"\0" L"M\0" L"\0" L"o\0" L"\0" L"i\0" L"\0"
+-  L"D\0" L"\0" L"d\0" L"\0" L"e\0" L"\0" L"i\0" L"\0" L"j\0" L"\0" L" 1/3 \0"
+-  L"\0" L" 2/3 \0" L"\0" L" 1/5 \0" L"\0" L" 2/5 \0" L"\0" L" 3/5 \0" L"\0"
+-  L" 4/5 \0" L"\0" L" 1/6 \0" L"\0" L" 5/6 \0" L"\0" L" 1/8 \0" L"\0"
+-  L" 3/8 \0" L"\0" L" 5/8 \0" L"\0" L" 7/8 \0" L"\0" L" 1/\0" L"\0" L"I\0"
+-  L"\0" L"II\0" L"\0" L"III\0" L"\0" L"IV\0" L"\0" L"V\0" L"\0" L"VI\0" L"\0"
+-  L"VII\0" L"\0" L"VIII\0" L"\0" L"IX\0" L"\0" L"X\0" L"\0" L"XI\0" L"\0"
+-  L"XII\0" L"\0" L"L\0" L"\0" L"C\0" L"\0" L"D\0" L"\0" L"M\0" L"\0" L"i\0"
+-  L"\0" L"ii\0" L"\0" L"iii\0" L"\0" L"iv\0" L"\0" L"v\0" L"\0" L"vi\0" L"\0"
+-  L"vii\0" L"\0" L"viii\0" L"\0" L"ix\0" L"\0" L"x\0" L"\0" L"xi\0" L"\0"
+-  L"xii\0" L"\0" L"l\0" L"\0" L"c\0" L"\0" L"d\0" L"\0" L"m\0" L"\0" L"<-\0"
+-  L"\0" L"->\0" L"\0" L"<->\0" L"\0" L"<=\0" L"\0" L"=>\0" L"\0" L"<=>\0"
+-  L"\0" L"-\0" L"\0" L"/\0" L"\0" L"\\\0" L"\0" L"*\0" L"\0" L"|\0" L"\0"
+-  L":\0" L"\0" L"~\0" L"\0" L"<=\0" L"\0" L">=\0" L"\0" L"<<\0" L"\0" L">>\0"
+-  L"\0" L"<<<\0" L"\0" L">>>\0" L"\0" L"NUL\0" L"\0" L"SOH\0" L"\0" L"STX\0"
+-  L"\0" L"ETX\0" L"\0" L"EOT\0" L"\0" L"ENQ\0" L"\0" L"ACK\0" L"\0" L"BEL\0"
+-  L"\0" L"BS\0" L"\0" L"HT\0" L"\0" L"LF\0" L"\0" L"VT\0" L"\0" L"FF\0" L"\0"
+-  L"CR\0" L"\0" L"SO\0" L"\0" L"SI\0" L"\0" L"DLE\0" L"\0" L"DC1\0" L"\0"
+-  L"DC2\0" L"\0" L"DC3\0" L"\0" L"DC4\0" L"\0" L"NAK\0" L"\0" L"SYN\0" L"\0"
+-  L"ETB\0" L"\0" L"CAN\0" L"\0" L"EM\0" L"\0" L"SUB\0" L"\0" L"ESC\0" L"\0"
+-  L"FS\0" L"\0" L"GS\0" L"\0" L"RS\0" L"\0" L"US\0" L"\0" L"SP\0" L"\0"
+-  L"DEL\0" L"\0" L"_\0" L"\0" L"NL\0" L"\0" L"(1)\0" L"\0" L"(2)\0" L"\0"
+-  L"(3)\0" L"\0" L"(4)\0" L"\0" L"(5)\0" L"\0" L"(6)\0" L"\0" L"(7)\0" L"\0"
+-  L"(8)\0" L"\0" L"(9)\0" L"\0" L"(10)\0" L"\0" L"(11)\0" L"\0" L"(12)\0"
+-  L"\0" L"(13)\0" L"\0" L"(14)\0" L"\0" L"(15)\0" L"\0" L"(16)\0" L"\0"
+-  L"(17)\0" L"\0" L"(18)\0" L"\0" L"(19)\0" L"\0" L"(20)\0" L"\0" L"(1)\0"
+-  L"\0" L"(2)\0" L"\0" L"(3)\0" L"\0" L"(4)\0" L"\0" L"(5)\0" L"\0" L"(6)\0"
+-  L"\0" L"(7)\0" L"\0" L"(8)\0" L"\0" L"(9)\0" L"\0" L"(10)\0" L"\0" L"(11)\0"
+-  L"\0" L"(12)\0" L"\0" L"(13)\0" L"\0" L"(14)\0" L"\0" L"(15)\0" L"\0"
+-  L"(16)\0" L"\0" L"(17)\0" L"\0" L"(18)\0" L"\0" L"(19)\0" L"\0" L"(20)\0"
+-  L"\0" L"1.\0" L"\0" L"2.\0" L"\0" L"3.\0" L"\0" L"4.\0" L"\0" L"5.\0" L"\0"
+-  L"6.\0" L"\0" L"7.\0" L"\0" L"8.\0" L"\0" L"9.\0" L"\0" L"10.\0" L"\0"
+-  L"11.\0" L"\0" L"12.\0" L"\0" L"13.\0" L"\0" L"14.\0" L"\0" L"15.\0" L"\0"
+-  L"16.\0" L"\0" L"17.\0" L"\0" L"18.\0" L"\0" L"19.\0" L"\0" L"20.\0" L"\0"
+-  L"(a)\0" L"\0" L"(b)\0" L"\0" L"(c)\0" L"\0" L"(d)\0" L"\0" L"(e)\0" L"\0"
+-  L"(f)\0" L"\0" L"(g)\0" L"\0" L"(h)\0" L"\0" L"(i)\0" L"\0" L"(j)\0" L"\0"
+-  L"(k)\0" L"\0" L"(l)\0" L"\0" L"(m)\0" L"\0" L"(n)\0" L"\0" L"(o)\0" L"\0"
+-  L"(p)\0" L"\0" L"(q)\0" L"\0" L"(r)\0" L"\0" L"(s)\0" L"\0" L"(t)\0" L"\0"
+-  L"(u)\0" L"\0" L"(v)\0" L"\0" L"(w)\0" L"\0" L"(x)\0" L"\0" L"(y)\0" L"\0"
+-  L"(z)\0" L"\0" L"(A)\0" L"\0" L"(B)\0" L"\0" L"(C)\0" L"\0" L"(D)\0" L"\0"
+-  L"(E)\0" L"\0" L"(F)\0" L"\0" L"(G)\0" L"\0" L"(H)\0" L"\0" L"(I)\0" L"\0"
+-  L"(J)\0" L"\0" L"(K)\0" L"\0" L"(L)\0" L"\0" L"(M)\0" L"\0" L"(N)\0" L"\0"
+-  L"(O)\0" L"\0" L"(P)\0" L"\0" L"(Q)\0" L"\0" L"(R)\0" L"\0" L"(S)\0" L"\0"
+-  L"(T)\0" L"\0" L"(U)\0" L"\0" L"(V)\0" L"\0" L"(W)\0" L"\0" L"(X)\0" L"\0"
+-  L"(Y)\0" L"\0" L"(Z)\0" L"\0" L"(a)\0" L"\0" L"(b)\0" L"\0" L"(c)\0" L"\0"
+-  L"(d)\0" L"\0" L"(e)\0" L"\0" L"(f)\0" L"\0" L"(g)\0" L"\0" L"(h)\0" L"\0"
+-  L"(i)\0" L"\0" L"(j)\0" L"\0" L"(k)\0" L"\0" L"(l)\0" L"\0" L"(m)\0" L"\0"
+-  L"(n)\0" L"\0" L"(o)\0" L"\0" L"(p)\0" L"\0" L"(q)\0" L"\0" L"(r)\0" L"\0"
+-  L"(s)\0" L"\0" L"(t)\0" L"\0" L"(u)\0" L"\0" L"(v)\0" L"\0" L"(w)\0" L"\0"
+-  L"(x)\0" L"\0" L"(y)\0" L"\0" L"(z)\0" L"\0" L"(0)\0" L"\0" L"-\0" L"\0"
+-  L"|\0" L"\0" L"+\0" L"\0" L"+\0" L"\0" L"+\0" L"\0" L"+\0" L"\0" L"+\0"
+-  L"\0" L"+\0" L"\0" L"+\0" L"\0" L"+\0" L"\0" L"+\0" L"\0" L"o\0" L"\0"
+-  L"::=\0" L"\0" L"==\0" L"\0" L"===\0" L"\0" L" \0" L"\0" L"=\0" L"\0"
+-  L"(21)\0" L"\0" L"(22)\0" L"\0" L"(23)\0" L"\0" L"(24)\0" L"\0" L"(25)\0"
+-  L"\0" L"(26)\0" L"\0" L"(27)\0" L"\0" L"(28)\0" L"\0" L"(29)\0" L"\0"
+-  L"(30)\0" L"\0" L"(31)\0" L"\0" L"(32)\0" L"\0" L"(33)\0" L"\0" L"(34)\0"
+-  L"\0" L"(35)\0" L"\0" L"(36)\0" L"\0" L"(37)\0" L"\0" L"(38)\0" L"\0"
+-  L"(39)\0" L"\0" L"(40)\0" L"\0" L"(41)\0" L"\0" L"(42)\0" L"\0" L"(43)\0"
+-  L"\0" L"(44)\0" L"\0" L"(45)\0" L"\0" L"(46)\0" L"\0" L"(47)\0" L"\0"
+-  L"(48)\0" L"\0" L"(49)\0" L"\0" L"(50)\0" L"\0" L"hPa\0" L"\0" L"da\0" L"\0"
+-  L"AU\0" L"\0" L"bar\0" L"\0" L"oV\0" L"\0" L"pc\0" L"\0" L"pA\0" L"\0"
++  L"\0" L"\0" L"\0" L"Rs\0" L"\0" L"EUR\0" L"\0" L"INR\0" L"\0" L"a/c\0" L"\0"
++  L"a/s\0" L"\0" L"C\0" L"\0" L"c/o\0" L"\0" L"c/u\0" L"\0" L"g\0" L"\0"
++  L"H\0" L"\0" L"H\0" L"\0" L"H\0" L"\0" L"h\0" L"\0" L"I\0" L"\0" L"I\0"
++  L"\0" L"L\0" L"\0" L"l\0" L"\0" L"N\0" L"\0" L"No\0" L"\0" L"P\0" L"\0"
++  L"Q\0" L"\0" L"R\0" L"\0" L"R\0" L"\0" L"R\0" L"\0" L"TEL\0" L"\0" L"(TM)\0"
++  L"\0" L"Z\0" L"\0" L"Ohm\0" L"\0" L"Z\0" L"\0" L"B\0" L"\0" L"C\0" L"\0"
++  L"e\0" L"\0" L"e\0" L"\0" L"E\0" L"\0" L"F\0" L"\0" L"M\0" L"\0" L"o\0"
++  L"\0" L"i\0" L"\0" L"D\0" L"\0" L"d\0" L"\0" L"e\0" L"\0" L"i\0" L"\0"
++  L"j\0" L"\0" L" 1/3 \0" L"\0" L" 2/3 \0" L"\0" L" 1/5 \0" L"\0" L" 2/5 \0"
++  L"\0" L" 3/5 \0" L"\0" L" 4/5 \0" L"\0" L" 1/6 \0" L"\0" L" 5/6 \0" L"\0"
++  L" 1/8 \0" L"\0" L" 3/8 \0" L"\0" L" 5/8 \0" L"\0" L" 7/8 \0" L"\0" L" 1/\0"
++  L"\0" L"I\0" L"\0" L"II\0" L"\0" L"III\0" L"\0" L"IV\0" L"\0" L"V\0" L"\0"
++  L"VI\0" L"\0" L"VII\0" L"\0" L"VIII\0" L"\0" L"IX\0" L"\0" L"X\0" L"\0"
++  L"XI\0" L"\0" L"XII\0" L"\0" L"L\0" L"\0" L"C\0" L"\0" L"D\0" L"\0" L"M\0"
++  L"\0" L"i\0" L"\0" L"ii\0" L"\0" L"iii\0" L"\0" L"iv\0" L"\0" L"v\0" L"\0"
++  L"vi\0" L"\0" L"vii\0" L"\0" L"viii\0" L"\0" L"ix\0" L"\0" L"x\0" L"\0"
++  L"xi\0" L"\0" L"xii\0" L"\0" L"l\0" L"\0" L"c\0" L"\0" L"d\0" L"\0" L"m\0"
++  L"\0" L"<-\0" L"\0" L"->\0" L"\0" L"<->\0" L"\0" L"<=\0" L"\0" L"=>\0" L"\0"
++  L"<=>\0" L"\0" L"-\0" L"\0" L"/\0" L"\0" L"\\\0" L"\0" L"*\0" L"\0" L"|\0"
++  L"\0" L":\0" L"\0" L"~\0" L"\0" L"<=\0" L"\0" L">=\0" L"\0" L"<<\0" L"\0"
++  L">>\0" L"\0" L"<<<\0" L"\0" L">>>\0" L"\0" L"NUL\0" L"\0" L"SOH\0" L"\0"
++  L"STX\0" L"\0" L"ETX\0" L"\0" L"EOT\0" L"\0" L"ENQ\0" L"\0" L"ACK\0" L"\0"
++  L"BEL\0" L"\0" L"BS\0" L"\0" L"HT\0" L"\0" L"LF\0" L"\0" L"VT\0" L"\0"
++  L"FF\0" L"\0" L"CR\0" L"\0" L"SO\0" L"\0" L"SI\0" L"\0" L"DLE\0" L"\0"
++  L"DC1\0" L"\0" L"DC2\0" L"\0" L"DC3\0" L"\0" L"DC4\0" L"\0" L"NAK\0" L"\0"
++  L"SYN\0" L"\0" L"ETB\0" L"\0" L"CAN\0" L"\0" L"EM\0" L"\0" L"SUB\0" L"\0"
++  L"ESC\0" L"\0" L"FS\0" L"\0" L"GS\0" L"\0" L"RS\0" L"\0" L"US\0" L"\0"
++  L"SP\0" L"\0" L"DEL\0" L"\0" L"_\0" L"\0" L"NL\0" L"\0" L"(1)\0" L"\0"
++  L"(2)\0" L"\0" L"(3)\0" L"\0" L"(4)\0" L"\0" L"(5)\0" L"\0" L"(6)\0" L"\0"
++  L"(7)\0" L"\0" L"(8)\0" L"\0" L"(9)\0" L"\0" L"(10)\0" L"\0" L"(11)\0" L"\0"
++  L"(12)\0" L"\0" L"(13)\0" L"\0" L"(14)\0" L"\0" L"(15)\0" L"\0" L"(16)\0"
++  L"\0" L"(17)\0" L"\0" L"(18)\0" L"\0" L"(19)\0" L"\0" L"(20)\0" L"\0"
++  L"(1)\0" L"\0" L"(2)\0" L"\0" L"(3)\0" L"\0" L"(4)\0" L"\0" L"(5)\0" L"\0"
++  L"(6)\0" L"\0" L"(7)\0" L"\0" L"(8)\0" L"\0" L"(9)\0" L"\0" L"(10)\0" L"\0"
++  L"(11)\0" L"\0" L"(12)\0" L"\0" L"(13)\0" L"\0" L"(14)\0" L"\0" L"(15)\0"
++  L"\0" L"(16)\0" L"\0" L"(17)\0" L"\0" L"(18)\0" L"\0" L"(19)\0" L"\0"
++  L"(20)\0" L"\0" L"1.\0" L"\0" L"2.\0" L"\0" L"3.\0" L"\0" L"4.\0" L"\0"
++  L"5.\0" L"\0" L"6.\0" L"\0" L"7.\0" L"\0" L"8.\0" L"\0" L"9.\0" L"\0"
++  L"10.\0" L"\0" L"11.\0" L"\0" L"12.\0" L"\0" L"13.\0" L"\0" L"14.\0" L"\0"
++  L"15.\0" L"\0" L"16.\0" L"\0" L"17.\0" L"\0" L"18.\0" L"\0" L"19.\0" L"\0"
++  L"20.\0" L"\0" L"(a)\0" L"\0" L"(b)\0" L"\0" L"(c)\0" L"\0" L"(d)\0" L"\0"
++  L"(e)\0" L"\0" L"(f)\0" L"\0" L"(g)\0" L"\0" L"(h)\0" L"\0" L"(i)\0" L"\0"
++  L"(j)\0" L"\0" L"(k)\0" L"\0" L"(l)\0" L"\0" L"(m)\0" L"\0" L"(n)\0" L"\0"
++  L"(o)\0" L"\0" L"(p)\0" L"\0" L"(q)\0" L"\0" L"(r)\0" L"\0" L"(s)\0" L"\0"
++  L"(t)\0" L"\0" L"(u)\0" L"\0" L"(v)\0" L"\0" L"(w)\0" L"\0" L"(x)\0" L"\0"
++  L"(y)\0" L"\0" L"(z)\0" L"\0" L"(A)\0" L"\0" L"(B)\0" L"\0" L"(C)\0" L"\0"
++  L"(D)\0" L"\0" L"(E)\0" L"\0" L"(F)\0" L"\0" L"(G)\0" L"\0" L"(H)\0" L"\0"
++  L"(I)\0" L"\0" L"(J)\0" L"\0" L"(K)\0" L"\0" L"(L)\0" L"\0" L"(M)\0" L"\0"
++  L"(N)\0" L"\0" L"(O)\0" L"\0" L"(P)\0" L"\0" L"(Q)\0" L"\0" L"(R)\0" L"\0"
++  L"(S)\0" L"\0" L"(T)\0" L"\0" L"(U)\0" L"\0" L"(V)\0" L"\0" L"(W)\0" L"\0"
++  L"(X)\0" L"\0" L"(Y)\0" L"\0" L"(Z)\0" L"\0" L"(a)\0" L"\0" L"(b)\0" L"\0"
++  L"(c)\0" L"\0" L"(d)\0" L"\0" L"(e)\0" L"\0" L"(f)\0" L"\0" L"(g)\0" L"\0"
++  L"(h)\0" L"\0" L"(i)\0" L"\0" L"(j)\0" L"\0" L"(k)\0" L"\0" L"(l)\0" L"\0"
++  L"(m)\0" L"\0" L"(n)\0" L"\0" L"(o)\0" L"\0" L"(p)\0" L"\0" L"(q)\0" L"\0"
++  L"(r)\0" L"\0" L"(s)\0" L"\0" L"(t)\0" L"\0" L"(u)\0" L"\0" L"(v)\0" L"\0"
++  L"(w)\0" L"\0" L"(x)\0" L"\0" L"(y)\0" L"\0" L"(z)\0" L"\0" L"(0)\0" L"\0"
++  L"-\0" L"\0" L"|\0" L"\0" L"+\0" L"\0" L"+\0" L"\0" L"+\0" L"\0" L"+\0"
++  L"\0" L"+\0" L"\0" L"+\0" L"\0" L"+\0" L"\0" L"+\0" L"\0" L"+\0" L"\0"
++  L"o\0" L"\0" L"::=\0" L"\0" L"==\0" L"\0" L"===\0" L"\0" L" \0" L"\0" L"=\0"
++  L"\0" L"(21)\0" L"\0" L"(22)\0" L"\0" L"(23)\0" L"\0" L"(24)\0" L"\0"
++  L"(25)\0" L"\0" L"(26)\0" L"\0" L"(27)\0" L"\0" L"(28)\0" L"\0" L"(29)\0"
++  L"\0" L"(30)\0" L"\0" L"(31)\0" L"\0" L"(32)\0" L"\0" L"(33)\0" L"\0"
++  L"(34)\0" L"\0" L"(35)\0" L"\0" L"(36)\0" L"\0" L"(37)\0" L"\0" L"(38)\0"
++  L"\0" L"(39)\0" L"\0" L"(40)\0" L"\0" L"(41)\0" L"\0" L"(42)\0" L"\0"
++  L"(43)\0" L"\0" L"(44)\0" L"\0" L"(45)\0" L"\0" L"(46)\0" L"\0" L"(47)\0"
++  L"\0" L"(48)\0" L"\0" L"(49)\0" L"\0" L"(50)\0" L"\0" L"hPa\0" L"\0" L"da\0"
++  L"\0" L"AU\0" L"\0" L"bar\0" L"\0" L"oV\0" L"\0" L"pc\0" L"\0" L"pA\0" L"\0"
+   L"nA\0" L"\0" L"uA\0" L"\0" L"mA\0" L"\0" L"kA\0" L"\0" L"KB\0" L"\0"
+   L"MB\0" L"\0" L"GB\0" L"\0" L"cal\0" L"\0" L"kcal\0" L"\0" L"pF\0" L"\0"
+   L"nF\0" L"\0" L"uF\0" L"\0" L"ug\0" L"\0" L"mg\0" L"\0" L"kg\0" L"\0"
+Index: glibc-2.12-2-gc4ccff1/locale/C-translit.h.in
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/locale/C-translit.h.in
++++ glibc-2.12-2-gc4ccff1/locale/C-translit.h.in
+@@ -105,6 +105,7 @@
+ "\x2063"      ""      /* <U2063> INVISIBLE SEPARATOR */
+ "\x20a8"      "Rs"    /* <U20A8> RUPEE SIGN */
+ "\x20ac"      "EUR"   /* <U20AC> EURO SIGN */
++"\x20b9"      "INR"   /* <U20B9> INDIAN RUPEE SIGN */
+ "\x2100"      "a/c"   /* <U2100> ACCOUNT OF */
+ "\x2101"      "a/s"   /* <U2101> ADDRESSED TO THE SUBJECT */
+ "\x2102"      "C"     /* <U2102> DOUBLE-STRUCK CAPITAL C */
+Index: glibc-2.12-2-gc4ccff1/localedata/charmaps/UTF-8
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/charmaps/UTF-8
++++ glibc-2.12-2-gc4ccff1/localedata/charmaps/UTF-8
+@@ -1312,6 +1312,10 @@ CHARMAP
+ <U0521>     /xd4/xa1     CYRILLIC SMALL LETTER EL WITH MIDDLE HOOK
+ <U0522>     /xd4/xa2     CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK
+ <U0523>     /xd4/xa3     CYRILLIC SMALL LETTER EN WITH MIDDLE HOOK
++<U0524>     /xd4/xa4     CYRILLIC CAPITAL LETTER PE WITH DESCENDER
++<U0525>     /xd4/xa5     CYRILLIC SMALL LETTER PE WITH DESCENDER
++<U0526>     /xd4/xa6     CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER
++<U0527>     /xd4/xa7     CYRILLIC SMALL LETTER SHHA WITH DESCENDER
+ <U0531>     /xd4/xb1     ARMENIAN CAPITAL LETTER AYB
+ <U0532>     /xd4/xb2     ARMENIAN CAPITAL LETTER BEN
+ <U0533>     /xd4/xb3     ARMENIAN CAPITAL LETTER GIM
+@@ -1513,6 +1517,7 @@ CHARMAP
+ <U061B>     /xd8/x9b     ARABIC SEMICOLON
+ <U061E>     /xd8/x9e     ARABIC TRIPLE DOT PUNCTUATION MARK
+ <U061F>     /xd8/x9f     ARABIC QUESTION MARK
++<U0620>     /xd8/xa0     ARABIC LETTER KASHMIRI YEH
+ <U0621>     /xd8/xa1     ARABIC LETTER HAMZA
+ <U0622>     /xd8/xa2     ARABIC LETTER ALEF WITH MADDA ABOVE
+ <U0623>     /xd8/xa3     ARABIC LETTER ALEF WITH HAMZA ABOVE
+@@ -1575,6 +1580,7 @@ CHARMAP
+ <U065C>     /xd9/x9c     ARABIC VOWEL SIGN DOT BELOW
+ <U065D>     /xd9/x9d     ARABIC REVERSED DAMMA
+ <U065E>     /xd9/x9e     ARABIC FATHA WITH TWO DOTS
++<U065F>     /xd9/x9f     ARABIC WAVY HAMZA BELOW
+ <U0660>     /xd9/xa0     ARABIC-INDIC DIGIT ZERO
+ <U0661>     /xd9/xa1     ARABIC-INDIC DIGIT ONE
+ <U0662>     /xd9/xa2     ARABIC-INDIC DIGIT TWO
+@@ -1969,6 +1975,97 @@ CHARMAP
+ <U07F8>     /xdf/xb8     NKO COMMA
+ <U07F9>     /xdf/xb9     NKO EXCLAMATION MARK
+ <U07FA>     /xdf/xba     NKO LAJANYALAN
++<U0800>     /xe0/xa0/x80 SAMARITAN LETTER ALAF
++<U0801>     /xe0/xa0/x81 SAMARITAN LETTER BIT
++<U0802>     /xe0/xa0/x82 SAMARITAN LETTER GAMAN
++<U0803>     /xe0/xa0/x83 SAMARITAN LETTER DALAT
++<U0804>     /xe0/xa0/x84 SAMARITAN LETTER IY
++<U0805>     /xe0/xa0/x85 SAMARITAN LETTER BAA
++<U0806>     /xe0/xa0/x86 SAMARITAN LETTER ZEN
++<U0807>     /xe0/xa0/x87 SAMARITAN LETTER IT
++<U0808>     /xe0/xa0/x88 SAMARITAN LETTER TIT
++<U0809>     /xe0/xa0/x89 SAMARITAN LETTER YUT
++<U080A>     /xe0/xa0/x8a SAMARITAN LETTER KAAF
++<U080B>     /xe0/xa0/x8b SAMARITAN LETTER LABAT
++<U080C>     /xe0/xa0/x8c SAMARITAN LETTER MIM
++<U080D>     /xe0/xa0/x8d SAMARITAN LETTER NUN
++<U080E>     /xe0/xa0/x8e SAMARITAN LETTER SINGAAT
++<U080F>     /xe0/xa0/x8f SAMARITAN LETTER IN
++<U0810>     /xe0/xa0/x90 SAMARITAN LETTER FI
++<U0811>     /xe0/xa0/x91 SAMARITAN LETTER TSAADIY
++<U0812>     /xe0/xa0/x92 SAMARITAN LETTER QUF
++<U0813>     /xe0/xa0/x93 SAMARITAN LETTER RISH
++<U0814>     /xe0/xa0/x94 SAMARITAN LETTER SHAN
++<U0815>     /xe0/xa0/x95 SAMARITAN LETTER TAAF
++<U0816>     /xe0/xa0/x96 SAMARITAN MARK IN
++<U0817>     /xe0/xa0/x97 SAMARITAN MARK IN-ALAF
++<U0818>     /xe0/xa0/x98 SAMARITAN MARK OCCLUSION
++<U0819>     /xe0/xa0/x99 SAMARITAN MARK DAGESH
++<U081A>     /xe0/xa0/x9a SAMARITAN MODIFIER LETTER EPENTHETIC YUT
++<U081B>     /xe0/xa0/x9b SAMARITAN MARK EPENTHETIC YUT
++<U081C>     /xe0/xa0/x9c SAMARITAN VOWEL SIGN LONG E
++<U081D>     /xe0/xa0/x9d SAMARITAN VOWEL SIGN E
++<U081E>     /xe0/xa0/x9e SAMARITAN VOWEL SIGN OVERLONG AA
++<U081F>     /xe0/xa0/x9f SAMARITAN VOWEL SIGN LONG AA
++<U0820>     /xe0/xa0/xa0 SAMARITAN VOWEL SIGN AA
++<U0821>     /xe0/xa0/xa1 SAMARITAN VOWEL SIGN OVERLONG A
++<U0822>     /xe0/xa0/xa2 SAMARITAN VOWEL SIGN LONG A
++<U0823>     /xe0/xa0/xa3 SAMARITAN VOWEL SIGN A
++<U0824>     /xe0/xa0/xa4 SAMARITAN MODIFIER LETTER SHORT A
++<U0825>     /xe0/xa0/xa5 SAMARITAN VOWEL SIGN SHORT A
++<U0826>     /xe0/xa0/xa6 SAMARITAN VOWEL SIGN LONG U
++<U0827>     /xe0/xa0/xa7 SAMARITAN VOWEL SIGN U
++<U0828>     /xe0/xa0/xa8 SAMARITAN MODIFIER LETTER I
++<U0829>     /xe0/xa0/xa9 SAMARITAN VOWEL SIGN LONG I
++<U082A>     /xe0/xa0/xaa SAMARITAN VOWEL SIGN I
++<U082B>     /xe0/xa0/xab SAMARITAN VOWEL SIGN O
++<U082C>     /xe0/xa0/xac SAMARITAN VOWEL SIGN SUKUN
++<U082D>     /xe0/xa0/xad SAMARITAN MARK NEQUDAA
++<U0830>     /xe0/xa0/xb0 SAMARITAN PUNCTUATION NEQUDAA
++<U0831>     /xe0/xa0/xb1 SAMARITAN PUNCTUATION AFSAAQ
++<U0832>     /xe0/xa0/xb2 SAMARITAN PUNCTUATION ANGED
++<U0833>     /xe0/xa0/xb3 SAMARITAN PUNCTUATION BAU
++<U0834>     /xe0/xa0/xb4 SAMARITAN PUNCTUATION ATMAAU
++<U0835>     /xe0/xa0/xb5 SAMARITAN PUNCTUATION SHIYYAALAA
++<U0836>     /xe0/xa0/xb6 SAMARITAN ABBREVIATION MARK
++<U0837>     /xe0/xa0/xb7 SAMARITAN PUNCTUATION MELODIC QITSA
++<U0838>     /xe0/xa0/xb8 SAMARITAN PUNCTUATION ZIQAA
++<U0839>     /xe0/xa0/xb9 SAMARITAN PUNCTUATION QITSA
++<U083A>     /xe0/xa0/xba SAMARITAN PUNCTUATION ZAEF
++<U083B>     /xe0/xa0/xbb SAMARITAN PUNCTUATION TURU
++<U083C>     /xe0/xa0/xbc SAMARITAN PUNCTUATION ARKAANU
++<U083D>     /xe0/xa0/xbd SAMARITAN PUNCTUATION SOF MASHFAAT
++<U083E>     /xe0/xa0/xbe SAMARITAN PUNCTUATION ANNAAU
++<U0840>     /xe0/xa1/x80 MANDAIC LETTER HALQA
++<U0841>     /xe0/xa1/x81 MANDAIC LETTER AB
++<U0842>     /xe0/xa1/x82 MANDAIC LETTER AG
++<U0843>     /xe0/xa1/x83 MANDAIC LETTER AD
++<U0844>     /xe0/xa1/x84 MANDAIC LETTER AH
++<U0845>     /xe0/xa1/x85 MANDAIC LETTER USHENNA
++<U0846>     /xe0/xa1/x86 MANDAIC LETTER AZ
++<U0847>     /xe0/xa1/x87 MANDAIC LETTER IT
++<U0848>     /xe0/xa1/x88 MANDAIC LETTER ATT
++<U0849>     /xe0/xa1/x89 MANDAIC LETTER AKSA
++<U084A>     /xe0/xa1/x8a MANDAIC LETTER AK
++<U084B>     /xe0/xa1/x8b MANDAIC LETTER AL
++<U084C>     /xe0/xa1/x8c MANDAIC LETTER AM
++<U084D>     /xe0/xa1/x8d MANDAIC LETTER AN
++<U084E>     /xe0/xa1/x8e MANDAIC LETTER AS
++<U084F>     /xe0/xa1/x8f MANDAIC LETTER IN
++<U0850>     /xe0/xa1/x90 MANDAIC LETTER AP
++<U0851>     /xe0/xa1/x91 MANDAIC LETTER ASZ
++<U0852>     /xe0/xa1/x92 MANDAIC LETTER AQ
++<U0853>     /xe0/xa1/x93 MANDAIC LETTER AR
++<U0854>     /xe0/xa1/x94 MANDAIC LETTER ASH
++<U0855>     /xe0/xa1/x95 MANDAIC LETTER AT
++<U0856>     /xe0/xa1/x96 MANDAIC LETTER DUSHENNA
++<U0857>     /xe0/xa1/x97 MANDAIC LETTER KAD
++<U0858>     /xe0/xa1/x98 MANDAIC LETTER AIN
++<U0859>     /xe0/xa1/x99 MANDAIC AFFRICATION MARK
++<U085A>     /xe0/xa1/x9a MANDAIC VOCALIZATION MARK
++<U085B>     /xe0/xa1/x9b MANDAIC GEMINATION MARK
++<U085E>     /xe0/xa1/x9e MANDAIC PUNCTUATION
++<U0900>     /xe0/xa4/x80 DEVANAGARI SIGN INVERTED CANDRABINDU
+ <U0901>     /xe0/xa4/x81 DEVANAGARI SIGN CANDRABINDU
+ <U0902>     /xe0/xa4/x82 DEVANAGARI SIGN ANUSVARA
+ <U0903>     /xe0/xa4/x83 DEVANAGARI SIGN VISARGA
+@@ -2026,6 +2123,8 @@ CHARMAP
+ <U0937>     /xe0/xa4/xb7 DEVANAGARI LETTER SSA
+ <U0938>     /xe0/xa4/xb8 DEVANAGARI LETTER SA
+ <U0939>     /xe0/xa4/xb9 DEVANAGARI LETTER HA
++<U093A>     /xe0/xa4/xba DEVANAGARI VOWEL SIGN OE
++<U093B>     /xe0/xa4/xbb DEVANAGARI VOWEL SIGN OOE
+ <U093C>     /xe0/xa4/xbc DEVANAGARI SIGN NUKTA
+ <U093D>     /xe0/xa4/xbd DEVANAGARI SIGN AVAGRAHA
+ <U093E>     /xe0/xa4/xbe DEVANAGARI VOWEL SIGN AA
+@@ -2044,11 +2143,16 @@ CHARMAP
+ <U094B>     /xe0/xa5/x8b DEVANAGARI VOWEL SIGN O
+ <U094C>     /xe0/xa5/x8c DEVANAGARI VOWEL SIGN AU
+ <U094D>     /xe0/xa5/x8d DEVANAGARI SIGN VIRAMA
++<U094E>     /xe0/xa5/x8e DEVANAGARI VOWEL SIGN PRISHTHAMATRA E
++<U094F>     /xe0/xa5/x8f DEVANAGARI VOWEL SIGN AW
+ <U0950>     /xe0/xa5/x90 DEVANAGARI OM
+ <U0951>     /xe0/xa5/x91 DEVANAGARI STRESS SIGN UDATTA
+ <U0952>     /xe0/xa5/x92 DEVANAGARI STRESS SIGN ANUDATTA
+ <U0953>     /xe0/xa5/x93 DEVANAGARI GRAVE ACCENT
+ <U0954>     /xe0/xa5/x94 DEVANAGARI ACUTE ACCENT
++<U0955>     /xe0/xa5/x95 DEVANAGARI VOWEL SIGN CANDRA LONG E
++<U0956>     /xe0/xa5/x96 DEVANAGARI VOWEL SIGN UE
++<U0957>     /xe0/xa5/x97 DEVANAGARI VOWEL SIGN UUE
+ <U0958>     /xe0/xa5/x98 DEVANAGARI LETTER QA
+ <U0959>     /xe0/xa5/x99 DEVANAGARI LETTER KHHA
+ <U095A>     /xe0/xa5/x9a DEVANAGARI LETTER GHHA
+@@ -2076,6 +2180,13 @@ CHARMAP
+ <U0970>     /xe0/xa5/xb0 DEVANAGARI ABBREVIATION SIGN
+ <U0971>     /xe0/xa5/xb1 DEVANAGARI SIGN HIGH SPACING DOT
+ <U0972>     /xe0/xa5/xb2 DEVANAGARI LETTER CANDRA A
++<U0973>     /xe0/xa5/xb3 DEVANAGARI LETTER OE
++<U0974>     /xe0/xa5/xb4 DEVANAGARI LETTER OOE
++<U0975>     /xe0/xa5/xb5 DEVANAGARI LETTER AW
++<U0976>     /xe0/xa5/xb6 DEVANAGARI LETTER UE
++<U0977>     /xe0/xa5/xb7 DEVANAGARI LETTER UUE
++<U0979>     /xe0/xa5/xb9 DEVANAGARI LETTER ZHA
++<U097A>     /xe0/xa5/xba DEVANAGARI LETTER HEAVY YA
+ <U097B>     /xe0/xa5/xbb DEVANAGARI LETTER GGA
+ <U097C>     /xe0/xa5/xbc DEVANAGARI LETTER JJA
+ <U097D>     /xe0/xa5/xbd DEVANAGARI LETTER GLOTTAL STOP
+@@ -2172,6 +2283,7 @@ CHARMAP
+ <U09F8>     /xe0/xa7/xb8 BENGALI CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR
+ <U09F9>     /xe0/xa7/xb9 BENGALI CURRENCY DENOMINATOR SIXTEEN
+ <U09FA>     /xe0/xa7/xba BENGALI ISSHAR
++<U09FB>     /xe0/xa7/xbb BENGALI GANDA MARK
+ <U0A01>     /xe0/xa8/x81 GURMUKHI SIGN ADAK BINDI
+ <U0A02>     /xe0/xa8/x82 GURMUKHI SIGN BINDI
+ <U0A03>     /xe0/xa8/x83 GURMUKHI SIGN VISARGA
+@@ -2418,6 +2530,12 @@ CHARMAP
+ <U0B6F>     /xe0/xad/xaf ORIYA DIGIT NINE
+ <U0B70>     /xe0/xad/xb0 ORIYA ISSHAR
+ <U0B71>     /xe0/xad/xb1 ORIYA LETTER WA
++<U0B72>     /xe0/xad/xb2 ORIYA FRACTION ONE QUARTER
++<U0B73>     /xe0/xad/xb3 ORIYA FRACTION ONE HALF
++<U0B74>     /xe0/xad/xb4 ORIYA FRACTION THREE QUARTERS
++<U0B75>     /xe0/xad/xb5 ORIYA FRACTION ONE SIXTEENTH
++<U0B76>     /xe0/xad/xb6 ORIYA FRACTION ONE EIGHTH
++<U0B77>     /xe0/xad/xb7 ORIYA FRACTION THREE SIXTEENTHS
+ <U0B82>     /xe0/xae/x82 TAMIL SIGN ANUSVARA
+ <U0B83>     /xe0/xae/x83 TAMIL SIGN VISARGA
+ <U0B85>     /xe0/xae/x85 TAMIL LETTER A
+@@ -2705,6 +2823,7 @@ CHARMAP
+ <U0D26>     /xe0/xb4/xa6 MALAYALAM LETTER DA
+ <U0D27>     /xe0/xb4/xa7 MALAYALAM LETTER DHA
+ <U0D28>     /xe0/xb4/xa8 MALAYALAM LETTER NA
++<U0D29>     /xe0/xb4/xa9 MALAYALAM LETTER NNNA
+ <U0D2A>     /xe0/xb4/xaa MALAYALAM LETTER PA
+ <U0D2B>     /xe0/xb4/xab MALAYALAM LETTER PHA
+ <U0D2C>     /xe0/xb4/xac MALAYALAM LETTER BA
+@@ -2721,6 +2840,7 @@ CHARMAP
+ <U0D37>     /xe0/xb4/xb7 MALAYALAM LETTER SSA
+ <U0D38>     /xe0/xb4/xb8 MALAYALAM LETTER SA
+ <U0D39>     /xe0/xb4/xb9 MALAYALAM LETTER HA
++<U0D3A>     /xe0/xb4/xba MALAYALAM LETTER TTTA
+ <U0D3D>     /xe0/xb4/xbd MALAYALAM SIGN AVAGRAHA
+ <U0D3E>     /xe0/xb4/xbe MALAYALAM VOWEL SIGN AA
+ <U0D3F>     /xe0/xb4/xbf MALAYALAM VOWEL SIGN I
+@@ -2736,6 +2856,7 @@ CHARMAP
+ <U0D4B>     /xe0/xb5/x8b MALAYALAM VOWEL SIGN OO
+ <U0D4C>     /xe0/xb5/x8c MALAYALAM VOWEL SIGN AU
+ <U0D4D>     /xe0/xb5/x8d MALAYALAM SIGN VIRAMA
++<U0D4E>     /xe0/xb5/x8e MALAYALAM LETTER DOT REPH
+ <U0D57>     /xe0/xb5/x97 MALAYALAM AU LENGTH MARK
+ <U0D60>     /xe0/xb5/xa0 MALAYALAM LETTER VOCALIC RR
+ <U0D61>     /xe0/xb5/xa1 MALAYALAM LETTER VOCALIC LL
+@@ -3131,6 +3252,10 @@ CHARMAP
+ <U0F89>     /xe0/xbe/x89 TIBETAN SIGN MCHU CAN
+ <U0F8A>     /xe0/xbe/x8a TIBETAN SIGN GRU CAN RGYINGS
+ <U0F8B>     /xe0/xbe/x8b TIBETAN SIGN GRU MED RGYINGS
++<U0F8C>     /xe0/xbe/x8c TIBETAN SIGN INVERTED MCHU CAN
++<U0F8D>     /xe0/xbe/x8d TIBETAN SUBJOINED SIGN LCE TSA CAN
++<U0F8E>     /xe0/xbe/x8e TIBETAN SUBJOINED SIGN MCHU CAN
++<U0F8F>     /xe0/xbe/x8f TIBETAN SUBJOINED SIGN INVERTED MCHU CAN
+ <U0F90>     /xe0/xbe/x90 TIBETAN SUBJOINED LETTER KA
+ <U0F91>     /xe0/xbe/x91 TIBETAN SUBJOINED LETTER KHA
+ <U0F92>     /xe0/xbe/x92 TIBETAN SUBJOINED LETTER GA
+@@ -3197,6 +3322,12 @@ CHARMAP
+ <U0FD2>     /xe0/xbf/x92 TIBETAN MARK NYIS TSHEG
+ <U0FD3>     /xe0/xbf/x93 TIBETAN MARK INITIAL BRDA RNYING YIG MGO MDUN MA
+ <U0FD4>     /xe0/xbf/x94 TIBETAN MARK CLOSING BRDA RNYING YIG MGO SGAB MA
++<U0FD5>     /xe0/xbf/x95 RIGHT-FACING SVASTI SIGN
++<U0FD6>     /xe0/xbf/x96 LEFT-FACING SVASTI SIGN
++<U0FD7>     /xe0/xbf/x97 RIGHT-FACING SVASTI SIGN WITH DOTS
++<U0FD8>     /xe0/xbf/x98 LEFT-FACING SVASTI SIGN WITH DOTS
++<U0FD9>     /xe0/xbf/x99 TIBETAN MARK LEADING MCHAN RTAGS
++<U0FDA>     /xe0/xbf/x9a TIBETAN MARK TRAILING MCHAN RTAGS
+ <U1000>     /xe1/x80/x80 MYANMAR LETTER KA
+ <U1001>     /xe1/x80/x81 MYANMAR LETTER KHA
+ <U1002>     /xe1/x80/x82 MYANMAR LETTER GA
+@@ -3351,6 +3482,10 @@ CHARMAP
+ <U1097>     /xe1/x82/x97 MYANMAR SHAN DIGIT SEVEN
+ <U1098>     /xe1/x82/x98 MYANMAR SHAN DIGIT EIGHT
+ <U1099>     /xe1/x82/x99 MYANMAR SHAN DIGIT NINE
++<U109A>     /xe1/x82/x9a MYANMAR SIGN KHAMTI TONE-1
++<U109B>     /xe1/x82/x9b MYANMAR SIGN KHAMTI TONE-3
++<U109C>     /xe1/x82/x9c MYANMAR VOWEL SIGN AITON A
++<U109D>     /xe1/x82/x9d MYANMAR VOWEL SIGN AITON AI
+ <U109E>     /xe1/x82/x9e MYANMAR SYMBOL SHAN ONE
+ <U109F>     /xe1/x82/x9f MYANMAR SYMBOL SHAN EXCLAMATION
+ <U10A0>     /xe1/x82/xa0 GEORGIAN CAPITAL LETTER AN
+@@ -3526,6 +3661,11 @@ CHARMAP
+ <U1157>     /xe1/x85/x97 HANGUL CHOSEONG KAPYEOUNPHIEUPH
+ <U1158>     /xe1/x85/x98 HANGUL CHOSEONG SSANGHIEUH
+ <U1159>     /xe1/x85/x99 HANGUL CHOSEONG YEORINHIEUH
++<U115A>     /xe1/x85/x9a HANGUL CHOSEONG KIYEOK-TIKEUT
++<U115B>     /xe1/x85/x9b HANGUL CHOSEONG NIEUN-SIOS
++<U115C>     /xe1/x85/x9c HANGUL CHOSEONG NIEUN-CIEUC
++<U115D>     /xe1/x85/x9d HANGUL CHOSEONG NIEUN-HIEUH
++<U115E>     /xe1/x85/x9e HANGUL CHOSEONG TIKEUT-RIEUL
+ <U115F>     /xe1/x85/x9f HANGUL CHOSEONG FILLER
+ <U1160>     /xe1/x85/xa0 HANGUL JUNGSEONG FILLER
+ <U1161>     /xe1/x85/xa1 HANGUL JUNGSEONG A
+@@ -3594,6 +3734,11 @@ CHARMAP
+ <U11A0>     /xe1/x86/xa0 HANGUL JUNGSEONG ARAEA-U
+ <U11A1>     /xe1/x86/xa1 HANGUL JUNGSEONG ARAEA-I
+ <U11A2>     /xe1/x86/xa2 HANGUL JUNGSEONG SSANGARAEA
++<U11A3>     /xe1/x86/xa3 HANGUL JUNGSEONG A-EU
++<U11A4>     /xe1/x86/xa4 HANGUL JUNGSEONG YA-U
++<U11A5>     /xe1/x86/xa5 HANGUL JUNGSEONG YEO-YA
++<U11A6>     /xe1/x86/xa6 HANGUL JUNGSEONG O-YA
++<U11A7>     /xe1/x86/xa7 HANGUL JUNGSEONG O-YAE
+ <U11A8>     /xe1/x86/xa8 HANGUL JONGSEONG KIYEOK
+ <U11A9>     /xe1/x86/xa9 HANGUL JONGSEONG SSANGKIYEOK
+ <U11AA>     /xe1/x86/xaa HANGUL JONGSEONG KIYEOK-SIOS
+@@ -3676,6 +3821,12 @@ CHARMAP
+ <U11F7>     /xe1/x87/xb7 HANGUL JONGSEONG HIEUH-MIEUM
+ <U11F8>     /xe1/x87/xb8 HANGUL JONGSEONG HIEUH-PIEUP
+ <U11F9>     /xe1/x87/xb9 HANGUL JONGSEONG YEORINHIEUH
++<U11FA>     /xe1/x87/xba HANGUL JONGSEONG KIYEOK-NIEUN
++<U11FB>     /xe1/x87/xbb HANGUL JONGSEONG KIYEOK-PIEUP
++<U11FC>     /xe1/x87/xbc HANGUL JONGSEONG KIYEOK-CHIEUCH
++<U11FD>     /xe1/x87/xbd HANGUL JONGSEONG KIYEOK-KHIEUKH
++<U11FE>     /xe1/x87/xbe HANGUL JONGSEONG KIYEOK-HIEUH
++<U11FF>     /xe1/x87/xbf HANGUL JONGSEONG SSANGNIEUN
+ <U1200>     /xe1/x88/x80 ETHIOPIC SYLLABLE HA
+ <U1201>     /xe1/x88/x81 ETHIOPIC SYLLABLE HU
+ <U1202>     /xe1/x88/x82 ETHIOPIC SYLLABLE HI
+@@ -4002,6 +4153,8 @@ CHARMAP
+ <U1358>     /xe1/x8d/x98 ETHIOPIC SYLLABLE RYA
+ <U1359>     /xe1/x8d/x99 ETHIOPIC SYLLABLE MYA
+ <U135A>     /xe1/x8d/x9a ETHIOPIC SYLLABLE FYA
++<U135D>     /xe1/x8d/x9d ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK
++<U135E>     /xe1/x8d/x9e ETHIOPIC COMBINING VOWEL LENGTH MARK
+ <U135F>     /xe1/x8d/x9f ETHIOPIC COMBINING GEMINATION MARK
+ <U1360>     /xe1/x8d/xa0 ETHIOPIC SECTION MARK
+ <U1361>     /xe1/x8d/xa1 ETHIOPIC WORDSPACE
+@@ -4143,6 +4296,7 @@ CHARMAP
+ <U13F2>     /xe1/x8f/xb2 CHEROKEE LETTER YO
+ <U13F3>     /xe1/x8f/xb3 CHEROKEE LETTER YU
+ <U13F4>     /xe1/x8f/xb4 CHEROKEE LETTER YV
++<U1400>     /xe1/x90/x80 CANADIAN SYLLABICS HYPHEN
+ <U1401>     /xe1/x90/x81 CANADIAN SYLLABICS E
+ <U1402>     /xe1/x90/x82 CANADIAN SYLLABICS AAI
+ <U1403>     /xe1/x90/x83 CANADIAN SYLLABICS I
+@@ -4773,6 +4927,15 @@ CHARMAP
+ <U1674>     /xe1/x99/xb4 CANADIAN SYLLABICS NNGOO
+ <U1675>     /xe1/x99/xb5 CANADIAN SYLLABICS NNGA
+ <U1676>     /xe1/x99/xb6 CANADIAN SYLLABICS NNGAA
++<U1677>     /xe1/x99/xb7 CANADIAN SYLLABICS WOODS-CREE THWEE
++<U1678>     /xe1/x99/xb8 CANADIAN SYLLABICS WOODS-CREE THWI
++<U1679>     /xe1/x99/xb9 CANADIAN SYLLABICS WOODS-CREE THWII
++<U167A>     /xe1/x99/xba CANADIAN SYLLABICS WOODS-CREE THWO
++<U167B>     /xe1/x99/xbb CANADIAN SYLLABICS WOODS-CREE THWOO
++<U167C>     /xe1/x99/xbc CANADIAN SYLLABICS WOODS-CREE THWA
++<U167D>     /xe1/x99/xbd CANADIAN SYLLABICS WOODS-CREE THWAA
++<U167E>     /xe1/x99/xbe CANADIAN SYLLABICS WOODS-CREE FINAL TH
++<U167F>     /xe1/x99/xbf CANADIAN SYLLABICS BLACKFOOT W
+ <U1680>     /xe1/x9a/x80 OGHAM SPACE MARK
+ <U1681>     /xe1/x9a/x81 OGHAM LETTER BEITH
+ <U1682>     /xe1/x9a/x82 OGHAM LETTER LUIS
+@@ -5234,6 +5397,76 @@ CHARMAP
+ <U18A8>     /xe1/xa2/xa8 MONGOLIAN LETTER MANCHU ALI GALI BHA
+ <U18A9>     /xe1/xa2/xa9 MONGOLIAN LETTER ALI GALI DAGALGA
+ <U18AA>     /xe1/xa2/xaa MONGOLIAN LETTER MANCHU ALI GALI LHA
++<U18B0>     /xe1/xa2/xb0 CANADIAN SYLLABICS OY
++<U18B1>     /xe1/xa2/xb1 CANADIAN SYLLABICS AY
++<U18B2>     /xe1/xa2/xb2 CANADIAN SYLLABICS AAY
++<U18B3>     /xe1/xa2/xb3 CANADIAN SYLLABICS WAY
++<U18B4>     /xe1/xa2/xb4 CANADIAN SYLLABICS POY
++<U18B5>     /xe1/xa2/xb5 CANADIAN SYLLABICS PAY
++<U18B6>     /xe1/xa2/xb6 CANADIAN SYLLABICS PWOY
++<U18B7>     /xe1/xa2/xb7 CANADIAN SYLLABICS TAY
++<U18B8>     /xe1/xa2/xb8 CANADIAN SYLLABICS KAY
++<U18B9>     /xe1/xa2/xb9 CANADIAN SYLLABICS KWAY
++<U18BA>     /xe1/xa2/xba CANADIAN SYLLABICS MAY
++<U18BB>     /xe1/xa2/xbb CANADIAN SYLLABICS NOY
++<U18BC>     /xe1/xa2/xbc CANADIAN SYLLABICS NAY
++<U18BD>     /xe1/xa2/xbd CANADIAN SYLLABICS LAY
++<U18BE>     /xe1/xa2/xbe CANADIAN SYLLABICS SOY
++<U18BF>     /xe1/xa2/xbf CANADIAN SYLLABICS SAY
++<U18C0>     /xe1/xa3/x80 CANADIAN SYLLABICS SHOY
++<U18C1>     /xe1/xa3/x81 CANADIAN SYLLABICS SHAY
++<U18C2>     /xe1/xa3/x82 CANADIAN SYLLABICS SHWOY
++<U18C3>     /xe1/xa3/x83 CANADIAN SYLLABICS YOY
++<U18C4>     /xe1/xa3/x84 CANADIAN SYLLABICS YAY
++<U18C5>     /xe1/xa3/x85 CANADIAN SYLLABICS RAY
++<U18C6>     /xe1/xa3/x86 CANADIAN SYLLABICS NWI
++<U18C7>     /xe1/xa3/x87 CANADIAN SYLLABICS OJIBWAY NWI
++<U18C8>     /xe1/xa3/x88 CANADIAN SYLLABICS NWII
++<U18C9>     /xe1/xa3/x89 CANADIAN SYLLABICS OJIBWAY NWII
++<U18CA>     /xe1/xa3/x8a CANADIAN SYLLABICS NWO
++<U18CB>     /xe1/xa3/x8b CANADIAN SYLLABICS OJIBWAY NWO
++<U18CC>     /xe1/xa3/x8c CANADIAN SYLLABICS NWOO
++<U18CD>     /xe1/xa3/x8d CANADIAN SYLLABICS OJIBWAY NWOO
++<U18CE>     /xe1/xa3/x8e CANADIAN SYLLABICS RWEE
++<U18CF>     /xe1/xa3/x8f CANADIAN SYLLABICS RWI
++<U18D0>     /xe1/xa3/x90 CANADIAN SYLLABICS RWII
++<U18D1>     /xe1/xa3/x91 CANADIAN SYLLABICS RWO
++<U18D2>     /xe1/xa3/x92 CANADIAN SYLLABICS RWOO
++<U18D3>     /xe1/xa3/x93 CANADIAN SYLLABICS RWA
++<U18D4>     /xe1/xa3/x94 CANADIAN SYLLABICS OJIBWAY P
++<U18D5>     /xe1/xa3/x95 CANADIAN SYLLABICS OJIBWAY T
++<U18D6>     /xe1/xa3/x96 CANADIAN SYLLABICS OJIBWAY K
++<U18D7>     /xe1/xa3/x97 CANADIAN SYLLABICS OJIBWAY C
++<U18D8>     /xe1/xa3/x98 CANADIAN SYLLABICS OJIBWAY M
++<U18D9>     /xe1/xa3/x99 CANADIAN SYLLABICS OJIBWAY N
++<U18DA>     /xe1/xa3/x9a CANADIAN SYLLABICS OJIBWAY S
++<U18DB>     /xe1/xa3/x9b CANADIAN SYLLABICS OJIBWAY SH
++<U18DC>     /xe1/xa3/x9c CANADIAN SYLLABICS EASTERN W
++<U18DD>     /xe1/xa3/x9d CANADIAN SYLLABICS WESTERN W
++<U18DE>     /xe1/xa3/x9e CANADIAN SYLLABICS FINAL SMALL RING
++<U18DF>     /xe1/xa3/x9f CANADIAN SYLLABICS FINAL RAISED DOT
++<U18E0>     /xe1/xa3/xa0 CANADIAN SYLLABICS R-CREE RWE
++<U18E1>     /xe1/xa3/xa1 CANADIAN SYLLABICS WEST-CREE LOO
++<U18E2>     /xe1/xa3/xa2 CANADIAN SYLLABICS WEST-CREE LAA
++<U18E3>     /xe1/xa3/xa3 CANADIAN SYLLABICS THWE
++<U18E4>     /xe1/xa3/xa4 CANADIAN SYLLABICS THWA
++<U18E5>     /xe1/xa3/xa5 CANADIAN SYLLABICS TTHWE
++<U18E6>     /xe1/xa3/xa6 CANADIAN SYLLABICS TTHOO
++<U18E7>     /xe1/xa3/xa7 CANADIAN SYLLABICS TTHAA
++<U18E8>     /xe1/xa3/xa8 CANADIAN SYLLABICS TLHWE
++<U18E9>     /xe1/xa3/xa9 CANADIAN SYLLABICS TLHOO
++<U18EA>     /xe1/xa3/xaa CANADIAN SYLLABICS SAYISI SHWE
++<U18EB>     /xe1/xa3/xab CANADIAN SYLLABICS SAYISI SHOO
++<U18EC>     /xe1/xa3/xac CANADIAN SYLLABICS SAYISI HOO
++<U18ED>     /xe1/xa3/xad CANADIAN SYLLABICS CARRIER GWU
++<U18EE>     /xe1/xa3/xae CANADIAN SYLLABICS CARRIER DENE GEE
++<U18EF>     /xe1/xa3/xaf CANADIAN SYLLABICS CARRIER GAA
++<U18F0>     /xe1/xa3/xb0 CANADIAN SYLLABICS CARRIER GWA
++<U18F1>     /xe1/xa3/xb1 CANADIAN SYLLABICS SAYISI JUU
++<U18F2>     /xe1/xa3/xb2 CANADIAN SYLLABICS CARRIER JWA
++<U18F3>     /xe1/xa3/xb3 CANADIAN SYLLABICS BEAVER DENE L
++<U18F4>     /xe1/xa3/xb4 CANADIAN SYLLABICS BEAVER DENE R
++<U18F5>     /xe1/xa3/xb5 CANADIAN SYLLABICS CARRIER DENTAL S
+ <U1900>     /xe1/xa4/x80 LIMBU VOWEL-CARRIER LETTER
+ <U1901>     /xe1/xa4/x81 LIMBU LETTER KA
+ <U1902>     /xe1/xa4/x82 LIMBU LETTER KHA
+@@ -5377,6 +5610,8 @@ CHARMAP
+ <U19A7>     /xe1/xa6/xa7 NEW TAI LUE LETTER HIGH XVA
+ <U19A8>     /xe1/xa6/xa8 NEW TAI LUE LETTER LOW KVA
+ <U19A9>     /xe1/xa6/xa9 NEW TAI LUE LETTER LOW XVA
++<U19AA>     /xe1/xa6/xaa NEW TAI LUE LETTER HIGH SUA
++<U19AB>     /xe1/xa6/xab NEW TAI LUE LETTER LOW SUA
+ <U19B0>     /xe1/xa6/xb0 NEW TAI LUE VOWEL SIGN VOWEL SHORTENER
+ <U19B1>     /xe1/xa6/xb1 NEW TAI LUE VOWEL SIGN AA
+ <U19B2>     /xe1/xa6/xb2 NEW TAI LUE VOWEL SIGN II
+@@ -5413,6 +5648,7 @@ CHARMAP
+ <U19D7>     /xe1/xa7/x97 NEW TAI LUE DIGIT SEVEN
+ <U19D8>     /xe1/xa7/x98 NEW TAI LUE DIGIT EIGHT
+ <U19D9>     /xe1/xa7/x99 NEW TAI LUE DIGIT NINE
++<U19DA>     /xe1/xa7/x9a NEW TAI LUE THAM DIGIT ONE
+ <U19DE>     /xe1/xa7/x9e NEW TAI LUE SIGN LAE
+ <U19DF>     /xe1/xa7/x9f NEW TAI LUE SIGN LAEV
+ <U19E0>     /xe1/xa7/xa0 KHMER SYMBOL PATHAMASAT
+@@ -5477,6 +5713,133 @@ CHARMAP
+ <U1A1B>     /xe1/xa8/x9b BUGINESE VOWEL SIGN AE
+ <U1A1E>     /xe1/xa8/x9e BUGINESE PALLAWA
+ <U1A1F>     /xe1/xa8/x9f BUGINESE END OF SECTION
++<U1A20>     /xe1/xa8/xa0 TAI THAM LETTER HIGH KA
++<U1A21>     /xe1/xa8/xa1 TAI THAM LETTER HIGH KHA
++<U1A22>     /xe1/xa8/xa2 TAI THAM LETTER HIGH KXA
++<U1A23>     /xe1/xa8/xa3 TAI THAM LETTER LOW KA
++<U1A24>     /xe1/xa8/xa4 TAI THAM LETTER LOW KXA
++<U1A25>     /xe1/xa8/xa5 TAI THAM LETTER LOW KHA
++<U1A26>     /xe1/xa8/xa6 TAI THAM LETTER NGA
++<U1A27>     /xe1/xa8/xa7 TAI THAM LETTER HIGH CA
++<U1A28>     /xe1/xa8/xa8 TAI THAM LETTER HIGH CHA
++<U1A29>     /xe1/xa8/xa9 TAI THAM LETTER LOW CA
++<U1A2A>     /xe1/xa8/xaa TAI THAM LETTER LOW SA
++<U1A2B>     /xe1/xa8/xab TAI THAM LETTER LOW CHA
++<U1A2C>     /xe1/xa8/xac TAI THAM LETTER NYA
++<U1A2D>     /xe1/xa8/xad TAI THAM LETTER RATA
++<U1A2E>     /xe1/xa8/xae TAI THAM LETTER HIGH RATHA
++<U1A2F>     /xe1/xa8/xaf TAI THAM LETTER DA
++<U1A30>     /xe1/xa8/xb0 TAI THAM LETTER LOW RATHA
++<U1A31>     /xe1/xa8/xb1 TAI THAM LETTER RANA
++<U1A32>     /xe1/xa8/xb2 TAI THAM LETTER HIGH TA
++<U1A33>     /xe1/xa8/xb3 TAI THAM LETTER HIGH THA
++<U1A34>     /xe1/xa8/xb4 TAI THAM LETTER LOW TA
++<U1A35>     /xe1/xa8/xb5 TAI THAM LETTER LOW THA
++<U1A36>     /xe1/xa8/xb6 TAI THAM LETTER NA
++<U1A37>     /xe1/xa8/xb7 TAI THAM LETTER BA
++<U1A38>     /xe1/xa8/xb8 TAI THAM LETTER HIGH PA
++<U1A39>     /xe1/xa8/xb9 TAI THAM LETTER HIGH PHA
++<U1A3A>     /xe1/xa8/xba TAI THAM LETTER HIGH FA
++<U1A3B>     /xe1/xa8/xbb TAI THAM LETTER LOW PA
++<U1A3C>     /xe1/xa8/xbc TAI THAM LETTER LOW FA
++<U1A3D>     /xe1/xa8/xbd TAI THAM LETTER LOW PHA
++<U1A3E>     /xe1/xa8/xbe TAI THAM LETTER MA
++<U1A3F>     /xe1/xa8/xbf TAI THAM LETTER LOW YA
++<U1A40>     /xe1/xa9/x80 TAI THAM LETTER HIGH YA
++<U1A41>     /xe1/xa9/x81 TAI THAM LETTER RA
++<U1A42>     /xe1/xa9/x82 TAI THAM LETTER RUE
++<U1A43>     /xe1/xa9/x83 TAI THAM LETTER LA
++<U1A44>     /xe1/xa9/x84 TAI THAM LETTER LUE
++<U1A45>     /xe1/xa9/x85 TAI THAM LETTER WA
++<U1A46>     /xe1/xa9/x86 TAI THAM LETTER HIGH SHA
++<U1A47>     /xe1/xa9/x87 TAI THAM LETTER HIGH SSA
++<U1A48>     /xe1/xa9/x88 TAI THAM LETTER HIGH SA
++<U1A49>     /xe1/xa9/x89 TAI THAM LETTER HIGH HA
++<U1A4A>     /xe1/xa9/x8a TAI THAM LETTER LLA
++<U1A4B>     /xe1/xa9/x8b TAI THAM LETTER A
++<U1A4C>     /xe1/xa9/x8c TAI THAM LETTER LOW HA
++<U1A4D>     /xe1/xa9/x8d TAI THAM LETTER I
++<U1A4E>     /xe1/xa9/x8e TAI THAM LETTER II
++<U1A4F>     /xe1/xa9/x8f TAI THAM LETTER U
++<U1A50>     /xe1/xa9/x90 TAI THAM LETTER UU
++<U1A51>     /xe1/xa9/x91 TAI THAM LETTER EE
++<U1A52>     /xe1/xa9/x92 TAI THAM LETTER OO
++<U1A53>     /xe1/xa9/x93 TAI THAM LETTER LAE
++<U1A54>     /xe1/xa9/x94 TAI THAM LETTER GREAT SA
++<U1A55>     /xe1/xa9/x95 TAI THAM CONSONANT SIGN MEDIAL RA
++<U1A56>     /xe1/xa9/x96 TAI THAM CONSONANT SIGN MEDIAL LA
++<U1A57>     /xe1/xa9/x97 TAI THAM CONSONANT SIGN LA TANG LAI
++<U1A58>     /xe1/xa9/x98 TAI THAM SIGN MAI KANG LAI
++<U1A59>     /xe1/xa9/x99 TAI THAM CONSONANT SIGN FINAL NGA
++<U1A5A>     /xe1/xa9/x9a TAI THAM CONSONANT SIGN LOW PA
++<U1A5B>     /xe1/xa9/x9b TAI THAM CONSONANT SIGN HIGH RATHA OR LOW PA
++<U1A5C>     /xe1/xa9/x9c TAI THAM CONSONANT SIGN MA
++<U1A5D>     /xe1/xa9/x9d TAI THAM CONSONANT SIGN BA
++<U1A5E>     /xe1/xa9/x9e TAI THAM CONSONANT SIGN SA
++<U1A60>     /xe1/xa9/xa0 TAI THAM SIGN SAKOT
++<U1A61>     /xe1/xa9/xa1 TAI THAM VOWEL SIGN A
++<U1A62>     /xe1/xa9/xa2 TAI THAM VOWEL SIGN MAI SAT
++<U1A63>     /xe1/xa9/xa3 TAI THAM VOWEL SIGN AA
++<U1A64>     /xe1/xa9/xa4 TAI THAM VOWEL SIGN TALL AA
++<U1A65>     /xe1/xa9/xa5 TAI THAM VOWEL SIGN I
++<U1A66>     /xe1/xa9/xa6 TAI THAM VOWEL SIGN II
++<U1A67>     /xe1/xa9/xa7 TAI THAM VOWEL SIGN UE
++<U1A68>     /xe1/xa9/xa8 TAI THAM VOWEL SIGN UUE
++<U1A69>     /xe1/xa9/xa9 TAI THAM VOWEL SIGN U
++<U1A6A>     /xe1/xa9/xaa TAI THAM VOWEL SIGN UU
++<U1A6B>     /xe1/xa9/xab TAI THAM VOWEL SIGN O
++<U1A6C>     /xe1/xa9/xac TAI THAM VOWEL SIGN OA BELOW
++<U1A6D>     /xe1/xa9/xad TAI THAM VOWEL SIGN OY
++<U1A6E>     /xe1/xa9/xae TAI THAM VOWEL SIGN E
++<U1A6F>     /xe1/xa9/xaf TAI THAM VOWEL SIGN AE
++<U1A70>     /xe1/xa9/xb0 TAI THAM VOWEL SIGN OO
++<U1A71>     /xe1/xa9/xb1 TAI THAM VOWEL SIGN AI
++<U1A72>     /xe1/xa9/xb2 TAI THAM VOWEL SIGN THAM AI
++<U1A73>     /xe1/xa9/xb3 TAI THAM VOWEL SIGN OA ABOVE
++<U1A74>     /xe1/xa9/xb4 TAI THAM SIGN MAI KANG
++<U1A75>     /xe1/xa9/xb5 TAI THAM SIGN TONE-1
++<U1A76>     /xe1/xa9/xb6 TAI THAM SIGN TONE-2
++<U1A77>     /xe1/xa9/xb7 TAI THAM SIGN KHUEN TONE-3
++<U1A78>     /xe1/xa9/xb8 TAI THAM SIGN KHUEN TONE-4
++<U1A79>     /xe1/xa9/xb9 TAI THAM SIGN KHUEN TONE-5
++<U1A7A>     /xe1/xa9/xba TAI THAM SIGN RA HAAM
++<U1A7B>     /xe1/xa9/xbb TAI THAM SIGN MAI SAM
++<U1A7C>     /xe1/xa9/xbc TAI THAM SIGN KHUEN-LUE KARAN
++<U1A7F>     /xe1/xa9/xbf TAI THAM COMBINING CRYPTOGRAMMIC DOT
++<U1A80>     /xe1/xaa/x80 TAI THAM HORA DIGIT ZERO
++<U1A81>     /xe1/xaa/x81 TAI THAM HORA DIGIT ONE
++<U1A82>     /xe1/xaa/x82 TAI THAM HORA DIGIT TWO
++<U1A83>     /xe1/xaa/x83 TAI THAM HORA DIGIT THREE
++<U1A84>     /xe1/xaa/x84 TAI THAM HORA DIGIT FOUR
++<U1A85>     /xe1/xaa/x85 TAI THAM HORA DIGIT FIVE
++<U1A86>     /xe1/xaa/x86 TAI THAM HORA DIGIT SIX
++<U1A87>     /xe1/xaa/x87 TAI THAM HORA DIGIT SEVEN
++<U1A88>     /xe1/xaa/x88 TAI THAM HORA DIGIT EIGHT
++<U1A89>     /xe1/xaa/x89 TAI THAM HORA DIGIT NINE
++<U1A90>     /xe1/xaa/x90 TAI THAM THAM DIGIT ZERO
++<U1A91>     /xe1/xaa/x91 TAI THAM THAM DIGIT ONE
++<U1A92>     /xe1/xaa/x92 TAI THAM THAM DIGIT TWO
++<U1A93>     /xe1/xaa/x93 TAI THAM THAM DIGIT THREE
++<U1A94>     /xe1/xaa/x94 TAI THAM THAM DIGIT FOUR
++<U1A95>     /xe1/xaa/x95 TAI THAM THAM DIGIT FIVE
++<U1A96>     /xe1/xaa/x96 TAI THAM THAM DIGIT SIX
++<U1A97>     /xe1/xaa/x97 TAI THAM THAM DIGIT SEVEN
++<U1A98>     /xe1/xaa/x98 TAI THAM THAM DIGIT EIGHT
++<U1A99>     /xe1/xaa/x99 TAI THAM THAM DIGIT NINE
++<U1AA0>     /xe1/xaa/xa0 TAI THAM SIGN WIANG
++<U1AA1>     /xe1/xaa/xa1 TAI THAM SIGN WIANGWAAK
++<U1AA2>     /xe1/xaa/xa2 TAI THAM SIGN SAWAN
++<U1AA3>     /xe1/xaa/xa3 TAI THAM SIGN KEOW
++<U1AA4>     /xe1/xaa/xa4 TAI THAM SIGN HOY
++<U1AA5>     /xe1/xaa/xa5 TAI THAM SIGN DOKMAI
++<U1AA6>     /xe1/xaa/xa6 TAI THAM SIGN REVERSED ROTATED RANA
++<U1AA7>     /xe1/xaa/xa7 TAI THAM SIGN MAI YAMOK
++<U1AA8>     /xe1/xaa/xa8 TAI THAM SIGN KAAN
++<U1AA9>     /xe1/xaa/xa9 TAI THAM SIGN KAANKUU
++<U1AAA>     /xe1/xaa/xaa TAI THAM SIGN SATKAAN
++<U1AAB>     /xe1/xaa/xab TAI THAM SIGN SATKAANKUU
++<U1AAC>     /xe1/xaa/xac TAI THAM SIGN HANG
++<U1AAD>     /xe1/xaa/xad TAI THAM SIGN CAANG
+ <U1B00>     /xe1/xac/x80 BALINESE SIGN ULU RICEM
+ <U1B01>     /xe1/xac/x81 BALINESE SIGN ULU CANDRA
+ <U1B02>     /xe1/xac/x82 BALINESE SIGN CECEK
+@@ -5653,6 +6016,62 @@ CHARMAP
+ <U1BB7>     /xe1/xae/xb7 SUNDANESE DIGIT SEVEN
+ <U1BB8>     /xe1/xae/xb8 SUNDANESE DIGIT EIGHT
+ <U1BB9>     /xe1/xae/xb9 SUNDANESE DIGIT NINE
++<U1BC0>     /xe1/xaf/x80 BATAK LETTER A
++<U1BC1>     /xe1/xaf/x81 BATAK LETTER SIMALUNGUN A
++<U1BC2>     /xe1/xaf/x82 BATAK LETTER HA
++<U1BC3>     /xe1/xaf/x83 BATAK LETTER SIMALUNGUN HA
++<U1BC4>     /xe1/xaf/x84 BATAK LETTER MANDAILING HA
++<U1BC5>     /xe1/xaf/x85 BATAK LETTER BA
++<U1BC6>     /xe1/xaf/x86 BATAK LETTER KARO BA
++<U1BC7>     /xe1/xaf/x87 BATAK LETTER PA
++<U1BC8>     /xe1/xaf/x88 BATAK LETTER SIMALUNGUN PA
++<U1BC9>     /xe1/xaf/x89 BATAK LETTER NA
++<U1BCA>     /xe1/xaf/x8a BATAK LETTER MANDAILING NA
++<U1BCB>     /xe1/xaf/x8b BATAK LETTER WA
++<U1BCC>     /xe1/xaf/x8c BATAK LETTER SIMALUNGUN WA
++<U1BCD>     /xe1/xaf/x8d BATAK LETTER PAKPAK WA
++<U1BCE>     /xe1/xaf/x8e BATAK LETTER GA
++<U1BCF>     /xe1/xaf/x8f BATAK LETTER SIMALUNGUN GA
++<U1BD0>     /xe1/xaf/x90 BATAK LETTER JA
++<U1BD1>     /xe1/xaf/x91 BATAK LETTER DA
++<U1BD2>     /xe1/xaf/x92 BATAK LETTER RA
++<U1BD3>     /xe1/xaf/x93 BATAK LETTER SIMALUNGUN RA
++<U1BD4>     /xe1/xaf/x94 BATAK LETTER MA
++<U1BD5>     /xe1/xaf/x95 BATAK LETTER SIMALUNGUN MA
++<U1BD6>     /xe1/xaf/x96 BATAK LETTER SOUTHERN TA
++<U1BD7>     /xe1/xaf/x97 BATAK LETTER NORTHERN TA
++<U1BD8>     /xe1/xaf/x98 BATAK LETTER SA
++<U1BD9>     /xe1/xaf/x99 BATAK LETTER SIMALUNGUN SA
++<U1BDA>     /xe1/xaf/x9a BATAK LETTER MANDAILING SA
++<U1BDB>     /xe1/xaf/x9b BATAK LETTER YA
++<U1BDC>     /xe1/xaf/x9c BATAK LETTER SIMALUNGUN YA
++<U1BDD>     /xe1/xaf/x9d BATAK LETTER NGA
++<U1BDE>     /xe1/xaf/x9e BATAK LETTER LA
++<U1BDF>     /xe1/xaf/x9f BATAK LETTER SIMALUNGUN LA
++<U1BE0>     /xe1/xaf/xa0 BATAK LETTER NYA
++<U1BE1>     /xe1/xaf/xa1 BATAK LETTER CA
++<U1BE2>     /xe1/xaf/xa2 BATAK LETTER NDA
++<U1BE3>     /xe1/xaf/xa3 BATAK LETTER MBA
++<U1BE4>     /xe1/xaf/xa4 BATAK LETTER I
++<U1BE5>     /xe1/xaf/xa5 BATAK LETTER U
++<U1BE6>     /xe1/xaf/xa6 BATAK SIGN TOMPI
++<U1BE7>     /xe1/xaf/xa7 BATAK VOWEL SIGN E
++<U1BE8>     /xe1/xaf/xa8 BATAK VOWEL SIGN PAKPAK E
++<U1BE9>     /xe1/xaf/xa9 BATAK VOWEL SIGN EE
++<U1BEA>     /xe1/xaf/xaa BATAK VOWEL SIGN I
++<U1BEB>     /xe1/xaf/xab BATAK VOWEL SIGN KARO I
++<U1BEC>     /xe1/xaf/xac BATAK VOWEL SIGN O
++<U1BED>     /xe1/xaf/xad BATAK VOWEL SIGN KARO O
++<U1BEE>     /xe1/xaf/xae BATAK VOWEL SIGN U
++<U1BEF>     /xe1/xaf/xaf BATAK VOWEL SIGN U FOR SIMALUNGUN SA
++<U1BF0>     /xe1/xaf/xb0 BATAK CONSONANT SIGN NG
++<U1BF1>     /xe1/xaf/xb1 BATAK CONSONANT SIGN H
++<U1BF2>     /xe1/xaf/xb2 BATAK PANGOLAT
++<U1BF3>     /xe1/xaf/xb3 BATAK PANONGONAN
++<U1BFC>     /xe1/xaf/xbc BATAK SYMBOL BINDU NA METEK
++<U1BFD>     /xe1/xaf/xbd BATAK SYMBOL BINDU PINARBORAS
++<U1BFE>     /xe1/xaf/xbe BATAK SYMBOL BINDU JUDUL
++<U1BFF>     /xe1/xaf/xbf BATAK SYMBOL BINDU PANGOLAT
+ <U1C00>     /xe1/xb0/x80 LEPCHA LETTER KA
+ <U1C01>     /xe1/xb0/x81 LEPCHA LETTER KLA
+ <U1C02>     /xe1/xb0/x82 LEPCHA LETTER KHA
+@@ -5775,6 +6194,41 @@ CHARMAP
+ <U1C7D>     /xe1/xb1/xbd OL CHIKI AHAD
+ <U1C7E>     /xe1/xb1/xbe OL CHIKI PUNCTUATION MUCAAD
+ <U1C7F>     /xe1/xb1/xbf OL CHIKI PUNCTUATION DOUBLE MUCAAD
++<U1CD0>     /xe1/xb3/x90 VEDIC TONE KARSHANA
++<U1CD1>     /xe1/xb3/x91 VEDIC TONE SHARA
++<U1CD2>     /xe1/xb3/x92 VEDIC TONE PRENKHA
++<U1CD3>     /xe1/xb3/x93 VEDIC SIGN NIHSHVASA
++<U1CD4>     /xe1/xb3/x94 VEDIC SIGN YAJURVEDIC MIDLINE SVARITA
++<U1CD5>     /xe1/xb3/x95 VEDIC TONE YAJURVEDIC AGGRAVATED INDEPENDENT SVARITA
++<U1CD6>     /xe1/xb3/x96 VEDIC TONE YAJURVEDIC INDEPENDENT SVARITA
++<U1CD7>     /xe1/xb3/x97 VEDIC TONE YAJURVEDIC KATHAKA INDEPENDENT SVARITA
++<U1CD8>     /xe1/xb3/x98 VEDIC TONE CANDRA BELOW
++<U1CD9>     /xe1/xb3/x99 VEDIC TONE YAJURVEDIC KATHAKA INDEPENDENT SVARITA SCHROEDER
++<U1CDA>     /xe1/xb3/x9a VEDIC TONE DOUBLE SVARITA
++<U1CDB>     /xe1/xb3/x9b VEDIC TONE TRIPLE SVARITA
++<U1CDC>     /xe1/xb3/x9c VEDIC TONE KATHAKA ANUDATTA
++<U1CDD>     /xe1/xb3/x9d VEDIC TONE DOT BELOW
++<U1CDE>     /xe1/xb3/x9e VEDIC TONE TWO DOTS BELOW
++<U1CDF>     /xe1/xb3/x9f VEDIC TONE THREE DOTS BELOW
++<U1CE0>     /xe1/xb3/xa0 VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA
++<U1CE1>     /xe1/xb3/xa1 VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA
++<U1CE2>     /xe1/xb3/xa2 VEDIC SIGN VISARGA SVARITA
++<U1CE3>     /xe1/xb3/xa3 VEDIC SIGN VISARGA UDATTA
++<U1CE4>     /xe1/xb3/xa4 VEDIC SIGN REVERSED VISARGA UDATTA
++<U1CE5>     /xe1/xb3/xa5 VEDIC SIGN VISARGA ANUDATTA
++<U1CE6>     /xe1/xb3/xa6 VEDIC SIGN REVERSED VISARGA ANUDATTA
++<U1CE7>     /xe1/xb3/xa7 VEDIC SIGN VISARGA UDATTA WITH TAIL
++<U1CE8>     /xe1/xb3/xa8 VEDIC SIGN VISARGA ANUDATTA WITH TAIL
++<U1CE9>     /xe1/xb3/xa9 VEDIC SIGN ANUSVARA ANTARGOMUKHA
++<U1CEA>     /xe1/xb3/xaa VEDIC SIGN ANUSVARA BAHIRGOMUKHA
++<U1CEB>     /xe1/xb3/xab VEDIC SIGN ANUSVARA VAMAGOMUKHA
++<U1CEC>     /xe1/xb3/xac VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL
++<U1CED>     /xe1/xb3/xad VEDIC SIGN TIRYAK
++<U1CEE>     /xe1/xb3/xae VEDIC SIGN HEXIFORM LONG ANUSVARA
++<U1CEF>     /xe1/xb3/xaf VEDIC SIGN LONG ANUSVARA
++<U1CF0>     /xe1/xb3/xb0 VEDIC SIGN RTHANG LONG ANUSVARA
++<U1CF1>     /xe1/xb3/xb1 VEDIC SIGN ANUSVARA UBHAYATO MUKHA
++<U1CF2>     /xe1/xb3/xb2 VEDIC SIGN ARDHAVISARGA
+ <U1D00>     /xe1/xb4/x80 LATIN LETTER SMALL CAPITAL A
+ <U1D01>     /xe1/xb4/x81 LATIN LETTER SMALL CAPITAL AE
+ <U1D02>     /xe1/xb4/x82 LATIN SMALL LETTER TURNED AE
+@@ -6006,6 +6460,8 @@ CHARMAP
+ <U1DE4>     /xe1/xb7/xa4 COMBINING LATIN SMALL LETTER S
+ <U1DE5>     /xe1/xb7/xa5 COMBINING LATIN SMALL LETTER LONG S
+ <U1DE6>     /xe1/xb7/xa6 COMBINING LATIN SMALL LETTER Z
++<U1DFC>     /xe1/xb7/xbc COMBINING DOUBLE INVERTED BREVE BELOW
++<U1DFD>     /xe1/xb7/xbd COMBINING ALMOST EQUAL TO BELOW
+ <U1DFE>     /xe1/xb7/xbe COMBINING LEFT ARROWHEAD ABOVE
+ <U1DFF>     /xe1/xb7/xbf COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
+ <U1E00>     /xe1/xb8/x80 LATIN CAPITAL LETTER A WITH RING BELOW
+@@ -6638,6 +7094,14 @@ CHARMAP
+ <U2092>     /xe2/x82/x92 LATIN SUBSCRIPT SMALL LETTER O
+ <U2093>     /xe2/x82/x93 LATIN SUBSCRIPT SMALL LETTER X
+ <U2094>     /xe2/x82/x94 LATIN SUBSCRIPT SMALL LETTER SCHWA
++<U2095>     /xe2/x82/x95 LATIN SUBSCRIPT SMALL LETTER H
++<U2096>     /xe2/x82/x96 LATIN SUBSCRIPT SMALL LETTER K
++<U2097>     /xe2/x82/x97 LATIN SUBSCRIPT SMALL LETTER L
++<U2098>     /xe2/x82/x98 LATIN SUBSCRIPT SMALL LETTER M
++<U2099>     /xe2/x82/x99 LATIN SUBSCRIPT SMALL LETTER N
++<U209A>     /xe2/x82/x9a LATIN SUBSCRIPT SMALL LETTER P
++<U209B>     /xe2/x82/x9b LATIN SUBSCRIPT SMALL LETTER S
++<U209C>     /xe2/x82/x9c LATIN SUBSCRIPT SMALL LETTER T
+ <U20A0>     /xe2/x82/xa0 EURO-CURRENCY SIGN
+ <U20A1>     /xe2/x82/xa1 COLON SIGN
+ <U20A2>     /xe2/x82/xa2 CRUZEIRO SIGN
+@@ -6660,6 +7124,10 @@ CHARMAP
+ <U20B3>     /xe2/x82/xb3 AUSTRAL SIGN
+ <U20B4>     /xe2/x82/xb4 HRYVNIA SIGN
+ <U20B5>     /xe2/x82/xb5 CEDI SIGN
++<U20B6>     /xe2/x82/xb6 LIVRE TOURNOIS SIGN
++<U20B7>     /xe2/x82/xb7 SPESMILO SIGN
++<U20B8>     /xe2/x82/xb8 TENGE SIGN
++<U20B9>     /xe2/x82/xb9 INDIAN RUPEE SIGN
+ <U20D0>     /xe2/x83/x90 COMBINING LEFT HARPOON ABOVE
+ <U20D1>     /xe2/x83/x91 COMBINING RIGHT HARPOON ABOVE
+ <U20D2>     /xe2/x83/x92 COMBINING LONG VERTICAL LINE OVERLAY
+@@ -6773,6 +7241,9 @@ CHARMAP
+ <U214D>     /xe2/x85/x8d AKTIESELSKAB
+ <U214E>     /xe2/x85/x8e TURNED SMALL F
+ <U214F>     /xe2/x85/x8f SYMBOL FOR SAMARITAN SOURCE
++<U2150>     /xe2/x85/x90 VULGAR FRACTION ONE SEVENTH
++<U2151>     /xe2/x85/x91 VULGAR FRACTION ONE NINTH
++<U2152>     /xe2/x85/x92 VULGAR FRACTION ONE TENTH
+ <U2153>     /xe2/x85/x93 VULGAR FRACTION ONE THIRD
+ <U2154>     /xe2/x85/x94 VULGAR FRACTION TWO THIRDS
+ <U2155>     /xe2/x85/x95 VULGAR FRACTION ONE FIFTH
+@@ -6827,6 +7298,7 @@ CHARMAP
+ <U2186>     /xe2/x86/x86 ROMAN NUMERAL FIFTY EARLY FORM
+ <U2187>     /xe2/x86/x87 ROMAN NUMERAL FIFTY THOUSAND
+ <U2188>     /xe2/x86/x88 ROMAN NUMERAL ONE HUNDRED THOUSAND
++<U2189>     /xe2/x86/x89 VULGAR FRACTION ZERO THIRDS
+ <U2190>     /xe2/x86/x90 LEFTWARDS ARROW
+ <U2191>     /xe2/x86/x91 UPWARDS ARROW
+ <U2192>     /xe2/x86/x92 RIGHTWARDS ARROW
+@@ -7427,6 +7899,18 @@ CHARMAP
+ <U23E5>     /xe2/x8f/xa5 FLATNESS
+ <U23E6>     /xe2/x8f/xa6 AC CURRENT
+ <U23E7>     /xe2/x8f/xa7 ELECTRICAL INTERSECTION
++<U23E8>     /xe2/x8f/xa8 DECIMAL EXPONENT SYMBOL
++<U23E9>     /xe2/x8f/xa9 BLACK RIGHT-POINTING DOUBLE TRIANGLE
++<U23EA>     /xe2/x8f/xaa BLACK LEFT-POINTING DOUBLE TRIANGLE
++<U23EB>     /xe2/x8f/xab BLACK UP-POINTING DOUBLE TRIANGLE
++<U23EC>     /xe2/x8f/xac BLACK DOWN-POINTING DOUBLE TRIANGLE
++<U23ED>     /xe2/x8f/xad BLACK RIGHT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR
++<U23EE>     /xe2/x8f/xae BLACK LEFT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR
++<U23EF>     /xe2/x8f/xaf BLACK RIGHT-POINTING TRIANGLE WITH DOUBLE VERTICAL BAR
++<U23F0>     /xe2/x8f/xb0 ALARM CLOCK
++<U23F1>     /xe2/x8f/xb1 STOPWATCH
++<U23F2>     /xe2/x8f/xb2 TIMER CLOCK
++<U23F3>     /xe2/x8f/xb3 HOURGLASS WITH FLOWING SAND
+ <U2400>     /xe2/x90/x80 SYMBOL FOR NULL
+ <U2401>     /xe2/x90/x81 SYMBOL FOR START OF HEADING
+ <U2402>     /xe2/x90/x82 SYMBOL FOR START OF TEXT
+@@ -8051,6 +8535,8 @@ CHARMAP
+ <U269B>     /xe2/x9a/x9b ATOM SYMBOL
+ <U269C>     /xe2/x9a/x9c FLEUR-DE-LIS
+ <U269D>     /xe2/x9a/x9d OUTLINED WHITE STAR
++<U269E>     /xe2/x9a/x9e THREE LINES CONVERGING RIGHT
++<U269F>     /xe2/x9a/x9f THREE LINES CONVERGING LEFT
+ <U26A0>     /xe2/x9a/xa0 WARNING SIGN
+ <U26A1>     /xe2/x9a/xa1 HIGH VOLTAGE SIGN
+ <U26A2>     /xe2/x9a/xa2 DOUBLED FEMALE SIGN
+@@ -8080,18 +8566,84 @@ CHARMAP
+ <U26BA>     /xe2/x9a/xba SEMISEXTILE
+ <U26BB>     /xe2/x9a/xbb QUINCUNX
+ <U26BC>     /xe2/x9a/xbc SESQUIQUADRATE
++<U26BD>     /xe2/x9a/xbd SOCCER BALL
++<U26BE>     /xe2/x9a/xbe BASEBALL
++<U26BF>     /xe2/x9a/xbf SQUARED KEY
+ <U26C0>     /xe2/x9b/x80 WHITE DRAUGHTS MAN
+ <U26C1>     /xe2/x9b/x81 WHITE DRAUGHTS KING
+ <U26C2>     /xe2/x9b/x82 BLACK DRAUGHTS MAN
+ <U26C3>     /xe2/x9b/x83 BLACK DRAUGHTS KING
++<U26C4>     /xe2/x9b/x84 SNOWMAN WITHOUT SNOW
++<U26C5>     /xe2/x9b/x85 SUN BEHIND CLOUD
++<U26C6>     /xe2/x9b/x86 RAIN
++<U26C7>     /xe2/x9b/x87 BLACK SNOWMAN
++<U26C8>     /xe2/x9b/x88 THUNDER CLOUD AND RAIN
++<U26C9>     /xe2/x9b/x89 TURNED WHITE SHOGI PIECE
++<U26CA>     /xe2/x9b/x8a TURNED BLACK SHOGI PIECE
++<U26CB>     /xe2/x9b/x8b WHITE DIAMOND IN SQUARE
++<U26CC>     /xe2/x9b/x8c CROSSING LANES
++<U26CD>     /xe2/x9b/x8d DISABLED CAR
++<U26CE>     /xe2/x9b/x8e OPHIUCHUS
++<U26CF>     /xe2/x9b/x8f PICK
++<U26D0>     /xe2/x9b/x90 CAR SLIDING
++<U26D1>     /xe2/x9b/x91 HELMET WITH WHITE CROSS
++<U26D2>     /xe2/x9b/x92 CIRCLED CROSSING LANES
++<U26D3>     /xe2/x9b/x93 CHAINS
++<U26D4>     /xe2/x9b/x94 NO ENTRY
++<U26D5>     /xe2/x9b/x95 ALTERNATE ONE-WAY LEFT WAY TRAFFIC
++<U26D6>     /xe2/x9b/x96 BLACK TWO-WAY LEFT WAY TRAFFIC
++<U26D7>     /xe2/x9b/x97 WHITE TWO-WAY LEFT WAY TRAFFIC
++<U26D8>     /xe2/x9b/x98 BLACK LEFT LANE MERGE
++<U26D9>     /xe2/x9b/x99 WHITE LEFT LANE MERGE
++<U26DA>     /xe2/x9b/x9a DRIVE SLOW SIGN
++<U26DB>     /xe2/x9b/x9b HEAVY WHITE DOWN-POINTING TRIANGLE
++<U26DC>     /xe2/x9b/x9c LEFT CLOSED ENTRY
++<U26DD>     /xe2/x9b/x9d SQUARED SALTIRE
++<U26DE>     /xe2/x9b/x9e FALLING DIAGONAL IN WHITE CIRCLE IN BLACK SQUARE
++<U26DF>     /xe2/x9b/x9f BLACK TRUCK
++<U26E0>     /xe2/x9b/xa0 RESTRICTED LEFT ENTRY-1
++<U26E1>     /xe2/x9b/xa1 RESTRICTED LEFT ENTRY-2
++<U26E2>     /xe2/x9b/xa2 ASTRONOMICAL SYMBOL FOR URANUS
++<U26E3>     /xe2/x9b/xa3 HEAVY CIRCLE WITH STROKE AND TWO DOTS ABOVE
++<U26E4>     /xe2/x9b/xa4 PENTAGRAM
++<U26E5>     /xe2/x9b/xa5 RIGHT-HANDED INTERLACED PENTAGRAM
++<U26E6>     /xe2/x9b/xa6 LEFT-HANDED INTERLACED PENTAGRAM
++<U26E7>     /xe2/x9b/xa7 INVERTED PENTAGRAM
++<U26E8>     /xe2/x9b/xa8 BLACK CROSS ON SHIELD
++<U26E9>     /xe2/x9b/xa9 SHINTO SHRINE
++<U26EA>     /xe2/x9b/xaa CHURCH
++<U26EB>     /xe2/x9b/xab CASTLE
++<U26EC>     /xe2/x9b/xac HISTORIC SITE
++<U26ED>     /xe2/x9b/xad GEAR WITHOUT HUB
++<U26EE>     /xe2/x9b/xae GEAR WITH HANDLES
++<U26EF>     /xe2/x9b/xaf MAP SYMBOL FOR LIGHTHOUSE
++<U26F0>     /xe2/x9b/xb0 MOUNTAIN
++<U26F1>     /xe2/x9b/xb1 UMBRELLA ON GROUND
++<U26F2>     /xe2/x9b/xb2 FOUNTAIN
++<U26F3>     /xe2/x9b/xb3 FLAG IN HOLE
++<U26F4>     /xe2/x9b/xb4 FERRY
++<U26F5>     /xe2/x9b/xb5 SAILBOAT
++<U26F6>     /xe2/x9b/xb6 SQUARE FOUR CORNERS
++<U26F7>     /xe2/x9b/xb7 SKIER
++<U26F8>     /xe2/x9b/xb8 ICE SKATE
++<U26F9>     /xe2/x9b/xb9 PERSON WITH BALL
++<U26FA>     /xe2/x9b/xba TENT
++<U26FB>     /xe2/x9b/xbb JAPANESE BANK SYMBOL
++<U26FC>     /xe2/x9b/xbc HEADSTONE GRAVEYARD SYMBOL
++<U26FD>     /xe2/x9b/xbd FUEL PUMP
++<U26FE>     /xe2/x9b/xbe CUP ON BLACK SQUARE
++<U26FF>     /xe2/x9b/xbf WHITE FLAG WITH HORIZONTAL MIDDLE BLACK STRIPE
+ <U2701>     /xe2/x9c/x81 UPPER BLADE SCISSORS
+ <U2702>     /xe2/x9c/x82 BLACK SCISSORS
+ <U2703>     /xe2/x9c/x83 LOWER BLADE SCISSORS
+ <U2704>     /xe2/x9c/x84 WHITE SCISSORS
++<U2705>     /xe2/x9c/x85 WHITE HEAVY CHECK MARK
+ <U2706>     /xe2/x9c/x86 TELEPHONE LOCATION SIGN
+ <U2707>     /xe2/x9c/x87 TAPE DRIVE
+ <U2708>     /xe2/x9c/x88 AIRPLANE
+ <U2709>     /xe2/x9c/x89 ENVELOPE
++<U270A>     /xe2/x9c/x8a RAISED FIST
++<U270B>     /xe2/x9c/x8b RAISED HAND
+ <U270C>     /xe2/x9c/x8c VICTORY HAND
+ <U270D>     /xe2/x9c/x8d WRITING HAND
+ <U270E>     /xe2/x9c/x8e LOWER RIGHT PENCIL
+@@ -8120,6 +8672,7 @@ CHARMAP
+ <U2725>     /xe2/x9c/xa5 FOUR CLUB-SPOKED ASTERISK
+ <U2726>     /xe2/x9c/xa6 BLACK FOUR POINTED STAR
+ <U2727>     /xe2/x9c/xa7 WHITE FOUR POINTED STAR
++<U2728>     /xe2/x9c/xa8 SPARKLES
+ <U2729>     /xe2/x9c/xa9 STRESS OUTLINED WHITE STAR
+ <U272A>     /xe2/x9c/xaa CIRCLED WHITE STAR
+ <U272B>     /xe2/x9c/xab OPEN CENTRE BLACK STAR
+@@ -8155,12 +8708,18 @@ CHARMAP
+ <U2749>     /xe2/x9d/x89 BALLOON-SPOKED ASTERISK
+ <U274A>     /xe2/x9d/x8a EIGHT TEARDROP-SPOKED PROPELLER ASTERISK
+ <U274B>     /xe2/x9d/x8b HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK
++<U274C>     /xe2/x9d/x8c CROSS MARK
+ <U274D>     /xe2/x9d/x8d SHADOWED WHITE CIRCLE
++<U274E>     /xe2/x9d/x8e NEGATIVE SQUARED CROSS MARK
+ <U274F>     /xe2/x9d/x8f LOWER RIGHT DROP-SHADOWED WHITE SQUARE
+ <U2750>     /xe2/x9d/x90 UPPER RIGHT DROP-SHADOWED WHITE SQUARE
+ <U2751>     /xe2/x9d/x91 LOWER RIGHT SHADOWED WHITE SQUARE
+ <U2752>     /xe2/x9d/x92 UPPER RIGHT SHADOWED WHITE SQUARE
++<U2753>     /xe2/x9d/x93 BLACK QUESTION MARK ORNAMENT
++<U2754>     /xe2/x9d/x94 WHITE QUESTION MARK ORNAMENT
++<U2755>     /xe2/x9d/x95 WHITE EXCLAMATION MARK ORNAMENT
+ <U2756>     /xe2/x9d/x96 BLACK DIAMOND MINUS WHITE X
++<U2757>     /xe2/x9d/x97 HEAVY EXCLAMATION MARK SYMBOL
+ <U2758>     /xe2/x9d/x98 LIGHT VERTICAL BAR
+ <U2759>     /xe2/x9d/x99 MEDIUM VERTICAL BAR
+ <U275A>     /xe2/x9d/x9a HEAVY VERTICAL BAR
+@@ -8168,6 +8727,8 @@ CHARMAP
+ <U275C>     /xe2/x9d/x9c HEAVY SINGLE COMMA QUOTATION MARK ORNAMENT
+ <U275D>     /xe2/x9d/x9d HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT
+ <U275E>     /xe2/x9d/x9e HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT
++<U275F>     /xe2/x9d/x9f HEAVY LOW SINGLE COMMA QUOTATION MARK ORNAMENT
++<U2760>     /xe2/x9d/xa0 HEAVY LOW DOUBLE COMMA QUOTATION MARK ORNAMENT
+ <U2761>     /xe2/x9d/xa1 CURVED STEM PARAGRAPH SIGN ORNAMENT
+ <U2762>     /xe2/x9d/xa2 HEAVY EXCLAMATION MARK ORNAMENT
+ <U2763>     /xe2/x9d/xa3 HEAVY HEART EXCLAMATION MARK ORNAMENT
+@@ -8220,6 +8781,9 @@ CHARMAP
+ <U2792>     /xe2/x9e/x92 DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT NINE
+ <U2793>     /xe2/x9e/x93 DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN
+ <U2794>     /xe2/x9e/x94 HEAVY WIDE-HEADED RIGHTWARDS ARROW
++<U2795>     /xe2/x9e/x95 HEAVY PLUS SIGN
++<U2796>     /xe2/x9e/x96 HEAVY MINUS SIGN
++<U2797>     /xe2/x9e/x97 HEAVY DIVISION SIGN
+ <U2798>     /xe2/x9e/x98 HEAVY SOUTH EAST ARROW
+ <U2799>     /xe2/x9e/x99 HEAVY RIGHTWARDS ARROW
+ <U279A>     /xe2/x9e/x9a HEAVY NORTH EAST ARROW
+@@ -8244,6 +8808,7 @@ CHARMAP
+ <U27AD>     /xe2/x9e/xad HEAVY LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
+ <U27AE>     /xe2/x9e/xae HEAVY UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
+ <U27AF>     /xe2/x9e/xaf NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
++<U27B0>     /xe2/x9e/xb0 CURLY LOOP
+ <U27B1>     /xe2/x9e/xb1 NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
+ <U27B2>     /xe2/x9e/xb2 CIRCLED HEAVY WHITE RIGHTWARDS ARROW
+ <U27B3>     /xe2/x9e/xb3 WHITE-FEATHERED RIGHTWARDS ARROW
+@@ -8258,6 +8823,7 @@ CHARMAP
+ <U27BC>     /xe2/x9e/xbc WEDGE-TAILED RIGHTWARDS ARROW
+ <U27BD>     /xe2/x9e/xbd HEAVY WEDGE-TAILED RIGHTWARDS ARROW
+ <U27BE>     /xe2/x9e/xbe OPEN-OUTLINED RIGHTWARDS ARROW
++<U27BF>     /xe2/x9e/xbf DOUBLE CURLY LOOP
+ <U27C0>     /xe2/x9f/x80 THREE DIMENSIONAL ANGLE
+ <U27C1>     /xe2/x9f/x81 WHITE TRIANGLE CONTAINING SMALL WHITE TRIANGLE
+ <U27C2>     /xe2/x9f/x82 PERPENDICULAR
+@@ -8270,6 +8836,8 @@ CHARMAP
+ <U27C9>     /xe2/x9f/x89 SUPERSET PRECEDING SOLIDUS
+ <U27CA>     /xe2/x9f/x8a VERTICAL BAR WITH HORIZONTAL STROKE
+ <U27CC>     /xe2/x9f/x8c LONG DIVISION
++<U27CE>     /xe2/x9f/x8e SQUARED LOGICAL AND
++<U27CF>     /xe2/x9f/x8f SQUARED LOGICAL OR
+ <U27D0>     /xe2/x9f/x90 WHITE DIAMOND WITH CENTRED DOT
+ <U27D1>     /xe2/x9f/x91 AND WITH DOT
+ <U27D2>     /xe2/x9f/x92 ELEMENT OF OPENING UPWARDS
+@@ -9168,6 +9736,11 @@ CHARMAP
+ <U2B52>     /xe2/xad/x92 WHITE SMALL STAR
+ <U2B53>     /xe2/xad/x93 BLACK RIGHT-POINTING PENTAGON
+ <U2B54>     /xe2/xad/x94 WHITE RIGHT-POINTING PENTAGON
++<U2B55>     /xe2/xad/x95 HEAVY LARGE CIRCLE
++<U2B56>     /xe2/xad/x96 HEAVY OVAL WITH OVAL INSIDE
++<U2B57>     /xe2/xad/x97 HEAVY CIRCLE WITH CIRCLE INSIDE
++<U2B58>     /xe2/xad/x98 HEAVY CIRCLE
++<U2B59>     /xe2/xad/x99 HEAVY CIRCLED SALTIRE
+ <U2C00>     /xe2/xb0/x80 GLAGOLITIC CAPITAL LETTER AZU
+ <U2C01>     /xe2/xb0/x81 GLAGOLITIC CAPITAL LETTER BUKY
+ <U2C02>     /xe2/xb0/x82 GLAGOLITIC CAPITAL LETTER VEDE
+@@ -9278,6 +9851,7 @@ CHARMAP
+ <U2C6D>     /xe2/xb1/xad LATIN CAPITAL LETTER ALPHA
+ <U2C6E>     /xe2/xb1/xae LATIN CAPITAL LETTER M WITH HOOK
+ <U2C6F>     /xe2/xb1/xaf LATIN CAPITAL LETTER TURNED A
++<U2C70>     /xe2/xb1/xb0 LATIN CAPITAL LETTER TURNED ALPHA
+ <U2C71>     /xe2/xb1/xb1 LATIN SMALL LETTER V WITH RIGHT HOOK
+ <U2C72>     /xe2/xb1/xb2 LATIN CAPITAL LETTER W WITH HOOK
+ <U2C73>     /xe2/xb1/xb3 LATIN SMALL LETTER W WITH HOOK
+@@ -9291,6 +9865,8 @@ CHARMAP
+ <U2C7B>     /xe2/xb1/xbb LATIN LETTER SMALL CAPITAL TURNED E
+ <U2C7C>     /xe2/xb1/xbc LATIN SUBSCRIPT SMALL LETTER J
+ <U2C7D>     /xe2/xb1/xbd MODIFIER LETTER CAPITAL V
++<U2C7E>     /xe2/xb1/xbe LATIN CAPITAL LETTER S WITH SWASH TAIL
++<U2C7F>     /xe2/xb1/xbf LATIN CAPITAL LETTER Z WITH SWASH TAIL
+ <U2C80>     /xe2/xb2/x80 COPTIC CAPITAL LETTER ALFA
+ <U2C81>     /xe2/xb2/x81 COPTIC SMALL LETTER ALFA
+ <U2C82>     /xe2/xb2/x82 COPTIC CAPITAL LETTER VIDA
+@@ -9398,6 +9974,13 @@ CHARMAP
+ <U2CE8>     /xe2/xb3/xa8 COPTIC SYMBOL TAU RO
+ <U2CE9>     /xe2/xb3/xa9 COPTIC SYMBOL KHI RO
+ <U2CEA>     /xe2/xb3/xaa COPTIC SYMBOL SHIMA SIMA
++<U2CEB>     /xe2/xb3/xab COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI
++<U2CEC>     /xe2/xb3/xac COPTIC SMALL LETTER CRYPTOGRAMMIC SHEI
++<U2CED>     /xe2/xb3/xad COPTIC CAPITAL LETTER CRYPTOGRAMMIC GANGIA
++<U2CEE>     /xe2/xb3/xae COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA
++<U2CEF>     /xe2/xb3/xaf COPTIC COMBINING NI ABOVE
++<U2CF0>     /xe2/xb3/xb0 COPTIC COMBINING SPIRITUS ASPER
++<U2CF1>     /xe2/xb3/xb1 COPTIC COMBINING SPIRITUS LENIS
+ <U2CF9>     /xe2/xb3/xb9 COPTIC OLD NUBIAN FULL STOP
+ <U2CFA>     /xe2/xb3/xba COPTIC OLD NUBIAN DIRECT QUESTION MARK
+ <U2CFB>     /xe2/xb3/xbb COPTIC OLD NUBIAN INDIRECT QUESTION MARK
+@@ -9498,6 +10081,8 @@ CHARMAP
+ <U2D64>     /xe2/xb5/xa4 TIFINAGH LETTER TAWELLEMET YAZ
+ <U2D65>     /xe2/xb5/xa5 TIFINAGH LETTER YAZZ
+ <U2D6F>     /xe2/xb5/xaf TIFINAGH MODIFIER LETTER LABIALIZATION MARK
++<U2D70>     /xe2/xb5/xb0 TIFINAGH SEPARATOR MARK
++<U2D7F>     /xe2/xb5/xbf TIFINAGH CONSONANT JOINER
+ <U2D80>     /xe2/xb6/x80 ETHIOPIC SYLLABLE LOA
+ <U2D81>     /xe2/xb6/x81 ETHIOPIC SYLLABLE MOA
+ <U2D82>     /xe2/xb6/x82 ETHIOPIC SYLLABLE ROA
+@@ -9658,6 +10243,7 @@ CHARMAP
+ <U2E2E>     /xe2/xb8/xae REVERSED QUESTION MARK
+ <U2E2F>     /xe2/xb8/xaf VERTICAL TILDE
+ <U2E30>     /xe2/xb8/xb0 RING POINT
++<U2E31>     /xe2/xb8/xb1 WORD SEPARATOR MIDDLE DOT
+ <U2E80>     /xe2/xba/x80 CJK RADICAL REPEAT
+ <U2E81>     /xe2/xba/x81 CJK RADICAL CLIFF
+ <U2E82>     /xe2/xba/x82 CJK RADICAL SECOND ONE
+@@ -10427,6 +11013,9 @@ CHARMAP
+ <U31B5>     /xe3/x86/xb5 BOPOMOFO FINAL LETTER T
+ <U31B6>     /xe3/x86/xb6 BOPOMOFO FINAL LETTER K
+ <U31B7>     /xe3/x86/xb7 BOPOMOFO FINAL LETTER H
++<U31B8>     /xe3/x86/xb8 BOPOMOFO LETTER GH
++<U31B9>     /xe3/x86/xb9 BOPOMOFO LETTER LH
++<U31BA>     /xe3/x86/xba BOPOMOFO LETTER ZY
+ <U31C0>     /xe3/x87/x80 CJK STROKE T
+ <U31C1>     /xe3/x87/x81 CJK STROKE WG
+ <U31C2>     /xe3/x87/x82 CJK STROKE XG
+@@ -10546,6 +11135,18 @@ CHARMAP
+ <U3241>     /xe3/x89/x81 PARENTHESIZED IDEOGRAPH REST
+ <U3242>     /xe3/x89/x82 PARENTHESIZED IDEOGRAPH SELF
+ <U3243>     /xe3/x89/x83 PARENTHESIZED IDEOGRAPH REACH
++<U3244>     /xe3/x89/x84 CIRCLED IDEOGRAPH QUESTION
++<U3245>     /xe3/x89/x85 CIRCLED IDEOGRAPH KINDERGARTEN
++<U3246>     /xe3/x89/x86 CIRCLED IDEOGRAPH SCHOOL
++<U3247>     /xe3/x89/x87 CIRCLED IDEOGRAPH KOTO
++<U3248>     /xe3/x89/x88 CIRCLED NUMBER TEN ON BLACK SQUARE
++<U3249>     /xe3/x89/x89 CIRCLED NUMBER TWENTY ON BLACK SQUARE
++<U324A>     /xe3/x89/x8a CIRCLED NUMBER THIRTY ON BLACK SQUARE
++<U324B>     /xe3/x89/x8b CIRCLED NUMBER FORTY ON BLACK SQUARE
++<U324C>     /xe3/x89/x8c CIRCLED NUMBER FIFTY ON BLACK SQUARE
++<U324D>     /xe3/x89/x8d CIRCLED NUMBER SIXTY ON BLACK SQUARE
++<U324E>     /xe3/x89/x8e CIRCLED NUMBER SEVENTY ON BLACK SQUARE
++<U324F>     /xe3/x89/x8f CIRCLED NUMBER EIGHTY ON BLACK SQUARE
+ <U3250>     /xe3/x89/x90 PARTNERSHIP SIGN
+ <U3251>     /xe3/x89/x91 CIRCLED NUMBER TWENTY ONE
+ <U3252>     /xe3/x89/x92 CIRCLED NUMBER TWENTY TWO
+@@ -12691,6 +13292,54 @@ CHARMAP
+ <UA4C4>     /xea/x93/x84 YI RADICAL ZZIET
+ <UA4C5>     /xea/x93/x85 YI RADICAL NBIE
+ <UA4C6>     /xea/x93/x86 YI RADICAL KE
++<UA4D0>     /xea/x93/x90 LISU LETTER BA
++<UA4D1>     /xea/x93/x91 LISU LETTER PA
++<UA4D2>     /xea/x93/x92 LISU LETTER PHA
++<UA4D3>     /xea/x93/x93 LISU LETTER DA
++<UA4D4>     /xea/x93/x94 LISU LETTER TA
++<UA4D5>     /xea/x93/x95 LISU LETTER THA
++<UA4D6>     /xea/x93/x96 LISU LETTER GA
++<UA4D7>     /xea/x93/x97 LISU LETTER KA
++<UA4D8>     /xea/x93/x98 LISU LETTER KHA
++<UA4D9>     /xea/x93/x99 LISU LETTER JA
++<UA4DA>     /xea/x93/x9a LISU LETTER CA
++<UA4DB>     /xea/x93/x9b LISU LETTER CHA
++<UA4DC>     /xea/x93/x9c LISU LETTER DZA
++<UA4DD>     /xea/x93/x9d LISU LETTER TSA
++<UA4DE>     /xea/x93/x9e LISU LETTER TSHA
++<UA4DF>     /xea/x93/x9f LISU LETTER MA
++<UA4E0>     /xea/x93/xa0 LISU LETTER NA
++<UA4E1>     /xea/x93/xa1 LISU LETTER LA
++<UA4E2>     /xea/x93/xa2 LISU LETTER SA
++<UA4E3>     /xea/x93/xa3 LISU LETTER ZHA
++<UA4E4>     /xea/x93/xa4 LISU LETTER ZA
++<UA4E5>     /xea/x93/xa5 LISU LETTER NGA
++<UA4E6>     /xea/x93/xa6 LISU LETTER HA
++<UA4E7>     /xea/x93/xa7 LISU LETTER XA
++<UA4E8>     /xea/x93/xa8 LISU LETTER HHA
++<UA4E9>     /xea/x93/xa9 LISU LETTER FA
++<UA4EA>     /xea/x93/xaa LISU LETTER WA
++<UA4EB>     /xea/x93/xab LISU LETTER SHA
++<UA4EC>     /xea/x93/xac LISU LETTER YA
++<UA4ED>     /xea/x93/xad LISU LETTER GHA
++<UA4EE>     /xea/x93/xae LISU LETTER A
++<UA4EF>     /xea/x93/xaf LISU LETTER AE
++<UA4F0>     /xea/x93/xb0 LISU LETTER E
++<UA4F1>     /xea/x93/xb1 LISU LETTER EU
++<UA4F2>     /xea/x93/xb2 LISU LETTER I
++<UA4F3>     /xea/x93/xb3 LISU LETTER O
++<UA4F4>     /xea/x93/xb4 LISU LETTER U
++<UA4F5>     /xea/x93/xb5 LISU LETTER UE
++<UA4F6>     /xea/x93/xb6 LISU LETTER UH
++<UA4F7>     /xea/x93/xb7 LISU LETTER OE
++<UA4F8>     /xea/x93/xb8 LISU LETTER TONE MYA TI
++<UA4F9>     /xea/x93/xb9 LISU LETTER TONE NA PO
++<UA4FA>     /xea/x93/xba LISU LETTER TONE MYA CYA
++<UA4FB>     /xea/x93/xbb LISU LETTER TONE MYA BO
++<UA4FC>     /xea/x93/xbc LISU LETTER TONE MYA NA
++<UA4FD>     /xea/x93/xbd LISU LETTER TONE MYA JEU
++<UA4FE>     /xea/x93/xbe LISU PUNCTUATION COMMA
++<UA4FF>     /xea/x93/xbf LISU PUNCTUATION FULL STOP
+ <UA500>     /xea/x94/x80 VAI SYLLABLE EE
+ <UA501>     /xea/x94/x81 VAI SYLLABLE EEN
+ <UA502>     /xea/x94/x82 VAI SYLLABLE HEE
+@@ -13023,6 +13672,8 @@ CHARMAP
+ <UA65D>     /xea/x99/x9d CYRILLIC SMALL LETTER IOTIFIED CLOSED LITTLE YUS
+ <UA65E>     /xea/x99/x9e CYRILLIC CAPITAL LETTER YN
+ <UA65F>     /xea/x99/x9f CYRILLIC SMALL LETTER YN
++<UA660>     /xea/x99/xa0 CYRILLIC CAPITAL LETTER REVERSED TSE
++<UA661>     /xea/x99/xa1 CYRILLIC SMALL LETTER REVERSED TSE
+ <UA662>     /xea/x99/xa2 CYRILLIC CAPITAL LETTER SOFT DE
+ <UA663>     /xea/x99/xa3 CYRILLIC SMALL LETTER SOFT DE
+ <UA664>     /xea/x99/xa4 CYRILLIC CAPITAL LETTER SOFT EL
+@@ -13069,6 +13720,94 @@ CHARMAP
+ <UA695>     /xea/x9a/x95 CYRILLIC SMALL LETTER HWE
+ <UA696>     /xea/x9a/x96 CYRILLIC CAPITAL LETTER SHWE
+ <UA697>     /xea/x9a/x97 CYRILLIC SMALL LETTER SHWE
++<UA6A0>     /xea/x9a/xa0 BAMUM LETTER A
++<UA6A1>     /xea/x9a/xa1 BAMUM LETTER KA
++<UA6A2>     /xea/x9a/xa2 BAMUM LETTER U
++<UA6A3>     /xea/x9a/xa3 BAMUM LETTER KU
++<UA6A4>     /xea/x9a/xa4 BAMUM LETTER EE
++<UA6A5>     /xea/x9a/xa5 BAMUM LETTER REE
++<UA6A6>     /xea/x9a/xa6 BAMUM LETTER TAE
++<UA6A7>     /xea/x9a/xa7 BAMUM LETTER O
++<UA6A8>     /xea/x9a/xa8 BAMUM LETTER NYI
++<UA6A9>     /xea/x9a/xa9 BAMUM LETTER I
++<UA6AA>     /xea/x9a/xaa BAMUM LETTER LA
++<UA6AB>     /xea/x9a/xab BAMUM LETTER PA
++<UA6AC>     /xea/x9a/xac BAMUM LETTER RII
++<UA6AD>     /xea/x9a/xad BAMUM LETTER RIEE
++<UA6AE>     /xea/x9a/xae BAMUM LETTER LEEEE
++<UA6AF>     /xea/x9a/xaf BAMUM LETTER MEEEE
++<UA6B0>     /xea/x9a/xb0 BAMUM LETTER TAA
++<UA6B1>     /xea/x9a/xb1 BAMUM LETTER NDAA
++<UA6B2>     /xea/x9a/xb2 BAMUM LETTER NJAEM
++<UA6B3>     /xea/x9a/xb3 BAMUM LETTER M
++<UA6B4>     /xea/x9a/xb4 BAMUM LETTER SUU
++<UA6B5>     /xea/x9a/xb5 BAMUM LETTER MU
++<UA6B6>     /xea/x9a/xb6 BAMUM LETTER SHII
++<UA6B7>     /xea/x9a/xb7 BAMUM LETTER SI
++<UA6B8>     /xea/x9a/xb8 BAMUM LETTER SHEUX
++<UA6B9>     /xea/x9a/xb9 BAMUM LETTER SEUX
++<UA6BA>     /xea/x9a/xba BAMUM LETTER KYEE
++<UA6BB>     /xea/x9a/xbb BAMUM LETTER KET
++<UA6BC>     /xea/x9a/xbc BAMUM LETTER NUAE
++<UA6BD>     /xea/x9a/xbd BAMUM LETTER NU
++<UA6BE>     /xea/x9a/xbe BAMUM LETTER NJUAE
++<UA6BF>     /xea/x9a/xbf BAMUM LETTER YOQ
++<UA6C0>     /xea/x9b/x80 BAMUM LETTER SHU
++<UA6C1>     /xea/x9b/x81 BAMUM LETTER YUQ
++<UA6C2>     /xea/x9b/x82 BAMUM LETTER YA
++<UA6C3>     /xea/x9b/x83 BAMUM LETTER NSHA
++<UA6C4>     /xea/x9b/x84 BAMUM LETTER KEUX
++<UA6C5>     /xea/x9b/x85 BAMUM LETTER PEUX
++<UA6C6>     /xea/x9b/x86 BAMUM LETTER NJEE
++<UA6C7>     /xea/x9b/x87 BAMUM LETTER NTEE
++<UA6C8>     /xea/x9b/x88 BAMUM LETTER PUE
++<UA6C9>     /xea/x9b/x89 BAMUM LETTER WUE
++<UA6CA>     /xea/x9b/x8a BAMUM LETTER PEE
++<UA6CB>     /xea/x9b/x8b BAMUM LETTER FEE
++<UA6CC>     /xea/x9b/x8c BAMUM LETTER RU
++<UA6CD>     /xea/x9b/x8d BAMUM LETTER LU
++<UA6CE>     /xea/x9b/x8e BAMUM LETTER MI
++<UA6CF>     /xea/x9b/x8f BAMUM LETTER NI
++<UA6D0>     /xea/x9b/x90 BAMUM LETTER REUX
++<UA6D1>     /xea/x9b/x91 BAMUM LETTER RAE
++<UA6D2>     /xea/x9b/x92 BAMUM LETTER KEN
++<UA6D3>     /xea/x9b/x93 BAMUM LETTER NGKWAEN
++<UA6D4>     /xea/x9b/x94 BAMUM LETTER NGGA
++<UA6D5>     /xea/x9b/x95 BAMUM LETTER NGA
++<UA6D6>     /xea/x9b/x96 BAMUM LETTER SHO
++<UA6D7>     /xea/x9b/x97 BAMUM LETTER PUAE
++<UA6D8>     /xea/x9b/x98 BAMUM LETTER FU
++<UA6D9>     /xea/x9b/x99 BAMUM LETTER FOM
++<UA6DA>     /xea/x9b/x9a BAMUM LETTER WA
++<UA6DB>     /xea/x9b/x9b BAMUM LETTER NA
++<UA6DC>     /xea/x9b/x9c BAMUM LETTER LI
++<UA6DD>     /xea/x9b/x9d BAMUM LETTER PI
++<UA6DE>     /xea/x9b/x9e BAMUM LETTER LOQ
++<UA6DF>     /xea/x9b/x9f BAMUM LETTER KO
++<UA6E0>     /xea/x9b/xa0 BAMUM LETTER MBEN
++<UA6E1>     /xea/x9b/xa1 BAMUM LETTER REN
++<UA6E2>     /xea/x9b/xa2 BAMUM LETTER MEN
++<UA6E3>     /xea/x9b/xa3 BAMUM LETTER MA
++<UA6E4>     /xea/x9b/xa4 BAMUM LETTER TI
++<UA6E5>     /xea/x9b/xa5 BAMUM LETTER KI
++<UA6E6>     /xea/x9b/xa6 BAMUM LETTER MO
++<UA6E7>     /xea/x9b/xa7 BAMUM LETTER MBAA
++<UA6E8>     /xea/x9b/xa8 BAMUM LETTER TET
++<UA6E9>     /xea/x9b/xa9 BAMUM LETTER KPA
++<UA6EA>     /xea/x9b/xaa BAMUM LETTER TEN
++<UA6EB>     /xea/x9b/xab BAMUM LETTER NTUU
++<UA6EC>     /xea/x9b/xac BAMUM LETTER SAMBA
++<UA6ED>     /xea/x9b/xad BAMUM LETTER FAAMAE
++<UA6EE>     /xea/x9b/xae BAMUM LETTER KOVUU
++<UA6EF>     /xea/x9b/xaf BAMUM LETTER KOGHOM
++<UA6F0>     /xea/x9b/xb0 BAMUM COMBINING MARK KOQNDON
++<UA6F1>     /xea/x9b/xb1 BAMUM COMBINING MARK TUKWENTIS
++<UA6F2>     /xea/x9b/xb2 BAMUM NJAEMLI
++<UA6F3>     /xea/x9b/xb3 BAMUM FULL STOP
++<UA6F4>     /xea/x9b/xb4 BAMUM COLON
++<UA6F5>     /xea/x9b/xb5 BAMUM COMMA
++<UA6F6>     /xea/x9b/xb6 BAMUM SEMICOLON
++<UA6F7>     /xea/x9b/xb7 BAMUM QUESTION MARK
+ <UA700>     /xea/x9c/x80 MODIFIER LETTER CHINESE TONE YIN PING
+ <UA701>     /xea/x9c/x81 MODIFIER LETTER CHINESE TONE YANG PING
+ <UA702>     /xea/x9c/x82 MODIFIER LETTER CHINESE TONE YIN SHANG
+@@ -13210,6 +13949,21 @@ CHARMAP
+ <UA78A>     /xea/x9e/x8a MODIFIER LETTER SHORT EQUALS SIGN
+ <UA78B>     /xea/x9e/x8b LATIN CAPITAL LETTER SALTILLO
+ <UA78C>     /xea/x9e/x8c LATIN SMALL LETTER SALTILLO
++<UA78D>     /xea/x9e/x8d LATIN CAPITAL LETTER TURNED H
++<UA78E>     /xea/x9e/x8e LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
++<UA790>     /xea/x9e/x90 LATIN CAPITAL LETTER N WITH DESCENDER
++<UA791>     /xea/x9e/x91 LATIN SMALL LETTER N WITH DESCENDER
++<UA7A0>     /xea/x9e/xa0 LATIN CAPITAL LETTER G WITH OBLIQUE STROKE
++<UA7A1>     /xea/x9e/xa1 LATIN SMALL LETTER G WITH OBLIQUE STROKE
++<UA7A2>     /xea/x9e/xa2 LATIN CAPITAL LETTER K WITH OBLIQUE STROKE
++<UA7A3>     /xea/x9e/xa3 LATIN SMALL LETTER K WITH OBLIQUE STROKE
++<UA7A4>     /xea/x9e/xa4 LATIN CAPITAL LETTER N WITH OBLIQUE STROKE
++<UA7A5>     /xea/x9e/xa5 LATIN SMALL LETTER N WITH OBLIQUE STROKE
++<UA7A6>     /xea/x9e/xa6 LATIN CAPITAL LETTER R WITH OBLIQUE STROKE
++<UA7A7>     /xea/x9e/xa7 LATIN SMALL LETTER R WITH OBLIQUE STROKE
++<UA7A8>     /xea/x9e/xa8 LATIN CAPITAL LETTER S WITH OBLIQUE STROKE
++<UA7A9>     /xea/x9e/xa9 LATIN SMALL LETTER S WITH OBLIQUE STROKE
++<UA7FA>     /xea/x9f/xba LATIN LETTER SMALL CAPITAL TURNED M
+ <UA7FB>     /xea/x9f/xbb LATIN EPIGRAPHIC LETTER REVERSED F
+ <UA7FC>     /xea/x9f/xbc LATIN EPIGRAPHIC LETTER REVERSED P
+ <UA7FD>     /xea/x9f/xbd LATIN EPIGRAPHIC LETTER INVERTED M
+@@ -13259,6 +14013,16 @@ CHARMAP
+ <UA829>     /xea/xa0/xa9 SYLOTI NAGRI POETRY MARK-2
+ <UA82A>     /xea/xa0/xaa SYLOTI NAGRI POETRY MARK-3
+ <UA82B>     /xea/xa0/xab SYLOTI NAGRI POETRY MARK-4
++<UA830>     /xea/xa0/xb0 NORTH INDIC FRACTION ONE QUARTER
++<UA831>     /xea/xa0/xb1 NORTH INDIC FRACTION ONE HALF
++<UA832>     /xea/xa0/xb2 NORTH INDIC FRACTION THREE QUARTERS
++<UA833>     /xea/xa0/xb3 NORTH INDIC FRACTION ONE SIXTEENTH
++<UA834>     /xea/xa0/xb4 NORTH INDIC FRACTION ONE EIGHTH
++<UA835>     /xea/xa0/xb5 NORTH INDIC FRACTION THREE SIXTEENTHS
++<UA836>     /xea/xa0/xb6 NORTH INDIC QUARTER MARK
++<UA837>     /xea/xa0/xb7 NORTH INDIC PLACEHOLDER MARK
++<UA838>     /xea/xa0/xb8 NORTH INDIC RUPEE MARK
++<UA839>     /xea/xa0/xb9 NORTH INDIC QUANTITY MARK
+ <UA840>     /xea/xa1/x80 PHAGS-PA LETTER KA
+ <UA841>     /xea/xa1/x81 PHAGS-PA LETTER KHA
+ <UA842>     /xea/xa1/x82 PHAGS-PA LETTER GA
+@@ -13396,6 +14160,34 @@ CHARMAP
+ <UA8D7>     /xea/xa3/x97 SAURASHTRA DIGIT SEVEN
+ <UA8D8>     /xea/xa3/x98 SAURASHTRA DIGIT EIGHT
+ <UA8D9>     /xea/xa3/x99 SAURASHTRA DIGIT NINE
++<UA8E0>     /xea/xa3/xa0 COMBINING DEVANAGARI DIGIT ZERO
++<UA8E1>     /xea/xa3/xa1 COMBINING DEVANAGARI DIGIT ONE
++<UA8E2>     /xea/xa3/xa2 COMBINING DEVANAGARI DIGIT TWO
++<UA8E3>     /xea/xa3/xa3 COMBINING DEVANAGARI DIGIT THREE
++<UA8E4>     /xea/xa3/xa4 COMBINING DEVANAGARI DIGIT FOUR
++<UA8E5>     /xea/xa3/xa5 COMBINING DEVANAGARI DIGIT FIVE
++<UA8E6>     /xea/xa3/xa6 COMBINING DEVANAGARI DIGIT SIX
++<UA8E7>     /xea/xa3/xa7 COMBINING DEVANAGARI DIGIT SEVEN
++<UA8E8>     /xea/xa3/xa8 COMBINING DEVANAGARI DIGIT EIGHT
++<UA8E9>     /xea/xa3/xa9 COMBINING DEVANAGARI DIGIT NINE
++<UA8EA>     /xea/xa3/xaa COMBINING DEVANAGARI LETTER A
++<UA8EB>     /xea/xa3/xab COMBINING DEVANAGARI LETTER U
++<UA8EC>     /xea/xa3/xac COMBINING DEVANAGARI LETTER KA
++<UA8ED>     /xea/xa3/xad COMBINING DEVANAGARI LETTER NA
++<UA8EE>     /xea/xa3/xae COMBINING DEVANAGARI LETTER PA
++<UA8EF>     /xea/xa3/xaf COMBINING DEVANAGARI LETTER RA
++<UA8F0>     /xea/xa3/xb0 COMBINING DEVANAGARI LETTER VI
++<UA8F1>     /xea/xa3/xb1 COMBINING DEVANAGARI SIGN AVAGRAHA
++<UA8F2>     /xea/xa3/xb2 DEVANAGARI SIGN SPACING CANDRABINDU
++<UA8F3>     /xea/xa3/xb3 DEVANAGARI SIGN CANDRABINDU VIRAMA
++<UA8F4>     /xea/xa3/xb4 DEVANAGARI SIGN DOUBLE CANDRABINDU VIRAMA
++<UA8F5>     /xea/xa3/xb5 DEVANAGARI SIGN CANDRABINDU TWO
++<UA8F6>     /xea/xa3/xb6 DEVANAGARI SIGN CANDRABINDU THREE
++<UA8F7>     /xea/xa3/xb7 DEVANAGARI SIGN CANDRABINDU AVAGRAHA
++<UA8F8>     /xea/xa3/xb8 DEVANAGARI SIGN PUSHPIKA
++<UA8F9>     /xea/xa3/xb9 DEVANAGARI GAP FILLER
++<UA8FA>     /xea/xa3/xba DEVANAGARI CARET
++<UA8FB>     /xea/xa3/xbb DEVANAGARI HEADSTROKE
+ <UA900>     /xea/xa4/x80 KAYAH LI DIGIT ZERO
+ <UA901>     /xea/xa4/x81 KAYAH LI DIGIT ONE
+ <UA902>     /xea/xa4/x82 KAYAH LI DIGIT TWO
+@@ -13481,6 +14273,126 @@ CHARMAP
+ <UA952>     /xea/xa5/x92 REJANG CONSONANT SIGN H
+ <UA953>     /xea/xa5/x93 REJANG VIRAMA
+ <UA95F>     /xea/xa5/x9f REJANG SECTION MARK
++<UA960>     /xea/xa5/xa0 HANGUL CHOSEONG TIKEUT-MIEUM
++<UA961>     /xea/xa5/xa1 HANGUL CHOSEONG TIKEUT-PIEUP
++<UA962>     /xea/xa5/xa2 HANGUL CHOSEONG TIKEUT-SIOS
++<UA963>     /xea/xa5/xa3 HANGUL CHOSEONG TIKEUT-CIEUC
++<UA964>     /xea/xa5/xa4 HANGUL CHOSEONG RIEUL-KIYEOK
++<UA965>     /xea/xa5/xa5 HANGUL CHOSEONG RIEUL-SSANGKIYEOK
++<UA966>     /xea/xa5/xa6 HANGUL CHOSEONG RIEUL-TIKEUT
++<UA967>     /xea/xa5/xa7 HANGUL CHOSEONG RIEUL-SSANGTIKEUT
++<UA968>     /xea/xa5/xa8 HANGUL CHOSEONG RIEUL-MIEUM
++<UA969>     /xea/xa5/xa9 HANGUL CHOSEONG RIEUL-PIEUP
++<UA96A>     /xea/xa5/xaa HANGUL CHOSEONG RIEUL-SSANGPIEUP
++<UA96B>     /xea/xa5/xab HANGUL CHOSEONG RIEUL-KAPYEOUNPIEUP
++<UA96C>     /xea/xa5/xac HANGUL CHOSEONG RIEUL-SIOS
++<UA96D>     /xea/xa5/xad HANGUL CHOSEONG RIEUL-CIEUC
++<UA96E>     /xea/xa5/xae HANGUL CHOSEONG RIEUL-KHIEUKH
++<UA96F>     /xea/xa5/xaf HANGUL CHOSEONG MIEUM-KIYEOK
++<UA970>     /xea/xa5/xb0 HANGUL CHOSEONG MIEUM-TIKEUT
++<UA971>     /xea/xa5/xb1 HANGUL CHOSEONG MIEUM-SIOS
++<UA972>     /xea/xa5/xb2 HANGUL CHOSEONG PIEUP-SIOS-THIEUTH
++<UA973>     /xea/xa5/xb3 HANGUL CHOSEONG PIEUP-KHIEUKH
++<UA974>     /xea/xa5/xb4 HANGUL CHOSEONG PIEUP-HIEUH
++<UA975>     /xea/xa5/xb5 HANGUL CHOSEONG SSANGSIOS-PIEUP
++<UA976>     /xea/xa5/xb6 HANGUL CHOSEONG IEUNG-RIEUL
++<UA977>     /xea/xa5/xb7 HANGUL CHOSEONG IEUNG-HIEUH
++<UA978>     /xea/xa5/xb8 HANGUL CHOSEONG SSANGCIEUC-HIEUH
++<UA979>     /xea/xa5/xb9 HANGUL CHOSEONG SSANGTHIEUTH
++<UA97A>     /xea/xa5/xba HANGUL CHOSEONG PHIEUPH-HIEUH
++<UA97B>     /xea/xa5/xbb HANGUL CHOSEONG HIEUH-SIOS
++<UA97C>     /xea/xa5/xbc HANGUL CHOSEONG SSANGYEORINHIEUH
++<UA980>     /xea/xa6/x80 JAVANESE SIGN PANYANGGA
++<UA981>     /xea/xa6/x81 JAVANESE SIGN CECAK
++<UA982>     /xea/xa6/x82 JAVANESE SIGN LAYAR
++<UA983>     /xea/xa6/x83 JAVANESE SIGN WIGNYAN
++<UA984>     /xea/xa6/x84 JAVANESE LETTER A
++<UA985>     /xea/xa6/x85 JAVANESE LETTER I KAWI
++<UA986>     /xea/xa6/x86 JAVANESE LETTER I
++<UA987>     /xea/xa6/x87 JAVANESE LETTER II
++<UA988>     /xea/xa6/x88 JAVANESE LETTER U
++<UA989>     /xea/xa6/x89 JAVANESE LETTER PA CEREK
++<UA98A>     /xea/xa6/x8a JAVANESE LETTER NGA LELET
++<UA98B>     /xea/xa6/x8b JAVANESE LETTER NGA LELET RASWADI
++<UA98C>     /xea/xa6/x8c JAVANESE LETTER E
++<UA98D>     /xea/xa6/x8d JAVANESE LETTER AI
++<UA98E>     /xea/xa6/x8e JAVANESE LETTER O
++<UA98F>     /xea/xa6/x8f JAVANESE LETTER KA
++<UA990>     /xea/xa6/x90 JAVANESE LETTER KA SASAK
++<UA991>     /xea/xa6/x91 JAVANESE LETTER KA MURDA
++<UA992>     /xea/xa6/x92 JAVANESE LETTER GA
++<UA993>     /xea/xa6/x93 JAVANESE LETTER GA MURDA
++<UA994>     /xea/xa6/x94 JAVANESE LETTER NGA
++<UA995>     /xea/xa6/x95 JAVANESE LETTER CA
++<UA996>     /xea/xa6/x96 JAVANESE LETTER CA MURDA
++<UA997>     /xea/xa6/x97 JAVANESE LETTER JA
++<UA998>     /xea/xa6/x98 JAVANESE LETTER NYA MURDA
++<UA999>     /xea/xa6/x99 JAVANESE LETTER JA MAHAPRANA
++<UA99A>     /xea/xa6/x9a JAVANESE LETTER NYA
++<UA99B>     /xea/xa6/x9b JAVANESE LETTER TTA
++<UA99C>     /xea/xa6/x9c JAVANESE LETTER TTA MAHAPRANA
++<UA99D>     /xea/xa6/x9d JAVANESE LETTER DDA
++<UA99E>     /xea/xa6/x9e JAVANESE LETTER DDA MAHAPRANA
++<UA99F>     /xea/xa6/x9f JAVANESE LETTER NA MURDA
++<UA9A0>     /xea/xa6/xa0 JAVANESE LETTER TA
++<UA9A1>     /xea/xa6/xa1 JAVANESE LETTER TA MURDA
++<UA9A2>     /xea/xa6/xa2 JAVANESE LETTER DA
++<UA9A3>     /xea/xa6/xa3 JAVANESE LETTER DA MAHAPRANA
++<UA9A4>     /xea/xa6/xa4 JAVANESE LETTER NA
++<UA9A5>     /xea/xa6/xa5 JAVANESE LETTER PA
++<UA9A6>     /xea/xa6/xa6 JAVANESE LETTER PA MURDA
++<UA9A7>     /xea/xa6/xa7 JAVANESE LETTER BA
++<UA9A8>     /xea/xa6/xa8 JAVANESE LETTER BA MURDA
++<UA9A9>     /xea/xa6/xa9 JAVANESE LETTER MA
++<UA9AA>     /xea/xa6/xaa JAVANESE LETTER YA
++<UA9AB>     /xea/xa6/xab JAVANESE LETTER RA
++<UA9AC>     /xea/xa6/xac JAVANESE LETTER RA AGUNG
++<UA9AD>     /xea/xa6/xad JAVANESE LETTER LA
++<UA9AE>     /xea/xa6/xae JAVANESE LETTER WA
++<UA9AF>     /xea/xa6/xaf JAVANESE LETTER SA MURDA
++<UA9B0>     /xea/xa6/xb0 JAVANESE LETTER SA MAHAPRANA
++<UA9B1>     /xea/xa6/xb1 JAVANESE LETTER SA
++<UA9B2>     /xea/xa6/xb2 JAVANESE LETTER HA
++<UA9B3>     /xea/xa6/xb3 JAVANESE SIGN CECAK TELU
++<UA9B4>     /xea/xa6/xb4 JAVANESE VOWEL SIGN TARUNG
++<UA9B5>     /xea/xa6/xb5 JAVANESE VOWEL SIGN TOLONG
++<UA9B6>     /xea/xa6/xb6 JAVANESE VOWEL SIGN WULU
++<UA9B7>     /xea/xa6/xb7 JAVANESE VOWEL SIGN WULU MELIK
++<UA9B8>     /xea/xa6/xb8 JAVANESE VOWEL SIGN SUKU
++<UA9B9>     /xea/xa6/xb9 JAVANESE VOWEL SIGN SUKU MENDUT
++<UA9BA>     /xea/xa6/xba JAVANESE VOWEL SIGN TALING
++<UA9BB>     /xea/xa6/xbb JAVANESE VOWEL SIGN DIRGA MURE
++<UA9BC>     /xea/xa6/xbc JAVANESE VOWEL SIGN PEPET
++<UA9BD>     /xea/xa6/xbd JAVANESE CONSONANT SIGN KERET
++<UA9BE>     /xea/xa6/xbe JAVANESE CONSONANT SIGN PENGKAL
++<UA9BF>     /xea/xa6/xbf JAVANESE CONSONANT SIGN CAKRA
++<UA9C0>     /xea/xa7/x80 JAVANESE PANGKON
++<UA9C1>     /xea/xa7/x81 JAVANESE LEFT RERENGGAN
++<UA9C2>     /xea/xa7/x82 JAVANESE RIGHT RERENGGAN
++<UA9C3>     /xea/xa7/x83 JAVANESE PADA ANDAP
++<UA9C4>     /xea/xa7/x84 JAVANESE PADA MADYA
++<UA9C5>     /xea/xa7/x85 JAVANESE PADA LUHUR
++<UA9C6>     /xea/xa7/x86 JAVANESE PADA WINDU
++<UA9C7>     /xea/xa7/x87 JAVANESE PADA PANGKAT
++<UA9C8>     /xea/xa7/x88 JAVANESE PADA LINGSA
++<UA9C9>     /xea/xa7/x89 JAVANESE PADA LUNGSI
++<UA9CA>     /xea/xa7/x8a JAVANESE PADA ADEG
++<UA9CB>     /xea/xa7/x8b JAVANESE PADA ADEG ADEG
++<UA9CC>     /xea/xa7/x8c JAVANESE PADA PISELEH
++<UA9CD>     /xea/xa7/x8d JAVANESE TURNED PADA PISELEH
++<UA9CF>     /xea/xa7/x8f JAVANESE PANGRANGKEP
++<UA9D0>     /xea/xa7/x90 JAVANESE DIGIT ZERO
++<UA9D1>     /xea/xa7/x91 JAVANESE DIGIT ONE
++<UA9D2>     /xea/xa7/x92 JAVANESE DIGIT TWO
++<UA9D3>     /xea/xa7/x93 JAVANESE DIGIT THREE
++<UA9D4>     /xea/xa7/x94 JAVANESE DIGIT FOUR
++<UA9D5>     /xea/xa7/x95 JAVANESE DIGIT FIVE
++<UA9D6>     /xea/xa7/x96 JAVANESE DIGIT SIX
++<UA9D7>     /xea/xa7/x97 JAVANESE DIGIT SEVEN
++<UA9D8>     /xea/xa7/x98 JAVANESE DIGIT EIGHT
++<UA9D9>     /xea/xa7/x99 JAVANESE DIGIT NINE
++<UA9DE>     /xea/xa7/x9e JAVANESE PADA TIRTA TUMETES
++<UA9DF>     /xea/xa7/x9f JAVANESE PADA ISEN-ISEN
+ <UAA00>     /xea/xa8/x80 CHAM LETTER A
+ <UAA01>     /xea/xa8/x81 CHAM LETTER I
+ <UAA02>     /xea/xa8/x82 CHAM LETTER U
+@@ -13564,6 +14476,194 @@ CHARMAP
+ <UAA5D>     /xea/xa9/x9d CHAM PUNCTUATION DANDA
+ <UAA5E>     /xea/xa9/x9e CHAM PUNCTUATION DOUBLE DANDA
+ <UAA5F>     /xea/xa9/x9f CHAM PUNCTUATION TRIPLE DANDA
++<UAA60>     /xea/xa9/xa0 MYANMAR LETTER KHAMTI GA
++<UAA61>     /xea/xa9/xa1 MYANMAR LETTER KHAMTI CA
++<UAA62>     /xea/xa9/xa2 MYANMAR LETTER KHAMTI CHA
++<UAA63>     /xea/xa9/xa3 MYANMAR LETTER KHAMTI JA
++<UAA64>     /xea/xa9/xa4 MYANMAR LETTER KHAMTI JHA
++<UAA65>     /xea/xa9/xa5 MYANMAR LETTER KHAMTI NYA
++<UAA66>     /xea/xa9/xa6 MYANMAR LETTER KHAMTI TTA
++<UAA67>     /xea/xa9/xa7 MYANMAR LETTER KHAMTI TTHA
++<UAA68>     /xea/xa9/xa8 MYANMAR LETTER KHAMTI DDA
++<UAA69>     /xea/xa9/xa9 MYANMAR LETTER KHAMTI DDHA
++<UAA6A>     /xea/xa9/xaa MYANMAR LETTER KHAMTI DHA
++<UAA6B>     /xea/xa9/xab MYANMAR LETTER KHAMTI NA
++<UAA6C>     /xea/xa9/xac MYANMAR LETTER KHAMTI SA
++<UAA6D>     /xea/xa9/xad MYANMAR LETTER KHAMTI HA
++<UAA6E>     /xea/xa9/xae MYANMAR LETTER KHAMTI HHA
++<UAA6F>     /xea/xa9/xaf MYANMAR LETTER KHAMTI FA
++<UAA70>     /xea/xa9/xb0 MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION
++<UAA71>     /xea/xa9/xb1 MYANMAR LETTER KHAMTI XA
++<UAA72>     /xea/xa9/xb2 MYANMAR LETTER KHAMTI ZA
++<UAA73>     /xea/xa9/xb3 MYANMAR LETTER KHAMTI RA
++<UAA74>     /xea/xa9/xb4 MYANMAR LOGOGRAM KHAMTI OAY
++<UAA75>     /xea/xa9/xb5 MYANMAR LOGOGRAM KHAMTI QN
++<UAA76>     /xea/xa9/xb6 MYANMAR LOGOGRAM KHAMTI HM
++<UAA77>     /xea/xa9/xb7 MYANMAR SYMBOL AITON EXCLAMATION
++<UAA78>     /xea/xa9/xb8 MYANMAR SYMBOL AITON ONE
++<UAA79>     /xea/xa9/xb9 MYANMAR SYMBOL AITON TWO
++<UAA7A>     /xea/xa9/xba MYANMAR LETTER AITON RA
++<UAA7B>     /xea/xa9/xbb MYANMAR SIGN PAO KAREN TONE
++<UAA80>     /xea/xaa/x80 TAI VIET LETTER LOW KO
++<UAA81>     /xea/xaa/x81 TAI VIET LETTER HIGH KO
++<UAA82>     /xea/xaa/x82 TAI VIET LETTER LOW KHO
++<UAA83>     /xea/xaa/x83 TAI VIET LETTER HIGH KHO
++<UAA84>     /xea/xaa/x84 TAI VIET LETTER LOW KHHO
++<UAA85>     /xea/xaa/x85 TAI VIET LETTER HIGH KHHO
++<UAA86>     /xea/xaa/x86 TAI VIET LETTER LOW GO
++<UAA87>     /xea/xaa/x87 TAI VIET LETTER HIGH GO
++<UAA88>     /xea/xaa/x88 TAI VIET LETTER LOW NGO
++<UAA89>     /xea/xaa/x89 TAI VIET LETTER HIGH NGO
++<UAA8A>     /xea/xaa/x8a TAI VIET LETTER LOW CO
++<UAA8B>     /xea/xaa/x8b TAI VIET LETTER HIGH CO
++<UAA8C>     /xea/xaa/x8c TAI VIET LETTER LOW CHO
++<UAA8D>     /xea/xaa/x8d TAI VIET LETTER HIGH CHO
++<UAA8E>     /xea/xaa/x8e TAI VIET LETTER LOW SO
++<UAA8F>     /xea/xaa/x8f TAI VIET LETTER HIGH SO
++<UAA90>     /xea/xaa/x90 TAI VIET LETTER LOW NYO
++<UAA91>     /xea/xaa/x91 TAI VIET LETTER HIGH NYO
++<UAA92>     /xea/xaa/x92 TAI VIET LETTER LOW DO
++<UAA93>     /xea/xaa/x93 TAI VIET LETTER HIGH DO
++<UAA94>     /xea/xaa/x94 TAI VIET LETTER LOW TO
++<UAA95>     /xea/xaa/x95 TAI VIET LETTER HIGH TO
++<UAA96>     /xea/xaa/x96 TAI VIET LETTER LOW THO
++<UAA97>     /xea/xaa/x97 TAI VIET LETTER HIGH THO
++<UAA98>     /xea/xaa/x98 TAI VIET LETTER LOW NO
++<UAA99>     /xea/xaa/x99 TAI VIET LETTER HIGH NO
++<UAA9A>     /xea/xaa/x9a TAI VIET LETTER LOW BO
++<UAA9B>     /xea/xaa/x9b TAI VIET LETTER HIGH BO
++<UAA9C>     /xea/xaa/x9c TAI VIET LETTER LOW PO
++<UAA9D>     /xea/xaa/x9d TAI VIET LETTER HIGH PO
++<UAA9E>     /xea/xaa/x9e TAI VIET LETTER LOW PHO
++<UAA9F>     /xea/xaa/x9f TAI VIET LETTER HIGH PHO
++<UAAA0>     /xea/xaa/xa0 TAI VIET LETTER LOW FO
++<UAAA1>     /xea/xaa/xa1 TAI VIET LETTER HIGH FO
++<UAAA2>     /xea/xaa/xa2 TAI VIET LETTER LOW MO
++<UAAA3>     /xea/xaa/xa3 TAI VIET LETTER HIGH MO
++<UAAA4>     /xea/xaa/xa4 TAI VIET LETTER LOW YO
++<UAAA5>     /xea/xaa/xa5 TAI VIET LETTER HIGH YO
++<UAAA6>     /xea/xaa/xa6 TAI VIET LETTER LOW RO
++<UAAA7>     /xea/xaa/xa7 TAI VIET LETTER HIGH RO
++<UAAA8>     /xea/xaa/xa8 TAI VIET LETTER LOW LO
++<UAAA9>     /xea/xaa/xa9 TAI VIET LETTER HIGH LO
++<UAAAA>     /xea/xaa/xaa TAI VIET LETTER LOW VO
++<UAAAB>     /xea/xaa/xab TAI VIET LETTER HIGH VO
++<UAAAC>     /xea/xaa/xac TAI VIET LETTER LOW HO
++<UAAAD>     /xea/xaa/xad TAI VIET LETTER HIGH HO
++<UAAAE>     /xea/xaa/xae TAI VIET LETTER LOW O
++<UAAAF>     /xea/xaa/xaf TAI VIET LETTER HIGH O
++<UAAB0>     /xea/xaa/xb0 TAI VIET MAI KANG
++<UAAB1>     /xea/xaa/xb1 TAI VIET VOWEL AA
++<UAAB2>     /xea/xaa/xb2 TAI VIET VOWEL I
++<UAAB3>     /xea/xaa/xb3 TAI VIET VOWEL UE
++<UAAB4>     /xea/xaa/xb4 TAI VIET VOWEL U
++<UAAB5>     /xea/xaa/xb5 TAI VIET VOWEL E
++<UAAB6>     /xea/xaa/xb6 TAI VIET VOWEL O
++<UAAB7>     /xea/xaa/xb7 TAI VIET MAI KHIT
++<UAAB8>     /xea/xaa/xb8 TAI VIET VOWEL IA
++<UAAB9>     /xea/xaa/xb9 TAI VIET VOWEL UEA
++<UAABA>     /xea/xaa/xba TAI VIET VOWEL UA
++<UAABB>     /xea/xaa/xbb TAI VIET VOWEL AUE
++<UAABC>     /xea/xaa/xbc TAI VIET VOWEL AY
++<UAABD>     /xea/xaa/xbd TAI VIET VOWEL AN
++<UAABE>     /xea/xaa/xbe TAI VIET VOWEL AM
++<UAABF>     /xea/xaa/xbf TAI VIET TONE MAI EK
++<UAAC0>     /xea/xab/x80 TAI VIET TONE MAI NUENG
++<UAAC1>     /xea/xab/x81 TAI VIET TONE MAI THO
++<UAAC2>     /xea/xab/x82 TAI VIET TONE MAI SONG
++<UAADB>     /xea/xab/x9b TAI VIET SYMBOL KON
++<UAADC>     /xea/xab/x9c TAI VIET SYMBOL NUENG
++<UAADD>     /xea/xab/x9d TAI VIET SYMBOL SAM
++<UAADE>     /xea/xab/x9e TAI VIET SYMBOL HO HOI
++<UAADF>     /xea/xab/x9f TAI VIET SYMBOL KOI KOI
++<UAB01>     /xea/xac/x81 ETHIOPIC SYLLABLE TTHU
++<UAB02>     /xea/xac/x82 ETHIOPIC SYLLABLE TTHI
++<UAB03>     /xea/xac/x83 ETHIOPIC SYLLABLE TTHAA
++<UAB04>     /xea/xac/x84 ETHIOPIC SYLLABLE TTHEE
++<UAB05>     /xea/xac/x85 ETHIOPIC SYLLABLE TTHE
++<UAB06>     /xea/xac/x86 ETHIOPIC SYLLABLE TTHO
++<UAB09>     /xea/xac/x89 ETHIOPIC SYLLABLE DDHU
++<UAB0A>     /xea/xac/x8a ETHIOPIC SYLLABLE DDHI
++<UAB0B>     /xea/xac/x8b ETHIOPIC SYLLABLE DDHAA
++<UAB0C>     /xea/xac/x8c ETHIOPIC SYLLABLE DDHEE
++<UAB0D>     /xea/xac/x8d ETHIOPIC SYLLABLE DDHE
++<UAB0E>     /xea/xac/x8e ETHIOPIC SYLLABLE DDHO
++<UAB11>     /xea/xac/x91 ETHIOPIC SYLLABLE DZU
++<UAB12>     /xea/xac/x92 ETHIOPIC SYLLABLE DZI
++<UAB13>     /xea/xac/x93 ETHIOPIC SYLLABLE DZAA
++<UAB14>     /xea/xac/x94 ETHIOPIC SYLLABLE DZEE
++<UAB15>     /xea/xac/x95 ETHIOPIC SYLLABLE DZE
++<UAB16>     /xea/xac/x96 ETHIOPIC SYLLABLE DZO
++<UAB20>     /xea/xac/xa0 ETHIOPIC SYLLABLE CCHHA
++<UAB21>     /xea/xac/xa1 ETHIOPIC SYLLABLE CCHHU
++<UAB22>     /xea/xac/xa2 ETHIOPIC SYLLABLE CCHHI
++<UAB23>     /xea/xac/xa3 ETHIOPIC SYLLABLE CCHHAA
++<UAB24>     /xea/xac/xa4 ETHIOPIC SYLLABLE CCHHEE
++<UAB25>     /xea/xac/xa5 ETHIOPIC SYLLABLE CCHHE
++<UAB26>     /xea/xac/xa6 ETHIOPIC SYLLABLE CCHHO
++<UAB28>     /xea/xac/xa8 ETHIOPIC SYLLABLE BBA
++<UAB29>     /xea/xac/xa9 ETHIOPIC SYLLABLE BBU
++<UAB2A>     /xea/xac/xaa ETHIOPIC SYLLABLE BBI
++<UAB2B>     /xea/xac/xab ETHIOPIC SYLLABLE BBAA
++<UAB2C>     /xea/xac/xac ETHIOPIC SYLLABLE BBEE
++<UAB2D>     /xea/xac/xad ETHIOPIC SYLLABLE BBE
++<UAB2E>     /xea/xac/xae ETHIOPIC SYLLABLE BBO
++<UABC0>     /xea/xaf/x80 MEETEI MAYEK LETTER KOK
++<UABC1>     /xea/xaf/x81 MEETEI MAYEK LETTER SAM
++<UABC2>     /xea/xaf/x82 MEETEI MAYEK LETTER LAI
++<UABC3>     /xea/xaf/x83 MEETEI MAYEK LETTER MIT
++<UABC4>     /xea/xaf/x84 MEETEI MAYEK LETTER PA
++<UABC5>     /xea/xaf/x85 MEETEI MAYEK LETTER NA
++<UABC6>     /xea/xaf/x86 MEETEI MAYEK LETTER CHIL
++<UABC7>     /xea/xaf/x87 MEETEI MAYEK LETTER TIL
++<UABC8>     /xea/xaf/x88 MEETEI MAYEK LETTER KHOU
++<UABC9>     /xea/xaf/x89 MEETEI MAYEK LETTER NGOU
++<UABCA>     /xea/xaf/x8a MEETEI MAYEK LETTER THOU
++<UABCB>     /xea/xaf/x8b MEETEI MAYEK LETTER WAI
++<UABCC>     /xea/xaf/x8c MEETEI MAYEK LETTER YANG
++<UABCD>     /xea/xaf/x8d MEETEI MAYEK LETTER HUK
++<UABCE>     /xea/xaf/x8e MEETEI MAYEK LETTER UN
++<UABCF>     /xea/xaf/x8f MEETEI MAYEK LETTER I
++<UABD0>     /xea/xaf/x90 MEETEI MAYEK LETTER PHAM
++<UABD1>     /xea/xaf/x91 MEETEI MAYEK LETTER ATIYA
++<UABD2>     /xea/xaf/x92 MEETEI MAYEK LETTER GOK
++<UABD3>     /xea/xaf/x93 MEETEI MAYEK LETTER JHAM
++<UABD4>     /xea/xaf/x94 MEETEI MAYEK LETTER RAI
++<UABD5>     /xea/xaf/x95 MEETEI MAYEK LETTER BA
++<UABD6>     /xea/xaf/x96 MEETEI MAYEK LETTER JIL
++<UABD7>     /xea/xaf/x97 MEETEI MAYEK LETTER DIL
++<UABD8>     /xea/xaf/x98 MEETEI MAYEK LETTER GHOU
++<UABD9>     /xea/xaf/x99 MEETEI MAYEK LETTER DHOU
++<UABDA>     /xea/xaf/x9a MEETEI MAYEK LETTER BHAM
++<UABDB>     /xea/xaf/x9b MEETEI MAYEK LETTER KOK LONSUM
++<UABDC>     /xea/xaf/x9c MEETEI MAYEK LETTER LAI LONSUM
++<UABDD>     /xea/xaf/x9d MEETEI MAYEK LETTER MIT LONSUM
++<UABDE>     /xea/xaf/x9e MEETEI MAYEK LETTER PA LONSUM
++<UABDF>     /xea/xaf/x9f MEETEI MAYEK LETTER NA LONSUM
++<UABE0>     /xea/xaf/xa0 MEETEI MAYEK LETTER TIL LONSUM
++<UABE1>     /xea/xaf/xa1 MEETEI MAYEK LETTER NGOU LONSUM
++<UABE2>     /xea/xaf/xa2 MEETEI MAYEK LETTER I LONSUM
++<UABE3>     /xea/xaf/xa3 MEETEI MAYEK VOWEL SIGN ONAP
++<UABE4>     /xea/xaf/xa4 MEETEI MAYEK VOWEL SIGN INAP
++<UABE5>     /xea/xaf/xa5 MEETEI MAYEK VOWEL SIGN ANAP
++<UABE6>     /xea/xaf/xa6 MEETEI MAYEK VOWEL SIGN YENAP
++<UABE7>     /xea/xaf/xa7 MEETEI MAYEK VOWEL SIGN SOUNAP
++<UABE8>     /xea/xaf/xa8 MEETEI MAYEK VOWEL SIGN UNAP
++<UABE9>     /xea/xaf/xa9 MEETEI MAYEK VOWEL SIGN CHEINAP
++<UABEA>     /xea/xaf/xaa MEETEI MAYEK VOWEL SIGN NUNG
++<UABEB>     /xea/xaf/xab MEETEI MAYEK CHEIKHEI
++<UABEC>     /xea/xaf/xac MEETEI MAYEK LUM IYEK
++<UABED>     /xea/xaf/xad MEETEI MAYEK APUN IYEK
++<UABF0>     /xea/xaf/xb0 MEETEI MAYEK DIGIT ZERO
++<UABF1>     /xea/xaf/xb1 MEETEI MAYEK DIGIT ONE
++<UABF2>     /xea/xaf/xb2 MEETEI MAYEK DIGIT TWO
++<UABF3>     /xea/xaf/xb3 MEETEI MAYEK DIGIT THREE
++<UABF4>     /xea/xaf/xb4 MEETEI MAYEK DIGIT FOUR
++<UABF5>     /xea/xaf/xb5 MEETEI MAYEK DIGIT FIVE
++<UABF6>     /xea/xaf/xb6 MEETEI MAYEK DIGIT SIX
++<UABF7>     /xea/xaf/xb7 MEETEI MAYEK DIGIT SEVEN
++<UABF8>     /xea/xaf/xb8 MEETEI MAYEK DIGIT EIGHT
++<UABF9>     /xea/xaf/xb9 MEETEI MAYEK DIGIT NINE
+ <UAC00>     /xea/xb0/x80 HANGUL SYLLABLE GA
+ <UAC01>     /xea/xb0/x81 HANGUL SYLLABLE GAG
+ <UAC02>     /xea/xb0/x82 HANGUL SYLLABLE GAGG
+@@ -24736,6 +25836,78 @@ CHARMAP
+ <UD7A1>     /xed/x9e/xa1 HANGUL SYLLABLE HIT
+ <UD7A2>     /xed/x9e/xa2 HANGUL SYLLABLE HIP
+ <UD7A3>     /xed/x9e/xa3 HANGUL SYLLABLE HIH
++<UD7B0>     /xed/x9e/xb0 HANGUL JUNGSEONG O-YEO
++<UD7B1>     /xed/x9e/xb1 HANGUL JUNGSEONG O-O-I
++<UD7B2>     /xed/x9e/xb2 HANGUL JUNGSEONG YO-A
++<UD7B3>     /xed/x9e/xb3 HANGUL JUNGSEONG YO-AE
++<UD7B4>     /xed/x9e/xb4 HANGUL JUNGSEONG YO-EO
++<UD7B5>     /xed/x9e/xb5 HANGUL JUNGSEONG U-YEO
++<UD7B6>     /xed/x9e/xb6 HANGUL JUNGSEONG U-I-I
++<UD7B7>     /xed/x9e/xb7 HANGUL JUNGSEONG YU-AE
++<UD7B8>     /xed/x9e/xb8 HANGUL JUNGSEONG YU-O
++<UD7B9>     /xed/x9e/xb9 HANGUL JUNGSEONG EU-A
++<UD7BA>     /xed/x9e/xba HANGUL JUNGSEONG EU-EO
++<UD7BB>     /xed/x9e/xbb HANGUL JUNGSEONG EU-E
++<UD7BC>     /xed/x9e/xbc HANGUL JUNGSEONG EU-O
++<UD7BD>     /xed/x9e/xbd HANGUL JUNGSEONG I-YA-O
++<UD7BE>     /xed/x9e/xbe HANGUL JUNGSEONG I-YAE
++<UD7BF>     /xed/x9e/xbf HANGUL JUNGSEONG I-YEO
++<UD7C0>     /xed/x9f/x80 HANGUL JUNGSEONG I-YE
++<UD7C1>     /xed/x9f/x81 HANGUL JUNGSEONG I-O-I
++<UD7C2>     /xed/x9f/x82 HANGUL JUNGSEONG I-YO
++<UD7C3>     /xed/x9f/x83 HANGUL JUNGSEONG I-YU
++<UD7C4>     /xed/x9f/x84 HANGUL JUNGSEONG I-I
++<UD7C5>     /xed/x9f/x85 HANGUL JUNGSEONG ARAEA-A
++<UD7C6>     /xed/x9f/x86 HANGUL JUNGSEONG ARAEA-E
++<UD7CB>     /xed/x9f/x8b HANGUL JONGSEONG NIEUN-RIEUL
++<UD7CC>     /xed/x9f/x8c HANGUL JONGSEONG NIEUN-CHIEUCH
++<UD7CD>     /xed/x9f/x8d HANGUL JONGSEONG SSANGTIKEUT
++<UD7CE>     /xed/x9f/x8e HANGUL JONGSEONG SSANGTIKEUT-PIEUP
++<UD7CF>     /xed/x9f/x8f HANGUL JONGSEONG TIKEUT-PIEUP
++<UD7D0>     /xed/x9f/x90 HANGUL JONGSEONG TIKEUT-SIOS
++<UD7D1>     /xed/x9f/x91 HANGUL JONGSEONG TIKEUT-SIOS-KIYEOK
++<UD7D2>     /xed/x9f/x92 HANGUL JONGSEONG TIKEUT-CIEUC
++<UD7D3>     /xed/x9f/x93 HANGUL JONGSEONG TIKEUT-CHIEUCH
++<UD7D4>     /xed/x9f/x94 HANGUL JONGSEONG TIKEUT-THIEUTH
++<UD7D5>     /xed/x9f/x95 HANGUL JONGSEONG RIEUL-SSANGKIYEOK
++<UD7D6>     /xed/x9f/x96 HANGUL JONGSEONG RIEUL-KIYEOK-HIEUH
++<UD7D7>     /xed/x9f/x97 HANGUL JONGSEONG SSANGRIEUL-KHIEUKH
++<UD7D8>     /xed/x9f/x98 HANGUL JONGSEONG RIEUL-MIEUM-HIEUH
++<UD7D9>     /xed/x9f/x99 HANGUL JONGSEONG RIEUL-PIEUP-TIKEUT
++<UD7DA>     /xed/x9f/x9a HANGUL JONGSEONG RIEUL-PIEUP-PHIEUPH
++<UD7DB>     /xed/x9f/x9b HANGUL JONGSEONG RIEUL-YESIEUNG
++<UD7DC>     /xed/x9f/x9c HANGUL JONGSEONG RIEUL-YEORINHIEUH-HIEUH
++<UD7DD>     /xed/x9f/x9d HANGUL JONGSEONG KAPYEOUNRIEUL
++<UD7DE>     /xed/x9f/x9e HANGUL JONGSEONG MIEUM-NIEUN
++<UD7DF>     /xed/x9f/x9f HANGUL JONGSEONG MIEUM-SSANGNIEUN
++<UD7E0>     /xed/x9f/xa0 HANGUL JONGSEONG SSANGMIEUM
++<UD7E1>     /xed/x9f/xa1 HANGUL JONGSEONG MIEUM-PIEUP-SIOS
++<UD7E2>     /xed/x9f/xa2 HANGUL JONGSEONG MIEUM-CIEUC
++<UD7E3>     /xed/x9f/xa3 HANGUL JONGSEONG PIEUP-TIKEUT
++<UD7E4>     /xed/x9f/xa4 HANGUL JONGSEONG PIEUP-RIEUL-PHIEUPH
++<UD7E5>     /xed/x9f/xa5 HANGUL JONGSEONG PIEUP-MIEUM
++<UD7E6>     /xed/x9f/xa6 HANGUL JONGSEONG SSANGPIEUP
++<UD7E7>     /xed/x9f/xa7 HANGUL JONGSEONG PIEUP-SIOS-TIKEUT
++<UD7E8>     /xed/x9f/xa8 HANGUL JONGSEONG PIEUP-CIEUC
++<UD7E9>     /xed/x9f/xa9 HANGUL JONGSEONG PIEUP-CHIEUCH
++<UD7EA>     /xed/x9f/xaa HANGUL JONGSEONG SIOS-MIEUM
++<UD7EB>     /xed/x9f/xab HANGUL JONGSEONG SIOS-KAPYEOUNPIEUP
++<UD7EC>     /xed/x9f/xac HANGUL JONGSEONG SSANGSIOS-KIYEOK
++<UD7ED>     /xed/x9f/xad HANGUL JONGSEONG SSANGSIOS-TIKEUT
++<UD7EE>     /xed/x9f/xae HANGUL JONGSEONG SIOS-PANSIOS
++<UD7EF>     /xed/x9f/xaf HANGUL JONGSEONG SIOS-CIEUC
++<UD7F0>     /xed/x9f/xb0 HANGUL JONGSEONG SIOS-CHIEUCH
++<UD7F1>     /xed/x9f/xb1 HANGUL JONGSEONG SIOS-THIEUTH
++<UD7F2>     /xed/x9f/xb2 HANGUL JONGSEONG SIOS-HIEUH
++<UD7F3>     /xed/x9f/xb3 HANGUL JONGSEONG PANSIOS-PIEUP
++<UD7F4>     /xed/x9f/xb4 HANGUL JONGSEONG PANSIOS-KAPYEOUNPIEUP
++<UD7F5>     /xed/x9f/xb5 HANGUL JONGSEONG YESIEUNG-MIEUM
++<UD7F6>     /xed/x9f/xb6 HANGUL JONGSEONG YESIEUNG-HIEUH
++<UD7F7>     /xed/x9f/xb7 HANGUL JONGSEONG CIEUC-PIEUP
++<UD7F8>     /xed/x9f/xb8 HANGUL JONGSEONG CIEUC-SSANGPIEUP
++<UD7F9>     /xed/x9f/xb9 HANGUL JONGSEONG SSANGCIEUC
++<UD7FA>     /xed/x9f/xba HANGUL JONGSEONG PHIEUPH-SIOS
++<UD7FB>     /xed/x9f/xbb HANGUL JONGSEONG PHIEUPH-THIEUTH
+ % <UD800>     /xed/xa0/x80 <Non Private Use High Surrogate, First>
+ % <UDB7F>     /xed/xad/xbf <Non Private Use High Surrogate, Last>
+ % <UDB80>     /xed/xae/x80 <Private Use High Surrogate, First>
+@@ -25203,6 +26375,9 @@ CHARMAP
+ <UFA68>     /xef/xa9/xa8 CJK COMPATIBILITY IDEOGRAPH-FA68
+ <UFA69>     /xef/xa9/xa9 CJK COMPATIBILITY IDEOGRAPH-FA69
+ <UFA6A>     /xef/xa9/xaa CJK COMPATIBILITY IDEOGRAPH-FA6A
++<UFA6B>     /xef/xa9/xab CJK COMPATIBILITY IDEOGRAPH-FA6B
++<UFA6C>     /xef/xa9/xac CJK COMPATIBILITY IDEOGRAPH-FA6C
++<UFA6D>     /xef/xa9/xad CJK COMPATIBILITY IDEOGRAPH-FA6D
+ <UFA70>     /xef/xa9/xb0 CJK COMPATIBILITY IDEOGRAPH-FA70
+ <UFA71>     /xef/xa9/xb1 CJK COMPATIBILITY IDEOGRAPH-FA71
+ <UFA72>     /xef/xa9/xb2 CJK COMPATIBILITY IDEOGRAPH-FA72
+@@ -25465,6 +26640,22 @@ CHARMAP
+ <UFBAF>     /xef/xae/xaf ARABIC LETTER YEH BARREE FINAL FORM
+ <UFBB0>     /xef/xae/xb0 ARABIC LETTER YEH BARREE WITH HAMZA ABOVE ISOLATED FORM
+ <UFBB1>     /xef/xae/xb1 ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM
++<UFBB2>     /xef/xae/xb2 ARABIC SYMBOL DOT ABOVE
++<UFBB3>     /xef/xae/xb3 ARABIC SYMBOL DOT BELOW
++<UFBB4>     /xef/xae/xb4 ARABIC SYMBOL TWO DOTS ABOVE
++<UFBB5>     /xef/xae/xb5 ARABIC SYMBOL TWO DOTS BELOW
++<UFBB6>     /xef/xae/xb6 ARABIC SYMBOL THREE DOTS ABOVE
++<UFBB7>     /xef/xae/xb7 ARABIC SYMBOL THREE DOTS BELOW
++<UFBB8>     /xef/xae/xb8 ARABIC SYMBOL THREE DOTS POINTING DOWNWARDS ABOVE
++<UFBB9>     /xef/xae/xb9 ARABIC SYMBOL THREE DOTS POINTING DOWNWARDS BELOW
++<UFBBA>     /xef/xae/xba ARABIC SYMBOL FOUR DOTS ABOVE
++<UFBBB>     /xef/xae/xbb ARABIC SYMBOL FOUR DOTS BELOW
++<UFBBC>     /xef/xae/xbc ARABIC SYMBOL DOUBLE VERTICAL BAR BELOW
++<UFBBD>     /xef/xae/xbd ARABIC SYMBOL TWO DOTS VERTICALLY ABOVE
++<UFBBE>     /xef/xae/xbe ARABIC SYMBOL TWO DOTS VERTICALLY BELOW
++<UFBBF>     /xef/xae/xbf ARABIC SYMBOL RING
++<UFBC0>     /xef/xaf/x80 ARABIC SYMBOL SMALL TAH ABOVE
++<UFBC1>     /xef/xaf/x81 ARABIC SYMBOL SMALL TAH BELOW
+ <UFBD3>     /xef/xaf/x93 ARABIC LETTER NG ISOLATED FORM
+ <UFBD4>     /xef/xaf/x94 ARABIC LETTER NG FINAL FORM
+ <UFBD5>     /xef/xaf/x95 ARABIC LETTER NG INITIAL FORM
+@@ -27269,6 +28460,37 @@ CHARMAP
+ <U00010838> /xf0/x90/xa0/xb8 CYPRIOT SYLLABLE XE
+ <U0001083C> /xf0/x90/xa0/xbc CYPRIOT SYLLABLE ZA
+ <U0001083F> /xf0/x90/xa0/xbf CYPRIOT SYLLABLE ZO
++<U00010840> /xf0/x90/xa1/x80 IMPERIAL ARAMAIC LETTER ALEPH
++<U00010841> /xf0/x90/xa1/x81 IMPERIAL ARAMAIC LETTER BETH
++<U00010842> /xf0/x90/xa1/x82 IMPERIAL ARAMAIC LETTER GIMEL
++<U00010843> /xf0/x90/xa1/x83 IMPERIAL ARAMAIC LETTER DALETH
++<U00010844> /xf0/x90/xa1/x84 IMPERIAL ARAMAIC LETTER HE
++<U00010845> /xf0/x90/xa1/x85 IMPERIAL ARAMAIC LETTER WAW
++<U00010846> /xf0/x90/xa1/x86 IMPERIAL ARAMAIC LETTER ZAYIN
++<U00010847> /xf0/x90/xa1/x87 IMPERIAL ARAMAIC LETTER HETH
++<U00010848> /xf0/x90/xa1/x88 IMPERIAL ARAMAIC LETTER TETH
++<U00010849> /xf0/x90/xa1/x89 IMPERIAL ARAMAIC LETTER YODH
++<U0001084A> /xf0/x90/xa1/x8a IMPERIAL ARAMAIC LETTER KAPH
++<U0001084B> /xf0/x90/xa1/x8b IMPERIAL ARAMAIC LETTER LAMEDH
++<U0001084C> /xf0/x90/xa1/x8c IMPERIAL ARAMAIC LETTER MEM
++<U0001084D> /xf0/x90/xa1/x8d IMPERIAL ARAMAIC LETTER NUN
++<U0001084E> /xf0/x90/xa1/x8e IMPERIAL ARAMAIC LETTER SAMEKH
++<U0001084F> /xf0/x90/xa1/x8f IMPERIAL ARAMAIC LETTER AYIN
++<U00010850> /xf0/x90/xa1/x90 IMPERIAL ARAMAIC LETTER PE
++<U00010851> /xf0/x90/xa1/x91 IMPERIAL ARAMAIC LETTER SADHE
++<U00010852> /xf0/x90/xa1/x92 IMPERIAL ARAMAIC LETTER QOPH
++<U00010853> /xf0/x90/xa1/x93 IMPERIAL ARAMAIC LETTER RESH
++<U00010854> /xf0/x90/xa1/x94 IMPERIAL ARAMAIC LETTER SHIN
++<U00010855> /xf0/x90/xa1/x95 IMPERIAL ARAMAIC LETTER TAW
++<U00010857> /xf0/x90/xa1/x97 IMPERIAL ARAMAIC SECTION SIGN
++<U00010858> /xf0/x90/xa1/x98 IMPERIAL ARAMAIC NUMBER ONE
++<U00010859> /xf0/x90/xa1/x99 IMPERIAL ARAMAIC NUMBER TWO
++<U0001085A> /xf0/x90/xa1/x9a IMPERIAL ARAMAIC NUMBER THREE
++<U0001085B> /xf0/x90/xa1/x9b IMPERIAL ARAMAIC NUMBER TEN
++<U0001085C> /xf0/x90/xa1/x9c IMPERIAL ARAMAIC NUMBER TWENTY
++<U0001085D> /xf0/x90/xa1/x9d IMPERIAL ARAMAIC NUMBER ONE HUNDRED
++<U0001085E> /xf0/x90/xa1/x9e IMPERIAL ARAMAIC NUMBER ONE THOUSAND
++<U0001085F> /xf0/x90/xa1/x9f IMPERIAL ARAMAIC NUMBER TEN THOUSAND
+ <U00010900> /xf0/x90/xa4/x80 PHOENICIAN LETTER ALF
+ <U00010901> /xf0/x90/xa4/x81 PHOENICIAN LETTER BET
+ <U00010902> /xf0/x90/xa4/x82 PHOENICIAN LETTER GAML
+@@ -27295,6 +28517,8 @@ CHARMAP
+ <U00010917> /xf0/x90/xa4/x97 PHOENICIAN NUMBER TEN
+ <U00010918> /xf0/x90/xa4/x98 PHOENICIAN NUMBER TWENTY
+ <U00010919> /xf0/x90/xa4/x99 PHOENICIAN NUMBER ONE HUNDRED
++<U0001091A> /xf0/x90/xa4/x9a PHOENICIAN NUMBER TWO
++<U0001091B> /xf0/x90/xa4/x9b PHOENICIAN NUMBER THREE
+ <U0001091F> /xf0/x90/xa4/x9f PHOENICIAN WORD SEPARATOR
+ <U00010920> /xf0/x90/xa4/xa0 LYDIAN LETTER A
+ <U00010921> /xf0/x90/xa4/xa1 LYDIAN LETTER B
+@@ -27388,6 +28612,434 @@ CHARMAP
+ <U00010A56> /xf0/x90/xa9/x96 KHAROSHTHI PUNCTUATION DANDA
+ <U00010A57> /xf0/x90/xa9/x97 KHAROSHTHI PUNCTUATION DOUBLE DANDA
+ <U00010A58> /xf0/x90/xa9/x98 KHAROSHTHI PUNCTUATION LINES
++<U00010A60> /xf0/x90/xa9/xa0 OLD SOUTH ARABIAN LETTER HE
++<U00010A61> /xf0/x90/xa9/xa1 OLD SOUTH ARABIAN LETTER LAMEDH
++<U00010A62> /xf0/x90/xa9/xa2 OLD SOUTH ARABIAN LETTER HETH
++<U00010A63> /xf0/x90/xa9/xa3 OLD SOUTH ARABIAN LETTER MEM
++<U00010A64> /xf0/x90/xa9/xa4 OLD SOUTH ARABIAN LETTER QOPH
++<U00010A65> /xf0/x90/xa9/xa5 OLD SOUTH ARABIAN LETTER WAW
++<U00010A66> /xf0/x90/xa9/xa6 OLD SOUTH ARABIAN LETTER SHIN
++<U00010A67> /xf0/x90/xa9/xa7 OLD SOUTH ARABIAN LETTER RESH
++<U00010A68> /xf0/x90/xa9/xa8 OLD SOUTH ARABIAN LETTER BETH
++<U00010A69> /xf0/x90/xa9/xa9 OLD SOUTH ARABIAN LETTER TAW
++<U00010A6A> /xf0/x90/xa9/xaa OLD SOUTH ARABIAN LETTER SAT
++<U00010A6B> /xf0/x90/xa9/xab OLD SOUTH ARABIAN LETTER KAPH
++<U00010A6C> /xf0/x90/xa9/xac OLD SOUTH ARABIAN LETTER NUN
++<U00010A6D> /xf0/x90/xa9/xad OLD SOUTH ARABIAN LETTER KHETH
++<U00010A6E> /xf0/x90/xa9/xae OLD SOUTH ARABIAN LETTER SADHE
++<U00010A6F> /xf0/x90/xa9/xaf OLD SOUTH ARABIAN LETTER SAMEKH
++<U00010A70> /xf0/x90/xa9/xb0 OLD SOUTH ARABIAN LETTER FE
++<U00010A71> /xf0/x90/xa9/xb1 OLD SOUTH ARABIAN LETTER ALEF
++<U00010A72> /xf0/x90/xa9/xb2 OLD SOUTH ARABIAN LETTER AYN
++<U00010A73> /xf0/x90/xa9/xb3 OLD SOUTH ARABIAN LETTER DHADHE
++<U00010A74> /xf0/x90/xa9/xb4 OLD SOUTH ARABIAN LETTER GIMEL
++<U00010A75> /xf0/x90/xa9/xb5 OLD SOUTH ARABIAN LETTER DALETH
++<U00010A76> /xf0/x90/xa9/xb6 OLD SOUTH ARABIAN LETTER GHAYN
++<U00010A77> /xf0/x90/xa9/xb7 OLD SOUTH ARABIAN LETTER TETH
++<U00010A78> /xf0/x90/xa9/xb8 OLD SOUTH ARABIAN LETTER ZAYN
++<U00010A79> /xf0/x90/xa9/xb9 OLD SOUTH ARABIAN LETTER DHALETH
++<U00010A7A> /xf0/x90/xa9/xba OLD SOUTH ARABIAN LETTER YODH
++<U00010A7B> /xf0/x90/xa9/xbb OLD SOUTH ARABIAN LETTER THAW
++<U00010A7C> /xf0/x90/xa9/xbc OLD SOUTH ARABIAN LETTER THETH
++<U00010A7D> /xf0/x90/xa9/xbd OLD SOUTH ARABIAN NUMBER ONE
++<U00010A7E> /xf0/x90/xa9/xbe OLD SOUTH ARABIAN NUMBER FIFTY
++<U00010A7F> /xf0/x90/xa9/xbf OLD SOUTH ARABIAN NUMERIC INDICATOR
++<U00010B00> /xf0/x90/xac/x80 AVESTAN LETTER A
++<U00010B01> /xf0/x90/xac/x81 AVESTAN LETTER AA
++<U00010B02> /xf0/x90/xac/x82 AVESTAN LETTER AO
++<U00010B03> /xf0/x90/xac/x83 AVESTAN LETTER AAO
++<U00010B04> /xf0/x90/xac/x84 AVESTAN LETTER AN
++<U00010B05> /xf0/x90/xac/x85 AVESTAN LETTER AAN
++<U00010B06> /xf0/x90/xac/x86 AVESTAN LETTER AE
++<U00010B07> /xf0/x90/xac/x87 AVESTAN LETTER AEE
++<U00010B08> /xf0/x90/xac/x88 AVESTAN LETTER E
++<U00010B09> /xf0/x90/xac/x89 AVESTAN LETTER EE
++<U00010B0A> /xf0/x90/xac/x8a AVESTAN LETTER O
++<U00010B0B> /xf0/x90/xac/x8b AVESTAN LETTER OO
++<U00010B0C> /xf0/x90/xac/x8c AVESTAN LETTER I
++<U00010B0D> /xf0/x90/xac/x8d AVESTAN LETTER II
++<U00010B0E> /xf0/x90/xac/x8e AVESTAN LETTER U
++<U00010B0F> /xf0/x90/xac/x8f AVESTAN LETTER UU
++<U00010B10> /xf0/x90/xac/x90 AVESTAN LETTER KE
++<U00010B11> /xf0/x90/xac/x91 AVESTAN LETTER XE
++<U00010B12> /xf0/x90/xac/x92 AVESTAN LETTER XYE
++<U00010B13> /xf0/x90/xac/x93 AVESTAN LETTER XVE
++<U00010B14> /xf0/x90/xac/x94 AVESTAN LETTER GE
++<U00010B15> /xf0/x90/xac/x95 AVESTAN LETTER GGE
++<U00010B16> /xf0/x90/xac/x96 AVESTAN LETTER GHE
++<U00010B17> /xf0/x90/xac/x97 AVESTAN LETTER CE
++<U00010B18> /xf0/x90/xac/x98 AVESTAN LETTER JE
++<U00010B19> /xf0/x90/xac/x99 AVESTAN LETTER TE
++<U00010B1A> /xf0/x90/xac/x9a AVESTAN LETTER THE
++<U00010B1B> /xf0/x90/xac/x9b AVESTAN LETTER DE
++<U00010B1C> /xf0/x90/xac/x9c AVESTAN LETTER DHE
++<U00010B1D> /xf0/x90/xac/x9d AVESTAN LETTER TTE
++<U00010B1E> /xf0/x90/xac/x9e AVESTAN LETTER PE
++<U00010B1F> /xf0/x90/xac/x9f AVESTAN LETTER FE
++<U00010B20> /xf0/x90/xac/xa0 AVESTAN LETTER BE
++<U00010B21> /xf0/x90/xac/xa1 AVESTAN LETTER BHE
++<U00010B22> /xf0/x90/xac/xa2 AVESTAN LETTER NGE
++<U00010B23> /xf0/x90/xac/xa3 AVESTAN LETTER NGYE
++<U00010B24> /xf0/x90/xac/xa4 AVESTAN LETTER NGVE
++<U00010B25> /xf0/x90/xac/xa5 AVESTAN LETTER NE
++<U00010B26> /xf0/x90/xac/xa6 AVESTAN LETTER NYE
++<U00010B27> /xf0/x90/xac/xa7 AVESTAN LETTER NNE
++<U00010B28> /xf0/x90/xac/xa8 AVESTAN LETTER ME
++<U00010B29> /xf0/x90/xac/xa9 AVESTAN LETTER HME
++<U00010B2A> /xf0/x90/xac/xaa AVESTAN LETTER YYE
++<U00010B2B> /xf0/x90/xac/xab AVESTAN LETTER YE
++<U00010B2C> /xf0/x90/xac/xac AVESTAN LETTER VE
++<U00010B2D> /xf0/x90/xac/xad AVESTAN LETTER RE
++<U00010B2E> /xf0/x90/xac/xae AVESTAN LETTER LE
++<U00010B2F> /xf0/x90/xac/xaf AVESTAN LETTER SE
++<U00010B30> /xf0/x90/xac/xb0 AVESTAN LETTER ZE
++<U00010B31> /xf0/x90/xac/xb1 AVESTAN LETTER SHE
++<U00010B32> /xf0/x90/xac/xb2 AVESTAN LETTER ZHE
++<U00010B33> /xf0/x90/xac/xb3 AVESTAN LETTER SHYE
++<U00010B34> /xf0/x90/xac/xb4 AVESTAN LETTER SSHE
++<U00010B35> /xf0/x90/xac/xb5 AVESTAN LETTER HE
++<U00010B39> /xf0/x90/xac/xb9 AVESTAN ABBREVIATION MARK
++<U00010B3A> /xf0/x90/xac/xba TINY TWO DOTS OVER ONE DOT PUNCTUATION
++<U00010B3B> /xf0/x90/xac/xbb SMALL TWO DOTS OVER ONE DOT PUNCTUATION
++<U00010B3C> /xf0/x90/xac/xbc LARGE TWO DOTS OVER ONE DOT PUNCTUATION
++<U00010B3D> /xf0/x90/xac/xbd LARGE ONE DOT OVER TWO DOTS PUNCTUATION
++<U00010B3E> /xf0/x90/xac/xbe LARGE TWO RINGS OVER ONE RING PUNCTUATION
++<U00010B3F> /xf0/x90/xac/xbf LARGE ONE RING OVER TWO RINGS PUNCTUATION
++<U00010B40> /xf0/x90/xad/x80 INSCRIPTIONAL PARTHIAN LETTER ALEPH
++<U00010B41> /xf0/x90/xad/x81 INSCRIPTIONAL PARTHIAN LETTER BETH
++<U00010B42> /xf0/x90/xad/x82 INSCRIPTIONAL PARTHIAN LETTER GIMEL
++<U00010B43> /xf0/x90/xad/x83 INSCRIPTIONAL PARTHIAN LETTER DALETH
++<U00010B44> /xf0/x90/xad/x84 INSCRIPTIONAL PARTHIAN LETTER HE
++<U00010B45> /xf0/x90/xad/x85 INSCRIPTIONAL PARTHIAN LETTER WAW
++<U00010B46> /xf0/x90/xad/x86 INSCRIPTIONAL PARTHIAN LETTER ZAYIN
++<U00010B47> /xf0/x90/xad/x87 INSCRIPTIONAL PARTHIAN LETTER HETH
++<U00010B48> /xf0/x90/xad/x88 INSCRIPTIONAL PARTHIAN LETTER TETH
++<U00010B49> /xf0/x90/xad/x89 INSCRIPTIONAL PARTHIAN LETTER YODH
++<U00010B4A> /xf0/x90/xad/x8a INSCRIPTIONAL PARTHIAN LETTER KAPH
++<U00010B4B> /xf0/x90/xad/x8b INSCRIPTIONAL PARTHIAN LETTER LAMEDH
++<U00010B4C> /xf0/x90/xad/x8c INSCRIPTIONAL PARTHIAN LETTER MEM
++<U00010B4D> /xf0/x90/xad/x8d INSCRIPTIONAL PARTHIAN LETTER NUN
++<U00010B4E> /xf0/x90/xad/x8e INSCRIPTIONAL PARTHIAN LETTER SAMEKH
++<U00010B4F> /xf0/x90/xad/x8f INSCRIPTIONAL PARTHIAN LETTER AYIN
++<U00010B50> /xf0/x90/xad/x90 INSCRIPTIONAL PARTHIAN LETTER PE
++<U00010B51> /xf0/x90/xad/x91 INSCRIPTIONAL PARTHIAN LETTER SADHE
++<U00010B52> /xf0/x90/xad/x92 INSCRIPTIONAL PARTHIAN LETTER QOPH
++<U00010B53> /xf0/x90/xad/x93 INSCRIPTIONAL PARTHIAN LETTER RESH
++<U00010B54> /xf0/x90/xad/x94 INSCRIPTIONAL PARTHIAN LETTER SHIN
++<U00010B55> /xf0/x90/xad/x95 INSCRIPTIONAL PARTHIAN LETTER TAW
++<U00010B58> /xf0/x90/xad/x98 INSCRIPTIONAL PARTHIAN NUMBER ONE
++<U00010B59> /xf0/x90/xad/x99 INSCRIPTIONAL PARTHIAN NUMBER TWO
++<U00010B5A> /xf0/x90/xad/x9a INSCRIPTIONAL PARTHIAN NUMBER THREE
++<U00010B5B> /xf0/x90/xad/x9b INSCRIPTIONAL PARTHIAN NUMBER FOUR
++<U00010B5C> /xf0/x90/xad/x9c INSCRIPTIONAL PARTHIAN NUMBER TEN
++<U00010B5D> /xf0/x90/xad/x9d INSCRIPTIONAL PARTHIAN NUMBER TWENTY
++<U00010B5E> /xf0/x90/xad/x9e INSCRIPTIONAL PARTHIAN NUMBER ONE HUNDRED
++<U00010B5F> /xf0/x90/xad/x9f INSCRIPTIONAL PARTHIAN NUMBER ONE THOUSAND
++<U00010B60> /xf0/x90/xad/xa0 INSCRIPTIONAL PAHLAVI LETTER ALEPH
++<U00010B61> /xf0/x90/xad/xa1 INSCRIPTIONAL PAHLAVI LETTER BETH
++<U00010B62> /xf0/x90/xad/xa2 INSCRIPTIONAL PAHLAVI LETTER GIMEL
++<U00010B63> /xf0/x90/xad/xa3 INSCRIPTIONAL PAHLAVI LETTER DALETH
++<U00010B64> /xf0/x90/xad/xa4 INSCRIPTIONAL PAHLAVI LETTER HE
++<U00010B65> /xf0/x90/xad/xa5 INSCRIPTIONAL PAHLAVI LETTER WAW-AYIN-RESH
++<U00010B66> /xf0/x90/xad/xa6 INSCRIPTIONAL PAHLAVI LETTER ZAYIN
++<U00010B67> /xf0/x90/xad/xa7 INSCRIPTIONAL PAHLAVI LETTER HETH
++<U00010B68> /xf0/x90/xad/xa8 INSCRIPTIONAL PAHLAVI LETTER TETH
++<U00010B69> /xf0/x90/xad/xa9 INSCRIPTIONAL PAHLAVI LETTER YODH
++<U00010B6A> /xf0/x90/xad/xaa INSCRIPTIONAL PAHLAVI LETTER KAPH
++<U00010B6B> /xf0/x90/xad/xab INSCRIPTIONAL PAHLAVI LETTER LAMEDH
++<U00010B6C> /xf0/x90/xad/xac INSCRIPTIONAL PAHLAVI LETTER MEM-QOPH
++<U00010B6D> /xf0/x90/xad/xad INSCRIPTIONAL PAHLAVI LETTER NUN
++<U00010B6E> /xf0/x90/xad/xae INSCRIPTIONAL PAHLAVI LETTER SAMEKH
++<U00010B6F> /xf0/x90/xad/xaf INSCRIPTIONAL PAHLAVI LETTER PE
++<U00010B70> /xf0/x90/xad/xb0 INSCRIPTIONAL PAHLAVI LETTER SADHE
++<U00010B71> /xf0/x90/xad/xb1 INSCRIPTIONAL PAHLAVI LETTER SHIN
++<U00010B72> /xf0/x90/xad/xb2 INSCRIPTIONAL PAHLAVI LETTER TAW
++<U00010B78> /xf0/x90/xad/xb8 INSCRIPTIONAL PAHLAVI NUMBER ONE
++<U00010B79> /xf0/x90/xad/xb9 INSCRIPTIONAL PAHLAVI NUMBER TWO
++<U00010B7A> /xf0/x90/xad/xba INSCRIPTIONAL PAHLAVI NUMBER THREE
++<U00010B7B> /xf0/x90/xad/xbb INSCRIPTIONAL PAHLAVI NUMBER FOUR
++<U00010B7C> /xf0/x90/xad/xbc INSCRIPTIONAL PAHLAVI NUMBER TEN
++<U00010B7D> /xf0/x90/xad/xbd INSCRIPTIONAL PAHLAVI NUMBER TWENTY
++<U00010B7E> /xf0/x90/xad/xbe INSCRIPTIONAL PAHLAVI NUMBER ONE HUNDRED
++<U00010B7F> /xf0/x90/xad/xbf INSCRIPTIONAL PAHLAVI NUMBER ONE THOUSAND
++<U00010C00> /xf0/x90/xb0/x80 OLD TURKIC LETTER ORKHON A
++<U00010C01> /xf0/x90/xb0/x81 OLD TURKIC LETTER YENISEI A
++<U00010C02> /xf0/x90/xb0/x82 OLD TURKIC LETTER YENISEI AE
++<U00010C03> /xf0/x90/xb0/x83 OLD TURKIC LETTER ORKHON I
++<U00010C04> /xf0/x90/xb0/x84 OLD TURKIC LETTER YENISEI I
++<U00010C05> /xf0/x90/xb0/x85 OLD TURKIC LETTER YENISEI E
++<U00010C06> /xf0/x90/xb0/x86 OLD TURKIC LETTER ORKHON O
++<U00010C07> /xf0/x90/xb0/x87 OLD TURKIC LETTER ORKHON OE
++<U00010C08> /xf0/x90/xb0/x88 OLD TURKIC LETTER YENISEI OE
++<U00010C09> /xf0/x90/xb0/x89 OLD TURKIC LETTER ORKHON AB
++<U00010C0A> /xf0/x90/xb0/x8a OLD TURKIC LETTER YENISEI AB
++<U00010C0B> /xf0/x90/xb0/x8b OLD TURKIC LETTER ORKHON AEB
++<U00010C0C> /xf0/x90/xb0/x8c OLD TURKIC LETTER YENISEI AEB
++<U00010C0D> /xf0/x90/xb0/x8d OLD TURKIC LETTER ORKHON AG
++<U00010C0E> /xf0/x90/xb0/x8e OLD TURKIC LETTER YENISEI AG
++<U00010C0F> /xf0/x90/xb0/x8f OLD TURKIC LETTER ORKHON AEG
++<U00010C10> /xf0/x90/xb0/x90 OLD TURKIC LETTER YENISEI AEG
++<U00010C11> /xf0/x90/xb0/x91 OLD TURKIC LETTER ORKHON AD
++<U00010C12> /xf0/x90/xb0/x92 OLD TURKIC LETTER YENISEI AD
++<U00010C13> /xf0/x90/xb0/x93 OLD TURKIC LETTER ORKHON AED
++<U00010C14> /xf0/x90/xb0/x94 OLD TURKIC LETTER ORKHON EZ
++<U00010C15> /xf0/x90/xb0/x95 OLD TURKIC LETTER YENISEI EZ
++<U00010C16> /xf0/x90/xb0/x96 OLD TURKIC LETTER ORKHON AY
++<U00010C17> /xf0/x90/xb0/x97 OLD TURKIC LETTER YENISEI AY
++<U00010C18> /xf0/x90/xb0/x98 OLD TURKIC LETTER ORKHON AEY
++<U00010C19> /xf0/x90/xb0/x99 OLD TURKIC LETTER YENISEI AEY
++<U00010C1A> /xf0/x90/xb0/x9a OLD TURKIC LETTER ORKHON AEK
++<U00010C1B> /xf0/x90/xb0/x9b OLD TURKIC LETTER YENISEI AEK
++<U00010C1C> /xf0/x90/xb0/x9c OLD TURKIC LETTER ORKHON OEK
++<U00010C1D> /xf0/x90/xb0/x9d OLD TURKIC LETTER YENISEI OEK
++<U00010C1E> /xf0/x90/xb0/x9e OLD TURKIC LETTER ORKHON AL
++<U00010C1F> /xf0/x90/xb0/x9f OLD TURKIC LETTER YENISEI AL
++<U00010C20> /xf0/x90/xb0/xa0 OLD TURKIC LETTER ORKHON AEL
++<U00010C21> /xf0/x90/xb0/xa1 OLD TURKIC LETTER ORKHON ELT
++<U00010C22> /xf0/x90/xb0/xa2 OLD TURKIC LETTER ORKHON EM
++<U00010C23> /xf0/x90/xb0/xa3 OLD TURKIC LETTER ORKHON AN
++<U00010C24> /xf0/x90/xb0/xa4 OLD TURKIC LETTER ORKHON AEN
++<U00010C25> /xf0/x90/xb0/xa5 OLD TURKIC LETTER YENISEI AEN
++<U00010C26> /xf0/x90/xb0/xa6 OLD TURKIC LETTER ORKHON ENT
++<U00010C27> /xf0/x90/xb0/xa7 OLD TURKIC LETTER YENISEI ENT
++<U00010C28> /xf0/x90/xb0/xa8 OLD TURKIC LETTER ORKHON ENC
++<U00010C29> /xf0/x90/xb0/xa9 OLD TURKIC LETTER YENISEI ENC
++<U00010C2A> /xf0/x90/xb0/xaa OLD TURKIC LETTER ORKHON ENY
++<U00010C2B> /xf0/x90/xb0/xab OLD TURKIC LETTER YENISEI ENY
++<U00010C2C> /xf0/x90/xb0/xac OLD TURKIC LETTER YENISEI ANG
++<U00010C2D> /xf0/x90/xb0/xad OLD TURKIC LETTER ORKHON ENG
++<U00010C2E> /xf0/x90/xb0/xae OLD TURKIC LETTER YENISEI AENG
++<U00010C2F> /xf0/x90/xb0/xaf OLD TURKIC LETTER ORKHON EP
++<U00010C30> /xf0/x90/xb0/xb0 OLD TURKIC LETTER ORKHON OP
++<U00010C31> /xf0/x90/xb0/xb1 OLD TURKIC LETTER ORKHON IC
++<U00010C32> /xf0/x90/xb0/xb2 OLD TURKIC LETTER ORKHON EC
++<U00010C33> /xf0/x90/xb0/xb3 OLD TURKIC LETTER YENISEI EC
++<U00010C34> /xf0/x90/xb0/xb4 OLD TURKIC LETTER ORKHON AQ
++<U00010C35> /xf0/x90/xb0/xb5 OLD TURKIC LETTER YENISEI AQ
++<U00010C36> /xf0/x90/xb0/xb6 OLD TURKIC LETTER ORKHON IQ
++<U00010C37> /xf0/x90/xb0/xb7 OLD TURKIC LETTER YENISEI IQ
++<U00010C38> /xf0/x90/xb0/xb8 OLD TURKIC LETTER ORKHON OQ
++<U00010C39> /xf0/x90/xb0/xb9 OLD TURKIC LETTER YENISEI OQ
++<U00010C3A> /xf0/x90/xb0/xba OLD TURKIC LETTER ORKHON AR
++<U00010C3B> /xf0/x90/xb0/xbb OLD TURKIC LETTER YENISEI AR
++<U00010C3C> /xf0/x90/xb0/xbc OLD TURKIC LETTER ORKHON AER
++<U00010C3D> /xf0/x90/xb0/xbd OLD TURKIC LETTER ORKHON AS
++<U00010C3E> /xf0/x90/xb0/xbe OLD TURKIC LETTER ORKHON AES
++<U00010C3F> /xf0/x90/xb0/xbf OLD TURKIC LETTER ORKHON ASH
++<U00010C40> /xf0/x90/xb1/x80 OLD TURKIC LETTER YENISEI ASH
++<U00010C41> /xf0/x90/xb1/x81 OLD TURKIC LETTER ORKHON ESH
++<U00010C42> /xf0/x90/xb1/x82 OLD TURKIC LETTER YENISEI ESH
++<U00010C43> /xf0/x90/xb1/x83 OLD TURKIC LETTER ORKHON AT
++<U00010C44> /xf0/x90/xb1/x84 OLD TURKIC LETTER YENISEI AT
++<U00010C45> /xf0/x90/xb1/x85 OLD TURKIC LETTER ORKHON AET
++<U00010C46> /xf0/x90/xb1/x86 OLD TURKIC LETTER YENISEI AET
++<U00010C47> /xf0/x90/xb1/x87 OLD TURKIC LETTER ORKHON OT
++<U00010C48> /xf0/x90/xb1/x88 OLD TURKIC LETTER ORKHON BASH
++<U00010E60> /xf0/x90/xb9/xa0 RUMI DIGIT ONE
++<U00010E61> /xf0/x90/xb9/xa1 RUMI DIGIT TWO
++<U00010E62> /xf0/x90/xb9/xa2 RUMI DIGIT THREE
++<U00010E63> /xf0/x90/xb9/xa3 RUMI DIGIT FOUR
++<U00010E64> /xf0/x90/xb9/xa4 RUMI DIGIT FIVE
++<U00010E65> /xf0/x90/xb9/xa5 RUMI DIGIT SIX
++<U00010E66> /xf0/x90/xb9/xa6 RUMI DIGIT SEVEN
++<U00010E67> /xf0/x90/xb9/xa7 RUMI DIGIT EIGHT
++<U00010E68> /xf0/x90/xb9/xa8 RUMI DIGIT NINE
++<U00010E69> /xf0/x90/xb9/xa9 RUMI NUMBER TEN
++<U00010E6A> /xf0/x90/xb9/xaa RUMI NUMBER TWENTY
++<U00010E6B> /xf0/x90/xb9/xab RUMI NUMBER THIRTY
++<U00010E6C> /xf0/x90/xb9/xac RUMI NUMBER FORTY
++<U00010E6D> /xf0/x90/xb9/xad RUMI NUMBER FIFTY
++<U00010E6E> /xf0/x90/xb9/xae RUMI NUMBER SIXTY
++<U00010E6F> /xf0/x90/xb9/xaf RUMI NUMBER SEVENTY
++<U00010E70> /xf0/x90/xb9/xb0 RUMI NUMBER EIGHTY
++<U00010E71> /xf0/x90/xb9/xb1 RUMI NUMBER NINETY
++<U00010E72> /xf0/x90/xb9/xb2 RUMI NUMBER ONE HUNDRED
++<U00010E73> /xf0/x90/xb9/xb3 RUMI NUMBER TWO HUNDRED
++<U00010E74> /xf0/x90/xb9/xb4 RUMI NUMBER THREE HUNDRED
++<U00010E75> /xf0/x90/xb9/xb5 RUMI NUMBER FOUR HUNDRED
++<U00010E76> /xf0/x90/xb9/xb6 RUMI NUMBER FIVE HUNDRED
++<U00010E77> /xf0/x90/xb9/xb7 RUMI NUMBER SIX HUNDRED
++<U00010E78> /xf0/x90/xb9/xb8 RUMI NUMBER SEVEN HUNDRED
++<U00010E79> /xf0/x90/xb9/xb9 RUMI NUMBER EIGHT HUNDRED
++<U00010E7A> /xf0/x90/xb9/xba RUMI NUMBER NINE HUNDRED
++<U00010E7B> /xf0/x90/xb9/xbb RUMI FRACTION ONE HALF
++<U00010E7C> /xf0/x90/xb9/xbc RUMI FRACTION ONE QUARTER
++<U00010E7D> /xf0/x90/xb9/xbd RUMI FRACTION ONE THIRD
++<U00010E7E> /xf0/x90/xb9/xbe RUMI FRACTION TWO THIRDS
++<U00011000> /xf0/x91/x80/x80 BRAHMI SIGN CANDRABINDU
++<U00011001> /xf0/x91/x80/x81 BRAHMI SIGN ANUSVARA
++<U00011002> /xf0/x91/x80/x82 BRAHMI SIGN VISARGA
++<U00011003> /xf0/x91/x80/x83 BRAHMI SIGN JIHVAMULIYA
++<U00011004> /xf0/x91/x80/x84 BRAHMI SIGN UPADHMANIYA
++<U00011005> /xf0/x91/x80/x85 BRAHMI LETTER A
++<U00011006> /xf0/x91/x80/x86 BRAHMI LETTER AA
++<U00011007> /xf0/x91/x80/x87 BRAHMI LETTER I
++<U00011008> /xf0/x91/x80/x88 BRAHMI LETTER II
++<U00011009> /xf0/x91/x80/x89 BRAHMI LETTER U
++<U0001100A> /xf0/x91/x80/x8a BRAHMI LETTER UU
++<U0001100B> /xf0/x91/x80/x8b BRAHMI LETTER VOCALIC R
++<U0001100C> /xf0/x91/x80/x8c BRAHMI LETTER VOCALIC RR
++<U0001100D> /xf0/x91/x80/x8d BRAHMI LETTER VOCALIC L
++<U0001100E> /xf0/x91/x80/x8e BRAHMI LETTER VOCALIC LL
++<U0001100F> /xf0/x91/x80/x8f BRAHMI LETTER E
++<U00011010> /xf0/x91/x80/x90 BRAHMI LETTER AI
++<U00011011> /xf0/x91/x80/x91 BRAHMI LETTER O
++<U00011012> /xf0/x91/x80/x92 BRAHMI LETTER AU
++<U00011013> /xf0/x91/x80/x93 BRAHMI LETTER KA
++<U00011014> /xf0/x91/x80/x94 BRAHMI LETTER KHA
++<U00011015> /xf0/x91/x80/x95 BRAHMI LETTER GA
++<U00011016> /xf0/x91/x80/x96 BRAHMI LETTER GHA
++<U00011017> /xf0/x91/x80/x97 BRAHMI LETTER NGA
++<U00011018> /xf0/x91/x80/x98 BRAHMI LETTER CA
++<U00011019> /xf0/x91/x80/x99 BRAHMI LETTER CHA
++<U0001101A> /xf0/x91/x80/x9a BRAHMI LETTER JA
++<U0001101B> /xf0/x91/x80/x9b BRAHMI LETTER JHA
++<U0001101C> /xf0/x91/x80/x9c BRAHMI LETTER NYA
++<U0001101D> /xf0/x91/x80/x9d BRAHMI LETTER TTA
++<U0001101E> /xf0/x91/x80/x9e BRAHMI LETTER TTHA
++<U0001101F> /xf0/x91/x80/x9f BRAHMI LETTER DDA
++<U00011020> /xf0/x91/x80/xa0 BRAHMI LETTER DDHA
++<U00011021> /xf0/x91/x80/xa1 BRAHMI LETTER NNA
++<U00011022> /xf0/x91/x80/xa2 BRAHMI LETTER TA
++<U00011023> /xf0/x91/x80/xa3 BRAHMI LETTER THA
++<U00011024> /xf0/x91/x80/xa4 BRAHMI LETTER DA
++<U00011025> /xf0/x91/x80/xa5 BRAHMI LETTER DHA
++<U00011026> /xf0/x91/x80/xa6 BRAHMI LETTER NA
++<U00011027> /xf0/x91/x80/xa7 BRAHMI LETTER PA
++<U00011028> /xf0/x91/x80/xa8 BRAHMI LETTER PHA
++<U00011029> /xf0/x91/x80/xa9 BRAHMI LETTER BA
++<U0001102A> /xf0/x91/x80/xaa BRAHMI LETTER BHA
++<U0001102B> /xf0/x91/x80/xab BRAHMI LETTER MA
++<U0001102C> /xf0/x91/x80/xac BRAHMI LETTER YA
++<U0001102D> /xf0/x91/x80/xad BRAHMI LETTER RA
++<U0001102E> /xf0/x91/x80/xae BRAHMI LETTER LA
++<U0001102F> /xf0/x91/x80/xaf BRAHMI LETTER VA
++<U00011030> /xf0/x91/x80/xb0 BRAHMI LETTER SHA
++<U00011031> /xf0/x91/x80/xb1 BRAHMI LETTER SSA
++<U00011032> /xf0/x91/x80/xb2 BRAHMI LETTER SA
++<U00011033> /xf0/x91/x80/xb3 BRAHMI LETTER HA
++<U00011034> /xf0/x91/x80/xb4 BRAHMI LETTER LLA
++<U00011035> /xf0/x91/x80/xb5 BRAHMI LETTER OLD TAMIL LLLA
++<U00011036> /xf0/x91/x80/xb6 BRAHMI LETTER OLD TAMIL RRA
++<U00011037> /xf0/x91/x80/xb7 BRAHMI LETTER OLD TAMIL NNNA
++<U00011038> /xf0/x91/x80/xb8 BRAHMI VOWEL SIGN AA
++<U00011039> /xf0/x91/x80/xb9 BRAHMI VOWEL SIGN BHATTIPROLU AA
++<U0001103A> /xf0/x91/x80/xba BRAHMI VOWEL SIGN I
++<U0001103B> /xf0/x91/x80/xbb BRAHMI VOWEL SIGN II
++<U0001103C> /xf0/x91/x80/xbc BRAHMI VOWEL SIGN U
++<U0001103D> /xf0/x91/x80/xbd BRAHMI VOWEL SIGN UU
++<U0001103E> /xf0/x91/x80/xbe BRAHMI VOWEL SIGN VOCALIC R
++<U0001103F> /xf0/x91/x80/xbf BRAHMI VOWEL SIGN VOCALIC RR
++<U00011040> /xf0/x91/x81/x80 BRAHMI VOWEL SIGN VOCALIC L
++<U00011041> /xf0/x91/x81/x81 BRAHMI VOWEL SIGN VOCALIC LL
++<U00011042> /xf0/x91/x81/x82 BRAHMI VOWEL SIGN E
++<U00011043> /xf0/x91/x81/x83 BRAHMI VOWEL SIGN AI
++<U00011044> /xf0/x91/x81/x84 BRAHMI VOWEL SIGN O
++<U00011045> /xf0/x91/x81/x85 BRAHMI VOWEL SIGN AU
++<U00011046> /xf0/x91/x81/x86 BRAHMI VIRAMA
++<U00011047> /xf0/x91/x81/x87 BRAHMI DANDA
++<U00011048> /xf0/x91/x81/x88 BRAHMI DOUBLE DANDA
++<U00011049> /xf0/x91/x81/x89 BRAHMI PUNCTUATION DOT
++<U0001104A> /xf0/x91/x81/x8a BRAHMI PUNCTUATION DOUBLE DOT
++<U0001104B> /xf0/x91/x81/x8b BRAHMI PUNCTUATION LINE
++<U0001104C> /xf0/x91/x81/x8c BRAHMI PUNCTUATION CRESCENT BAR
++<U0001104D> /xf0/x91/x81/x8d BRAHMI PUNCTUATION LOTUS
++<U00011052> /xf0/x91/x81/x92 BRAHMI NUMBER ONE
++<U00011053> /xf0/x91/x81/x93 BRAHMI NUMBER TWO
++<U00011054> /xf0/x91/x81/x94 BRAHMI NUMBER THREE
++<U00011055> /xf0/x91/x81/x95 BRAHMI NUMBER FOUR
++<U00011056> /xf0/x91/x81/x96 BRAHMI NUMBER FIVE
++<U00011057> /xf0/x91/x81/x97 BRAHMI NUMBER SIX
++<U00011058> /xf0/x91/x81/x98 BRAHMI NUMBER SEVEN
++<U00011059> /xf0/x91/x81/x99 BRAHMI NUMBER EIGHT
++<U0001105A> /xf0/x91/x81/x9a BRAHMI NUMBER NINE
++<U0001105B> /xf0/x91/x81/x9b BRAHMI NUMBER TEN
++<U0001105C> /xf0/x91/x81/x9c BRAHMI NUMBER TWENTY
++<U0001105D> /xf0/x91/x81/x9d BRAHMI NUMBER THIRTY
++<U0001105E> /xf0/x91/x81/x9e BRAHMI NUMBER FORTY
++<U0001105F> /xf0/x91/x81/x9f BRAHMI NUMBER FIFTY
++<U00011060> /xf0/x91/x81/xa0 BRAHMI NUMBER SIXTY
++<U00011061> /xf0/x91/x81/xa1 BRAHMI NUMBER SEVENTY
++<U00011062> /xf0/x91/x81/xa2 BRAHMI NUMBER EIGHTY
++<U00011063> /xf0/x91/x81/xa3 BRAHMI NUMBER NINETY
++<U00011064> /xf0/x91/x81/xa4 BRAHMI NUMBER ONE HUNDRED
++<U00011065> /xf0/x91/x81/xa5 BRAHMI NUMBER ONE THOUSAND
++<U00011066> /xf0/x91/x81/xa6 BRAHMI DIGIT ZERO
++<U00011067> /xf0/x91/x81/xa7 BRAHMI DIGIT ONE
++<U00011068> /xf0/x91/x81/xa8 BRAHMI DIGIT TWO
++<U00011069> /xf0/x91/x81/xa9 BRAHMI DIGIT THREE
++<U0001106A> /xf0/x91/x81/xaa BRAHMI DIGIT FOUR
++<U0001106B> /xf0/x91/x81/xab BRAHMI DIGIT FIVE
++<U0001106C> /xf0/x91/x81/xac BRAHMI DIGIT SIX
++<U0001106D> /xf0/x91/x81/xad BRAHMI DIGIT SEVEN
++<U0001106E> /xf0/x91/x81/xae BRAHMI DIGIT EIGHT
++<U0001106F> /xf0/x91/x81/xaf BRAHMI DIGIT NINE
++<U00011080> /xf0/x91/x82/x80 KAITHI SIGN CANDRABINDU
++<U00011081> /xf0/x91/x82/x81 KAITHI SIGN ANUSVARA
++<U00011082> /xf0/x91/x82/x82 KAITHI SIGN VISARGA
++<U00011083> /xf0/x91/x82/x83 KAITHI LETTER A
++<U00011084> /xf0/x91/x82/x84 KAITHI LETTER AA
++<U00011085> /xf0/x91/x82/x85 KAITHI LETTER I
++<U00011086> /xf0/x91/x82/x86 KAITHI LETTER II
++<U00011087> /xf0/x91/x82/x87 KAITHI LETTER U
++<U00011088> /xf0/x91/x82/x88 KAITHI LETTER UU
++<U00011089> /xf0/x91/x82/x89 KAITHI LETTER E
++<U0001108A> /xf0/x91/x82/x8a KAITHI LETTER AI
++<U0001108B> /xf0/x91/x82/x8b KAITHI LETTER O
++<U0001108C> /xf0/x91/x82/x8c KAITHI LETTER AU
++<U0001108D> /xf0/x91/x82/x8d KAITHI LETTER KA
++<U0001108E> /xf0/x91/x82/x8e KAITHI LETTER KHA
++<U0001108F> /xf0/x91/x82/x8f KAITHI LETTER GA
++<U00011090> /xf0/x91/x82/x90 KAITHI LETTER GHA
++<U00011091> /xf0/x91/x82/x91 KAITHI LETTER NGA
++<U00011092> /xf0/x91/x82/x92 KAITHI LETTER CA
++<U00011093> /xf0/x91/x82/x93 KAITHI LETTER CHA
++<U00011094> /xf0/x91/x82/x94 KAITHI LETTER JA
++<U00011095> /xf0/x91/x82/x95 KAITHI LETTER JHA
++<U00011096> /xf0/x91/x82/x96 KAITHI LETTER NYA
++<U00011097> /xf0/x91/x82/x97 KAITHI LETTER TTA
++<U00011098> /xf0/x91/x82/x98 KAITHI LETTER TTHA
++<U00011099> /xf0/x91/x82/x99 KAITHI LETTER DDA
++<U0001109A> /xf0/x91/x82/x9a KAITHI LETTER DDDHA
++<U0001109B> /xf0/x91/x82/x9b KAITHI LETTER DDHA
++<U0001109C> /xf0/x91/x82/x9c KAITHI LETTER RHA
++<U0001109D> /xf0/x91/x82/x9d KAITHI LETTER NNA
++<U0001109E> /xf0/x91/x82/x9e KAITHI LETTER TA
++<U0001109F> /xf0/x91/x82/x9f KAITHI LETTER THA
++<U000110A0> /xf0/x91/x82/xa0 KAITHI LETTER DA
++<U000110A1> /xf0/x91/x82/xa1 KAITHI LETTER DHA
++<U000110A2> /xf0/x91/x82/xa2 KAITHI LETTER NA
++<U000110A3> /xf0/x91/x82/xa3 KAITHI LETTER PA
++<U000110A4> /xf0/x91/x82/xa4 KAITHI LETTER PHA
++<U000110A5> /xf0/x91/x82/xa5 KAITHI LETTER BA
++<U000110A6> /xf0/x91/x82/xa6 KAITHI LETTER BHA
++<U000110A7> /xf0/x91/x82/xa7 KAITHI LETTER MA
++<U000110A8> /xf0/x91/x82/xa8 KAITHI LETTER YA
++<U000110A9> /xf0/x91/x82/xa9 KAITHI LETTER RA
++<U000110AA> /xf0/x91/x82/xaa KAITHI LETTER LA
++<U000110AB> /xf0/x91/x82/xab KAITHI LETTER VA
++<U000110AC> /xf0/x91/x82/xac KAITHI LETTER SHA
++<U000110AD> /xf0/x91/x82/xad KAITHI LETTER SSA
++<U000110AE> /xf0/x91/x82/xae KAITHI LETTER SA
++<U000110AF> /xf0/x91/x82/xaf KAITHI LETTER HA
++<U000110B0> /xf0/x91/x82/xb0 KAITHI VOWEL SIGN AA
++<U000110B1> /xf0/x91/x82/xb1 KAITHI VOWEL SIGN I
++<U000110B2> /xf0/x91/x82/xb2 KAITHI VOWEL SIGN II
++<U000110B3> /xf0/x91/x82/xb3 KAITHI VOWEL SIGN U
++<U000110B4> /xf0/x91/x82/xb4 KAITHI VOWEL SIGN UU
++<U000110B5> /xf0/x91/x82/xb5 KAITHI VOWEL SIGN E
++<U000110B6> /xf0/x91/x82/xb6 KAITHI VOWEL SIGN AI
++<U000110B7> /xf0/x91/x82/xb7 KAITHI VOWEL SIGN O
++<U000110B8> /xf0/x91/x82/xb8 KAITHI VOWEL SIGN AU
++<U000110B9> /xf0/x91/x82/xb9 KAITHI SIGN VIRAMA
++<U000110BA> /xf0/x91/x82/xba KAITHI SIGN NUKTA
++<U000110BB> /xf0/x91/x82/xbb KAITHI ABBREVIATION SIGN
++<U000110BC> /xf0/x91/x82/xbc KAITHI ENUMERATION SIGN
++<U000110BD> /xf0/x91/x82/xbd KAITHI NUMBER SIGN
++<U000110BE> /xf0/x91/x82/xbe KAITHI SECTION MARK
++<U000110BF> /xf0/x91/x82/xbf KAITHI DOUBLE SECTION MARK
++<U000110C0> /xf0/x91/x83/x80 KAITHI DANDA
++<U000110C1> /xf0/x91/x83/x81 KAITHI DOUBLE DANDA
+ <U00012000> /xf0/x92/x80/x80 CUNEIFORM SIGN A
+ <U00012001> /xf0/x92/x80/x81 CUNEIFORM SIGN A TIMES A
+ <U00012002> /xf0/x92/x80/x82 CUNEIFORM SIGN A TIMES BAD
+@@ -28370,6 +30022,1648 @@ CHARMAP
+ <U00012471> /xf0/x92/x91/xb1 CUNEIFORM PUNCTUATION SIGN VERTICAL COLON
+ <U00012472> /xf0/x92/x91/xb2 CUNEIFORM PUNCTUATION SIGN DIAGONAL COLON
+ <U00012473> /xf0/x92/x91/xb3 CUNEIFORM PUNCTUATION SIGN DIAGONAL TRICOLON
++<U00013000> /xf0/x93/x80/x80 EGYPTIAN HIEROGLYPH A001
++<U00013001> /xf0/x93/x80/x81 EGYPTIAN HIEROGLYPH A002
++<U00013002> /xf0/x93/x80/x82 EGYPTIAN HIEROGLYPH A003
++<U00013003> /xf0/x93/x80/x83 EGYPTIAN HIEROGLYPH A004
++<U00013004> /xf0/x93/x80/x84 EGYPTIAN HIEROGLYPH A005
++<U00013005> /xf0/x93/x80/x85 EGYPTIAN HIEROGLYPH A005A
++<U00013006> /xf0/x93/x80/x86 EGYPTIAN HIEROGLYPH A006
++<U00013007> /xf0/x93/x80/x87 EGYPTIAN HIEROGLYPH A006A
++<U00013008> /xf0/x93/x80/x88 EGYPTIAN HIEROGLYPH A006B
++<U00013009> /xf0/x93/x80/x89 EGYPTIAN HIEROGLYPH A007
++<U0001300A> /xf0/x93/x80/x8a EGYPTIAN HIEROGLYPH A008
++<U0001300B> /xf0/x93/x80/x8b EGYPTIAN HIEROGLYPH A009
++<U0001300C> /xf0/x93/x80/x8c EGYPTIAN HIEROGLYPH A010
++<U0001300D> /xf0/x93/x80/x8d EGYPTIAN HIEROGLYPH A011
++<U0001300E> /xf0/x93/x80/x8e EGYPTIAN HIEROGLYPH A012
++<U0001300F> /xf0/x93/x80/x8f EGYPTIAN HIEROGLYPH A013
++<U00013010> /xf0/x93/x80/x90 EGYPTIAN HIEROGLYPH A014
++<U00013011> /xf0/x93/x80/x91 EGYPTIAN HIEROGLYPH A014A
++<U00013012> /xf0/x93/x80/x92 EGYPTIAN HIEROGLYPH A015
++<U00013013> /xf0/x93/x80/x93 EGYPTIAN HIEROGLYPH A016
++<U00013014> /xf0/x93/x80/x94 EGYPTIAN HIEROGLYPH A017
++<U00013015> /xf0/x93/x80/x95 EGYPTIAN HIEROGLYPH A017A
++<U00013016> /xf0/x93/x80/x96 EGYPTIAN HIEROGLYPH A018
++<U00013017> /xf0/x93/x80/x97 EGYPTIAN HIEROGLYPH A019
++<U00013018> /xf0/x93/x80/x98 EGYPTIAN HIEROGLYPH A020
++<U00013019> /xf0/x93/x80/x99 EGYPTIAN HIEROGLYPH A021
++<U0001301A> /xf0/x93/x80/x9a EGYPTIAN HIEROGLYPH A022
++<U0001301B> /xf0/x93/x80/x9b EGYPTIAN HIEROGLYPH A023
++<U0001301C> /xf0/x93/x80/x9c EGYPTIAN HIEROGLYPH A024
++<U0001301D> /xf0/x93/x80/x9d EGYPTIAN HIEROGLYPH A025
++<U0001301E> /xf0/x93/x80/x9e EGYPTIAN HIEROGLYPH A026
++<U0001301F> /xf0/x93/x80/x9f EGYPTIAN HIEROGLYPH A027
++<U00013020> /xf0/x93/x80/xa0 EGYPTIAN HIEROGLYPH A028
++<U00013021> /xf0/x93/x80/xa1 EGYPTIAN HIEROGLYPH A029
++<U00013022> /xf0/x93/x80/xa2 EGYPTIAN HIEROGLYPH A030
++<U00013023> /xf0/x93/x80/xa3 EGYPTIAN HIEROGLYPH A031
++<U00013024> /xf0/x93/x80/xa4 EGYPTIAN HIEROGLYPH A032
++<U00013025> /xf0/x93/x80/xa5 EGYPTIAN HIEROGLYPH A032A
++<U00013026> /xf0/x93/x80/xa6 EGYPTIAN HIEROGLYPH A033
++<U00013027> /xf0/x93/x80/xa7 EGYPTIAN HIEROGLYPH A034
++<U00013028> /xf0/x93/x80/xa8 EGYPTIAN HIEROGLYPH A035
++<U00013029> /xf0/x93/x80/xa9 EGYPTIAN HIEROGLYPH A036
++<U0001302A> /xf0/x93/x80/xaa EGYPTIAN HIEROGLYPH A037
++<U0001302B> /xf0/x93/x80/xab EGYPTIAN HIEROGLYPH A038
++<U0001302C> /xf0/x93/x80/xac EGYPTIAN HIEROGLYPH A039
++<U0001302D> /xf0/x93/x80/xad EGYPTIAN HIEROGLYPH A040
++<U0001302E> /xf0/x93/x80/xae EGYPTIAN HIEROGLYPH A040A
++<U0001302F> /xf0/x93/x80/xaf EGYPTIAN HIEROGLYPH A041
++<U00013030> /xf0/x93/x80/xb0 EGYPTIAN HIEROGLYPH A042
++<U00013031> /xf0/x93/x80/xb1 EGYPTIAN HIEROGLYPH A042A
++<U00013032> /xf0/x93/x80/xb2 EGYPTIAN HIEROGLYPH A043
++<U00013033> /xf0/x93/x80/xb3 EGYPTIAN HIEROGLYPH A043A
++<U00013034> /xf0/x93/x80/xb4 EGYPTIAN HIEROGLYPH A044
++<U00013035> /xf0/x93/x80/xb5 EGYPTIAN HIEROGLYPH A045
++<U00013036> /xf0/x93/x80/xb6 EGYPTIAN HIEROGLYPH A045A
++<U00013037> /xf0/x93/x80/xb7 EGYPTIAN HIEROGLYPH A046
++<U00013038> /xf0/x93/x80/xb8 EGYPTIAN HIEROGLYPH A047
++<U00013039> /xf0/x93/x80/xb9 EGYPTIAN HIEROGLYPH A048
++<U0001303A> /xf0/x93/x80/xba EGYPTIAN HIEROGLYPH A049
++<U0001303B> /xf0/x93/x80/xbb EGYPTIAN HIEROGLYPH A050
++<U0001303C> /xf0/x93/x80/xbc EGYPTIAN HIEROGLYPH A051
++<U0001303D> /xf0/x93/x80/xbd EGYPTIAN HIEROGLYPH A052
++<U0001303E> /xf0/x93/x80/xbe EGYPTIAN HIEROGLYPH A053
++<U0001303F> /xf0/x93/x80/xbf EGYPTIAN HIEROGLYPH A054
++<U00013040> /xf0/x93/x81/x80 EGYPTIAN HIEROGLYPH A055
++<U00013041> /xf0/x93/x81/x81 EGYPTIAN HIEROGLYPH A056
++<U00013042> /xf0/x93/x81/x82 EGYPTIAN HIEROGLYPH A057
++<U00013043> /xf0/x93/x81/x83 EGYPTIAN HIEROGLYPH A058
++<U00013044> /xf0/x93/x81/x84 EGYPTIAN HIEROGLYPH A059
++<U00013045> /xf0/x93/x81/x85 EGYPTIAN HIEROGLYPH A060
++<U00013046> /xf0/x93/x81/x86 EGYPTIAN HIEROGLYPH A061
++<U00013047> /xf0/x93/x81/x87 EGYPTIAN HIEROGLYPH A062
++<U00013048> /xf0/x93/x81/x88 EGYPTIAN HIEROGLYPH A063
++<U00013049> /xf0/x93/x81/x89 EGYPTIAN HIEROGLYPH A064
++<U0001304A> /xf0/x93/x81/x8a EGYPTIAN HIEROGLYPH A065
++<U0001304B> /xf0/x93/x81/x8b EGYPTIAN HIEROGLYPH A066
++<U0001304C> /xf0/x93/x81/x8c EGYPTIAN HIEROGLYPH A067
++<U0001304D> /xf0/x93/x81/x8d EGYPTIAN HIEROGLYPH A068
++<U0001304E> /xf0/x93/x81/x8e EGYPTIAN HIEROGLYPH A069
++<U0001304F> /xf0/x93/x81/x8f EGYPTIAN HIEROGLYPH A070
++<U00013050> /xf0/x93/x81/x90 EGYPTIAN HIEROGLYPH B001
++<U00013051> /xf0/x93/x81/x91 EGYPTIAN HIEROGLYPH B002
++<U00013052> /xf0/x93/x81/x92 EGYPTIAN HIEROGLYPH B003
++<U00013053> /xf0/x93/x81/x93 EGYPTIAN HIEROGLYPH B004
++<U00013054> /xf0/x93/x81/x94 EGYPTIAN HIEROGLYPH B005
++<U00013055> /xf0/x93/x81/x95 EGYPTIAN HIEROGLYPH B005A
++<U00013056> /xf0/x93/x81/x96 EGYPTIAN HIEROGLYPH B006
++<U00013057> /xf0/x93/x81/x97 EGYPTIAN HIEROGLYPH B007
++<U00013058> /xf0/x93/x81/x98 EGYPTIAN HIEROGLYPH B008
++<U00013059> /xf0/x93/x81/x99 EGYPTIAN HIEROGLYPH B009
++<U0001305A> /xf0/x93/x81/x9a EGYPTIAN HIEROGLYPH C001
++<U0001305B> /xf0/x93/x81/x9b EGYPTIAN HIEROGLYPH C002
++<U0001305C> /xf0/x93/x81/x9c EGYPTIAN HIEROGLYPH C002A
++<U0001305D> /xf0/x93/x81/x9d EGYPTIAN HIEROGLYPH C002B
++<U0001305E> /xf0/x93/x81/x9e EGYPTIAN HIEROGLYPH C002C
++<U0001305F> /xf0/x93/x81/x9f EGYPTIAN HIEROGLYPH C003
++<U00013060> /xf0/x93/x81/xa0 EGYPTIAN HIEROGLYPH C004
++<U00013061> /xf0/x93/x81/xa1 EGYPTIAN HIEROGLYPH C005
++<U00013062> /xf0/x93/x81/xa2 EGYPTIAN HIEROGLYPH C006
++<U00013063> /xf0/x93/x81/xa3 EGYPTIAN HIEROGLYPH C007
++<U00013064> /xf0/x93/x81/xa4 EGYPTIAN HIEROGLYPH C008
++<U00013065> /xf0/x93/x81/xa5 EGYPTIAN HIEROGLYPH C009
++<U00013066> /xf0/x93/x81/xa6 EGYPTIAN HIEROGLYPH C010
++<U00013067> /xf0/x93/x81/xa7 EGYPTIAN HIEROGLYPH C010A
++<U00013068> /xf0/x93/x81/xa8 EGYPTIAN HIEROGLYPH C011
++<U00013069> /xf0/x93/x81/xa9 EGYPTIAN HIEROGLYPH C012
++<U0001306A> /xf0/x93/x81/xaa EGYPTIAN HIEROGLYPH C013
++<U0001306B> /xf0/x93/x81/xab EGYPTIAN HIEROGLYPH C014
++<U0001306C> /xf0/x93/x81/xac EGYPTIAN HIEROGLYPH C015
++<U0001306D> /xf0/x93/x81/xad EGYPTIAN HIEROGLYPH C016
++<U0001306E> /xf0/x93/x81/xae EGYPTIAN HIEROGLYPH C017
++<U0001306F> /xf0/x93/x81/xaf EGYPTIAN HIEROGLYPH C018
++<U00013070> /xf0/x93/x81/xb0 EGYPTIAN HIEROGLYPH C019
++<U00013071> /xf0/x93/x81/xb1 EGYPTIAN HIEROGLYPH C020
++<U00013072> /xf0/x93/x81/xb2 EGYPTIAN HIEROGLYPH C021
++<U00013073> /xf0/x93/x81/xb3 EGYPTIAN HIEROGLYPH C022
++<U00013074> /xf0/x93/x81/xb4 EGYPTIAN HIEROGLYPH C023
++<U00013075> /xf0/x93/x81/xb5 EGYPTIAN HIEROGLYPH C024
++<U00013076> /xf0/x93/x81/xb6 EGYPTIAN HIEROGLYPH D001
++<U00013077> /xf0/x93/x81/xb7 EGYPTIAN HIEROGLYPH D002
++<U00013078> /xf0/x93/x81/xb8 EGYPTIAN HIEROGLYPH D003
++<U00013079> /xf0/x93/x81/xb9 EGYPTIAN HIEROGLYPH D004
++<U0001307A> /xf0/x93/x81/xba EGYPTIAN HIEROGLYPH D005
++<U0001307B> /xf0/x93/x81/xbb EGYPTIAN HIEROGLYPH D006
++<U0001307C> /xf0/x93/x81/xbc EGYPTIAN HIEROGLYPH D007
++<U0001307D> /xf0/x93/x81/xbd EGYPTIAN HIEROGLYPH D008
++<U0001307E> /xf0/x93/x81/xbe EGYPTIAN HIEROGLYPH D008A
++<U0001307F> /xf0/x93/x81/xbf EGYPTIAN HIEROGLYPH D009
++<U00013080> /xf0/x93/x82/x80 EGYPTIAN HIEROGLYPH D010
++<U00013081> /xf0/x93/x82/x81 EGYPTIAN HIEROGLYPH D011
++<U00013082> /xf0/x93/x82/x82 EGYPTIAN HIEROGLYPH D012
++<U00013083> /xf0/x93/x82/x83 EGYPTIAN HIEROGLYPH D013
++<U00013084> /xf0/x93/x82/x84 EGYPTIAN HIEROGLYPH D014
++<U00013085> /xf0/x93/x82/x85 EGYPTIAN HIEROGLYPH D015
++<U00013086> /xf0/x93/x82/x86 EGYPTIAN HIEROGLYPH D016
++<U00013087> /xf0/x93/x82/x87 EGYPTIAN HIEROGLYPH D017
++<U00013088> /xf0/x93/x82/x88 EGYPTIAN HIEROGLYPH D018
++<U00013089> /xf0/x93/x82/x89 EGYPTIAN HIEROGLYPH D019
++<U0001308A> /xf0/x93/x82/x8a EGYPTIAN HIEROGLYPH D020
++<U0001308B> /xf0/x93/x82/x8b EGYPTIAN HIEROGLYPH D021
++<U0001308C> /xf0/x93/x82/x8c EGYPTIAN HIEROGLYPH D022
++<U0001308D> /xf0/x93/x82/x8d EGYPTIAN HIEROGLYPH D023
++<U0001308E> /xf0/x93/x82/x8e EGYPTIAN HIEROGLYPH D024
++<U0001308F> /xf0/x93/x82/x8f EGYPTIAN HIEROGLYPH D025
++<U00013090> /xf0/x93/x82/x90 EGYPTIAN HIEROGLYPH D026
++<U00013091> /xf0/x93/x82/x91 EGYPTIAN HIEROGLYPH D027
++<U00013092> /xf0/x93/x82/x92 EGYPTIAN HIEROGLYPH D027A
++<U00013093> /xf0/x93/x82/x93 EGYPTIAN HIEROGLYPH D028
++<U00013094> /xf0/x93/x82/x94 EGYPTIAN HIEROGLYPH D029
++<U00013095> /xf0/x93/x82/x95 EGYPTIAN HIEROGLYPH D030
++<U00013096> /xf0/x93/x82/x96 EGYPTIAN HIEROGLYPH D031
++<U00013097> /xf0/x93/x82/x97 EGYPTIAN HIEROGLYPH D031A
++<U00013098> /xf0/x93/x82/x98 EGYPTIAN HIEROGLYPH D032
++<U00013099> /xf0/x93/x82/x99 EGYPTIAN HIEROGLYPH D033
++<U0001309A> /xf0/x93/x82/x9a EGYPTIAN HIEROGLYPH D034
++<U0001309B> /xf0/x93/x82/x9b EGYPTIAN HIEROGLYPH D034A
++<U0001309C> /xf0/x93/x82/x9c EGYPTIAN HIEROGLYPH D035
++<U0001309D> /xf0/x93/x82/x9d EGYPTIAN HIEROGLYPH D036
++<U0001309E> /xf0/x93/x82/x9e EGYPTIAN HIEROGLYPH D037
++<U0001309F> /xf0/x93/x82/x9f EGYPTIAN HIEROGLYPH D038
++<U000130A0> /xf0/x93/x82/xa0 EGYPTIAN HIEROGLYPH D039
++<U000130A1> /xf0/x93/x82/xa1 EGYPTIAN HIEROGLYPH D040
++<U000130A2> /xf0/x93/x82/xa2 EGYPTIAN HIEROGLYPH D041
++<U000130A3> /xf0/x93/x82/xa3 EGYPTIAN HIEROGLYPH D042
++<U000130A4> /xf0/x93/x82/xa4 EGYPTIAN HIEROGLYPH D043
++<U000130A5> /xf0/x93/x82/xa5 EGYPTIAN HIEROGLYPH D044
++<U000130A6> /xf0/x93/x82/xa6 EGYPTIAN HIEROGLYPH D045
++<U000130A7> /xf0/x93/x82/xa7 EGYPTIAN HIEROGLYPH D046
++<U000130A8> /xf0/x93/x82/xa8 EGYPTIAN HIEROGLYPH D046A
++<U000130A9> /xf0/x93/x82/xa9 EGYPTIAN HIEROGLYPH D047
++<U000130AA> /xf0/x93/x82/xaa EGYPTIAN HIEROGLYPH D048
++<U000130AB> /xf0/x93/x82/xab EGYPTIAN HIEROGLYPH D048A
++<U000130AC> /xf0/x93/x82/xac EGYPTIAN HIEROGLYPH D049
++<U000130AD> /xf0/x93/x82/xad EGYPTIAN HIEROGLYPH D050
++<U000130AE> /xf0/x93/x82/xae EGYPTIAN HIEROGLYPH D050A
++<U000130AF> /xf0/x93/x82/xaf EGYPTIAN HIEROGLYPH D050B
++<U000130B0> /xf0/x93/x82/xb0 EGYPTIAN HIEROGLYPH D050C
++<U000130B1> /xf0/x93/x82/xb1 EGYPTIAN HIEROGLYPH D050D
++<U000130B2> /xf0/x93/x82/xb2 EGYPTIAN HIEROGLYPH D050E
++<U000130B3> /xf0/x93/x82/xb3 EGYPTIAN HIEROGLYPH D050F
++<U000130B4> /xf0/x93/x82/xb4 EGYPTIAN HIEROGLYPH D050G
++<U000130B5> /xf0/x93/x82/xb5 EGYPTIAN HIEROGLYPH D050H
++<U000130B6> /xf0/x93/x82/xb6 EGYPTIAN HIEROGLYPH D050I
++<U000130B7> /xf0/x93/x82/xb7 EGYPTIAN HIEROGLYPH D051
++<U000130B8> /xf0/x93/x82/xb8 EGYPTIAN HIEROGLYPH D052
++<U000130B9> /xf0/x93/x82/xb9 EGYPTIAN HIEROGLYPH D052A
++<U000130BA> /xf0/x93/x82/xba EGYPTIAN HIEROGLYPH D053
++<U000130BB> /xf0/x93/x82/xbb EGYPTIAN HIEROGLYPH D054
++<U000130BC> /xf0/x93/x82/xbc EGYPTIAN HIEROGLYPH D054A
++<U000130BD> /xf0/x93/x82/xbd EGYPTIAN HIEROGLYPH D055
++<U000130BE> /xf0/x93/x82/xbe EGYPTIAN HIEROGLYPH D056
++<U000130BF> /xf0/x93/x82/xbf EGYPTIAN HIEROGLYPH D057
++<U000130C0> /xf0/x93/x83/x80 EGYPTIAN HIEROGLYPH D058
++<U000130C1> /xf0/x93/x83/x81 EGYPTIAN HIEROGLYPH D059
++<U000130C2> /xf0/x93/x83/x82 EGYPTIAN HIEROGLYPH D060
++<U000130C3> /xf0/x93/x83/x83 EGYPTIAN HIEROGLYPH D061
++<U000130C4> /xf0/x93/x83/x84 EGYPTIAN HIEROGLYPH D062
++<U000130C5> /xf0/x93/x83/x85 EGYPTIAN HIEROGLYPH D063
++<U000130C6> /xf0/x93/x83/x86 EGYPTIAN HIEROGLYPH D064
++<U000130C7> /xf0/x93/x83/x87 EGYPTIAN HIEROGLYPH D065
++<U000130C8> /xf0/x93/x83/x88 EGYPTIAN HIEROGLYPH D066
++<U000130C9> /xf0/x93/x83/x89 EGYPTIAN HIEROGLYPH D067
++<U000130CA> /xf0/x93/x83/x8a EGYPTIAN HIEROGLYPH D067A
++<U000130CB> /xf0/x93/x83/x8b EGYPTIAN HIEROGLYPH D067B
++<U000130CC> /xf0/x93/x83/x8c EGYPTIAN HIEROGLYPH D067C
++<U000130CD> /xf0/x93/x83/x8d EGYPTIAN HIEROGLYPH D067D
++<U000130CE> /xf0/x93/x83/x8e EGYPTIAN HIEROGLYPH D067E
++<U000130CF> /xf0/x93/x83/x8f EGYPTIAN HIEROGLYPH D067F
++<U000130D0> /xf0/x93/x83/x90 EGYPTIAN HIEROGLYPH D067G
++<U000130D1> /xf0/x93/x83/x91 EGYPTIAN HIEROGLYPH D067H
++<U000130D2> /xf0/x93/x83/x92 EGYPTIAN HIEROGLYPH E001
++<U000130D3> /xf0/x93/x83/x93 EGYPTIAN HIEROGLYPH E002
++<U000130D4> /xf0/x93/x83/x94 EGYPTIAN HIEROGLYPH E003
++<U000130D5> /xf0/x93/x83/x95 EGYPTIAN HIEROGLYPH E004
++<U000130D6> /xf0/x93/x83/x96 EGYPTIAN HIEROGLYPH E005
++<U000130D7> /xf0/x93/x83/x97 EGYPTIAN HIEROGLYPH E006
++<U000130D8> /xf0/x93/x83/x98 EGYPTIAN HIEROGLYPH E007
++<U000130D9> /xf0/x93/x83/x99 EGYPTIAN HIEROGLYPH E008
++<U000130DA> /xf0/x93/x83/x9a EGYPTIAN HIEROGLYPH E008A
++<U000130DB> /xf0/x93/x83/x9b EGYPTIAN HIEROGLYPH E009
++<U000130DC> /xf0/x93/x83/x9c EGYPTIAN HIEROGLYPH E009A
++<U000130DD> /xf0/x93/x83/x9d EGYPTIAN HIEROGLYPH E010
++<U000130DE> /xf0/x93/x83/x9e EGYPTIAN HIEROGLYPH E011
++<U000130DF> /xf0/x93/x83/x9f EGYPTIAN HIEROGLYPH E012
++<U000130E0> /xf0/x93/x83/xa0 EGYPTIAN HIEROGLYPH E013
++<U000130E1> /xf0/x93/x83/xa1 EGYPTIAN HIEROGLYPH E014
++<U000130E2> /xf0/x93/x83/xa2 EGYPTIAN HIEROGLYPH E015
++<U000130E3> /xf0/x93/x83/xa3 EGYPTIAN HIEROGLYPH E016
++<U000130E4> /xf0/x93/x83/xa4 EGYPTIAN HIEROGLYPH E016A
++<U000130E5> /xf0/x93/x83/xa5 EGYPTIAN HIEROGLYPH E017
++<U000130E6> /xf0/x93/x83/xa6 EGYPTIAN HIEROGLYPH E017A
++<U000130E7> /xf0/x93/x83/xa7 EGYPTIAN HIEROGLYPH E018
++<U000130E8> /xf0/x93/x83/xa8 EGYPTIAN HIEROGLYPH E019
++<U000130E9> /xf0/x93/x83/xa9 EGYPTIAN HIEROGLYPH E020
++<U000130EA> /xf0/x93/x83/xaa EGYPTIAN HIEROGLYPH E020A
++<U000130EB> /xf0/x93/x83/xab EGYPTIAN HIEROGLYPH E021
++<U000130EC> /xf0/x93/x83/xac EGYPTIAN HIEROGLYPH E022
++<U000130ED> /xf0/x93/x83/xad EGYPTIAN HIEROGLYPH E023
++<U000130EE> /xf0/x93/x83/xae EGYPTIAN HIEROGLYPH E024
++<U000130EF> /xf0/x93/x83/xaf EGYPTIAN HIEROGLYPH E025
++<U000130F0> /xf0/x93/x83/xb0 EGYPTIAN HIEROGLYPH E026
++<U000130F1> /xf0/x93/x83/xb1 EGYPTIAN HIEROGLYPH E027
++<U000130F2> /xf0/x93/x83/xb2 EGYPTIAN HIEROGLYPH E028
++<U000130F3> /xf0/x93/x83/xb3 EGYPTIAN HIEROGLYPH E028A
++<U000130F4> /xf0/x93/x83/xb4 EGYPTIAN HIEROGLYPH E029
++<U000130F5> /xf0/x93/x83/xb5 EGYPTIAN HIEROGLYPH E030
++<U000130F6> /xf0/x93/x83/xb6 EGYPTIAN HIEROGLYPH E031
++<U000130F7> /xf0/x93/x83/xb7 EGYPTIAN HIEROGLYPH E032
++<U000130F8> /xf0/x93/x83/xb8 EGYPTIAN HIEROGLYPH E033
++<U000130F9> /xf0/x93/x83/xb9 EGYPTIAN HIEROGLYPH E034
++<U000130FA> /xf0/x93/x83/xba EGYPTIAN HIEROGLYPH E034A
++<U000130FB> /xf0/x93/x83/xbb EGYPTIAN HIEROGLYPH E036
++<U000130FC> /xf0/x93/x83/xbc EGYPTIAN HIEROGLYPH E037
++<U000130FD> /xf0/x93/x83/xbd EGYPTIAN HIEROGLYPH E038
++<U000130FE> /xf0/x93/x83/xbe EGYPTIAN HIEROGLYPH F001
++<U000130FF> /xf0/x93/x83/xbf EGYPTIAN HIEROGLYPH F001A
++<U00013100> /xf0/x93/x84/x80 EGYPTIAN HIEROGLYPH F002
++<U00013101> /xf0/x93/x84/x81 EGYPTIAN HIEROGLYPH F003
++<U00013102> /xf0/x93/x84/x82 EGYPTIAN HIEROGLYPH F004
++<U00013103> /xf0/x93/x84/x83 EGYPTIAN HIEROGLYPH F005
++<U00013104> /xf0/x93/x84/x84 EGYPTIAN HIEROGLYPH F006
++<U00013105> /xf0/x93/x84/x85 EGYPTIAN HIEROGLYPH F007
++<U00013106> /xf0/x93/x84/x86 EGYPTIAN HIEROGLYPH F008
++<U00013107> /xf0/x93/x84/x87 EGYPTIAN HIEROGLYPH F009
++<U00013108> /xf0/x93/x84/x88 EGYPTIAN HIEROGLYPH F010
++<U00013109> /xf0/x93/x84/x89 EGYPTIAN HIEROGLYPH F011
++<U0001310A> /xf0/x93/x84/x8a EGYPTIAN HIEROGLYPH F012
++<U0001310B> /xf0/x93/x84/x8b EGYPTIAN HIEROGLYPH F013
++<U0001310C> /xf0/x93/x84/x8c EGYPTIAN HIEROGLYPH F013A
++<U0001310D> /xf0/x93/x84/x8d EGYPTIAN HIEROGLYPH F014
++<U0001310E> /xf0/x93/x84/x8e EGYPTIAN HIEROGLYPH F015
++<U0001310F> /xf0/x93/x84/x8f EGYPTIAN HIEROGLYPH F016
++<U00013110> /xf0/x93/x84/x90 EGYPTIAN HIEROGLYPH F017
++<U00013111> /xf0/x93/x84/x91 EGYPTIAN HIEROGLYPH F018
++<U00013112> /xf0/x93/x84/x92 EGYPTIAN HIEROGLYPH F019
++<U00013113> /xf0/x93/x84/x93 EGYPTIAN HIEROGLYPH F020
++<U00013114> /xf0/x93/x84/x94 EGYPTIAN HIEROGLYPH F021
++<U00013115> /xf0/x93/x84/x95 EGYPTIAN HIEROGLYPH F021A
++<U00013116> /xf0/x93/x84/x96 EGYPTIAN HIEROGLYPH F022
++<U00013117> /xf0/x93/x84/x97 EGYPTIAN HIEROGLYPH F023
++<U00013118> /xf0/x93/x84/x98 EGYPTIAN HIEROGLYPH F024
++<U00013119> /xf0/x93/x84/x99 EGYPTIAN HIEROGLYPH F025
++<U0001311A> /xf0/x93/x84/x9a EGYPTIAN HIEROGLYPH F026
++<U0001311B> /xf0/x93/x84/x9b EGYPTIAN HIEROGLYPH F027
++<U0001311C> /xf0/x93/x84/x9c EGYPTIAN HIEROGLYPH F028
++<U0001311D> /xf0/x93/x84/x9d EGYPTIAN HIEROGLYPH F029
++<U0001311E> /xf0/x93/x84/x9e EGYPTIAN HIEROGLYPH F030
++<U0001311F> /xf0/x93/x84/x9f EGYPTIAN HIEROGLYPH F031
++<U00013120> /xf0/x93/x84/xa0 EGYPTIAN HIEROGLYPH F031A
++<U00013121> /xf0/x93/x84/xa1 EGYPTIAN HIEROGLYPH F032
++<U00013122> /xf0/x93/x84/xa2 EGYPTIAN HIEROGLYPH F033
++<U00013123> /xf0/x93/x84/xa3 EGYPTIAN HIEROGLYPH F034
++<U00013124> /xf0/x93/x84/xa4 EGYPTIAN HIEROGLYPH F035
++<U00013125> /xf0/x93/x84/xa5 EGYPTIAN HIEROGLYPH F036
++<U00013126> /xf0/x93/x84/xa6 EGYPTIAN HIEROGLYPH F037
++<U00013127> /xf0/x93/x84/xa7 EGYPTIAN HIEROGLYPH F037A
++<U00013128> /xf0/x93/x84/xa8 EGYPTIAN HIEROGLYPH F038
++<U00013129> /xf0/x93/x84/xa9 EGYPTIAN HIEROGLYPH F038A
++<U0001312A> /xf0/x93/x84/xaa EGYPTIAN HIEROGLYPH F039
++<U0001312B> /xf0/x93/x84/xab EGYPTIAN HIEROGLYPH F040
++<U0001312C> /xf0/x93/x84/xac EGYPTIAN HIEROGLYPH F041
++<U0001312D> /xf0/x93/x84/xad EGYPTIAN HIEROGLYPH F042
++<U0001312E> /xf0/x93/x84/xae EGYPTIAN HIEROGLYPH F043
++<U0001312F> /xf0/x93/x84/xaf EGYPTIAN HIEROGLYPH F044
++<U00013130> /xf0/x93/x84/xb0 EGYPTIAN HIEROGLYPH F045
++<U00013131> /xf0/x93/x84/xb1 EGYPTIAN HIEROGLYPH F045A
++<U00013132> /xf0/x93/x84/xb2 EGYPTIAN HIEROGLYPH F046
++<U00013133> /xf0/x93/x84/xb3 EGYPTIAN HIEROGLYPH F046A
++<U00013134> /xf0/x93/x84/xb4 EGYPTIAN HIEROGLYPH F047
++<U00013135> /xf0/x93/x84/xb5 EGYPTIAN HIEROGLYPH F047A
++<U00013136> /xf0/x93/x84/xb6 EGYPTIAN HIEROGLYPH F048
++<U00013137> /xf0/x93/x84/xb7 EGYPTIAN HIEROGLYPH F049
++<U00013138> /xf0/x93/x84/xb8 EGYPTIAN HIEROGLYPH F050
++<U00013139> /xf0/x93/x84/xb9 EGYPTIAN HIEROGLYPH F051
++<U0001313A> /xf0/x93/x84/xba EGYPTIAN HIEROGLYPH F051A
++<U0001313B> /xf0/x93/x84/xbb EGYPTIAN HIEROGLYPH F051B
++<U0001313C> /xf0/x93/x84/xbc EGYPTIAN HIEROGLYPH F051C
++<U0001313D> /xf0/x93/x84/xbd EGYPTIAN HIEROGLYPH F052
++<U0001313E> /xf0/x93/x84/xbe EGYPTIAN HIEROGLYPH F053
++<U0001313F> /xf0/x93/x84/xbf EGYPTIAN HIEROGLYPH G001
++<U00013140> /xf0/x93/x85/x80 EGYPTIAN HIEROGLYPH G002
++<U00013141> /xf0/x93/x85/x81 EGYPTIAN HIEROGLYPH G003
++<U00013142> /xf0/x93/x85/x82 EGYPTIAN HIEROGLYPH G004
++<U00013143> /xf0/x93/x85/x83 EGYPTIAN HIEROGLYPH G005
++<U00013144> /xf0/x93/x85/x84 EGYPTIAN HIEROGLYPH G006
++<U00013145> /xf0/x93/x85/x85 EGYPTIAN HIEROGLYPH G006A
++<U00013146> /xf0/x93/x85/x86 EGYPTIAN HIEROGLYPH G007
++<U00013147> /xf0/x93/x85/x87 EGYPTIAN HIEROGLYPH G007A
++<U00013148> /xf0/x93/x85/x88 EGYPTIAN HIEROGLYPH G007B
++<U00013149> /xf0/x93/x85/x89 EGYPTIAN HIEROGLYPH G008
++<U0001314A> /xf0/x93/x85/x8a EGYPTIAN HIEROGLYPH G009
++<U0001314B> /xf0/x93/x85/x8b EGYPTIAN HIEROGLYPH G010
++<U0001314C> /xf0/x93/x85/x8c EGYPTIAN HIEROGLYPH G011
++<U0001314D> /xf0/x93/x85/x8d EGYPTIAN HIEROGLYPH G011A
++<U0001314E> /xf0/x93/x85/x8e EGYPTIAN HIEROGLYPH G012
++<U0001314F> /xf0/x93/x85/x8f EGYPTIAN HIEROGLYPH G013
++<U00013150> /xf0/x93/x85/x90 EGYPTIAN HIEROGLYPH G014
++<U00013151> /xf0/x93/x85/x91 EGYPTIAN HIEROGLYPH G015
++<U00013152> /xf0/x93/x85/x92 EGYPTIAN HIEROGLYPH G016
++<U00013153> /xf0/x93/x85/x93 EGYPTIAN HIEROGLYPH G017
++<U00013154> /xf0/x93/x85/x94 EGYPTIAN HIEROGLYPH G018
++<U00013155> /xf0/x93/x85/x95 EGYPTIAN HIEROGLYPH G019
++<U00013156> /xf0/x93/x85/x96 EGYPTIAN HIEROGLYPH G020
++<U00013157> /xf0/x93/x85/x97 EGYPTIAN HIEROGLYPH G020A
++<U00013158> /xf0/x93/x85/x98 EGYPTIAN HIEROGLYPH G021
++<U00013159> /xf0/x93/x85/x99 EGYPTIAN HIEROGLYPH G022
++<U0001315A> /xf0/x93/x85/x9a EGYPTIAN HIEROGLYPH G023
++<U0001315B> /xf0/x93/x85/x9b EGYPTIAN HIEROGLYPH G024
++<U0001315C> /xf0/x93/x85/x9c EGYPTIAN HIEROGLYPH G025
++<U0001315D> /xf0/x93/x85/x9d EGYPTIAN HIEROGLYPH G026
++<U0001315E> /xf0/x93/x85/x9e EGYPTIAN HIEROGLYPH G026A
++<U0001315F> /xf0/x93/x85/x9f EGYPTIAN HIEROGLYPH G027
++<U00013160> /xf0/x93/x85/xa0 EGYPTIAN HIEROGLYPH G028
++<U00013161> /xf0/x93/x85/xa1 EGYPTIAN HIEROGLYPH G029
++<U00013162> /xf0/x93/x85/xa2 EGYPTIAN HIEROGLYPH G030
++<U00013163> /xf0/x93/x85/xa3 EGYPTIAN HIEROGLYPH G031
++<U00013164> /xf0/x93/x85/xa4 EGYPTIAN HIEROGLYPH G032
++<U00013165> /xf0/x93/x85/xa5 EGYPTIAN HIEROGLYPH G033
++<U00013166> /xf0/x93/x85/xa6 EGYPTIAN HIEROGLYPH G034
++<U00013167> /xf0/x93/x85/xa7 EGYPTIAN HIEROGLYPH G035
++<U00013168> /xf0/x93/x85/xa8 EGYPTIAN HIEROGLYPH G036
++<U00013169> /xf0/x93/x85/xa9 EGYPTIAN HIEROGLYPH G036A
++<U0001316A> /xf0/x93/x85/xaa EGYPTIAN HIEROGLYPH G037
++<U0001316B> /xf0/x93/x85/xab EGYPTIAN HIEROGLYPH G037A
++<U0001316C> /xf0/x93/x85/xac EGYPTIAN HIEROGLYPH G038
++<U0001316D> /xf0/x93/x85/xad EGYPTIAN HIEROGLYPH G039
++<U0001316E> /xf0/x93/x85/xae EGYPTIAN HIEROGLYPH G040
++<U0001316F> /xf0/x93/x85/xaf EGYPTIAN HIEROGLYPH G041
++<U00013170> /xf0/x93/x85/xb0 EGYPTIAN HIEROGLYPH G042
++<U00013171> /xf0/x93/x85/xb1 EGYPTIAN HIEROGLYPH G043
++<U00013172> /xf0/x93/x85/xb2 EGYPTIAN HIEROGLYPH G043A
++<U00013173> /xf0/x93/x85/xb3 EGYPTIAN HIEROGLYPH G044
++<U00013174> /xf0/x93/x85/xb4 EGYPTIAN HIEROGLYPH G045
++<U00013175> /xf0/x93/x85/xb5 EGYPTIAN HIEROGLYPH G045A
++<U00013176> /xf0/x93/x85/xb6 EGYPTIAN HIEROGLYPH G046
++<U00013177> /xf0/x93/x85/xb7 EGYPTIAN HIEROGLYPH G047
++<U00013178> /xf0/x93/x85/xb8 EGYPTIAN HIEROGLYPH G048
++<U00013179> /xf0/x93/x85/xb9 EGYPTIAN HIEROGLYPH G049
++<U0001317A> /xf0/x93/x85/xba EGYPTIAN HIEROGLYPH G050
++<U0001317B> /xf0/x93/x85/xbb EGYPTIAN HIEROGLYPH G051
++<U0001317C> /xf0/x93/x85/xbc EGYPTIAN HIEROGLYPH G052
++<U0001317D> /xf0/x93/x85/xbd EGYPTIAN HIEROGLYPH G053
++<U0001317E> /xf0/x93/x85/xbe EGYPTIAN HIEROGLYPH G054
++<U0001317F> /xf0/x93/x85/xbf EGYPTIAN HIEROGLYPH H001
++<U00013180> /xf0/x93/x86/x80 EGYPTIAN HIEROGLYPH H002
++<U00013181> /xf0/x93/x86/x81 EGYPTIAN HIEROGLYPH H003
++<U00013182> /xf0/x93/x86/x82 EGYPTIAN HIEROGLYPH H004
++<U00013183> /xf0/x93/x86/x83 EGYPTIAN HIEROGLYPH H005
++<U00013184> /xf0/x93/x86/x84 EGYPTIAN HIEROGLYPH H006
++<U00013185> /xf0/x93/x86/x85 EGYPTIAN HIEROGLYPH H006A
++<U00013186> /xf0/x93/x86/x86 EGYPTIAN HIEROGLYPH H007
++<U00013187> /xf0/x93/x86/x87 EGYPTIAN HIEROGLYPH H008
++<U00013188> /xf0/x93/x86/x88 EGYPTIAN HIEROGLYPH I001
++<U00013189> /xf0/x93/x86/x89 EGYPTIAN HIEROGLYPH I002
++<U0001318A> /xf0/x93/x86/x8a EGYPTIAN HIEROGLYPH I003
++<U0001318B> /xf0/x93/x86/x8b EGYPTIAN HIEROGLYPH I004
++<U0001318C> /xf0/x93/x86/x8c EGYPTIAN HIEROGLYPH I005
++<U0001318D> /xf0/x93/x86/x8d EGYPTIAN HIEROGLYPH I005A
++<U0001318E> /xf0/x93/x86/x8e EGYPTIAN HIEROGLYPH I006
++<U0001318F> /xf0/x93/x86/x8f EGYPTIAN HIEROGLYPH I007
++<U00013190> /xf0/x93/x86/x90 EGYPTIAN HIEROGLYPH I008
++<U00013191> /xf0/x93/x86/x91 EGYPTIAN HIEROGLYPH I009
++<U00013192> /xf0/x93/x86/x92 EGYPTIAN HIEROGLYPH I009A
++<U00013193> /xf0/x93/x86/x93 EGYPTIAN HIEROGLYPH I010
++<U00013194> /xf0/x93/x86/x94 EGYPTIAN HIEROGLYPH I010A
++<U00013195> /xf0/x93/x86/x95 EGYPTIAN HIEROGLYPH I011
++<U00013196> /xf0/x93/x86/x96 EGYPTIAN HIEROGLYPH I011A
++<U00013197> /xf0/x93/x86/x97 EGYPTIAN HIEROGLYPH I012
++<U00013198> /xf0/x93/x86/x98 EGYPTIAN HIEROGLYPH I013
++<U00013199> /xf0/x93/x86/x99 EGYPTIAN HIEROGLYPH I014
++<U0001319A> /xf0/x93/x86/x9a EGYPTIAN HIEROGLYPH I015
++<U0001319B> /xf0/x93/x86/x9b EGYPTIAN HIEROGLYPH K001
++<U0001319C> /xf0/x93/x86/x9c EGYPTIAN HIEROGLYPH K002
++<U0001319D> /xf0/x93/x86/x9d EGYPTIAN HIEROGLYPH K003
++<U0001319E> /xf0/x93/x86/x9e EGYPTIAN HIEROGLYPH K004
++<U0001319F> /xf0/x93/x86/x9f EGYPTIAN HIEROGLYPH K005
++<U000131A0> /xf0/x93/x86/xa0 EGYPTIAN HIEROGLYPH K006
++<U000131A1> /xf0/x93/x86/xa1 EGYPTIAN HIEROGLYPH K007
++<U000131A2> /xf0/x93/x86/xa2 EGYPTIAN HIEROGLYPH K008
++<U000131A3> /xf0/x93/x86/xa3 EGYPTIAN HIEROGLYPH L001
++<U000131A4> /xf0/x93/x86/xa4 EGYPTIAN HIEROGLYPH L002
++<U000131A5> /xf0/x93/x86/xa5 EGYPTIAN HIEROGLYPH L002A
++<U000131A6> /xf0/x93/x86/xa6 EGYPTIAN HIEROGLYPH L003
++<U000131A7> /xf0/x93/x86/xa7 EGYPTIAN HIEROGLYPH L004
++<U000131A8> /xf0/x93/x86/xa8 EGYPTIAN HIEROGLYPH L005
++<U000131A9> /xf0/x93/x86/xa9 EGYPTIAN HIEROGLYPH L006
++<U000131AA> /xf0/x93/x86/xaa EGYPTIAN HIEROGLYPH L006A
++<U000131AB> /xf0/x93/x86/xab EGYPTIAN HIEROGLYPH L007
++<U000131AC> /xf0/x93/x86/xac EGYPTIAN HIEROGLYPH L008
++<U000131AD> /xf0/x93/x86/xad EGYPTIAN HIEROGLYPH M001
++<U000131AE> /xf0/x93/x86/xae EGYPTIAN HIEROGLYPH M001A
++<U000131AF> /xf0/x93/x86/xaf EGYPTIAN HIEROGLYPH M001B
++<U000131B0> /xf0/x93/x86/xb0 EGYPTIAN HIEROGLYPH M002
++<U000131B1> /xf0/x93/x86/xb1 EGYPTIAN HIEROGLYPH M003
++<U000131B2> /xf0/x93/x86/xb2 EGYPTIAN HIEROGLYPH M003A
++<U000131B3> /xf0/x93/x86/xb3 EGYPTIAN HIEROGLYPH M004
++<U000131B4> /xf0/x93/x86/xb4 EGYPTIAN HIEROGLYPH M005
++<U000131B5> /xf0/x93/x86/xb5 EGYPTIAN HIEROGLYPH M006
++<U000131B6> /xf0/x93/x86/xb6 EGYPTIAN HIEROGLYPH M007
++<U000131B7> /xf0/x93/x86/xb7 EGYPTIAN HIEROGLYPH M008
++<U000131B8> /xf0/x93/x86/xb8 EGYPTIAN HIEROGLYPH M009
++<U000131B9> /xf0/x93/x86/xb9 EGYPTIAN HIEROGLYPH M010
++<U000131BA> /xf0/x93/x86/xba EGYPTIAN HIEROGLYPH M010A
++<U000131BB> /xf0/x93/x86/xbb EGYPTIAN HIEROGLYPH M011
++<U000131BC> /xf0/x93/x86/xbc EGYPTIAN HIEROGLYPH M012
++<U000131BD> /xf0/x93/x86/xbd EGYPTIAN HIEROGLYPH M012A
++<U000131BE> /xf0/x93/x86/xbe EGYPTIAN HIEROGLYPH M012B
++<U000131BF> /xf0/x93/x86/xbf EGYPTIAN HIEROGLYPH M012C
++<U000131C0> /xf0/x93/x87/x80 EGYPTIAN HIEROGLYPH M012D
++<U000131C1> /xf0/x93/x87/x81 EGYPTIAN HIEROGLYPH M012E
++<U000131C2> /xf0/x93/x87/x82 EGYPTIAN HIEROGLYPH M012F
++<U000131C3> /xf0/x93/x87/x83 EGYPTIAN HIEROGLYPH M012G
++<U000131C4> /xf0/x93/x87/x84 EGYPTIAN HIEROGLYPH M012H
++<U000131C5> /xf0/x93/x87/x85 EGYPTIAN HIEROGLYPH M013
++<U000131C6> /xf0/x93/x87/x86 EGYPTIAN HIEROGLYPH M014
++<U000131C7> /xf0/x93/x87/x87 EGYPTIAN HIEROGLYPH M015
++<U000131C8> /xf0/x93/x87/x88 EGYPTIAN HIEROGLYPH M015A
++<U000131C9> /xf0/x93/x87/x89 EGYPTIAN HIEROGLYPH M016
++<U000131CA> /xf0/x93/x87/x8a EGYPTIAN HIEROGLYPH M016A
++<U000131CB> /xf0/x93/x87/x8b EGYPTIAN HIEROGLYPH M017
++<U000131CC> /xf0/x93/x87/x8c EGYPTIAN HIEROGLYPH M017A
++<U000131CD> /xf0/x93/x87/x8d EGYPTIAN HIEROGLYPH M018
++<U000131CE> /xf0/x93/x87/x8e EGYPTIAN HIEROGLYPH M019
++<U000131CF> /xf0/x93/x87/x8f EGYPTIAN HIEROGLYPH M020
++<U000131D0> /xf0/x93/x87/x90 EGYPTIAN HIEROGLYPH M021
++<U000131D1> /xf0/x93/x87/x91 EGYPTIAN HIEROGLYPH M022
++<U000131D2> /xf0/x93/x87/x92 EGYPTIAN HIEROGLYPH M022A
++<U000131D3> /xf0/x93/x87/x93 EGYPTIAN HIEROGLYPH M023
++<U000131D4> /xf0/x93/x87/x94 EGYPTIAN HIEROGLYPH M024
++<U000131D5> /xf0/x93/x87/x95 EGYPTIAN HIEROGLYPH M024A
++<U000131D6> /xf0/x93/x87/x96 EGYPTIAN HIEROGLYPH M025
++<U000131D7> /xf0/x93/x87/x97 EGYPTIAN HIEROGLYPH M026
++<U000131D8> /xf0/x93/x87/x98 EGYPTIAN HIEROGLYPH M027
++<U000131D9> /xf0/x93/x87/x99 EGYPTIAN HIEROGLYPH M028
++<U000131DA> /xf0/x93/x87/x9a EGYPTIAN HIEROGLYPH M028A
++<U000131DB> /xf0/x93/x87/x9b EGYPTIAN HIEROGLYPH M029
++<U000131DC> /xf0/x93/x87/x9c EGYPTIAN HIEROGLYPH M030
++<U000131DD> /xf0/x93/x87/x9d EGYPTIAN HIEROGLYPH M031
++<U000131DE> /xf0/x93/x87/x9e EGYPTIAN HIEROGLYPH M031A
++<U000131DF> /xf0/x93/x87/x9f EGYPTIAN HIEROGLYPH M032
++<U000131E0> /xf0/x93/x87/xa0 EGYPTIAN HIEROGLYPH M033
++<U000131E1> /xf0/x93/x87/xa1 EGYPTIAN HIEROGLYPH M033A
++<U000131E2> /xf0/x93/x87/xa2 EGYPTIAN HIEROGLYPH M033B
++<U000131E3> /xf0/x93/x87/xa3 EGYPTIAN HIEROGLYPH M034
++<U000131E4> /xf0/x93/x87/xa4 EGYPTIAN HIEROGLYPH M035
++<U000131E5> /xf0/x93/x87/xa5 EGYPTIAN HIEROGLYPH M036
++<U000131E6> /xf0/x93/x87/xa6 EGYPTIAN HIEROGLYPH M037
++<U000131E7> /xf0/x93/x87/xa7 EGYPTIAN HIEROGLYPH M038
++<U000131E8> /xf0/x93/x87/xa8 EGYPTIAN HIEROGLYPH M039
++<U000131E9> /xf0/x93/x87/xa9 EGYPTIAN HIEROGLYPH M040
++<U000131EA> /xf0/x93/x87/xaa EGYPTIAN HIEROGLYPH M040A
++<U000131EB> /xf0/x93/x87/xab EGYPTIAN HIEROGLYPH M041
++<U000131EC> /xf0/x93/x87/xac EGYPTIAN HIEROGLYPH M042
++<U000131ED> /xf0/x93/x87/xad EGYPTIAN HIEROGLYPH M043
++<U000131EE> /xf0/x93/x87/xae EGYPTIAN HIEROGLYPH M044
++<U000131EF> /xf0/x93/x87/xaf EGYPTIAN HIEROGLYPH N001
++<U000131F0> /xf0/x93/x87/xb0 EGYPTIAN HIEROGLYPH N002
++<U000131F1> /xf0/x93/x87/xb1 EGYPTIAN HIEROGLYPH N003
++<U000131F2> /xf0/x93/x87/xb2 EGYPTIAN HIEROGLYPH N004
++<U000131F3> /xf0/x93/x87/xb3 EGYPTIAN HIEROGLYPH N005
++<U000131F4> /xf0/x93/x87/xb4 EGYPTIAN HIEROGLYPH N006
++<U000131F5> /xf0/x93/x87/xb5 EGYPTIAN HIEROGLYPH N007
++<U000131F6> /xf0/x93/x87/xb6 EGYPTIAN HIEROGLYPH N008
++<U000131F7> /xf0/x93/x87/xb7 EGYPTIAN HIEROGLYPH N009
++<U000131F8> /xf0/x93/x87/xb8 EGYPTIAN HIEROGLYPH N010
++<U000131F9> /xf0/x93/x87/xb9 EGYPTIAN HIEROGLYPH N011
++<U000131FA> /xf0/x93/x87/xba EGYPTIAN HIEROGLYPH N012
++<U000131FB> /xf0/x93/x87/xbb EGYPTIAN HIEROGLYPH N013
++<U000131FC> /xf0/x93/x87/xbc EGYPTIAN HIEROGLYPH N014
++<U000131FD> /xf0/x93/x87/xbd EGYPTIAN HIEROGLYPH N015
++<U000131FE> /xf0/x93/x87/xbe EGYPTIAN HIEROGLYPH N016
++<U000131FF> /xf0/x93/x87/xbf EGYPTIAN HIEROGLYPH N017
++<U00013200> /xf0/x93/x88/x80 EGYPTIAN HIEROGLYPH N018
++<U00013201> /xf0/x93/x88/x81 EGYPTIAN HIEROGLYPH N018A
++<U00013202> /xf0/x93/x88/x82 EGYPTIAN HIEROGLYPH N018B
++<U00013203> /xf0/x93/x88/x83 EGYPTIAN HIEROGLYPH N019
++<U00013204> /xf0/x93/x88/x84 EGYPTIAN HIEROGLYPH N020
++<U00013205> /xf0/x93/x88/x85 EGYPTIAN HIEROGLYPH N021
++<U00013206> /xf0/x93/x88/x86 EGYPTIAN HIEROGLYPH N022
++<U00013207> /xf0/x93/x88/x87 EGYPTIAN HIEROGLYPH N023
++<U00013208> /xf0/x93/x88/x88 EGYPTIAN HIEROGLYPH N024
++<U00013209> /xf0/x93/x88/x89 EGYPTIAN HIEROGLYPH N025
++<U0001320A> /xf0/x93/x88/x8a EGYPTIAN HIEROGLYPH N025A
++<U0001320B> /xf0/x93/x88/x8b EGYPTIAN HIEROGLYPH N026
++<U0001320C> /xf0/x93/x88/x8c EGYPTIAN HIEROGLYPH N027
++<U0001320D> /xf0/x93/x88/x8d EGYPTIAN HIEROGLYPH N028
++<U0001320E> /xf0/x93/x88/x8e EGYPTIAN HIEROGLYPH N029
++<U0001320F> /xf0/x93/x88/x8f EGYPTIAN HIEROGLYPH N030
++<U00013210> /xf0/x93/x88/x90 EGYPTIAN HIEROGLYPH N031
++<U00013211> /xf0/x93/x88/x91 EGYPTIAN HIEROGLYPH N032
++<U00013212> /xf0/x93/x88/x92 EGYPTIAN HIEROGLYPH N033
++<U00013213> /xf0/x93/x88/x93 EGYPTIAN HIEROGLYPH N033A
++<U00013214> /xf0/x93/x88/x94 EGYPTIAN HIEROGLYPH N034
++<U00013215> /xf0/x93/x88/x95 EGYPTIAN HIEROGLYPH N034A
++<U00013216> /xf0/x93/x88/x96 EGYPTIAN HIEROGLYPH N035
++<U00013217> /xf0/x93/x88/x97 EGYPTIAN HIEROGLYPH N035A
++<U00013218> /xf0/x93/x88/x98 EGYPTIAN HIEROGLYPH N036
++<U00013219> /xf0/x93/x88/x99 EGYPTIAN HIEROGLYPH N037
++<U0001321A> /xf0/x93/x88/x9a EGYPTIAN HIEROGLYPH N037A
++<U0001321B> /xf0/x93/x88/x9b EGYPTIAN HIEROGLYPH N038
++<U0001321C> /xf0/x93/x88/x9c EGYPTIAN HIEROGLYPH N039
++<U0001321D> /xf0/x93/x88/x9d EGYPTIAN HIEROGLYPH N040
++<U0001321E> /xf0/x93/x88/x9e EGYPTIAN HIEROGLYPH N041
++<U0001321F> /xf0/x93/x88/x9f EGYPTIAN HIEROGLYPH N042
++<U00013220> /xf0/x93/x88/xa0 EGYPTIAN HIEROGLYPH NL001
++<U00013221> /xf0/x93/x88/xa1 EGYPTIAN HIEROGLYPH NL002
++<U00013222> /xf0/x93/x88/xa2 EGYPTIAN HIEROGLYPH NL003
++<U00013223> /xf0/x93/x88/xa3 EGYPTIAN HIEROGLYPH NL004
++<U00013224> /xf0/x93/x88/xa4 EGYPTIAN HIEROGLYPH NL005
++<U00013225> /xf0/x93/x88/xa5 EGYPTIAN HIEROGLYPH NL005A
++<U00013226> /xf0/x93/x88/xa6 EGYPTIAN HIEROGLYPH NL006
++<U00013227> /xf0/x93/x88/xa7 EGYPTIAN HIEROGLYPH NL007
++<U00013228> /xf0/x93/x88/xa8 EGYPTIAN HIEROGLYPH NL008
++<U00013229> /xf0/x93/x88/xa9 EGYPTIAN HIEROGLYPH NL009
++<U0001322A> /xf0/x93/x88/xaa EGYPTIAN HIEROGLYPH NL010
++<U0001322B> /xf0/x93/x88/xab EGYPTIAN HIEROGLYPH NL011
++<U0001322C> /xf0/x93/x88/xac EGYPTIAN HIEROGLYPH NL012
++<U0001322D> /xf0/x93/x88/xad EGYPTIAN HIEROGLYPH NL013
++<U0001322E> /xf0/x93/x88/xae EGYPTIAN HIEROGLYPH NL014
++<U0001322F> /xf0/x93/x88/xaf EGYPTIAN HIEROGLYPH NL015
++<U00013230> /xf0/x93/x88/xb0 EGYPTIAN HIEROGLYPH NL016
++<U00013231> /xf0/x93/x88/xb1 EGYPTIAN HIEROGLYPH NL017
++<U00013232> /xf0/x93/x88/xb2 EGYPTIAN HIEROGLYPH NL017A
++<U00013233> /xf0/x93/x88/xb3 EGYPTIAN HIEROGLYPH NL018
++<U00013234> /xf0/x93/x88/xb4 EGYPTIAN HIEROGLYPH NL019
++<U00013235> /xf0/x93/x88/xb5 EGYPTIAN HIEROGLYPH NL020
++<U00013236> /xf0/x93/x88/xb6 EGYPTIAN HIEROGLYPH NU001
++<U00013237> /xf0/x93/x88/xb7 EGYPTIAN HIEROGLYPH NU002
++<U00013238> /xf0/x93/x88/xb8 EGYPTIAN HIEROGLYPH NU003
++<U00013239> /xf0/x93/x88/xb9 EGYPTIAN HIEROGLYPH NU004
++<U0001323A> /xf0/x93/x88/xba EGYPTIAN HIEROGLYPH NU005
++<U0001323B> /xf0/x93/x88/xbb EGYPTIAN HIEROGLYPH NU006
++<U0001323C> /xf0/x93/x88/xbc EGYPTIAN HIEROGLYPH NU007
++<U0001323D> /xf0/x93/x88/xbd EGYPTIAN HIEROGLYPH NU008
++<U0001323E> /xf0/x93/x88/xbe EGYPTIAN HIEROGLYPH NU009
++<U0001323F> /xf0/x93/x88/xbf EGYPTIAN HIEROGLYPH NU010
++<U00013240> /xf0/x93/x89/x80 EGYPTIAN HIEROGLYPH NU010A
++<U00013241> /xf0/x93/x89/x81 EGYPTIAN HIEROGLYPH NU011
++<U00013242> /xf0/x93/x89/x82 EGYPTIAN HIEROGLYPH NU011A
++<U00013243> /xf0/x93/x89/x83 EGYPTIAN HIEROGLYPH NU012
++<U00013244> /xf0/x93/x89/x84 EGYPTIAN HIEROGLYPH NU013
++<U00013245> /xf0/x93/x89/x85 EGYPTIAN HIEROGLYPH NU014
++<U00013246> /xf0/x93/x89/x86 EGYPTIAN HIEROGLYPH NU015
++<U00013247> /xf0/x93/x89/x87 EGYPTIAN HIEROGLYPH NU016
++<U00013248> /xf0/x93/x89/x88 EGYPTIAN HIEROGLYPH NU017
++<U00013249> /xf0/x93/x89/x89 EGYPTIAN HIEROGLYPH NU018
++<U0001324A> /xf0/x93/x89/x8a EGYPTIAN HIEROGLYPH NU018A
++<U0001324B> /xf0/x93/x89/x8b EGYPTIAN HIEROGLYPH NU019
++<U0001324C> /xf0/x93/x89/x8c EGYPTIAN HIEROGLYPH NU020
++<U0001324D> /xf0/x93/x89/x8d EGYPTIAN HIEROGLYPH NU021
++<U0001324E> /xf0/x93/x89/x8e EGYPTIAN HIEROGLYPH NU022
++<U0001324F> /xf0/x93/x89/x8f EGYPTIAN HIEROGLYPH NU022A
++<U00013250> /xf0/x93/x89/x90 EGYPTIAN HIEROGLYPH O001
++<U00013251> /xf0/x93/x89/x91 EGYPTIAN HIEROGLYPH O001A
++<U00013252> /xf0/x93/x89/x92 EGYPTIAN HIEROGLYPH O002
++<U00013253> /xf0/x93/x89/x93 EGYPTIAN HIEROGLYPH O003
++<U00013254> /xf0/x93/x89/x94 EGYPTIAN HIEROGLYPH O004
++<U00013255> /xf0/x93/x89/x95 EGYPTIAN HIEROGLYPH O005
++<U00013256> /xf0/x93/x89/x96 EGYPTIAN HIEROGLYPH O005A
++<U00013257> /xf0/x93/x89/x97 EGYPTIAN HIEROGLYPH O006
++<U00013258> /xf0/x93/x89/x98 EGYPTIAN HIEROGLYPH O006A
++<U00013259> /xf0/x93/x89/x99 EGYPTIAN HIEROGLYPH O006B
++<U0001325A> /xf0/x93/x89/x9a EGYPTIAN HIEROGLYPH O006C
++<U0001325B> /xf0/x93/x89/x9b EGYPTIAN HIEROGLYPH O006D
++<U0001325C> /xf0/x93/x89/x9c EGYPTIAN HIEROGLYPH O006E
++<U0001325D> /xf0/x93/x89/x9d EGYPTIAN HIEROGLYPH O006F
++<U0001325E> /xf0/x93/x89/x9e EGYPTIAN HIEROGLYPH O007
++<U0001325F> /xf0/x93/x89/x9f EGYPTIAN HIEROGLYPH O008
++<U00013260> /xf0/x93/x89/xa0 EGYPTIAN HIEROGLYPH O009
++<U00013261> /xf0/x93/x89/xa1 EGYPTIAN HIEROGLYPH O010
++<U00013262> /xf0/x93/x89/xa2 EGYPTIAN HIEROGLYPH O010A
++<U00013263> /xf0/x93/x89/xa3 EGYPTIAN HIEROGLYPH O010B
++<U00013264> /xf0/x93/x89/xa4 EGYPTIAN HIEROGLYPH O010C
++<U00013265> /xf0/x93/x89/xa5 EGYPTIAN HIEROGLYPH O011
++<U00013266> /xf0/x93/x89/xa6 EGYPTIAN HIEROGLYPH O012
++<U00013267> /xf0/x93/x89/xa7 EGYPTIAN HIEROGLYPH O013
++<U00013268> /xf0/x93/x89/xa8 EGYPTIAN HIEROGLYPH O014
++<U00013269> /xf0/x93/x89/xa9 EGYPTIAN HIEROGLYPH O015
++<U0001326A> /xf0/x93/x89/xaa EGYPTIAN HIEROGLYPH O016
++<U0001326B> /xf0/x93/x89/xab EGYPTIAN HIEROGLYPH O017
++<U0001326C> /xf0/x93/x89/xac EGYPTIAN HIEROGLYPH O018
++<U0001326D> /xf0/x93/x89/xad EGYPTIAN HIEROGLYPH O019
++<U0001326E> /xf0/x93/x89/xae EGYPTIAN HIEROGLYPH O019A
++<U0001326F> /xf0/x93/x89/xaf EGYPTIAN HIEROGLYPH O020
++<U00013270> /xf0/x93/x89/xb0 EGYPTIAN HIEROGLYPH O020A
++<U00013271> /xf0/x93/x89/xb1 EGYPTIAN HIEROGLYPH O021
++<U00013272> /xf0/x93/x89/xb2 EGYPTIAN HIEROGLYPH O022
++<U00013273> /xf0/x93/x89/xb3 EGYPTIAN HIEROGLYPH O023
++<U00013274> /xf0/x93/x89/xb4 EGYPTIAN HIEROGLYPH O024
++<U00013275> /xf0/x93/x89/xb5 EGYPTIAN HIEROGLYPH O024A
++<U00013276> /xf0/x93/x89/xb6 EGYPTIAN HIEROGLYPH O025
++<U00013277> /xf0/x93/x89/xb7 EGYPTIAN HIEROGLYPH O025A
++<U00013278> /xf0/x93/x89/xb8 EGYPTIAN HIEROGLYPH O026
++<U00013279> /xf0/x93/x89/xb9 EGYPTIAN HIEROGLYPH O027
++<U0001327A> /xf0/x93/x89/xba EGYPTIAN HIEROGLYPH O028
++<U0001327B> /xf0/x93/x89/xbb EGYPTIAN HIEROGLYPH O029
++<U0001327C> /xf0/x93/x89/xbc EGYPTIAN HIEROGLYPH O029A
++<U0001327D> /xf0/x93/x89/xbd EGYPTIAN HIEROGLYPH O030
++<U0001327E> /xf0/x93/x89/xbe EGYPTIAN HIEROGLYPH O030A
++<U0001327F> /xf0/x93/x89/xbf EGYPTIAN HIEROGLYPH O031
++<U00013280> /xf0/x93/x8a/x80 EGYPTIAN HIEROGLYPH O032
++<U00013281> /xf0/x93/x8a/x81 EGYPTIAN HIEROGLYPH O033
++<U00013282> /xf0/x93/x8a/x82 EGYPTIAN HIEROGLYPH O033A
++<U00013283> /xf0/x93/x8a/x83 EGYPTIAN HIEROGLYPH O034
++<U00013284> /xf0/x93/x8a/x84 EGYPTIAN HIEROGLYPH O035
++<U00013285> /xf0/x93/x8a/x85 EGYPTIAN HIEROGLYPH O036
++<U00013286> /xf0/x93/x8a/x86 EGYPTIAN HIEROGLYPH O036A
++<U00013287> /xf0/x93/x8a/x87 EGYPTIAN HIEROGLYPH O036B
++<U00013288> /xf0/x93/x8a/x88 EGYPTIAN HIEROGLYPH O036C
++<U00013289> /xf0/x93/x8a/x89 EGYPTIAN HIEROGLYPH O036D
++<U0001328A> /xf0/x93/x8a/x8a EGYPTIAN HIEROGLYPH O037
++<U0001328B> /xf0/x93/x8a/x8b EGYPTIAN HIEROGLYPH O038
++<U0001328C> /xf0/x93/x8a/x8c EGYPTIAN HIEROGLYPH O039
++<U0001328D> /xf0/x93/x8a/x8d EGYPTIAN HIEROGLYPH O040
++<U0001328E> /xf0/x93/x8a/x8e EGYPTIAN HIEROGLYPH O041
++<U0001328F> /xf0/x93/x8a/x8f EGYPTIAN HIEROGLYPH O042
++<U00013290> /xf0/x93/x8a/x90 EGYPTIAN HIEROGLYPH O043
++<U00013291> /xf0/x93/x8a/x91 EGYPTIAN HIEROGLYPH O044
++<U00013292> /xf0/x93/x8a/x92 EGYPTIAN HIEROGLYPH O045
++<U00013293> /xf0/x93/x8a/x93 EGYPTIAN HIEROGLYPH O046
++<U00013294> /xf0/x93/x8a/x94 EGYPTIAN HIEROGLYPH O047
++<U00013295> /xf0/x93/x8a/x95 EGYPTIAN HIEROGLYPH O048
++<U00013296> /xf0/x93/x8a/x96 EGYPTIAN HIEROGLYPH O049
++<U00013297> /xf0/x93/x8a/x97 EGYPTIAN HIEROGLYPH O050
++<U00013298> /xf0/x93/x8a/x98 EGYPTIAN HIEROGLYPH O050A
++<U00013299> /xf0/x93/x8a/x99 EGYPTIAN HIEROGLYPH O050B
++<U0001329A> /xf0/x93/x8a/x9a EGYPTIAN HIEROGLYPH O051
++<U0001329B> /xf0/x93/x8a/x9b EGYPTIAN HIEROGLYPH P001
++<U0001329C> /xf0/x93/x8a/x9c EGYPTIAN HIEROGLYPH P001A
++<U0001329D> /xf0/x93/x8a/x9d EGYPTIAN HIEROGLYPH P002
++<U0001329E> /xf0/x93/x8a/x9e EGYPTIAN HIEROGLYPH P003
++<U0001329F> /xf0/x93/x8a/x9f EGYPTIAN HIEROGLYPH P003A
++<U000132A0> /xf0/x93/x8a/xa0 EGYPTIAN HIEROGLYPH P004
++<U000132A1> /xf0/x93/x8a/xa1 EGYPTIAN HIEROGLYPH P005
++<U000132A2> /xf0/x93/x8a/xa2 EGYPTIAN HIEROGLYPH P006
++<U000132A3> /xf0/x93/x8a/xa3 EGYPTIAN HIEROGLYPH P007
++<U000132A4> /xf0/x93/x8a/xa4 EGYPTIAN HIEROGLYPH P008
++<U000132A5> /xf0/x93/x8a/xa5 EGYPTIAN HIEROGLYPH P009
++<U000132A6> /xf0/x93/x8a/xa6 EGYPTIAN HIEROGLYPH P010
++<U000132A7> /xf0/x93/x8a/xa7 EGYPTIAN HIEROGLYPH P011
++<U000132A8> /xf0/x93/x8a/xa8 EGYPTIAN HIEROGLYPH Q001
++<U000132A9> /xf0/x93/x8a/xa9 EGYPTIAN HIEROGLYPH Q002
++<U000132AA> /xf0/x93/x8a/xaa EGYPTIAN HIEROGLYPH Q003
++<U000132AB> /xf0/x93/x8a/xab EGYPTIAN HIEROGLYPH Q004
++<U000132AC> /xf0/x93/x8a/xac EGYPTIAN HIEROGLYPH Q005
++<U000132AD> /xf0/x93/x8a/xad EGYPTIAN HIEROGLYPH Q006
++<U000132AE> /xf0/x93/x8a/xae EGYPTIAN HIEROGLYPH Q007
++<U000132AF> /xf0/x93/x8a/xaf EGYPTIAN HIEROGLYPH R001
++<U000132B0> /xf0/x93/x8a/xb0 EGYPTIAN HIEROGLYPH R002
++<U000132B1> /xf0/x93/x8a/xb1 EGYPTIAN HIEROGLYPH R002A
++<U000132B2> /xf0/x93/x8a/xb2 EGYPTIAN HIEROGLYPH R003
++<U000132B3> /xf0/x93/x8a/xb3 EGYPTIAN HIEROGLYPH R003A
++<U000132B4> /xf0/x93/x8a/xb4 EGYPTIAN HIEROGLYPH R003B
++<U000132B5> /xf0/x93/x8a/xb5 EGYPTIAN HIEROGLYPH R004
++<U000132B6> /xf0/x93/x8a/xb6 EGYPTIAN HIEROGLYPH R005
++<U000132B7> /xf0/x93/x8a/xb7 EGYPTIAN HIEROGLYPH R006
++<U000132B8> /xf0/x93/x8a/xb8 EGYPTIAN HIEROGLYPH R007
++<U000132B9> /xf0/x93/x8a/xb9 EGYPTIAN HIEROGLYPH R008
++<U000132BA> /xf0/x93/x8a/xba EGYPTIAN HIEROGLYPH R009
++<U000132BB> /xf0/x93/x8a/xbb EGYPTIAN HIEROGLYPH R010
++<U000132BC> /xf0/x93/x8a/xbc EGYPTIAN HIEROGLYPH R010A
++<U000132BD> /xf0/x93/x8a/xbd EGYPTIAN HIEROGLYPH R011
++<U000132BE> /xf0/x93/x8a/xbe EGYPTIAN HIEROGLYPH R012
++<U000132BF> /xf0/x93/x8a/xbf EGYPTIAN HIEROGLYPH R013
++<U000132C0> /xf0/x93/x8b/x80 EGYPTIAN HIEROGLYPH R014
++<U000132C1> /xf0/x93/x8b/x81 EGYPTIAN HIEROGLYPH R015
++<U000132C2> /xf0/x93/x8b/x82 EGYPTIAN HIEROGLYPH R016
++<U000132C3> /xf0/x93/x8b/x83 EGYPTIAN HIEROGLYPH R016A
++<U000132C4> /xf0/x93/x8b/x84 EGYPTIAN HIEROGLYPH R017
++<U000132C5> /xf0/x93/x8b/x85 EGYPTIAN HIEROGLYPH R018
++<U000132C6> /xf0/x93/x8b/x86 EGYPTIAN HIEROGLYPH R019
++<U000132C7> /xf0/x93/x8b/x87 EGYPTIAN HIEROGLYPH R020
++<U000132C8> /xf0/x93/x8b/x88 EGYPTIAN HIEROGLYPH R021
++<U000132C9> /xf0/x93/x8b/x89 EGYPTIAN HIEROGLYPH R022
++<U000132CA> /xf0/x93/x8b/x8a EGYPTIAN HIEROGLYPH R023
++<U000132CB> /xf0/x93/x8b/x8b EGYPTIAN HIEROGLYPH R024
++<U000132CC> /xf0/x93/x8b/x8c EGYPTIAN HIEROGLYPH R025
++<U000132CD> /xf0/x93/x8b/x8d EGYPTIAN HIEROGLYPH R026
++<U000132CE> /xf0/x93/x8b/x8e EGYPTIAN HIEROGLYPH R027
++<U000132CF> /xf0/x93/x8b/x8f EGYPTIAN HIEROGLYPH R028
++<U000132D0> /xf0/x93/x8b/x90 EGYPTIAN HIEROGLYPH R029
++<U000132D1> /xf0/x93/x8b/x91 EGYPTIAN HIEROGLYPH S001
++<U000132D2> /xf0/x93/x8b/x92 EGYPTIAN HIEROGLYPH S002
++<U000132D3> /xf0/x93/x8b/x93 EGYPTIAN HIEROGLYPH S002A
++<U000132D4> /xf0/x93/x8b/x94 EGYPTIAN HIEROGLYPH S003
++<U000132D5> /xf0/x93/x8b/x95 EGYPTIAN HIEROGLYPH S004
++<U000132D6> /xf0/x93/x8b/x96 EGYPTIAN HIEROGLYPH S005
++<U000132D7> /xf0/x93/x8b/x97 EGYPTIAN HIEROGLYPH S006
++<U000132D8> /xf0/x93/x8b/x98 EGYPTIAN HIEROGLYPH S006A
++<U000132D9> /xf0/x93/x8b/x99 EGYPTIAN HIEROGLYPH S007
++<U000132DA> /xf0/x93/x8b/x9a EGYPTIAN HIEROGLYPH S008
++<U000132DB> /xf0/x93/x8b/x9b EGYPTIAN HIEROGLYPH S009
++<U000132DC> /xf0/x93/x8b/x9c EGYPTIAN HIEROGLYPH S010
++<U000132DD> /xf0/x93/x8b/x9d EGYPTIAN HIEROGLYPH S011
++<U000132DE> /xf0/x93/x8b/x9e EGYPTIAN HIEROGLYPH S012
++<U000132DF> /xf0/x93/x8b/x9f EGYPTIAN HIEROGLYPH S013
++<U000132E0> /xf0/x93/x8b/xa0 EGYPTIAN HIEROGLYPH S014
++<U000132E1> /xf0/x93/x8b/xa1 EGYPTIAN HIEROGLYPH S014A
++<U000132E2> /xf0/x93/x8b/xa2 EGYPTIAN HIEROGLYPH S014B
++<U000132E3> /xf0/x93/x8b/xa3 EGYPTIAN HIEROGLYPH S015
++<U000132E4> /xf0/x93/x8b/xa4 EGYPTIAN HIEROGLYPH S016
++<U000132E5> /xf0/x93/x8b/xa5 EGYPTIAN HIEROGLYPH S017
++<U000132E6> /xf0/x93/x8b/xa6 EGYPTIAN HIEROGLYPH S017A
++<U000132E7> /xf0/x93/x8b/xa7 EGYPTIAN HIEROGLYPH S018
++<U000132E8> /xf0/x93/x8b/xa8 EGYPTIAN HIEROGLYPH S019
++<U000132E9> /xf0/x93/x8b/xa9 EGYPTIAN HIEROGLYPH S020
++<U000132EA> /xf0/x93/x8b/xaa EGYPTIAN HIEROGLYPH S021
++<U000132EB> /xf0/x93/x8b/xab EGYPTIAN HIEROGLYPH S022
++<U000132EC> /xf0/x93/x8b/xac EGYPTIAN HIEROGLYPH S023
++<U000132ED> /xf0/x93/x8b/xad EGYPTIAN HIEROGLYPH S024
++<U000132EE> /xf0/x93/x8b/xae EGYPTIAN HIEROGLYPH S025
++<U000132EF> /xf0/x93/x8b/xaf EGYPTIAN HIEROGLYPH S026
++<U000132F0> /xf0/x93/x8b/xb0 EGYPTIAN HIEROGLYPH S026A
++<U000132F1> /xf0/x93/x8b/xb1 EGYPTIAN HIEROGLYPH S026B
++<U000132F2> /xf0/x93/x8b/xb2 EGYPTIAN HIEROGLYPH S027
++<U000132F3> /xf0/x93/x8b/xb3 EGYPTIAN HIEROGLYPH S028
++<U000132F4> /xf0/x93/x8b/xb4 EGYPTIAN HIEROGLYPH S029
++<U000132F5> /xf0/x93/x8b/xb5 EGYPTIAN HIEROGLYPH S030
++<U000132F6> /xf0/x93/x8b/xb6 EGYPTIAN HIEROGLYPH S031
++<U000132F7> /xf0/x93/x8b/xb7 EGYPTIAN HIEROGLYPH S032
++<U000132F8> /xf0/x93/x8b/xb8 EGYPTIAN HIEROGLYPH S033
++<U000132F9> /xf0/x93/x8b/xb9 EGYPTIAN HIEROGLYPH S034
++<U000132FA> /xf0/x93/x8b/xba EGYPTIAN HIEROGLYPH S035
++<U000132FB> /xf0/x93/x8b/xbb EGYPTIAN HIEROGLYPH S035A
++<U000132FC> /xf0/x93/x8b/xbc EGYPTIAN HIEROGLYPH S036
++<U000132FD> /xf0/x93/x8b/xbd EGYPTIAN HIEROGLYPH S037
++<U000132FE> /xf0/x93/x8b/xbe EGYPTIAN HIEROGLYPH S038
++<U000132FF> /xf0/x93/x8b/xbf EGYPTIAN HIEROGLYPH S039
++<U00013300> /xf0/x93/x8c/x80 EGYPTIAN HIEROGLYPH S040
++<U00013301> /xf0/x93/x8c/x81 EGYPTIAN HIEROGLYPH S041
++<U00013302> /xf0/x93/x8c/x82 EGYPTIAN HIEROGLYPH S042
++<U00013303> /xf0/x93/x8c/x83 EGYPTIAN HIEROGLYPH S043
++<U00013304> /xf0/x93/x8c/x84 EGYPTIAN HIEROGLYPH S044
++<U00013305> /xf0/x93/x8c/x85 EGYPTIAN HIEROGLYPH S045
++<U00013306> /xf0/x93/x8c/x86 EGYPTIAN HIEROGLYPH S046
++<U00013307> /xf0/x93/x8c/x87 EGYPTIAN HIEROGLYPH T001
++<U00013308> /xf0/x93/x8c/x88 EGYPTIAN HIEROGLYPH T002
++<U00013309> /xf0/x93/x8c/x89 EGYPTIAN HIEROGLYPH T003
++<U0001330A> /xf0/x93/x8c/x8a EGYPTIAN HIEROGLYPH T003A
++<U0001330B> /xf0/x93/x8c/x8b EGYPTIAN HIEROGLYPH T004
++<U0001330C> /xf0/x93/x8c/x8c EGYPTIAN HIEROGLYPH T005
++<U0001330D> /xf0/x93/x8c/x8d EGYPTIAN HIEROGLYPH T006
++<U0001330E> /xf0/x93/x8c/x8e EGYPTIAN HIEROGLYPH T007
++<U0001330F> /xf0/x93/x8c/x8f EGYPTIAN HIEROGLYPH T007A
++<U00013310> /xf0/x93/x8c/x90 EGYPTIAN HIEROGLYPH T008
++<U00013311> /xf0/x93/x8c/x91 EGYPTIAN HIEROGLYPH T008A
++<U00013312> /xf0/x93/x8c/x92 EGYPTIAN HIEROGLYPH T009
++<U00013313> /xf0/x93/x8c/x93 EGYPTIAN HIEROGLYPH T009A
++<U00013314> /xf0/x93/x8c/x94 EGYPTIAN HIEROGLYPH T010
++<U00013315> /xf0/x93/x8c/x95 EGYPTIAN HIEROGLYPH T011
++<U00013316> /xf0/x93/x8c/x96 EGYPTIAN HIEROGLYPH T011A
++<U00013317> /xf0/x93/x8c/x97 EGYPTIAN HIEROGLYPH T012
++<U00013318> /xf0/x93/x8c/x98 EGYPTIAN HIEROGLYPH T013
++<U00013319> /xf0/x93/x8c/x99 EGYPTIAN HIEROGLYPH T014
++<U0001331A> /xf0/x93/x8c/x9a EGYPTIAN HIEROGLYPH T015
++<U0001331B> /xf0/x93/x8c/x9b EGYPTIAN HIEROGLYPH T016
++<U0001331C> /xf0/x93/x8c/x9c EGYPTIAN HIEROGLYPH T016A
++<U0001331D> /xf0/x93/x8c/x9d EGYPTIAN HIEROGLYPH T017
++<U0001331E> /xf0/x93/x8c/x9e EGYPTIAN HIEROGLYPH T018
++<U0001331F> /xf0/x93/x8c/x9f EGYPTIAN HIEROGLYPH T019
++<U00013320> /xf0/x93/x8c/xa0 EGYPTIAN HIEROGLYPH T020
++<U00013321> /xf0/x93/x8c/xa1 EGYPTIAN HIEROGLYPH T021
++<U00013322> /xf0/x93/x8c/xa2 EGYPTIAN HIEROGLYPH T022
++<U00013323> /xf0/x93/x8c/xa3 EGYPTIAN HIEROGLYPH T023
++<U00013324> /xf0/x93/x8c/xa4 EGYPTIAN HIEROGLYPH T024
++<U00013325> /xf0/x93/x8c/xa5 EGYPTIAN HIEROGLYPH T025
++<U00013326> /xf0/x93/x8c/xa6 EGYPTIAN HIEROGLYPH T026
++<U00013327> /xf0/x93/x8c/xa7 EGYPTIAN HIEROGLYPH T027
++<U00013328> /xf0/x93/x8c/xa8 EGYPTIAN HIEROGLYPH T028
++<U00013329> /xf0/x93/x8c/xa9 EGYPTIAN HIEROGLYPH T029
++<U0001332A> /xf0/x93/x8c/xaa EGYPTIAN HIEROGLYPH T030
++<U0001332B> /xf0/x93/x8c/xab EGYPTIAN HIEROGLYPH T031
++<U0001332C> /xf0/x93/x8c/xac EGYPTIAN HIEROGLYPH T032
++<U0001332D> /xf0/x93/x8c/xad EGYPTIAN HIEROGLYPH T032A
++<U0001332E> /xf0/x93/x8c/xae EGYPTIAN HIEROGLYPH T033
++<U0001332F> /xf0/x93/x8c/xaf EGYPTIAN HIEROGLYPH T033A
++<U00013330> /xf0/x93/x8c/xb0 EGYPTIAN HIEROGLYPH T034
++<U00013331> /xf0/x93/x8c/xb1 EGYPTIAN HIEROGLYPH T035
++<U00013332> /xf0/x93/x8c/xb2 EGYPTIAN HIEROGLYPH T036
++<U00013333> /xf0/x93/x8c/xb3 EGYPTIAN HIEROGLYPH U001
++<U00013334> /xf0/x93/x8c/xb4 EGYPTIAN HIEROGLYPH U002
++<U00013335> /xf0/x93/x8c/xb5 EGYPTIAN HIEROGLYPH U003
++<U00013336> /xf0/x93/x8c/xb6 EGYPTIAN HIEROGLYPH U004
++<U00013337> /xf0/x93/x8c/xb7 EGYPTIAN HIEROGLYPH U005
++<U00013338> /xf0/x93/x8c/xb8 EGYPTIAN HIEROGLYPH U006
++<U00013339> /xf0/x93/x8c/xb9 EGYPTIAN HIEROGLYPH U006A
++<U0001333A> /xf0/x93/x8c/xba EGYPTIAN HIEROGLYPH U006B
++<U0001333B> /xf0/x93/x8c/xbb EGYPTIAN HIEROGLYPH U007
++<U0001333C> /xf0/x93/x8c/xbc EGYPTIAN HIEROGLYPH U008
++<U0001333D> /xf0/x93/x8c/xbd EGYPTIAN HIEROGLYPH U009
++<U0001333E> /xf0/x93/x8c/xbe EGYPTIAN HIEROGLYPH U010
++<U0001333F> /xf0/x93/x8c/xbf EGYPTIAN HIEROGLYPH U011
++<U00013340> /xf0/x93/x8d/x80 EGYPTIAN HIEROGLYPH U012
++<U00013341> /xf0/x93/x8d/x81 EGYPTIAN HIEROGLYPH U013
++<U00013342> /xf0/x93/x8d/x82 EGYPTIAN HIEROGLYPH U014
++<U00013343> /xf0/x93/x8d/x83 EGYPTIAN HIEROGLYPH U015
++<U00013344> /xf0/x93/x8d/x84 EGYPTIAN HIEROGLYPH U016
++<U00013345> /xf0/x93/x8d/x85 EGYPTIAN HIEROGLYPH U017
++<U00013346> /xf0/x93/x8d/x86 EGYPTIAN HIEROGLYPH U018
++<U00013347> /xf0/x93/x8d/x87 EGYPTIAN HIEROGLYPH U019
++<U00013348> /xf0/x93/x8d/x88 EGYPTIAN HIEROGLYPH U020
++<U00013349> /xf0/x93/x8d/x89 EGYPTIAN HIEROGLYPH U021
++<U0001334A> /xf0/x93/x8d/x8a EGYPTIAN HIEROGLYPH U022
++<U0001334B> /xf0/x93/x8d/x8b EGYPTIAN HIEROGLYPH U023
++<U0001334C> /xf0/x93/x8d/x8c EGYPTIAN HIEROGLYPH U023A
++<U0001334D> /xf0/x93/x8d/x8d EGYPTIAN HIEROGLYPH U024
++<U0001334E> /xf0/x93/x8d/x8e EGYPTIAN HIEROGLYPH U025
++<U0001334F> /xf0/x93/x8d/x8f EGYPTIAN HIEROGLYPH U026
++<U00013350> /xf0/x93/x8d/x90 EGYPTIAN HIEROGLYPH U027
++<U00013351> /xf0/x93/x8d/x91 EGYPTIAN HIEROGLYPH U028
++<U00013352> /xf0/x93/x8d/x92 EGYPTIAN HIEROGLYPH U029
++<U00013353> /xf0/x93/x8d/x93 EGYPTIAN HIEROGLYPH U029A
++<U00013354> /xf0/x93/x8d/x94 EGYPTIAN HIEROGLYPH U030
++<U00013355> /xf0/x93/x8d/x95 EGYPTIAN HIEROGLYPH U031
++<U00013356> /xf0/x93/x8d/x96 EGYPTIAN HIEROGLYPH U032
++<U00013357> /xf0/x93/x8d/x97 EGYPTIAN HIEROGLYPH U032A
++<U00013358> /xf0/x93/x8d/x98 EGYPTIAN HIEROGLYPH U033
++<U00013359> /xf0/x93/x8d/x99 EGYPTIAN HIEROGLYPH U034
++<U0001335A> /xf0/x93/x8d/x9a EGYPTIAN HIEROGLYPH U035
++<U0001335B> /xf0/x93/x8d/x9b EGYPTIAN HIEROGLYPH U036
++<U0001335C> /xf0/x93/x8d/x9c EGYPTIAN HIEROGLYPH U037
++<U0001335D> /xf0/x93/x8d/x9d EGYPTIAN HIEROGLYPH U038
++<U0001335E> /xf0/x93/x8d/x9e EGYPTIAN HIEROGLYPH U039
++<U0001335F> /xf0/x93/x8d/x9f EGYPTIAN HIEROGLYPH U040
++<U00013360> /xf0/x93/x8d/xa0 EGYPTIAN HIEROGLYPH U041
++<U00013361> /xf0/x93/x8d/xa1 EGYPTIAN HIEROGLYPH U042
++<U00013362> /xf0/x93/x8d/xa2 EGYPTIAN HIEROGLYPH V001
++<U00013363> /xf0/x93/x8d/xa3 EGYPTIAN HIEROGLYPH V001A
++<U00013364> /xf0/x93/x8d/xa4 EGYPTIAN HIEROGLYPH V001B
++<U00013365> /xf0/x93/x8d/xa5 EGYPTIAN HIEROGLYPH V001C
++<U00013366> /xf0/x93/x8d/xa6 EGYPTIAN HIEROGLYPH V001D
++<U00013367> /xf0/x93/x8d/xa7 EGYPTIAN HIEROGLYPH V001E
++<U00013368> /xf0/x93/x8d/xa8 EGYPTIAN HIEROGLYPH V001F
++<U00013369> /xf0/x93/x8d/xa9 EGYPTIAN HIEROGLYPH V001G
++<U0001336A> /xf0/x93/x8d/xaa EGYPTIAN HIEROGLYPH V001H
++<U0001336B> /xf0/x93/x8d/xab EGYPTIAN HIEROGLYPH V001I
++<U0001336C> /xf0/x93/x8d/xac EGYPTIAN HIEROGLYPH V002
++<U0001336D> /xf0/x93/x8d/xad EGYPTIAN HIEROGLYPH V002A
++<U0001336E> /xf0/x93/x8d/xae EGYPTIAN HIEROGLYPH V003
++<U0001336F> /xf0/x93/x8d/xaf EGYPTIAN HIEROGLYPH V004
++<U00013370> /xf0/x93/x8d/xb0 EGYPTIAN HIEROGLYPH V005
++<U00013371> /xf0/x93/x8d/xb1 EGYPTIAN HIEROGLYPH V006
++<U00013372> /xf0/x93/x8d/xb2 EGYPTIAN HIEROGLYPH V007
++<U00013373> /xf0/x93/x8d/xb3 EGYPTIAN HIEROGLYPH V007A
++<U00013374> /xf0/x93/x8d/xb4 EGYPTIAN HIEROGLYPH V007B
++<U00013375> /xf0/x93/x8d/xb5 EGYPTIAN HIEROGLYPH V008
++<U00013376> /xf0/x93/x8d/xb6 EGYPTIAN HIEROGLYPH V009
++<U00013377> /xf0/x93/x8d/xb7 EGYPTIAN HIEROGLYPH V010
++<U00013378> /xf0/x93/x8d/xb8 EGYPTIAN HIEROGLYPH V011
++<U00013379> /xf0/x93/x8d/xb9 EGYPTIAN HIEROGLYPH V011A
++<U0001337A> /xf0/x93/x8d/xba EGYPTIAN HIEROGLYPH V011B
++<U0001337B> /xf0/x93/x8d/xbb EGYPTIAN HIEROGLYPH V011C
++<U0001337C> /xf0/x93/x8d/xbc EGYPTIAN HIEROGLYPH V012
++<U0001337D> /xf0/x93/x8d/xbd EGYPTIAN HIEROGLYPH V012A
++<U0001337E> /xf0/x93/x8d/xbe EGYPTIAN HIEROGLYPH V012B
++<U0001337F> /xf0/x93/x8d/xbf EGYPTIAN HIEROGLYPH V013
++<U00013380> /xf0/x93/x8e/x80 EGYPTIAN HIEROGLYPH V014
++<U00013381> /xf0/x93/x8e/x81 EGYPTIAN HIEROGLYPH V015
++<U00013382> /xf0/x93/x8e/x82 EGYPTIAN HIEROGLYPH V016
++<U00013383> /xf0/x93/x8e/x83 EGYPTIAN HIEROGLYPH V017
++<U00013384> /xf0/x93/x8e/x84 EGYPTIAN HIEROGLYPH V018
++<U00013385> /xf0/x93/x8e/x85 EGYPTIAN HIEROGLYPH V019
++<U00013386> /xf0/x93/x8e/x86 EGYPTIAN HIEROGLYPH V020
++<U00013387> /xf0/x93/x8e/x87 EGYPTIAN HIEROGLYPH V020A
++<U00013388> /xf0/x93/x8e/x88 EGYPTIAN HIEROGLYPH V020B
++<U00013389> /xf0/x93/x8e/x89 EGYPTIAN HIEROGLYPH V020C
++<U0001338A> /xf0/x93/x8e/x8a EGYPTIAN HIEROGLYPH V020D
++<U0001338B> /xf0/x93/x8e/x8b EGYPTIAN HIEROGLYPH V020E
++<U0001338C> /xf0/x93/x8e/x8c EGYPTIAN HIEROGLYPH V020F
++<U0001338D> /xf0/x93/x8e/x8d EGYPTIAN HIEROGLYPH V020G
++<U0001338E> /xf0/x93/x8e/x8e EGYPTIAN HIEROGLYPH V020H
++<U0001338F> /xf0/x93/x8e/x8f EGYPTIAN HIEROGLYPH V020I
++<U00013390> /xf0/x93/x8e/x90 EGYPTIAN HIEROGLYPH V020J
++<U00013391> /xf0/x93/x8e/x91 EGYPTIAN HIEROGLYPH V020K
++<U00013392> /xf0/x93/x8e/x92 EGYPTIAN HIEROGLYPH V020L
++<U00013393> /xf0/x93/x8e/x93 EGYPTIAN HIEROGLYPH V021
++<U00013394> /xf0/x93/x8e/x94 EGYPTIAN HIEROGLYPH V022
++<U00013395> /xf0/x93/x8e/x95 EGYPTIAN HIEROGLYPH V023
++<U00013396> /xf0/x93/x8e/x96 EGYPTIAN HIEROGLYPH V023A
++<U00013397> /xf0/x93/x8e/x97 EGYPTIAN HIEROGLYPH V024
++<U00013398> /xf0/x93/x8e/x98 EGYPTIAN HIEROGLYPH V025
++<U00013399> /xf0/x93/x8e/x99 EGYPTIAN HIEROGLYPH V026
++<U0001339A> /xf0/x93/x8e/x9a EGYPTIAN HIEROGLYPH V027
++<U0001339B> /xf0/x93/x8e/x9b EGYPTIAN HIEROGLYPH V028
++<U0001339C> /xf0/x93/x8e/x9c EGYPTIAN HIEROGLYPH V028A
++<U0001339D> /xf0/x93/x8e/x9d EGYPTIAN HIEROGLYPH V029
++<U0001339E> /xf0/x93/x8e/x9e EGYPTIAN HIEROGLYPH V029A
++<U0001339F> /xf0/x93/x8e/x9f EGYPTIAN HIEROGLYPH V030
++<U000133A0> /xf0/x93/x8e/xa0 EGYPTIAN HIEROGLYPH V030A
++<U000133A1> /xf0/x93/x8e/xa1 EGYPTIAN HIEROGLYPH V031
++<U000133A2> /xf0/x93/x8e/xa2 EGYPTIAN HIEROGLYPH V031A
++<U000133A3> /xf0/x93/x8e/xa3 EGYPTIAN HIEROGLYPH V032
++<U000133A4> /xf0/x93/x8e/xa4 EGYPTIAN HIEROGLYPH V033
++<U000133A5> /xf0/x93/x8e/xa5 EGYPTIAN HIEROGLYPH V033A
++<U000133A6> /xf0/x93/x8e/xa6 EGYPTIAN HIEROGLYPH V034
++<U000133A7> /xf0/x93/x8e/xa7 EGYPTIAN HIEROGLYPH V035
++<U000133A8> /xf0/x93/x8e/xa8 EGYPTIAN HIEROGLYPH V036
++<U000133A9> /xf0/x93/x8e/xa9 EGYPTIAN HIEROGLYPH V037
++<U000133AA> /xf0/x93/x8e/xaa EGYPTIAN HIEROGLYPH V037A
++<U000133AB> /xf0/x93/x8e/xab EGYPTIAN HIEROGLYPH V038
++<U000133AC> /xf0/x93/x8e/xac EGYPTIAN HIEROGLYPH V039
++<U000133AD> /xf0/x93/x8e/xad EGYPTIAN HIEROGLYPH V040
++<U000133AE> /xf0/x93/x8e/xae EGYPTIAN HIEROGLYPH V040A
++<U000133AF> /xf0/x93/x8e/xaf EGYPTIAN HIEROGLYPH W001
++<U000133B0> /xf0/x93/x8e/xb0 EGYPTIAN HIEROGLYPH W002
++<U000133B1> /xf0/x93/x8e/xb1 EGYPTIAN HIEROGLYPH W003
++<U000133B2> /xf0/x93/x8e/xb2 EGYPTIAN HIEROGLYPH W003A
++<U000133B3> /xf0/x93/x8e/xb3 EGYPTIAN HIEROGLYPH W004
++<U000133B4> /xf0/x93/x8e/xb4 EGYPTIAN HIEROGLYPH W005
++<U000133B5> /xf0/x93/x8e/xb5 EGYPTIAN HIEROGLYPH W006
++<U000133B6> /xf0/x93/x8e/xb6 EGYPTIAN HIEROGLYPH W007
++<U000133B7> /xf0/x93/x8e/xb7 EGYPTIAN HIEROGLYPH W008
++<U000133B8> /xf0/x93/x8e/xb8 EGYPTIAN HIEROGLYPH W009
++<U000133B9> /xf0/x93/x8e/xb9 EGYPTIAN HIEROGLYPH W009A
++<U000133BA> /xf0/x93/x8e/xba EGYPTIAN HIEROGLYPH W010
++<U000133BB> /xf0/x93/x8e/xbb EGYPTIAN HIEROGLYPH W010A
++<U000133BC> /xf0/x93/x8e/xbc EGYPTIAN HIEROGLYPH W011
++<U000133BD> /xf0/x93/x8e/xbd EGYPTIAN HIEROGLYPH W012
++<U000133BE> /xf0/x93/x8e/xbe EGYPTIAN HIEROGLYPH W013
++<U000133BF> /xf0/x93/x8e/xbf EGYPTIAN HIEROGLYPH W014
++<U000133C0> /xf0/x93/x8f/x80 EGYPTIAN HIEROGLYPH W014A
++<U000133C1> /xf0/x93/x8f/x81 EGYPTIAN HIEROGLYPH W015
++<U000133C2> /xf0/x93/x8f/x82 EGYPTIAN HIEROGLYPH W016
++<U000133C3> /xf0/x93/x8f/x83 EGYPTIAN HIEROGLYPH W017
++<U000133C4> /xf0/x93/x8f/x84 EGYPTIAN HIEROGLYPH W017A
++<U000133C5> /xf0/x93/x8f/x85 EGYPTIAN HIEROGLYPH W018
++<U000133C6> /xf0/x93/x8f/x86 EGYPTIAN HIEROGLYPH W018A
++<U000133C7> /xf0/x93/x8f/x87 EGYPTIAN HIEROGLYPH W019
++<U000133C8> /xf0/x93/x8f/x88 EGYPTIAN HIEROGLYPH W020
++<U000133C9> /xf0/x93/x8f/x89 EGYPTIAN HIEROGLYPH W021
++<U000133CA> /xf0/x93/x8f/x8a EGYPTIAN HIEROGLYPH W022
++<U000133CB> /xf0/x93/x8f/x8b EGYPTIAN HIEROGLYPH W023
++<U000133CC> /xf0/x93/x8f/x8c EGYPTIAN HIEROGLYPH W024
++<U000133CD> /xf0/x93/x8f/x8d EGYPTIAN HIEROGLYPH W024A
++<U000133CE> /xf0/x93/x8f/x8e EGYPTIAN HIEROGLYPH W025
++<U000133CF> /xf0/x93/x8f/x8f EGYPTIAN HIEROGLYPH X001
++<U000133D0> /xf0/x93/x8f/x90 EGYPTIAN HIEROGLYPH X002
++<U000133D1> /xf0/x93/x8f/x91 EGYPTIAN HIEROGLYPH X003
++<U000133D2> /xf0/x93/x8f/x92 EGYPTIAN HIEROGLYPH X004
++<U000133D3> /xf0/x93/x8f/x93 EGYPTIAN HIEROGLYPH X004A
++<U000133D4> /xf0/x93/x8f/x94 EGYPTIAN HIEROGLYPH X004B
++<U000133D5> /xf0/x93/x8f/x95 EGYPTIAN HIEROGLYPH X005
++<U000133D6> /xf0/x93/x8f/x96 EGYPTIAN HIEROGLYPH X006
++<U000133D7> /xf0/x93/x8f/x97 EGYPTIAN HIEROGLYPH X006A
++<U000133D8> /xf0/x93/x8f/x98 EGYPTIAN HIEROGLYPH X007
++<U000133D9> /xf0/x93/x8f/x99 EGYPTIAN HIEROGLYPH X008
++<U000133DA> /xf0/x93/x8f/x9a EGYPTIAN HIEROGLYPH X008A
++<U000133DB> /xf0/x93/x8f/x9b EGYPTIAN HIEROGLYPH Y001
++<U000133DC> /xf0/x93/x8f/x9c EGYPTIAN HIEROGLYPH Y001A
++<U000133DD> /xf0/x93/x8f/x9d EGYPTIAN HIEROGLYPH Y002
++<U000133DE> /xf0/x93/x8f/x9e EGYPTIAN HIEROGLYPH Y003
++<U000133DF> /xf0/x93/x8f/x9f EGYPTIAN HIEROGLYPH Y004
++<U000133E0> /xf0/x93/x8f/xa0 EGYPTIAN HIEROGLYPH Y005
++<U000133E1> /xf0/x93/x8f/xa1 EGYPTIAN HIEROGLYPH Y006
++<U000133E2> /xf0/x93/x8f/xa2 EGYPTIAN HIEROGLYPH Y007
++<U000133E3> /xf0/x93/x8f/xa3 EGYPTIAN HIEROGLYPH Y008
++<U000133E4> /xf0/x93/x8f/xa4 EGYPTIAN HIEROGLYPH Z001
++<U000133E5> /xf0/x93/x8f/xa5 EGYPTIAN HIEROGLYPH Z002
++<U000133E6> /xf0/x93/x8f/xa6 EGYPTIAN HIEROGLYPH Z002A
++<U000133E7> /xf0/x93/x8f/xa7 EGYPTIAN HIEROGLYPH Z002B
++<U000133E8> /xf0/x93/x8f/xa8 EGYPTIAN HIEROGLYPH Z002C
++<U000133E9> /xf0/x93/x8f/xa9 EGYPTIAN HIEROGLYPH Z002D
++<U000133EA> /xf0/x93/x8f/xaa EGYPTIAN HIEROGLYPH Z003
++<U000133EB> /xf0/x93/x8f/xab EGYPTIAN HIEROGLYPH Z003A
++<U000133EC> /xf0/x93/x8f/xac EGYPTIAN HIEROGLYPH Z003B
++<U000133ED> /xf0/x93/x8f/xad EGYPTIAN HIEROGLYPH Z004
++<U000133EE> /xf0/x93/x8f/xae EGYPTIAN HIEROGLYPH Z004A
++<U000133EF> /xf0/x93/x8f/xaf EGYPTIAN HIEROGLYPH Z005
++<U000133F0> /xf0/x93/x8f/xb0 EGYPTIAN HIEROGLYPH Z005A
++<U000133F1> /xf0/x93/x8f/xb1 EGYPTIAN HIEROGLYPH Z006
++<U000133F2> /xf0/x93/x8f/xb2 EGYPTIAN HIEROGLYPH Z007
++<U000133F3> /xf0/x93/x8f/xb3 EGYPTIAN HIEROGLYPH Z008
++<U000133F4> /xf0/x93/x8f/xb4 EGYPTIAN HIEROGLYPH Z009
++<U000133F5> /xf0/x93/x8f/xb5 EGYPTIAN HIEROGLYPH Z010
++<U000133F6> /xf0/x93/x8f/xb6 EGYPTIAN HIEROGLYPH Z011
++<U000133F7> /xf0/x93/x8f/xb7 EGYPTIAN HIEROGLYPH Z012
++<U000133F8> /xf0/x93/x8f/xb8 EGYPTIAN HIEROGLYPH Z013
++<U000133F9> /xf0/x93/x8f/xb9 EGYPTIAN HIEROGLYPH Z014
++<U000133FA> /xf0/x93/x8f/xba EGYPTIAN HIEROGLYPH Z015
++<U000133FB> /xf0/x93/x8f/xbb EGYPTIAN HIEROGLYPH Z015A
++<U000133FC> /xf0/x93/x8f/xbc EGYPTIAN HIEROGLYPH Z015B
++<U000133FD> /xf0/x93/x8f/xbd EGYPTIAN HIEROGLYPH Z015C
++<U000133FE> /xf0/x93/x8f/xbe EGYPTIAN HIEROGLYPH Z015D
++<U000133FF> /xf0/x93/x8f/xbf EGYPTIAN HIEROGLYPH Z015E
++<U00013400> /xf0/x93/x90/x80 EGYPTIAN HIEROGLYPH Z015F
++<U00013401> /xf0/x93/x90/x81 EGYPTIAN HIEROGLYPH Z015G
++<U00013402> /xf0/x93/x90/x82 EGYPTIAN HIEROGLYPH Z015H
++<U00013403> /xf0/x93/x90/x83 EGYPTIAN HIEROGLYPH Z015I
++<U00013404> /xf0/x93/x90/x84 EGYPTIAN HIEROGLYPH Z016
++<U00013405> /xf0/x93/x90/x85 EGYPTIAN HIEROGLYPH Z016A
++<U00013406> /xf0/x93/x90/x86 EGYPTIAN HIEROGLYPH Z016B
++<U00013407> /xf0/x93/x90/x87 EGYPTIAN HIEROGLYPH Z016C
++<U00013408> /xf0/x93/x90/x88 EGYPTIAN HIEROGLYPH Z016D
++<U00013409> /xf0/x93/x90/x89 EGYPTIAN HIEROGLYPH Z016E
++<U0001340A> /xf0/x93/x90/x8a EGYPTIAN HIEROGLYPH Z016F
++<U0001340B> /xf0/x93/x90/x8b EGYPTIAN HIEROGLYPH Z016G
++<U0001340C> /xf0/x93/x90/x8c EGYPTIAN HIEROGLYPH Z016H
++<U0001340D> /xf0/x93/x90/x8d EGYPTIAN HIEROGLYPH AA001
++<U0001340E> /xf0/x93/x90/x8e EGYPTIAN HIEROGLYPH AA002
++<U0001340F> /xf0/x93/x90/x8f EGYPTIAN HIEROGLYPH AA003
++<U00013410> /xf0/x93/x90/x90 EGYPTIAN HIEROGLYPH AA004
++<U00013411> /xf0/x93/x90/x91 EGYPTIAN HIEROGLYPH AA005
++<U00013412> /xf0/x93/x90/x92 EGYPTIAN HIEROGLYPH AA006
++<U00013413> /xf0/x93/x90/x93 EGYPTIAN HIEROGLYPH AA007
++<U00013414> /xf0/x93/x90/x94 EGYPTIAN HIEROGLYPH AA007A
++<U00013415> /xf0/x93/x90/x95 EGYPTIAN HIEROGLYPH AA007B
++<U00013416> /xf0/x93/x90/x96 EGYPTIAN HIEROGLYPH AA008
++<U00013417> /xf0/x93/x90/x97 EGYPTIAN HIEROGLYPH AA009
++<U00013418> /xf0/x93/x90/x98 EGYPTIAN HIEROGLYPH AA010
++<U00013419> /xf0/x93/x90/x99 EGYPTIAN HIEROGLYPH AA011
++<U0001341A> /xf0/x93/x90/x9a EGYPTIAN HIEROGLYPH AA012
++<U0001341B> /xf0/x93/x90/x9b EGYPTIAN HIEROGLYPH AA013
++<U0001341C> /xf0/x93/x90/x9c EGYPTIAN HIEROGLYPH AA014
++<U0001341D> /xf0/x93/x90/x9d EGYPTIAN HIEROGLYPH AA015
++<U0001341E> /xf0/x93/x90/x9e EGYPTIAN HIEROGLYPH AA016
++<U0001341F> /xf0/x93/x90/x9f EGYPTIAN HIEROGLYPH AA017
++<U00013420> /xf0/x93/x90/xa0 EGYPTIAN HIEROGLYPH AA018
++<U00013421> /xf0/x93/x90/xa1 EGYPTIAN HIEROGLYPH AA019
++<U00013422> /xf0/x93/x90/xa2 EGYPTIAN HIEROGLYPH AA020
++<U00013423> /xf0/x93/x90/xa3 EGYPTIAN HIEROGLYPH AA021
++<U00013424> /xf0/x93/x90/xa4 EGYPTIAN HIEROGLYPH AA022
++<U00013425> /xf0/x93/x90/xa5 EGYPTIAN HIEROGLYPH AA023
++<U00013426> /xf0/x93/x90/xa6 EGYPTIAN HIEROGLYPH AA024
++<U00013427> /xf0/x93/x90/xa7 EGYPTIAN HIEROGLYPH AA025
++<U00013428> /xf0/x93/x90/xa8 EGYPTIAN HIEROGLYPH AA026
++<U00013429> /xf0/x93/x90/xa9 EGYPTIAN HIEROGLYPH AA027
++<U0001342A> /xf0/x93/x90/xaa EGYPTIAN HIEROGLYPH AA028
++<U0001342B> /xf0/x93/x90/xab EGYPTIAN HIEROGLYPH AA029
++<U0001342C> /xf0/x93/x90/xac EGYPTIAN HIEROGLYPH AA030
++<U0001342D> /xf0/x93/x90/xad EGYPTIAN HIEROGLYPH AA031
++<U0001342E> /xf0/x93/x90/xae EGYPTIAN HIEROGLYPH AA032
++<U00016800> /xf0/x96/xa0/x80 BAMUM LETTER PHASE-A NGKUE MFON
++<U00016801> /xf0/x96/xa0/x81 BAMUM LETTER PHASE-A GBIEE FON
++<U00016802> /xf0/x96/xa0/x82 BAMUM LETTER PHASE-A PON MFON PIPAEMGBIEE
++<U00016803> /xf0/x96/xa0/x83 BAMUM LETTER PHASE-A PON MFON PIPAEMBA
++<U00016804> /xf0/x96/xa0/x84 BAMUM LETTER PHASE-A NAA MFON
++<U00016805> /xf0/x96/xa0/x85 BAMUM LETTER PHASE-A SHUENSHUET
++<U00016806> /xf0/x96/xa0/x86 BAMUM LETTER PHASE-A TITA MFON
++<U00016807> /xf0/x96/xa0/x87 BAMUM LETTER PHASE-A NZA MFON
++<U00016808> /xf0/x96/xa0/x88 BAMUM LETTER PHASE-A SHINDA PA NJI
++<U00016809> /xf0/x96/xa0/x89 BAMUM LETTER PHASE-A PON PA NJI PIPAEMGBIEE
++<U0001680A> /xf0/x96/xa0/x8a BAMUM LETTER PHASE-A PON PA NJI PIPAEMBA
++<U0001680B> /xf0/x96/xa0/x8b BAMUM LETTER PHASE-A MAEMBGBIEE
++<U0001680C> /xf0/x96/xa0/x8c BAMUM LETTER PHASE-A TU MAEMBA
++<U0001680D> /xf0/x96/xa0/x8d BAMUM LETTER PHASE-A NGANGU
++<U0001680E> /xf0/x96/xa0/x8e BAMUM LETTER PHASE-A MAEMVEUX
++<U0001680F> /xf0/x96/xa0/x8f BAMUM LETTER PHASE-A MANSUAE
++<U00016810> /xf0/x96/xa0/x90 BAMUM LETTER PHASE-A MVEUAENGAM
++<U00016811> /xf0/x96/xa0/x91 BAMUM LETTER PHASE-A SEUNYAM
++<U00016812> /xf0/x96/xa0/x92 BAMUM LETTER PHASE-A NTOQPEN
++<U00016813> /xf0/x96/xa0/x93 BAMUM LETTER PHASE-A KEUKEUTNDA
++<U00016814> /xf0/x96/xa0/x94 BAMUM LETTER PHASE-A NKINDI
++<U00016815> /xf0/x96/xa0/x95 BAMUM LETTER PHASE-A SUU
++<U00016816> /xf0/x96/xa0/x96 BAMUM LETTER PHASE-A NGKUENZEUM
++<U00016817> /xf0/x96/xa0/x97 BAMUM LETTER PHASE-A LAPAQ
++<U00016818> /xf0/x96/xa0/x98 BAMUM LETTER PHASE-A LET KUT
++<U00016819> /xf0/x96/xa0/x99 BAMUM LETTER PHASE-A NTAP MFAA
++<U0001681A> /xf0/x96/xa0/x9a BAMUM LETTER PHASE-A MAEKEUP
++<U0001681B> /xf0/x96/xa0/x9b BAMUM LETTER PHASE-A PASHAE
++<U0001681C> /xf0/x96/xa0/x9c BAMUM LETTER PHASE-A GHEUAERAE
++<U0001681D> /xf0/x96/xa0/x9d BAMUM LETTER PHASE-A PAMSHAE
++<U0001681E> /xf0/x96/xa0/x9e BAMUM LETTER PHASE-A MON NGGEUAET
++<U0001681F> /xf0/x96/xa0/x9f BAMUM LETTER PHASE-A NZUN MEUT
++<U00016820> /xf0/x96/xa0/xa0 BAMUM LETTER PHASE-A U YUQ NAE
++<U00016821> /xf0/x96/xa0/xa1 BAMUM LETTER PHASE-A GHEUAEGHEUAE
++<U00016822> /xf0/x96/xa0/xa2 BAMUM LETTER PHASE-A NTAP NTAA
++<U00016823> /xf0/x96/xa0/xa3 BAMUM LETTER PHASE-A SISA
++<U00016824> /xf0/x96/xa0/xa4 BAMUM LETTER PHASE-A MGBASA
++<U00016825> /xf0/x96/xa0/xa5 BAMUM LETTER PHASE-A MEUNJOMNDEUQ
++<U00016826> /xf0/x96/xa0/xa6 BAMUM LETTER PHASE-A MOOMPUQ
++<U00016827> /xf0/x96/xa0/xa7 BAMUM LETTER PHASE-A KAFA
++<U00016828> /xf0/x96/xa0/xa8 BAMUM LETTER PHASE-A PA LEERAEWA
++<U00016829> /xf0/x96/xa0/xa9 BAMUM LETTER PHASE-A NDA LEERAEWA
++<U0001682A> /xf0/x96/xa0/xaa BAMUM LETTER PHASE-A PET
++<U0001682B> /xf0/x96/xa0/xab BAMUM LETTER PHASE-A MAEMKPEN
++<U0001682C> /xf0/x96/xa0/xac BAMUM LETTER PHASE-A NIKA
++<U0001682D> /xf0/x96/xa0/xad BAMUM LETTER PHASE-A PUP
++<U0001682E> /xf0/x96/xa0/xae BAMUM LETTER PHASE-A TUAEP
++<U0001682F> /xf0/x96/xa0/xaf BAMUM LETTER PHASE-A LUAEP
++<U00016830> /xf0/x96/xa0/xb0 BAMUM LETTER PHASE-A SONJAM
++<U00016831> /xf0/x96/xa0/xb1 BAMUM LETTER PHASE-A TEUTEUWEN
++<U00016832> /xf0/x96/xa0/xb2 BAMUM LETTER PHASE-A MAENYI
++<U00016833> /xf0/x96/xa0/xb3 BAMUM LETTER PHASE-A KET
++<U00016834> /xf0/x96/xa0/xb4 BAMUM LETTER PHASE-A NDAANGGEUAET
++<U00016835> /xf0/x96/xa0/xb5 BAMUM LETTER PHASE-A KUOQ
++<U00016836> /xf0/x96/xa0/xb6 BAMUM LETTER PHASE-A MOOMEUT
++<U00016837> /xf0/x96/xa0/xb7 BAMUM LETTER PHASE-A SHUM
++<U00016838> /xf0/x96/xa0/xb8 BAMUM LETTER PHASE-A LOMMAE
++<U00016839> /xf0/x96/xa0/xb9 BAMUM LETTER PHASE-A FIRI
++<U0001683A> /xf0/x96/xa0/xba BAMUM LETTER PHASE-A ROM
++<U0001683B> /xf0/x96/xa0/xbb BAMUM LETTER PHASE-A KPOQ
++<U0001683C> /xf0/x96/xa0/xbc BAMUM LETTER PHASE-A SOQ
++<U0001683D> /xf0/x96/xa0/xbd BAMUM LETTER PHASE-A MAP PIEET
++<U0001683E> /xf0/x96/xa0/xbe BAMUM LETTER PHASE-A SHIRAE
++<U0001683F> /xf0/x96/xa0/xbf BAMUM LETTER PHASE-A NTAP
++<U00016840> /xf0/x96/xa1/x80 BAMUM LETTER PHASE-A SHOQ NSHUT YUM
++<U00016841> /xf0/x96/xa1/x81 BAMUM LETTER PHASE-A NYIT MONGKEUAEQ
++<U00016842> /xf0/x96/xa1/x82 BAMUM LETTER PHASE-A PAARAE
++<U00016843> /xf0/x96/xa1/x83 BAMUM LETTER PHASE-A NKAARAE
++<U00016844> /xf0/x96/xa1/x84 BAMUM LETTER PHASE-A UNKNOWN
++<U00016845> /xf0/x96/xa1/x85 BAMUM LETTER PHASE-A NGGEN
++<U00016846> /xf0/x96/xa1/x86 BAMUM LETTER PHASE-A MAESI
++<U00016847> /xf0/x96/xa1/x87 BAMUM LETTER PHASE-A NJAM
++<U00016848> /xf0/x96/xa1/x88 BAMUM LETTER PHASE-A MBANYI
++<U00016849> /xf0/x96/xa1/x89 BAMUM LETTER PHASE-A NYET
++<U0001684A> /xf0/x96/xa1/x8a BAMUM LETTER PHASE-A TEUAEN
++<U0001684B> /xf0/x96/xa1/x8b BAMUM LETTER PHASE-A SOT
++<U0001684C> /xf0/x96/xa1/x8c BAMUM LETTER PHASE-A PAAM
++<U0001684D> /xf0/x96/xa1/x8d BAMUM LETTER PHASE-A NSHIEE
++<U0001684E> /xf0/x96/xa1/x8e BAMUM LETTER PHASE-A MAEM
++<U0001684F> /xf0/x96/xa1/x8f BAMUM LETTER PHASE-A NYI
++<U00016850> /xf0/x96/xa1/x90 BAMUM LETTER PHASE-A KAQ
++<U00016851> /xf0/x96/xa1/x91 BAMUM LETTER PHASE-A NSHA
++<U00016852> /xf0/x96/xa1/x92 BAMUM LETTER PHASE-A VEE
++<U00016853> /xf0/x96/xa1/x93 BAMUM LETTER PHASE-A LU
++<U00016854> /xf0/x96/xa1/x94 BAMUM LETTER PHASE-A NEN
++<U00016855> /xf0/x96/xa1/x95 BAMUM LETTER PHASE-A NAQ
++<U00016856> /xf0/x96/xa1/x96 BAMUM LETTER PHASE-A MBAQ
++<U00016857> /xf0/x96/xa1/x97 BAMUM LETTER PHASE-B NSHUET
++<U00016858> /xf0/x96/xa1/x98 BAMUM LETTER PHASE-B TU MAEMGBIEE
++<U00016859> /xf0/x96/xa1/x99 BAMUM LETTER PHASE-B SIEE
++<U0001685A> /xf0/x96/xa1/x9a BAMUM LETTER PHASE-B SET TU
++<U0001685B> /xf0/x96/xa1/x9b BAMUM LETTER PHASE-B LOM NTEUM
++<U0001685C> /xf0/x96/xa1/x9c BAMUM LETTER PHASE-B MBA MAELEE
++<U0001685D> /xf0/x96/xa1/x9d BAMUM LETTER PHASE-B KIEEM
++<U0001685E> /xf0/x96/xa1/x9e BAMUM LETTER PHASE-B YEURAE
++<U0001685F> /xf0/x96/xa1/x9f BAMUM LETTER PHASE-B MBAARAE
++<U00016860> /xf0/x96/xa1/xa0 BAMUM LETTER PHASE-B KAM
++<U00016861> /xf0/x96/xa1/xa1 BAMUM LETTER PHASE-B PEESHI
++<U00016862> /xf0/x96/xa1/xa2 BAMUM LETTER PHASE-B YAFU LEERAEWA
++<U00016863> /xf0/x96/xa1/xa3 BAMUM LETTER PHASE-B LAM NSHUT NYAM
++<U00016864> /xf0/x96/xa1/xa4 BAMUM LETTER PHASE-B NTIEE SHEUOQ
++<U00016865> /xf0/x96/xa1/xa5 BAMUM LETTER PHASE-B NDU NJAA
++<U00016866> /xf0/x96/xa1/xa6 BAMUM LETTER PHASE-B GHEUGHEUAEM
++<U00016867> /xf0/x96/xa1/xa7 BAMUM LETTER PHASE-B PIT
++<U00016868> /xf0/x96/xa1/xa8 BAMUM LETTER PHASE-B TU NSIEE
++<U00016869> /xf0/x96/xa1/xa9 BAMUM LETTER PHASE-B SHET NJAQ
++<U0001686A> /xf0/x96/xa1/xaa BAMUM LETTER PHASE-B SHEUAEQTU
++<U0001686B> /xf0/x96/xa1/xab BAMUM LETTER PHASE-B MFON TEUAEQ
++<U0001686C> /xf0/x96/xa1/xac BAMUM LETTER PHASE-B MBIT MBAAKET
++<U0001686D> /xf0/x96/xa1/xad BAMUM LETTER PHASE-B NYI NTEUM
++<U0001686E> /xf0/x96/xa1/xae BAMUM LETTER PHASE-B KEUPUQ
++<U0001686F> /xf0/x96/xa1/xaf BAMUM LETTER PHASE-B GHEUGHEN
++<U00016870> /xf0/x96/xa1/xb0 BAMUM LETTER PHASE-B KEUYEUX
++<U00016871> /xf0/x96/xa1/xb1 BAMUM LETTER PHASE-B LAANAE
++<U00016872> /xf0/x96/xa1/xb2 BAMUM LETTER PHASE-B PARUM
++<U00016873> /xf0/x96/xa1/xb3 BAMUM LETTER PHASE-B VEUM
++<U00016874> /xf0/x96/xa1/xb4 BAMUM LETTER PHASE-B NGKINDI MVOP
++<U00016875> /xf0/x96/xa1/xb5 BAMUM LETTER PHASE-B NGGEU MBU
++<U00016876> /xf0/x96/xa1/xb6 BAMUM LETTER PHASE-B WUAET
++<U00016877> /xf0/x96/xa1/xb7 BAMUM LETTER PHASE-B SAKEUAE
++<U00016878> /xf0/x96/xa1/xb8 BAMUM LETTER PHASE-B TAAM
++<U00016879> /xf0/x96/xa1/xb9 BAMUM LETTER PHASE-B MEUQ
++<U0001687A> /xf0/x96/xa1/xba BAMUM LETTER PHASE-B NGGUOQ
++<U0001687B> /xf0/x96/xa1/xbb BAMUM LETTER PHASE-B NGGUOQ LARGE
++<U0001687C> /xf0/x96/xa1/xbc BAMUM LETTER PHASE-B MFIYAQ
++<U0001687D> /xf0/x96/xa1/xbd BAMUM LETTER PHASE-B SUE
++<U0001687E> /xf0/x96/xa1/xbe BAMUM LETTER PHASE-B MBEURI
++<U0001687F> /xf0/x96/xa1/xbf BAMUM LETTER PHASE-B MONTIEEN
++<U00016880> /xf0/x96/xa2/x80 BAMUM LETTER PHASE-B NYAEMAE
++<U00016881> /xf0/x96/xa2/x81 BAMUM LETTER PHASE-B PUNGAAM
++<U00016882> /xf0/x96/xa2/x82 BAMUM LETTER PHASE-B MEUT NGGEET
++<U00016883> /xf0/x96/xa2/x83 BAMUM LETTER PHASE-B FEUX
++<U00016884> /xf0/x96/xa2/x84 BAMUM LETTER PHASE-B MBUOQ
++<U00016885> /xf0/x96/xa2/x85 BAMUM LETTER PHASE-B FEE
++<U00016886> /xf0/x96/xa2/x86 BAMUM LETTER PHASE-B KEUAEM
++<U00016887> /xf0/x96/xa2/x87 BAMUM LETTER PHASE-B MA NJEUAENA
++<U00016888> /xf0/x96/xa2/x88 BAMUM LETTER PHASE-B MA NJUQA
++<U00016889> /xf0/x96/xa2/x89 BAMUM LETTER PHASE-B LET
++<U0001688A> /xf0/x96/xa2/x8a BAMUM LETTER PHASE-B NGGAAM
++<U0001688B> /xf0/x96/xa2/x8b BAMUM LETTER PHASE-B NSEN
++<U0001688C> /xf0/x96/xa2/x8c BAMUM LETTER PHASE-B MA
++<U0001688D> /xf0/x96/xa2/x8d BAMUM LETTER PHASE-B KIQ
++<U0001688E> /xf0/x96/xa2/x8e BAMUM LETTER PHASE-B NGOM
++<U0001688F> /xf0/x96/xa2/x8f BAMUM LETTER PHASE-C NGKUE MAEMBA
++<U00016890> /xf0/x96/xa2/x90 BAMUM LETTER PHASE-C NZA
++<U00016891> /xf0/x96/xa2/x91 BAMUM LETTER PHASE-C YUM
++<U00016892> /xf0/x96/xa2/x92 BAMUM LETTER PHASE-C WANGKUOQ
++<U00016893> /xf0/x96/xa2/x93 BAMUM LETTER PHASE-C NGGEN
++<U00016894> /xf0/x96/xa2/x94 BAMUM LETTER PHASE-C NDEUAEREE
++<U00016895> /xf0/x96/xa2/x95 BAMUM LETTER PHASE-C NGKAQ
++<U00016896> /xf0/x96/xa2/x96 BAMUM LETTER PHASE-C GHARAE
++<U00016897> /xf0/x96/xa2/x97 BAMUM LETTER PHASE-C MBEEKEET
++<U00016898> /xf0/x96/xa2/x98 BAMUM LETTER PHASE-C GBAYI
++<U00016899> /xf0/x96/xa2/x99 BAMUM LETTER PHASE-C NYIR MKPARAQ MEUN
++<U0001689A> /xf0/x96/xa2/x9a BAMUM LETTER PHASE-C NTU MBIT
++<U0001689B> /xf0/x96/xa2/x9b BAMUM LETTER PHASE-C MBEUM
++<U0001689C> /xf0/x96/xa2/x9c BAMUM LETTER PHASE-C PIRIEEN
++<U0001689D> /xf0/x96/xa2/x9d BAMUM LETTER PHASE-C NDOMBU
++<U0001689E> /xf0/x96/xa2/x9e BAMUM LETTER PHASE-C MBAA CABBAGE-TREE
++<U0001689F> /xf0/x96/xa2/x9f BAMUM LETTER PHASE-C KEUSHEUAEP
++<U000168A0> /xf0/x96/xa2/xa0 BAMUM LETTER PHASE-C GHAP
++<U000168A1> /xf0/x96/xa2/xa1 BAMUM LETTER PHASE-C KEUKAQ
++<U000168A2> /xf0/x96/xa2/xa2 BAMUM LETTER PHASE-C YU MUOMAE
++<U000168A3> /xf0/x96/xa2/xa3 BAMUM LETTER PHASE-C NZEUM
++<U000168A4> /xf0/x96/xa2/xa4 BAMUM LETTER PHASE-C MBUE
++<U000168A5> /xf0/x96/xa2/xa5 BAMUM LETTER PHASE-C NSEUAEN
++<U000168A6> /xf0/x96/xa2/xa6 BAMUM LETTER PHASE-C MBIT
++<U000168A7> /xf0/x96/xa2/xa7 BAMUM LETTER PHASE-C YEUQ
++<U000168A8> /xf0/x96/xa2/xa8 BAMUM LETTER PHASE-C KPARAQ
++<U000168A9> /xf0/x96/xa2/xa9 BAMUM LETTER PHASE-C KAA
++<U000168AA> /xf0/x96/xa2/xaa BAMUM LETTER PHASE-C SEUX
++<U000168AB> /xf0/x96/xa2/xab BAMUM LETTER PHASE-C NDIDA
++<U000168AC> /xf0/x96/xa2/xac BAMUM LETTER PHASE-C TAASHAE
++<U000168AD> /xf0/x96/xa2/xad BAMUM LETTER PHASE-C NJUEQ
++<U000168AE> /xf0/x96/xa2/xae BAMUM LETTER PHASE-C TITA YUE
++<U000168AF> /xf0/x96/xa2/xaf BAMUM LETTER PHASE-C SUAET
++<U000168B0> /xf0/x96/xa2/xb0 BAMUM LETTER PHASE-C NGGUAEN NYAM
++<U000168B1> /xf0/x96/xa2/xb1 BAMUM LETTER PHASE-C VEUX
++<U000168B2> /xf0/x96/xa2/xb2 BAMUM LETTER PHASE-C NANSANAQ
++<U000168B3> /xf0/x96/xa2/xb3 BAMUM LETTER PHASE-C MA KEUAERI
++<U000168B4> /xf0/x96/xa2/xb4 BAMUM LETTER PHASE-C NTAA
++<U000168B5> /xf0/x96/xa2/xb5 BAMUM LETTER PHASE-C NGGUON
++<U000168B6> /xf0/x96/xa2/xb6 BAMUM LETTER PHASE-C LAP
++<U000168B7> /xf0/x96/xa2/xb7 BAMUM LETTER PHASE-C MBIRIEEN
++<U000168B8> /xf0/x96/xa2/xb8 BAMUM LETTER PHASE-C MGBASAQ
++<U000168B9> /xf0/x96/xa2/xb9 BAMUM LETTER PHASE-C NTEUNGBA
++<U000168BA> /xf0/x96/xa2/xba BAMUM LETTER PHASE-C TEUTEUX
++<U000168BB> /xf0/x96/xa2/xbb BAMUM LETTER PHASE-C NGGUM
++<U000168BC> /xf0/x96/xa2/xbc BAMUM LETTER PHASE-C FUE
++<U000168BD> /xf0/x96/xa2/xbd BAMUM LETTER PHASE-C NDEUT
++<U000168BE> /xf0/x96/xa2/xbe BAMUM LETTER PHASE-C NSA
++<U000168BF> /xf0/x96/xa2/xbf BAMUM LETTER PHASE-C NSHAQ
++<U000168C0> /xf0/x96/xa3/x80 BAMUM LETTER PHASE-C BUNG
++<U000168C1> /xf0/x96/xa3/x81 BAMUM LETTER PHASE-C VEUAEPEN
++<U000168C2> /xf0/x96/xa3/x82 BAMUM LETTER PHASE-C MBERAE
++<U000168C3> /xf0/x96/xa3/x83 BAMUM LETTER PHASE-C RU
++<U000168C4> /xf0/x96/xa3/x84 BAMUM LETTER PHASE-C NJAEM
++<U000168C5> /xf0/x96/xa3/x85 BAMUM LETTER PHASE-C LAM
++<U000168C6> /xf0/x96/xa3/x86 BAMUM LETTER PHASE-C TITUAEP
++<U000168C7> /xf0/x96/xa3/x87 BAMUM LETTER PHASE-C NSUOT NGOM
++<U000168C8> /xf0/x96/xa3/x88 BAMUM LETTER PHASE-C NJEEEE
++<U000168C9> /xf0/x96/xa3/x89 BAMUM LETTER PHASE-C KET
++<U000168CA> /xf0/x96/xa3/x8a BAMUM LETTER PHASE-C NGGU
++<U000168CB> /xf0/x96/xa3/x8b BAMUM LETTER PHASE-C MAESI
++<U000168CC> /xf0/x96/xa3/x8c BAMUM LETTER PHASE-C MBUAEM
++<U000168CD> /xf0/x96/xa3/x8d BAMUM LETTER PHASE-C LU
++<U000168CE> /xf0/x96/xa3/x8e BAMUM LETTER PHASE-C KUT
++<U000168CF> /xf0/x96/xa3/x8f BAMUM LETTER PHASE-C NJAM
++<U000168D0> /xf0/x96/xa3/x90 BAMUM LETTER PHASE-C NGOM
++<U000168D1> /xf0/x96/xa3/x91 BAMUM LETTER PHASE-C WUP
++<U000168D2> /xf0/x96/xa3/x92 BAMUM LETTER PHASE-C NGGUEET
++<U000168D3> /xf0/x96/xa3/x93 BAMUM LETTER PHASE-C NSOM
++<U000168D4> /xf0/x96/xa3/x94 BAMUM LETTER PHASE-C NTEN
++<U000168D5> /xf0/x96/xa3/x95 BAMUM LETTER PHASE-C KUOP NKAARAE
++<U000168D6> /xf0/x96/xa3/x96 BAMUM LETTER PHASE-C NSUN
++<U000168D7> /xf0/x96/xa3/x97 BAMUM LETTER PHASE-C NDAM
++<U000168D8> /xf0/x96/xa3/x98 BAMUM LETTER PHASE-C MA NSIEE
++<U000168D9> /xf0/x96/xa3/x99 BAMUM LETTER PHASE-C YAA
++<U000168DA> /xf0/x96/xa3/x9a BAMUM LETTER PHASE-C NDAP
++<U000168DB> /xf0/x96/xa3/x9b BAMUM LETTER PHASE-C SHUEQ
++<U000168DC> /xf0/x96/xa3/x9c BAMUM LETTER PHASE-C SETFON
++<U000168DD> /xf0/x96/xa3/x9d BAMUM LETTER PHASE-C MBI
++<U000168DE> /xf0/x96/xa3/x9e BAMUM LETTER PHASE-C MAEMBA
++<U000168DF> /xf0/x96/xa3/x9f BAMUM LETTER PHASE-C MBANYI
++<U000168E0> /xf0/x96/xa3/xa0 BAMUM LETTER PHASE-C KEUSEUX
++<U000168E1> /xf0/x96/xa3/xa1 BAMUM LETTER PHASE-C MBEUX
++<U000168E2> /xf0/x96/xa3/xa2 BAMUM LETTER PHASE-C KEUM
++<U000168E3> /xf0/x96/xa3/xa3 BAMUM LETTER PHASE-C MBAA PICKET
++<U000168E4> /xf0/x96/xa3/xa4 BAMUM LETTER PHASE-C YUWOQ
++<U000168E5> /xf0/x96/xa3/xa5 BAMUM LETTER PHASE-C NJEUX
++<U000168E6> /xf0/x96/xa3/xa6 BAMUM LETTER PHASE-C MIEE
++<U000168E7> /xf0/x96/xa3/xa7 BAMUM LETTER PHASE-C MUAE
++<U000168E8> /xf0/x96/xa3/xa8 BAMUM LETTER PHASE-C SHIQ
++<U000168E9> /xf0/x96/xa3/xa9 BAMUM LETTER PHASE-C KEN LAW
++<U000168EA> /xf0/x96/xa3/xaa BAMUM LETTER PHASE-C KEN FATIGUE
++<U000168EB> /xf0/x96/xa3/xab BAMUM LETTER PHASE-C NGAQ
++<U000168EC> /xf0/x96/xa3/xac BAMUM LETTER PHASE-C NAQ
++<U000168ED> /xf0/x96/xa3/xad BAMUM LETTER PHASE-C LIQ
++<U000168EE> /xf0/x96/xa3/xae BAMUM LETTER PHASE-C PIN
++<U000168EF> /xf0/x96/xa3/xaf BAMUM LETTER PHASE-C PEN
++<U000168F0> /xf0/x96/xa3/xb0 BAMUM LETTER PHASE-C TET
++<U000168F1> /xf0/x96/xa3/xb1 BAMUM LETTER PHASE-D MBUO
++<U000168F2> /xf0/x96/xa3/xb2 BAMUM LETTER PHASE-D WAP
++<U000168F3> /xf0/x96/xa3/xb3 BAMUM LETTER PHASE-D NJI
++<U000168F4> /xf0/x96/xa3/xb4 BAMUM LETTER PHASE-D MFON
++<U000168F5> /xf0/x96/xa3/xb5 BAMUM LETTER PHASE-D NJIEE
++<U000168F6> /xf0/x96/xa3/xb6 BAMUM LETTER PHASE-D LIEE
++<U000168F7> /xf0/x96/xa3/xb7 BAMUM LETTER PHASE-D NJEUT
++<U000168F8> /xf0/x96/xa3/xb8 BAMUM LETTER PHASE-D NSHEE
++<U000168F9> /xf0/x96/xa3/xb9 BAMUM LETTER PHASE-D NGGAAMAE
++<U000168FA> /xf0/x96/xa3/xba BAMUM LETTER PHASE-D NYAM
++<U000168FB> /xf0/x96/xa3/xbb BAMUM LETTER PHASE-D WUAEN
++<U000168FC> /xf0/x96/xa3/xbc BAMUM LETTER PHASE-D NGKUN
++<U000168FD> /xf0/x96/xa3/xbd BAMUM LETTER PHASE-D SHEE
++<U000168FE> /xf0/x96/xa3/xbe BAMUM LETTER PHASE-D NGKAP
++<U000168FF> /xf0/x96/xa3/xbf BAMUM LETTER PHASE-D KEUAETMEUN
++<U00016900> /xf0/x96/xa4/x80 BAMUM LETTER PHASE-D TEUT
++<U00016901> /xf0/x96/xa4/x81 BAMUM LETTER PHASE-D SHEUAE
++<U00016902> /xf0/x96/xa4/x82 BAMUM LETTER PHASE-D NJAP
++<U00016903> /xf0/x96/xa4/x83 BAMUM LETTER PHASE-D SUE
++<U00016904> /xf0/x96/xa4/x84 BAMUM LETTER PHASE-D KET
++<U00016905> /xf0/x96/xa4/x85 BAMUM LETTER PHASE-D YAEMMAE
++<U00016906> /xf0/x96/xa4/x86 BAMUM LETTER PHASE-D KUOM
++<U00016907> /xf0/x96/xa4/x87 BAMUM LETTER PHASE-D SAP
++<U00016908> /xf0/x96/xa4/x88 BAMUM LETTER PHASE-D MFEUT
++<U00016909> /xf0/x96/xa4/x89 BAMUM LETTER PHASE-D NDEUX
++<U0001690A> /xf0/x96/xa4/x8a BAMUM LETTER PHASE-D MALEERI
++<U0001690B> /xf0/x96/xa4/x8b BAMUM LETTER PHASE-D MEUT
++<U0001690C> /xf0/x96/xa4/x8c BAMUM LETTER PHASE-D SEUAEQ
++<U0001690D> /xf0/x96/xa4/x8d BAMUM LETTER PHASE-D YEN
++<U0001690E> /xf0/x96/xa4/x8e BAMUM LETTER PHASE-D NJEUAEM
++<U0001690F> /xf0/x96/xa4/x8f BAMUM LETTER PHASE-D KEUOT MBUAE
++<U00016910> /xf0/x96/xa4/x90 BAMUM LETTER PHASE-D NGKEURI
++<U00016911> /xf0/x96/xa4/x91 BAMUM LETTER PHASE-D TU
++<U00016912> /xf0/x96/xa4/x92 BAMUM LETTER PHASE-D GHAA
++<U00016913> /xf0/x96/xa4/x93 BAMUM LETTER PHASE-D NGKYEE
++<U00016914> /xf0/x96/xa4/x94 BAMUM LETTER PHASE-D FEUFEUAET
++<U00016915> /xf0/x96/xa4/x95 BAMUM LETTER PHASE-D NDEE
++<U00016916> /xf0/x96/xa4/x96 BAMUM LETTER PHASE-D MGBOFUM
++<U00016917> /xf0/x96/xa4/x97 BAMUM LETTER PHASE-D LEUAEP
++<U00016918> /xf0/x96/xa4/x98 BAMUM LETTER PHASE-D NDON
++<U00016919> /xf0/x96/xa4/x99 BAMUM LETTER PHASE-D MONI
++<U0001691A> /xf0/x96/xa4/x9a BAMUM LETTER PHASE-D MGBEUN
++<U0001691B> /xf0/x96/xa4/x9b BAMUM LETTER PHASE-D PUUT
++<U0001691C> /xf0/x96/xa4/x9c BAMUM LETTER PHASE-D MGBIEE
++<U0001691D> /xf0/x96/xa4/x9d BAMUM LETTER PHASE-D MFO
++<U0001691E> /xf0/x96/xa4/x9e BAMUM LETTER PHASE-D LUM
++<U0001691F> /xf0/x96/xa4/x9f BAMUM LETTER PHASE-D NSIEEP
++<U00016920> /xf0/x96/xa4/xa0 BAMUM LETTER PHASE-D MBAA
++<U00016921> /xf0/x96/xa4/xa1 BAMUM LETTER PHASE-D KWAET
++<U00016922> /xf0/x96/xa4/xa2 BAMUM LETTER PHASE-D NYET
++<U00016923> /xf0/x96/xa4/xa3 BAMUM LETTER PHASE-D TEUAEN
++<U00016924> /xf0/x96/xa4/xa4 BAMUM LETTER PHASE-D SOT
++<U00016925> /xf0/x96/xa4/xa5 BAMUM LETTER PHASE-D YUWOQ
++<U00016926> /xf0/x96/xa4/xa6 BAMUM LETTER PHASE-D KEUM
++<U00016927> /xf0/x96/xa4/xa7 BAMUM LETTER PHASE-D RAEM
++<U00016928> /xf0/x96/xa4/xa8 BAMUM LETTER PHASE-D TEEEE
++<U00016929> /xf0/x96/xa4/xa9 BAMUM LETTER PHASE-D NGKEUAEQ
++<U0001692A> /xf0/x96/xa4/xaa BAMUM LETTER PHASE-D MFEUAE
++<U0001692B> /xf0/x96/xa4/xab BAMUM LETTER PHASE-D NSIEET
++<U0001692C> /xf0/x96/xa4/xac BAMUM LETTER PHASE-D KEUP
++<U0001692D> /xf0/x96/xa4/xad BAMUM LETTER PHASE-D PIP
++<U0001692E> /xf0/x96/xa4/xae BAMUM LETTER PHASE-D PEUTAE
++<U0001692F> /xf0/x96/xa4/xaf BAMUM LETTER PHASE-D NYUE
++<U00016930> /xf0/x96/xa4/xb0 BAMUM LETTER PHASE-D LET
++<U00016931> /xf0/x96/xa4/xb1 BAMUM LETTER PHASE-D NGGAAM
++<U00016932> /xf0/x96/xa4/xb2 BAMUM LETTER PHASE-D MFIEE
++<U00016933> /xf0/x96/xa4/xb3 BAMUM LETTER PHASE-D NGGWAEN
++<U00016934> /xf0/x96/xa4/xb4 BAMUM LETTER PHASE-D YUOM
++<U00016935> /xf0/x96/xa4/xb5 BAMUM LETTER PHASE-D PAP
++<U00016936> /xf0/x96/xa4/xb6 BAMUM LETTER PHASE-D YUOP
++<U00016937> /xf0/x96/xa4/xb7 BAMUM LETTER PHASE-D NDAM
++<U00016938> /xf0/x96/xa4/xb8 BAMUM LETTER PHASE-D NTEUM
++<U00016939> /xf0/x96/xa4/xb9 BAMUM LETTER PHASE-D SUAE
++<U0001693A> /xf0/x96/xa4/xba BAMUM LETTER PHASE-D KUN
++<U0001693B> /xf0/x96/xa4/xbb BAMUM LETTER PHASE-D NGGEUX
++<U0001693C> /xf0/x96/xa4/xbc BAMUM LETTER PHASE-D NGKIEE
++<U0001693D> /xf0/x96/xa4/xbd BAMUM LETTER PHASE-D TUOT
++<U0001693E> /xf0/x96/xa4/xbe BAMUM LETTER PHASE-D MEUN
++<U0001693F> /xf0/x96/xa4/xbf BAMUM LETTER PHASE-D KUQ
++<U00016940> /xf0/x96/xa5/x80 BAMUM LETTER PHASE-D NSUM
++<U00016941> /xf0/x96/xa5/x81 BAMUM LETTER PHASE-D TEUN
++<U00016942> /xf0/x96/xa5/x82 BAMUM LETTER PHASE-D MAENJET
++<U00016943> /xf0/x96/xa5/x83 BAMUM LETTER PHASE-D NGGAP
++<U00016944> /xf0/x96/xa5/x84 BAMUM LETTER PHASE-D LEUM
++<U00016945> /xf0/x96/xa5/x85 BAMUM LETTER PHASE-D NGGUOM
++<U00016946> /xf0/x96/xa5/x86 BAMUM LETTER PHASE-D NSHUT
++<U00016947> /xf0/x96/xa5/x87 BAMUM LETTER PHASE-D NJUEQ
++<U00016948> /xf0/x96/xa5/x88 BAMUM LETTER PHASE-D GHEUAE
++<U00016949> /xf0/x96/xa5/x89 BAMUM LETTER PHASE-D KU
++<U0001694A> /xf0/x96/xa5/x8a BAMUM LETTER PHASE-D REN OLD
++<U0001694B> /xf0/x96/xa5/x8b BAMUM LETTER PHASE-D TAE
++<U0001694C> /xf0/x96/xa5/x8c BAMUM LETTER PHASE-D TOQ
++<U0001694D> /xf0/x96/xa5/x8d BAMUM LETTER PHASE-D NYI
++<U0001694E> /xf0/x96/xa5/x8e BAMUM LETTER PHASE-D RII
++<U0001694F> /xf0/x96/xa5/x8f BAMUM LETTER PHASE-D LEEEE
++<U00016950> /xf0/x96/xa5/x90 BAMUM LETTER PHASE-D MEEEE
++<U00016951> /xf0/x96/xa5/x91 BAMUM LETTER PHASE-D M
++<U00016952> /xf0/x96/xa5/x92 BAMUM LETTER PHASE-D SUU
++<U00016953> /xf0/x96/xa5/x93 BAMUM LETTER PHASE-D MU
++<U00016954> /xf0/x96/xa5/x94 BAMUM LETTER PHASE-D SHII
++<U00016955> /xf0/x96/xa5/x95 BAMUM LETTER PHASE-D SHEUX
++<U00016956> /xf0/x96/xa5/x96 BAMUM LETTER PHASE-D KYEE
++<U00016957> /xf0/x96/xa5/x97 BAMUM LETTER PHASE-D NU
++<U00016958> /xf0/x96/xa5/x98 BAMUM LETTER PHASE-D SHU
++<U00016959> /xf0/x96/xa5/x99 BAMUM LETTER PHASE-D NTEE
++<U0001695A> /xf0/x96/xa5/x9a BAMUM LETTER PHASE-D PEE
++<U0001695B> /xf0/x96/xa5/x9b BAMUM LETTER PHASE-D NI
++<U0001695C> /xf0/x96/xa5/x9c BAMUM LETTER PHASE-D SHOQ
++<U0001695D> /xf0/x96/xa5/x9d BAMUM LETTER PHASE-D PUQ
++<U0001695E> /xf0/x96/xa5/x9e BAMUM LETTER PHASE-D MVOP
++<U0001695F> /xf0/x96/xa5/x9f BAMUM LETTER PHASE-D LOQ
++<U00016960> /xf0/x96/xa5/xa0 BAMUM LETTER PHASE-D REN MUCH
++<U00016961> /xf0/x96/xa5/xa1 BAMUM LETTER PHASE-D TI
++<U00016962> /xf0/x96/xa5/xa2 BAMUM LETTER PHASE-D NTUU
++<U00016963> /xf0/x96/xa5/xa3 BAMUM LETTER PHASE-D MBAA SEVEN
++<U00016964> /xf0/x96/xa5/xa4 BAMUM LETTER PHASE-D SAQ
++<U00016965> /xf0/x96/xa5/xa5 BAMUM LETTER PHASE-D FAA
++<U00016966> /xf0/x96/xa5/xa6 BAMUM LETTER PHASE-E NDAP
++<U00016967> /xf0/x96/xa5/xa7 BAMUM LETTER PHASE-E TOON
++<U00016968> /xf0/x96/xa5/xa8 BAMUM LETTER PHASE-E MBEUM
++<U00016969> /xf0/x96/xa5/xa9 BAMUM LETTER PHASE-E LAP
++<U0001696A> /xf0/x96/xa5/xaa BAMUM LETTER PHASE-E VOM
++<U0001696B> /xf0/x96/xa5/xab BAMUM LETTER PHASE-E LOON
++<U0001696C> /xf0/x96/xa5/xac BAMUM LETTER PHASE-E PAA
++<U0001696D> /xf0/x96/xa5/xad BAMUM LETTER PHASE-E SOM
++<U0001696E> /xf0/x96/xa5/xae BAMUM LETTER PHASE-E RAQ
++<U0001696F> /xf0/x96/xa5/xaf BAMUM LETTER PHASE-E NSHUOP
++<U00016970> /xf0/x96/xa5/xb0 BAMUM LETTER PHASE-E NDUN
++<U00016971> /xf0/x96/xa5/xb1 BAMUM LETTER PHASE-E PUAE
++<U00016972> /xf0/x96/xa5/xb2 BAMUM LETTER PHASE-E TAM
++<U00016973> /xf0/x96/xa5/xb3 BAMUM LETTER PHASE-E NGKA
++<U00016974> /xf0/x96/xa5/xb4 BAMUM LETTER PHASE-E KPEUX
++<U00016975> /xf0/x96/xa5/xb5 BAMUM LETTER PHASE-E WUO
++<U00016976> /xf0/x96/xa5/xb6 BAMUM LETTER PHASE-E SEE
++<U00016977> /xf0/x96/xa5/xb7 BAMUM LETTER PHASE-E NGGEUAET
++<U00016978> /xf0/x96/xa5/xb8 BAMUM LETTER PHASE-E PAAM
++<U00016979> /xf0/x96/xa5/xb9 BAMUM LETTER PHASE-E TOO
++<U0001697A> /xf0/x96/xa5/xba BAMUM LETTER PHASE-E KUOP
++<U0001697B> /xf0/x96/xa5/xbb BAMUM LETTER PHASE-E LOM
++<U0001697C> /xf0/x96/xa5/xbc BAMUM LETTER PHASE-E NSHIEE
++<U0001697D> /xf0/x96/xa5/xbd BAMUM LETTER PHASE-E NGOP
++<U0001697E> /xf0/x96/xa5/xbe BAMUM LETTER PHASE-E MAEM
++<U0001697F> /xf0/x96/xa5/xbf BAMUM LETTER PHASE-E NGKEUX
++<U00016980> /xf0/x96/xa6/x80 BAMUM LETTER PHASE-E NGOQ
++<U00016981> /xf0/x96/xa6/x81 BAMUM LETTER PHASE-E NSHUE
++<U00016982> /xf0/x96/xa6/x82 BAMUM LETTER PHASE-E RIMGBA
++<U00016983> /xf0/x96/xa6/x83 BAMUM LETTER PHASE-E NJEUX
++<U00016984> /xf0/x96/xa6/x84 BAMUM LETTER PHASE-E PEEM
++<U00016985> /xf0/x96/xa6/x85 BAMUM LETTER PHASE-E SAA
++<U00016986> /xf0/x96/xa6/x86 BAMUM LETTER PHASE-E NGGURAE
++<U00016987> /xf0/x96/xa6/x87 BAMUM LETTER PHASE-E MGBA
++<U00016988> /xf0/x96/xa6/x88 BAMUM LETTER PHASE-E GHEUX
++<U00016989> /xf0/x96/xa6/x89 BAMUM LETTER PHASE-E NGKEUAEM
++<U0001698A> /xf0/x96/xa6/x8a BAMUM LETTER PHASE-E NJAEMLI
++<U0001698B> /xf0/x96/xa6/x8b BAMUM LETTER PHASE-E MAP
++<U0001698C> /xf0/x96/xa6/x8c BAMUM LETTER PHASE-E LOOT
++<U0001698D> /xf0/x96/xa6/x8d BAMUM LETTER PHASE-E NGGEEEE
++<U0001698E> /xf0/x96/xa6/x8e BAMUM LETTER PHASE-E NDIQ
++<U0001698F> /xf0/x96/xa6/x8f BAMUM LETTER PHASE-E TAEN NTEUM
++<U00016990> /xf0/x96/xa6/x90 BAMUM LETTER PHASE-E SET
++<U00016991> /xf0/x96/xa6/x91 BAMUM LETTER PHASE-E PUM
++<U00016992> /xf0/x96/xa6/x92 BAMUM LETTER PHASE-E NDAA SOFTNESS
++<U00016993> /xf0/x96/xa6/x93 BAMUM LETTER PHASE-E NGGUAESHAE NYAM
++<U00016994> /xf0/x96/xa6/x94 BAMUM LETTER PHASE-E YIEE
++<U00016995> /xf0/x96/xa6/x95 BAMUM LETTER PHASE-E GHEUN
++<U00016996> /xf0/x96/xa6/x96 BAMUM LETTER PHASE-E TUAE
++<U00016997> /xf0/x96/xa6/x97 BAMUM LETTER PHASE-E YEUAE
++<U00016998> /xf0/x96/xa6/x98 BAMUM LETTER PHASE-E PO
++<U00016999> /xf0/x96/xa6/x99 BAMUM LETTER PHASE-E TUMAE
++<U0001699A> /xf0/x96/xa6/x9a BAMUM LETTER PHASE-E KEUAE
++<U0001699B> /xf0/x96/xa6/x9b BAMUM LETTER PHASE-E SUAEN
++<U0001699C> /xf0/x96/xa6/x9c BAMUM LETTER PHASE-E TEUAEQ
++<U0001699D> /xf0/x96/xa6/x9d BAMUM LETTER PHASE-E VEUAE
++<U0001699E> /xf0/x96/xa6/x9e BAMUM LETTER PHASE-E WEUX
++<U0001699F> /xf0/x96/xa6/x9f BAMUM LETTER PHASE-E LAAM
++<U000169A0> /xf0/x96/xa6/xa0 BAMUM LETTER PHASE-E PU
++<U000169A1> /xf0/x96/xa6/xa1 BAMUM LETTER PHASE-E TAAQ
++<U000169A2> /xf0/x96/xa6/xa2 BAMUM LETTER PHASE-E GHAAMAE
++<U000169A3> /xf0/x96/xa6/xa3 BAMUM LETTER PHASE-E NGEUREUT
++<U000169A4> /xf0/x96/xa6/xa4 BAMUM LETTER PHASE-E SHEUAEQ
++<U000169A5> /xf0/x96/xa6/xa5 BAMUM LETTER PHASE-E MGBEN
++<U000169A6> /xf0/x96/xa6/xa6 BAMUM LETTER PHASE-E MBEE
++<U000169A7> /xf0/x96/xa6/xa7 BAMUM LETTER PHASE-E NZAQ
++<U000169A8> /xf0/x96/xa6/xa8 BAMUM LETTER PHASE-E NKOM
++<U000169A9> /xf0/x96/xa6/xa9 BAMUM LETTER PHASE-E GBET
++<U000169AA> /xf0/x96/xa6/xaa BAMUM LETTER PHASE-E TUM
++<U000169AB> /xf0/x96/xa6/xab BAMUM LETTER PHASE-E KUET
++<U000169AC> /xf0/x96/xa6/xac BAMUM LETTER PHASE-E YAP
++<U000169AD> /xf0/x96/xa6/xad BAMUM LETTER PHASE-E NYI CLEAVER
++<U000169AE> /xf0/x96/xa6/xae BAMUM LETTER PHASE-E YIT
++<U000169AF> /xf0/x96/xa6/xaf BAMUM LETTER PHASE-E MFEUQ
++<U000169B0> /xf0/x96/xa6/xb0 BAMUM LETTER PHASE-E NDIAQ
++<U000169B1> /xf0/x96/xa6/xb1 BAMUM LETTER PHASE-E PIEEQ
++<U000169B2> /xf0/x96/xa6/xb2 BAMUM LETTER PHASE-E YUEQ
++<U000169B3> /xf0/x96/xa6/xb3 BAMUM LETTER PHASE-E LEUAEM
++<U000169B4> /xf0/x96/xa6/xb4 BAMUM LETTER PHASE-E FUE
++<U000169B5> /xf0/x96/xa6/xb5 BAMUM LETTER PHASE-E GBEUX
++<U000169B6> /xf0/x96/xa6/xb6 BAMUM LETTER PHASE-E NGKUP
++<U000169B7> /xf0/x96/xa6/xb7 BAMUM LETTER PHASE-E KET
++<U000169B8> /xf0/x96/xa6/xb8 BAMUM LETTER PHASE-E MAE
++<U000169B9> /xf0/x96/xa6/xb9 BAMUM LETTER PHASE-E NGKAAMI
++<U000169BA> /xf0/x96/xa6/xba BAMUM LETTER PHASE-E GHET
++<U000169BB> /xf0/x96/xa6/xbb BAMUM LETTER PHASE-E FA
++<U000169BC> /xf0/x96/xa6/xbc BAMUM LETTER PHASE-E NTUM
++<U000169BD> /xf0/x96/xa6/xbd BAMUM LETTER PHASE-E PEUT
++<U000169BE> /xf0/x96/xa6/xbe BAMUM LETTER PHASE-E YEUM
++<U000169BF> /xf0/x96/xa6/xbf BAMUM LETTER PHASE-E NGGEUAE
++<U000169C0> /xf0/x96/xa7/x80 BAMUM LETTER PHASE-E NYI BETWEEN
++<U000169C1> /xf0/x96/xa7/x81 BAMUM LETTER PHASE-E NZUQ
++<U000169C2> /xf0/x96/xa7/x82 BAMUM LETTER PHASE-E POON
++<U000169C3> /xf0/x96/xa7/x83 BAMUM LETTER PHASE-E MIEE
++<U000169C4> /xf0/x96/xa7/x84 BAMUM LETTER PHASE-E FUET
++<U000169C5> /xf0/x96/xa7/x85 BAMUM LETTER PHASE-E NAE
++<U000169C6> /xf0/x96/xa7/x86 BAMUM LETTER PHASE-E MUAE
++<U000169C7> /xf0/x96/xa7/x87 BAMUM LETTER PHASE-E GHEUAE
++<U000169C8> /xf0/x96/xa7/x88 BAMUM LETTER PHASE-E FU I
++<U000169C9> /xf0/x96/xa7/x89 BAMUM LETTER PHASE-E MVI
++<U000169CA> /xf0/x96/xa7/x8a BAMUM LETTER PHASE-E PUAQ
++<U000169CB> /xf0/x96/xa7/x8b BAMUM LETTER PHASE-E NGKUM
++<U000169CC> /xf0/x96/xa7/x8c BAMUM LETTER PHASE-E KUT
++<U000169CD> /xf0/x96/xa7/x8d BAMUM LETTER PHASE-E PIET
++<U000169CE> /xf0/x96/xa7/x8e BAMUM LETTER PHASE-E NTAP
++<U000169CF> /xf0/x96/xa7/x8f BAMUM LETTER PHASE-E YEUAET
++<U000169D0> /xf0/x96/xa7/x90 BAMUM LETTER PHASE-E NGGUP
++<U000169D1> /xf0/x96/xa7/x91 BAMUM LETTER PHASE-E PA PEOPLE
++<U000169D2> /xf0/x96/xa7/x92 BAMUM LETTER PHASE-E FU CALL
++<U000169D3> /xf0/x96/xa7/x93 BAMUM LETTER PHASE-E FOM
++<U000169D4> /xf0/x96/xa7/x94 BAMUM LETTER PHASE-E NJEE
++<U000169D5> /xf0/x96/xa7/x95 BAMUM LETTER PHASE-E A
++<U000169D6> /xf0/x96/xa7/x96 BAMUM LETTER PHASE-E TOQ
++<U000169D7> /xf0/x96/xa7/x97 BAMUM LETTER PHASE-E O
++<U000169D8> /xf0/x96/xa7/x98 BAMUM LETTER PHASE-E I
++<U000169D9> /xf0/x96/xa7/x99 BAMUM LETTER PHASE-E LAQ
++<U000169DA> /xf0/x96/xa7/x9a BAMUM LETTER PHASE-E PA PLURAL
++<U000169DB> /xf0/x96/xa7/x9b BAMUM LETTER PHASE-E TAA
++<U000169DC> /xf0/x96/xa7/x9c BAMUM LETTER PHASE-E TAQ
++<U000169DD> /xf0/x96/xa7/x9d BAMUM LETTER PHASE-E NDAA MY HOUSE
++<U000169DE> /xf0/x96/xa7/x9e BAMUM LETTER PHASE-E SHIQ
++<U000169DF> /xf0/x96/xa7/x9f BAMUM LETTER PHASE-E YEUX
++<U000169E0> /xf0/x96/xa7/xa0 BAMUM LETTER PHASE-E NGUAE
++<U000169E1> /xf0/x96/xa7/xa1 BAMUM LETTER PHASE-E YUAEN
++<U000169E2> /xf0/x96/xa7/xa2 BAMUM LETTER PHASE-E YOQ SWIMMING
++<U000169E3> /xf0/x96/xa7/xa3 BAMUM LETTER PHASE-E YOQ COVER
++<U000169E4> /xf0/x96/xa7/xa4 BAMUM LETTER PHASE-E YUQ
++<U000169E5> /xf0/x96/xa7/xa5 BAMUM LETTER PHASE-E YUN
++<U000169E6> /xf0/x96/xa7/xa6 BAMUM LETTER PHASE-E KEUX
++<U000169E7> /xf0/x96/xa7/xa7 BAMUM LETTER PHASE-E PEUX
++<U000169E8> /xf0/x96/xa7/xa8 BAMUM LETTER PHASE-E NJEE EPOCH
++<U000169E9> /xf0/x96/xa7/xa9 BAMUM LETTER PHASE-E PUE
++<U000169EA> /xf0/x96/xa7/xaa BAMUM LETTER PHASE-E WUE
++<U000169EB> /xf0/x96/xa7/xab BAMUM LETTER PHASE-E FEE
++<U000169EC> /xf0/x96/xa7/xac BAMUM LETTER PHASE-E VEE
++<U000169ED> /xf0/x96/xa7/xad BAMUM LETTER PHASE-E LU
++<U000169EE> /xf0/x96/xa7/xae BAMUM LETTER PHASE-E MI
++<U000169EF> /xf0/x96/xa7/xaf BAMUM LETTER PHASE-E REUX
++<U000169F0> /xf0/x96/xa7/xb0 BAMUM LETTER PHASE-E RAE
++<U000169F1> /xf0/x96/xa7/xb1 BAMUM LETTER PHASE-E NGUAET
++<U000169F2> /xf0/x96/xa7/xb2 BAMUM LETTER PHASE-E NGA
++<U000169F3> /xf0/x96/xa7/xb3 BAMUM LETTER PHASE-E SHO
++<U000169F4> /xf0/x96/xa7/xb4 BAMUM LETTER PHASE-E SHOQ
++<U000169F5> /xf0/x96/xa7/xb5 BAMUM LETTER PHASE-E FU REMEDY
++<U000169F6> /xf0/x96/xa7/xb6 BAMUM LETTER PHASE-E NA
++<U000169F7> /xf0/x96/xa7/xb7 BAMUM LETTER PHASE-E PI
++<U000169F8> /xf0/x96/xa7/xb8 BAMUM LETTER PHASE-E LOQ
++<U000169F9> /xf0/x96/xa7/xb9 BAMUM LETTER PHASE-E KO
++<U000169FA> /xf0/x96/xa7/xba BAMUM LETTER PHASE-E MEN
++<U000169FB> /xf0/x96/xa7/xbb BAMUM LETTER PHASE-E MA
++<U000169FC> /xf0/x96/xa7/xbc BAMUM LETTER PHASE-E MAQ
++<U000169FD> /xf0/x96/xa7/xbd BAMUM LETTER PHASE-E TEU
++<U000169FE> /xf0/x96/xa7/xbe BAMUM LETTER PHASE-E KI
++<U000169FF> /xf0/x96/xa7/xbf BAMUM LETTER PHASE-E MON
++<U00016A00> /xf0/x96/xa8/x80 BAMUM LETTER PHASE-E TEN
++<U00016A01> /xf0/x96/xa8/x81 BAMUM LETTER PHASE-E FAQ
++<U00016A02> /xf0/x96/xa8/x82 BAMUM LETTER PHASE-E GHOM
++<U00016A03> /xf0/x96/xa8/x83 BAMUM LETTER PHASE-F KA
++<U00016A04> /xf0/x96/xa8/x84 BAMUM LETTER PHASE-F U
++<U00016A05> /xf0/x96/xa8/x85 BAMUM LETTER PHASE-F KU
++<U00016A06> /xf0/x96/xa8/x86 BAMUM LETTER PHASE-F EE
++<U00016A07> /xf0/x96/xa8/x87 BAMUM LETTER PHASE-F REE
++<U00016A08> /xf0/x96/xa8/x88 BAMUM LETTER PHASE-F TAE
++<U00016A09> /xf0/x96/xa8/x89 BAMUM LETTER PHASE-F NYI
++<U00016A0A> /xf0/x96/xa8/x8a BAMUM LETTER PHASE-F LA
++<U00016A0B> /xf0/x96/xa8/x8b BAMUM LETTER PHASE-F RII
++<U00016A0C> /xf0/x96/xa8/x8c BAMUM LETTER PHASE-F RIEE
++<U00016A0D> /xf0/x96/xa8/x8d BAMUM LETTER PHASE-F MEEEE
++<U00016A0E> /xf0/x96/xa8/x8e BAMUM LETTER PHASE-F TAA
++<U00016A0F> /xf0/x96/xa8/x8f BAMUM LETTER PHASE-F NDAA
++<U00016A10> /xf0/x96/xa8/x90 BAMUM LETTER PHASE-F NJAEM
++<U00016A11> /xf0/x96/xa8/x91 BAMUM LETTER PHASE-F M
++<U00016A12> /xf0/x96/xa8/x92 BAMUM LETTER PHASE-F SUU
++<U00016A13> /xf0/x96/xa8/x93 BAMUM LETTER PHASE-F SHII
++<U00016A14> /xf0/x96/xa8/x94 BAMUM LETTER PHASE-F SI
++<U00016A15> /xf0/x96/xa8/x95 BAMUM LETTER PHASE-F SEUX
++<U00016A16> /xf0/x96/xa8/x96 BAMUM LETTER PHASE-F KYEE
++<U00016A17> /xf0/x96/xa8/x97 BAMUM LETTER PHASE-F KET
++<U00016A18> /xf0/x96/xa8/x98 BAMUM LETTER PHASE-F NUAE
++<U00016A19> /xf0/x96/xa8/x99 BAMUM LETTER PHASE-F NU
++<U00016A1A> /xf0/x96/xa8/x9a BAMUM LETTER PHASE-F NJUAE
++<U00016A1B> /xf0/x96/xa8/x9b BAMUM LETTER PHASE-F YOQ
++<U00016A1C> /xf0/x96/xa8/x9c BAMUM LETTER PHASE-F SHU
++<U00016A1D> /xf0/x96/xa8/x9d BAMUM LETTER PHASE-F YA
++<U00016A1E> /xf0/x96/xa8/x9e BAMUM LETTER PHASE-F NSHA
++<U00016A1F> /xf0/x96/xa8/x9f BAMUM LETTER PHASE-F PEUX
++<U00016A20> /xf0/x96/xa8/xa0 BAMUM LETTER PHASE-F NTEE
++<U00016A21> /xf0/x96/xa8/xa1 BAMUM LETTER PHASE-F WUE
++<U00016A22> /xf0/x96/xa8/xa2 BAMUM LETTER PHASE-F PEE
++<U00016A23> /xf0/x96/xa8/xa3 BAMUM LETTER PHASE-F RU
++<U00016A24> /xf0/x96/xa8/xa4 BAMUM LETTER PHASE-F NI
++<U00016A25> /xf0/x96/xa8/xa5 BAMUM LETTER PHASE-F REUX
++<U00016A26> /xf0/x96/xa8/xa6 BAMUM LETTER PHASE-F KEN
++<U00016A27> /xf0/x96/xa8/xa7 BAMUM LETTER PHASE-F NGKWAEN
++<U00016A28> /xf0/x96/xa8/xa8 BAMUM LETTER PHASE-F NGGA
++<U00016A29> /xf0/x96/xa8/xa9 BAMUM LETTER PHASE-F SHO
++<U00016A2A> /xf0/x96/xa8/xaa BAMUM LETTER PHASE-F PUAE
++<U00016A2B> /xf0/x96/xa8/xab BAMUM LETTER PHASE-F FOM
++<U00016A2C> /xf0/x96/xa8/xac BAMUM LETTER PHASE-F WA
++<U00016A2D> /xf0/x96/xa8/xad BAMUM LETTER PHASE-F LI
++<U00016A2E> /xf0/x96/xa8/xae BAMUM LETTER PHASE-F LOQ
++<U00016A2F> /xf0/x96/xa8/xaf BAMUM LETTER PHASE-F KO
++<U00016A30> /xf0/x96/xa8/xb0 BAMUM LETTER PHASE-F MBEN
++<U00016A31> /xf0/x96/xa8/xb1 BAMUM LETTER PHASE-F REN
++<U00016A32> /xf0/x96/xa8/xb2 BAMUM LETTER PHASE-F MA
++<U00016A33> /xf0/x96/xa8/xb3 BAMUM LETTER PHASE-F MO
++<U00016A34> /xf0/x96/xa8/xb4 BAMUM LETTER PHASE-F MBAA
++<U00016A35> /xf0/x96/xa8/xb5 BAMUM LETTER PHASE-F TET
++<U00016A36> /xf0/x96/xa8/xb6 BAMUM LETTER PHASE-F KPA
++<U00016A37> /xf0/x96/xa8/xb7 BAMUM LETTER PHASE-F SAMBA
++<U00016A38> /xf0/x96/xa8/xb8 BAMUM LETTER PHASE-F VUEQ
++<U0001B000> /xf0/x9b/x80/x80 KATAKANA LETTER ARCHAIC E
++<U0001B001> /xf0/x9b/x80/x81 HIRAGANA LETTER ARCHAIC YE
+ <U0001D000> /xf0/x9d/x80/x80 BYZANTINE MUSICAL SYMBOL PSILI
+ <U0001D001> /xf0/x9d/x80/x81 BYZANTINE MUSICAL SYMBOL DASEIA
+ <U0001D002> /xf0/x9d/x80/x82 BYZANTINE MUSICAL SYMBOL PERISPOMENI
+@@ -30151,6 +33445,1091 @@ CHARMAP
+ <U0001F091> /xf0/x9f/x82/x91 DOMINO TILE VERTICAL-06-04
+ <U0001F092> /xf0/x9f/x82/x92 DOMINO TILE VERTICAL-06-05
+ <U0001F093> /xf0/x9f/x82/x93 DOMINO TILE VERTICAL-06-06
++<U0001F0A0> /xf0/x9f/x82/xa0 PLAYING CARD BACK
++<U0001F0A1> /xf0/x9f/x82/xa1 PLAYING CARD ACE OF SPADES
++<U0001F0A2> /xf0/x9f/x82/xa2 PLAYING CARD TWO OF SPADES
++<U0001F0A3> /xf0/x9f/x82/xa3 PLAYING CARD THREE OF SPADES
++<U0001F0A4> /xf0/x9f/x82/xa4 PLAYING CARD FOUR OF SPADES
++<U0001F0A5> /xf0/x9f/x82/xa5 PLAYING CARD FIVE OF SPADES
++<U0001F0A6> /xf0/x9f/x82/xa6 PLAYING CARD SIX OF SPADES
++<U0001F0A7> /xf0/x9f/x82/xa7 PLAYING CARD SEVEN OF SPADES
++<U0001F0A8> /xf0/x9f/x82/xa8 PLAYING CARD EIGHT OF SPADES
++<U0001F0A9> /xf0/x9f/x82/xa9 PLAYING CARD NINE OF SPADES
++<U0001F0AA> /xf0/x9f/x82/xaa PLAYING CARD TEN OF SPADES
++<U0001F0AB> /xf0/x9f/x82/xab PLAYING CARD JACK OF SPADES
++<U0001F0AC> /xf0/x9f/x82/xac PLAYING CARD KNIGHT OF SPADES
++<U0001F0AD> /xf0/x9f/x82/xad PLAYING CARD QUEEN OF SPADES
++<U0001F0AE> /xf0/x9f/x82/xae PLAYING CARD KING OF SPADES
++<U0001F0B1> /xf0/x9f/x82/xb1 PLAYING CARD ACE OF HEARTS
++<U0001F0B2> /xf0/x9f/x82/xb2 PLAYING CARD TWO OF HEARTS
++<U0001F0B3> /xf0/x9f/x82/xb3 PLAYING CARD THREE OF HEARTS
++<U0001F0B4> /xf0/x9f/x82/xb4 PLAYING CARD FOUR OF HEARTS
++<U0001F0B5> /xf0/x9f/x82/xb5 PLAYING CARD FIVE OF HEARTS
++<U0001F0B6> /xf0/x9f/x82/xb6 PLAYING CARD SIX OF HEARTS
++<U0001F0B7> /xf0/x9f/x82/xb7 PLAYING CARD SEVEN OF HEARTS
++<U0001F0B8> /xf0/x9f/x82/xb8 PLAYING CARD EIGHT OF HEARTS
++<U0001F0B9> /xf0/x9f/x82/xb9 PLAYING CARD NINE OF HEARTS
++<U0001F0BA> /xf0/x9f/x82/xba PLAYING CARD TEN OF HEARTS
++<U0001F0BB> /xf0/x9f/x82/xbb PLAYING CARD JACK OF HEARTS
++<U0001F0BC> /xf0/x9f/x82/xbc PLAYING CARD KNIGHT OF HEARTS
++<U0001F0BD> /xf0/x9f/x82/xbd PLAYING CARD QUEEN OF HEARTS
++<U0001F0BE> /xf0/x9f/x82/xbe PLAYING CARD KING OF HEARTS
++<U0001F0C1> /xf0/x9f/x83/x81 PLAYING CARD ACE OF DIAMONDS
++<U0001F0C2> /xf0/x9f/x83/x82 PLAYING CARD TWO OF DIAMONDS
++<U0001F0C3> /xf0/x9f/x83/x83 PLAYING CARD THREE OF DIAMONDS
++<U0001F0C4> /xf0/x9f/x83/x84 PLAYING CARD FOUR OF DIAMONDS
++<U0001F0C5> /xf0/x9f/x83/x85 PLAYING CARD FIVE OF DIAMONDS
++<U0001F0C6> /xf0/x9f/x83/x86 PLAYING CARD SIX OF DIAMONDS
++<U0001F0C7> /xf0/x9f/x83/x87 PLAYING CARD SEVEN OF DIAMONDS
++<U0001F0C8> /xf0/x9f/x83/x88 PLAYING CARD EIGHT OF DIAMONDS
++<U0001F0C9> /xf0/x9f/x83/x89 PLAYING CARD NINE OF DIAMONDS
++<U0001F0CA> /xf0/x9f/x83/x8a PLAYING CARD TEN OF DIAMONDS
++<U0001F0CB> /xf0/x9f/x83/x8b PLAYING CARD JACK OF DIAMONDS
++<U0001F0CC> /xf0/x9f/x83/x8c PLAYING CARD KNIGHT OF DIAMONDS
++<U0001F0CD> /xf0/x9f/x83/x8d PLAYING CARD QUEEN OF DIAMONDS
++<U0001F0CE> /xf0/x9f/x83/x8e PLAYING CARD KING OF DIAMONDS
++<U0001F0CF> /xf0/x9f/x83/x8f PLAYING CARD BLACK JOKER
++<U0001F0D1> /xf0/x9f/x83/x91 PLAYING CARD ACE OF CLUBS
++<U0001F0D2> /xf0/x9f/x83/x92 PLAYING CARD TWO OF CLUBS
++<U0001F0D3> /xf0/x9f/x83/x93 PLAYING CARD THREE OF CLUBS
++<U0001F0D4> /xf0/x9f/x83/x94 PLAYING CARD FOUR OF CLUBS
++<U0001F0D5> /xf0/x9f/x83/x95 PLAYING CARD FIVE OF CLUBS
++<U0001F0D6> /xf0/x9f/x83/x96 PLAYING CARD SIX OF CLUBS
++<U0001F0D7> /xf0/x9f/x83/x97 PLAYING CARD SEVEN OF CLUBS
++<U0001F0D8> /xf0/x9f/x83/x98 PLAYING CARD EIGHT OF CLUBS
++<U0001F0D9> /xf0/x9f/x83/x99 PLAYING CARD NINE OF CLUBS
++<U0001F0DA> /xf0/x9f/x83/x9a PLAYING CARD TEN OF CLUBS
++<U0001F0DB> /xf0/x9f/x83/x9b PLAYING CARD JACK OF CLUBS
++<U0001F0DC> /xf0/x9f/x83/x9c PLAYING CARD KNIGHT OF CLUBS
++<U0001F0DD> /xf0/x9f/x83/x9d PLAYING CARD QUEEN OF CLUBS
++<U0001F0DE> /xf0/x9f/x83/x9e PLAYING CARD KING OF CLUBS
++<U0001F0DF> /xf0/x9f/x83/x9f PLAYING CARD WHITE JOKER
++<U0001F100> /xf0/x9f/x84/x80 DIGIT ZERO FULL STOP
++<U0001F101> /xf0/x9f/x84/x81 DIGIT ZERO COMMA
++<U0001F102> /xf0/x9f/x84/x82 DIGIT ONE COMMA
++<U0001F103> /xf0/x9f/x84/x83 DIGIT TWO COMMA
++<U0001F104> /xf0/x9f/x84/x84 DIGIT THREE COMMA
++<U0001F105> /xf0/x9f/x84/x85 DIGIT FOUR COMMA
++<U0001F106> /xf0/x9f/x84/x86 DIGIT FIVE COMMA
++<U0001F107> /xf0/x9f/x84/x87 DIGIT SIX COMMA
++<U0001F108> /xf0/x9f/x84/x88 DIGIT SEVEN COMMA
++<U0001F109> /xf0/x9f/x84/x89 DIGIT EIGHT COMMA
++<U0001F10A> /xf0/x9f/x84/x8a DIGIT NINE COMMA
++<U0001F110> /xf0/x9f/x84/x90 PARENTHESIZED LATIN CAPITAL LETTER A
++<U0001F111> /xf0/x9f/x84/x91 PARENTHESIZED LATIN CAPITAL LETTER B
++<U0001F112> /xf0/x9f/x84/x92 PARENTHESIZED LATIN CAPITAL LETTER C
++<U0001F113> /xf0/x9f/x84/x93 PARENTHESIZED LATIN CAPITAL LETTER D
++<U0001F114> /xf0/x9f/x84/x94 PARENTHESIZED LATIN CAPITAL LETTER E
++<U0001F115> /xf0/x9f/x84/x95 PARENTHESIZED LATIN CAPITAL LETTER F
++<U0001F116> /xf0/x9f/x84/x96 PARENTHESIZED LATIN CAPITAL LETTER G
++<U0001F117> /xf0/x9f/x84/x97 PARENTHESIZED LATIN CAPITAL LETTER H
++<U0001F118> /xf0/x9f/x84/x98 PARENTHESIZED LATIN CAPITAL LETTER I
++<U0001F119> /xf0/x9f/x84/x99 PARENTHESIZED LATIN CAPITAL LETTER J
++<U0001F11A> /xf0/x9f/x84/x9a PARENTHESIZED LATIN CAPITAL LETTER K
++<U0001F11B> /xf0/x9f/x84/x9b PARENTHESIZED LATIN CAPITAL LETTER L
++<U0001F11C> /xf0/x9f/x84/x9c PARENTHESIZED LATIN CAPITAL LETTER M
++<U0001F11D> /xf0/x9f/x84/x9d PARENTHESIZED LATIN CAPITAL LETTER N
++<U0001F11E> /xf0/x9f/x84/x9e PARENTHESIZED LATIN CAPITAL LETTER O
++<U0001F11F> /xf0/x9f/x84/x9f PARENTHESIZED LATIN CAPITAL LETTER P
++<U0001F120> /xf0/x9f/x84/xa0 PARENTHESIZED LATIN CAPITAL LETTER Q
++<U0001F121> /xf0/x9f/x84/xa1 PARENTHESIZED LATIN CAPITAL LETTER R
++<U0001F122> /xf0/x9f/x84/xa2 PARENTHESIZED LATIN CAPITAL LETTER S
++<U0001F123> /xf0/x9f/x84/xa3 PARENTHESIZED LATIN CAPITAL LETTER T
++<U0001F124> /xf0/x9f/x84/xa4 PARENTHESIZED LATIN CAPITAL LETTER U
++<U0001F125> /xf0/x9f/x84/xa5 PARENTHESIZED LATIN CAPITAL LETTER V
++<U0001F126> /xf0/x9f/x84/xa6 PARENTHESIZED LATIN CAPITAL LETTER W
++<U0001F127> /xf0/x9f/x84/xa7 PARENTHESIZED LATIN CAPITAL LETTER X
++<U0001F128> /xf0/x9f/x84/xa8 PARENTHESIZED LATIN CAPITAL LETTER Y
++<U0001F129> /xf0/x9f/x84/xa9 PARENTHESIZED LATIN CAPITAL LETTER Z
++<U0001F12A> /xf0/x9f/x84/xaa TORTOISE SHELL BRACKETED LATIN CAPITAL LETTER S
++<U0001F12B> /xf0/x9f/x84/xab CIRCLED ITALIC LATIN CAPITAL LETTER C
++<U0001F12C> /xf0/x9f/x84/xac CIRCLED ITALIC LATIN CAPITAL LETTER R
++<U0001F12D> /xf0/x9f/x84/xad CIRCLED CD
++<U0001F12E> /xf0/x9f/x84/xae CIRCLED WZ
++<U0001F130> /xf0/x9f/x84/xb0 SQUARED LATIN CAPITAL LETTER A
++<U0001F131> /xf0/x9f/x84/xb1 SQUARED LATIN CAPITAL LETTER B
++<U0001F132> /xf0/x9f/x84/xb2 SQUARED LATIN CAPITAL LETTER C
++<U0001F133> /xf0/x9f/x84/xb3 SQUARED LATIN CAPITAL LETTER D
++<U0001F134> /xf0/x9f/x84/xb4 SQUARED LATIN CAPITAL LETTER E
++<U0001F135> /xf0/x9f/x84/xb5 SQUARED LATIN CAPITAL LETTER F
++<U0001F136> /xf0/x9f/x84/xb6 SQUARED LATIN CAPITAL LETTER G
++<U0001F137> /xf0/x9f/x84/xb7 SQUARED LATIN CAPITAL LETTER H
++<U0001F138> /xf0/x9f/x84/xb8 SQUARED LATIN CAPITAL LETTER I
++<U0001F139> /xf0/x9f/x84/xb9 SQUARED LATIN CAPITAL LETTER J
++<U0001F13A> /xf0/x9f/x84/xba SQUARED LATIN CAPITAL LETTER K
++<U0001F13B> /xf0/x9f/x84/xbb SQUARED LATIN CAPITAL LETTER L
++<U0001F13C> /xf0/x9f/x84/xbc SQUARED LATIN CAPITAL LETTER M
++<U0001F13D> /xf0/x9f/x84/xbd SQUARED LATIN CAPITAL LETTER N
++<U0001F13E> /xf0/x9f/x84/xbe SQUARED LATIN CAPITAL LETTER O
++<U0001F13F> /xf0/x9f/x84/xbf SQUARED LATIN CAPITAL LETTER P
++<U0001F140> /xf0/x9f/x85/x80 SQUARED LATIN CAPITAL LETTER Q
++<U0001F141> /xf0/x9f/x85/x81 SQUARED LATIN CAPITAL LETTER R
++<U0001F142> /xf0/x9f/x85/x82 SQUARED LATIN CAPITAL LETTER S
++<U0001F143> /xf0/x9f/x85/x83 SQUARED LATIN CAPITAL LETTER T
++<U0001F144> /xf0/x9f/x85/x84 SQUARED LATIN CAPITAL LETTER U
++<U0001F145> /xf0/x9f/x85/x85 SQUARED LATIN CAPITAL LETTER V
++<U0001F146> /xf0/x9f/x85/x86 SQUARED LATIN CAPITAL LETTER W
++<U0001F147> /xf0/x9f/x85/x87 SQUARED LATIN CAPITAL LETTER X
++<U0001F148> /xf0/x9f/x85/x88 SQUARED LATIN CAPITAL LETTER Y
++<U0001F149> /xf0/x9f/x85/x89 SQUARED LATIN CAPITAL LETTER Z
++<U0001F14A> /xf0/x9f/x85/x8a SQUARED HV
++<U0001F14B> /xf0/x9f/x85/x8b SQUARED MV
++<U0001F14C> /xf0/x9f/x85/x8c SQUARED SD
++<U0001F14D> /xf0/x9f/x85/x8d SQUARED SS
++<U0001F14E> /xf0/x9f/x85/x8e SQUARED PPV
++<U0001F14F> /xf0/x9f/x85/x8f SQUARED WC
++<U0001F150> /xf0/x9f/x85/x90 NEGATIVE CIRCLED LATIN CAPITAL LETTER A
++<U0001F151> /xf0/x9f/x85/x91 NEGATIVE CIRCLED LATIN CAPITAL LETTER B
++<U0001F152> /xf0/x9f/x85/x92 NEGATIVE CIRCLED LATIN CAPITAL LETTER C
++<U0001F153> /xf0/x9f/x85/x93 NEGATIVE CIRCLED LATIN CAPITAL LETTER D
++<U0001F154> /xf0/x9f/x85/x94 NEGATIVE CIRCLED LATIN CAPITAL LETTER E
++<U0001F155> /xf0/x9f/x85/x95 NEGATIVE CIRCLED LATIN CAPITAL LETTER F
++<U0001F156> /xf0/x9f/x85/x96 NEGATIVE CIRCLED LATIN CAPITAL LETTER G
++<U0001F157> /xf0/x9f/x85/x97 NEGATIVE CIRCLED LATIN CAPITAL LETTER H
++<U0001F158> /xf0/x9f/x85/x98 NEGATIVE CIRCLED LATIN CAPITAL LETTER I
++<U0001F159> /xf0/x9f/x85/x99 NEGATIVE CIRCLED LATIN CAPITAL LETTER J
++<U0001F15A> /xf0/x9f/x85/x9a NEGATIVE CIRCLED LATIN CAPITAL LETTER K
++<U0001F15B> /xf0/x9f/x85/x9b NEGATIVE CIRCLED LATIN CAPITAL LETTER L
++<U0001F15C> /xf0/x9f/x85/x9c NEGATIVE CIRCLED LATIN CAPITAL LETTER M
++<U0001F15D> /xf0/x9f/x85/x9d NEGATIVE CIRCLED LATIN CAPITAL LETTER N
++<U0001F15E> /xf0/x9f/x85/x9e NEGATIVE CIRCLED LATIN CAPITAL LETTER O
++<U0001F15F> /xf0/x9f/x85/x9f NEGATIVE CIRCLED LATIN CAPITAL LETTER P
++<U0001F160> /xf0/x9f/x85/xa0 NEGATIVE CIRCLED LATIN CAPITAL LETTER Q
++<U0001F161> /xf0/x9f/x85/xa1 NEGATIVE CIRCLED LATIN CAPITAL LETTER R
++<U0001F162> /xf0/x9f/x85/xa2 NEGATIVE CIRCLED LATIN CAPITAL LETTER S
++<U0001F163> /xf0/x9f/x85/xa3 NEGATIVE CIRCLED LATIN CAPITAL LETTER T
++<U0001F164> /xf0/x9f/x85/xa4 NEGATIVE CIRCLED LATIN CAPITAL LETTER U
++<U0001F165> /xf0/x9f/x85/xa5 NEGATIVE CIRCLED LATIN CAPITAL LETTER V
++<U0001F166> /xf0/x9f/x85/xa6 NEGATIVE CIRCLED LATIN CAPITAL LETTER W
++<U0001F167> /xf0/x9f/x85/xa7 NEGATIVE CIRCLED LATIN CAPITAL LETTER X
++<U0001F168> /xf0/x9f/x85/xa8 NEGATIVE CIRCLED LATIN CAPITAL LETTER Y
++<U0001F169> /xf0/x9f/x85/xa9 NEGATIVE CIRCLED LATIN CAPITAL LETTER Z
++<U0001F170> /xf0/x9f/x85/xb0 NEGATIVE SQUARED LATIN CAPITAL LETTER A
++<U0001F171> /xf0/x9f/x85/xb1 NEGATIVE SQUARED LATIN CAPITAL LETTER B
++<U0001F172> /xf0/x9f/x85/xb2 NEGATIVE SQUARED LATIN CAPITAL LETTER C
++<U0001F173> /xf0/x9f/x85/xb3 NEGATIVE SQUARED LATIN CAPITAL LETTER D
++<U0001F174> /xf0/x9f/x85/xb4 NEGATIVE SQUARED LATIN CAPITAL LETTER E
++<U0001F175> /xf0/x9f/x85/xb5 NEGATIVE SQUARED LATIN CAPITAL LETTER F
++<U0001F176> /xf0/x9f/x85/xb6 NEGATIVE SQUARED LATIN CAPITAL LETTER G
++<U0001F177> /xf0/x9f/x85/xb7 NEGATIVE SQUARED LATIN CAPITAL LETTER H
++<U0001F178> /xf0/x9f/x85/xb8 NEGATIVE SQUARED LATIN CAPITAL LETTER I
++<U0001F179> /xf0/x9f/x85/xb9 NEGATIVE SQUARED LATIN CAPITAL LETTER J
++<U0001F17A> /xf0/x9f/x85/xba NEGATIVE SQUARED LATIN CAPITAL LETTER K
++<U0001F17B> /xf0/x9f/x85/xbb NEGATIVE SQUARED LATIN CAPITAL LETTER L
++<U0001F17C> /xf0/x9f/x85/xbc NEGATIVE SQUARED LATIN CAPITAL LETTER M
++<U0001F17D> /xf0/x9f/x85/xbd NEGATIVE SQUARED LATIN CAPITAL LETTER N
++<U0001F17E> /xf0/x9f/x85/xbe NEGATIVE SQUARED LATIN CAPITAL LETTER O
++<U0001F17F> /xf0/x9f/x85/xbf NEGATIVE SQUARED LATIN CAPITAL LETTER P
++<U0001F180> /xf0/x9f/x86/x80 NEGATIVE SQUARED LATIN CAPITAL LETTER Q
++<U0001F181> /xf0/x9f/x86/x81 NEGATIVE SQUARED LATIN CAPITAL LETTER R
++<U0001F182> /xf0/x9f/x86/x82 NEGATIVE SQUARED LATIN CAPITAL LETTER S
++<U0001F183> /xf0/x9f/x86/x83 NEGATIVE SQUARED LATIN CAPITAL LETTER T
++<U0001F184> /xf0/x9f/x86/x84 NEGATIVE SQUARED LATIN CAPITAL LETTER U
++<U0001F185> /xf0/x9f/x86/x85 NEGATIVE SQUARED LATIN CAPITAL LETTER V
++<U0001F186> /xf0/x9f/x86/x86 NEGATIVE SQUARED LATIN CAPITAL LETTER W
++<U0001F187> /xf0/x9f/x86/x87 NEGATIVE SQUARED LATIN CAPITAL LETTER X
++<U0001F188> /xf0/x9f/x86/x88 NEGATIVE SQUARED LATIN CAPITAL LETTER Y
++<U0001F189> /xf0/x9f/x86/x89 NEGATIVE SQUARED LATIN CAPITAL LETTER Z
++<U0001F18A> /xf0/x9f/x86/x8a CROSSED NEGATIVE SQUARED LATIN CAPITAL LETTER P
++<U0001F18B> /xf0/x9f/x86/x8b NEGATIVE SQUARED IC
++<U0001F18C> /xf0/x9f/x86/x8c NEGATIVE SQUARED PA
++<U0001F18D> /xf0/x9f/x86/x8d NEGATIVE SQUARED SA
++<U0001F18E> /xf0/x9f/x86/x8e NEGATIVE SQUARED AB
++<U0001F18F> /xf0/x9f/x86/x8f NEGATIVE SQUARED WC
++<U0001F190> /xf0/x9f/x86/x90 SQUARE DJ
++<U0001F191> /xf0/x9f/x86/x91 SQUARED CL
++<U0001F192> /xf0/x9f/x86/x92 SQUARED COOL
++<U0001F193> /xf0/x9f/x86/x93 SQUARED FREE
++<U0001F194> /xf0/x9f/x86/x94 SQUARED ID
++<U0001F195> /xf0/x9f/x86/x95 SQUARED NEW
++<U0001F196> /xf0/x9f/x86/x96 SQUARED NG
++<U0001F197> /xf0/x9f/x86/x97 SQUARED OK
++<U0001F198> /xf0/x9f/x86/x98 SQUARED SOS
++<U0001F199> /xf0/x9f/x86/x99 SQUARED UP WITH EXCLAMATION MARK
++<U0001F19A> /xf0/x9f/x86/x9a SQUARED VS
++<U0001F1E6> /xf0/x9f/x87/xa6 REGIONAL INDICATOR SYMBOL LETTER A
++<U0001F1E7> /xf0/x9f/x87/xa7 REGIONAL INDICATOR SYMBOL LETTER B
++<U0001F1E8> /xf0/x9f/x87/xa8 REGIONAL INDICATOR SYMBOL LETTER C
++<U0001F1E9> /xf0/x9f/x87/xa9 REGIONAL INDICATOR SYMBOL LETTER D
++<U0001F1EA> /xf0/x9f/x87/xaa REGIONAL INDICATOR SYMBOL LETTER E
++<U0001F1EB> /xf0/x9f/x87/xab REGIONAL INDICATOR SYMBOL LETTER F
++<U0001F1EC> /xf0/x9f/x87/xac REGIONAL INDICATOR SYMBOL LETTER G
++<U0001F1ED> /xf0/x9f/x87/xad REGIONAL INDICATOR SYMBOL LETTER H
++<U0001F1EE> /xf0/x9f/x87/xae REGIONAL INDICATOR SYMBOL LETTER I
++<U0001F1EF> /xf0/x9f/x87/xaf REGIONAL INDICATOR SYMBOL LETTER J
++<U0001F1F0> /xf0/x9f/x87/xb0 REGIONAL INDICATOR SYMBOL LETTER K
++<U0001F1F1> /xf0/x9f/x87/xb1 REGIONAL INDICATOR SYMBOL LETTER L
++<U0001F1F2> /xf0/x9f/x87/xb2 REGIONAL INDICATOR SYMBOL LETTER M
++<U0001F1F3> /xf0/x9f/x87/xb3 REGIONAL INDICATOR SYMBOL LETTER N
++<U0001F1F4> /xf0/x9f/x87/xb4 REGIONAL INDICATOR SYMBOL LETTER O
++<U0001F1F5> /xf0/x9f/x87/xb5 REGIONAL INDICATOR SYMBOL LETTER P
++<U0001F1F6> /xf0/x9f/x87/xb6 REGIONAL INDICATOR SYMBOL LETTER Q
++<U0001F1F7> /xf0/x9f/x87/xb7 REGIONAL INDICATOR SYMBOL LETTER R
++<U0001F1F8> /xf0/x9f/x87/xb8 REGIONAL INDICATOR SYMBOL LETTER S
++<U0001F1F9> /xf0/x9f/x87/xb9 REGIONAL INDICATOR SYMBOL LETTER T
++<U0001F1FA> /xf0/x9f/x87/xba REGIONAL INDICATOR SYMBOL LETTER U
++<U0001F1FB> /xf0/x9f/x87/xbb REGIONAL INDICATOR SYMBOL LETTER V
++<U0001F1FC> /xf0/x9f/x87/xbc REGIONAL INDICATOR SYMBOL LETTER W
++<U0001F1FD> /xf0/x9f/x87/xbd REGIONAL INDICATOR SYMBOL LETTER X
++<U0001F1FE> /xf0/x9f/x87/xbe REGIONAL INDICATOR SYMBOL LETTER Y
++<U0001F1FF> /xf0/x9f/x87/xbf REGIONAL INDICATOR SYMBOL LETTER Z
++<U0001F200> /xf0/x9f/x88/x80 SQUARE HIRAGANA HOKA
++<U0001F201> /xf0/x9f/x88/x81 SQUARED KATAKANA KOKO
++<U0001F202> /xf0/x9f/x88/x82 SQUARED KATAKANA SA
++<U0001F210> /xf0/x9f/x88/x90 SQUARED CJK UNIFIED IDEOGRAPH-624B
++<U0001F211> /xf0/x9f/x88/x91 SQUARED CJK UNIFIED IDEOGRAPH-5B57
++<U0001F212> /xf0/x9f/x88/x92 SQUARED CJK UNIFIED IDEOGRAPH-53CC
++<U0001F213> /xf0/x9f/x88/x93 SQUARED KATAKANA DE
++<U0001F214> /xf0/x9f/x88/x94 SQUARED CJK UNIFIED IDEOGRAPH-4E8C
++<U0001F215> /xf0/x9f/x88/x95 SQUARED CJK UNIFIED IDEOGRAPH-591A
++<U0001F216> /xf0/x9f/x88/x96 SQUARED CJK UNIFIED IDEOGRAPH-89E3
++<U0001F217> /xf0/x9f/x88/x97 SQUARED CJK UNIFIED IDEOGRAPH-5929
++<U0001F218> /xf0/x9f/x88/x98 SQUARED CJK UNIFIED IDEOGRAPH-4EA4
++<U0001F219> /xf0/x9f/x88/x99 SQUARED CJK UNIFIED IDEOGRAPH-6620
++<U0001F21A> /xf0/x9f/x88/x9a SQUARED CJK UNIFIED IDEOGRAPH-7121
++<U0001F21B> /xf0/x9f/x88/x9b SQUARED CJK UNIFIED IDEOGRAPH-6599
++<U0001F21C> /xf0/x9f/x88/x9c SQUARED CJK UNIFIED IDEOGRAPH-524D
++<U0001F21D> /xf0/x9f/x88/x9d SQUARED CJK UNIFIED IDEOGRAPH-5F8C
++<U0001F21E> /xf0/x9f/x88/x9e SQUARED CJK UNIFIED IDEOGRAPH-518D
++<U0001F21F> /xf0/x9f/x88/x9f SQUARED CJK UNIFIED IDEOGRAPH-65B0
++<U0001F220> /xf0/x9f/x88/xa0 SQUARED CJK UNIFIED IDEOGRAPH-521D
++<U0001F221> /xf0/x9f/x88/xa1 SQUARED CJK UNIFIED IDEOGRAPH-7D42
++<U0001F222> /xf0/x9f/x88/xa2 SQUARED CJK UNIFIED IDEOGRAPH-751F
++<U0001F223> /xf0/x9f/x88/xa3 SQUARED CJK UNIFIED IDEOGRAPH-8CA9
++<U0001F224> /xf0/x9f/x88/xa4 SQUARED CJK UNIFIED IDEOGRAPH-58F0
++<U0001F225> /xf0/x9f/x88/xa5 SQUARED CJK UNIFIED IDEOGRAPH-5439
++<U0001F226> /xf0/x9f/x88/xa6 SQUARED CJK UNIFIED IDEOGRAPH-6F14
++<U0001F227> /xf0/x9f/x88/xa7 SQUARED CJK UNIFIED IDEOGRAPH-6295
++<U0001F228> /xf0/x9f/x88/xa8 SQUARED CJK UNIFIED IDEOGRAPH-6355
++<U0001F229> /xf0/x9f/x88/xa9 SQUARED CJK UNIFIED IDEOGRAPH-4E00
++<U0001F22A> /xf0/x9f/x88/xaa SQUARED CJK UNIFIED IDEOGRAPH-4E09
++<U0001F22B> /xf0/x9f/x88/xab SQUARED CJK UNIFIED IDEOGRAPH-904A
++<U0001F22C> /xf0/x9f/x88/xac SQUARED CJK UNIFIED IDEOGRAPH-5DE6
++<U0001F22D> /xf0/x9f/x88/xad SQUARED CJK UNIFIED IDEOGRAPH-4E2D
++<U0001F22E> /xf0/x9f/x88/xae SQUARED CJK UNIFIED IDEOGRAPH-53F3
++<U0001F22F> /xf0/x9f/x88/xaf SQUARED CJK UNIFIED IDEOGRAPH-6307
++<U0001F230> /xf0/x9f/x88/xb0 SQUARED CJK UNIFIED IDEOGRAPH-8D70
++<U0001F231> /xf0/x9f/x88/xb1 SQUARED CJK UNIFIED IDEOGRAPH-6253
++<U0001F232> /xf0/x9f/x88/xb2 SQUARED CJK UNIFIED IDEOGRAPH-7981
++<U0001F233> /xf0/x9f/x88/xb3 SQUARED CJK UNIFIED IDEOGRAPH-7A7A
++<U0001F234> /xf0/x9f/x88/xb4 SQUARED CJK UNIFIED IDEOGRAPH-5408
++<U0001F235> /xf0/x9f/x88/xb5 SQUARED CJK UNIFIED IDEOGRAPH-6E80
++<U0001F236> /xf0/x9f/x88/xb6 SQUARED CJK UNIFIED IDEOGRAPH-6709
++<U0001F237> /xf0/x9f/x88/xb7 SQUARED CJK UNIFIED IDEOGRAPH-6708
++<U0001F238> /xf0/x9f/x88/xb8 SQUARED CJK UNIFIED IDEOGRAPH-7533
++<U0001F239> /xf0/x9f/x88/xb9 SQUARED CJK UNIFIED IDEOGRAPH-5272
++<U0001F23A> /xf0/x9f/x88/xba SQUARED CJK UNIFIED IDEOGRAPH-55B6
++<U0001F240> /xf0/x9f/x89/x80 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C
++<U0001F241> /xf0/x9f/x89/x81 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E09
++<U0001F242> /xf0/x9f/x89/x82 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E8C
++<U0001F243> /xf0/x9f/x89/x83 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-5B89
++<U0001F244> /xf0/x9f/x89/x84 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-70B9
++<U0001F245> /xf0/x9f/x89/x85 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6253
++<U0001F246> /xf0/x9f/x89/x86 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-76D7
++<U0001F247> /xf0/x9f/x89/x87 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-52DD
++<U0001F248> /xf0/x9f/x89/x88 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557
++<U0001F250> /xf0/x9f/x89/x90 CIRCLED IDEOGRAPH ADVANTAGE
++<U0001F251> /xf0/x9f/x89/x91 CIRCLED IDEOGRAPH ACCEPT
++<U0001F300> /xf0/x9f/x8c/x80 CYCLONE
++<U0001F301> /xf0/x9f/x8c/x81 FOGGY
++<U0001F302> /xf0/x9f/x8c/x82 CLOSED UMBRELLA
++<U0001F303> /xf0/x9f/x8c/x83 NIGHT WITH STARS
++<U0001F304> /xf0/x9f/x8c/x84 SUNRISE OVER MOUNTAINS
++<U0001F305> /xf0/x9f/x8c/x85 SUNRISE
++<U0001F306> /xf0/x9f/x8c/x86 CITYSCAPE AT DUSK
++<U0001F307> /xf0/x9f/x8c/x87 SUNSET OVER BUILDINGS
++<U0001F308> /xf0/x9f/x8c/x88 RAINBOW
++<U0001F309> /xf0/x9f/x8c/x89 BRIDGE AT NIGHT
++<U0001F30A> /xf0/x9f/x8c/x8a WATER WAVE
++<U0001F30B> /xf0/x9f/x8c/x8b VOLCANO
++<U0001F30C> /xf0/x9f/x8c/x8c MILKY WAY
++<U0001F30D> /xf0/x9f/x8c/x8d EARTH GLOBE EUROPE-AFRICA
++<U0001F30E> /xf0/x9f/x8c/x8e EARTH GLOBE AMERICAS
++<U0001F30F> /xf0/x9f/x8c/x8f EARTH GLOBE ASIA-AUSTRALIA
++<U0001F310> /xf0/x9f/x8c/x90 GLOBE WITH MERIDIANS
++<U0001F311> /xf0/x9f/x8c/x91 NEW MOON SYMBOL
++<U0001F312> /xf0/x9f/x8c/x92 WAXING CRESCENT MOON SYMBOL
++<U0001F313> /xf0/x9f/x8c/x93 FIRST QUARTER MOON SYMBOL
++<U0001F314> /xf0/x9f/x8c/x94 WAXING GIBBOUS MOON SYMBOL
++<U0001F315> /xf0/x9f/x8c/x95 FULL MOON SYMBOL
++<U0001F316> /xf0/x9f/x8c/x96 WANING GIBBOUS MOON SYMBOL
++<U0001F317> /xf0/x9f/x8c/x97 LAST QUARTER MOON SYMBOL
++<U0001F318> /xf0/x9f/x8c/x98 WANING CRESCENT MOON SYMBOL
++<U0001F319> /xf0/x9f/x8c/x99 CRESCENT MOON
++<U0001F31A> /xf0/x9f/x8c/x9a NEW MOON WITH FACE
++<U0001F31B> /xf0/x9f/x8c/x9b FIRST QUARTER MOON WITH FACE
++<U0001F31C> /xf0/x9f/x8c/x9c LAST QUARTER MOON WITH FACE
++<U0001F31D> /xf0/x9f/x8c/x9d FULL MOON WITH FACE
++<U0001F31E> /xf0/x9f/x8c/x9e SUN WITH FACE
++<U0001F31F> /xf0/x9f/x8c/x9f GLOWING STAR
++<U0001F320> /xf0/x9f/x8c/xa0 SHOOTING STAR
++<U0001F330> /xf0/x9f/x8c/xb0 CHESTNUT
++<U0001F331> /xf0/x9f/x8c/xb1 SEEDLING
++<U0001F332> /xf0/x9f/x8c/xb2 EVERGREEN TREE
++<U0001F333> /xf0/x9f/x8c/xb3 DECIDUOUS TREE
++<U0001F334> /xf0/x9f/x8c/xb4 PALM TREE
++<U0001F335> /xf0/x9f/x8c/xb5 CACTUS
++<U0001F337> /xf0/x9f/x8c/xb7 TULIP
++<U0001F338> /xf0/x9f/x8c/xb8 CHERRY BLOSSOM
++<U0001F339> /xf0/x9f/x8c/xb9 ROSE
++<U0001F33A> /xf0/x9f/x8c/xba HIBISCUS
++<U0001F33B> /xf0/x9f/x8c/xbb SUNFLOWER
++<U0001F33C> /xf0/x9f/x8c/xbc BLOSSOM
++<U0001F33D> /xf0/x9f/x8c/xbd EAR OF MAIZE
++<U0001F33E> /xf0/x9f/x8c/xbe EAR OF RICE
++<U0001F33F> /xf0/x9f/x8c/xbf HERB
++<U0001F340> /xf0/x9f/x8d/x80 FOUR LEAF CLOVER
++<U0001F341> /xf0/x9f/x8d/x81 MAPLE LEAF
++<U0001F342> /xf0/x9f/x8d/x82 FALLEN LEAF
++<U0001F343> /xf0/x9f/x8d/x83 LEAF FLUTTERING IN WIND
++<U0001F344> /xf0/x9f/x8d/x84 MUSHROOM
++<U0001F345> /xf0/x9f/x8d/x85 TOMATO
++<U0001F346> /xf0/x9f/x8d/x86 AUBERGINE
++<U0001F347> /xf0/x9f/x8d/x87 GRAPES
++<U0001F348> /xf0/x9f/x8d/x88 MELON
++<U0001F349> /xf0/x9f/x8d/x89 WATERMELON
++<U0001F34A> /xf0/x9f/x8d/x8a TANGERINE
++<U0001F34B> /xf0/x9f/x8d/x8b LEMON
++<U0001F34C> /xf0/x9f/x8d/x8c BANANA
++<U0001F34D> /xf0/x9f/x8d/x8d PINEAPPLE
++<U0001F34E> /xf0/x9f/x8d/x8e RED APPLE
++<U0001F34F> /xf0/x9f/x8d/x8f GREEN APPLE
++<U0001F350> /xf0/x9f/x8d/x90 PEAR
++<U0001F351> /xf0/x9f/x8d/x91 PEACH
++<U0001F352> /xf0/x9f/x8d/x92 CHERRIES
++<U0001F353> /xf0/x9f/x8d/x93 STRAWBERRY
++<U0001F354> /xf0/x9f/x8d/x94 HAMBURGER
++<U0001F355> /xf0/x9f/x8d/x95 SLICE OF PIZZA
++<U0001F356> /xf0/x9f/x8d/x96 MEAT ON BONE
++<U0001F357> /xf0/x9f/x8d/x97 POULTRY LEG
++<U0001F358> /xf0/x9f/x8d/x98 RICE CRACKER
++<U0001F359> /xf0/x9f/x8d/x99 RICE BALL
++<U0001F35A> /xf0/x9f/x8d/x9a COOKED RICE
++<U0001F35B> /xf0/x9f/x8d/x9b CURRY AND RICE
++<U0001F35C> /xf0/x9f/x8d/x9c STEAMING BOWL
++<U0001F35D> /xf0/x9f/x8d/x9d SPAGHETTI
++<U0001F35E> /xf0/x9f/x8d/x9e BREAD
++<U0001F35F> /xf0/x9f/x8d/x9f FRENCH FRIES
++<U0001F360> /xf0/x9f/x8d/xa0 ROASTED SWEET POTATO
++<U0001F361> /xf0/x9f/x8d/xa1 DANGO
++<U0001F362> /xf0/x9f/x8d/xa2 ODEN
++<U0001F363> /xf0/x9f/x8d/xa3 SUSHI
++<U0001F364> /xf0/x9f/x8d/xa4 FRIED SHRIMP
++<U0001F365> /xf0/x9f/x8d/xa5 FISH CAKE WITH SWIRL DESIGN
++<U0001F366> /xf0/x9f/x8d/xa6 SOFT ICE CREAM
++<U0001F367> /xf0/x9f/x8d/xa7 SHAVED ICE
++<U0001F368> /xf0/x9f/x8d/xa8 ICE CREAM
++<U0001F369> /xf0/x9f/x8d/xa9 DOUGHNUT
++<U0001F36A> /xf0/x9f/x8d/xaa COOKIE
++<U0001F36B> /xf0/x9f/x8d/xab CHOCOLATE BAR
++<U0001F36C> /xf0/x9f/x8d/xac CANDY
++<U0001F36D> /xf0/x9f/x8d/xad LOLLIPOP
++<U0001F36E> /xf0/x9f/x8d/xae CUSTARD
++<U0001F36F> /xf0/x9f/x8d/xaf HONEY POT
++<U0001F370> /xf0/x9f/x8d/xb0 SHORTCAKE
++<U0001F371> /xf0/x9f/x8d/xb1 BENTO BOX
++<U0001F372> /xf0/x9f/x8d/xb2 POT OF FOOD
++<U0001F373> /xf0/x9f/x8d/xb3 COOKING
++<U0001F374> /xf0/x9f/x8d/xb4 FORK AND KNIFE
++<U0001F375> /xf0/x9f/x8d/xb5 TEACUP WITHOUT HANDLE
++<U0001F376> /xf0/x9f/x8d/xb6 SAKE BOTTLE AND CUP
++<U0001F377> /xf0/x9f/x8d/xb7 WINE GLASS
++<U0001F378> /xf0/x9f/x8d/xb8 COCKTAIL GLASS
++<U0001F379> /xf0/x9f/x8d/xb9 TROPICAL DRINK
++<U0001F37A> /xf0/x9f/x8d/xba BEER MUG
++<U0001F37B> /xf0/x9f/x8d/xbb CLINKING BEER MUGS
++<U0001F37C> /xf0/x9f/x8d/xbc BABY BOTTLE
++<U0001F380> /xf0/x9f/x8e/x80 RIBBON
++<U0001F381> /xf0/x9f/x8e/x81 WRAPPED PRESENT
++<U0001F382> /xf0/x9f/x8e/x82 BIRTHDAY CAKE
++<U0001F383> /xf0/x9f/x8e/x83 JACK-O-LANTERN
++<U0001F384> /xf0/x9f/x8e/x84 CHRISTMAS TREE
++<U0001F385> /xf0/x9f/x8e/x85 FATHER CHRISTMAS
++<U0001F386> /xf0/x9f/x8e/x86 FIREWORKS
++<U0001F387> /xf0/x9f/x8e/x87 FIREWORK SPARKLER
++<U0001F388> /xf0/x9f/x8e/x88 BALLOON
++<U0001F389> /xf0/x9f/x8e/x89 PARTY POPPER
++<U0001F38A> /xf0/x9f/x8e/x8a CONFETTI BALL
++<U0001F38B> /xf0/x9f/x8e/x8b TANABATA TREE
++<U0001F38C> /xf0/x9f/x8e/x8c CROSSED FLAGS
++<U0001F38D> /xf0/x9f/x8e/x8d PINE DECORATION
++<U0001F38E> /xf0/x9f/x8e/x8e JAPANESE DOLLS
++<U0001F38F> /xf0/x9f/x8e/x8f CARP STREAMER
++<U0001F390> /xf0/x9f/x8e/x90 WIND CHIME
++<U0001F391> /xf0/x9f/x8e/x91 MOON VIEWING CEREMONY
++<U0001F392> /xf0/x9f/x8e/x92 SCHOOL SATCHEL
++<U0001F393> /xf0/x9f/x8e/x93 GRADUATION CAP
++<U0001F3A0> /xf0/x9f/x8e/xa0 CAROUSEL HORSE
++<U0001F3A1> /xf0/x9f/x8e/xa1 FERRIS WHEEL
++<U0001F3A2> /xf0/x9f/x8e/xa2 ROLLER COASTER
++<U0001F3A3> /xf0/x9f/x8e/xa3 FISHING POLE AND FISH
++<U0001F3A4> /xf0/x9f/x8e/xa4 MICROPHONE
++<U0001F3A5> /xf0/x9f/x8e/xa5 MOVIE CAMERA
++<U0001F3A6> /xf0/x9f/x8e/xa6 CINEMA
++<U0001F3A7> /xf0/x9f/x8e/xa7 HEADPHONE
++<U0001F3A8> /xf0/x9f/x8e/xa8 ARTIST PALETTE
++<U0001F3A9> /xf0/x9f/x8e/xa9 TOP HAT
++<U0001F3AA> /xf0/x9f/x8e/xaa CIRCUS TENT
++<U0001F3AB> /xf0/x9f/x8e/xab TICKET
++<U0001F3AC> /xf0/x9f/x8e/xac CLAPPER BOARD
++<U0001F3AD> /xf0/x9f/x8e/xad PERFORMING ARTS
++<U0001F3AE> /xf0/x9f/x8e/xae VIDEO GAME
++<U0001F3AF> /xf0/x9f/x8e/xaf DIRECT HIT
++<U0001F3B0> /xf0/x9f/x8e/xb0 SLOT MACHINE
++<U0001F3B1> /xf0/x9f/x8e/xb1 BILLIARDS
++<U0001F3B2> /xf0/x9f/x8e/xb2 GAME DIE
++<U0001F3B3> /xf0/x9f/x8e/xb3 BOWLING
++<U0001F3B4> /xf0/x9f/x8e/xb4 FLOWER PLAYING CARDS
++<U0001F3B5> /xf0/x9f/x8e/xb5 MUSICAL NOTE
++<U0001F3B6> /xf0/x9f/x8e/xb6 MULTIPLE MUSICAL NOTES
++<U0001F3B7> /xf0/x9f/x8e/xb7 SAXOPHONE
++<U0001F3B8> /xf0/x9f/x8e/xb8 GUITAR
++<U0001F3B9> /xf0/x9f/x8e/xb9 MUSICAL KEYBOARD
++<U0001F3BA> /xf0/x9f/x8e/xba TRUMPET
++<U0001F3BB> /xf0/x9f/x8e/xbb VIOLIN
++<U0001F3BC> /xf0/x9f/x8e/xbc MUSICAL SCORE
++<U0001F3BD> /xf0/x9f/x8e/xbd RUNNING SHIRT WITH SASH
++<U0001F3BE> /xf0/x9f/x8e/xbe TENNIS RACQUET AND BALL
++<U0001F3BF> /xf0/x9f/x8e/xbf SKI AND SKI BOOT
++<U0001F3C0> /xf0/x9f/x8f/x80 BASKETBALL AND HOOP
++<U0001F3C1> /xf0/x9f/x8f/x81 CHEQUERED FLAG
++<U0001F3C2> /xf0/x9f/x8f/x82 SNOWBOARDER
++<U0001F3C3> /xf0/x9f/x8f/x83 RUNNER
++<U0001F3C4> /xf0/x9f/x8f/x84 SURFER
++<U0001F3C6> /xf0/x9f/x8f/x86 TROPHY
++<U0001F3C7> /xf0/x9f/x8f/x87 HORSE RACING
++<U0001F3C8> /xf0/x9f/x8f/x88 AMERICAN FOOTBALL
++<U0001F3C9> /xf0/x9f/x8f/x89 RUGBY FOOTBALL
++<U0001F3CA> /xf0/x9f/x8f/x8a SWIMMER
++<U0001F3E0> /xf0/x9f/x8f/xa0 HOUSE BUILDING
++<U0001F3E1> /xf0/x9f/x8f/xa1 HOUSE WITH GARDEN
++<U0001F3E2> /xf0/x9f/x8f/xa2 OFFICE BUILDING
++<U0001F3E3> /xf0/x9f/x8f/xa3 JAPANESE POST OFFICE
++<U0001F3E4> /xf0/x9f/x8f/xa4 EUROPEAN POST OFFICE
++<U0001F3E5> /xf0/x9f/x8f/xa5 HOSPITAL
++<U0001F3E6> /xf0/x9f/x8f/xa6 BANK
++<U0001F3E7> /xf0/x9f/x8f/xa7 AUTOMATED TELLER MACHINE
++<U0001F3E8> /xf0/x9f/x8f/xa8 HOTEL
++<U0001F3E9> /xf0/x9f/x8f/xa9 LOVE HOTEL
++<U0001F3EA> /xf0/x9f/x8f/xaa CONVENIENCE STORE
++<U0001F3EB> /xf0/x9f/x8f/xab SCHOOL
++<U0001F3EC> /xf0/x9f/x8f/xac DEPARTMENT STORE
++<U0001F3ED> /xf0/x9f/x8f/xad FACTORY
++<U0001F3EE> /xf0/x9f/x8f/xae IZAKAYA LANTERN
++<U0001F3EF> /xf0/x9f/x8f/xaf JAPANESE CASTLE
++<U0001F3F0> /xf0/x9f/x8f/xb0 EUROPEAN CASTLE
++<U0001F400> /xf0/x9f/x90/x80 RAT
++<U0001F401> /xf0/x9f/x90/x81 MOUSE
++<U0001F402> /xf0/x9f/x90/x82 OX
++<U0001F403> /xf0/x9f/x90/x83 WATER BUFFALO
++<U0001F404> /xf0/x9f/x90/x84 COW
++<U0001F405> /xf0/x9f/x90/x85 TIGER
++<U0001F406> /xf0/x9f/x90/x86 LEOPARD
++<U0001F407> /xf0/x9f/x90/x87 RABBIT
++<U0001F408> /xf0/x9f/x90/x88 CAT
++<U0001F409> /xf0/x9f/x90/x89 DRAGON
++<U0001F40A> /xf0/x9f/x90/x8a CROCODILE
++<U0001F40B> /xf0/x9f/x90/x8b WHALE
++<U0001F40C> /xf0/x9f/x90/x8c SNAIL
++<U0001F40D> /xf0/x9f/x90/x8d SNAKE
++<U0001F40E> /xf0/x9f/x90/x8e HORSE
++<U0001F40F> /xf0/x9f/x90/x8f RAM
++<U0001F410> /xf0/x9f/x90/x90 GOAT
++<U0001F411> /xf0/x9f/x90/x91 SHEEP
++<U0001F412> /xf0/x9f/x90/x92 MONKEY
++<U0001F413> /xf0/x9f/x90/x93 ROOSTER
++<U0001F414> /xf0/x9f/x90/x94 CHICKEN
++<U0001F415> /xf0/x9f/x90/x95 DOG
++<U0001F416> /xf0/x9f/x90/x96 PIG
++<U0001F417> /xf0/x9f/x90/x97 BOAR
++<U0001F418> /xf0/x9f/x90/x98 ELEPHANT
++<U0001F419> /xf0/x9f/x90/x99 OCTOPUS
++<U0001F41A> /xf0/x9f/x90/x9a SPIRAL SHELL
++<U0001F41B> /xf0/x9f/x90/x9b BUG
++<U0001F41C> /xf0/x9f/x90/x9c ANT
++<U0001F41D> /xf0/x9f/x90/x9d HONEYBEE
++<U0001F41E> /xf0/x9f/x90/x9e LADY BEETLE
++<U0001F41F> /xf0/x9f/x90/x9f FISH
++<U0001F420> /xf0/x9f/x90/xa0 TROPICAL FISH
++<U0001F421> /xf0/x9f/x90/xa1 BLOWFISH
++<U0001F422> /xf0/x9f/x90/xa2 TURTLE
++<U0001F423> /xf0/x9f/x90/xa3 HATCHING CHICK
++<U0001F424> /xf0/x9f/x90/xa4 BABY CHICK
++<U0001F425> /xf0/x9f/x90/xa5 FRONT-FACING BABY CHICK
++<U0001F426> /xf0/x9f/x90/xa6 BIRD
++<U0001F427> /xf0/x9f/x90/xa7 PENGUIN
++<U0001F428> /xf0/x9f/x90/xa8 KOALA
++<U0001F429> /xf0/x9f/x90/xa9 POODLE
++<U0001F42A> /xf0/x9f/x90/xaa DROMEDARY CAMEL
++<U0001F42B> /xf0/x9f/x90/xab BACTRIAN CAMEL
++<U0001F42C> /xf0/x9f/x90/xac DOLPHIN
++<U0001F42D> /xf0/x9f/x90/xad MOUSE FACE
++<U0001F42E> /xf0/x9f/x90/xae COW FACE
++<U0001F42F> /xf0/x9f/x90/xaf TIGER FACE
++<U0001F430> /xf0/x9f/x90/xb0 RABBIT FACE
++<U0001F431> /xf0/x9f/x90/xb1 CAT FACE
++<U0001F432> /xf0/x9f/x90/xb2 DRAGON FACE
++<U0001F433> /xf0/x9f/x90/xb3 SPOUTING WHALE
++<U0001F434> /xf0/x9f/x90/xb4 HORSE FACE
++<U0001F435> /xf0/x9f/x90/xb5 MONKEY FACE
++<U0001F436> /xf0/x9f/x90/xb6 DOG FACE
++<U0001F437> /xf0/x9f/x90/xb7 PIG FACE
++<U0001F438> /xf0/x9f/x90/xb8 FROG FACE
++<U0001F439> /xf0/x9f/x90/xb9 HAMSTER FACE
++<U0001F43A> /xf0/x9f/x90/xba WOLF FACE
++<U0001F43B> /xf0/x9f/x90/xbb BEAR FACE
++<U0001F43C> /xf0/x9f/x90/xbc PANDA FACE
++<U0001F43D> /xf0/x9f/x90/xbd PIG NOSE
++<U0001F43E> /xf0/x9f/x90/xbe PAW PRINTS
++<U0001F440> /xf0/x9f/x91/x80 EYES
++<U0001F442> /xf0/x9f/x91/x82 EAR
++<U0001F443> /xf0/x9f/x91/x83 NOSE
++<U0001F444> /xf0/x9f/x91/x84 MOUTH
++<U0001F445> /xf0/x9f/x91/x85 TONGUE
++<U0001F446> /xf0/x9f/x91/x86 WHITE UP POINTING BACKHAND INDEX
++<U0001F447> /xf0/x9f/x91/x87 WHITE DOWN POINTING BACKHAND INDEX
++<U0001F448> /xf0/x9f/x91/x88 WHITE LEFT POINTING BACKHAND INDEX
++<U0001F449> /xf0/x9f/x91/x89 WHITE RIGHT POINTING BACKHAND INDEX
++<U0001F44A> /xf0/x9f/x91/x8a FISTED HAND SIGN
++<U0001F44B> /xf0/x9f/x91/x8b WAVING HAND SIGN
++<U0001F44C> /xf0/x9f/x91/x8c OK HAND SIGN
++<U0001F44D> /xf0/x9f/x91/x8d THUMBS UP SIGN
++<U0001F44E> /xf0/x9f/x91/x8e THUMBS DOWN SIGN
++<U0001F44F> /xf0/x9f/x91/x8f CLAPPING HANDS SIGN
++<U0001F450> /xf0/x9f/x91/x90 OPEN HANDS SIGN
++<U0001F451> /xf0/x9f/x91/x91 CROWN
++<U0001F452> /xf0/x9f/x91/x92 WOMANS HAT
++<U0001F453> /xf0/x9f/x91/x93 EYEGLASSES
++<U0001F454> /xf0/x9f/x91/x94 NECKTIE
++<U0001F455> /xf0/x9f/x91/x95 T-SHIRT
++<U0001F456> /xf0/x9f/x91/x96 JEANS
++<U0001F457> /xf0/x9f/x91/x97 DRESS
++<U0001F458> /xf0/x9f/x91/x98 KIMONO
++<U0001F459> /xf0/x9f/x91/x99 BIKINI
++<U0001F45A> /xf0/x9f/x91/x9a WOMANS CLOTHES
++<U0001F45B> /xf0/x9f/x91/x9b PURSE
++<U0001F45C> /xf0/x9f/x91/x9c HANDBAG
++<U0001F45D> /xf0/x9f/x91/x9d POUCH
++<U0001F45E> /xf0/x9f/x91/x9e MANS SHOE
++<U0001F45F> /xf0/x9f/x91/x9f ATHLETIC SHOE
++<U0001F460> /xf0/x9f/x91/xa0 HIGH-HEELED SHOE
++<U0001F461> /xf0/x9f/x91/xa1 WOMANS SANDAL
++<U0001F462> /xf0/x9f/x91/xa2 WOMANS BOOTS
++<U0001F463> /xf0/x9f/x91/xa3 FOOTPRINTS
++<U0001F464> /xf0/x9f/x91/xa4 BUST IN SILHOUETTE
++<U0001F465> /xf0/x9f/x91/xa5 BUSTS IN SILHOUETTE
++<U0001F466> /xf0/x9f/x91/xa6 BOY
++<U0001F467> /xf0/x9f/x91/xa7 GIRL
++<U0001F468> /xf0/x9f/x91/xa8 MAN
++<U0001F469> /xf0/x9f/x91/xa9 WOMAN
++<U0001F46A> /xf0/x9f/x91/xaa FAMILY
++<U0001F46B> /xf0/x9f/x91/xab MAN AND WOMAN HOLDING HANDS
++<U0001F46C> /xf0/x9f/x91/xac TWO MEN HOLDING HANDS
++<U0001F46D> /xf0/x9f/x91/xad TWO WOMEN HOLDING HANDS
++<U0001F46E> /xf0/x9f/x91/xae POLICE OFFICER
++<U0001F46F> /xf0/x9f/x91/xaf WOMAN WITH BUNNY EARS
++<U0001F470> /xf0/x9f/x91/xb0 BRIDE WITH VEIL
++<U0001F471> /xf0/x9f/x91/xb1 PERSON WITH BLOND HAIR
++<U0001F472> /xf0/x9f/x91/xb2 MAN WITH GUA PI MAO
++<U0001F473> /xf0/x9f/x91/xb3 MAN WITH TURBAN
++<U0001F474> /xf0/x9f/x91/xb4 OLDER MAN
++<U0001F475> /xf0/x9f/x91/xb5 OLDER WOMAN
++<U0001F476> /xf0/x9f/x91/xb6 BABY
++<U0001F477> /xf0/x9f/x91/xb7 CONSTRUCTION WORKER
++<U0001F478> /xf0/x9f/x91/xb8 PRINCESS
++<U0001F479> /xf0/x9f/x91/xb9 JAPANESE OGRE
++<U0001F47A> /xf0/x9f/x91/xba JAPANESE GOBLIN
++<U0001F47B> /xf0/x9f/x91/xbb GHOST
++<U0001F47C> /xf0/x9f/x91/xbc BABY ANGEL
++<U0001F47D> /xf0/x9f/x91/xbd EXTRATERRESTRIAL ALIEN
++<U0001F47E> /xf0/x9f/x91/xbe ALIEN MONSTER
++<U0001F47F> /xf0/x9f/x91/xbf IMP
++<U0001F480> /xf0/x9f/x92/x80 SKULL
++<U0001F481> /xf0/x9f/x92/x81 INFORMATION DESK PERSON
++<U0001F482> /xf0/x9f/x92/x82 GUARDSMAN
++<U0001F483> /xf0/x9f/x92/x83 DANCER
++<U0001F484> /xf0/x9f/x92/x84 LIPSTICK
++<U0001F485> /xf0/x9f/x92/x85 NAIL POLISH
++<U0001F486> /xf0/x9f/x92/x86 FACE MASSAGE
++<U0001F487> /xf0/x9f/x92/x87 HAIRCUT
++<U0001F488> /xf0/x9f/x92/x88 BARBER POLE
++<U0001F489> /xf0/x9f/x92/x89 SYRINGE
++<U0001F48A> /xf0/x9f/x92/x8a PILL
++<U0001F48B> /xf0/x9f/x92/x8b KISS MARK
++<U0001F48C> /xf0/x9f/x92/x8c LOVE LETTER
++<U0001F48D> /xf0/x9f/x92/x8d RING
++<U0001F48E> /xf0/x9f/x92/x8e GEM STONE
++<U0001F48F> /xf0/x9f/x92/x8f KISS
++<U0001F490> /xf0/x9f/x92/x90 BOUQUET
++<U0001F491> /xf0/x9f/x92/x91 COUPLE WITH HEART
++<U0001F492> /xf0/x9f/x92/x92 WEDDING
++<U0001F493> /xf0/x9f/x92/x93 BEATING HEART
++<U0001F494> /xf0/x9f/x92/x94 BROKEN HEART
++<U0001F495> /xf0/x9f/x92/x95 TWO HEARTS
++<U0001F496> /xf0/x9f/x92/x96 SPARKLING HEART
++<U0001F497> /xf0/x9f/x92/x97 GROWING HEART
++<U0001F498> /xf0/x9f/x92/x98 HEART WITH ARROW
++<U0001F499> /xf0/x9f/x92/x99 BLUE HEART
++<U0001F49A> /xf0/x9f/x92/x9a GREEN HEART
++<U0001F49B> /xf0/x9f/x92/x9b YELLOW HEART
++<U0001F49C> /xf0/x9f/x92/x9c PURPLE HEART
++<U0001F49D> /xf0/x9f/x92/x9d HEART WITH RIBBON
++<U0001F49E> /xf0/x9f/x92/x9e REVOLVING HEARTS
++<U0001F49F> /xf0/x9f/x92/x9f HEART DECORATION
++<U0001F4A0> /xf0/x9f/x92/xa0 DIAMOND SHAPE WITH A DOT INSIDE
++<U0001F4A1> /xf0/x9f/x92/xa1 ELECTRIC LIGHT BULB
++<U0001F4A2> /xf0/x9f/x92/xa2 ANGER SYMBOL
++<U0001F4A3> /xf0/x9f/x92/xa3 BOMB
++<U0001F4A4> /xf0/x9f/x92/xa4 SLEEPING SYMBOL
++<U0001F4A5> /xf0/x9f/x92/xa5 COLLISION SYMBOL
++<U0001F4A6> /xf0/x9f/x92/xa6 SPLASHING SWEAT SYMBOL
++<U0001F4A7> /xf0/x9f/x92/xa7 DROPLET
++<U0001F4A8> /xf0/x9f/x92/xa8 DASH SYMBOL
++<U0001F4A9> /xf0/x9f/x92/xa9 PILE OF POO
++<U0001F4AA> /xf0/x9f/x92/xaa FLEXED BICEPS
++<U0001F4AB> /xf0/x9f/x92/xab DIZZY SYMBOL
++<U0001F4AC> /xf0/x9f/x92/xac SPEECH BALLOON
++<U0001F4AD> /xf0/x9f/x92/xad THOUGHT BALLOON
++<U0001F4AE> /xf0/x9f/x92/xae WHITE FLOWER
++<U0001F4AF> /xf0/x9f/x92/xaf HUNDRED POINTS SYMBOL
++<U0001F4B0> /xf0/x9f/x92/xb0 MONEY BAG
++<U0001F4B1> /xf0/x9f/x92/xb1 CURRENCY EXCHANGE
++<U0001F4B2> /xf0/x9f/x92/xb2 HEAVY DOLLAR SIGN
++<U0001F4B3> /xf0/x9f/x92/xb3 CREDIT CARD
++<U0001F4B4> /xf0/x9f/x92/xb4 BANKNOTE WITH YEN SIGN
++<U0001F4B5> /xf0/x9f/x92/xb5 BANKNOTE WITH DOLLAR SIGN
++<U0001F4B6> /xf0/x9f/x92/xb6 BANKNOTE WITH EURO SIGN
++<U0001F4B7> /xf0/x9f/x92/xb7 BANKNOTE WITH POUND SIGN
++<U0001F4B8> /xf0/x9f/x92/xb8 MONEY WITH WINGS
++<U0001F4B9> /xf0/x9f/x92/xb9 CHART WITH UPWARDS TREND AND YEN SIGN
++<U0001F4BA> /xf0/x9f/x92/xba SEAT
++<U0001F4BB> /xf0/x9f/x92/xbb PERSONAL COMPUTER
++<U0001F4BC> /xf0/x9f/x92/xbc BRIEFCASE
++<U0001F4BD> /xf0/x9f/x92/xbd MINIDISC
++<U0001F4BE> /xf0/x9f/x92/xbe FLOPPY DISK
++<U0001F4BF> /xf0/x9f/x92/xbf OPTICAL DISC
++<U0001F4C0> /xf0/x9f/x93/x80 DVD
++<U0001F4C1> /xf0/x9f/x93/x81 FILE FOLDER
++<U0001F4C2> /xf0/x9f/x93/x82 OPEN FILE FOLDER
++<U0001F4C3> /xf0/x9f/x93/x83 PAGE WITH CURL
++<U0001F4C4> /xf0/x9f/x93/x84 PAGE FACING UP
++<U0001F4C5> /xf0/x9f/x93/x85 CALENDAR
++<U0001F4C6> /xf0/x9f/x93/x86 TEAR-OFF CALENDAR
++<U0001F4C7> /xf0/x9f/x93/x87 CARD INDEX
++<U0001F4C8> /xf0/x9f/x93/x88 CHART WITH UPWARDS TREND
++<U0001F4C9> /xf0/x9f/x93/x89 CHART WITH DOWNWARDS TREND
++<U0001F4CA> /xf0/x9f/x93/x8a BAR CHART
++<U0001F4CB> /xf0/x9f/x93/x8b CLIPBOARD
++<U0001F4CC> /xf0/x9f/x93/x8c PUSHPIN
++<U0001F4CD> /xf0/x9f/x93/x8d ROUND PUSHPIN
++<U0001F4CE> /xf0/x9f/x93/x8e PAPERCLIP
++<U0001F4CF> /xf0/x9f/x93/x8f STRAIGHT RULER
++<U0001F4D0> /xf0/x9f/x93/x90 TRIANGULAR RULER
++<U0001F4D1> /xf0/x9f/x93/x91 BOOKMARK TABS
++<U0001F4D2> /xf0/x9f/x93/x92 LEDGER
++<U0001F4D3> /xf0/x9f/x93/x93 NOTEBOOK
++<U0001F4D4> /xf0/x9f/x93/x94 NOTEBOOK WITH DECORATIVE COVER
++<U0001F4D5> /xf0/x9f/x93/x95 CLOSED BOOK
++<U0001F4D6> /xf0/x9f/x93/x96 OPEN BOOK
++<U0001F4D7> /xf0/x9f/x93/x97 GREEN BOOK
++<U0001F4D8> /xf0/x9f/x93/x98 BLUE BOOK
++<U0001F4D9> /xf0/x9f/x93/x99 ORANGE BOOK
++<U0001F4DA> /xf0/x9f/x93/x9a BOOKS
++<U0001F4DB> /xf0/x9f/x93/x9b NAME BADGE
++<U0001F4DC> /xf0/x9f/x93/x9c SCROLL
++<U0001F4DD> /xf0/x9f/x93/x9d MEMO
++<U0001F4DE> /xf0/x9f/x93/x9e TELEPHONE RECEIVER
++<U0001F4DF> /xf0/x9f/x93/x9f PAGER
++<U0001F4E0> /xf0/x9f/x93/xa0 FAX MACHINE
++<U0001F4E1> /xf0/x9f/x93/xa1 SATELLITE ANTENNA
++<U0001F4E2> /xf0/x9f/x93/xa2 PUBLIC ADDRESS LOUDSPEAKER
++<U0001F4E3> /xf0/x9f/x93/xa3 CHEERING MEGAPHONE
++<U0001F4E4> /xf0/x9f/x93/xa4 OUTBOX TRAY
++<U0001F4E5> /xf0/x9f/x93/xa5 INBOX TRAY
++<U0001F4E6> /xf0/x9f/x93/xa6 PACKAGE
++<U0001F4E7> /xf0/x9f/x93/xa7 E-MAIL SYMBOL
++<U0001F4E8> /xf0/x9f/x93/xa8 INCOMING ENVELOPE
++<U0001F4E9> /xf0/x9f/x93/xa9 ENVELOPE WITH DOWNWARDS ARROW ABOVE
++<U0001F4EA> /xf0/x9f/x93/xaa CLOSED MAILBOX WITH LOWERED FLAG
++<U0001F4EB> /xf0/x9f/x93/xab CLOSED MAILBOX WITH RAISED FLAG
++<U0001F4EC> /xf0/x9f/x93/xac OPEN MAILBOX WITH RAISED FLAG
++<U0001F4ED> /xf0/x9f/x93/xad OPEN MAILBOX WITH LOWERED FLAG
++<U0001F4EE> /xf0/x9f/x93/xae POSTBOX
++<U0001F4EF> /xf0/x9f/x93/xaf POSTAL HORN
++<U0001F4F0> /xf0/x9f/x93/xb0 NEWSPAPER
++<U0001F4F1> /xf0/x9f/x93/xb1 MOBILE PHONE
++<U0001F4F2> /xf0/x9f/x93/xb2 MOBILE PHONE WITH RIGHTWARDS ARROW AT LEFT
++<U0001F4F3> /xf0/x9f/x93/xb3 VIBRATION MODE
++<U0001F4F4> /xf0/x9f/x93/xb4 MOBILE PHONE OFF
++<U0001F4F5> /xf0/x9f/x93/xb5 NO MOBILE PHONES
++<U0001F4F6> /xf0/x9f/x93/xb6 ANTENNA WITH BARS
++<U0001F4F7> /xf0/x9f/x93/xb7 CAMERA
++<U0001F4F9> /xf0/x9f/x93/xb9 VIDEO CAMERA
++<U0001F4FA> /xf0/x9f/x93/xba TELEVISION
++<U0001F4FB> /xf0/x9f/x93/xbb RADIO
++<U0001F4FC> /xf0/x9f/x93/xbc VIDEOCASSETTE
++<U0001F500> /xf0/x9f/x94/x80 TWISTED RIGHTWARDS ARROWS
++<U0001F501> /xf0/x9f/x94/x81 CLOCKWISE RIGHTWARDS AND LEFTWARDS OPEN CIRCLE ARROWS
++<U0001F502> /xf0/x9f/x94/x82 CLOCKWISE RIGHTWARDS AND LEFTWARDS OPEN CIRCLE ARROWS WITH CIRCLED ONE OVERLAY
++<U0001F503> /xf0/x9f/x94/x83 CLOCKWISE DOWNWARDS AND UPWARDS OPEN CIRCLE ARROWS
++<U0001F504> /xf0/x9f/x94/x84 ANTICLOCKWISE DOWNWARDS AND UPWARDS OPEN CIRCLE ARROWS
++<U0001F505> /xf0/x9f/x94/x85 LOW BRIGHTNESS SYMBOL
++<U0001F506> /xf0/x9f/x94/x86 HIGH BRIGHTNESS SYMBOL
++<U0001F507> /xf0/x9f/x94/x87 SPEAKER WITH CANCELLATION STROKE
++<U0001F508> /xf0/x9f/x94/x88 SPEAKER
++<U0001F509> /xf0/x9f/x94/x89 SPEAKER WITH ONE SOUND WAVE
++<U0001F50A> /xf0/x9f/x94/x8a SPEAKER WITH THREE SOUND WAVES
++<U0001F50B> /xf0/x9f/x94/x8b BATTERY
++<U0001F50C> /xf0/x9f/x94/x8c ELECTRIC PLUG
++<U0001F50D> /xf0/x9f/x94/x8d LEFT-POINTING MAGNIFYING GLASS
++<U0001F50E> /xf0/x9f/x94/x8e RIGHT-POINTING MAGNIFYING GLASS
++<U0001F50F> /xf0/x9f/x94/x8f LOCK WITH INK PEN
++<U0001F510> /xf0/x9f/x94/x90 CLOSED LOCK WITH KEY
++<U0001F511> /xf0/x9f/x94/x91 KEY
++<U0001F512> /xf0/x9f/x94/x92 LOCK
++<U0001F513> /xf0/x9f/x94/x93 OPEN LOCK
++<U0001F514> /xf0/x9f/x94/x94 BELL
++<U0001F515> /xf0/x9f/x94/x95 BELL WITH CANCELLATION STROKE
++<U0001F516> /xf0/x9f/x94/x96 BOOKMARK
++<U0001F517> /xf0/x9f/x94/x97 LINK SYMBOL
++<U0001F518> /xf0/x9f/x94/x98 RADIO BUTTON
++<U0001F519> /xf0/x9f/x94/x99 BACK WITH LEFTWARDS ARROW ABOVE
++<U0001F51A> /xf0/x9f/x94/x9a END WITH LEFTWARDS ARROW ABOVE
++<U0001F51B> /xf0/x9f/x94/x9b ON WITH EXCLAMATION MARK WITH LEFT RIGHT ARROW ABOVE
++<U0001F51C> /xf0/x9f/x94/x9c SOON WITH RIGHTWARDS ARROW ABOVE
++<U0001F51D> /xf0/x9f/x94/x9d TOP WITH UPWARDS ARROW ABOVE
++<U0001F51E> /xf0/x9f/x94/x9e NO ONE UNDER EIGHTEEN SYMBOL
++<U0001F51F> /xf0/x9f/x94/x9f KEYCAP TEN
++<U0001F520> /xf0/x9f/x94/xa0 INPUT SYMBOL FOR LATIN CAPITAL LETTERS
++<U0001F521> /xf0/x9f/x94/xa1 INPUT SYMBOL FOR LATIN SMALL LETTERS
++<U0001F522> /xf0/x9f/x94/xa2 INPUT SYMBOL FOR NUMBERS
++<U0001F523> /xf0/x9f/x94/xa3 INPUT SYMBOL FOR SYMBOLS
++<U0001F524> /xf0/x9f/x94/xa4 INPUT SYMBOL FOR LATIN LETTERS
++<U0001F525> /xf0/x9f/x94/xa5 FIRE
++<U0001F526> /xf0/x9f/x94/xa6 ELECTRIC TORCH
++<U0001F527> /xf0/x9f/x94/xa7 WRENCH
++<U0001F528> /xf0/x9f/x94/xa8 HAMMER
++<U0001F529> /xf0/x9f/x94/xa9 NUT AND BOLT
++<U0001F52A> /xf0/x9f/x94/xaa HOCHO
++<U0001F52B> /xf0/x9f/x94/xab PISTOL
++<U0001F52C> /xf0/x9f/x94/xac MICROSCOPE
++<U0001F52D> /xf0/x9f/x94/xad TELESCOPE
++<U0001F52E> /xf0/x9f/x94/xae CRYSTAL BALL
++<U0001F52F> /xf0/x9f/x94/xaf SIX POINTED STAR WITH MIDDLE DOT
++<U0001F530> /xf0/x9f/x94/xb0 JAPANESE SYMBOL FOR BEGINNER
++<U0001F531> /xf0/x9f/x94/xb1 TRIDENT EMBLEM
++<U0001F532> /xf0/x9f/x94/xb2 BLACK SQUARE BUTTON
++<U0001F533> /xf0/x9f/x94/xb3 WHITE SQUARE BUTTON
++<U0001F534> /xf0/x9f/x94/xb4 LARGE RED CIRCLE
++<U0001F535> /xf0/x9f/x94/xb5 LARGE BLUE CIRCLE
++<U0001F536> /xf0/x9f/x94/xb6 LARGE ORANGE DIAMOND
++<U0001F537> /xf0/x9f/x94/xb7 LARGE BLUE DIAMOND
++<U0001F538> /xf0/x9f/x94/xb8 SMALL ORANGE DIAMOND
++<U0001F539> /xf0/x9f/x94/xb9 SMALL BLUE DIAMOND
++<U0001F53A> /xf0/x9f/x94/xba UP-POINTING RED TRIANGLE
++<U0001F53B> /xf0/x9f/x94/xbb DOWN-POINTING RED TRIANGLE
++<U0001F53C> /xf0/x9f/x94/xbc UP-POINTING SMALL RED TRIANGLE
++<U0001F53D> /xf0/x9f/x94/xbd DOWN-POINTING SMALL RED TRIANGLE
++<U0001F550> /xf0/x9f/x95/x90 CLOCK FACE ONE OCLOCK
++<U0001F551> /xf0/x9f/x95/x91 CLOCK FACE TWO OCLOCK
++<U0001F552> /xf0/x9f/x95/x92 CLOCK FACE THREE OCLOCK
++<U0001F553> /xf0/x9f/x95/x93 CLOCK FACE FOUR OCLOCK
++<U0001F554> /xf0/x9f/x95/x94 CLOCK FACE FIVE OCLOCK
++<U0001F555> /xf0/x9f/x95/x95 CLOCK FACE SIX OCLOCK
++<U0001F556> /xf0/x9f/x95/x96 CLOCK FACE SEVEN OCLOCK
++<U0001F557> /xf0/x9f/x95/x97 CLOCK FACE EIGHT OCLOCK
++<U0001F558> /xf0/x9f/x95/x98 CLOCK FACE NINE OCLOCK
++<U0001F559> /xf0/x9f/x95/x99 CLOCK FACE TEN OCLOCK
++<U0001F55A> /xf0/x9f/x95/x9a CLOCK FACE ELEVEN OCLOCK
++<U0001F55B> /xf0/x9f/x95/x9b CLOCK FACE TWELVE OCLOCK
++<U0001F55C> /xf0/x9f/x95/x9c CLOCK FACE ONE-THIRTY
++<U0001F55D> /xf0/x9f/x95/x9d CLOCK FACE TWO-THIRTY
++<U0001F55E> /xf0/x9f/x95/x9e CLOCK FACE THREE-THIRTY
++<U0001F55F> /xf0/x9f/x95/x9f CLOCK FACE FOUR-THIRTY
++<U0001F560> /xf0/x9f/x95/xa0 CLOCK FACE FIVE-THIRTY
++<U0001F561> /xf0/x9f/x95/xa1 CLOCK FACE SIX-THIRTY
++<U0001F562> /xf0/x9f/x95/xa2 CLOCK FACE SEVEN-THIRTY
++<U0001F563> /xf0/x9f/x95/xa3 CLOCK FACE EIGHT-THIRTY
++<U0001F564> /xf0/x9f/x95/xa4 CLOCK FACE NINE-THIRTY
++<U0001F565> /xf0/x9f/x95/xa5 CLOCK FACE TEN-THIRTY
++<U0001F566> /xf0/x9f/x95/xa6 CLOCK FACE ELEVEN-THIRTY
++<U0001F567> /xf0/x9f/x95/xa7 CLOCK FACE TWELVE-THIRTY
++<U0001F5FB> /xf0/x9f/x97/xbb MOUNT FUJI
++<U0001F5FC> /xf0/x9f/x97/xbc TOKYO TOWER
++<U0001F5FD> /xf0/x9f/x97/xbd STATUE OF LIBERTY
++<U0001F5FE> /xf0/x9f/x97/xbe SILHOUETTE OF JAPAN
++<U0001F5FF> /xf0/x9f/x97/xbf MOYAI
++<U0001F601> /xf0/x9f/x98/x81 GRINNING FACE WITH SMILING EYES
++<U0001F602> /xf0/x9f/x98/x82 FACE WITH TEARS OF JOY
++<U0001F603> /xf0/x9f/x98/x83 SMILING FACE WITH OPEN MOUTH
++<U0001F604> /xf0/x9f/x98/x84 SMILING FACE WITH OPEN MOUTH AND SMILING EYES
++<U0001F605> /xf0/x9f/x98/x85 SMILING FACE WITH OPEN MOUTH AND COLD SWEAT
++<U0001F606> /xf0/x9f/x98/x86 SMILING FACE WITH OPEN MOUTH AND TIGHTLY-CLOSED EYES
++<U0001F607> /xf0/x9f/x98/x87 SMILING FACE WITH HALO
++<U0001F608> /xf0/x9f/x98/x88 SMILING FACE WITH HORNS
++<U0001F609> /xf0/x9f/x98/x89 WINKING FACE
++<U0001F60A> /xf0/x9f/x98/x8a SMILING FACE WITH SMILING EYES
++<U0001F60B> /xf0/x9f/x98/x8b FACE SAVOURING DELICIOUS FOOD
++<U0001F60C> /xf0/x9f/x98/x8c RELIEVED FACE
++<U0001F60D> /xf0/x9f/x98/x8d SMILING FACE WITH HEART-SHAPED EYES
++<U0001F60E> /xf0/x9f/x98/x8e SMILING FACE WITH SUNGLASSES
++<U0001F60F> /xf0/x9f/x98/x8f SMIRKING FACE
++<U0001F610> /xf0/x9f/x98/x90 NEUTRAL FACE
++<U0001F612> /xf0/x9f/x98/x92 UNAMUSED FACE
++<U0001F613> /xf0/x9f/x98/x93 FACE WITH COLD SWEAT
++<U0001F614> /xf0/x9f/x98/x94 PENSIVE FACE
++<U0001F616> /xf0/x9f/x98/x96 CONFOUNDED FACE
++<U0001F618> /xf0/x9f/x98/x98 FACE THROWING A KISS
++<U0001F61A> /xf0/x9f/x98/x9a KISSING FACE WITH CLOSED EYES
++<U0001F61C> /xf0/x9f/x98/x9c FACE WITH STUCK-OUT TONGUE AND WINKING EYE
++<U0001F61D> /xf0/x9f/x98/x9d FACE WITH STUCK-OUT TONGUE AND TIGHTLY-CLOSED EYES
++<U0001F61E> /xf0/x9f/x98/x9e DISAPPOINTED FACE
++<U0001F620> /xf0/x9f/x98/xa0 ANGRY FACE
++<U0001F621> /xf0/x9f/x98/xa1 POUTING FACE
++<U0001F622> /xf0/x9f/x98/xa2 CRYING FACE
++<U0001F623> /xf0/x9f/x98/xa3 PERSEVERING FACE
++<U0001F624> /xf0/x9f/x98/xa4 FACE WITH LOOK OF TRIUMPH
++<U0001F625> /xf0/x9f/x98/xa5 DISAPPOINTED BUT RELIEVED FACE
++<U0001F628> /xf0/x9f/x98/xa8 FEARFUL FACE
++<U0001F629> /xf0/x9f/x98/xa9 WEARY FACE
++<U0001F62A> /xf0/x9f/x98/xaa SLEEPY FACE
++<U0001F62B> /xf0/x9f/x98/xab TIRED FACE
++<U0001F62D> /xf0/x9f/x98/xad LOUDLY CRYING FACE
++<U0001F630> /xf0/x9f/x98/xb0 FACE WITH OPEN MOUTH AND COLD SWEAT
++<U0001F631> /xf0/x9f/x98/xb1 FACE SCREAMING IN FEAR
++<U0001F632> /xf0/x9f/x98/xb2 ASTONISHED FACE
++<U0001F633> /xf0/x9f/x98/xb3 FLUSHED FACE
++<U0001F635> /xf0/x9f/x98/xb5 DIZZY FACE
++<U0001F636> /xf0/x9f/x98/xb6 FACE WITHOUT MOUTH
++<U0001F637> /xf0/x9f/x98/xb7 FACE WITH MEDICAL MASK
++<U0001F638> /xf0/x9f/x98/xb8 GRINNING CAT FACE WITH SMILING EYES
++<U0001F639> /xf0/x9f/x98/xb9 CAT FACE WITH TEARS OF JOY
++<U0001F63A> /xf0/x9f/x98/xba SMILING CAT FACE WITH OPEN MOUTH
++<U0001F63B> /xf0/x9f/x98/xbb SMILING CAT FACE WITH HEART-SHAPED EYES
++<U0001F63C> /xf0/x9f/x98/xbc CAT FACE WITH WRY SMILE
++<U0001F63D> /xf0/x9f/x98/xbd KISSING CAT FACE WITH CLOSED EYES
++<U0001F63E> /xf0/x9f/x98/xbe POUTING CAT FACE
++<U0001F63F> /xf0/x9f/x98/xbf CRYING CAT FACE
++<U0001F640> /xf0/x9f/x99/x80 WEARY CAT FACE
++<U0001F645> /xf0/x9f/x99/x85 FACE WITH NO GOOD GESTURE
++<U0001F646> /xf0/x9f/x99/x86 FACE WITH OK GESTURE
++<U0001F647> /xf0/x9f/x99/x87 PERSON BOWING DEEPLY
++<U0001F648> /xf0/x9f/x99/x88 SEE-NO-EVIL MONKEY
++<U0001F649> /xf0/x9f/x99/x89 HEAR-NO-EVIL MONKEY
++<U0001F64A> /xf0/x9f/x99/x8a SPEAK-NO-EVIL MONKEY
++<U0001F64B> /xf0/x9f/x99/x8b HAPPY PERSON RAISING ONE HAND
++<U0001F64C> /xf0/x9f/x99/x8c PERSON RAISING BOTH HANDS IN CELEBRATION
++<U0001F64D> /xf0/x9f/x99/x8d PERSON FROWNING
++<U0001F64E> /xf0/x9f/x99/x8e PERSON WITH POUTING FACE
++<U0001F64F> /xf0/x9f/x99/x8f PERSON WITH FOLDED HANDS
++<U0001F680> /xf0/x9f/x9a/x80 ROCKET
++<U0001F681> /xf0/x9f/x9a/x81 HELICOPTER
++<U0001F682> /xf0/x9f/x9a/x82 STEAM LOCOMOTIVE
++<U0001F683> /xf0/x9f/x9a/x83 RAILWAY CAR
++<U0001F684> /xf0/x9f/x9a/x84 HIGH-SPEED TRAIN
++<U0001F685> /xf0/x9f/x9a/x85 HIGH-SPEED TRAIN WITH BULLET NOSE
++<U0001F686> /xf0/x9f/x9a/x86 TRAIN
++<U0001F687> /xf0/x9f/x9a/x87 METRO
++<U0001F688> /xf0/x9f/x9a/x88 LIGHT RAIL
++<U0001F689> /xf0/x9f/x9a/x89 STATION
++<U0001F68A> /xf0/x9f/x9a/x8a TRAM
++<U0001F68B> /xf0/x9f/x9a/x8b TRAM CAR
++<U0001F68C> /xf0/x9f/x9a/x8c BUS
++<U0001F68D> /xf0/x9f/x9a/x8d ONCOMING BUS
++<U0001F68E> /xf0/x9f/x9a/x8e TROLLEYBUS
++<U0001F68F> /xf0/x9f/x9a/x8f BUS STOP
++<U0001F690> /xf0/x9f/x9a/x90 MINIBUS
++<U0001F691> /xf0/x9f/x9a/x91 AMBULANCE
++<U0001F692> /xf0/x9f/x9a/x92 FIRE ENGINE
++<U0001F693> /xf0/x9f/x9a/x93 POLICE CAR
++<U0001F694> /xf0/x9f/x9a/x94 ONCOMING POLICE CAR
++<U0001F695> /xf0/x9f/x9a/x95 TAXI
++<U0001F696> /xf0/x9f/x9a/x96 ONCOMING TAXI
++<U0001F697> /xf0/x9f/x9a/x97 AUTOMOBILE
++<U0001F698> /xf0/x9f/x9a/x98 ONCOMING AUTOMOBILE
++<U0001F699> /xf0/x9f/x9a/x99 RECREATIONAL VEHICLE
++<U0001F69A> /xf0/x9f/x9a/x9a DELIVERY TRUCK
++<U0001F69B> /xf0/x9f/x9a/x9b ARTICULATED LORRY
++<U0001F69C> /xf0/x9f/x9a/x9c TRACTOR
++<U0001F69D> /xf0/x9f/x9a/x9d MONORAIL
++<U0001F69E> /xf0/x9f/x9a/x9e MOUNTAIN RAILWAY
++<U0001F69F> /xf0/x9f/x9a/x9f SUSPENSION RAILWAY
++<U0001F6A0> /xf0/x9f/x9a/xa0 MOUNTAIN CABLEWAY
++<U0001F6A1> /xf0/x9f/x9a/xa1 AERIAL TRAMWAY
++<U0001F6A2> /xf0/x9f/x9a/xa2 SHIP
++<U0001F6A3> /xf0/x9f/x9a/xa3 ROWBOAT
++<U0001F6A4> /xf0/x9f/x9a/xa4 SPEEDBOAT
++<U0001F6A5> /xf0/x9f/x9a/xa5 HORIZONTAL TRAFFIC LIGHT
++<U0001F6A6> /xf0/x9f/x9a/xa6 VERTICAL TRAFFIC LIGHT
++<U0001F6A7> /xf0/x9f/x9a/xa7 CONSTRUCTION SIGN
++<U0001F6A8> /xf0/x9f/x9a/xa8 POLICE CARS REVOLVING LIGHT
++<U0001F6A9> /xf0/x9f/x9a/xa9 TRIANGULAR FLAG ON POST
++<U0001F6AA> /xf0/x9f/x9a/xaa DOOR
++<U0001F6AB> /xf0/x9f/x9a/xab NO ENTRY SIGN
++<U0001F6AC> /xf0/x9f/x9a/xac SMOKING SYMBOL
++<U0001F6AD> /xf0/x9f/x9a/xad NO SMOKING SYMBOL
++<U0001F6AE> /xf0/x9f/x9a/xae PUT LITTER IN ITS PLACE SYMBOL
++<U0001F6AF> /xf0/x9f/x9a/xaf DO NOT LITTER SYMBOL
++<U0001F6B0> /xf0/x9f/x9a/xb0 POTABLE WATER SYMBOL
++<U0001F6B1> /xf0/x9f/x9a/xb1 NON-POTABLE WATER SYMBOL
++<U0001F6B2> /xf0/x9f/x9a/xb2 BICYCLE
++<U0001F6B3> /xf0/x9f/x9a/xb3 NO BICYCLES
++<U0001F6B4> /xf0/x9f/x9a/xb4 BICYCLIST
++<U0001F6B5> /xf0/x9f/x9a/xb5 MOUNTAIN BICYCLIST
++<U0001F6B6> /xf0/x9f/x9a/xb6 PEDESTRIAN
++<U0001F6B7> /xf0/x9f/x9a/xb7 NO PEDESTRIANS
++<U0001F6B8> /xf0/x9f/x9a/xb8 CHILDREN CROSSING
++<U0001F6B9> /xf0/x9f/x9a/xb9 MENS SYMBOL
++<U0001F6BA> /xf0/x9f/x9a/xba WOMENS SYMBOL
++<U0001F6BB> /xf0/x9f/x9a/xbb RESTROOM
++<U0001F6BC> /xf0/x9f/x9a/xbc BABY SYMBOL
++<U0001F6BD> /xf0/x9f/x9a/xbd TOILET
++<U0001F6BE> /xf0/x9f/x9a/xbe WATER CLOSET
++<U0001F6BF> /xf0/x9f/x9a/xbf SHOWER
++<U0001F6C0> /xf0/x9f/x9b/x80 BATH
++<U0001F6C1> /xf0/x9f/x9b/x81 BATHTUB
++<U0001F6C2> /xf0/x9f/x9b/x82 PASSPORT CONTROL
++<U0001F6C3> /xf0/x9f/x9b/x83 CUSTOMS
++<U0001F6C4> /xf0/x9f/x9b/x84 BAGGAGE CLAIM
++<U0001F6C5> /xf0/x9f/x9b/x85 LEFT LUGGAGE
++<U0001F700> /xf0/x9f/x9c/x80 ALCHEMICAL SYMBOL FOR QUINTESSENCE
++<U0001F701> /xf0/x9f/x9c/x81 ALCHEMICAL SYMBOL FOR AIR
++<U0001F702> /xf0/x9f/x9c/x82 ALCHEMICAL SYMBOL FOR FIRE
++<U0001F703> /xf0/x9f/x9c/x83 ALCHEMICAL SYMBOL FOR EARTH
++<U0001F704> /xf0/x9f/x9c/x84 ALCHEMICAL SYMBOL FOR WATER
++<U0001F705> /xf0/x9f/x9c/x85 ALCHEMICAL SYMBOL FOR AQUAFORTIS
++<U0001F706> /xf0/x9f/x9c/x86 ALCHEMICAL SYMBOL FOR AQUA REGIA
++<U0001F707> /xf0/x9f/x9c/x87 ALCHEMICAL SYMBOL FOR AQUA REGIA-2
++<U0001F708> /xf0/x9f/x9c/x88 ALCHEMICAL SYMBOL FOR AQUA VITAE
++<U0001F709> /xf0/x9f/x9c/x89 ALCHEMICAL SYMBOL FOR AQUA VITAE-2
++<U0001F70A> /xf0/x9f/x9c/x8a ALCHEMICAL SYMBOL FOR VINEGAR
++<U0001F70B> /xf0/x9f/x9c/x8b ALCHEMICAL SYMBOL FOR VINEGAR-2
++<U0001F70C> /xf0/x9f/x9c/x8c ALCHEMICAL SYMBOL FOR VINEGAR-3
++<U0001F70D> /xf0/x9f/x9c/x8d ALCHEMICAL SYMBOL FOR SULFUR
++<U0001F70E> /xf0/x9f/x9c/x8e ALCHEMICAL SYMBOL FOR PHILOSOPHERS SULFUR
++<U0001F70F> /xf0/x9f/x9c/x8f ALCHEMICAL SYMBOL FOR BLACK SULFUR
++<U0001F710> /xf0/x9f/x9c/x90 ALCHEMICAL SYMBOL FOR MERCURY SUBLIMATE
++<U0001F711> /xf0/x9f/x9c/x91 ALCHEMICAL SYMBOL FOR MERCURY SUBLIMATE-2
++<U0001F712> /xf0/x9f/x9c/x92 ALCHEMICAL SYMBOL FOR MERCURY SUBLIMATE-3
++<U0001F713> /xf0/x9f/x9c/x93 ALCHEMICAL SYMBOL FOR CINNABAR
++<U0001F714> /xf0/x9f/x9c/x94 ALCHEMICAL SYMBOL FOR SALT
++<U0001F715> /xf0/x9f/x9c/x95 ALCHEMICAL SYMBOL FOR NITRE
++<U0001F716> /xf0/x9f/x9c/x96 ALCHEMICAL SYMBOL FOR VITRIOL
++<U0001F717> /xf0/x9f/x9c/x97 ALCHEMICAL SYMBOL FOR VITRIOL-2
++<U0001F718> /xf0/x9f/x9c/x98 ALCHEMICAL SYMBOL FOR ROCK SALT
++<U0001F719> /xf0/x9f/x9c/x99 ALCHEMICAL SYMBOL FOR ROCK SALT-2
++<U0001F71A> /xf0/x9f/x9c/x9a ALCHEMICAL SYMBOL FOR GOLD
++<U0001F71B> /xf0/x9f/x9c/x9b ALCHEMICAL SYMBOL FOR SILVER
++<U0001F71C> /xf0/x9f/x9c/x9c ALCHEMICAL SYMBOL FOR IRON ORE
++<U0001F71D> /xf0/x9f/x9c/x9d ALCHEMICAL SYMBOL FOR IRON ORE-2
++<U0001F71E> /xf0/x9f/x9c/x9e ALCHEMICAL SYMBOL FOR CROCUS OF IRON
++<U0001F71F> /xf0/x9f/x9c/x9f ALCHEMICAL SYMBOL FOR REGULUS OF IRON
++<U0001F720> /xf0/x9f/x9c/xa0 ALCHEMICAL SYMBOL FOR COPPER ORE
++<U0001F721> /xf0/x9f/x9c/xa1 ALCHEMICAL SYMBOL FOR IRON-COPPER ORE
++<U0001F722> /xf0/x9f/x9c/xa2 ALCHEMICAL SYMBOL FOR SUBLIMATE OF COPPER
++<U0001F723> /xf0/x9f/x9c/xa3 ALCHEMICAL SYMBOL FOR CROCUS OF COPPER
++<U0001F724> /xf0/x9f/x9c/xa4 ALCHEMICAL SYMBOL FOR CROCUS OF COPPER-2
++<U0001F725> /xf0/x9f/x9c/xa5 ALCHEMICAL SYMBOL FOR COPPER ANTIMONIATE
++<U0001F726> /xf0/x9f/x9c/xa6 ALCHEMICAL SYMBOL FOR SALT OF COPPER ANTIMONIATE
++<U0001F727> /xf0/x9f/x9c/xa7 ALCHEMICAL SYMBOL FOR SUBLIMATE OF SALT OF COPPER
++<U0001F728> /xf0/x9f/x9c/xa8 ALCHEMICAL SYMBOL FOR VERDIGRIS
++<U0001F729> /xf0/x9f/x9c/xa9 ALCHEMICAL SYMBOL FOR TIN ORE
++<U0001F72A> /xf0/x9f/x9c/xaa ALCHEMICAL SYMBOL FOR LEAD ORE
++<U0001F72B> /xf0/x9f/x9c/xab ALCHEMICAL SYMBOL FOR ANTIMONY ORE
++<U0001F72C> /xf0/x9f/x9c/xac ALCHEMICAL SYMBOL FOR SUBLIMATE OF ANTIMONY
++<U0001F72D> /xf0/x9f/x9c/xad ALCHEMICAL SYMBOL FOR SALT OF ANTIMONY
++<U0001F72E> /xf0/x9f/x9c/xae ALCHEMICAL SYMBOL FOR SUBLIMATE OF SALT OF ANTIMONY
++<U0001F72F> /xf0/x9f/x9c/xaf ALCHEMICAL SYMBOL FOR VINEGAR OF ANTIMONY
++<U0001F730> /xf0/x9f/x9c/xb0 ALCHEMICAL SYMBOL FOR REGULUS OF ANTIMONY
++<U0001F731> /xf0/x9f/x9c/xb1 ALCHEMICAL SYMBOL FOR REGULUS OF ANTIMONY-2
++<U0001F732> /xf0/x9f/x9c/xb2 ALCHEMICAL SYMBOL FOR REGULUS
++<U0001F733> /xf0/x9f/x9c/xb3 ALCHEMICAL SYMBOL FOR REGULUS-2
++<U0001F734> /xf0/x9f/x9c/xb4 ALCHEMICAL SYMBOL FOR REGULUS-3
++<U0001F735> /xf0/x9f/x9c/xb5 ALCHEMICAL SYMBOL FOR REGULUS-4
++<U0001F736> /xf0/x9f/x9c/xb6 ALCHEMICAL SYMBOL FOR ALKALI
++<U0001F737> /xf0/x9f/x9c/xb7 ALCHEMICAL SYMBOL FOR ALKALI-2
++<U0001F738> /xf0/x9f/x9c/xb8 ALCHEMICAL SYMBOL FOR MARCASITE
++<U0001F739> /xf0/x9f/x9c/xb9 ALCHEMICAL SYMBOL FOR SAL-AMMONIAC
++<U0001F73A> /xf0/x9f/x9c/xba ALCHEMICAL SYMBOL FOR ARSENIC
++<U0001F73B> /xf0/x9f/x9c/xbb ALCHEMICAL SYMBOL FOR REALGAR
++<U0001F73C> /xf0/x9f/x9c/xbc ALCHEMICAL SYMBOL FOR REALGAR-2
++<U0001F73D> /xf0/x9f/x9c/xbd ALCHEMICAL SYMBOL FOR AURIPIGMENT
++<U0001F73E> /xf0/x9f/x9c/xbe ALCHEMICAL SYMBOL FOR BISMUTH ORE
++<U0001F73F> /xf0/x9f/x9c/xbf ALCHEMICAL SYMBOL FOR TARTAR
++<U0001F740> /xf0/x9f/x9d/x80 ALCHEMICAL SYMBOL FOR TARTAR-2
++<U0001F741> /xf0/x9f/x9d/x81 ALCHEMICAL SYMBOL FOR QUICK LIME
++<U0001F742> /xf0/x9f/x9d/x82 ALCHEMICAL SYMBOL FOR BORAX
++<U0001F743> /xf0/x9f/x9d/x83 ALCHEMICAL SYMBOL FOR BORAX-2
++<U0001F744> /xf0/x9f/x9d/x84 ALCHEMICAL SYMBOL FOR BORAX-3
++<U0001F745> /xf0/x9f/x9d/x85 ALCHEMICAL SYMBOL FOR ALUM
++<U0001F746> /xf0/x9f/x9d/x86 ALCHEMICAL SYMBOL FOR OIL
++<U0001F747> /xf0/x9f/x9d/x87 ALCHEMICAL SYMBOL FOR SPIRIT
++<U0001F748> /xf0/x9f/x9d/x88 ALCHEMICAL SYMBOL FOR TINCTURE
++<U0001F749> /xf0/x9f/x9d/x89 ALCHEMICAL SYMBOL FOR GUM
++<U0001F74A> /xf0/x9f/x9d/x8a ALCHEMICAL SYMBOL FOR WAX
++<U0001F74B> /xf0/x9f/x9d/x8b ALCHEMICAL SYMBOL FOR POWDER
++<U0001F74C> /xf0/x9f/x9d/x8c ALCHEMICAL SYMBOL FOR CALX
++<U0001F737> /xf0/x9f/x9c/xb7 ALCHEMICAL SYMBOL FOR ALKALI-2
++<U0001F738> /xf0/x9f/x9c/xb8 ALCHEMICAL SYMBOL FOR MARCASITE
++<U0001F739> /xf0/x9f/x9c/xb9 ALCHEMICAL SYMBOL FOR SAL-AMMONIAC
++<U0001F73A> /xf0/x9f/x9c/xba ALCHEMICAL SYMBOL FOR ARSENIC
++<U0001F73B> /xf0/x9f/x9c/xbb ALCHEMICAL SYMBOL FOR REALGAR
++<U0001F73C> /xf0/x9f/x9c/xbc ALCHEMICAL SYMBOL FOR REALGAR-2
++<U0001F73D> /xf0/x9f/x9c/xbd ALCHEMICAL SYMBOL FOR AURIPIGMENT
++<U0001F73E> /xf0/x9f/x9c/xbe ALCHEMICAL SYMBOL FOR BISMUTH ORE
++<U0001F73F> /xf0/x9f/x9c/xbf ALCHEMICAL SYMBOL FOR TARTAR
++<U0001F740> /xf0/x9f/x9d/x80 ALCHEMICAL SYMBOL FOR TARTAR-2
++<U0001F741> /xf0/x9f/x9d/x81 ALCHEMICAL SYMBOL FOR QUICK LIME
++<U0001F742> /xf0/x9f/x9d/x82 ALCHEMICAL SYMBOL FOR BORAX
++<U0001F743> /xf0/x9f/x9d/x83 ALCHEMICAL SYMBOL FOR BORAX-2
++<U0001F744> /xf0/x9f/x9d/x84 ALCHEMICAL SYMBOL FOR BORAX-3
++<U0001F745> /xf0/x9f/x9d/x85 ALCHEMICAL SYMBOL FOR ALUM
++<U0001F746> /xf0/x9f/x9d/x86 ALCHEMICAL SYMBOL FOR OIL
++<U0001F747> /xf0/x9f/x9d/x87 ALCHEMICAL SYMBOL FOR SPIRIT
++<U0001F748> /xf0/x9f/x9d/x88 ALCHEMICAL SYMBOL FOR TINCTURE
++<U0001F749> /xf0/x9f/x9d/x89 ALCHEMICAL SYMBOL FOR GUM
++<U0001F74A> /xf0/x9f/x9d/x8a ALCHEMICAL SYMBOL FOR WAX
++<U0001F74B> /xf0/x9f/x9d/x8b ALCHEMICAL SYMBOL FOR POWDER
++<U0001F74C> /xf0/x9f/x9d/x8c ALCHEMICAL SYMBOL FOR CALX
++<U0001F74D> /xf0/x9f/x9d/x8d ALCHEMICAL SYMBOL FOR TUTTY
++<U0001F74E> /xf0/x9f/x9d/x8e ALCHEMICAL SYMBOL FOR CAPUT MORTUUM
++<U0001F74F> /xf0/x9f/x9d/x8f ALCHEMICAL SYMBOL FOR SCEPTER OF JOVE
++<U0001F750> /xf0/x9f/x9d/x90 ALCHEMICAL SYMBOL FOR CADUCEUS
++<U0001F751> /xf0/x9f/x9d/x91 ALCHEMICAL SYMBOL FOR TRIDENT
++<U0001F752> /xf0/x9f/x9d/x92 ALCHEMICAL SYMBOL FOR STARRED TRIDENT
++<U0001F753> /xf0/x9f/x9d/x93 ALCHEMICAL SYMBOL FOR LODESTONE
++<U0001F754> /xf0/x9f/x9d/x94 ALCHEMICAL SYMBOL FOR SOAP
++<U0001F755> /xf0/x9f/x9d/x95 ALCHEMICAL SYMBOL FOR URINE
++<U0001F756> /xf0/x9f/x9d/x96 ALCHEMICAL SYMBOL FOR HORSE DUNG
++<U0001F757> /xf0/x9f/x9d/x97 ALCHEMICAL SYMBOL FOR ASHES
++<U0001F758> /xf0/x9f/x9d/x98 ALCHEMICAL SYMBOL FOR POT ASHES
++<U0001F759> /xf0/x9f/x9d/x99 ALCHEMICAL SYMBOL FOR BRICK
++<U0001F75A> /xf0/x9f/x9d/x9a ALCHEMICAL SYMBOL FOR POWDERED BRICK
++<U0001F75B> /xf0/x9f/x9d/x9b ALCHEMICAL SYMBOL FOR AMALGAM
++<U0001F75C> /xf0/x9f/x9d/x9c ALCHEMICAL SYMBOL FOR STRATUM SUPER STRATUM
++<U0001F75D> /xf0/x9f/x9d/x9d ALCHEMICAL SYMBOL FOR STRATUM SUPER STRATUM-2
++<U0001F75E> /xf0/x9f/x9d/x9e ALCHEMICAL SYMBOL FOR SUBLIMATION
++<U0001F75F> /xf0/x9f/x9d/x9f ALCHEMICAL SYMBOL FOR PRECIPITATE
++<U0001F760> /xf0/x9f/x9d/xa0 ALCHEMICAL SYMBOL FOR DISTILL
++<U0001F761> /xf0/x9f/x9d/xa1 ALCHEMICAL SYMBOL FOR DISSOLVE
++<U0001F762> /xf0/x9f/x9d/xa2 ALCHEMICAL SYMBOL FOR DISSOLVE-2
++<U0001F763> /xf0/x9f/x9d/xa3 ALCHEMICAL SYMBOL FOR PURIFY
++<U0001F764> /xf0/x9f/x9d/xa4 ALCHEMICAL SYMBOL FOR PUTREFACTION
++<U0001F765> /xf0/x9f/x9d/xa5 ALCHEMICAL SYMBOL FOR CRUCIBLE
++<U0001F766> /xf0/x9f/x9d/xa6 ALCHEMICAL SYMBOL FOR CRUCIBLE-2
++<U0001F767> /xf0/x9f/x9d/xa7 ALCHEMICAL SYMBOL FOR CRUCIBLE-3
++<U0001F768> /xf0/x9f/x9d/xa8 ALCHEMICAL SYMBOL FOR CRUCIBLE-4
++<U0001F769> /xf0/x9f/x9d/xa9 ALCHEMICAL SYMBOL FOR CRUCIBLE-5
++<U0001F76A> /xf0/x9f/x9d/xaa ALCHEMICAL SYMBOL FOR ALEMBIC
++<U0001F76B> /xf0/x9f/x9d/xab ALCHEMICAL SYMBOL FOR BATH OF MARY
++<U0001F76C> /xf0/x9f/x9d/xac ALCHEMICAL SYMBOL FOR BATH OF VAPOURS
++<U0001F76D> /xf0/x9f/x9d/xad ALCHEMICAL SYMBOL FOR RETORT
++<U0001F76E> /xf0/x9f/x9d/xae ALCHEMICAL SYMBOL FOR HOUR
++<U0001F76F> /xf0/x9f/x9d/xaf ALCHEMICAL SYMBOL FOR NIGHT
++<U0001F770> /xf0/x9f/x9d/xb0 ALCHEMICAL SYMBOL FOR DAY-NIGHT
++<U0001F771> /xf0/x9f/x9d/xb1 ALCHEMICAL SYMBOL FOR MONTH
++<U0001F772> /xf0/x9f/x9d/xb2 ALCHEMICAL SYMBOL FOR HALF DRAM
++<U0001F773> /xf0/x9f/x9d/xb3 ALCHEMICAL SYMBOL FOR HALF OUNCE
+ <U00020000>..<U0002003F> /xf0/xa0/x80/x80 <CJK>
+ <U00020040>..<U0002007F> /xf0/xa0/x81/x80 <CJK>
+ <U00020080>..<U000200BF> /xf0/xa0/x82/x80 <CJK>
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/ar_IN
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/ar_IN
++++ glibc-2.12-2-gc4ccff1/localedata/locales/ar_IN
+@@ -52,7 +52,7 @@ LC_MONETARY
+ % for IBM Class for Unicode.
+ %
+ int_curr_symbol       "<U0049><U004E><U0052><U0020>"
+-currency_symbol       "<U20A8>"
++currency_symbol       "<U20B9>"
+ mon_decimal_point     "<U002E>"
+ mon_thousands_sep     "<U002C>"
+ mon_grouping          3;2
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/as_IN
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/as_IN
++++ glibc-2.12-2-gc4ccff1/localedata/locales/as_IN
+@@ -51,7 +51,7 @@ END LC_NUMERIC
+ %%%%%%%%%%%%%
+ LC_MONETARY
+ int_curr_symbol       "<U0049><U004E><U0052><U0020>"
+-currency_symbol       "<U099F><U0995><U09BE>"
++currency_symbol       "<U20B9>"
+ mon_decimal_point     "<U002E>"
+ mon_thousands_sep     "<U002C>"
+ mon_grouping          3;2
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/bn_IN
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/bn_IN
++++ glibc-2.12-2-gc4ccff1/localedata/locales/bn_IN
+@@ -53,7 +53,7 @@ LC_MONETARY
+ % for IBM Class for Unicode.
+ %
+ int_curr_symbol       "<U0049><U004E><U0052><U0020>"
+-currency_symbol       "<U099F><U09BE><U0995><U09BE>"
++currency_symbol       "<U20B9>"
+ mon_decimal_point     "<U002E>"
+ mon_thousands_sep     "<U002C>"
+ mon_grouping          2;3
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/en_IN
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/en_IN
++++ glibc-2.12-2-gc4ccff1/localedata/locales/en_IN
+@@ -52,7 +52,7 @@ LC_MONETARY
+ % for IBM Class for Unicode.
+ %
+ int_curr_symbol       "<U0049><U004E><U0052><U0020>"
+-currency_symbol       "<U20A8>"
++currency_symbol       "<U20B9>"
+ mon_decimal_point     "<U002E>"
+ mon_thousands_sep     "<U002C>"
+ mon_grouping          3;2
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/gu_IN
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/gu_IN
++++ glibc-2.12-2-gc4ccff1/localedata/locales/gu_IN
+@@ -71,7 +71,7 @@ LC_MONETARY
+ % for IBM Class for Unicode/Java
+ %
+ int_curr_symbol       "<U0049><U004E><U0052><U0020>"
+-currency_symbol       "<U0AB0><U0AC1>"
++currency_symbol       "<U20B9>"
+ mon_decimal_point     "<U002E>"
+ mon_thousands_sep     "<U002C>"
+ mon_grouping          3
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/hi_IN
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/hi_IN
++++ glibc-2.12-2-gc4ccff1/localedata/locales/hi_IN
+@@ -69,7 +69,7 @@ LC_MONETARY
+ % for IBM Class for Unicode/Java
+ %
+ int_curr_symbol       "<U0049><U004E><U0052><U0020>"
+-currency_symbol       "<U0930><U0942>"
++currency_symbol       "<U20B9>"
+ mon_decimal_point     "<U002E>"
+ mon_thousands_sep     "<U002C>"
+ mon_grouping          3
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/kn_IN
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/kn_IN
++++ glibc-2.12-2-gc4ccff1/localedata/locales/kn_IN
+@@ -71,8 +71,7 @@ LC_MONETARY
+ % for IBM Class for Unicode/Java
+ %
+ int_curr_symbol       "<U0049><U004E><U0052><U0020>"
+-% *** Change this to reflect Kannada , in Dev it is RA with VS U attached
+-currency_symbol       "<U0CB0><U0CC2>"
++currency_symbol       "<U20B9>"
+ mon_decimal_point     "<U002E>"
+ mon_thousands_sep     "<U002C>"
+ mon_grouping          3
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/kok_IN
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/kok_IN
++++ glibc-2.12-2-gc4ccff1/localedata/locales/kok_IN
+@@ -49,7 +49,7 @@ LC_MONETARY
+ % for IBM Class for Unicode.
+ %
+ int_curr_symbol       "<U0049><U004E><U0052><U0020>"
+-currency_symbol       "<U0930><U0941>"
++currency_symbol       "<U20B9>"
+ mon_decimal_point     "<U002E>"
+ mon_thousands_sep     "<U002C>"
+ mon_grouping          3
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/ks_IN
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/ks_IN
++++ glibc-2.12-2-gc4ccff1/localedata/locales/ks_IN
+@@ -57,7 +57,7 @@ LC_MONETARY
+ % for IBM Class for Unicode.
+ %
+ int_curr_symbol       "<U0049><U004E><U0052><U0020>"
+-currency_symbol       "<U20A8>"
++currency_symbol       "<U20B9>"
+ mon_decimal_point     "<U002E>"
+ mon_thousands_sep     "<U002C>"
+ mon_grouping          3
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/ml_IN
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/ml_IN
++++ glibc-2.12-2-gc4ccff1/localedata/locales/ml_IN
+@@ -69,7 +69,7 @@ LC_MONETARY
+ % for IBM Class for Unicode.
+ %
+ int_curr_symbol     "<U0049><U004E><U0052><U0020>"
+-currency_symbol     "<U0D30><U0D42>"
++currency_symbol     "<U20B9>"
+ mon_decimal_point     "<U002E>"
+ mon_thousands_sep     "<U002C>"
+ mon_grouping          3;2
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/mr_IN
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/mr_IN
++++ glibc-2.12-2-gc4ccff1/localedata/locales/mr_IN
+@@ -70,7 +70,7 @@ LC_MONETARY
+ % for IBM Class for Unicode.
+ %
+ int_curr_symbol       "<U0049><U004E><U0052><U0020>"
+-currency_symbol       "<U0930><U0941>"
++currency_symbol       "<U20B9>"
+ mon_decimal_point     "<U002E>"
+ mon_thousands_sep     "<U002C>"
+ mon_grouping          3
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/or_IN
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/or_IN
++++ glibc-2.12-2-gc4ccff1/localedata/locales/or_IN
+@@ -607,7 +607,7 @@ END LC_NUMERIC
+ %%%%%%%%%%%%%
+ LC_MONETARY
+ int_curr_symbol       "<U0049><U004E><U0052><U0020>"
+-currency_symbol       "<U003D><U0030><U0023><U0052><U0073><U002E><U007C><U0031><U0023><U0052><U0065><U002E><U007C><U0031><U003C><U0052><U0073><U002E>"
++currency_symbol       "<U20B9>"
+ mon_decimal_point     "<U002E>"
+ mon_thousands_sep     "<U002C>"
+ mon_grouping          3;2
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/pa_IN
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/pa_IN
++++ glibc-2.12-2-gc4ccff1/localedata/locales/pa_IN
+@@ -66,7 +66,7 @@ END LC_COLLATE
+ LC_MONETARY
+ % This is the POSIX Locale definition the LC_MONETARY category.
+ int_curr_symbol       "<U0049><U004E><U0052><U0020>"
+-currency_symbol       "<U0A30><U0A41><U0A2A><U0A0F>"
++currency_symbol       "<U20B9>"
+ mon_decimal_point     "<U002E>"
+ mon_thousands_sep     "<U002C>"
+ mon_grouping          3
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/sa_IN
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/sa_IN
++++ glibc-2.12-2-gc4ccff1/localedata/locales/sa_IN
+@@ -52,7 +52,7 @@ LC_MONETARY
+ % for IBM Class for Unicode/Java
+ %
+ int_curr_symbol       "<U0049><U004E><U0052><U0020>"
+-currency_symbol       "<U0930><U0942>"
++currency_symbol       "<U20B9>"
+ mon_decimal_point     "<U002E>"
+ mon_thousands_sep     "<U002C>"
+ mon_grouping          3
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/sd_IN
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/sd_IN
++++ glibc-2.12-2-gc4ccff1/localedata/locales/sd_IN
+@@ -57,7 +57,7 @@ LC_MONETARY
+ % for IBM Class for Unicode.
+ %
+ int_curr_symbol       "<U0049><U004E><U0052><U0020>"
+-currency_symbol       "<U20A8>"
++currency_symbol       "<U20B9>"
+ mon_decimal_point     "<U002E>"
+ mon_thousands_sep     "<U002C>"
+ mon_grouping          3
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/ta_IN
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/ta_IN
++++ glibc-2.12-2-gc4ccff1/localedata/locales/ta_IN
+@@ -74,7 +74,7 @@ LC_MONETARY
+ % for IBM Class for Unicode.
+ %
+ int_curr_symbol       "<U0049><U004E><U0052><U0020>"
+-currency_symbol       "<U20A8>"
++currency_symbol       "<U20B9>"
+ mon_decimal_point     "<U002E>"
+ mon_thousands_sep     "<U002C>"
+ mon_grouping          3;2
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/te_IN
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/te_IN
++++ glibc-2.12-2-gc4ccff1/localedata/locales/te_IN
+@@ -73,7 +73,7 @@ LC_MONETARY
+ % for IBM Class for Unicode.
+ %
+ int_curr_symbol       "<U0049><U004E><U0052><U0020>"
+-currency_symbol       "<U0C30><U0C42><U002E>"
++currency_symbol       "<U20B9>"
+ mon_decimal_point     "<U002E>"
+ mon_thousands_sep     "<U002C>"
+ mon_grouping          3;2
diff --git a/src/patches/glibc/glibc-rh694386.patch b/src/patches/glibc/glibc-rh694386.patch
new file mode 100644 (file)
index 0000000..3932eb8
--- /dev/null
@@ -0,0 +1,86 @@
+2011-03-28  Andreas Schwab  <schwab@linux-m68k.org>
+
+       * sysdeps/powerpc/powerpc32/power4/strncmp.S: Don't read past
+       differing bytes.
+       * sysdeps/powerpc/powerpc64/power4/strncmp.S: Likewise.
+
+diff --git a/sysdeps/powerpc/powerpc32/power4/strncmp.S b/sysdeps/powerpc/powerpc32/power4/strncmp.S
+index fc0835e..f5d47af 100644
+--- a/sysdeps/powerpc/powerpc32/power4/strncmp.S
++++ b/sysdeps/powerpc/powerpc32/power4/strncmp.S
+@@ -139,30 +139,31 @@ L(u1):
+       bdz     L(u4)
+       cmpw    rWORD1, rWORD2
+       beq-    cr1, L(u4)
++      bne-    L(u4)
+       lbzu    rWORD3, 1(rSTR1)
+       lbzu    rWORD4, 1(rSTR2)
+-      bne-    L(u4)
+       cmpwi   cr1, rWORD3, 0
+       bdz     L(u3)
+       cmpw    rWORD3, rWORD4
+       beq-    cr1, L(u3)
++      bne-    L(u3)
+       lbzu    rWORD1, 1(rSTR1)
+       lbzu    rWORD2, 1(rSTR2)
+-      bne-    L(u3)
+       cmpwi   cr1, rWORD1, 0
+       bdz     L(u4)
+       cmpw    rWORD1, rWORD2
+       beq-    cr1, L(u4)
++      bne-    L(u4)
+       lbzu    rWORD3, 1(rSTR1)
+       lbzu    rWORD4, 1(rSTR2)
+-      bne-    L(u4)
+       cmpwi   cr1, rWORD3, 0
+       bdz     L(u3)
+       cmpw    rWORD3, rWORD4
+       beq-    cr1, L(u3)
++      bne-    L(u3)
+       lbzu    rWORD1, 1(rSTR1)
+       lbzu    rWORD2, 1(rSTR2)
+-      beq+    L(u1)
++      b       L(u1)
+ L(u3):  sub     rRTN, rWORD3, rWORD4
+         blr
+diff --git a/sysdeps/powerpc/powerpc64/power4/strncmp.S b/sysdeps/powerpc/powerpc64/power4/strncmp.S
+index 7a1665d..94ae85b 100644
+--- a/sysdeps/powerpc/powerpc64/power4/strncmp.S
++++ b/sysdeps/powerpc/powerpc64/power4/strncmp.S
+@@ -143,30 +143,31 @@ L(u1):
+       bdz     L(u4)
+       cmpd    rWORD1, rWORD2
+       beq-    cr1, L(u4)
++      bne-    L(u4)
+       lbzu    rWORD3, 1(rSTR1)
+       lbzu    rWORD4, 1(rSTR2)
+-      bne-    L(u4)
+       cmpdi   cr1, rWORD3, 0
+       bdz     L(u3)
+       cmpd    rWORD3, rWORD4
+       beq-    cr1, L(u3)
++      bne-    L(u3)
+       lbzu    rWORD1, 1(rSTR1)
+       lbzu    rWORD2, 1(rSTR2)
+-      bne-    L(u3)
+       cmpdi   cr1, rWORD1, 0
+       bdz     L(u4)
+       cmpd    rWORD1, rWORD2
+       beq-    cr1, L(u4)
++      bne-    L(u4)
+       lbzu    rWORD3, 1(rSTR1)
+       lbzu    rWORD4, 1(rSTR2)
+-      bne-    L(u4)
+       cmpdi   cr1, rWORD3, 0
+       bdz     L(u3)
+       cmpd    rWORD3, rWORD4
+       beq-    cr1, L(u3)
++      bne-    L(u3)
+       lbzu    rWORD1, 1(rSTR1)
+       lbzu    rWORD2, 1(rSTR2)
+-      beq+    L(u1)
++      b       L(u1)
+ L(u3):  sub     rRTN, rWORD3, rWORD4
+         blr
diff --git a/src/patches/glibc/glibc-rh695595.patch b/src/patches/glibc/glibc-rh695595.patch
new file mode 100644 (file)
index 0000000..0e6c72b
--- /dev/null
@@ -0,0 +1,17 @@
+2010-11-11  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * sysdeps/x86_64/multiarch/init-arch.c (__init_cpu_features):
+       Support Intel processor model 6 and model 0x2c.
+
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/init-arch.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/multiarch/init-arch.c
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/init-arch.c
+@@ -81,6 +81,7 @@ __init_cpu_features (void)
+           case 0x1e:
+           case 0x1f:
+           case 0x25:
++          case 0x2c:
+           case 0x2e:
+           case 0x2f:
+             /* Rep string instructions are fast on Intel Core i3, i5
diff --git a/src/patches/glibc/glibc-rh695963.patch b/src/patches/glibc/glibc-rh695963.patch
new file mode 100644 (file)
index 0000000..e8053dc
--- /dev/null
@@ -0,0 +1,1284 @@
+2010-08-27  Ulrich Drepper  <drepper@redhat.com>
+
+       * sysdeps/x86_64/multiarch/strlen-no-bsf.S: Move to .text.slow section.
+
+       * sysdeps/x86_64/strlen.S: Minimal code improvement.
+
+2010-08-26  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * sysdeps/x86_64/strlen.S: Unroll the loop.
+       * sysdeps/x86_64/multiarch/Makefile (sysdep_routines): Add
+       strlen-sse2 strlen-sse2-bsf.
+       * sysdeps/x86_64/multiarch/strlen.S ((strlen): Return
+       __strlen_no_bsf if bit_Slow_BSF is set.
+       (__strlen_sse42): Removed.
+       * sysdeps/x86_64/multiarch/strlen-no-bsf.S: New file.
+       * sysdeps/x86_64/multiarch/strlen-sse4.S: New file.
+
+2010-08-25  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * sysdeps/i386/i686/multiarch/Makefile (sysdep_routines): Add
+       strlen-sse2 strlen-sse2-bsf.
+       * sysdeps/i386/i686/multiarch/strlen.S (strlen): Return
+       __strlen_sse2_bsf if bit_Slow_BSF is unset.
+       (__strlen_sse2): Removed.
+       * sysdeps/i386/i686/multiarch/strlen-sse2-bsf.S: New file.
+       * sysdeps/i386/i686/multiarch/strlen-sse2.S: New file.
+       * sysdeps/x86_64/multiarch/init-arch.c (__init_cpu_features): Set
+       bit_Slow_BSF for Atom.
+       * sysdeps/x86_64/multiarch/init-arch.h (bit_Slow_BSF): Define.
+       (index_Slow_BSF): Define.
+       (HAS_SLOW_BSF): Define.
+
+Index: glibc-2.12-2-gc4ccff1/sysdeps/i386/i686/multiarch/Makefile
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/i386/i686/multiarch/Makefile
++++ glibc-2.12-2-gc4ccff1/sysdeps/i386/i686/multiarch/Makefile
+@@ -9,7 +9,8 @@ sysdep_routines += bzero-sse2 memset-sse
+                  memmove-ssse3-rep bcopy-ssse3 bcopy-ssse3-rep \
+                  memset-sse2-rep bzero-sse2-rep strcmp-ssse3 \
+                  strcmp-sse4 strncmp-c strncmp-ssse3 strncmp-sse4 \
+-                 memcmp-ssse3 memcmp-sse4 strcasestr-nonascii
++                 memcmp-ssse3 memcmp-sse4 strcasestr-nonascii \
++                 strlen-sse2 strlen-sse2-bsf
+ ifeq (yes,$(config-cflags-sse4))
+ sysdep_routines += strcspn-c strpbrk-c strspn-c strstr-c strcasestr-c
+ CFLAGS-strcspn-c.c += -msse4
+Index: glibc-2.12-2-gc4ccff1/sysdeps/i386/i686/multiarch/strlen-sse2-bsf.S
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/sysdeps/i386/i686/multiarch/strlen-sse2-bsf.S
+@@ -0,0 +1,127 @@
++/* strlen with SSE2 and BSF
++   Copyright (C) 2010 Free Software Foundation, Inc.
++   Contributed by Intel Corporation.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#if defined SHARED && !defined NOT_IN_libc
++
++#include <sysdep.h>
++#include "asm-syntax.h"
++
++#define CFI_PUSH(REG)                                         \
++  cfi_adjust_cfa_offset (4);                                  \
++  cfi_rel_offset (REG, 0)
++
++#define CFI_POP(REG)                                          \
++  cfi_adjust_cfa_offset (-4);                                 \
++  cfi_restore (REG)
++
++#define PUSH(REG)     pushl REG; CFI_PUSH (REG)
++#define POP(REG)      popl REG; CFI_POP (REG)
++#define PARMS         4 + 8   /* Preserve ESI and EDI.  */
++#define       STR             PARMS
++#define ENTRANCE      PUSH (%esi); PUSH (%edi); cfi_remember_state
++#define RETURN                POP (%edi); POP (%esi); ret; \
++                      cfi_restore_state; cfi_remember_state
++
++      .text
++ENTRY ( __strlen_sse2_bsf)
++      ENTRANCE
++      mov     STR(%esp), %edi
++      xor     %eax, %eax
++      mov     %edi, %ecx
++      and     $0x3f, %ecx
++      pxor    %xmm0, %xmm0
++      cmp     $0x30, %ecx
++      ja      L(next)
++      movdqu  (%edi), %xmm1
++      pcmpeqb %xmm1, %xmm0
++      pmovmskb %xmm0, %edx
++      test    %edx, %edx
++      jnz     L(exit_less16)
++      mov     %edi, %eax
++      and     $-16, %eax
++      jmp     L(align16_start)
++L(next):
++
++      mov     %edi, %eax
++      and     $-16, %eax
++      pcmpeqb (%eax), %xmm0
++      mov     $-1, %esi
++      sub     %eax, %ecx
++      shl     %cl, %esi
++      pmovmskb %xmm0, %edx
++      and     %esi, %edx
++      jnz     L(exit)
++L(align16_start):
++      pxor    %xmm0, %xmm0
++      pxor    %xmm1, %xmm1
++      pxor    %xmm2, %xmm2
++      pxor    %xmm3, %xmm3
++      .p2align 4
++L(align16_loop):
++      pcmpeqb 16(%eax), %xmm0
++      pmovmskb %xmm0, %edx
++      test    %edx, %edx
++      jnz     L(exit16)
++
++      pcmpeqb 32(%eax), %xmm1
++      pmovmskb %xmm1, %edx
++      test    %edx, %edx
++      jnz     L(exit32)
++
++      pcmpeqb 48(%eax), %xmm2
++      pmovmskb %xmm2, %edx
++      test    %edx, %edx
++      jnz     L(exit48)
++
++      pcmpeqb 64(%eax), %xmm3
++      pmovmskb %xmm3, %edx
++      lea     64(%eax), %eax
++      test    %edx, %edx
++      jz      L(align16_loop)
++L(exit):
++      sub     %edi, %eax
++L(exit_less16):
++      bsf     %edx, %edx
++      add     %edx, %eax
++      RETURN
++L(exit16):
++      sub     %edi, %eax
++      bsf     %edx, %edx
++      add     %edx, %eax
++      add     $16, %eax
++      RETURN
++L(exit32):
++      sub     %edi, %eax
++      bsf     %edx, %edx
++      add     %edx, %eax
++      add     $32, %eax
++      RETURN
++L(exit48):
++      sub     %edi, %eax
++      bsf     %edx, %edx
++      add     %edx, %eax
++      add     $48, %eax
++      POP (%edi)
++      POP (%esi)
++      ret
++
++END ( __strlen_sse2_bsf)
++
++#endif
+Index: glibc-2.12-2-gc4ccff1/sysdeps/i386/i686/multiarch/strlen-sse2.S
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/sysdeps/i386/i686/multiarch/strlen-sse2.S
+@@ -0,0 +1,347 @@
++/* strlen with SSE2
++   Copyright (C) 2010 Free Software Foundation, Inc.
++   Contributed by Intel Corporation.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#if defined SHARED && !defined NOT_IN_libc
++
++#include <sysdep.h>
++#include "asm-syntax.h"
++
++#define CFI_PUSH(REG)                                         \
++  cfi_adjust_cfa_offset (4);                                  \
++  cfi_rel_offset (REG, 0)
++
++#define CFI_POP(REG)                                          \
++  cfi_adjust_cfa_offset (-4);                                 \
++  cfi_restore (REG)
++
++#define PUSH(REG)     pushl REG; CFI_PUSH (REG)
++#define POP(REG)      popl REG; CFI_POP (REG)
++#define PARMS         4
++#define       STR             PARMS
++#define ENTRANCE
++#define RETURN                ret
++
++      .text
++ENTRY (__strlen_sse2)
++      ENTRANCE
++      mov     STR(%esp), %edx
++      xor     %eax, %eax
++      cmpb    $0, (%edx)
++      jz      L(exit_tail0)
++      cmpb    $0, 1(%edx)
++      jz      L(exit_tail1)
++      cmpb    $0, 2(%edx)
++      jz      L(exit_tail2)
++      cmpb    $0, 3(%edx)
++      jz      L(exit_tail3)
++      cmpb    $0, 4(%edx)
++      jz      L(exit_tail4)
++      cmpb    $0, 5(%edx)
++      jz      L(exit_tail5)
++      cmpb    $0, 6(%edx)
++      jz      L(exit_tail6)
++      cmpb    $0, 7(%edx)
++      jz      L(exit_tail7)
++      cmpb    $0, 8(%edx)
++      jz      L(exit_tail8)
++      cmpb    $0, 9(%edx)
++      jz      L(exit_tail9)
++      cmpb    $0, 10(%edx)
++      jz      L(exit_tail10)
++      cmpb    $0, 11(%edx)
++      jz      L(exit_tail11)
++      cmpb    $0, 12(%edx)
++      jz      L(exit_tail12)
++      cmpb    $0, 13(%edx)
++      jz      L(exit_tail13)
++      cmpb    $0, 14(%edx)
++      jz      L(exit_tail14)
++      cmpb    $0, 15(%edx)
++      jz      L(exit_tail15)
++      pxor    %xmm0, %xmm0
++      mov     %edx, %eax
++      mov     %edx, %ecx
++      and     $-16, %eax
++      add     $16, %ecx
++      add     $16, %eax
++
++      pcmpeqb (%eax), %xmm0
++      pmovmskb %xmm0, %edx
++      pxor    %xmm1, %xmm1
++      test    %edx, %edx
++      lea     16(%eax), %eax
++      jnz     L(exit)
++
++      pcmpeqb (%eax), %xmm1
++      pmovmskb %xmm1, %edx
++      pxor    %xmm2, %xmm2
++      test    %edx, %edx
++      lea     16(%eax), %eax
++      jnz     L(exit)
++
++
++      pcmpeqb (%eax), %xmm2
++      pmovmskb %xmm2, %edx
++      pxor    %xmm3, %xmm3
++      test    %edx, %edx
++      lea     16(%eax), %eax
++      jnz     L(exit)
++
++      pcmpeqb (%eax), %xmm3
++      pmovmskb %xmm3, %edx
++      test    %edx, %edx
++      lea     16(%eax), %eax
++      jnz     L(exit)
++
++      pcmpeqb (%eax), %xmm0
++      pmovmskb %xmm0, %edx
++      test    %edx, %edx
++      lea     16(%eax), %eax
++      jnz     L(exit)
++
++      pcmpeqb (%eax), %xmm1
++      pmovmskb %xmm1, %edx
++      test    %edx, %edx
++      lea     16(%eax), %eax
++      jnz     L(exit)
++
++      pcmpeqb (%eax), %xmm2
++      pmovmskb %xmm2, %edx
++      test    %edx, %edx
++      lea     16(%eax), %eax
++      jnz     L(exit)
++
++      pcmpeqb (%eax), %xmm3
++      pmovmskb %xmm3, %edx
++      test    %edx, %edx
++      lea     16(%eax), %eax
++      jnz     L(exit)
++
++      pcmpeqb (%eax), %xmm0
++      pmovmskb %xmm0, %edx
++      test    %edx, %edx
++      lea     16(%eax), %eax
++      jnz     L(exit)
++
++      pcmpeqb (%eax), %xmm1
++      pmovmskb %xmm1, %edx
++      test    %edx, %edx
++      lea     16(%eax), %eax
++      jnz     L(exit)
++
++      pcmpeqb (%eax), %xmm2
++      pmovmskb %xmm2, %edx
++      test    %edx, %edx
++      lea     16(%eax), %eax
++      jnz     L(exit)
++
++      pcmpeqb (%eax), %xmm3
++      pmovmskb %xmm3, %edx
++      test    %edx, %edx
++      lea     16(%eax), %eax
++      jnz     L(exit)
++
++      pcmpeqb (%eax), %xmm0
++      pmovmskb %xmm0, %edx
++      test    %edx, %edx
++      lea     16(%eax), %eax
++      jnz     L(exit)
++
++      pcmpeqb (%eax), %xmm1
++      pmovmskb %xmm1, %edx
++      test    %edx, %edx
++      lea     16(%eax), %eax
++      jnz     L(exit)
++
++      pcmpeqb (%eax), %xmm2
++      pmovmskb %xmm2, %edx
++      test    %edx, %edx
++      lea     16(%eax), %eax
++      jnz     L(exit)
++
++      pcmpeqb (%eax), %xmm3
++      pmovmskb %xmm3, %edx
++      test    %edx, %edx
++      lea     16(%eax), %eax
++      jnz     L(exit)
++
++      and     $-0x40, %eax
++      PUSH (%esi)
++      PUSH (%edi)
++      PUSH (%ebx)
++      PUSH (%ebp)
++      xor     %ebp, %ebp
++L(aligned_64):
++      pcmpeqb (%eax), %xmm0
++      pcmpeqb 16(%eax), %xmm1
++      pcmpeqb 32(%eax), %xmm2
++      pcmpeqb 48(%eax), %xmm3
++      pmovmskb %xmm0, %edx
++      pmovmskb %xmm1, %esi
++      pmovmskb %xmm2, %edi
++      pmovmskb %xmm3, %ebx
++      or      %edx, %ebp
++      or      %esi, %ebp
++      or      %edi, %ebp
++      or      %ebx, %ebp
++      lea     64(%eax), %eax
++      jz      L(aligned_64)
++L(48leave):
++      test    %edx, %edx
++      jnz     L(aligned_64_exit_16)
++      test    %esi, %esi
++      jnz     L(aligned_64_exit_32)
++      test    %edi, %edi
++      jnz     L(aligned_64_exit_48)
++      mov     %ebx, %edx
++      lea     (%eax), %eax
++      jmp     L(aligned_64_exit)
++L(aligned_64_exit_48):
++      lea     -16(%eax), %eax
++      mov     %edi, %edx
++      jmp     L(aligned_64_exit)
++L(aligned_64_exit_32):
++      lea     -32(%eax), %eax
++      mov     %esi, %edx
++      jmp     L(aligned_64_exit)
++L(aligned_64_exit_16):
++      lea     -48(%eax), %eax
++L(aligned_64_exit):
++      POP (%ebp)
++      POP (%ebx)
++      POP (%edi)
++      POP (%esi)
++L(exit):
++      sub     %ecx, %eax
++      test    %dl, %dl
++      jz      L(exit_high)
++      test    $0x01, %dl
++      jnz     L(exit_tail0)
++
++      test    $0x02, %dl
++      jnz     L(exit_tail1)
++
++      test    $0x04, %dl
++      jnz     L(exit_tail2)
++
++      test    $0x08, %dl
++      jnz     L(exit_tail3)
++
++      test    $0x10, %dl
++      jnz     L(exit_tail4)
++
++      test    $0x20, %dl
++      jnz     L(exit_tail5)
++
++      test    $0x40, %dl
++      jnz     L(exit_tail6)
++      add     $7, %eax
++L(exit_tail0):
++      RETURN
++
++L(exit_high):
++      add     $8, %eax
++      test    $0x01, %dh
++      jnz     L(exit_tail0)
++
++      test    $0x02, %dh
++      jnz     L(exit_tail1)
++
++      test    $0x04, %dh
++      jnz     L(exit_tail2)
++
++      test    $0x08, %dh
++      jnz     L(exit_tail3)
++
++      test    $0x10, %dh
++      jnz     L(exit_tail4)
++
++      test    $0x20, %dh
++      jnz     L(exit_tail5)
++
++      test    $0x40, %dh
++      jnz     L(exit_tail6)
++      add     $7, %eax
++      RETURN
++
++      .p2align 4
++L(exit_tail1):
++      add     $1, %eax
++      RETURN
++
++L(exit_tail2):
++      add     $2, %eax
++      RETURN
++
++L(exit_tail3):
++      add     $3, %eax
++      RETURN
++
++L(exit_tail4):
++      add     $4, %eax
++      RETURN
++
++L(exit_tail5):
++      add     $5, %eax
++      RETURN
++
++L(exit_tail6):
++      add     $6, %eax
++      RETURN
++
++L(exit_tail7):
++      add     $7, %eax
++      RETURN
++
++L(exit_tail8):
++      add     $8, %eax
++      RETURN
++
++L(exit_tail9):
++      add     $9, %eax
++      RETURN
++
++L(exit_tail10):
++      add     $10, %eax
++      RETURN
++
++L(exit_tail11):
++      add     $11, %eax
++      RETURN
++
++L(exit_tail12):
++      add     $12, %eax
++      RETURN
++
++L(exit_tail13):
++      add     $13, %eax
++      RETURN
++
++L(exit_tail14):
++      add     $14, %eax
++      RETURN
++
++L(exit_tail15):
++      add     $15, %eax
++      ret
++
++END (__strlen_sse2)
++
++#endif
+Index: glibc-2.12-2-gc4ccff1/sysdeps/i386/i686/multiarch/strlen.S
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/i386/i686/multiarch/strlen.S
++++ glibc-2.12-2-gc4ccff1/sysdeps/i386/i686/multiarch/strlen.S
+@@ -48,6 +48,9 @@ ENTRY(strlen)
+ 1:    leal    __strlen_ia32@GOTOFF(%ebx), %eax
+       testl   $bit_SSE2, CPUID_OFFSET+index_SSE2+__cpu_features@GOTOFF(%ebx)
+       jz      2f
++      leal    __strlen_sse2_bsf@GOTOFF(%ebx), %eax
++      testl   $bit_Slow_BSF, FEATURE_OFFSET+index_Slow_BSF+__cpu_features@GOTOFF(%ebx)
++      jz      2f
+       leal    __strlen_sse2@GOTOFF(%ebx), %eax
+ 2:    popl    %ebx
+       cfi_adjust_cfa_offset (-4);
+@@ -55,84 +58,6 @@ ENTRY(strlen)
+       ret
+ END(strlen)
+-#define CFI_POP(REG)                                          \
+-  cfi_adjust_cfa_offset (-4);                                 \
+-  cfi_restore (REG)
+-
+-#define RETURN                popl %esi; CFI_POP (esi); ret
+-
+-      .text
+-ENTRY (__strlen_sse2)
+-/*
+- * This implementation uses SSE instructions to compare up to 16 bytes
+- * at a time looking for the end of string (null char).
+- */
+-      pushl   %esi
+-      cfi_adjust_cfa_offset (4)
+-      cfi_rel_offset (%esi, 0)
+-      mov     8(%esp), %eax
+-      mov     %eax, %ecx
+-      pxor    %xmm0, %xmm0            /* 16 null chars */
+-      mov     %eax, %esi
+-      and     $15, %ecx
+-      jz      1f                      /* string is 16 byte aligned */
+-
+-      /*
+-      * Unaligned case. Round down to 16-byte boundary before comparing
+-      * 16 bytes for a null char. The code then compensates for any extra chars
+-      * preceding the start of the string.
+-      */
+-      and     $-16, %esi
+-
+-      pcmpeqb (%esi), %xmm0
+-      lea     16(%eax), %esi
+-      pmovmskb %xmm0, %edx
+-
+-      shr     %cl, %edx               /* Compensate for bytes preceding the string */
+-      test    %edx, %edx
+-      jnz     2f
+-      sub     %ecx, %esi              /* no null, adjust to next 16-byte boundary */
+-      pxor    %xmm0, %xmm0            /* clear xmm0, may have been changed... */
+-
+-      .p2align 4
+-1:                                    /* 16 byte aligned */
+-      pcmpeqb (%esi), %xmm0           /* look for null bytes */
+-      pmovmskb %xmm0, %edx            /* move each byte mask of %xmm0 to edx */
+-
+-      add     $16, %esi               /* prepare to search next 16 bytes */
+-      test    %edx, %edx              /* if no null byte, %edx must be 0 */
+-      jnz     2f                      /* found a null */
+-
+-      pcmpeqb (%esi), %xmm0
+-      pmovmskb %xmm0, %edx
+-      add     $16, %esi
+-      test    %edx, %edx
+-      jnz     2f
+-
+-      pcmpeqb (%esi), %xmm0
+-      pmovmskb %xmm0, %edx
+-      add     $16, %esi
+-      test    %edx, %edx
+-      jnz     2f
+-
+-      pcmpeqb (%esi), %xmm0
+-      pmovmskb %xmm0, %edx
+-      add     $16, %esi
+-      test    %edx, %edx
+-      jz      1b
+-
+-2:
+-      neg     %eax
+-      lea     -16(%eax, %esi), %eax   /* calculate exact offset */
+-      bsf     %edx, %ecx              /* Least significant 1 bit is index of null */
+-      add     %ecx, %eax
+-      popl    %esi
+-      cfi_adjust_cfa_offset (-4)
+-      cfi_restore (%esi)
+-      ret
+-
+-END (__strlen_sse2)
+-
+ # undef ENTRY
+ # define ENTRY(name) \
+       .type __strlen_ia32, @function; \
+--- a/sysdeps/x86_64/multiarch/Makefile        2012-03-01 10:43:30.060487726 -0700
++++ b/sysdeps/x86_64/multiarch/Makefile        2012-03-01 10:45:57.894692115 -0700
+@@ -7,7 +7,7 @@ ifeq ($(subdir),string)
+ sysdep_routines += stpncpy-c strncpy-c strcmp-ssse3 strncmp-ssse3 \
+                  strend-sse4 memcmp-sse4 \
+                  strcasestr-nonascii strcasecmp_l-ssse3 \
+-                 strncase_l-ssse3 \
++                 strncase_l-ssse3 strlen-sse4 strlen-no-bsf \
+                  memset-x86-64
+ ifeq (yes,$(config-cflags-sse4))
+ sysdep_routines += strcspn-c strpbrk-c strspn-c strstr-c strcasestr-c
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/init-arch.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/multiarch/init-arch.c
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/init-arch.c
+@@ -77,6 +77,12 @@ __init_cpu_features (void)
+         model += extended_model;
+         switch (model)
+           {
++          case 0x1c:
++          case 0x26:
++            /* BSF is slow on Atom.  */
++            __cpu_features.feature[index_Slow_BSF] |= bit_Slow_BSF;
++            break;
++
+           case 0x1a:
+           case 0x1e:
+           case 0x1f:
+--- a/sysdeps/x86_64/multiarch/init-arch.h     2012-03-01 10:43:30.061487720 -0700
++++ b/sysdeps/x86_64/multiarch/init-arch.h     2012-03-01 10:48:13.371963005 -0700
+@@ -17,6 +17,7 @@
+    02111-1307 USA.  */
+ #define bit_Fast_Rep_String           (1 << 0)
++#define bit_Slow_BSF                   (1 << 2)
+ #define bit_Prefer_SSE_for_memop      (1 << 3)
+ #ifdef        __ASSEMBLER__
+@@ -34,6 +35,7 @@
+ # define index_SSE4_2 COMMON_CPUID_INDEX_1*CPUID_SIZE+CPUID_ECX_OFFSET
+ #define index_Fast_Rep_String FEATURE_INDEX_1*FEATURE_SIZE
++# define index_Slow_BSF                        FEATURE_INDEX_1*FEATURE_SIZE
+ # define index_Prefer_SSE_for_memop   FEATURE_INDEX_1*FEATURE_SIZE
+ #else /* __ASSEMBLER__ */
+@@ -105,11 +107,15 @@ extern const struct cpu_features *__get_
+ # define HAS_FMA      HAS_CPU_FEATURE (COMMON_CPUID_INDEX_1, ecx, 12)
+ # define index_Fast_Rep_String        FEATURE_INDEX_1
++# define index_Slow_BSF                        FEATURE_INDEX_1
+ # define index_Prefer_SSE_for_memop   FEATURE_INDEX_1
+ #define HAS_ARCH_FEATURE(idx, bit) \
+   ((__get_cpu_features ()->feature[idx] & (bit)) != 0)
++#define HAS_SLOW_BSF \
++  HAS_ARCH_FEATURE (index_Slow_BSF, bit_Slow_BSF)
++
+ #define HAS_PREFER_SSE_FOR_MEMOP \
+   HAS_ARCH_FEATURE (index_Prefer_SSE_for_memop, bit_Prefer_SSE_for_memop)
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strlen-no-bsf.S
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strlen-no-bsf.S
+@@ -0,0 +1,309 @@
++/* strlen without BSF
++   Copyright (C) 2010 Free Software Foundation, Inc.
++   Contributed by Intel Corporation.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#if defined SHARED && !defined NOT_IN_libc
++
++#include <sysdep.h>
++
++      .section .text.slow,"ax",@progbits
++ENTRY (__strlen_no_bsf)
++      xor     %eax, %eax
++      cmpb    $0, (%rdi)
++      jz      L(exit_tail0)
++      cmpb    $0, 1(%rdi)
++      jz      L(exit_tail1)
++      cmpb    $0, 2(%rdi)
++      jz      L(exit_tail2)
++      cmpb    $0, 3(%rdi)
++      jz      L(exit_tail3)
++      cmpb    $0, 4(%rdi)
++      jz      L(exit_tail4)
++      cmpb    $0, 5(%rdi)
++      jz      L(exit_tail5)
++      cmpb    $0, 6(%rdi)
++      jz      L(exit_tail6)
++      cmpb    $0, 7(%rdi)
++      jz      L(exit_tail7)
++      cmpb    $0, 8(%rdi)
++      jz      L(exit_tail8)
++      cmpb    $0, 9(%rdi)
++      jz      L(exit_tail9)
++      cmpb    $0, 10(%rdi)
++      jz      L(exit_tail10)
++      cmpb    $0, 11(%rdi)
++      jz      L(exit_tail11)
++      cmpb    $0, 12(%rdi)
++      jz      L(exit_tail12)
++      cmpb    $0, 13(%rdi)
++      jz      L(exit_tail13)
++      cmpb    $0, 14(%rdi)
++      jz      L(exit_tail14)
++      cmpb    $0, 15(%rdi)
++      jz      L(exit_tail15)
++      pxor    %xmm0, %xmm0
++      mov     %rdi, %rcx
++      mov     %rdi, %rax
++      and     $-16, %rax
++      add     $16, %rax
++      add     $16, %rcx
++
++      pcmpeqb (%rax), %xmm0
++      pmovmskb %xmm0, %edx
++      pxor    %xmm1, %xmm1
++      test    %edx, %edx
++      lea     16(%rax), %rax
++      jnz     L(exit)
++
++      pcmpeqb (%rax), %xmm1
++      pmovmskb %xmm1, %edx
++      pxor    %xmm2, %xmm2
++      test    %edx, %edx
++      lea     16(%rax), %rax
++      jnz     L(exit)
++
++
++      pcmpeqb (%rax), %xmm2
++      pmovmskb %xmm2, %edx
++      pxor    %xmm3, %xmm3
++      test    %edx, %edx
++      lea     16(%rax), %rax
++      jnz     L(exit)
++
++      pcmpeqb (%rax), %xmm3
++      pmovmskb %xmm3, %edx
++      test    %edx, %edx
++      lea     16(%rax), %rax
++      jnz     L(exit)
++
++      pcmpeqb (%rax), %xmm0
++      pmovmskb %xmm0, %edx
++      test    %edx, %edx
++      lea     16(%rax), %rax
++      jnz     L(exit)
++
++      pcmpeqb (%rax), %xmm1
++      pmovmskb %xmm1, %edx
++      test    %edx, %edx
++      lea     16(%rax), %rax
++      jnz     L(exit)
++
++      pcmpeqb (%rax), %xmm2
++      pmovmskb %xmm2, %edx
++      test    %edx, %edx
++      lea     16(%rax), %rax
++      jnz     L(exit)
++
++      pcmpeqb (%rax), %xmm3
++      pmovmskb %xmm3, %edx
++      test    %edx, %edx
++      lea     16(%rax), %rax
++      jnz     L(exit)
++
++      pcmpeqb (%rax), %xmm0
++      pmovmskb %xmm0, %edx
++      test    %edx, %edx
++      lea     16(%rax), %rax
++      jnz     L(exit)
++
++      pcmpeqb (%rax), %xmm1
++      pmovmskb %xmm1, %edx
++      test    %edx, %edx
++      lea     16(%rax), %rax
++      jnz     L(exit)
++
++      pcmpeqb (%rax), %xmm2
++      pmovmskb %xmm2, %edx
++      test    %edx, %edx
++      lea     16(%rax), %rax
++      jnz     L(exit)
++
++      pcmpeqb (%rax), %xmm3
++      pmovmskb %xmm3, %edx
++      test    %edx, %edx
++      lea     16(%rax), %rax
++      jnz     L(exit)
++
++      pcmpeqb (%rax), %xmm0
++      pmovmskb %xmm0, %edx
++      test    %edx, %edx
++      lea     16(%rax), %rax
++      jnz     L(exit)
++
++      pcmpeqb (%rax), %xmm1
++      pmovmskb %xmm1, %edx
++      test    %edx, %edx
++      lea     16(%rax), %rax
++      jnz     L(exit)
++
++      pcmpeqb (%rax), %xmm2
++      pmovmskb %xmm2, %edx
++      test    %edx, %edx
++      lea     16(%rax), %rax
++      jnz     L(exit)
++
++      pcmpeqb (%rax), %xmm3
++      pmovmskb %xmm3, %edx
++      test    %edx, %edx
++      lea     16(%rax), %rax
++      jnz     L(exit)
++
++      and     $-0x40, %rax
++      xor     %r8d, %r8d
++L(aligned_64):
++      pcmpeqb (%rax), %xmm0
++      pcmpeqb 16(%rax), %xmm1
++      pcmpeqb 32(%rax), %xmm2
++      pcmpeqb 48(%rax), %xmm3
++      pmovmskb %xmm0, %edx
++      pmovmskb %xmm1, %esi
++      pmovmskb %xmm2, %edi
++      pmovmskb %xmm3, %r9d
++      or      %edx, %r8d
++      or      %esi, %r8d
++      or      %edi, %r8d
++      or      %r9d, %r8d
++      lea     64(%rax), %rax
++      jz      L(aligned_64)
++
++      test    %edx, %edx
++      jnz     L(aligned_64_exit_16)
++      test    %esi, %esi
++      jnz     L(aligned_64_exit_32)
++      test    %edi, %edi
++      jnz     L(aligned_64_exit_48)
++L(aligned_64_exit_64):
++      mov     %r9d, %edx
++      jmp     L(aligned_64_exit)
++L(aligned_64_exit_48):
++      lea     -16(%rax), %rax
++      mov     %edi, %edx
++      jmp     L(aligned_64_exit)
++L(aligned_64_exit_32):
++      lea     -32(%rax), %rax
++      mov     %esi, %edx
++      jmp     L(aligned_64_exit)
++L(aligned_64_exit_16):
++      lea     -48(%rax), %rax
++L(aligned_64_exit):
++L(exit):
++      sub     %rcx, %rax
++      test    %dl, %dl
++      jz      L(exit_high)
++      test    $0x01, %dl
++      jnz     L(exit_tail0)
++
++      test    $0x02, %dl
++      jnz     L(exit_tail1)
++
++      test    $0x04, %dl
++      jnz     L(exit_tail2)
++
++      test    $0x08, %dl
++      jnz     L(exit_tail3)
++
++      test    $0x10, %dl
++      jnz     L(exit_tail4)
++
++      test    $0x20, %dl
++      jnz     L(exit_tail5)
++
++      test    $0x40, %dl
++      jnz     L(exit_tail6)
++      add     $7, %eax
++L(exit_tail0):
++      ret
++
++L(exit_high):
++      add     $8, %eax
++      test    $0x01, %dh
++      jnz     L(exit_tail0)
++
++      test    $0x02, %dh
++      jnz     L(exit_tail1)
++
++      test    $0x04, %dh
++      jnz     L(exit_tail2)
++
++      test    $0x08, %dh
++      jnz     L(exit_tail3)
++
++      test    $0x10, %dh
++      jnz     L(exit_tail4)
++
++      test    $0x20, %dh
++      jnz     L(exit_tail5)
++
++      test    $0x40, %dh
++      jnz     L(exit_tail6)
++      add     $7, %eax
++      ret
++      .p2align 4
++L(exit_tail1):
++      add     $1, %eax
++      ret
++
++L(exit_tail2):
++      add     $2, %eax
++      ret
++
++L(exit_tail3):
++      add     $3, %eax
++      ret
++
++L(exit_tail4):
++      add     $4, %eax
++      ret
++
++L(exit_tail5):
++      add     $5, %eax
++      ret
++L(exit_tail6):
++      add     $6, %eax
++      ret
++L(exit_tail7):
++      add     $7, %eax
++      ret
++L(exit_tail8):
++      add     $8, %eax
++      ret
++L(exit_tail9):
++      add     $9, %eax
++      ret
++L(exit_tail10):
++      add     $10, %eax
++      ret
++L(exit_tail11):
++      add     $11, %eax
++      ret
++L(exit_tail12):
++      add     $12, %eax
++      ret
++L(exit_tail13):
++      add     $13, %eax
++      ret
++L(exit_tail14):
++      add     $14, %eax
++      ret
++L(exit_tail15):
++      add     $15, %eax
++      ret
++END (__strlen_no_bsf)
++
++#endif
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strlen-sse4.S
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strlen-sse4.S
+@@ -0,0 +1,85 @@
++/* strlen with SSE4
++   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
++   Contributed by Ulrich Drepper <drepper@redhat.com>.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#if defined SHARED && !defined NOT_IN_libc
++
++#include <sysdep.h>
++
++      .section .text.sse4.2,"ax",@progbits
++ENTRY (__strlen_sse42)
++      pxor    %xmm1, %xmm1
++      movl    %edi, %ecx
++      movq    %rdi, %r8
++      andq    $~15, %rdi
++      xor     %edi, %ecx
++      pcmpeqb (%rdi), %xmm1
++      pmovmskb %xmm1, %edx
++      shrl    %cl, %edx
++      shll    %cl, %edx
++      andl    %edx, %edx
++      jnz     L(less16bytes)
++      pxor    %xmm1, %xmm1
++
++      .p2align 4
++L(more64bytes_loop):
++      pcmpistri $0x08, 16(%rdi), %xmm1
++      jz      L(more32bytes)
++
++      pcmpistri $0x08, 32(%rdi), %xmm1
++      jz      L(more48bytes)
++
++      pcmpistri $0x08, 48(%rdi), %xmm1
++      jz      L(more64bytes)
++
++      add     $64, %rdi
++      pcmpistri $0x08, (%rdi), %xmm1
++      jnz     L(more64bytes_loop)
++      leaq    (%rdi,%rcx), %rax
++      subq    %r8, %rax
++      ret
++
++      .p2align 4
++L(more32bytes):
++      leaq    16(%rdi,%rcx, 1), %rax
++      subq    %r8, %rax
++      ret
++
++      .p2align 4
++L(more48bytes):
++      leaq    32(%rdi,%rcx, 1), %rax
++      subq    %r8, %rax
++      ret
++
++      .p2align 4
++L(more64bytes):
++      leaq    48(%rdi,%rcx, 1), %rax
++      subq    %r8, %rax
++      ret
++
++      .p2align 4
++L(less16bytes):
++      subq    %r8, %rdi
++      bsfl    %edx, %eax
++      addq    %rdi, %rax
++      ret
++
++END (__strlen_sse42)
++
++#endif
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strlen.S
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/multiarch/strlen.S
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strlen.S
+@@ -36,74 +36,12 @@ ENTRY(strlen)
+       testl   $bit_SSE4_2, __cpu_features+CPUID_OFFSET+index_SSE4_2(%rip)
+       jz      2f
+       leaq    __strlen_sse42(%rip), %rax
+-2:    ret
+-END(strlen)
+-
+-
+-      .section .text.sse4.2,"ax",@progbits
+-      .align  16
+-      .type   __strlen_sse42, @function
+-__strlen_sse42:
+-      cfi_startproc
+-      CALL_MCOUNT
+-      pxor    %xmm1, %xmm1
+-      movl    %edi, %ecx
+-      movq    %rdi, %r8
+-      andq    $~15, %rdi
+-      xor     %edi, %ecx
+-      pcmpeqb (%rdi), %xmm1
+-      pmovmskb %xmm1, %edx
+-      shrl    %cl, %edx
+-      shll    %cl, %edx
+-      andl    %edx, %edx
+-      jnz     L(less16bytes)
+-      pxor    %xmm1, %xmm1
+-
+-      .p2align 4
+-L(more64bytes_loop):
+-      pcmpistri $0x08, 16(%rdi), %xmm1
+-      jz      L(more32bytes)
+-
+-      pcmpistri $0x08, 32(%rdi), %xmm1
+-      jz      L(more48bytes)
+-
+-      pcmpistri $0x08, 48(%rdi), %xmm1
+-      jz      L(more64bytes)
+-
+-      add     $64, %rdi
+-      pcmpistri $0x08, (%rdi), %xmm1
+-      jnz     L(more64bytes_loop)
+-      leaq    (%rdi,%rcx), %rax
+-      subq    %r8, %rax
+-      ret
+-
+-      .p2align 4
+-L(more32bytes):
+-      leaq    16(%rdi,%rcx, 1), %rax
+-      subq    %r8, %rax
+-      ret
+-
+-      .p2align 4
+-L(more48bytes):
+-      leaq    32(%rdi,%rcx, 1), %rax
+-      subq    %r8, %rax
+-      ret
+-
+-      .p2align 4
+-L(more64bytes):
+-      leaq    48(%rdi,%rcx, 1), %rax
+-      subq    %r8, %rax
+       ret
+-
+-      .p2align 4
+-L(less16bytes):
+-      subq    %r8, %rdi
+-      bsfl    %edx, %eax
+-      addq    %rdi, %rax
+-      ret
+-      cfi_endproc
+-      .size   __strlen_sse42, .-__strlen_sse42
+-
++2:    testl   $bit_Slow_BSF, __cpu_features+FEATURE_OFFSET+index_Slow_BSF(%rip)
++      jz      3f
++      leaq    __strlen_no_bsf(%rip), %rax
++3:    ret
++END(strlen)
+ # undef ENTRY
+ # define ENTRY(name) \
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strlen.S
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/strlen.S
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strlen.S
+@@ -23,29 +23,80 @@
+       .text
+ ENTRY(strlen)
+-      pxor    %xmm2, %xmm2
+-      movq    %rdi, %rcx
+-      movq    %rdi, %r8
+-      andq    $~15, %rdi
+-      movdqa  %xmm2, %xmm1
+-      pcmpeqb (%rdi), %xmm2
+-      orl     $0xffffffff, %esi
+-      subq    %rdi, %rcx
+-      shll    %cl, %esi
+-      pmovmskb %xmm2, %edx
+-      andl    %esi, %edx
+-      jnz     1f
+-
+-2:    movdqa  16(%rdi), %xmm0
+-      leaq    16(%rdi), %rdi
++      xor     %rax, %rax
++      mov     %edi, %ecx
++      and     $0x3f, %ecx
++      pxor    %xmm0, %xmm0
++      cmp     $0x30, %ecx
++      ja      L(next)
++      movdqu  (%rdi), %xmm1
+       pcmpeqb %xmm1, %xmm0
+       pmovmskb %xmm0, %edx
+-      testl   %edx, %edx
+-      jz      2b
++      test    %edx, %edx
++      jnz     L(exit_less16)
++      mov     %rdi, %rax
++      and     $-16, %rax
++      jmp     L(align16_start)
++L(next):
++      mov     %rdi, %rax
++      and     $-16, %rax
++      pcmpeqb (%rax), %xmm0
++      mov     $-1, %esi
++      sub     %rax, %rcx
++      shl     %cl, %esi
++      pmovmskb %xmm0, %edx
++      and     %esi, %edx
++      jnz     L(exit)
++L(align16_start):
++      pxor    %xmm0, %xmm0
++      pxor    %xmm1, %xmm1
++      pxor    %xmm2, %xmm2
++      pxor    %xmm3, %xmm3
++      .p2align 4
++L(align16_loop):
++      pcmpeqb 16(%rax), %xmm0
++      pmovmskb %xmm0, %edx
++      test    %edx, %edx
++      jnz     L(exit16)
+-1:    subq    %r8, %rdi
+-      bsfl    %edx, %eax
+-      addq    %rdi, %rax
++      pcmpeqb 32(%rax), %xmm1
++      pmovmskb %xmm1, %edx
++      test    %edx, %edx
++      jnz     L(exit32)
++
++      pcmpeqb 48(%rax), %xmm2
++      pmovmskb %xmm2, %edx
++      test    %edx, %edx
++      jnz     L(exit48)
++
++      pcmpeqb 64(%rax), %xmm3
++      pmovmskb %xmm3, %edx
++      lea     64(%rax), %rax
++      test    %edx, %edx
++      jz      L(align16_loop)
++L(exit):
++      sub     %rdi, %rax
++L(exit_less16):
++      bsf     %rdx, %rdx
++      add     %rdx, %rax
++      ret
++      .p2align 4
++L(exit16):
++      sub     %rdi, %rax
++      bsf     %rdx, %rdx
++      lea     16(%rdx,%rax), %rax
++      ret
++      .p2align 4
++L(exit32):
++      sub     %rdi, %rax
++      bsf     %rdx, %rdx
++      lea     32(%rdx,%rax), %rax
++      ret
++      .p2align 4
++L(exit48):
++      sub     %rdi, %rax
++      bsf     %rdx, %rdx
++      lea     48(%rdx,%rax), %rax
+       ret
+ END(strlen)
+ libc_hidden_builtin_def (strlen)
diff --git a/src/patches/glibc/glibc-rh696472.patch b/src/patches/glibc/glibc-rh696472.patch
new file mode 100644 (file)
index 0000000..9d30d38
--- /dev/null
@@ -0,0 +1,36 @@
+commit 3d29045b5e8329d97693eda8d98f1d1e60b99c8f
+Author: H.J. Lu <hongjiu.lu@intel.com>
+Date:   Fri Jun 3 07:01:25 2011 -0400
+
+    Assume Intel Core i3/i5/i7 processor if AVX is available
+
+2011-06-02  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * sysdeps/x86_64/multiarch/init-arch.c (__init_cpu_features):
+       Assume Intel Core i3/i5/i7 processor if AVX is available.
+
+diff --git a/sysdeps/x86_64/multiarch/init-arch.c b/sysdeps/x86_64/multiarch/init-arch.c
+index 34ec2df..809d105 100644
+--- a/sysdeps/x86_64/multiarch/init-arch.c
++++ b/sysdeps/x86_64/multiarch/init-arch.c
+@@ -74,6 +74,7 @@ __init_cpu_features (void)
+       }
+       else if (family == 0x06)
+       {
++        ecx = __cpu_features.cpuid[COMMON_CPUID_INDEX_1].ecx;
+         model += extended_model;
+         switch (model)
+           {
+@@ -83,6 +84,12 @@ __init_cpu_features (void)
+             __cpu_features.feature[index_Slow_BSF] |= bit_Slow_BSF;
+             break;
++          default:
++            /* Unknown family 0x06 processors.  Assuming this is one
++               of Core i3/i5/i7 processors if AVX is available.  */
++            if ((ecx & bit_AVX) == 0)
++              break;
++
+           case 0x1a:
+           case 0x1e:
+           case 0x1f:
diff --git a/src/patches/glibc/glibc-rh697421.patch b/src/patches/glibc/glibc-rh697421.patch
new file mode 100644 (file)
index 0000000..961c805
--- /dev/null
@@ -0,0 +1,10 @@
+diff -rup a/iconvdata/gconv-modules b/iconvdata/gconv-modules
+--- a/iconvdata/gconv-modules  2010-05-04 05:27:23.000000000 -0600
++++ b/iconvdata/gconv-modules  2012-01-26 10:58:24.181895489 -0700
+@@ -1954,3 +1954,6 @@ alias    HPGREEK8//              HP-GREEK8//
+ alias OSF10010004//           HP-GREEK8//
+ module        HP-GREEK8//             INTERNAL                HP-GREEK8       1
+ module        INTERNAL                HP-GREEK8//             HP-GREEK8       1
++
++alias ISO-10646-UCS-2//       UNICODE//
++alias ISO-10646-UCS-2//       ISO-10646/UTF8/
diff --git a/src/patches/glibc/glibc-rh699724.patch b/src/patches/glibc/glibc-rh699724.patch
new file mode 100644 (file)
index 0000000..d25ce84
--- /dev/null
@@ -0,0 +1,188 @@
+2011-02-23  Andreas Schwab  <schwab@redhat.com>
+
+       [BZ #12509]
+       * elf/dl-load.c (_dl_map_object_from_fd): Free realname before
+       returning unsuccessfully.
+       * elf/Makefile ($(objpfx)noload-mem): New rule.
+       (noload-ENV): Define.
+       (tests): Add $(objpfx)noload-mem.
+       * elf/noload.c: Include <memcheck.h>.
+       (main): Call mtrace.  Close all opened handles.
+
+2010-09-27  Andreas Schwab  <schwab@redhat.com>
+
+       * include/link.h (struct link_map): Add l_free_initfini.
+       * elf/dl-deps.c (_dl_map_object_deps): Set it when assigning
+       l_initfini.
+       * elf/rtld.c (dl_main): Clear it on all objects loaded on startup.
+       * elf/dl-libc.c (free_mem): Free l_initfini if l_free_initfini is
+       set.
+
+Index: glibc-2.12-2-gc4ccff1/elf/Makefile
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/elf/Makefile
++++ glibc-2.12-2-gc4ccff1/elf/Makefile
+@@ -211,7 +211,7 @@ endif
+ ifeq (yesyes,$(have-fpie)$(build-shared))
+ tests: $(objpfx)tst-pie1.out
+ endif
+-tests: $(objpfx)tst-leaks1-mem
++tests: $(objpfx)tst-leaks1-mem $(objpfx)noload-mem
+ tlsmod17a-suffixes = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
+ tlsmod18a-suffixes = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
+ modules-names = testobj1 testobj2 testobj3 testobj4 testobj5 testobj6 \
+@@ -664,6 +664,10 @@ $(objpfx)noload: $(objpfx)testobj1.so $(
+ LDFLAGS-noload = -rdynamic
+ $(objpfx)noload.out: $(objpfx)testobj5.so
++$(objpfx)noload-mem: $(objpfx)noload.out
++      $(common-objpfx)malloc/mtrace $(objpfx)noload.mtrace > $@
++noload-ENV = MALLOC_TRACE=$(objpfx)noload.mtrace
++
+ LDFLAGS-nodelete = -rdynamic
+ LDFLAGS-nodelmod1.so = -Wl,--enable-new-dtags,-z,nodelete
+ LDFLAGS-nodelmod4.so = -Wl,--enable-new-dtags,-z,nodelete
+Index: glibc-2.12-2-gc4ccff1/elf/dl-deps.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/elf/dl-deps.c
++++ glibc-2.12-2-gc4ccff1/elf/dl-deps.c
+@@ -478,6 +478,7 @@ _dl_map_object_deps (struct link_map *ma
+                 nneeded * sizeof needed[0]);
+         atomic_write_barrier ();
+         l->l_initfini = l_initfini;
++        l->l_free_initfini = 1;
+       }
+       /* If we have no auxiliary objects just go on to the next map.  */
+@@ -662,6 +663,7 @@ Filters not supported with LD_TRACE_PREL
+   l_initfini[nlist] = NULL;
+   atomic_write_barrier ();
+   map->l_initfini = l_initfini;
++  map->l_free_initfini = 1;
+   if (l_reldeps != NULL)
+     {
+       atomic_write_barrier ();
+Index: glibc-2.12-2-gc4ccff1/elf/dl-libc.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/elf/dl-libc.c
++++ glibc-2.12-2-gc4ccff1/elf/dl-libc.c
+@@ -250,5 +250,9 @@ libc_freeres_fn (free_mem)
+           if (! old->dont_free)
+           free (old);
+         }
++
++      /* Free the initfini dependency list.  */
++      if (l->l_free_initfini)
++        free (l->l_initfini);
+       }
+ }
+Index: glibc-2.12-2-gc4ccff1/elf/dl-load.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/elf/dl-load.c
++++ glibc-2.12-2-gc4ccff1/elf/dl-load.c
+@@ -907,6 +907,7 @@ _dl_map_object_from_fd (const char *name
+     {
+       /* We are not supposed to load the object unless it is already
+        loaded.  So return now.  */
++      free (realname);
+       __close (fd);
+       return NULL;
+     }
+@@ -925,6 +926,7 @@ _dl_map_object_from_fd (const char *name
+       _dl_zerofd = _dl_sysdep_open_zero_fill ();
+       if (_dl_zerofd == -1)
+       {
++        free (realname);
+         __close (fd);
+         _dl_signal_error (errno, NULL, NULL,
+                           N_("cannot open zero fill device"));
+Index: glibc-2.12-2-gc4ccff1/elf/noload.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/elf/noload.c
++++ glibc-2.12-2-gc4ccff1/elf/noload.c
+@@ -1,20 +1,28 @@
+ #include <dlfcn.h>
+ #include <stdio.h>
++#include <mcheck.h>
+ int
+ main (void)
+ {
+   int result = 0;
++  void *p;
++
++  mtrace ();
+   /* First try to load an object which is a dependency.  This should
+      succeed.  */
+-  if (dlopen ("testobj1.so", RTLD_LAZY | RTLD_NOLOAD) == NULL)
++  p = dlopen ("testobj1.so", RTLD_LAZY | RTLD_NOLOAD);
++  if (p == NULL)
+     {
+       printf ("cannot open \"testobj1.so\": %s\n", dlerror ());
+       result = 1;
+     }
+   else
+-    puts ("loading \"testobj1.so\" succeeded, OK");
++    {
++      puts ("loading \"testobj1.so\" succeeded, OK");
++      dlclose (p);
++    }
+   /* Now try loading an object which is not already loaded.  */
+   if (dlopen ("testobj5.so", RTLD_LAZY | RTLD_NOLOAD) != NULL)
+@@ -25,8 +33,6 @@ main (void)
+   else
+     {
+       /* Load the object and run the same test again.  */
+-      void *p;
+-
+       puts ("\"testobj5.so\" wasn't loaded and RTLD_NOLOAD prevented it, OK");
+       p = dlopen ("testobj5.so", RTLD_LAZY);
+@@ -41,13 +47,17 @@ main (void)
+       {
+         puts ("loading \"testobj5.so\" succeeded, OK");
+-        if (dlopen ("testobj5.so", RTLD_LAZY | RTLD_NOLOAD) == NULL)
++        void *q = dlopen ("testobj5.so", RTLD_LAZY | RTLD_NOLOAD);
++        if (q == NULL)
+           {
+             printf ("cannot open \"testobj5.so\": %s\n", dlerror ());
+             result = 1;
+           }
+         else
+-          puts ("loading \"testobj5.so\" with RTLD_NOLOAD succeeded, OK");
++          {
++            puts ("loading \"testobj5.so\" with RTLD_NOLOAD succeeded, OK");
++            dlclose (q);
++          }
+         if (dlclose (p) != 0)
+           {
+Index: glibc-2.12-2-gc4ccff1/elf/rtld.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/elf/rtld.c
++++ glibc-2.12-2-gc4ccff1/elf/rtld.c
+@@ -2249,6 +2249,7 @@ ERROR: ld.so: object '%s' cannot be load
+             lnp->dont_free = 1;
+             lnp = lnp->next;
+           }
++        l->l_free_initfini = 0;
+         if (l != &GL(dl_rtld_map))
+           _dl_relocate_object (l, l->l_scope, GLRO(dl_lazy) ? RTLD_LAZY : 0,
+Index: glibc-2.12-2-gc4ccff1/include/link.h
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/include/link.h
++++ glibc-2.12-2-gc4ccff1/include/link.h
+@@ -192,6 +192,9 @@ struct link_map
+                                                during LD_TRACE_PRELINKING=1
+                                                contains any DT_SYMBOLIC
+                                                libraries.  */
++    unsigned int l_free_initfini:1; /* Nonzero if l_initfini can be
++                                     freed, ie. not allocated with
++                                     the dummy malloc in ld.so.  */
+     /* Collected information about own RPATH directories.  */
+     struct r_search_path_struct l_rpath_dirs;
diff --git a/src/patches/glibc/glibc-rh700507.patch b/src/patches/glibc/glibc-rh700507.patch
new file mode 100644 (file)
index 0000000..0660431
--- /dev/null
@@ -0,0 +1,26 @@
+Index: glibc-2.12-2-gc4ccff1/nscd/nscd.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nscd/nscd.c
++++ glibc-2.12-2-gc4ccff1/nscd/nscd.c
+@@ -260,10 +260,6 @@ main (int argc, char **argv)
+     /* In foreground mode we are not paranoid.  */
+     paranoia = 0;
+-  /* Start the SELinux AVC.  */
+-  if (selinux_enabled)
+-    nscd_avc_init ();
+-
+   signal (SIGINT, termination_handler);
+   signal (SIGQUIT, termination_handler);
+   signal (SIGTERM, termination_handler);
+@@ -278,6 +274,10 @@ main (int argc, char **argv)
+   /* Init databases.  */
+   nscd_init ();
++  /* Start the SELinux AVC.  */
++  if (selinux_enabled)
++    nscd_avc_init ();
++
+   /* Handle incoming requests */
+   start_threads ();
diff --git a/src/patches/glibc/glibc-rh703480.patch b/src/patches/glibc/glibc-rh703480.patch
new file mode 100644 (file)
index 0000000..742a79a
--- /dev/null
@@ -0,0 +1,68 @@
+2011-01-15  Ulrich Drepper  <drepper@gmail.com>
+
+       [BZ #6812]
+       * nscd/hstcache.c (tryagain): Define.
+       (cache_addhst): Return tryagain not notfound for temporary errors.
+       (addhstbyX): Also set h_errno to TRY_AGAIN when memory allocation
+       failed.
+
+Index: glibc-2.12-2-gc4ccff1/nscd/hstcache.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nscd/hstcache.c
++++ glibc-2.12-2-gc4ccff1/nscd/hstcache.c
+@@ -77,6 +77,20 @@ static const hst_response_header notfoun
+ };
++/* This is the standard reply in case there are temporary problems.  */
++static const hst_response_header tryagain =
++{
++  .version = NSCD_VERSION,
++  .found = 0,
++  .h_name_len = 0,
++  .h_aliases_cnt = 0,
++  .h_addrtype = -1,
++  .h_length = -1,
++  .h_addr_list_cnt = 0,
++  .error = TRY_AGAIN
++};
++
++
+ static void
+ cache_addhst (struct database_dyn *db, int fd, request_header *req,
+             const void *key, struct hostent *hst, uid_t owner,
+@@ -111,11 +125,15 @@ cache_addhst (struct database_dyn *db, i
+       else
+       {
+         /* We have no data.  This means we send the standard reply for this
+-           case.  */
++           case.  Possibly this is only temporary.  */
+         ssize_t total = sizeof (notfound);
++        assert (sizeof (notfound) == sizeof (tryagain));
++
++        const hst_response_header *resp = (errval == EAGAIN
++                                           ? &tryagain : &notfound);
+         if (fd != -1 &&
+-            TEMP_FAILURE_RETRY (send (fd, &notfound, total,
++            TEMP_FAILURE_RETRY (send (fd, resp, total,
+                                       MSG_NOSIGNAL)) != total)
+           all_written = false;
+@@ -135,7 +153,7 @@ cache_addhst (struct database_dyn *db, i
+                                          ? db->negtimeout : ttl);
+             /* This is the reply.  */
+-            memcpy (&dataset->resp, &notfound, total);
++            memcpy (&dataset->resp, resp, total);
+             /* Copy the key data.  */
+             memcpy (dataset->strdata, key, req->key_len);
+@@ -490,6 +508,7 @@ addhstbyX (struct database_dyn *db, int 
+             /* We set the error to indicate this is (possibly) a
+                temporary error and that it does not mean the entry
+                is not available at all.  */
++            h_errno = TRY_AGAIN;
+             errval = EAGAIN;
+             break;
+           }
diff --git a/src/patches/glibc/glibc-rh703481.patch b/src/patches/glibc/glibc-rh703481.patch
new file mode 100644 (file)
index 0000000..fdde4b5
--- /dev/null
@@ -0,0 +1,875 @@
+2011-02-05  Ulrich Drepper  <drepper@gmail.com>
+
+       * nscd/nscd-client.h: Define MAX_TIMEOUT_VALUE.
+       (struct datahead): Reuse 32 bits of the alignment for a TTL field.
+       * nscd/aicache.c (addhstaiX): Return timeout of added value.
+       (readdhstai): Return value of addhstaiX call.
+       * nscd/grpcache.c (cache_addgr): Return timeout of added value.
+       (addgrbyX): Return value returned by cache_addgr.
+       (readdgrbyname): Return value returned by addgrbyX.
+       (readdgrbygid): Likewise.
+       * nscd/pwdcache.c (cache_addpw): Return timeout of added value.
+       (addpwbyX): Return value returned by cache_addpw.
+       (readdpwbyname): Return value returned by addhstbyX.
+       (readdpwbyuid): Likewise.
+       * nscd/servicescache.c (cache_addserv): Return timeout of added value.
+       (addservbyX): Return value returned by cache_addserv.
+       (readdservbyname): Return value returned by addservbyX:
+       (readdservbyport): Likewise.
+       * nscd/hstcache.c (cache_addhst): Return timeout of added value.
+       (addhstbyX): Return value returned by cache_addhst.
+       (readdhstbyname): Return value returned by addhstbyX.
+       (readdhstbyaddr): Likewise.
+       (readdhstbynamev6): Likewise.
+       (readdhstbyaddrv6): Likewise.
+       * nscd/initgrcache.c (addinitgroupsX): Return timeout of added value.
+       (readdinitgroups): Return value returned by addinitgroupsX.
+       * nscd/cache.c (readdfcts): Change return value of functions to time_t.
+       (prune_cache): Keep track of timeout value of re-added entries.
+       * nscd/connections.c (nscd_run_prune): Use MAX_TIMEOUT_VALUE.
+       * nscd/nscd.h: Adjust prototypes of readd* functions.
+
+Index: glibc-2.12-2-gc4ccff1/nscd/aicache.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nscd/aicache.c
++++ glibc-2.12-2-gc4ccff1/nscd/aicache.c
+@@ -58,7 +58,7 @@ static const ai_response_header notfound
+ };
+-static void
++static time_t
+ addhstaiX (struct database_dyn *db, int fd, request_header *req,
+          void *key, uid_t uid, struct hashentry *const he,
+          struct datahead *dh)
+@@ -119,6 +119,7 @@ addhstaiX (struct database_dyn *db, int 
+   ssize_t total = 0;
+   char *key_copy = NULL;
+   bool alloca_used = false;
++  time_t timeout = MAX_TIMEOUT_VALUE;
+   while (!no_more)
+     {
+@@ -388,8 +389,8 @@ addhstaiX (struct database_dyn *db, int 
+       dataset->head.usable = true;
+       /* Compute the timeout time.  */
+-      dataset->head.timeout = time (NULL) + (ttl == INT32_MAX
+-                                           ? db->postimeout : ttl);
++      dataset->head.ttl = ttl == INT32_MAX ? db->postimeout : ttl;
++      timeout = dataset->head.timeout = time (NULL) + dataset->head.ttl;
+       dataset->resp.version = NSCD_VERSION;
+       dataset->resp.found = 1;
+@@ -421,6 +422,7 @@ addhstaiX (struct database_dyn *db, int 
+                timeout value.  Note that the new record has been
+                allocated on the stack and need not be freed.  */
+             dh->timeout = dataset->head.timeout;
++            dh->ttl = dataset->head.ttl;
+             ++dh->nreloads;
+           }
+         else
+@@ -496,6 +498,9 @@ next_nip:
+       if (reload_count != UINT_MAX && dh->nreloads == reload_count)
+       /* Do not reset the value if we never not reload the record.  */
+       dh->nreloads = reload_count - 1;
++
++      /* Reload with the same time-to-live value.  */
++      timeout = dh->timeout = time (NULL) + dh->ttl;
+     }
+   else
+     {
+@@ -517,7 +522,8 @@ next_nip:
+         dataset->head.usable = true;
+         /* Compute the timeout time.  */
+-        dataset->head.timeout = time (NULL) + db->negtimeout;
++        timeout = dataset->head.timeout = time (NULL) + db->negtimeout;
++        dataset->head.ttl = db->negtimeout;
+         /* This is the reply.  */
+         memcpy (&dataset->resp, &notfound, total);
+@@ -551,6 +557,8 @@ next_nip:
+       if (dh != NULL)
+       dh->usable = false;
+     }
++
++  return timeout;
+ }
+@@ -562,7 +570,7 @@ addhstai (struct database_dyn *db, int f
+ }
+-void
++time_t
+ readdhstai (struct database_dyn *db, struct hashentry *he, struct datahead *dh)
+ {
+   request_header req =
+@@ -571,5 +579,5 @@ readdhstai (struct database_dyn *db, str
+       .key_len = he->len
+     };
+-  addhstaiX (db, -1, &req, db->data + he->key, he->owner, he, dh);
++  return addhstaiX (db, -1, &req, db->data + he->key, he->owner, he, dh);
+ }
+Index: glibc-2.12-2-gc4ccff1/nscd/cache.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nscd/cache.c
++++ glibc-2.12-2-gc4ccff1/nscd/cache.c
+@@ -45,9 +45,9 @@ extern void *xcalloc (size_t n, size_t s
+ unsigned int reload_count = DEFAULT_RELOAD_LIMIT;
+-static void (*const readdfcts[LASTREQ]) (struct database_dyn *,
+-                                       struct hashentry *,
+-                                       struct datahead *) =
++static time_t (*const readdfcts[LASTREQ]) (struct database_dyn *,
++                                         struct hashentry *,
++                                         struct datahead *) =
+ {
+   [GETPWBYNAME] = readdpwbyname,
+   [GETPWBYUID] = readdpwbyuid,
+@@ -389,7 +389,8 @@ prune_cache (struct database_dyn *table,
+                     assert (runp->type < LASTREQ
+                             && readdfcts[runp->type] != NULL);
+-                    readdfcts[runp->type] (table, runp, dh);
++                    time_t timeout = readdfcts[runp->type] (table, runp, dh);
++                    next_timeout = MIN (next_timeout, timeout);
+                     /* If the entry has been replaced, we might need
+                        cleanup.  */
+Index: glibc-2.12-2-gc4ccff1/nscd/connections.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nscd/connections.c
++++ glibc-2.12-2-gc4ccff1/nscd/connections.c
+@@ -1533,10 +1533,7 @@ nscd_run_prune (void *p)
+            pruning we want to know about it.  Therefore set the
+            timeout to the maximum.  It will be descreased when adding
+            new entries to the cache, if necessary.  */
+-        if (sizeof (time_t) == sizeof (long int))
+-          dbs[my_number].wakeup_time = LONG_MAX;
+-        else
+-          dbs[my_number].wakeup_time = INT_MAX;
++        dbs[my_number].wakeup_time = MAX_TIMEOUT_VALUE;
+         /* Unconditionally reset the flag.  */
+         time_t prune_now = dbs[my_number].clear_cache ? LONG_MAX : now;
+Index: glibc-2.12-2-gc4ccff1/nscd/grpcache.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nscd/grpcache.c
++++ glibc-2.12-2-gc4ccff1/nscd/grpcache.c
+@@ -71,7 +71,7 @@ static const gr_response_header notfound
+ };
+-static void
++static time_t
+ cache_addgr (struct database_dyn *db, int fd, request_header *req,
+            const void *key, struct group *grp, uid_t owner,
+            struct hashentry *const he, struct datahead *dh, int errval)
+@@ -91,6 +91,7 @@ cache_addgr (struct database_dyn *db, in
+   assert (offsetof (struct dataset, resp) == offsetof (struct datahead, data));
++  time_t timeout = MAX_TIMEOUT_VALUE;
+   if (grp == NULL)
+     {
+       if (he != NULL && errval == EAGAIN)
+@@ -102,6 +103,9 @@ cache_addgr (struct database_dyn *db, in
+           /* Do not reset the value if we never not reload the record.  */
+           dh->nreloads = reload_count - 1;
++        /* Reload with the same time-to-live value.  */
++        timeout = dh->timeout = t + db->postimeout;
++
+         written = total = 0;
+       }
+       else
+@@ -125,7 +129,7 @@ cache_addgr (struct database_dyn *db, in
+             dataset->head.usable = true;
+             /* Compute the timeout time.  */
+-            dataset->head.timeout = t + db->negtimeout;
++            timeout = dataset->head.timeout = t + db->negtimeout;
+             /* This is the reply.  */
+             memcpy (&dataset->resp, &notfound, total);
+@@ -217,7 +221,7 @@ cache_addgr (struct database_dyn *db, in
+       dataset->head.usable = true;
+       /* Compute the timeout time.  */
+-      dataset->head.timeout = t + db->postimeout;
++      timeout = dataset->head.timeout = t + db->postimeout;
+       dataset->resp.version = NSCD_VERSION;
+       dataset->resp.found = 1;
+@@ -379,6 +383,8 @@ cache_addgr (struct database_dyn *db, in
+       dbg_log (_("short write in %s: %s"),  __FUNCTION__,
+              strerror_r (errno, buf, sizeof (buf)));
+     }
++
++  return timeout;
+ }
+@@ -400,7 +406,7 @@ lookup (int type, union keytype key, str
+ }
+-static void
++static time_t
+ addgrbyX (struct database_dyn *db, int fd, request_header *req,
+         union keytype key, const char *keystr, uid_t uid,
+         struct hashentry *he, struct datahead *dh)
+@@ -456,10 +462,12 @@ addgrbyX (struct database_dyn *db, int f
+       buffer = (char *) extend_alloca (buffer, buflen, 2 * buflen);
+     }
+-  cache_addgr (db, fd, req, keystr, grp, uid, he, dh, errval);
++  time_t timeout = cache_addgr (db, fd, req, keystr, grp, uid, he, dh, errval);
+   if (use_malloc)
+     free (buffer);
++
++  return timeout;
+ }
+@@ -473,7 +481,7 @@ addgrbyname (struct database_dyn *db, in
+ }
+-void
++time_t
+ readdgrbyname (struct database_dyn *db, struct hashentry *he,
+              struct datahead *dh)
+ {
+@@ -484,7 +492,7 @@ readdgrbyname (struct database_dyn *db, 
+     };
+   union keytype u = { .v = db->data + he->key };
+-  addgrbyX (db, -1, &req, u, db->data + he->key, he->owner, he, dh);
++  return addgrbyX (db, -1, &req, u, db->data + he->key, he->owner, he, dh);
+ }
+@@ -510,7 +518,7 @@ addgrbygid (struct database_dyn *db, int
+ }
+-void
++time_t
+ readdgrbygid (struct database_dyn *db, struct hashentry *he,
+             struct datahead *dh)
+ {
+@@ -527,5 +535,5 @@ readdgrbygid (struct database_dyn *db, s
+     };
+   union keytype u = { .g = gid };
+-  addgrbyX (db, -1, &req, u, db->data + he->key, he->owner, he, dh);
++  return addgrbyX (db, -1, &req, u, db->data + he->key, he->owner, he, dh);
+ }
+Index: glibc-2.12-2-gc4ccff1/nscd/hstcache.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nscd/hstcache.c
++++ glibc-2.12-2-gc4ccff1/nscd/hstcache.c
+@@ -91,7 +91,7 @@ static const hst_response_header tryagai
+ };
+-static void
++static time_t
+ cache_addhst (struct database_dyn *db, int fd, request_header *req,
+             const void *key, struct hostent *hst, uid_t owner,
+             struct hashentry *const he, struct datahead *dh, int errval,
+@@ -111,6 +111,7 @@ cache_addhst (struct database_dyn *db, i
+   assert (offsetof (struct dataset, resp) == offsetof (struct datahead, data));
++  time_t timeout = MAX_TIMEOUT_VALUE;
+   if (hst == NULL)
+     {
+       if (he != NULL && errval == EAGAIN)
+@@ -121,6 +122,9 @@ cache_addhst (struct database_dyn *db, i
+         if (reload_count != UINT_MAX)
+           /* Do not reset the value if we never not reload the record.  */
+           dh->nreloads = reload_count - 1;
++
++        /* Reload with the same time-to-live value.  */
++        timeout = dh->timeout = t + dh->ttl;
+       }
+       else
+       {
+@@ -149,8 +153,8 @@ cache_addhst (struct database_dyn *db, i
+             dataset->head.usable = true;
+             /* Compute the timeout time.  */
+-            dataset->head.timeout = t + (ttl == INT32_MAX
+-                                         ? db->negtimeout : ttl);
++            dataset->head.ttl = ttl == INT32_MAX ? db->negtimeout : ttl;
++            timeout = dataset->head.timeout = t + dataset->head.ttl;
+             /* This is the reply.  */
+             memcpy (&dataset->resp, resp, total);
+@@ -214,7 +218,7 @@ cache_addhst (struct database_dyn *db, i
+       if (h_addr_list_cnt == 0)
+       /* Invalid entry.  */
+-      return;
++      return MAX_TIMEOUT_VALUE;
+       total += (sizeof (struct dataset)
+               + h_name_len
+@@ -255,7 +259,8 @@ cache_addhst (struct database_dyn *db, i
+       dataset->head.usable = true;
+       /* Compute the timeout time.  */
+-      dataset->head.timeout = t + (ttl == INT32_MAX ? db->postimeout : ttl);
++      dataset->head.ttl = ttl == INT32_MAX ? db->postimeout : ttl;
++      timeout = dataset->head.timeout = t + dataset->head.ttl;
+       dataset->resp.version = NSCD_VERSION;
+       dataset->resp.found = 1;
+@@ -312,6 +317,7 @@ cache_addhst (struct database_dyn *db, i
+                timeout value.  Note that the new record has been
+                allocated on the stack and need not be freed.  */
+             assert (h_addr_list_cnt == 1);
++            dh->ttl = dataset->head.ttl;
+             dh->timeout = dataset->head.timeout;
+             ++dh->nreloads;
+           }
+@@ -433,6 +439,8 @@ cache_addhst (struct database_dyn *db, i
+       dbg_log (_("short write in %s: %s"),  __FUNCTION__,
+              strerror_r (errno, buf, sizeof (buf)));
+     }
++
++  return timeout;
+ }
+@@ -454,7 +462,7 @@ lookup (int type, void *key, struct host
+ }
+-static void
++static time_t
+ addhstbyX (struct database_dyn *db, int fd, request_header *req,
+          void *key, uid_t uid, struct hashentry *he, struct datahead *dh)
+ {
+@@ -520,11 +528,13 @@ addhstbyX (struct database_dyn *db, int 
+       buffer = (char *) extend_alloca (buffer, buflen, 2 * buflen);
+     }
+-  cache_addhst (db, fd, req, key, hst, uid, he, dh,
+-              h_errno == TRY_AGAIN ? errval : 0, ttl);
++  time_t timeout = cache_addhst (db, fd, req, key, hst, uid, he, dh,
++                               h_errno == TRY_AGAIN ? errval : 0, ttl);
+   if (use_malloc)
+     free (buffer);
++
++  return timeout;
+ }
+@@ -536,7 +546,7 @@ addhstbyname (struct database_dyn *db, i
+ }
+-void
++time_t
+ readdhstbyname (struct database_dyn *db, struct hashentry *he,
+               struct datahead *dh)
+ {
+@@ -546,7 +556,7 @@ readdhstbyname (struct database_dyn *db,
+       .key_len = he->len
+     };
+-  addhstbyX (db, -1, &req, db->data + he->key, he->owner, he, dh);
++  return addhstbyX (db, -1, &req, db->data + he->key, he->owner, he, dh);
+ }
+@@ -558,7 +568,7 @@ addhstbyaddr (struct database_dyn *db, i
+ }
+-void
++time_t
+ readdhstbyaddr (struct database_dyn *db, struct hashentry *he,
+               struct datahead *dh)
+ {
+@@ -568,7 +578,7 @@ readdhstbyaddr (struct database_dyn *db,
+       .key_len = he->len
+     };
+-  addhstbyX (db, -1, &req, db->data + he->key, he->owner, he, dh);
++  return addhstbyX (db, -1, &req, db->data + he->key, he->owner, he, dh);
+ }
+@@ -580,7 +590,7 @@ addhstbynamev6 (struct database_dyn *db,
+ }
+-void
++time_t
+ readdhstbynamev6 (struct database_dyn *db, struct hashentry *he,
+                 struct datahead *dh)
+ {
+@@ -590,7 +600,7 @@ readdhstbynamev6 (struct database_dyn *d
+       .key_len = he->len
+     };
+-  addhstbyX (db, -1, &req, db->data + he->key, he->owner, he, dh);
++  return addhstbyX (db, -1, &req, db->data + he->key, he->owner, he, dh);
+ }
+@@ -602,7 +612,7 @@ addhstbyaddrv6 (struct database_dyn *db,
+ }
+-void
++time_t
+ readdhstbyaddrv6 (struct database_dyn *db, struct hashentry *he,
+                 struct datahead *dh)
+ {
+@@ -612,5 +622,5 @@ readdhstbyaddrv6 (struct database_dyn *d
+       .key_len = he->len
+     };
+-  addhstbyX (db, -1, &req, db->data + he->key, he->owner, he, dh);
++  return addhstbyX (db, -1, &req, db->data + he->key, he->owner, he, dh);
+ }
+Index: glibc-2.12-2-gc4ccff1/nscd/initgrcache.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nscd/initgrcache.c
++++ glibc-2.12-2-gc4ccff1/nscd/initgrcache.c
+@@ -52,7 +52,7 @@ static const initgr_response_header notf
+ #include "../grp/compat-initgroups.c"
+-static void
++static time_t
+ addinitgroupsX (struct database_dyn *db, int fd, request_header *req,
+               void *key, uid_t uid, struct hashentry *const he,
+               struct datahead *dh)
+@@ -174,7 +174,9 @@ addinitgroupsX (struct database_dyn *db,
+   ssize_t total;
+   ssize_t written;
++  time_t timeout;
+  out:
++  timeout = MAX_TIMEOUT_VALUE;
+   if (!any_success)
+     {
+       /* Nothing found.  Create a negative result record.  */
+@@ -188,6 +190,9 @@ addinitgroupsX (struct database_dyn *db,
+         if (reload_count != UINT_MAX && dh->nreloads == reload_count)
+           /* Do not reset the value if we never not reload the record.  */
+           dh->nreloads = reload_count - 1;
++
++        /* Reload with the same time-to-live value.  */
++        timeout = dh->timeout = time (NULL) + db->postimeout;
+       }
+       else
+       {
+@@ -209,7 +214,7 @@ addinitgroupsX (struct database_dyn *db,
+             dataset->head.usable = true;
+             /* Compute the timeout time.  */
+-            dataset->head.timeout = time (NULL) + db->negtimeout;
++            timeout = dataset->head.timeout = time (NULL) + db->negtimeout;
+             /* This is the reply.  */
+             memcpy (&dataset->resp, &notfound, total);
+@@ -273,7 +278,7 @@ addinitgroupsX (struct database_dyn *db,
+       dataset->head.usable = true;
+       /* Compute the timeout time.  */
+-      dataset->head.timeout = time (NULL) + db->postimeout;
++      timeout = dataset->head.timeout = time (NULL) + db->postimeout;
+       dataset->resp.version = NSCD_VERSION;
+       dataset->resp.found = 1;
+@@ -401,6 +406,8 @@ addinitgroupsX (struct database_dyn *db,
+       dbg_log (_("short write in %s: %s"), __FUNCTION__,
+              strerror_r (errno, buf, sizeof (buf)));
+     }
++
++  return timeout;
+ }
+@@ -412,7 +419,7 @@ addinitgroups (struct database_dyn *db, 
+ }
+-void
++time_t
+ readdinitgroups (struct database_dyn *db, struct hashentry *he,
+                struct datahead *dh)
+ {
+@@ -422,5 +429,5 @@ readdinitgroups (struct database_dyn *db
+       .key_len = he->len
+     };
+-  addinitgroupsX (db, -1, &req, db->data + he->key, he->owner, he, dh);
++  return addinitgroupsX (db, -1, &req, db->data + he->key, he->owner, he, dh);
+ }
+Index: glibc-2.12-2-gc4ccff1/nscd/nscd-client.h
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nscd/nscd-client.h
++++ glibc-2.12-2-gc4ccff1/nscd/nscd-client.h
+@@ -179,6 +179,10 @@ typedef uint32_t ref_t;
+ /* Timestamp type.  */
+ typedef uint64_t nscd_time_t;
++/* Maximum timestamp.  */
++#define MAX_TIMEOUT_VALUE \
++  (sizeof (time_t) == sizeof (long int) ? LONG_MAX : INT_MAX)
++
+ /* Alignment requirement of the beginning of the data region.  */
+ #define ALIGN 16
+@@ -192,7 +196,8 @@ struct datahead
+   uint8_t notfound;           /* Nonzero if data has not been found.  */
+   uint8_t nreloads;           /* Reloads without use.  */
+   uint8_t usable;             /* False if the entry must be ignored.  */
+-  uint64_t :40;                       /* Alignment.  */
++  uint8_t unused;             /* Unused.  */
++  uint32_t ttl;                       /* TTL value used.  */
+   /* We need to have the following element aligned for the response
+      header data types and their use in the 'struct dataset' types
+Index: glibc-2.12-2-gc4ccff1/nscd/nscd.h
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nscd/nscd.h
++++ glibc-2.12-2-gc4ccff1/nscd/nscd.h
+@@ -217,20 +217,20 @@ extern void addpwbyname (struct database
+                        void *key, uid_t uid);
+ extern void addpwbyuid (struct database_dyn *db, int fd, request_header *req,
+                       void *key, uid_t uid);
+-extern void readdpwbyname (struct database_dyn *db, struct hashentry *he,
+-                         struct datahead *dh);
+-extern void readdpwbyuid (struct database_dyn *db, struct hashentry *he,
+-                        struct datahead *dh);
++extern time_t readdpwbyname (struct database_dyn *db, struct hashentry *he,
++                           struct datahead *dh);
++extern time_t readdpwbyuid (struct database_dyn *db, struct hashentry *he,
++                          struct datahead *dh);
+ /* grpcache.c */
+ extern void addgrbyname (struct database_dyn *db, int fd, request_header *req,
+                        void *key, uid_t uid);
+ extern void addgrbygid (struct database_dyn *db, int fd, request_header *req,
+                       void *key, uid_t uid);
+-extern void readdgrbyname (struct database_dyn *db, struct hashentry *he,
+-                         struct datahead *dh);
+-extern void readdgrbygid (struct database_dyn *db, struct hashentry *he,
+-                        struct datahead *dh);
++extern time_t readdgrbyname (struct database_dyn *db, struct hashentry *he,
++                           struct datahead *dh);
++extern time_t readdgrbygid (struct database_dyn *db, struct hashentry *he,
++                          struct datahead *dh);
+ /* hstcache.c */
+ extern void addhstbyname (struct database_dyn *db, int fd, request_header *req,
+@@ -241,37 +241,37 @@ extern void addhstbynamev6 (struct datab
+                           request_header *req, void *key, uid_t uid);
+ extern void addhstbyaddrv6 (struct database_dyn *db, int fd,
+                           request_header *req, void *key, uid_t uid);
+-extern void readdhstbyname (struct database_dyn *db, struct hashentry *he,
+-                          struct datahead *dh);
+-extern void readdhstbyaddr (struct database_dyn *db, struct hashentry *he,
+-                          struct datahead *dh);
+-extern void readdhstbynamev6 (struct database_dyn *db, struct hashentry *he,
++extern time_t readdhstbyname (struct database_dyn *db, struct hashentry *he,
+                             struct datahead *dh);
+-extern void readdhstbyaddrv6 (struct database_dyn *db, struct hashentry *he,
++extern time_t readdhstbyaddr (struct database_dyn *db, struct hashentry *he,
+                             struct datahead *dh);
++extern time_t readdhstbynamev6 (struct database_dyn *db, struct hashentry *he,
++                              struct datahead *dh);
++extern time_t readdhstbyaddrv6 (struct database_dyn *db, struct hashentry *he,
++                              struct datahead *dh);
+ /* aicache.c */
+ extern void addhstai (struct database_dyn *db, int fd, request_header *req,
+                     void *key, uid_t uid);
+-extern void readdhstai (struct database_dyn *db, struct hashentry *he,
+-                      struct datahead *dh);
++extern time_t readdhstai (struct database_dyn *db, struct hashentry *he,
++                        struct datahead *dh);
+ /* initgrcache.c */
+ extern void addinitgroups (struct database_dyn *db, int fd,
+                          request_header *req, void *key, uid_t uid);
+-extern void readdinitgroups (struct database_dyn *db, struct hashentry *he,
+-                           struct datahead *dh);
++extern time_t readdinitgroups (struct database_dyn *db, struct hashentry *he,
++                             struct datahead *dh);
+ /* servicecache.c */
+ extern void addservbyname (struct database_dyn *db, int fd,
+                          request_header *req, void *key, uid_t uid);
+-extern void readdservbyname (struct database_dyn *db, struct hashentry *he,
+-                           struct datahead *dh);
++extern time_t readdservbyname (struct database_dyn *db, struct hashentry *he,
++                             struct datahead *dh);
+ extern void addservbyport (struct database_dyn *db, int fd,
+                          request_header *req, void *key, uid_t uid);
+-extern void readdservbyport (struct database_dyn *db, struct hashentry *he,
+-                           struct datahead *dh);
++extern time_t readdservbyport (struct database_dyn *db, struct hashentry *he,
++                             struct datahead *dh);
+ /* mem.c */
+ extern void *mempool_alloc (struct database_dyn *db, size_t len,
+Index: glibc-2.12-2-gc4ccff1/nscd/pwdcache.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nscd/pwdcache.c
++++ glibc-2.12-2-gc4ccff1/nscd/pwdcache.c
+@@ -77,7 +77,7 @@ static const pw_response_header notfound
+ };
+-static void
++static time_t
+ cache_addpw (struct database_dyn *db, int fd, request_header *req,
+            const void *key, struct passwd *pwd, uid_t owner,
+            struct hashentry *const he, struct datahead *dh, int errval)
+@@ -97,6 +97,7 @@ cache_addpw (struct database_dyn *db, in
+   assert (offsetof (struct dataset, resp) == offsetof (struct datahead, data));
++  time_t timeout = MAX_TIMEOUT_VALUE;
+   if (pwd == NULL)
+     {
+       if (he != NULL && errval == EAGAIN)
+@@ -108,6 +109,9 @@ cache_addpw (struct database_dyn *db, in
+           /* Do not reset the value if we never not reload the record.  */
+           dh->nreloads = reload_count - 1;
++        /* Reload with the same time-to-live value.  */
++        timeout = dh->timeout = t + db->postimeout;
++
+         written = total = 0;
+       }
+       else
+@@ -132,7 +136,7 @@ cache_addpw (struct database_dyn *db, in
+             dataset->head.usable = true;
+             /* Compute the timeout time.  */
+-            dataset->head.timeout = t + db->negtimeout;
++            timeout = dataset->head.timeout = t + db->negtimeout;
+             /* This is the reply.  */
+             memcpy (&dataset->resp, &notfound, total);
+@@ -212,7 +216,7 @@ cache_addpw (struct database_dyn *db, in
+       dataset->head.usable = true;
+       /* Compute the timeout time.  */
+-      dataset->head.timeout = t + db->postimeout;
++      timeout = dataset->head.timeout = t + db->postimeout;
+       dataset->resp.version = NSCD_VERSION;
+       dataset->resp.found = 1;
+@@ -293,8 +297,8 @@ cache_addpw (struct database_dyn *db, in
+             assert ((char *) dataset - (char *) db->head
+                     + total
+                     <= (sizeof (struct database_pers_head)
+-                          + db->head->module * sizeof (ref_t)
+-                          + db->head->data_size));
++                        + db->head->module * sizeof (ref_t)
++                        + db->head->data_size));
+             written = sendfileall (fd, db->wr_fd,
+                                    (char *) &dataset->resp
+                                    - (char *) db->head, dataset->head.recsize );
+@@ -374,6 +378,8 @@ cache_addpw (struct database_dyn *db, in
+       dbg_log (_("short write in %s: %s"),  __FUNCTION__,
+              strerror_r (errno, buf, sizeof (buf)));
+     }
++
++  return timeout;
+ }
+@@ -395,7 +401,7 @@ lookup (int type, union keytype key, str
+ }
+-static void
++static time_t
+ addpwbyX (struct database_dyn *db, int fd, request_header *req,
+         union keytype key, const char *keystr, uid_t c_uid,
+         struct hashentry *he, struct datahead *dh)
+@@ -452,10 +458,13 @@ addpwbyX (struct database_dyn *db, int f
+     }
+   /* Add the entry to the cache.  */
+-  cache_addpw (db, fd, req, keystr, pwd, c_uid, he, dh, errval);
++  time_t timeout = cache_addpw (db, fd, req, keystr, pwd, c_uid, he, dh,
++                              errval);
+   if (use_malloc)
+     free (buffer);
++
++  return timeout;
+ }
+@@ -469,7 +478,7 @@ addpwbyname (struct database_dyn *db, in
+ }
+-void
++time_t
+ readdpwbyname (struct database_dyn *db, struct hashentry *he,
+              struct datahead *dh)
+ {
+@@ -480,7 +489,7 @@ readdpwbyname (struct database_dyn *db, 
+     };
+   union keytype u = { .v = db->data + he->key };
+-  addpwbyX (db, -1, &req, u, db->data + he->key, he->owner, he, dh);
++  return addpwbyX (db, -1, &req, u, db->data + he->key, he->owner, he, dh);
+ }
+@@ -506,7 +515,7 @@ addpwbyuid (struct database_dyn *db, int
+ }
+-void
++time_t
+ readdpwbyuid (struct database_dyn *db, struct hashentry *he,
+             struct datahead *dh)
+ {
+@@ -523,5 +532,5 @@ readdpwbyuid (struct database_dyn *db, s
+     };
+   union keytype u = { .u = uid };
+-  addpwbyX (db, -1, &req, u, db->data + he->key, he->owner, he, dh);
++  return addpwbyX (db, -1, &req, u, db->data + he->key, he->owner, he, dh);
+ }
+Index: glibc-2.12-2-gc4ccff1/nscd/servicescache.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nscd/servicescache.c
++++ glibc-2.12-2-gc4ccff1/nscd/servicescache.c
+@@ -61,7 +61,7 @@ static const serv_response_header notfou
+ };
+-static void
++static time_t
+ cache_addserv (struct database_dyn *db, int fd, request_header *req,
+              const void *key, struct servent *serv, uid_t owner,
+              struct hashentry *const he, struct datahead *dh, int errval)
+@@ -81,6 +81,7 @@ cache_addserv (struct database_dyn *db, 
+   assert (offsetof (struct dataset, resp) == offsetof (struct datahead, data));
++  time_t timeout = MAX_TIMEOUT_VALUE;
+   if (serv == NULL)
+     {
+       if (he != NULL && errval == EAGAIN)
+@@ -92,6 +93,9 @@ cache_addserv (struct database_dyn *db, 
+           /* Do not reset the value if we never not reload the record.  */
+           dh->nreloads = reload_count - 1;
++        /* Reload with the same time-to-live value.  */
++        timeout = dh->timeout = t + db->postimeout;
++
+         written = total = 0;
+       }
+       else
+@@ -115,7 +119,7 @@ cache_addserv (struct database_dyn *db, 
+             dataset->head.usable = true;
+             /* Compute the timeout time.  */
+-            dataset->head.timeout = t + db->negtimeout;
++            timeout = dataset->head.timeout = t + db->negtimeout;
+             /* This is the reply.  */
+             memcpy (&dataset->resp, &notfound, total);
+@@ -203,7 +207,7 @@ cache_addserv (struct database_dyn *db, 
+       dataset->head.usable = true;
+       /* Compute the timeout time.  */
+-      dataset->head.timeout = t + db->postimeout;
++      timeout = dataset->head.timeout = t + db->postimeout;
+       dataset->resp.version = NSCD_VERSION;
+       dataset->resp.found = 1;
+@@ -328,6 +332,8 @@ cache_addserv (struct database_dyn *db, 
+       dbg_log (_("short write in %s: %s"),  __FUNCTION__,
+              strerror_r (errno, buf, sizeof (buf)));
+     }
++
++  return timeout;
+ }
+@@ -354,7 +360,7 @@ lookup (int type, char *key, struct serv
+ }
+-static void
++static time_t
+ addservbyX (struct database_dyn *db, int fd, request_header *req,
+           char *key, uid_t uid, struct hashentry *he, struct datahead *dh)
+ {
+@@ -409,10 +415,12 @@ addservbyX (struct database_dyn *db, int
+       buffer = (char *) extend_alloca (buffer, buflen, 2 * buflen);
+     }
+-  cache_addserv (db, fd, req, key, serv, uid, he, dh, errval);
++  time_t timeout = cache_addserv (db, fd, req, key, serv, uid, he, dh, errval);
+   if (use_malloc)
+     free (buffer);
++
++  return timeout;
+ }
+@@ -424,7 +432,7 @@ addservbyname (struct database_dyn *db, 
+ }
+-void
++time_t
+ readdservbyname (struct database_dyn *db, struct hashentry *he,
+                struct datahead *dh)
+ {
+@@ -434,7 +442,7 @@ readdservbyname (struct database_dyn *db
+       .key_len = he->len
+     };
+-  addservbyX (db, -1, &req, db->data + he->key, he->owner, he, dh);
++  return addservbyX (db, -1, &req, db->data + he->key, he->owner, he, dh);
+ }
+@@ -446,7 +454,7 @@ addservbyport (struct database_dyn *db, 
+ }
+-void
++time_t
+ readdservbyport (struct database_dyn *db, struct hashentry *he,
+                struct datahead *dh)
+ {
+@@ -456,5 +464,5 @@ readdservbyport (struct database_dyn *db
+       .key_len = he->len
+     };
+-  addservbyX (db, -1, &req, db->data + he->key, he->owner, he, dh);
++  return addservbyX (db, -1, &req, db->data + he->key, he->owner, he, dh);
+ }
diff --git a/src/patches/glibc/glibc-rh705465.patch b/src/patches/glibc/glibc-rh705465.patch
new file mode 100644 (file)
index 0000000..63b971e
--- /dev/null
@@ -0,0 +1,449 @@
+2011-11-07  Andreas Schwab  <schwab@redhat.com>
+
+       * nss/nss_files/files-initgroups.c (_nss_files_initgroups_dyn):
+       Fix size of allocated buffer.
+
+2011-05-10  Ulrich Drepper  <drepper@gmail.com>
+
+       [BZ #11257]
+       * grp/initgroups.c (internal_getgrouplist): When we found the service
+       list through the initgroups entry in nsswitch.conf do not always
+       continue on a successful lookup.  Don't always use the
+       __nss_group_data-ase value if it is set.
+       * nss/nsswitch.conf (initgroups): Change action for successful db
+       lookup to continue for compatibility.
+
+2011-05-06  Ulrich Drepper  <drepper@gmail.com>
+
+       * nss/nss_files/files-initgroups.c (_nss_files_initgroups_dyn): Return
+       NSS_STATUS_NOTFOUND if no record was found.
+
+2011-04-29  Ulrich Drepper  <drepper@gmail.com>
+
+       * grp/initgroups.c (internal_getgrouplist): Prefer initgroups setting
+       to groups setting in database lookup.
+       * nss/nsswitch.conf: Add initgroups entry.
+
+2011-04-21  Ulrich Drepper  <drepper@gmail.com>
+
+       * nss/nss_files/files-initgroups.c (_nss_files_initgroups_dyn): Fix
+       problem in reallocation in last patch.
+
+2011-04-19  Ulrich Drepper  <drepper@gmail.com>
+
+       * nss/nss_files/files-initgroups.c: New file.
+       * nss/Makefile (libnss_files-routines): Add files-initgroups.
+       * nss/Versions (libnss_files) [GLIBC_PRIVATE]: Export
+       _nss_files_initgroups_dyn.
+
+2011-01-13  Ulrich Drepper  <drepper@gmail.com>
+
+       [BZ #10484]
+       * nss/nss_files/files-hosts.c (HOST_DB_LOOKUP): Handle overflows of
+       temporary buffer used to handle multi lookups locally.
+       * include/alloca.h: Add libc_hidden_proto for __libc_alloca_cutoff.
+
+2011-01-13  Ulrich Drepper  <drepper@gmail.com>
+
+       [BZ #10484]
+       * Versions [libc] (GLIBC_PRIVATE): Export __libc_alloca_cutoff.
+       * alloca_cutoff.c: Add libc_hidden_def.
+
+Index: glibc-2.12-2-gc4ccff1/grp/initgroups.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/grp/initgroups.c
++++ glibc-2.12-2-gc4ccff1/grp/initgroups.c
+@@ -43,6 +43,8 @@ extern int __nss_group_lookup (service_u
+ extern void *__nss_lookup_function (service_user *ni, const char *fct_name);
+ extern service_user *__nss_group_database attribute_hidden;
++static service_user *initgroups_database;
++static bool use_initgroups_entry;
+ #include "compat-initgroups.c"
+@@ -67,32 +69,41 @@ internal_getgrouplist (const char *user,
+     }
+ #endif
+-  service_user *nip = NULL;
+-  initgroups_dyn_function fct;
+   enum nss_status status = NSS_STATUS_UNAVAIL;
+-  int no_more;
+-  /* Start is one, because we have the first group as parameter.  */
+-  long int start = 1;
++  int no_more = 0;
+   /* Never store more than the starting *SIZE number of elements.  */
+   assert (*size > 0);
+   (*groupsp)[0] = group;
++  /* Start is one, because we have the first group as parameter.  */
++  long int start = 1;
+-  if (__nss_group_database != NULL)
++  if (initgroups_database == NULL)
+     {
+-      no_more = 0;
+-      nip = __nss_group_database;
++      no_more = __nss_database_lookup ("initgroups", NULL, "",
++                                     &initgroups_database);
++      if (no_more == 0 && initgroups_database == NULL)
++      {
++        if (__nss_group_database == NULL)
++          no_more = __nss_database_lookup ("group", NULL, "compat files",
++                                           &__nss_group_database);
++
++        initgroups_database = __nss_group_database;
++      }
++      else if (initgroups_database != NULL)
++      {
++        assert (no_more == 0);
++        use_initgroups_entry = true;
++      }
+     }
+-  else
+-    no_more = __nss_database_lookup ("group", NULL,
+-                                   "compat [NOTFOUND=return] files", &nip);
++  service_user *nip = initgroups_database;
+   while (! no_more)
+     {
+       long int prev_start = start;
+-      fct = __nss_lookup_function (nip, "initgroups_dyn");
+-
++      initgroups_dyn_function fct = __nss_lookup_function (nip,
++                                                         "initgroups_dyn");
+       if (fct == NULL)
+       status = compat_call (nip, user, group, &start, size, groupsp,
+                             limit, &errno);
+@@ -119,7 +130,13 @@ internal_getgrouplist (const char *user,
+       if (NSS_STATUS_TRYAGAIN > status || status > NSS_STATUS_RETURN)
+       __libc_fatal ("illegal status in internal_getgrouplist");
+-      if (status != NSS_STATUS_SUCCESS
++      /* For compatibility reason we will continue to look for more
++       entries using the next service even though data has already
++       been found if the nsswitch.conf file contained only a 'groups'
++       line and no 'initgroups' line.  If the latter is available
++       we always respect the status.  This means that the default
++       for successful lookups is to return.  */
++      if ((use_initgroups_entry || status != NSS_STATUS_SUCCESS)
+         && nss_next_action (nip, status) == NSS_ACTION_RETURN)
+        break;
+Index: glibc-2.12-2-gc4ccff1/include/alloca.h
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/include/alloca.h
++++ glibc-2.12-2-gc4ccff1/include/alloca.h
+@@ -14,6 +14,7 @@ extern void *__alloca (size_t __size);
+ extern int __libc_use_alloca (size_t size) __attribute__ ((const));
+ extern int __libc_alloca_cutoff (size_t size) __attribute__ ((const));
++libc_hidden_proto (__libc_alloca_cutoff)
+ #define __MAX_ALLOCA_CUTOFF   65536
+Index: glibc-2.12-2-gc4ccff1/nptl/Versions
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nptl/Versions
++++ glibc-2.12-2-gc4ccff1/nptl/Versions
+@@ -27,6 +27,7 @@ libc {
+     pthread_cond_broadcast; pthread_cond_timedwait;
+   }
+   GLIBC_PRIVATE {
++    __libc_alloca_cutoff;
+     # Internal libc interface to libpthread
+     __libc_dl_error_tsd;
+   }
+Index: glibc-2.12-2-gc4ccff1/nptl/alloca_cutoff.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nptl/alloca_cutoff.c
++++ glibc-2.12-2-gc4ccff1/nptl/alloca_cutoff.c
+@@ -34,3 +34,4 @@ __libc_alloca_cutoff (size_t size)
+                         assume the maximum available stack space.  */
+                      ?: __MAX_ALLOCA_CUTOFF * 4));
+ }
++libc_hidden_def (__libc_alloca_cutoff)
+Index: glibc-2.12-2-gc4ccff1/nss/Makefile
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nss/Makefile
++++ glibc-2.12-2-gc4ccff1/nss/Makefile
+@@ -63,7 +63,7 @@ vpath %.c $(subdir-dirs)
+ libnss_files-routines := $(addprefix files-,$(databases)) \
+-                         files-have_o_cloexec
++                         files-initgroups files-have_o_cloexec
+ distribute            += files-XXX.c files-parse.c
+Index: glibc-2.12-2-gc4ccff1/nss/Versions
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nss/Versions
++++ glibc-2.12-2-gc4ccff1/nss/Versions
+@@ -95,5 +95,7 @@ libnss_files {
+     _nss_netgroup_parseline;
+     _nss_files_getpublickey;
+     _nss_files_getsecretkey;
++
++    _nss_files_initgroups_dyn;
+   }
+ }
+Index: glibc-2.12-2-gc4ccff1/nss/nss_files/files-hosts.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nss/nss_files/files-hosts.c
++++ glibc-2.12-2-gc4ccff1/nss/nss_files/files-hosts.c
+@@ -129,19 +129,22 @@ _nss_files_get##name##_r (proto,                                    
+         && _res_hconf.flags & HCONF_FLAG_MULTI)                             \
+       {                                                                     \
+         /* We have to get all host entries from the file.  */               \
+-        const size_t tmp_buflen = MIN (buflen, 4096);                       \
+-        char tmp_buffer[tmp_buflen]                                         \
++        size_t tmp_buflen = MIN (buflen, 4096);                             \
++        char tmp_buffer_stack[tmp_buflen]                                   \
+           __attribute__ ((__aligned__ (__alignof__ (struct hostent_data))));\
++        char *tmp_buffer = tmp_buffer_stack;                                \
+         struct hostent tmp_result_buf;                                      \
+         int naddrs = 1;                                                     \
+         int naliases = 0;                                                   \
+         char *bufferend;                                                    \
++        bool tmp_buffer_malloced = false;                                   \
+                                                                             \
+         while (result->h_aliases[naliases] != NULL)                         \
+           ++naliases;                                                       \
+                                                                             \
+         bufferend = (char *) &result->h_aliases[naliases + 1];              \
+                                                                             \
++      again:                                                                \
+         while ((status = internal_getent (&tmp_result_buf, tmp_buffer,      \
+                                           tmp_buflen, errnop H_ERRNO_ARG    \
+                                           EXTRA_ARGS_VALUE))                \
+@@ -182,7 +185,7 @@ _nss_files_get##name##_r (proto,                                      
+                   }                                                         \
+                 /* If the real name is different add it also to the         \
+                    aliases.  This means that there is a duplication         \
+-                   in the alias list but this is really the users           \
++                   in the alias list but this is really the user's          \
+                    problem.  */                                             \
+                 if (strcmp (old_result->h_name,                             \
+                             tmp_result_buf.h_name) != 0)                    \
+@@ -204,7 +207,7 @@ _nss_files_get##name##_r (proto,                                      
+                     *errnop = ERANGE;                                       \
+                     *herrnop = NETDB_INTERNAL;                              \
+                     status = NSS_STATUS_TRYAGAIN;                           \
+-                    break;                                                  \
++                    goto out;                                               \
+                   }                                                         \
+                                                                             \
+                 new_h_addr_list =                                           \
+@@ -268,8 +271,54 @@ _nss_files_get##name##_r (proto,                                     
+               }                                                             \
+           }                                                                 \
+                                                                             \
+-        if (status != NSS_STATUS_TRYAGAIN)                                  \
++        if (status == NSS_STATUS_TRYAGAIN)                                  \
++          {                                                                 \
++            size_t newsize = 2 * tmp_buflen;                                \
++            if (tmp_buffer_malloced)                                        \
++              {                                                             \
++                char *newp = realloc (tmp_buffer, newsize);                 \
++                if (newp != NULL)                                           \
++                  {                                                         \
++                    assert ((((uintptr_t) newp)                             \
++                             & (__alignof__ (struct hostent_data) - 1))     \
++                            == 0);                                          \
++                    tmp_buffer = newp;                                      \
++                    tmp_buflen = newsize;                                   \
++                    goto again;                                             \
++                  }                                                         \
++              }                                                             \
++            else if (!__libc_use_alloca (buflen + newsize))                 \
++              {                                                             \
++                tmp_buffer = malloc (newsize);                              \
++                if (tmp_buffer != NULL)                                     \
++                  {                                                         \
++                    assert ((((uintptr_t) tmp_buffer)                       \
++                             & (__alignof__ (struct hostent_data) - 1))     \
++                            == 0);                                          \
++                    tmp_buffer_malloced = true;                             \
++                    tmp_buflen = newsize;                                   \
++                    goto again;                                             \
++                  }                                                         \
++              }                                                             \
++            else                                                            \
++              {                                                             \
++                tmp_buffer                                                  \
++                  = extend_alloca (tmp_buffer, tmp_buflen,                  \
++                                   newsize                                  \
++                                   + __alignof__ (struct hostent_data));    \
++                tmp_buffer = (char *) (((uintptr_t) tmp_buffer              \
++                                        + __alignof__ (struct hostent_data) \
++                                        - 1)                                \
++                                       & ~(__alignof__ (struct hostent_data)\
++                                           - 1));                           \
++                goto again;                                                 \
++              }                                                             \
++          }                                                                 \
++        else                                                                \
+           status = NSS_STATUS_SUCCESS;                                      \
++      out:                                                                  \
++        if (tmp_buffer_malloced)                                            \
++          free (tmp_buffer);                                                \
+       }                                                                     \
+                                                                             \
+                                                                             \
+Index: glibc-2.12-2-gc4ccff1/nss/nss_files/files-initgroups.c
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/nss/nss_files/files-initgroups.c
+@@ -0,0 +1,137 @@
++/* Initgroups handling in nss_files module.
++   Copyright (C) 2011 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#include <alloca.h>
++#include <errno.h>
++#include <grp.h>
++#include <nss.h>
++#include <stdio_ext.h>
++#include <string.h>
++#include <sys/param.h>
++
++enum nss_status
++_nss_files_initgroups_dyn (const char *user, gid_t group, long int *start,
++                         long int *size, gid_t **groupsp, long int limit,
++                         int *errnop)
++{
++  FILE *stream = fopen ("/etc/group", "re");
++  if (stream == NULL)
++    {
++      *errnop = errno;
++      return *errnop == ENOMEM ? NSS_STATUS_TRYAGAIN : NSS_STATUS_UNAVAIL;
++    }
++
++  /* No other thread using this stream.  */
++  __fsetlocking (stream, FSETLOCKING_BYCALLER);
++
++  char *line = NULL;
++  size_t linelen = 0;
++  enum nss_status status = NSS_STATUS_SUCCESS;
++  bool any = false;
++
++  size_t buflen = 1024;
++  void *buffer = alloca (buflen);
++  bool buffer_use_malloc = false;
++
++  gid_t *groups = *groupsp;
++
++  /* We have to iterate over the entire file.  */
++  while (!feof_unlocked (stream))
++    {
++      ssize_t n = getline (&line, &linelen, stream);
++      if (n < 0)
++      {
++        if (! feof_unlocked (stream))
++          status = ((*errnop = errno) == ENOMEM
++                    ? NSS_STATUS_TRYAGAIN : NSS_STATUS_UNAVAIL);
++        break;
++      }
++
++      struct group grp;
++      int res;
++      while ((res = _nss_files_parse_grent (line, &grp, buffer, buflen,
++                                          errnop)) == -1)
++      {
++        size_t newbuflen = 2 * buflen;
++        if (buffer_use_malloc || ! __libc_use_alloca (buflen + newbuflen))
++          {
++            void *newbuf = realloc (buffer_use_malloc ? buffer : NULL,
++                                    newbuflen);
++            if (newbuf == NULL)
++              {
++                *errnop = ENOMEM;
++                status = NSS_STATUS_TRYAGAIN;
++                goto out;
++              }
++            buffer = newbuf;
++            buflen = newbuflen;
++            buffer_use_malloc = true;
++          }
++        else
++          buffer = extend_alloca (buffer, buflen, newbuflen);
++      }
++
++      if (res > 0 && grp.gr_gid != group)
++      for (char **m = grp.gr_mem; *m != NULL; ++m)
++        if (strcmp (*m, user) == 0)
++          {
++            /* Matches user.  Insert this group.  */
++            if (*start == *size)
++              {
++                /* Need a bigger buffer.  */
++                if (limit > 0 && *size == limit)
++                  /* We reached the maximum.  */
++                  goto out;
++
++                long int newsize;
++                if (limit <= 0)
++                  newsize = 2 * *size;
++                else
++                  newsize = MIN (limit, 2 * *size);
++
++                gid_t *newgroups = realloc (groups,
++                                            newsize * sizeof (*groups));
++                if (newgroups == NULL)
++                  {
++                    *errnop = ENOMEM;
++                    status = NSS_STATUS_TRYAGAIN;
++                    goto out;
++                  }
++                *groupsp = groups = newgroups;
++                *size = newsize;
++              }
++
++            groups[*start] = grp.gr_gid;
++            *start += 1;
++            any = true;
++
++            break;
++          }
++    }
++
++ out:
++  /* Free memory.  */
++  if (buffer_use_malloc)
++    free (buffer);
++  free (line);
++
++  fclose (stream);
++
++  return status == NSS_STATUS_SUCCESS && !any ? NSS_STATUS_NOTFOUND : status;
++}
+Index: glibc-2.12-2-gc4ccff1/nss/nsswitch.conf
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nss/nsswitch.conf
++++ glibc-2.12-2-gc4ccff1/nss/nsswitch.conf
+@@ -5,6 +5,7 @@
+ passwd:               db files
+ group:                db files
++initgroups:   db [SUCCESS=continue] files
+ shadow:               db files
+ gshadow:      files
diff --git a/src/patches/glibc/glibc-rh711927.patch b/src/patches/glibc/glibc-rh711927.patch
new file mode 100644 (file)
index 0000000..26949fe
--- /dev/null
@@ -0,0 +1,503 @@
+Index: glibc-2.12-2-gc4ccff1/config.h.in
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/config.h.in
++++ glibc-2.12-2-gc4ccff1/config.h.in
+@@ -201,6 +201,9 @@
+ /* Define if multi-arch DSOs should be generated.  */
+ #undef USE_MULTIARCH
++/* Define if Systemtap <sys/sdt.h> probes should be defined.  */
++#undef USE_STAP_PROBE
++
+ /*
\f */
+Index: glibc-2.12-2-gc4ccff1/configure
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/configure
++++ glibc-2.12-2-gc4ccff1/configure
+@@ -830,6 +830,7 @@ enable_all_warnings
+ enable_multi_arch
+ enable_experimental_malloc
+ enable_nss_crypt
++enable_systemtap
+ with_cpu
+ '
+       ac_precious_vars='build_alias
+@@ -1501,6 +1502,7 @@ Optional Features:
+   --enable-experimental-malloc
+                           enable experimental malloc features
+   --enable-nss-crypt      enable libcrypt to use nss
++  --enable-systemtap      enable systemtap static probe points [default=no]
+ Optional Packages:
+   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
+@@ -3932,6 +3934,79 @@ else
+ fi
++# Check whether --enable-systemtap was given.
++if test "${enable_systemtap+set}" = set; then
++  enableval=$enable_systemtap; systemtap=$enableval
++else
++  systemtap=no
++fi
++
++if test x$systemtap != xno; then
++
++  { $as_echo "$as_me:$LINENO: checking for systemtap static probe support" >&5
++$as_echo_n "checking for systemtap static probe support... " >&6; }
++if test "${libc_cv_sdt+set}" = set; then
++  $as_echo_n "(cached) " >&6
++else
++    old_CFLAGS="$CFLAGS"
++  CFLAGS="-std=gnu99 $CFLAGS"
++  cat >conftest.$ac_ext <<_ACEOF
++#include <sys/sdt.h>
++void foo (int i, void *p)
++{
++  asm ("" STAP_PROBE_ASM (foo, bar, STAP_PROBE_ASM_TEMPLATE (2)) ""
++       :: STAP_PROBE_ASM_OPERANDS (2, i, p));
++}
++_ACEOF
++rm -f conftest.$ac_objext
++if { (ac_try="$ac_compile"
++case "(($ac_try" in
++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
++  *) ac_try_echo=$ac_try;;
++esac
++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
++$as_echo "$ac_try_echo") >&5
++  (eval "$ac_compile") 2>conftest.er1
++  ac_status=$?
++  grep -v '^ *+' conftest.er1 >conftest.err
++  rm -f conftest.er1
++  cat conftest.err >&5
++  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); } && {
++       test -z "$ac_c_werror_flag" ||
++       test ! -s conftest.err
++       } && test -s conftest.$ac_objext; then
++  libc_cv_sdt=yes
++else
++  $as_echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
++      libc_cv_sdt=no
++fi
++
++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
++  CFLAGS="$old_CFLAGS"
++fi
++{ $as_echo "$as_me:$LINENO: result: $libc_cv_sdt" >&5
++$as_echo "$libc_cv_sdt" >&6; }
++  if test $libc_cv_sdt = yes; then
++    cat >>confdefs.h <<\_ACEOF
++#define USE_STAP_PROBE 1
++_ACEOF
++
++  else
++    { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
++$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
++{ { $as_echo "$as_me:$LINENO: error: systemtap support needs sys/sdt.h with asm support
++See \`config.log' for more details." >&5
++$as_echo "$as_me: error: systemtap support needs sys/sdt.h with asm support
++See \`config.log' for more details." >&2;}
++   { (exit 1); exit 1; }; }; }
++  fi
++
++fi
++
++
+ # The way shlib-versions is used to generate soversions.mk uses a
+ # fairly simplistic model for name recognition that can't distinguish
+ # i486-pc-linux-gnu fully from i486-pc-gnu.  So we mutate a $host_os
+Index: glibc-2.12-2-gc4ccff1/configure.in
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/configure.in
++++ glibc-2.12-2-gc4ccff1/configure.in
+@@ -319,6 +319,29 @@ else
+ fi
+ AC_SUBST(libc_cv_nss_crypt)
++AC_ARG_ENABLE([systemtap],
++              [AS_HELP_STRING([--enable-systemtap],
++             [enable systemtap static probe points @<:@default=no@:>@])],
++              [systemtap=$enableval],
++            [systemtap=no])
++AS_IF([test x$systemtap != xno], [
++  AC_CACHE_CHECK([for systemtap static probe support], libc_cv_sdt, [dnl
++  old_CFLAGS="$CFLAGS"
++  CFLAGS="-std=gnu99 $CFLAGS"
++  AC_COMPILE_IFELSE([#include <sys/sdt.h>
++void foo (int i, void *p)
++{
++  asm ("" STAP_PROBE_ASM (foo, bar, STAP_PROBE_ASM_TEMPLATE (2)) ""
++       :: STAP_PROBE_ASM_OPERANDS (2, i, p));
++}], [libc_cv_sdt=yes], [libc_cv_sdt=no])
++  CFLAGS="$old_CFLAGS"])
++  if test $libc_cv_sdt = yes; then
++    AC_DEFINE([USE_STAP_PROBE])
++  else
++    AC_MSG_FAILURE([systemtap support needs sys/sdt.h with asm support])
++  fi
++])
++
+ # The way shlib-versions is used to generate soversions.mk uses a
+ # fairly simplistic model for name recognition that can't distinguish
+ # i486-pc-linux-gnu fully from i486-pc-gnu.  So we mutate a $host_os
+Index: glibc-2.12-2-gc4ccff1/elf/Makefile
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/elf/Makefile
++++ glibc-2.12-2-gc4ccff1/elf/Makefile
+@@ -458,7 +458,8 @@ CFLAGS-ldconfig.c = $(SYSCONF-FLAGS) -D'
+ CFLAGS-dl-cache.c = $(SYSCONF-FLAGS)
+ CFLAGS-cache.c = $(SYSCONF-FLAGS)
+-CPPFLAGS-.os += $(if $(filter $(@F),$(patsubst %,%.os,$(all-rtld-routines))),-DNOT_IN_libc=1 -DIS_IN_rtld=1)
++CPPFLAGS-.os += $(if $(filter $(@F),$(patsubst %,%.os,$(all-rtld-routines))),\
++                   -DNOT_IN_libc=1 -DIS_IN_rtld=1 -DIN_LIB=rtld)
+ test-modules = $(addprefix $(objpfx),$(addsuffix .so,$(strip $(modules-names))))
+ generated += $(addsuffix .so,$(strip $(modules-names)))
+Index: glibc-2.12-2-gc4ccff1/elf/dl-close.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/elf/dl-close.c
++++ glibc-2.12-2-gc4ccff1/elf/dl-close.c
+@@ -32,6 +32,7 @@
+ #include <sys/mman.h>
+ #include <sysdep-cancel.h>
+ #include <tls.h>
++#include <stap-probe.h>
+ /* Type of the constructor functions.  */
+@@ -469,6 +470,7 @@ _dl_close_worker (struct link_map *map)
+   struct r_debug *r = _dl_debug_initialize (0, nsid);
+   r->r_state = RT_DELETE;
+   _dl_debug_state ();
++  LIBC_PROBE (rtld_unmap_start, 2, nsid, r);
+   if (unload_global)
+     {
+@@ -722,6 +724,7 @@ _dl_close_worker (struct link_map *map)
+   /* Notify the debugger those objects are finalized and gone.  */
+   r->r_state = RT_CONSISTENT;
+   _dl_debug_state ();
++  LIBC_PROBE (rtld_unmap_complete, 2, nsid, r);
+   /* Recheck if we need to retry, release the lock.  */
+  out:
+Index: glibc-2.12-2-gc4ccff1/elf/dl-load.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/elf/dl-load.c
++++ glibc-2.12-2-gc4ccff1/elf/dl-load.c
+@@ -36,6 +36,7 @@
+ #include <stackinfo.h>
+ #include <caller.h>
+ #include <sysdep.h>
++#include <stap-probe.h>
+ #include <dl-dst.h>
+@@ -806,7 +807,7 @@ _dl_init_paths (const char *llp)
+ static void
+ __attribute__ ((noreturn, noinline))
+ lose (int code, int fd, const char *name, char *realname, struct link_map *l,
+-      const char *msg, struct r_debug *r)
++      const char *msg, struct r_debug *r, Lmid_t nsid)
+ {
+   /* The file might already be closed.  */
+   if (fd != -1)
+@@ -818,6 +819,7 @@ lose (int code, int fd, const char *name
+     {
+       r->r_state = RT_CONSISTENT;
+       _dl_debug_state ();
++      LIBC_PROBE (rtld_map_complete, 2, nsid, r);
+     }
+   _dl_signal_error (code, name, NULL, msg);
+@@ -856,7 +858,7 @@ _dl_map_object_from_fd (const char *name
+       errval = errno;
+     call_lose:
+       lose (errval, fd, name, realname, l, errstring,
+-          make_consistent ? r : NULL);
++          make_consistent ? r : NULL, nsid);
+     }
+   /* Look again to see if the real name matched another already loaded.  */
+@@ -963,6 +965,7 @@ _dl_map_object_from_fd (const char *name
+        linking has not been used before.  */
+       r->r_state = RT_ADD;
+       _dl_debug_state ();
++      LIBC_PROBE (rtld_map_start, 2, nsid, r);
+       make_consistent = true;
+     }
+   else
+@@ -1656,7 +1659,7 @@ open_verify (const char *name, struct fi
+             name = strdupa (realname);
+             free (realname);
+           }
+-        lose (errval, fd, name, NULL, NULL, errstring, NULL);
++        lose (errval, fd, name, NULL, NULL, errstring, NULL, 0);
+       }
+       /* See whether the ELF header is what we expect.  */
+Index: glibc-2.12-2-gc4ccff1/elf/dl-open.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/elf/dl-open.c
++++ glibc-2.12-2-gc4ccff1/elf/dl-open.c
+@@ -33,6 +33,7 @@
+ #include <caller.h>
+ #include <sysdep-cancel.h>
+ #include <tls.h>
++#include <stap-probe.h>
+ #include <dl-dst.h>
+@@ -297,6 +298,7 @@ dl_open_worker (void *a)
+   struct r_debug *r = _dl_debug_initialize (0, args->nsid);
+   r->r_state = RT_CONSISTENT;
+   _dl_debug_state ();
++  LIBC_PROBE (rtld_map_complete, 2, args->nsid, r);
+   /* Only do lazy relocation if `LD_BIND_NOW' is not set.  */
+   int reloc_mode = mode & __RTLD_AUDIT;
+@@ -309,10 +311,18 @@ dl_open_worker (void *a)
+   struct link_map *l = new;
+   while (l->l_next)
+     l = l->l_next;
++  int relocation_in_progress = 0;
+   while (1)
+     {
+       if (! l->l_real->l_relocated)
+       {
++        if (! relocation_in_progress)
++          {
++            /* Notify the debugger that relocations are about to happen.  */
++            LIBC_PROBE (rtld_reloc_start, 2, args->nsid, r);
++            relocation_in_progress = 1;
++          }
++
+ #ifdef SHARED
+         if (__builtin_expect (GLRO(dl_profile) != NULL, 0))
+           {
+@@ -460,6 +470,10 @@ cannot load any more object with static 
+     _dl_fatal_printf (N_("\
+ TLS generation counter wrapped!  Please report this."));
++  /* Notify the debugger all new objects have been relocated.  */
++  if (relocation_in_progress)
++    LIBC_PROBE (rtld_reloc_complete, 2, args->nsid, r);
++
+   /* Run the initializer functions of new objects.  */
+   _dl_init (new, args->argc, args->argv, args->env);
+Index: glibc-2.12-2-gc4ccff1/elf/rtld-Rules
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/elf/rtld-Rules
++++ glibc-2.12-2-gc4ccff1/elf/rtld-Rules
+@@ -122,6 +122,6 @@ ifdef rtld-depfiles
+ endif
+ # This here is the whole point of all the shenanigans.
+-rtld-CPPFLAGS := -DNOT_IN_libc=1 -DIS_IN_rtld=1
++rtld-CPPFLAGS := -DNOT_IN_libc=1 -DIS_IN_rtld=1 -DIN_LIB=rtld
+ endif
+Index: glibc-2.12-2-gc4ccff1/elf/rtld.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/elf/rtld.c
++++ glibc-2.12-2-gc4ccff1/elf/rtld.c
+@@ -40,6 +40,7 @@
+ #include <dl-osinfo.h>
+ #include <dl-procinfo.h>
+ #include <tls.h>
++#include <stap-probe.h>
+ #include <assert.h>
+@@ -1656,6 +1657,7 @@ ERROR: ld.so: object '%s' cannot be load
+   /* We start adding objects.  */
+   r->r_state = RT_ADD;
+   _dl_debug_state ();
++  LIBC_PROBE (rtld_init_start, 2, LM_ID_BASE, r);
+   /* Auditing checkpoint: we are ready to signal that the initial map
+      is being constructed.  */
+@@ -2353,6 +2355,7 @@ ERROR: ld.so: object '%s' cannot be load
+   r = _dl_debug_initialize (0, LM_ID_BASE);
+   r->r_state = RT_CONSISTENT;
+   _dl_debug_state ();
++  LIBC_PROBE (rtld_init_complete, 2, LM_ID_BASE, r);
+ #ifndef MAP_COPY
+   /* We must munmap() the cache file.  */
+Index: glibc-2.12-2-gc4ccff1/extra-lib.mk
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/extra-lib.mk
++++ glibc-2.12-2-gc4ccff1/extra-lib.mk
+@@ -101,4 +101,4 @@ ifneq (,$(cpp-srcs-left))
+ include $(patsubst %,$(..)cppflags-iterator.mk,$(cpp-srcs-left))
+ endif
+-CPPFLAGS-$(lib) := -DNOT_IN_libc=1 -DIS_IN_$(lib)=1
++CPPFLAGS-$(lib) := -DNOT_IN_libc=1 -DIS_IN_$(lib)=1 -DIN_LIB=$(lib)
+Index: glibc-2.12-2-gc4ccff1/include/stap-probe.h
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/include/stap-probe.h
+@@ -0,0 +1,140 @@
++/* Macros for defining Systemtap <sys/sdt.h> static probe points.
++   Copyright (C) 2011 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#ifndef _STAP_PROBE_H
++#define _STAP_PROBE_H 1
++
++#ifdef USE_STAP_PROBE
++
++# include <sys/sdt.h>
++
++/* Our code uses one macro LIBC_PROBE (name, n, arg1, ..., argn).
++
++   Without USE_STAP_PROBE, that does nothing but evaluates all
++   its arguments (to prevent bit rot, unlike e.g. assert).
++
++   Systemtap's header defines the macros STAP_PROBE (provider, name) and
++   STAP_PROBEn (provider, name, arg1, ..., argn).  For "provider" we paste
++   in the IN_LIB name (libc, libpthread, etc.) automagically.  */
++
++# ifndef NOT_IN_libc
++#  define IN_LIB      libc
++# elif !defined IN_LIB
++/* This is intentionally defined with extra unquoted commas in it so
++   that macro substitution will bomb out when it is used.  We don't
++   just use #error here, so that this header can be included by
++   other headers that use LIBC_PROBE inside their own macros.  We
++   only want such headers to fail to compile if those macros are
++   actually used in a context where IN_LIB has not been defined.  */
++#  define IN_LIB      ,,,missing -DIN_LIB=... -- not extra-lib.mk?,,,
++# endif
++
++# define LIBC_PROBE(name, n, ...)     \
++  LIBC_PROBE_1 (IN_LIB, name, n, ## __VA_ARGS__)
++
++# define LIBC_PROBE_1(lib, name, n, ...) \
++  STAP_PROBE##n (lib, name, ## __VA_ARGS__)
++
++# define STAP_PROBE0          STAP_PROBE
++
++# define LIBC_PROBE_ASM(name, template) \
++  STAP_PROBE_ASM (IN_LIB, name, template)
++
++# define LIBC_PROBE_ASM_OPERANDS STAP_PROBE_ASM_OPERANDS
++
++#else  /* Not USE_STAP_PROBE.  */
++
++# ifndef __ASSEMBLER__
++#  define LIBC_PROBE(name, n, ...)            DUMMY_PROBE##n (__VA_ARGS__)
++# else
++#  define LIBC_PROBE(name, n, ...)            /* Nothing.  */
++# endif
++
++# define LIBC_PROBE_ASM(name, template)               /* Nothing.  */
++# define LIBC_PROBE_ASM_OPERANDS(n, ...)      /* Nothing.  */
++
++/* This silliness lets us evaluate all the arguments for each arity
++   of probe.  My kingdom for a real macro system.  */
++
++# define DUMMY_PROBE0()                       do {} while (0)
++# define DUMMY_PROBE1(a1)             do {} while ((void) (a1), 0)
++# define DUMMY_PROBE2(a1, a2)         do {} while ((void) (a1), \
++                                                   (void) (a2), 0)
++# define DUMMY_PROBE3(a1, a2, a3)     do {} while ((void) (a1), \
++                                                   (void) (a2), \
++                                                   (void) (a3), 0)
++# define DUMMY_PROBE4(a1, a2, a3, a4) do {} while ((void) (a1), \
++                                                   (void) (a2), \
++                                                   (void) (a3), \
++                                                   (void) (a4), 0)
++# define DUMMY_PROBE5(a1, a2, a3, a4, a5)                       \
++                                      do {} while ((void) (a1), \
++                                                   (void) (a2), \
++                                                   (void) (a3), \
++                                                   (void) (a4), \
++                                                   (void) (a5), 0)
++# define DUMMY_PROBE6(a1, a2, a3, a4, a5, a6)                   \
++                                      do {} while ((void) (a1), \
++                                                   (void) (a2), \
++                                                   (void) (a3), \
++                                                   (void) (a4), \
++                                                   (void) (a5), \
++                                                   (void) (a6), 0)
++# define DUMMY_PROBE7(a1, a2, a3, a4, a5, a6, a7)               \
++                                      do {} while ((void) (a1), \
++                                                   (void) (a2), \
++                                                   (void) (a3), \
++                                                   (void) (a4), \
++                                                   (void) (a5), \
++                                                   (void) (a6), \
++                                                   (void) (a7), 0)
++# define DUMMY_PROBE8(a1, a2, a3, a4, a5, a6, a7, a8)           \
++                                      do {} while ((void) (a1), \
++                                                   (void) (a2), \
++                                                   (void) (a3), \
++                                                   (void) (a4), \
++                                                   (void) (a5), \
++                                                   (void) (a6), \
++                                                   (void) (a7), \
++                                                   (void) (a8), 0)
++# define DUMMY_PROBE9(a1, a2, a3, a4, a5, a6, a7, a8, a9)       \
++                                      do {} while ((void) (a1), \
++                                                   (void) (a2), \
++                                                   (void) (a3), \
++                                                   (void) (a4), \
++                                                   (void) (a5), \
++                                                   (void) (a6), \
++                                                   (void) (a7), \
++                                                   (void) (a8), \
++                                                   (void) (a9), 0)
++# define DUMMY_PROBE10(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)         \
++                                      do {} while ((void) (a1), \
++                                                   (void) (a2), \
++                                                   (void) (a3), \
++                                                   (void) (a4), \
++                                                   (void) (a5), \
++                                                   (void) (a6), \
++                                                   (void) (a7), \
++                                                   (void) (a8), \
++                                                   (void) (a9), \
++                                                   (void) (a10), 0)
++
++#endif        /* USE_STAP_PROBE.  */
++
++#endif        /* stap-probe.h */
+Index: glibc-2.12-2-gc4ccff1/scripts/check-local-headers.sh
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/scripts/check-local-headers.sh
++++ glibc-2.12-2-gc4ccff1/scripts/check-local-headers.sh
+@@ -31,6 +31,8 @@ fgrep -v "$includedir/asm" |
+ fgrep -v "$includedir/linux" |
+ fgrep -v "$includedir/selinux" |
+ fgrep -v "$includedir/sys/capability.h" |
++fgrep -v "$includedir/sys/sdt.h" |
++fgrep -v "$includedir/sys/sdt-config.h" |
+ fgrep -v "$includedir/gd" |
+ fgrep -v "$includedir/nss3"; then
+   # If we found a match something is wrong.
diff --git a/src/patches/glibc/glibc-rh711987.patch b/src/patches/glibc/glibc-rh711987.patch
new file mode 100644 (file)
index 0000000..bd286e1
--- /dev/null
@@ -0,0 +1,136 @@
+2010-08-11  Ulrich Drepper  <drepper@redhat.com>
+
+       * sysdeps/unix/sysv/linux/bits/statfs.h (struct statfs): Add f_flags
+       field.
+       (struct statfs64): Likewise.
+       (_STATFS_F_FLAGS): Define.
+       * sysdeps/unix/sysv/linux/s390/bits/statfs.h: Likewise.
+       * sysdeps/unix/sysv/linux/internal_statvfs.c (__statvfs_getflags):
+       Don't define if __ASSUME_STATFS_F_FLAGS is defined.
+       (ST_VALID): Define locally.
+       (INTERNAL_STATVFS): If f_flags has ST_VALID set don't call
+       __statvfs_getflags, use the provided value.
+       * sysdeps/unix/sysv/linux/kernel-features.h: Define
+       __ASSUME_STATFS_F_FLAGS.
+
+Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/bits/statfs.h
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/bits/statfs.h
++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/bits/statfs.h
+@@ -42,7 +42,8 @@ struct statfs
+     __fsid_t f_fsid;
+     __SWORD_TYPE f_namelen;
+     __SWORD_TYPE f_frsize;
+-    __SWORD_TYPE f_spare[5];
++    __SWORD_TYPE f_flags;
++    __SWORD_TYPE f_spare[4];
+   };
+ #ifdef __USE_LARGEFILE64
+@@ -58,10 +59,12 @@ struct statfs64
+     __fsid_t f_fsid;
+     __SWORD_TYPE f_namelen;
+     __SWORD_TYPE f_frsize;
+-    __SWORD_TYPE f_spare[5];
++    __SWORD_TYPE f_flags;
++    __SWORD_TYPE f_spare[4];
+   };
+ #endif
+ /* Tell code we have these members.  */
+ #define _STATFS_F_NAMELEN
+ #define _STATFS_F_FRSIZE
++#define _STATFS_F_FLAGS
+Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/internal_statvfs.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/internal_statvfs.c
++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/internal_statvfs.c
+@@ -29,6 +29,11 @@
+ #include <sys/statfs.h>
+ #include <sys/statvfs.h>
+ #include "linux_fsinfo.h"
++#include "kernel-features.h"
++
++
++/* Special internal-only bit value.  */
++#define ST_VALID 0x0020
+ #ifndef STATFS
+@@ -37,6 +42,7 @@
+ # define INTERNAL_STATVFS __internal_statvfs
++# ifndef __ASSUME_STATFS_F_FLAGS
+ int
+ __statvfs_getflags (const char *name, int fstype, struct stat64 *st)
+ {
+@@ -200,6 +206,7 @@ __statvfs_getflags (const char *name, in
+   return result;
+ }
++# endif
+ #else
+ extern int __statvfs_getflags (const char *name, int fstype,
+                              struct stat64 *st);
+@@ -240,9 +247,14 @@ INTERNAL_STATVFS (const char *name, stru
+   /* XXX I have no idea how to compute f_favail.  Any idea???  */
+   buf->f_favail = buf->f_ffree;
+-  /* Determining the flags is tricky.  We have to read /proc/mounts or
+-     the /etc/mtab file and search for the entry which matches the given
+-     file.  The way we can test for matching filesystem is using the
+-     device number.  */
+-  buf->f_flag = __statvfs_getflags (name, fsbuf->f_type, st);
++#ifndef __ASSUME_STATFS_F_FLAGS
++  if ((fsbuf->f_flags & ST_VALID) == 0)
++    /* Determining the flags is tricky.  We have to read /proc/mounts or
++       the /etc/mtab file and search for the entry which matches the given
++       file.  The way we can test for matching filesystem is using the
++       device number.  */
++    buf->f_flag = __statvfs_getflags (name, fsbuf->f_type, st);
++  else
++#endif
++    buf->f_flag = fsbuf->f_flags ^ ST_VALID;
+ }
+Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/kernel-features.h
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/kernel-features.h
++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/kernel-features.h
+@@ -552,3 +552,8 @@
+ #if __LINUX_KERNEL_VERSION >= 0x020621
+ # define __ASSUME_RECVMMSG    1
+ #endif
++
++/* statfs fills in f_flags since 2.6.36.  */
++#if __LINUX_KERNEL_VERSION >= 0x020624
++# define __ASSUME_STATFS_F_FLAGS      1
++#endif
+Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/s390/bits/statfs.h
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/s390/bits/statfs.h
++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/s390/bits/statfs.h
+@@ -42,7 +42,8 @@ struct statfs
+     __fsid_t f_fsid;
+     int f_namelen;
+     int f_frsize;
+-    int f_spare[5];
++    int f_flags;
++    int f_spare[4];
+   };
+ #ifdef __USE_LARGEFILE64
+@@ -58,10 +59,12 @@ struct statfs64
+     __fsid_t f_fsid;
+     int f_namelen;
+     int f_frsize;
+-    int f_spare[5];
++    int f_flags;
++    int f_spare[4];
+   };
+ #endif
+ /* Tell code we have this member.  */
+ #define _STATFS_F_NAMELEN
+ #define _STATFS_F_FRSIZE
++#define _STATFS_F_FLAGS
diff --git a/src/patches/glibc/glibc-rh712248.patch b/src/patches/glibc/glibc-rh712248.patch
new file mode 100644 (file)
index 0000000..afadc66
--- /dev/null
@@ -0,0 +1,69 @@
+2011-07-07  Ulrich Drepper  <drepper@gmail.com>
+
+       [BZ #12868]
+       * sysdeps/unix/sysv/linux/linux_fsinfo.h: Define Lustre constants.
+       * sysdeps/unix/sysv/linux/internal_statvfs.c (__statvfs_getflags):
+       Handle Lustre.
+       * sysdeps/unix/sysv/linux/pathconf.c (__statfs_link_max): Likewise.
+       (__statfs_filesize_max): Likewise.
+       Patch mostly by Andreas Dilger <adilger@whamcloud.com>.
+
+Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/internal_statvfs.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/internal_statvfs.c
++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/internal_statvfs.c
+@@ -109,6 +109,9 @@ __statvfs_getflags (const char *name, in
+     case LOGFS_MAGIC_U32:
+       fsname = "logfs";
+       break;
++    case LUSTRE_SUPER_MAGIC:
++      fsname = "lustre";
++      break;
+     }
+   FILE *mtab = __setmntent ("/proc/mounts", "r");
+Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/linux_fsinfo.h
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/linux_fsinfo.h
++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/linux_fsinfo.h
+@@ -77,6 +77,9 @@
+ /* Constant that identifies the `logfs´ filesystem.  */
+ #define LOGFS_MAGIC_U32               0xc97e8168u
++/* Constant that identifies the `lustre' filesystem.  */
++#define LUSTRE_SUPER_MAGIC    0x0BD00BD0
++
+ /* Constants that identify the `minix2' filesystem.  */
+ #define MINIX2_SUPER_MAGIC    0x2468
+ #define MINIX2_SUPER_MAGIC2   0x2478
+@@ -144,6 +147,8 @@
+ /* Maximum link counts.  */
+ #define COH_LINK_MAX          10000
+ #define EXT2_LINK_MAX         32000
++#define EXT4_LINK_MAX         65000
++#define LUSTRE_LINK_MAX               EXT4_LINK_MAX
+ #define MINIX2_LINK_MAX               65530
+ #define MINIX_LINK_MAX                250
+ #define REISERFS_LINK_MAX     64535
+Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/pathconf.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/pathconf.c
++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/pathconf.c
+@@ -104,6 +104,9 @@ __statfs_link_max (int result, const str
+     case XFS_SUPER_MAGIC:
+       return XFS_LINK_MAX;
++    case LUSTRE_SUPER_MAGIC:
++      return LUSTRE_LINK_MAX;
++
+     default:
+       return LINUX_LINK_MAX;
+     }
+@@ -136,6 +139,7 @@ __statfs_filesize_max (int result, const
+     case UDF_SUPER_MAGIC:
+     case JFS_SUPER_MAGIC:
+     case VXFS_SUPER_MAGIC:
++    case LUSTRE_SUPER_MAGIC:
+       return 64;
+     case MSDOS_SUPER_MAGIC:
diff --git a/src/patches/glibc/glibc-rh713134.patch b/src/patches/glibc/glibc-rh713134.patch
new file mode 100644 (file)
index 0000000..dc979be
--- /dev/null
@@ -0,0 +1,36 @@
+2011-03-18  Andreas Schwab  <schwab@redhat.com>
+
+       * elf/ldd.bash.in: Never run file directly.
+
+Index: glibc-2.12-2-gc4ccff1/elf/ldd.bash.in
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/elf/ldd.bash.in
++++ glibc-2.12-2-gc4ccff1/elf/ldd.bash.in
+@@ -167,18 +167,6 @@ warning: you do not have execution permi
+       fi
+     done
+     case $ret in
+-    0)
+-      # If the program exits with exit code 5, it means the process has been
+-      # invoked with __libc_enable_secure.  Fall back to running it through
+-      # the dynamic linker.
+-      try_trace "$file"
+-      rc=$?
+-      if [ $rc = 5 ]; then
+-      try_trace "$RTLD" "$file"
+-      rc=$?
+-      fi
+-      [ $rc = 0 ] || result=1
+-      ;;
+     1)
+       # This can be a non-ELF binary or no binary at all.
+       nonelf "$file" || {
+@@ -186,7 +174,7 @@ warning: you do not have execution permi
+       result=1
+       }
+       ;;
+-    2)
++    0|2)
+       try_trace "$RTLD" "$file" || result=1
+       ;;
+     *)
diff --git a/src/patches/glibc/glibc-rh714823.patch b/src/patches/glibc/glibc-rh714823.patch
new file mode 100644 (file)
index 0000000..8bd121b
--- /dev/null
@@ -0,0 +1,126 @@
+2011-06-28  Andreas Schwab  <schwab@redhat.com>
+
+       * sysdeps/posix/getaddrinfo.c (gaih_inet): Don't use gethostbyaddr
+       to determine canonical name.
+
+2011-06-22  Andreas Schwab  <schwab@redhat.com>
+
+       * sysdeps/posix/getaddrinfo.c (gaih_inet): Fix last change.
+
+2011-06-21  Ulrich Drepper  <drepper@gmail.com>
+
+       [BZ #12885]
+       * sysdeps/posix/getaddrinfo.c (gaih_inet): When looking up only IPv6
+       addresses using gethostbyname4_r ignore IPv4 addresses.
+
+Index: glibc-2.12-2-gc4ccff1/sysdeps/posix/getaddrinfo.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/posix/getaddrinfo.c
++++ glibc-2.12-2-gc4ccff1/sysdeps/posix/getaddrinfo.c
+@@ -512,10 +512,11 @@ gaih_inet (const char *name, const struc
+         /* If we do not have to look for IPv4 and IPv6 together, use
+            the simple, old functions.  */
+-        if (req->ai_family == AF_INET
+-            || (req->ai_family == AF_INET6
+-                && ((req->ai_flags & AI_V4MAPPED) == 0
+-                    || (req->ai_flags & AI_ALL) == 0)))
++        if ((req->ai_family == AF_INET
++             || (req->ai_family == AF_INET6
++                 && ((req->ai_flags & AI_V4MAPPED) == 0
++                     || (req->ai_flags & AI_ALL) == 0)))
++            && (req->ai_flags & AI_CANONNAME) == 0)
+           {
+             int family = req->ai_family;
+             size_t tmpbuflen = 512;
+@@ -731,16 +732,44 @@ gaih_inet (const char *name, const struc
+                                             tmpbuflen, 2 * tmpbuflen);
+                   }
+-                no_inet6_data = no_data;
+-
+                 if (status == NSS_STATUS_SUCCESS)
+                   {
++                    assert (!no_data);
++                    no_data = 1;
++
+                     if ((req->ai_flags & AI_CANONNAME) != 0 && canon == NULL)
+                       canon = (*pat)->name;
+                     while (*pat != NULL)
+-                      pat = &((*pat)->next);
++                      {
++                        if ((*pat)->family == AF_INET
++                            && req->ai_family == AF_INET6
++                            && (req->ai_flags & AI_V4MAPPED) != 0)
++                          {
++                            uint32_t *pataddr = (*pat)->addr;
++                            (*pat)->family = AF_INET6;
++                            pataddr[3] = pataddr[0];
++                            pataddr[2] = htonl (0xffff);
++                            pataddr[1] = 0;
++                            pataddr[0] = 0;
++                            pat = &((*pat)->next);
++                            no_data = 0;
++                          }
++                        else if (req->ai_family == AF_UNSPEC
++                                 || (*pat)->family == req->ai_family)
++                          {
++                            pat = &((*pat)->next);
++
++                            no_data = 0;
++                            if (req->ai_family == AF_INET6)
++                              got_ipv6 = true;
++                          }
++                        else
++                          *pat = ((*pat)->next);
++                      }
+                   }
++
++                no_inet6_data = no_data;
+               }
+             else
+               {
+@@ -905,39 +934,9 @@ gaih_inet (const char *name, const struc
+         {
+           if (canon == NULL)
+             {
+-              struct hostent *h = NULL;
+-              int herrno;
+-              struct hostent th;
+-              size_t tmpbuflen = 512;
+-              char *tmpbuf = NULL;
+-
+-              do
+-                {
+-                  tmpbuf = extend_alloca (tmpbuf, tmpbuflen, tmpbuflen * 2);
+-                  rc = __gethostbyaddr_r (at2->addr,
+-                                          ((at2->family == AF_INET6)
+-                                           ? sizeof (struct in6_addr)
+-                                           : sizeof (struct in_addr)),
+-                                          at2->family, &th, tmpbuf,
+-                                          tmpbuflen, &h, &herrno);
+-                }
+-              while (rc == ERANGE && herrno == NETDB_INTERNAL);
+-
+-              if (rc != 0 && herrno == NETDB_INTERNAL)
+-                {
+-                  __set_h_errno (herrno);
+-                  return -EAI_SYSTEM;
+-                }
+-
+-              if (h != NULL)
+-                canon = h->h_name;
+-              else
+-                {
+-                  assert (orig_name != NULL);
+-                  /* If the canonical name cannot be determined, use
+-                     the passed in string.  */
+-                  canon = orig_name;
+-                }
++              /* If the canonical name cannot be determined, use
++                 the passed in string.  */
++              canon = orig_name;
+             }
+ #ifdef HAVE_LIBIDN
diff --git a/src/patches/glibc/glibc-rh718057.patch b/src/patches/glibc/glibc-rh718057.patch
new file mode 100644 (file)
index 0000000..d331996
--- /dev/null
@@ -0,0 +1,109 @@
+2011-07-01  Andreas Schwab  <schwab@redhat.com>
+
+       * nis/nss_compat/compat-pwd.c (getpwent_next_nss_netgr): Query NIS
+       domain only when needed.
+
+Index: glibc-2.12-2-gc4ccff1/nis/nss_compat/compat-pwd.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nis/nss_compat/compat-pwd.c
++++ glibc-2.12-2-gc4ccff1/nis/nss_compat/compat-pwd.c
+@@ -360,7 +360,7 @@ getpwent_next_nss_netgr (const char *nam
+                        char *group, char *buffer, size_t buflen,
+                        int *errnop)
+ {
+-  char *curdomain, *host, *user, *domain, *p2;
++  char *curdomain = NULL, *host, *user, *domain, *p2;
+   int status;
+   size_t p2len;
+@@ -369,15 +369,7 @@ getpwent_next_nss_netgr (const char *nam
+   if (!nss_getpwnam_r)
+     return NSS_STATUS_UNAVAIL;
+-  if (yp_get_default_domain (&curdomain) != YPERR_SUCCESS)
+-    {
+-      ent->netgroup = false;
+-      ent->first = false;
+-      give_pwd_free (&ent->pwd);
+-      return NSS_STATUS_UNAVAIL;
+-    }
+-
+-  if (ent->first == true)
++  if (ent->first)
+     {
+       memset (&ent->netgrdata, 0, sizeof (struct __netgrent));
+       __internal_setnetgrent (group, &ent->netgrdata);
+@@ -403,8 +395,19 @@ getpwent_next_nss_netgr (const char *nam
+       if (user == NULL || user[0] == '-')
+       continue;
+-      if (domain != NULL && strcmp (curdomain, domain) != 0)
+-      continue;
++      if (domain != NULL)
++      {
++        if (curdomain == NULL
++            && yp_get_default_domain (&curdomain) != YPERR_SUCCESS)
++          {
++            __internal_endnetgrent (&ent->netgrdata);
++            ent->netgroup = false;
++            give_pwd_free (&ent->pwd);
++            return NSS_STATUS_UNAVAIL;
++          }
++        if (strcmp (curdomain, domain) != 0)
++          continue;
++      }
+       /* If name != NULL, we are called from getpwnam.  */
+       if (name != NULL)
+Index: glibc-2.12-2-gc4ccff1/nis/nss_compat/compat-spwd.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nis/nss_compat/compat-spwd.c
++++ glibc-2.12-2-gc4ccff1/nis/nss_compat/compat-spwd.c
+@@ -317,7 +317,7 @@ getspent_next_nss_netgr (const char *nam
+                        char *group, char *buffer, size_t buflen,
+                        int *errnop)
+ {
+-  char *curdomain, *host, *user, *domain, *p2;
++  char *curdomain = NULL, *host, *user, *domain, *p2;
+   size_t p2len;
+   if (!nss_getspnam_r)
+@@ -327,15 +327,7 @@ getspent_next_nss_netgr (const char *nam
+   if (ent->setent_status != NSS_STATUS_SUCCESS)
+     return ent->setent_status;
+-  if (yp_get_default_domain (&curdomain) != YPERR_SUCCESS)
+-    {
+-      ent->netgroup = false;
+-      ent->first = false;
+-      give_spwd_free (&ent->pwd);
+-      return NSS_STATUS_UNAVAIL;
+-    }
+-
+-  if (ent->first == true)
++  if (ent->first)
+     {
+       memset (&ent->netgrdata, 0, sizeof (struct __netgrent));
+       __internal_setnetgrent (group, &ent->netgrdata);
+@@ -362,8 +354,19 @@ getspent_next_nss_netgr (const char *nam
+       if (user == NULL || user[0] == '-')
+       continue;
+-      if (domain != NULL && strcmp (curdomain, domain) != 0)
+-      continue;
++      if (domain != NULL)
++      {
++        if (curdomain == NULL
++            && yp_get_default_domain (&curdomain) != YPERR_SUCCESS)
++          {
++            __internal_endnetgrent (&ent->netgrdata);
++            ent->netgroup = false;
++            give_spwd_free (&ent->pwd);
++            return NSS_STATUS_UNAVAIL;
++          }
++        if (strcmp (curdomain, domain) != 0)
++          continue;
++      }
+       /* If name != NULL, we are called from getpwnam */
+       if (name != NULL)
diff --git a/src/patches/glibc/glibc-rh726517.patch b/src/patches/glibc/glibc-rh726517.patch
new file mode 100644 (file)
index 0000000..26addbf
--- /dev/null
@@ -0,0 +1,173 @@
+Index: glibc-2.12-2-gc4ccff1/malloc/arena.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/malloc/arena.c
++++ glibc-2.12-2-gc4ccff1/malloc/arena.c
+@@ -870,7 +870,7 @@ heap_trim(heap, pad) heap_info *heap; si
+     heap = prev_heap;
+     if(!prev_inuse(p)) { /* consolidate backward */
+       p = prev_chunk(p);
+-      unlink(p, bck, fwd);
++      unlink(ar_ptr, p, bck, fwd);
+     }
+     assert(((unsigned long)((char*)p + new_size) & (pagesz-1)) == 0);
+     assert( ((char*)p + new_size) == ((char*)heap + heap->size) );
+Index: glibc-2.12-2-gc4ccff1/malloc/hooks.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/malloc/hooks.c
++++ glibc-2.12-2-gc4ccff1/malloc/hooks.c
+@@ -219,7 +219,9 @@ top_check()
+       (char*)t + chunksize(t) == mp_.sbrk_base + main_arena.system_mem)))
+     return 0;
++  mutex_unlock(&main_arena);
+   malloc_printerr (check_action, "malloc: top chunk is corrupt", t);
++  mutex_lock(&main_arena);
+   /* Try to set up a new top chunk. */
+   brk = MORECORE(0);
+Index: glibc-2.12-2-gc4ccff1/malloc/malloc.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/malloc/malloc.c
++++ glibc-2.12-2-gc4ccff1/malloc/malloc.c
+@@ -2109,12 +2109,14 @@ typedef struct malloc_chunk* mbinptr;
+ #define last(b)      ((b)->bk)
+ /* Take a chunk off a bin list */
+-#define unlink(P, BK, FD) {                                            \
++#define unlink(AV, P, BK, FD) {                                              \
+   FD = P->fd;                                                          \
+   BK = P->bk;                                                          \
+-  if (__builtin_expect (FD->bk != P || BK->fd != P, 0))                \
++  if (__builtin_expect (FD->bk != P || BK->fd != P, 0)) {            \
++    mutex_unlock(&(AV)->mutex);                                              \
+     malloc_printerr (check_action, "corrupted double-linked list", P); \
+-  else {                                                               \
++    mutex_lock(&(AV)->mutex);                                        \
++  } else {                                                           \
+     FD->bk = BK;                                                       \
+     BK->fd = FD;                                                       \
+     if (!in_smallbin_range (P->size)                                 \
+@@ -3257,7 +3259,9 @@ static Void_t* sYSMALLOc(nb, av) INTERNA
+     else if (contiguous(av) && old_size && brk < old_end) {
+       /* Oops!  Someone else killed our space..  Can't touch anything.  */
++      mutex_unlock(&av->mutex);
+       malloc_printerr (3, "break adjusted to free malloc space", brk);
++      mutex_lock(&av->mutex);
+     }
+     /*
+@@ -4305,7 +4309,9 @@ _int_malloc(mstate av, size_t bytes)
+       {
+         errstr = "malloc(): memory corruption (fast)";
+       errout:
++        mutex_unlock(&av->mutex);
+         malloc_printerr (check_action, errstr, chunk2mem (victim));
++        mutex_lock(&av->mutex);
+         return NULL;
+       }
+ #ifndef ATOMIC_FASTBINS
+@@ -4393,8 +4399,12 @@ _int_malloc(mstate av, size_t bytes)
+       bck = victim->bk;
+       if (__builtin_expect (victim->size <= 2 * SIZE_SZ, 0)
+         || __builtin_expect (victim->size > av->system_mem, 0))
+-      malloc_printerr (check_action, "malloc(): memory corruption",
+-                       chunk2mem (victim));
++      {
++        void *p = chunk2mem(victim);
++        mutex_unlock(&av->mutex);
++        malloc_printerr (check_action, "malloc(): memory corruption", p);
++        mutex_lock(&av->mutex);
++      }
+       size = chunksize(victim);
+       /*
+@@ -4535,7 +4545,7 @@ _int_malloc(mstate av, size_t bytes)
+         victim = victim->fd;
+       remainder_size = size - nb;
+-      unlink(victim, bck, fwd);
++      unlink(av, victim, bck, fwd);
+       /* Exhaust */
+       if (remainder_size < MINSIZE)  {
+@@ -4633,7 +4643,7 @@ _int_malloc(mstate av, size_t bytes)
+       remainder_size = size - nb;
+       /* unlink */
+-      unlink(victim, bck, fwd);
++      unlink(av, victim, bck, fwd);
+       /* Exhaust */
+       if (remainder_size < MINSIZE) {
+@@ -4789,10 +4799,14 @@ _int_free(mstate av, mchunkptr p)
+       errstr = "free(): invalid pointer";
+     errout:
+ #ifdef ATOMIC_FASTBINS
+-      if (! have_lock && locked)
++      if (have_lock || locked)
+       (void)mutex_unlock(&av->mutex);
+ #endif
+       malloc_printerr (check_action, errstr, chunk2mem(p));
++#ifdef ATOMIC_FASTBINS
++      if (have_lock)
++      mutex_lock(&av->mutex);
++#endif
+       return;
+     }
+   /* We know that each chunk is at least MINSIZE bytes in size.  */
+@@ -4961,7 +4975,7 @@ _int_free(mstate av, mchunkptr p)
+       prevsize = p->prev_size;
+       size += prevsize;
+       p = chunk_at_offset(p, -((long) prevsize));
+-      unlink(p, bck, fwd);
++      unlink(av, p, bck, fwd);
+     }
+     if (nextchunk != av->top) {
+@@ -4970,7 +4984,7 @@ _int_free(mstate av, mchunkptr p)
+       /* consolidate forward */
+       if (!nextinuse) {
+-      unlink(nextchunk, bck, fwd);
++      unlink(av, nextchunk, bck, fwd);
+       size += nextsize;
+       } else
+       clear_inuse_bit_at_offset(nextchunk, 0);
+@@ -5158,7 +5172,7 @@ static void malloc_consolidate(av) mstat
+           prevsize = p->prev_size;
+           size += prevsize;
+           p = chunk_at_offset(p, -((long) prevsize));
+-          unlink(p, bck, fwd);
++          unlink(av, p, bck, fwd);
+         }
+         if (nextchunk != av->top) {
+@@ -5166,7 +5180,7 @@ static void malloc_consolidate(av) mstat
+           if (!nextinuse) {
+             size += nextsize;
+-            unlink(nextchunk, bck, fwd);
++            unlink(av, nextchunk, bck, fwd);
+           } else
+             clear_inuse_bit_at_offset(nextchunk, 0);
+@@ -5235,7 +5249,9 @@ _int_realloc(mstate av, mchunkptr oldp, 
+     {
+       errstr = "realloc(): invalid old size";
+     errout:
++      mutex_unlock(&av->mutex);
+       malloc_printerr (check_action, errstr, chunk2mem(oldp));
++      mutex_lock(&av->mutex);
+       return NULL;
+     }
+@@ -5282,7 +5298,7 @@ _int_realloc(mstate av, mchunkptr oldp, 
+              (unsigned long)(newsize = oldsize + nextsize) >=
+              (unsigned long)(nb)) {
+       newp = oldp;
+-      unlink(next, bck, fwd);
++      unlink(av, next, bck, fwd);
+       }
+       /* allocate, copy, free */
diff --git a/src/patches/glibc/glibc-rh730379.patch b/src/patches/glibc/glibc-rh730379.patch
new file mode 100644 (file)
index 0000000..45808af
--- /dev/null
@@ -0,0 +1,34 @@
+2011-08-17  Ulrich Drepper  <drepper@gmail.com>
+
+       * Makeconfig (override CFLAGS): Add library-specific CFLAGS.
+       * resolv/Makefile: Define CFLAGS-libresolv.
+
+Index: glibc-2.12-2-gc4ccff1/Makeconfig
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/Makeconfig
++++ glibc-2.12-2-gc4ccff1/Makeconfig
+@@ -700,7 +700,9 @@ CPPFLAGS = $($(subdir)-CPPFLAGS) $(+incl
+ override CFLAGS       = -std=gnu99 $(gnu89-inline-CFLAGS) \
+                 $(filter-out %frame-pointer,$(+cflags)) $(+gccwarn-c) \
+                 $(sysdep-CFLAGS) $(CFLAGS-$(suffix $@)) $(CFLAGS-$(<F)) \
+-                $(CFLAGS-$(@F))
++                $(CFLAGS-$(@F)) \
++                $(foreach lib,$(libof-$(basename $(@F))) \
++                              $(libof-$(<F)) $(libof-$(@F)),$(CFLAGS-$(lib)))
+ override CXXFLAGS = $(c++-sysincludes) \
+                   $(filter-out %frame-pointer,$(+cflags)) $(sysdep-CFLAGS) \
+                   $(CFLAGS-$(suffix $@)) $(CFLAGS-$(<F)) $(CFLAGS-$(@F))
+Index: glibc-2.12-2-gc4ccff1/resolv/Makefile
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/resolv/Makefile
++++ glibc-2.12-2-gc4ccff1/resolv/Makefile
+@@ -76,6 +76,9 @@ CPPFLAGS += -Dgethostbyname=res_gethostb
+           -Dgetnetbyname=res_getnetbyname \
+           -Dgetnetbyaddr=res_getnetbyaddr
++ifeq (yes,$(have-ssp))
++CFLAGS-libresolv += -fstack-protector
++endif
+ CFLAGS-res_hconf.c = -fexceptions
+ CFLAGS-res_send.c += -fno-strict-aliasing
diff --git a/src/patches/glibc/glibc-rh731042.patch b/src/patches/glibc/glibc-rh731042.patch
new file mode 100644 (file)
index 0000000..d2f7b55
--- /dev/null
@@ -0,0 +1,51 @@
+2011-08-08  Andreas Schwab  <schwab@redhat.com>
+
+       * sysdeps/unix/sysv/linux/x86_64/cancellation.S: Maintain aligned
+       stack.
+       * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
+       * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
+
+Index: glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/cancellation.S
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nptl/sysdeps/unix/sysv/linux/x86_64/cancellation.S
++++ glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/cancellation.S
+@@ -71,7 +71,9 @@ ENTRY(__pthread_enable_asynccancel)
+ 1:    ret
+-3:    movq    $TCB_PTHREAD_CANCELED, %fs:RESULT
++3:    subq    $8, %rsp
++      cfi_adjust_cfa_offset(8)
++      movq    $TCB_PTHREAD_CANCELED, %fs:RESULT
+       lock
+       orl     $TCB_EXITING_BITMASK, %fs:CANCELHANDLING
+       movq    %fs:CLEANUP_JMP_BUF, %rdi
+Index: glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
++++ glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
+@@ -63,9 +63,9 @@ __pthread_cond_timedwait:
+       cfi_adjust_cfa_offset(8)
+       cfi_rel_offset(%r15, 0)
+ #ifdef __ASSUME_FUTEX_CLOCK_REALTIME
+-# define FRAME_SIZE 32
++# define FRAME_SIZE (32+8)
+ #else
+-# define FRAME_SIZE 48
++# define FRAME_SIZE (48+8)
+ #endif
+       subq    $FRAME_SIZE, %rsp
+       cfi_adjust_cfa_offset(FRAME_SIZE)
+Index: glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
++++ glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
+@@ -45,7 +45,7 @@ __pthread_cond_wait:
+       cfi_lsda(DW_EH_PE_udata4, .LexceptSTART)
+ #endif
+-#define FRAME_SIZE 32
++#define FRAME_SIZE (32+8)
+       leaq    -FRAME_SIZE(%rsp), %rsp
+       cfi_adjust_cfa_offset(FRAME_SIZE)
diff --git a/src/patches/glibc/glibc-rh736346.patch b/src/patches/glibc/glibc-rh736346.patch
new file mode 100644 (file)
index 0000000..2dd3f8a
--- /dev/null
@@ -0,0 +1,116 @@
+2011-01-14  Ulrich Drepper  <drepper@gmail.com>
+
+       [BZ #10563]
+       * sysdeps/unix/sysv/linux/i386/setgroups.c: Use INLINE_SETXID_SYSCALL
+       to make the syscall.
+       * sysdeps/unix/sysv/linux/setgroups.c: New file.
+
+2011-01-14  Ulrich Drepper  <drepper@gmail.com>
+
+       [BZ #10563]
+       * sysdeps/pthread/setxid.h (__SETXID_1): Add cast to assignment.
+       (__SETXID_2): Likewise.
+       (__SETXID_3): Likewise.
+
+Index: glibc-2.12-2-gc4ccff1/nptl/sysdeps/pthread/setxid.h
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nptl/sysdeps/pthread/setxid.h
++++ glibc-2.12-2-gc4ccff1/nptl/sysdeps/pthread/setxid.h
+@@ -20,11 +20,11 @@
+ #include <sysdep.h>
+ #define __SETXID_1(cmd, arg1) \
+-  cmd.id[0] = arg1
++  cmd.id[0] = (long int) arg1
+ #define __SETXID_2(cmd, arg1, arg2) \
+-  __SETXID_1 (cmd, arg1); cmd.id[1] = arg2
++  __SETXID_1 (cmd, arg1); cmd.id[1] = (long int) arg2
+ #define __SETXID_3(cmd, arg1, arg2, arg3) \
+-  __SETXID_2 (cmd, arg1, arg2); cmd.id[2] = arg3
++  __SETXID_2 (cmd, arg1, arg2); cmd.id[2] = (long int) arg3
+ #ifdef SINGLE_THREAD
+ # define INLINE_SETXID_SYSCALL(name, nr, args...) \
+Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/i386/setgroups.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/i386/setgroups.c
++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/i386/setgroups.c
+@@ -25,6 +25,7 @@
+ #include <sys/syscall.h>
+ #include <bp-checks.h>
++#include <setxid.h>
+ #include <linux/posix_types.h>
+ #include <kernel-features.h>
+@@ -44,7 +45,7 @@ int
+ setgroups (size_t n, const gid_t *groups)
+ {
+ #if __ASSUME_32BITUIDS > 0
+-  return INLINE_SYSCALL (setgroups32, 2, n, CHECK_N (groups, n));
++  return INLINE_SETXID_SYSCALL (setgroups32, 2, n, CHECK_N (groups, n));
+ #else
+   if (n > (size_t) __sysconf (_SC_NGROUPS_MAX))
+     {
+@@ -62,7 +63,8 @@ setgroups (size_t n, const gid_t *groups
+         int result;
+         int saved_errno = errno;
+-        result = INLINE_SYSCALL (setgroups32, 2, n, CHECK_N (groups, n));
++        result = INLINE_SETXID_SYSCALL (setgroups32, 2, n,
++                                        CHECK_N (groups, n));
+         if (result == 0 || errno != ENOSYS)
+           return result;
+@@ -80,7 +82,8 @@ setgroups (size_t n, const gid_t *groups
+           }
+       }
+-      return INLINE_SYSCALL (setgroups, 2, n, CHECK_N (kernel_groups, n));
++      return INLINE_SETXID_SYSCALL (setgroups, 2, n,
++                                  CHECK_N (kernel_groups, n));
+     }
+ #endif
+ }
+Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/setgroups.c
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/setgroups.c
+@@ -0,0 +1,37 @@
++/* Copyright (C) 1997,1998,2000,2002,2004,2006,2011
++   Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#include <errno.h>
++#include <grp.h>
++#include <setxid.h>
++#include <sysdep.h>
++
++
++/* Set the group set for the current user to GROUPS (N of them).  For
++   Linux we must convert the array of groups into the format that the
++   kernel expects.  */
++int
++setgroups (size_t n, const gid_t *groups)
++{
++#ifdef __NR_setgroups32
++# error "wrong setgroups.c file used"
++#endif
++  return INLINE_SETXID_SYSCALL (setgroups, 2, n, groups);
++}
++libc_hidden_def (setgroups)
diff --git a/src/patches/glibc/glibc-rh737778.patch b/src/patches/glibc/glibc-rh737778.patch
new file mode 100644 (file)
index 0000000..5d3c131
--- /dev/null
@@ -0,0 +1,122 @@
+2011-08-14  Roland McGrath  <roland@hack.frob.com>
+
+       * locale/Makefile (locale-CPPFLAGS): Renamed CPPFLAGS-locale-programs.
+       (locale-CPPFLAGS): New variable; put LOCALEDIR, LOCALE_ALIAS_PATH and
+       -Iprograms here.
+       (cppflags-iterator.mk sequence): Use locale-programs in place of nonlib.
+       (localedef-modules): Add localedef.
+       (locale-modules): Add locale.
+
+2011-08-13  Ulrich Drepper  <drepper@gmail.com>
+
+       * intl/l10nflist.c (_nl_normalize_codeset): Make it compile outside
+       of libc.  Make tolower call locale-independent.  Optimize a bit by
+       using isdigit instead of isalnum.
+       * locale/Makefile (locale-CPPFLAGS): Add -DNOT_IN_libc.
+
+2011-08-11  Ulrich Drepper  <drepper@gmail.com>
+
+       * intl/l10nflist.c (_nl_make_l10nflist): Use locale-independent
+       classification.
+
+Index: glibc-2.12-2-gc4ccff1/intl/l10nflist.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/intl/l10nflist.c
++++ glibc-2.12-2-gc4ccff1/intl/l10nflist.c
+@@ -332,13 +332,18 @@ _nl_normalize_codeset (codeset, name_len
+   char *retval;
+   char *wp;
+   size_t cnt;
++#ifdef NOT_IN_libc
++  locale_t locale = newlocale (0, "C", NULL);
++#else
++# define locale _nl_C_locobj_ptr
++#endif
+   for (cnt = 0; cnt < name_len; ++cnt)
+-    if (isalnum ((unsigned char) codeset[cnt]))
++    if (__isalnum_l ((unsigned char) codeset[cnt], locale))
+       {
+       ++len;
+-      if (isalpha ((unsigned char) codeset[cnt]))
++      if (! __isdigit_l ((unsigned char) codeset[cnt], locale))
+         only_digit = 0;
+       }
+@@ -346,15 +351,14 @@ _nl_normalize_codeset (codeset, name_len
+   if (retval != NULL)
+     {
++      wp = retval;
+       if (only_digit)
+-      wp = stpcpy (retval, "iso");
+-      else
+-      wp = retval;
++      wp = stpcpy (wp, "iso");
+       for (cnt = 0; cnt < name_len; ++cnt)
+-      if (isalpha ((unsigned char) codeset[cnt]))
+-        *wp++ = tolower ((unsigned char) codeset[cnt]);
+-      else if (isdigit ((unsigned char) codeset[cnt]))
++      if (__isalpha_l ((unsigned char) codeset[cnt], locale))
++        *wp++ = __tolower_l ((unsigned char) codeset[cnt], locale);
++      else if (__isdigit_l ((unsigned char) codeset[cnt], locale))
+         *wp++ = codeset[cnt];
+       *wp = '\0';
+Index: glibc-2.12-2-gc4ccff1/locale/Makefile
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/locale/Makefile
++++ glibc-2.12-2-gc4ccff1/locale/Makefile
+@@ -59,10 +59,11 @@ vpath %.c programs ../crypt
+ vpath %.h programs
+ vpath %.gperf programs
+-localedef-modules     := $(categories:%=ld-%) charmap linereader locfile \
++localedef-modules     := localedef $(categories:%=ld-%) \
++                         charmap linereader locfile \
+                          repertoire locarchive
+ localedef-aux         := md5
+-locale-modules                := locale-spec
++locale-modules                := locale locale-spec
+ lib-modules           := charmap-dir simple-hash xmalloc xstrdup
+@@ -90,22 +91,27 @@ endif
+ localepath = "$(localedir):$(i18ndir)"
+-locale-CPPFLAGS := -DLOCALE_PATH='$(localepath)' \
+-                 -DLOCALEDIR='"$(localedir)"' \
+-                 -DLOCALE_ALIAS_PATH='"$(msgcatdir)"' \
+-                 -DCHARMAP_PATH='"$(i18ndir)/charmaps"' \
+-                 -DREPERTOIREMAP_PATH='"$(i18ndir)/repertoiremaps"' \
+-                 -DLOCSRCDIR='"$(i18ndir)/locales"' -DHAVE_CONFIG_H \
+-                 -Iprograms
++# -Iprograms doesn't really belong here, but this gets it at the head
++# of the list instead of the tail, where CPPFLAGS-$(lib) gets added.
++# We need it before the standard -I's to see programs/config.h first.
++locale-CPPFLAGS = -DLOCALEDIR='"$(localedir)"' \
++                -DLOCALE_ALIAS_PATH='"$(msgcatdir)"' \
++                -Iprograms
++
++CPPFLAGS-locale-programs = -DLOCALE_PATH='$(localepath)' \
++                         -DCHARMAP_PATH='"$(i18ndir)/charmaps"' \
++                         -DREPERTOIREMAP_PATH='"$(i18ndir)/repertoiremaps"' \
++                         -DLOCSRCDIR='"$(i18ndir)/locales"' \
++                         -DHAVE_CONFIG_H -DNOT_IN_libc
+ CFLAGS-charmap.c = -Wno-write-strings -Wno-char-subscripts
+ CFLAGS-locfile.c = -Wno-write-strings -Wno-char-subscripts
+ CFLAGS-charmap-dir.c = -Wno-write-strings
+-# This makes sure -DNOT_IN_libc is passed for all these modules.
++# This makes sure -DNOT_IN_libc et al are passed for all these modules.
+ cpp-srcs-left := $(addsuffix .c,$(localedef-modules) $(localedef-aux) \
+                               $(locale-modules) $(lib-modules))
+-lib := nonlib
++lib := locale-programs
+ include $(patsubst %,$(..)cppflags-iterator.mk,$(cpp-srcs-left))
+ # Depend on libc.so so a DT_NEEDED is generated in the shared objects.
diff --git a/src/patches/glibc/glibc-rh738665.patch b/src/patches/glibc/glibc-rh738665.patch
new file mode 100644 (file)
index 0000000..1eea554
--- /dev/null
@@ -0,0 +1,149 @@
+2011-09-15  Andreas Schwab  <schwab@redhat.com>
+
+       * sysdeps/pthread/list.h: Define only list_t if __need_list_t is
+       defined.
+       (list_add): Add atomic_write_barrier.
+       * descr.h: Define __need_list_t before including <list.h>.
+       * nptl-init.c: Include <list.h>
+       * allocatestack.c: Likewise.
+
+2011-09-15  Andreas Schwab  <schwab@redhat.com>
+
+       * thread_dbP.h: Include <list.h>
+
+Index: glibc-2.12-2-gc4ccff1/nptl/allocatestack.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nptl/allocatestack.c
++++ glibc-2.12-2-gc4ccff1/nptl/allocatestack.c
+@@ -27,6 +27,7 @@
+ #include <sys/param.h>
+ #include <dl-sysdep.h>
+ #include <tls.h>
++#include <list.h>
+ #include <lowlevellock.h>
+ #include <kernel-features.h>
+Index: glibc-2.12-2-gc4ccff1/nptl/descr.h
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nptl/descr.h
++++ glibc-2.12-2-gc4ccff1/nptl/descr.h
+@@ -26,6 +26,7 @@
+ #include <stdbool.h>
+ #include <sys/types.h>
+ #include <hp-timing.h>
++#define __need_list_t
+ #include <list.h>
+ #include <lowlevellock.h>
+ #include <pthreaddef.h>
+Index: glibc-2.12-2-gc4ccff1/nptl/nptl-init.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nptl/nptl-init.c
++++ glibc-2.12-2-gc4ccff1/nptl/nptl-init.c
+@@ -29,6 +29,7 @@
+ #include <atomic.h>
+ #include <ldsodefs.h>
+ #include <tls.h>
++#include <list.h>
+ #include <fork.h>
+ #include <version.h>
+ #include <shlib-compat.h>
+Index: glibc-2.12-2-gc4ccff1/nptl/sysdeps/pthread/list.h
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nptl/sysdeps/pthread/list.h
++++ glibc-2.12-2-gc4ccff1/nptl/sysdeps/pthread/list.h
+@@ -18,27 +18,39 @@
+    02111-1307 USA.  */
+ #ifndef _LIST_H
+-#define _LIST_H       1
++
++#ifndef __need_list_t
++# define _LIST_H      1
++#endif
+ /* The definitions of this file are adopted from those which can be
+    found in the Linux kernel headers to enable people familiar with
+    the latter find their way in these sources as well.  */
++#if defined __need_list_t || defined _LIST_H
++# ifndef __list_t_defined
++#  define __list_t_defined
+ /* Basic type for the double-link list.  */
+ typedef struct list_head
+ {
+   struct list_head *next;
+   struct list_head *prev;
+ } list_t;
++# endif
++# undef __need_list_t
++#endif
++
++#ifdef _LIST_H
++# include <atomic.h>
+ /* Define a variable with the head and tail of the list.  */
+-#define LIST_HEAD(name) \
++# define LIST_HEAD(name) \
+   list_t name = { &(name), &(name) }
+ /* Initialize a new list head.  */
+-#define INIT_LIST_HEAD(ptr) \
++# define INIT_LIST_HEAD(ptr) \
+   (ptr)->next = (ptr)->prev = (ptr)
+@@ -49,6 +61,7 @@ list_add (list_t *newp, list_t *head)
+   newp->next = head->next;
+   newp->prev = head;
+   head->next->prev = newp;
++  atomic_write_barrier ();
+   head->next = newp;
+ }
+@@ -78,26 +91,28 @@ list_splice (list_t *add, list_t *head)
+ /* Get typed element from list at a given position.  */
+-#define list_entry(ptr, type, member) \
++# define list_entry(ptr, type, member) \
+   ((type *) ((char *) (ptr) - (unsigned long) (&((type *) 0)->member)))
+ /* Iterate forward over the elements of the list.  */
+-#define list_for_each(pos, head) \
++# define list_for_each(pos, head) \
+   for (pos = (head)->next; pos != (head); pos = pos->next)
+ /* Iterate forward over the elements of the list.  */
+-#define list_for_each_prev(pos, head) \
++# define list_for_each_prev(pos, head) \
+   for (pos = (head)->prev; pos != (head); pos = pos->prev)
+ /* Iterate backwards over the elements list.  The list elements can be
+    removed from the list while doing this.  */
+-#define list_for_each_prev_safe(pos, p, head) \
++# define list_for_each_prev_safe(pos, p, head) \
+   for (pos = (head)->prev, p = pos->prev; \
+        pos != (head); \
+        pos = p, p = pos->prev)
++#endif /* _LIST_H */
++
+ #endif        /* list.h */
+Index: glibc-2.12-2-gc4ccff1/nptl_db/thread_dbP.h
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nptl_db/thread_dbP.h
++++ glibc-2.12-2-gc4ccff1/nptl_db/thread_dbP.h
+@@ -29,6 +29,7 @@
+ #include "proc_service.h"
+ #include "thread_db.h"
+ #include "../nptl/pthreadP.h"         /* This is for *_BITMASK only.  */
++#include <list.h>
+ /* Indeces for the symbol names.  */
+ enum
diff --git a/src/patches/glibc/glibc-rh738763.patch b/src/patches/glibc/glibc-rh738763.patch
new file mode 100644 (file)
index 0000000..728464d
--- /dev/null
@@ -0,0 +1,17 @@
+2011-09-15  Ulrich Drepper  <drepper@gmail.com>
+
+       * sysdeps/unix/sysv/linux/bits/in.h (IP_MULTICAST_ALL): Define.
+       Patch mostly by Neil Horman <nhorman@tuxdriver.com>.
+
+Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/bits/in.h
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/bits/in.h
++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/bits/in.h
+@@ -70,6 +70,7 @@
+ #define IP_XFRM_POLICY        17
+ #define IP_PASSSEC    18
+ #define IP_TRANSPARENT        19
++#define IP_MULTICAST_ALL 49   /* bool */
+ /* TProxy original addresses */
+ #define IP_ORIGDSTADDR       20
diff --git a/src/patches/glibc/glibc-rh739184.patch b/src/patches/glibc/glibc-rh739184.patch
new file mode 100644 (file)
index 0000000..cf12246
--- /dev/null
@@ -0,0 +1,18 @@
+2010-06-10  Andreas Schwab  <schwab@redhat.com>
+
+       * sysdeps/unix/sysv/linux/getpagesize.c: Don't assume AT_PAGESIZE
+       is always available.
+
+Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/getpagesize.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/getpagesize.c
++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/getpagesize.c
+@@ -28,7 +28,7 @@
+ int
+ __getpagesize ()
+ {
+-#ifdef __ASSUME_AT_PAGESIZE
++#if 0 && defined __ASSUME_AT_PAGESIZE
+   assert (GLRO(dl_pagesize) != 0);
+   return GLRO(dl_pagesize);
+ #else
diff --git a/src/patches/glibc/glibc-rh739971.patch b/src/patches/glibc/glibc-rh739971.patch
new file mode 100644 (file)
index 0000000..960c192
--- /dev/null
@@ -0,0 +1,44 @@
+commit 32c76b63be605d12314e0c6ac2bd702c883d1423
+Author: Andreas Schwab <schwab@redhat.com>
+Date:   Mon Sep 26 17:49:14 2011 +0200
+
+    Correctly reparse group line after enlarging the buffer
+
+diff --git a/nss/nss_files/files-initgroups.c b/nss/nss_files/files-initgroups.c
+index 113abf2..c343b35 100644
+--- a/nss/nss_files/files-initgroups.c
++++ b/nss/nss_files/files-initgroups.c
+@@ -52,8 +52,10 @@ _nss_files_initgroups_dyn (const char *user, gid_t group, long int *start,
+   gid_t *groups = *groupsp;
+   /* We have to iterate over the entire file.  */
+-  while (!feof_unlocked (stream))
++  while (1)
+     {
++      fpos_t pos;
++      fgetpos (stream, &pos);
+       ssize_t n = getline (&line, &linelen, stream);
+       if (n < 0)
+       {
+@@ -64,9 +66,8 @@ _nss_files_initgroups_dyn (const char *user, gid_t group, long int *start,
+       }
+       struct group grp;
+-      int res;
+-      while ((res = _nss_files_parse_grent (line, &grp, buffer, buflen,
+-                                          errnop)) == -1)
++      int res = _nss_files_parse_grent (line, &grp, buffer, buflen, errnop);
++      if (res == -1)
+       {
+         size_t newbuflen = 2 * buflen;
+         if (buffer_use_malloc || ! __libc_use_alloca (buflen + newbuflen))
+@@ -85,6 +86,9 @@ _nss_files_initgroups_dyn (const char *user, gid_t group, long int *start,
+           }
+         else
+           buffer = extend_alloca (buffer, buflen, newbuflen);
++        /* Reread current line, the parser has clobbered it.  */
++        fsetpos (stream, &pos);
++        continue;
+       }
+       if (res > 0 && grp.gr_gid != group)
diff --git a/src/patches/glibc/glibc-rh740506-2.patch b/src/patches/glibc/glibc-rh740506-2.patch
new file mode 100644 (file)
index 0000000..adefea0
--- /dev/null
@@ -0,0 +1,35 @@
+       * malloc/arena.c (arena_get2): Avoid unnecessarily
+       retrieving #cpus from /proc.
+       * malloc/malloc.c (mALLOPt): Clamp arena_test based on
+       the value of arena_max.
+
+diff --git a/malloc/arena.c b/malloc/arena.c
+index cb8548b..00f1da5 100644
+--- a/malloc/arena.c
++++ b/malloc/arena.c
+@@ -828,7 +828,7 @@ arena_get2(mstate a_tsd, size_t size)
+       {
+         if (mp_.arena_max != 0)
+           narenas_limit = mp_.arena_max;
+-        else
++        else if (narenas > mp_.arena_test)
+           {
+             int n  = __get_nprocs ();
+diff --git a/malloc/malloc.c b/malloc/malloc.c
+index 8608083..f8d32da 100644
+--- a/malloc/malloc.c
++++ b/malloc/malloc.c
+@@ -6134,6 +6134,12 @@ int mALLOPt(param_number, value) int par
+     break;
+ #endif
+   }
++#ifdef PER_THREAD
++  /* Clamp ARENA_TEST from ARENA_MAX to avoid creating too many
++     arenas.  */
++  if (mp_.arena_max > 0 && mp_.arena_max <= mp_.arena_test)
++    mp_.arena_test = mp_.arena_max - 1;
++#endif
+   (void)mutex_unlock(&av->mutex);
+   return res;
+ }
diff --git a/src/patches/glibc/glibc-rh740506.patch b/src/patches/glibc/glibc-rh740506.patch
new file mode 100644 (file)
index 0000000..6c74ccf
--- /dev/null
@@ -0,0 +1,132 @@
+2011-11-14  Andreas Schwab  <schwab@redhat.com>
+
+       * malloc/arena.c (arena_get2): Don't call reused_arena when
+       _int_new_arena failed.
+
+2011-11-10  Andreas Schwab  <schwab@redhat.com>
+
+       * malloc/arena.c (_int_new_arena): Don't increment narenas.
+       (reused_arena): Don't check arena limit.
+       (arena_get2): Atomically check arena limit.
+
+diff --git a/malloc/arena.c b/malloc/arena.c
+index 9114fd2..042cac8 100644
+--- a/malloc/arena.c
++++ b/malloc/arena.c
+@@ -747,8 +747,6 @@ _int_new_arena(size_t size)
+   main_arena.next = a;
+ #ifdef PER_THREAD
+-  ++narenas;
+-
+   (void)mutex_unlock(&list_lock);
+ #endif
+@@ -786,30 +784,6 @@ get_free_list (void)
+ static mstate
+ reused_arena (void)
+ {
+-  if (narenas <= mp_.arena_test)
+-    return NULL;
+-
+-  static int narenas_limit;
+-  if (narenas_limit == 0)
+-    {
+-      if (mp_.arena_max != 0)
+-      narenas_limit = mp_.arena_max;
+-      else
+-      {
+-        int n  = __get_nprocs ();
+-
+-        if (n >= 1)
+-          narenas_limit = NARENAS_FROM_NCORES (n);
+-        else
+-          /* We have no information about the system.  Assume two
+-             cores.  */
+-          narenas_limit = NARENAS_FROM_NCORES (2);
+-      }
+-    }
+-
+-  if (narenas < narenas_limit)
+-    return NULL;
+-
+   mstate result;
+   static mstate next_to_use;
+   if (next_to_use == NULL)
+@@ -844,10 +818,41 @@ arena_get2(mstate a_tsd, size_t size)
+   mstate a;
+ #ifdef PER_THREAD
+-  if ((a = get_free_list ()) == NULL
+-      && (a = reused_arena ()) == NULL)
+-    /* Nothing immediately available, so generate a new arena.  */
+-    a = _int_new_arena(size);
++  static size_t narenas_limit;
++
++  a = get_free_list ();
++  if (a == NULL)
++    {
++      /* Nothing immediately available, so generate a new arena.  */
++      if (narenas_limit == 0)
++      {
++        if (mp_.arena_max != 0)
++          narenas_limit = mp_.arena_max;
++        else
++          {
++            int n  = __get_nprocs ();
++
++            if (n >= 1)
++              narenas_limit = NARENAS_FROM_NCORES (n);
++            else
++              /* We have no information about the system.  Assume two
++                 cores.  */
++              narenas_limit = NARENAS_FROM_NCORES (2);
++          }
++      }
++    repeat:;
++      size_t n = narenas;
++      if (__builtin_expect (n <= mp_.arena_test || n < narenas_limit, 0))
++      {
++        if (catomic_compare_and_exchange_bool_acq(&narenas, n + 1, n))
++          goto repeat;
++        a = _int_new_arena (size);
++        if (__builtin_expect (a != NULL, 1))
++          return a;
++        catomic_decrement(&narenas);
++      }
++      a = reused_arena ();
++    }
+ #else
+   if(!a_tsd)
+     a = a_tsd = &main_arena;
+
+commit a5fb313cb7b7e692fd4684916aaa98e03ec7e8b6
+Author: Andreas Schwab <schwab@redhat.com>
+Date:   Mon Nov 14 11:41:52 2011 +0100
+
+    Don't call reused_arena when _int_new_arena failed
+
+diff --git a/malloc/arena.c b/malloc/arena.c
+index 042cac8..cb8548b 100644
+--- a/malloc/arena.c
++++ b/malloc/arena.c
+@@ -844,14 +844,14 @@ arena_get2(mstate a_tsd, size_t size)
+       size_t n = narenas;
+       if (__builtin_expect (n <= mp_.arena_test || n < narenas_limit, 0))
+       {
+-        if (catomic_compare_and_exchange_bool_acq(&narenas, n + 1, n))
++        if (catomic_compare_and_exchange_bool_acq (&narenas, n + 1, n))
+           goto repeat;
+         a = _int_new_arena (size);
+-        if (__builtin_expect (a != NULL, 1))
+-          return a;
+-        catomic_decrement(&narenas);
++        if (__builtin_expect (a == NULL, 0))
++          catomic_decrement (&narenas);
+       }
+-      a = reused_arena ();
++      else
++      a = reused_arena ();
+     }
+ #else
+   if(!a_tsd)
diff --git a/src/patches/glibc/glibc-rh749188.patch b/src/patches/glibc/glibc-rh749188.patch
new file mode 100644 (file)
index 0000000..43157cd
--- /dev/null
@@ -0,0 +1,32 @@
+commit 0e8131bb32cf026c87baeacb7abf2a9bdbbc4953
+Author: Andreas Schwab <schwab@redhat.com>
+Date:   Sun May 8 21:48:03 2011 -0400
+
+    Remove .UTF-8 suffix from locale names when it is the only supported codeset
+
+diff --git a/localedata/SUPPORTED b/localedata/SUPPORTED
+index d665961..e952c17 100644
+--- a/localedata/SUPPORTED
++++ b/localedata/SUPPORTED
+@@ -46,8 +46,8 @@ ar_TN.UTF-8/UTF-8 \
+ ar_TN/ISO-8859-6 \
+ ar_YE.UTF-8/UTF-8 \
+ ar_YE/ISO-8859-6 \
+-az_AZ.UTF-8/UTF-8 \
+-as_IN.UTF-8/UTF-8 \
++az_AZ/UTF-8 \
++as_IN/UTF-8 \
+ ast_ES.UTF-8/UTF-8 \
+ ast_ES/ISO-8859-15 \
+ be_BY.UTF-8/UTF-8 \
+@@ -385,8 +385,8 @@ tr_CY/ISO-8859-9 \
+ tr_TR.UTF-8/UTF-8 \
+ tr_TR/ISO-8859-9 \
+ ts_ZA/UTF-8 \
+-tt_RU.UTF-8/UTF-8 \
+-tt_RU.UTF-8@iqtelif/UTF-8 \
++tt_RU/UTF-8 \
++tt_RU@iqtelif/UTF-8 \
+ ug_CN/UTF-8 \
+ uk_UA.UTF-8/UTF-8 \
+ uk_UA/KOI8-U \
diff --git a/src/patches/glibc/glibc-rh750531.patch b/src/patches/glibc/glibc-rh750531.patch
new file mode 100644 (file)
index 0000000..a53e770
--- /dev/null
@@ -0,0 +1,122 @@
+commit 69da074d7adfab7b57004a0dea9403a928e310a5
+Author: Ulrich Drepper <drepper@gmail.com>
+Date:   Wed Nov 10 02:38:35 2010 -0500
+
+    Fix warnings in __bswap_16.
+
+diff --git a/sysdeps/i386/bits/byteswap.h b/sysdeps/i386/bits/byteswap.h
+index 1f3fc5e..c246ae8 100644
+--- a/sysdeps/i386/bits/byteswap.h
++++ b/sysdeps/i386/bits/byteswap.h
+@@ -1,5 +1,5 @@
+ /* Macros to swap the order of bytes in integer values.
+-   Copyright (C) 1997, 1998, 2000, 2002, 2003, 2006, 2007, 2008
++   Copyright (C) 1997, 1998, 2000, 2002, 2003, 2006, 2007, 2008, 2010
+    Free Software Foundation, Inc.
+    This file is part of the GNU C Library.
+@@ -27,26 +27,27 @@
+ /* Swap bytes in 16 bit value.  */
+ #define __bswap_constant_16(x) \
+-     ((((x) >> 8) & 0xff) | (((x) & 0xff) << 8))
++     ((unsigned short int) ((((x) >> 8) & 0xff) | (((x) & 0xff) << 8)))
+ #ifdef __GNUC__
+ # if __GNUC__ >= 2
+ #  define __bswap_16(x) \
+      (__extension__                                                         \
+-      ({ register unsigned short int __v, __x = (x);                        \
++      ({ register unsigned short int __v, __x = (unsigned short int) (x);     \
+        if (__builtin_constant_p (__x))                                      \
+          __v = __bswap_constant_16 (__x);                                   \
+        else                                                                 \
+          __asm__ ("rorw $8, %w0"                                            \
+                   : "=r" (__v)                                              \
+-                  : "0" (__x)                                               \
+-                  : "cc");                                                  \
++                  : "0" (__x)                                               \
++                  : "cc");                                                  \
+        __v; }))
+ # else
+ /* This is better than nothing.  */
+ #  define __bswap_16(x) \
+      (__extension__                                                         \
+-      ({ register unsigned short int __x = (x); __bswap_constant_16 (__x); }))
++      ({ register unsigned short int __x = (unsigned short int) (x);        \
++       __bswap_constant_16 (__x); }))
+ # endif
+ #else
+ static __inline unsigned short int
+@@ -122,7 +123,7 @@ __bswap_32 (unsigned int __bsx)
+      (__extension__                                                         \
+       ({ union { __extension__ unsigned long long int __ll;                 \
+                unsigned long int __l[2]; } __w, __r;                        \
+-         if (__builtin_constant_p (x))                                              \
++       if (__builtin_constant_p (x))                                        \
+          __r.__ll = __bswap_constant_64 (x);                                \
+        else                                                                 \
+          {                                                                  \
+diff --git a/sysdeps/x86_64/bits/byteswap.h b/sysdeps/x86_64/bits/byteswap.h
+index 08b38e8..e350fb8 100644
+--- a/sysdeps/x86_64/bits/byteswap.h
++++ b/sysdeps/x86_64/bits/byteswap.h
+@@ -1,5 +1,5 @@
+ /* Macros to swap the order of bytes in integer values.
+-   Copyright (C) 1997, 1998, 2000, 2002, 2003, 2007, 2008
++   Copyright (C) 1997, 1998, 2000, 2002, 2003, 2007, 2008, 2010
+    Free Software Foundation, Inc.
+    This file is part of the GNU C Library.
+@@ -29,12 +29,12 @@
+ /* Swap bytes in 16 bit value.  */
+ #define __bswap_constant_16(x) \
+-     ((((x) >> 8) & 0xff) | (((x) & 0xff) << 8))
++     ((unsigned short int) ((((x) >> 8) & 0xff) | (((x) & 0xff) << 8)))
+ #if defined __GNUC__ && __GNUC__ >= 2
+ # define __bswap_16(x) \
+      (__extension__                                                         \
+-      ({ register unsigned short int __v, __x = (x);                        \
++      ({ register unsigned short int __v, __x = (unsigned short int) (x);     \
+        if (__builtin_constant_p (__x))                                      \
+          __v = __bswap_constant_16 (__x);                                   \
+        else                                                                 \
+@@ -47,7 +47,8 @@
+ /* This is better than nothing.  */
+ # define __bswap_16(x) \
+      (__extension__                                                         \
+-      ({ register unsigned short int __x = (x); __bswap_constant_16 (__x); }))
++      ({ register unsigned short int __x = (unsigned short int) (x);          \
++       __bswap_constant_16 (__x); }))
+ #endif
+@@ -120,16 +121,16 @@
+ #  define __bswap_64(x) \
+      (__extension__                                                           \
+       ({ union { __extension__ unsigned long long int __ll;                   \
+-                 unsigned int __l[2]; } __w, __r;                             \
+-         if (__builtin_constant_p (x))                                        \
+-           __r.__ll = __bswap_constant_64 (x);                                \
+-         else                                                                 \
+-           {                                                                  \
+-             __w.__ll = (x);                                                  \
+-             __r.__l[0] = __bswap_32 (__w.__l[1]);                            \
+-             __r.__l[1] = __bswap_32 (__w.__l[0]);                            \
+-           }                                                                  \
+-         __r.__ll; }))
++               unsigned int __l[2]; } __w, __r;                             \
++       if (__builtin_constant_p (x))                                        \
++         __r.__ll = __bswap_constant_64 (x);                                \
++       else                                                                 \
++         {                                                                  \
++           __w.__ll = (x);                                                  \
++           __r.__l[0] = __bswap_32 (__w.__l[1]);                            \
++           __r.__l[1] = __bswap_32 (__w.__l[0]);                            \
++         }                                                                  \
++       __r.__ll; }))
+ # endif
+ #endif
diff --git a/src/patches/glibc/glibc-rh751750.patch b/src/patches/glibc/glibc-rh751750.patch
new file mode 100644 (file)
index 0000000..6f9dd12
--- /dev/null
@@ -0,0 +1,28 @@
+commit 7583a88d1c7170caad26966bcea8bfc2c92093ba
+Author: Andreas Schwab <schwab@redhat.com>
+Date:   Mon Nov 7 15:07:31 2011 +0100
+
+    Fix locking in _IO_flush_all_lockp
+
+diff --git a/libio/genops.c b/libio/genops.c
+index 5d21c42..bb40c34 100644
+--- a/libio/genops.c
++++ b/libio/genops.c
+@@ -826,7 +826,7 @@ _IO_flush_all_lockp (int do_lock)
+   int last_stamp;
+ #ifdef _IO_MTSAFE_IO
+-  _IO_cleanup_region_start_noarg (flush_cleanup);
++  __libc_cleanup_region_start (do_lock, flush_cleanup, 0);
+   if (do_lock)
+     _IO_lock_lock (list_all_lock);
+ #endif
+@@ -866,7 +866,7 @@ _IO_flush_all_lockp (int do_lock)
+ #ifdef _IO_MTSAFE_IO
+   if (do_lock)
+     _IO_lock_unlock (list_all_lock);
+-  _IO_cleanup_region_end (0);
++  __libc_cleanup_region_end (0);
+ #endif
+   return result;
diff --git a/src/patches/glibc/glibc-rh752122.patch b/src/patches/glibc/glibc-rh752122.patch
new file mode 100644 (file)
index 0000000..0176dc9
--- /dev/null
@@ -0,0 +1,260 @@
+2011-07-24  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * sysdeps/x86_64/dl-trampoline.S (_dl_runtime_profile): Simplify
+       AVX check.
+
+2011-08-20  Ulrich Drepper  <drepper@gmail.com>
+
+       * sysdeps/x86_64/dl-trampoline.h: If MORE_CODE is defined, restore
+       the CFI state in the end.
+       * sysdeps/x86_64/dl-trampoline.S: Define MORE_CODE before first
+       inclusion of dl-trampoline.h.
+       Based on a patch by Jiri Olsa <jolsa@redhat.com>.
+
+2011-07-23  Ulrich Drepper  <drepper@gmail.com>
+
+       * sysdeps/x86_64/dl-trampoline.S (_dl_runtime_profile): Fix one more
+       typo.
+       (_dl_x86_64_save_sse): Likewise.
+
+2011-07-22  Ulrich Drepper  <drepper@gmail.com>
+
+       * sysdeps/x86_64/dl-trampoline.S (_dl_runtime_profile): Fix test for
+       OSXSAVE.
+       (_dl_x86_64_save_sse): Likewise.
+
+2011-07-21  Andreas Schwab  <schwab@redhat.com>
+
+       * sysdeps/x86_64/dl-trampoline.S (_dl_runtime_profile): Fix last
+       change.
+       (_dl_x86_64_save_sse): Use correct AVX check.
+
+2011-07-20  Ulrich Drepper  <drepper@gmail.com>
+
+       [BZ #13007]
+       * sysdeps/x86_64/dl-trampoline.S (_dl_runtime_profile): More complete
+       check for AVX enablement so that we don't crash with old kernels and
+       new hardware.
+       * elf/tst-audit4.c: Add same checks here.
+       * elf/tst-audit6.c: Likewise.
+
+Index: glibc-2.12-2-gc4ccff1/elf/tst-audit4.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/elf/tst-audit4.c
++++ glibc-2.12-2-gc4ccff1/elf/tst-audit4.c
+@@ -6,16 +6,30 @@
+ #include <cpuid.h>
+ #include <immintrin.h>
++
++static int
++avx_enabled (void)
++{
++  unsigned int eax, ebx, ecx, edx;
++
++  if (__get_cpuid (1, &eax, &ebx, &ecx, &edx) == 0
++      || (ecx & (bit_AVX | bit_OSXSAVE)) != (bit_AVX | bit_OSXSAVE))
++    return 0;
++
++  /* Check the OS has AVX and SSE saving enabled.  */
++  asm ("xgetbv" : "=a" (eax), "=d" (edx) : "c" (0));
++
++  return (eax & 6) == 6;
++}
++
++
+ extern __m256i audit_test (__m256i, __m256i, __m256i, __m256i,
+                          __m256i, __m256i, __m256i, __m256i);
+ int
+ main (void)
+ {
+-  unsigned int eax, ebx, ecx, edx;
+-
+   /* Run AVX test only if AVX is supported.  */
+-  if (__get_cpuid (1, &eax, &ebx, &ecx, &edx)
+-      && (ecx & bit_AVX))
++  if (avx_enabled ())
+     {
+       __m256i ymm = _mm256_setzero_si256 ();
+       __m256i ret = audit_test (ymm, ymm, ymm, ymm, ymm, ymm, ymm, ymm);
+Index: glibc-2.12-2-gc4ccff1/elf/tst-audit6.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/elf/tst-audit6.c
++++ glibc-2.12-2-gc4ccff1/elf/tst-audit6.c
+@@ -8,14 +8,28 @@
+ extern __m128i audit_test (__m128i, __m128i, __m128i, __m128i,
+                          __m128i, __m128i, __m128i, __m128i);
+-int
+-main (void)
++
++static int
++avx_enabled (void)
+ {
+   unsigned int eax, ebx, ecx, edx;
++  if (__get_cpuid (1, &eax, &ebx, &ecx, &edx) == 0
++      || (ecx & (bit_AVX | bit_OSXSAVE)) != (bit_AVX | bit_OSXSAVE))
++    return 0;
++
++  /* Check the OS has AVX and SSE saving enabled.  */
++  asm ("xgetbv" : "=a" (eax), "=d" (edx) : "c" (0));
++
++  return (eax & 6) == 6;
++}
++
++
++int
++main (void)
++{
+   /* Run AVX test only if AVX is supported.  */
+-  if (__get_cpuid (1, &eax, &ebx, &ecx, &edx)
+-      && (ecx & bit_AVX))
++  if (avx_enabled ())
+     {
+       __m128i xmm = _mm_setzero_si128 ();
+       __m128i ret = audit_test (xmm, xmm, xmm, xmm, xmm, xmm, xmm, xmm);
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/dl-trampoline.S
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/dl-trampoline.S
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/dl-trampoline.S
+@@ -139,24 +139,31 @@ L(have_avx):
+       movl    $1, %eax
+       cpuid
+       movq    %r11,%rbx               # Restore rbx
+-      movl    $1, %eax
+-      testl   $(1 << 28), %ecx
++      xorl    %eax, %eax
++      // AVX and XSAVE supported?
++      andl    $((1 << 28) | (1 << 27)), %ecx
++      cmpl    $((1 << 28) | (1 << 27)), %ecx
+       jne     2f
+-      negl    %eax
+-2:    movl    %eax, L(have_avx)(%rip)
++      xorl    %ecx, %ecx
++      // Get XFEATURE_ENABLED_MASK
++      xgetbv
++      andl    $0x6, %eax
++2:    subl    $0x5, %eax
++      movl    %eax, L(have_avx)(%rip)
+       cmpl    $0, %eax
+ 1:    js      L(no_avx)
+ #  define RESTORE_AVX
++#  define MORE_CODE
+ #  include "dl-trampoline.h"
+       .align 16
+ L(no_avx):
+ # endif
+-#  undef RESTORE_AVX
+-#  include "dl-trampoline.h"
++# undef RESTORE_AVX
++# include "dl-trampoline.h"
+       cfi_endproc
+       .size _dl_runtime_profile, .-_dl_runtime_profile
+@@ -176,11 +183,20 @@ _dl_x86_64_save_sse:
+       movl    $1, %eax
+       cpuid
+       movq    %r11,%rbx               # Restore rbx
+-      movl    $1, %eax
+-      testl   $(1 << 28), %ecx
++      xorl    %eax, %eax
++      // AVX and XSAVE supported?
++      andl    $((1 << 28) | (1 << 27)), %ecx
++      cmpl    $((1 << 28) | (1 << 27)), %ecx
+       jne     2f
+-      negl    %eax
+-2:    movl    %eax, L(have_avx)(%rip)
++      xorl    %ecx, %ecx
++      // Get XFEATURE_ENABLED_MASK
++      xgetbv
++      andl    $0x6, %eax
++      cmpl    $0x6, %eax
++      // Nonzero if SSE and AVX state saving is enabled.
++      sete    %al
++2:    leal    -1(%eax,%eax), %eax
++      movl    %eax, L(have_avx)(%rip)
+       cmpl    $0, %eax
+ 1:    js      L(no_avx5)
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/dl-trampoline.h
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/dl-trampoline.h
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/dl-trampoline.h
+@@ -195,14 +195,14 @@
+          _dl_call_pltexit.  The La_x86_64_regs is being pointed by rsp now,
+          so we just need to allocate the sizeof(La_x86_64_retval) space on
+          the stack, since the alignment has already been taken care of. */
+-# ifdef RESTORE_AVX
++#ifdef RESTORE_AVX
+       /* sizeof(La_x86_64_retval).  Need extra space for 2 SSE
+          registers to detect if xmm0/xmm1 registers are changed
+          by audit module.  */
+       subq $(LRV_SIZE + XMM_SIZE*2), %rsp
+-# else
++#else
+       subq $LRV_SIZE, %rsp    # sizeof(La_x86_64_retval)
+-# endif
++#endif
+       movq %rsp, %rcx         # La_x86_64_retval argument to %rcx.
+       /* Fill in the La_x86_64_retval structure.  */
+@@ -212,7 +212,7 @@
+       movaps %xmm0, LRV_XMM0_OFFSET(%rcx)
+       movaps %xmm1, LRV_XMM1_OFFSET(%rcx)
+-# ifdef RESTORE_AVX
++#ifdef RESTORE_AVX
+       /* This is to support AVX audit modules.  */
+       vmovdqu %ymm0, LRV_VECTOR0_OFFSET(%rcx)
+       vmovdqu %ymm1, LRV_VECTOR1_OFFSET(%rcx)
+@@ -221,14 +221,14 @@
+          by audit module.  */
+       vmovdqa %xmm0,            (LRV_SIZE)(%rcx)
+       vmovdqa %xmm1, (LRV_SIZE + XMM_SIZE)(%rcx)
+-# endif
++#endif
+       fstpt LRV_ST0_OFFSET(%rcx)
+       fstpt LRV_ST1_OFFSET(%rcx)
+       movq 24(%rbx), %rdx     # La_x86_64_regs argument to %rdx.
+       movq 40(%rbx), %rsi     # Copy args pushed by PLT in register.
+-        movq 32(%rbx), %rdi   # %rdi: link_map, %rsi: reloc_index
++      movq 32(%rbx), %rdi     # %rdi: link_map, %rsi: reloc_index
+       call _dl_call_pltexit
+       /* Restore return registers.  */
+@@ -238,7 +238,7 @@
+       movaps LRV_XMM0_OFFSET(%rsp), %xmm0
+       movaps LRV_XMM1_OFFSET(%rsp), %xmm1
+-# ifdef RESTORE_AVX
++#ifdef RESTORE_AVX
+       /* Check if xmm0/xmm1 registers are changed by audit module.  */
+       vpcmpeqq (LRV_SIZE)(%rsp), %xmm0, %xmm2
+       vpmovmskb %xmm2, %esi
+@@ -253,7 +253,7 @@
+       vmovdqu LRV_VECTOR1_OFFSET(%rsp), %ymm1
+ 1:
+-# endif
++#endif
+       fldt LRV_ST1_OFFSET(%rsp)
+       fldt LRV_ST0_OFFSET(%rsp)
+@@ -267,3 +267,10 @@
+                               # (eats the reloc index and link_map)
+       cfi_adjust_cfa_offset(-48)
+       retq
++
++#ifdef MORE_CODE
++      cfi_adjust_cfa_offset(48)
++      cfi_rel_offset(%rbx, 0)
++      cfi_def_cfa_register(%rbx)
++# undef MORE_CODE
++#endif
diff --git a/src/patches/glibc/glibc-rh757888.patch b/src/patches/glibc/glibc-rh757888.patch
new file mode 100644 (file)
index 0000000..721d4a4
--- /dev/null
@@ -0,0 +1,225 @@
+commit f3a6cc0a560a17f32a3e90d2f20501a53cab6058
+Author: Andreas Schwab <schwab@redhat.com>
+Date:   Tue Nov 29 10:52:22 2011 +0100
+
+    Fix access after end of search string in regex matcher
+
+diff --git a/locale/weight.h b/locale/weight.h
+index dc70a00..967e176 100644
+--- a/locale/weight.h
++++ b/locale/weight.h
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 1996,1997,1998,1999,2000,2003,2004 Free Software Foundation, Inc.
++/* Copyright (C) 1996,1997,1998,1999,2000,2003,2004,2011 Free Software Foundation, Inc.
+    This file is part of the GNU C Library.
+    Written by Ulrich Drepper, <drepper@cygnus.com>.
+@@ -20,7 +20,7 @@
+ /* Find index of weight.  */
+ auto inline int32_t
+ __attribute ((always_inline))
+-findidx (const unsigned char **cpp)
++findidx (const unsigned char **cpp, size_t len)
+ {
+   int_fast32_t i = table[*(*cpp)++];
+   const unsigned char *cp;
+@@ -34,6 +34,7 @@ findidx (const unsigned char **cpp)
+      Search for the correct one.  */
+   cp = &extra[-i];
+   usrc = *cpp;
++  --len;
+   while (1)
+     {
+       size_t nhere;
+@@ -56,7 +57,7 @@ findidx (const unsigned char **cpp)
+            already.  */
+         size_t cnt;
+-        for (cnt = 0; cnt < nhere; ++cnt)
++        for (cnt = 0; cnt < nhere && cnt < len; ++cnt)
+           if (cp[cnt] != usrc[cnt])
+             break;
+@@ -79,13 +80,13 @@ findidx (const unsigned char **cpp)
+         size_t cnt;
+         size_t offset = 0;
+-        for (cnt = 0; cnt < nhere; ++cnt)
++        for (cnt = 0; cnt < nhere && cnt < len; ++cnt)
+           if (cp[cnt] != usrc[cnt])
+             break;
+         if (cnt != nhere)
+           {
+-            if (cp[cnt] > usrc[cnt])
++            if (cnt == len || cp[cnt] > usrc[cnt])
+               {
+                 /* Cannot be in this range.  */
+                 cp += 2 * nhere;
+diff --git a/locale/weightwc.h b/locale/weightwc.h
+index 9ea1126..7862091 100644
+--- a/locale/weightwc.h
++++ b/locale/weightwc.h
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 1996-2001,2003,2004,2005,2007 Free Software Foundation, Inc.
++/* Copyright (C) 1996-2001,2003,2004,2005,2007,2011 Free Software Foundation, Inc.
+    This file is part of the GNU C Library.
+    Written by Ulrich Drepper, <drepper@cygnus.com>.
+@@ -20,7 +20,7 @@
+ /* Find index of weight.  */
+ auto inline int32_t
+ __attribute ((always_inline))
+-findidx (const wint_t **cpp)
++findidx (const wint_t **cpp, size_t len)
+ {
+   wint_t ch = *(*cpp)++;
+   int32_t i = __collidx_table_lookup ((const char *) table, ch);
+@@ -32,6 +32,7 @@ findidx (const wint_t **cpp)
+   /* Oh well, more than one sequence starting with this byte.
+      Search for the correct one.  */
+   const int32_t *cp = (const int32_t *) &extra[-i];
++  --len;
+   while (1)
+     {
+       size_t nhere;
+@@ -54,7 +55,7 @@ findidx (const wint_t **cpp)
+            already.  */
+         size_t cnt;
+-        for (cnt = 0; cnt < nhere; ++cnt)
++        for (cnt = 0; cnt < nhere && cnt < len; ++cnt)
+           if (cp[cnt] != usrc[cnt])
+             break;
+@@ -75,7 +76,7 @@ findidx (const wint_t **cpp)
+         size_t cnt;
+         size_t offset;
+-        for (cnt = 0; cnt < nhere - 1; ++cnt)
++        for (cnt = 0; cnt < nhere - 1 && cnt < len; ++cnt)
+           if (cp[cnt] != usrc[cnt])
+             break;
+diff --git a/posix/fnmatch_loop.c b/posix/fnmatch_loop.c
+index 18a6667..72bd3ee 100644
+--- a/posix/fnmatch_loop.c
++++ b/posix/fnmatch_loop.c
+@@ -412,7 +412,7 @@ FCT (pattern, string, string_end, no_leading_period, flags, ends, alloca_used)
+                         _NL_CURRENT (LC_COLLATE, _NL_COLLATE_INDIRECTMB);
+ # endif
+-                      idx = findidx (&cp);
++                      idx = findidx (&cp, 1);
+                       if (idx != 0)
+                         {
+                           /* We found a table entry.  Now see whether the
+@@ -422,7 +422,7 @@ FCT (pattern, string, string_end, no_leading_period, flags, ends, alloca_used)
+                           int32_t idx2;
+                           const UCHAR *np = (const UCHAR *) n;
+-                          idx2 = findidx (&np);
++                          idx2 = findidx (&np, string_end - n);
+                           if (idx2 != 0
+                               && (idx >> 24) == (idx2 >> 24)
+                               && len == weights[idx2 & 0xffffff])
+diff --git a/posix/regcomp.c b/posix/regcomp.c
+index b238c08..34ee845 100644
+--- a/posix/regcomp.c
++++ b/posix/regcomp.c
+@@ -1,5 +1,5 @@
+ /* Extended regular expression matching and search library.
+-   Copyright (C) 2002-2007,2009,2010 Free Software Foundation, Inc.
++   Copyright (C) 2002-2007,2009,2010,2011 Free Software Foundation, Inc.
+    This file is part of the GNU C Library.
+    Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
+@@ -3409,19 +3409,18 @@ build_equiv_class (bitset_t sbcset, const unsigned char *name)
+                                                  _NL_COLLATE_EXTRAMB);
+       indirect = (const int32_t *) _NL_CURRENT (LC_COLLATE,
+                                               _NL_COLLATE_INDIRECTMB);
+-      idx1 = findidx (&cp);
+-      if (BE (idx1 == 0 || cp < name + strlen ((const char *) name), 0))
++      idx1 = findidx (&cp, -1);
++      if (BE (idx1 == 0 || *cp != '\0', 0))
+       /* This isn't a valid character.  */
+       return REG_ECOLLATE;
+       /* Build single byte matcing table for this equivalence class.  */
+-      char_buf[1] = (unsigned char) '\0';
+       len = weights[idx1 & 0xffffff];
+       for (ch = 0; ch < SBC_MAX; ++ch)
+       {
+         char_buf[0] = ch;
+         cp = char_buf;
+-        idx2 = findidx (&cp);
++        idx2 = findidx (&cp, 1);
+ /*
+         idx2 = table[ch];
+ */
+
+--- a/posix/regex_internal.h   2011-11-30 12:47:02.706567482 -0700
++++ a/posix/regex_internal.h   2011-11-30 12:47:32.969558337 -0700
+@@ -756,7 +756,7 @@
+       indirect = (const int32_t *) _NL_CURRENT (LC_COLLATE,
+                                               _NL_COLLATE_INDIRECTMB);
+       p = pstr->mbs + idx;
+-      tmp = findidx (&p);
++      tmp = findidx (&p, pstr->len - idx);
+       return p - pstr->mbs - idx;
+     }
+   else
+diff --git a/posix/regexec.c b/posix/regexec.c
+index 9e0c565..3ea810b 100644
+--- a/posix/regexec.c
++++ b/posix/regexec.c
+@@ -3924,7 +3924,7 @@ check_node_accept_bytes (const re_dfa_t *dfa, int node_idx,
+               _NL_CURRENT (LC_COLLATE, _NL_COLLATE_EXTRAMB);
+             indirect = (const int32_t *)
+               _NL_CURRENT (LC_COLLATE, _NL_COLLATE_INDIRECTMB);
+-            int32_t idx = findidx (&cp);
++            int32_t idx = findidx (&cp, elem_len);
+             if (idx > 0)
+               for (i = 0; i < cset->nequiv_classes; ++i)
+                 {
+diff --git a/string/strcoll_l.c b/string/strcoll_l.c
+index d8d1139..fb77d08 100644
+--- a/string/strcoll_l.c
++++ b/string/strcoll_l.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 1995-1997,2002,2004,2007,2010 Free Software Foundation, Inc.
++/* Copyright (C) 1995-1997,2002,2004,2007,2010,2011 Free Software Foundation, Inc.
+    This file is part of the GNU C Library.
+    Written by Ulrich Drepper <drepper@gnu.org>, 1995.
+@@ -205,7 +205,7 @@ STRCOLL (s1, s2, l)
+               while (*us1 != L('\0'))
+                 {
+-                  int32_t tmp = findidx (&us1);
++                  int32_t tmp = findidx (&us1, -1);
+                   rule1arr[idx1max] = tmp >> 24;
+                   idx1arr[idx1max] = tmp & 0xffffff;
+                   idx1cnt = idx1max++;
+@@ -267,7 +267,7 @@ STRCOLL (s1, s2, l)
+               while (*us2 != L('\0'))
+                 {
+-                  int32_t tmp = findidx (&us2);
++                  int32_t tmp = findidx (&us2, -1);
+                   rule2arr[idx2max] = tmp >> 24;
+                   idx2arr[idx2max] = tmp & 0xffffff;
+                   idx2cnt = idx2max++;
+diff --git a/string/strxfrm_l.c b/string/strxfrm_l.c
+index 220253c..b06556d 100644
+--- a/string/strxfrm_l.c
++++ b/string/strxfrm_l.c
+@@ -176,7 +176,7 @@ STRXFRM (STRING_TYPE *dest, const STRING_TYPE *src, size_t n, __locale_t l)
+   idxmax = 0;
+   do
+     {
+-      int32_t tmp = findidx (&usrc);
++      int32_t tmp = findidx (&usrc, -1);
+       rulearr[idxmax] = tmp >> 24;
+       idxarr[idxmax] = tmp & 0xffffff;
diff --git a/src/patches/glibc/glibc-rh766513.patch b/src/patches/glibc/glibc-rh766513.patch
new file mode 100644 (file)
index 0000000..3f629b4
--- /dev/null
@@ -0,0 +1,14 @@
+diff -rup a/po/ja.po b/po/ja.po
+--- a/po/ja.po 2010-05-04 05:27:23.000000000 -0600
++++ b/po/ja.po 2012-02-07 12:21:03.023806370 -0700
+@@ -3549,8 +3549,8 @@ msgstr "%s: ÉÔÀµ¤Ê¥ª¥×¥·¥ç¥ó¤Ç¤¹ -- %c\n
+ #: posix/getopt.c:945 posix/getopt.c:948
+ #, c-format
+-msgid "%s: invalid option -- %c\n"
+-msgstr "%s: ¥ª¥×¥·¥ç¥ó¤¬°ã¤¤¤Þ¤¹ -- %c\n"
++msgid "%s: invalid option -- '%c'\n"
++msgstr "%s: ¥ª¥×¥·¥ç¥ó¤¬°ã¤¤¤Þ¤¹ -- '%c'\n"
+ #: posix/getopt.c:1003 posix/getopt.c:1022 posix/getopt.c:1234
+ #: posix/getopt.c:1255
diff --git a/src/patches/glibc/glibc-rh767146.patch b/src/patches/glibc/glibc-rh767146.patch
new file mode 100644 (file)
index 0000000..8252062
--- /dev/null
@@ -0,0 +1,21 @@
+diff -rup a/elf/dl-load.c b/elf/dl-load.c
+--- a/elf/dl-load.c    2012-02-03 10:59:58.917870716 -0700
++++ b/elf/dl-load.c    2012-02-03 11:01:01.796580644 -0700
+@@ -1130,6 +1130,16 @@ _dl_map_object_from_fd (const char *name
+               = N_("ELF load command address/offset not properly aligned");
+             goto call_lose;
+           }
++        if (__builtin_expect ((ph->p_offset + ph->p_filesz > st.st_size), 0))
++          {
++            /* If the segment requires zeroing of part of its last
++               page, we'll crash when accessing the unmapped page.
++               There's still a possibility of a race, if the shared
++               object is truncated between the fxstat above and the
++               memset below.  */
++            errstring = N_("ELF load command past end of file");
++            goto call_lose;
++          }
+         c = &loadcmds[nloadcmds++];
+         c->mapstart = ph->p_vaddr & ~(GLRO(dl_pagesize) - 1);
+Only in b/elf: dl-load.c.orig
diff --git a/src/patches/glibc/glibc-rh767693-2.patch b/src/patches/glibc/glibc-rh767693-2.patch
new file mode 100644 (file)
index 0000000..4418ac6
--- /dev/null
@@ -0,0 +1,79 @@
+Index: glibc-2.5-20061008T1257/sunrpc/svc_tcp.c
+===================================================================
+--- glibc-2.5-20061008T1257.orig/sunrpc/svc_tcp.c
++++ glibc-2.5-20061008T1257/sunrpc/svc_tcp.c
+@@ -50,6 +50,7 @@ static char sccsid[] = "@(#)svc_tcp.c 1.
+ #include <sys/poll.h>
+ #include <errno.h>
+ #include <stdlib.h>
++#include <time.h>
+ #ifdef USE_IN_LIBIO
+ # include <wchar.h>
+@@ -249,6 +250,11 @@ again:
+     {
+       if (errno == EINTR)
+       goto again;
++      if (errno == EMFILE)
++        {
++          struct timespec ts = { .tv_sec = 0, .tv_nsec = 50000000 };
++          __nanosleep(&ts , NULL);
++        }
+       return FALSE;
+     }
+   /*
+Index: glibc-2.5-20061008T1257/sunrpc/svc_udp.c
+===================================================================
+--- glibc-2.5-20061008T1257.orig/sunrpc/svc_udp.c
++++ glibc-2.5-20061008T1257/sunrpc/svc_udp.c
+@@ -46,6 +46,7 @@ static char sccsid[] = "@(#)svc_udp.c 1.
+ #include <sys/socket.h>
+ #include <errno.h>
+ #include <libintl.h>
++#include <time.h>
+ #ifdef IP_PKTINFO
+ #include <sys/uio.h>
+@@ -277,8 +278,16 @@ again:
+                      (int) su->su_iosz, 0,
+                      (struct sockaddr *) &(xprt->xp_raddr), &len);
+   xprt->xp_addrlen = len;
+-  if (rlen == -1 && errno == EINTR)
+-    goto again;
++  if (rlen == -1)
++    {
++      if (errno == EINTR)
++        goto again;
++      if (errno == EMFILE)
++        {
++          struct timespec ts = { .tv_sec = 0, .tv_nsec = 50000000 };
++          __nanosleep(&ts , NULL);
++        }
++    }
+   if (rlen < 16)              /* < 4 32-bit ints? */
+     return FALSE;
+   xdrs->x_op = XDR_DECODE;
+Index: glibc-2.5-20061008T1257/sunrpc/svc_unix.c
+===================================================================
+--- glibc-2.5-20061008T1257.orig/sunrpc/svc_unix.c
++++ glibc-2.5-20061008T1257/sunrpc/svc_unix.c
+@@ -48,6 +48,7 @@
+ #include <errno.h>
+ #include <stdlib.h>
+ #include <libintl.h>
++#include <time.h>
+ #ifdef USE_IN_LIBIO
+ # include <wchar.h>
+@@ -247,6 +248,11 @@ again:
+     {
+       if (errno == EINTR)
+       goto again;
++      if (errno == EMFILE)
++        {
++          struct timespec ts = { .tv_sec = 0, .tv_nsec = 50000000 };
++          __nanosleep(&ts , NULL);
++        }
+       return FALSE;
+     }
+   /*
diff --git a/src/patches/glibc/glibc-rh767693.patch b/src/patches/glibc/glibc-rh767693.patch
new file mode 100644 (file)
index 0000000..8f76beb
--- /dev/null
@@ -0,0 +1,89 @@
+commit 97ac2654b2d831acaa18a2b018b0736245903fd2
+Author: Ulrich Drepper <drepper@gmail.com>
+Date:   Sat Dec 17 20:18:42 2011 -0500
+
+    Check values from TZ file header
+
+
+       [BZ #13506]
+       * time/tzfile.c (__tzfile_read): Check values from file header.
+
+diff -ru a/time/tzfile.c b/time/tzfile.c
+--- a/time/tzfile.c    2010-05-04 11:27:23.000000000 +0000
++++ b/time/tzfile.c    2011-12-19 06:39:49.875358578 +0000
+@@ -19,6 +19,7 @@
+ #include <assert.h>
+ #include <limits.h>
++#include <stdint.h>
+ #include <stdio.h>
+ #include <stdio_ext.h>
+ #include <stdlib.h>
+@@ -234,23 +235,58 @@
+       goto read_again;
+     }
++  if (__builtin_expect (num_transitions
++                      > ((SIZE_MAX - (__alignof__ (struct ttinfo) - 1))
++                         / (sizeof (time_t) + 1)), 0))
++    goto lose;
+   total_size = num_transitions * (sizeof (time_t) + 1);
+   total_size = ((total_size + __alignof__ (struct ttinfo) - 1)
+               & ~(__alignof__ (struct ttinfo) - 1));
+   types_idx = total_size;
+-  total_size += num_types * sizeof (struct ttinfo) + chars;
++  if (__builtin_expect (num_types
++                      > (SIZE_MAX - total_size) / sizeof (struct ttinfo), 0))
++    goto lose;
++  total_size += num_types * sizeof (struct ttinfo);
++  if (__builtin_expect (chars > SIZE_MAX - total_size, 0))
++    goto lose;
++  total_size += chars;
++  if (__builtin_expect (__alignof__ (struct leap) - 1
++                      > SIZE_MAX - total_size, 0))
++    goto lose;
+   total_size = ((total_size + __alignof__ (struct leap) - 1)
+               & ~(__alignof__ (struct leap) - 1));
+   leaps_idx = total_size;
++  if (__builtin_expect (num_leaps
++                      > (SIZE_MAX - total_size) / sizeof (struct leap), 0))
++    goto lose;
+   total_size += num_leaps * sizeof (struct leap);
+-  tzspec_len = (sizeof (time_t) == 8 && trans_width == 8
+-              ? st.st_size - (ftello (f)
+-                              + num_transitions * (8 + 1)
+-                              + num_types * 6
+-                              + chars
+-                              + num_leaps * 12
+-                              + num_isstd
+-                              + num_isgmt) - 1 : 0);
++  tzspec_len = 0;
++  if (sizeof (time_t) == 8 && trans_width == 8)
++    {
++      off_t rem = st.st_size - ftello (f);
++      if (__builtin_expect (rem < 0
++                          || (size_t) rem < (num_transitions * (8 + 1)
++                                             + num_types * 6
++                                             + chars), 0))
++      goto lose;
++      tzspec_len = (size_t) rem - (num_transitions * (8 + 1)
++                                 + num_types * 6
++                                 + chars);
++      if (__builtin_expect (num_leaps > SIZE_MAX / 12
++                          || tzspec_len < num_leaps * 12, 0))
++      goto lose;
++      tzspec_len -= num_leaps * 12;
++      if (__builtin_expect (tzspec_len < num_isstd, 0))
++      goto lose;
++      tzspec_len -= num_isstd;
++      if (__builtin_expect (tzspec_len == 0 || tzspec_len - 1 < num_isgmt, 0))
++      goto lose;
++      tzspec_len -= num_isgmt + 1;
++      if (__builtin_expect (SIZE_MAX - total_size < tzspec_len, 0))
++      goto lose;
++    }
++  if (__builtin_expect (SIZE_MAX - total_size - tzspec_len < extra, 0))
++    goto lose;
+   /* Allocate enough memory including the extra block requested by the
+      caller.  */
diff --git a/src/patches/glibc/glibc-rh767746.patch b/src/patches/glibc/glibc-rh767746.patch
new file mode 100644 (file)
index 0000000..58d96d8
--- /dev/null
@@ -0,0 +1,14 @@
+--- a/nptl/pthread_create.c    2011-12-13 11:41:37.000000000 -0700
++++ b/nptl/pthread_create.c    2011-12-14 10:03:13.000000000 -0700
+@@ -440,8 +440,9 @@
+   int err = ALLOCATE_STACK (iattr, &pd);
+   if (__builtin_expect (err != 0, 0))
+     /* Something went wrong.  Maybe a parameter of the attributes is
+-       invalid or we could not allocate memory.  */
+-    return err;
++       invalid or we could not allocate memory.  Note we have to
++       translate error codes.  */
++    return err == ENOMEM ? EAGAIN : err;
+   /* Initialize the TCB.  All initializations with zero should be
diff --git a/src/patches/glibc/glibc-rh771342.patch b/src/patches/glibc/glibc-rh771342.patch
new file mode 100644 (file)
index 0000000..0a49b8c
--- /dev/null
@@ -0,0 +1,155 @@
+2011-06-30  Ulrich Drepper  <drepper@gmail.com>
+
+       * nptl-init.c (__nptl_set_robust): New function.
+       (pthread_functions): Add reference.
+       * npthreadP.h: Declare __nptl_set_robust.
+       * sysdeps/pthread/pthread-functions.h (pthread_functions): Add
+       ptr_set_robust member.
+       * sysdeps/unix/sysv/linux/fork.c: Call set_robust_list syscall in
+       child if threads are used.
+
+diff -Nrup a/nptl/nptl-init.c b/nptl/nptl-init.c
+--- a/nptl/nptl-init.c 2011-12-20 00:29:54.645538691 -0700
++++ b/nptl/nptl-init.c 2012-01-03 10:18:38.977513783 -0700
+@@ -69,6 +69,13 @@ extern void __libc_setup_tls (size_t tcb
+ #endif
+ #ifdef SHARED
++static
++#else
++extern
++#endif
++void __nptl_set_robust (struct pthread *);
++
++#ifdef SHARED
+ static void nptl_freeres (void);
+@@ -131,13 +138,25 @@ static const struct pthread_functions pt
+     .ptr__nptl_deallocate_tsd = __nptl_deallocate_tsd,
+     .ptr__nptl_setxid = __nptl_setxid,
+     /* For now only the stack cache needs to be freed.  */
+-    .ptr_freeres = nptl_freeres
++    .ptr_freeres = nptl_freeres,
++    .ptr_set_robust = __nptl_set_robust
+   };
+ # define ptr_pthread_functions &pthread_functions
+ #else
+ # define ptr_pthread_functions NULL
+ #endif
++#ifdef SHARED
++static
++#endif
++void
++__nptl_set_robust (struct pthread *self)
++{
++  INTERNAL_SYSCALL_DECL (err);
++  INTERNAL_SYSCALL (set_robust_list, err, 2, &self->robust_head,
++                   sizeof (struct robust_list_head));
++}
++
+ #ifdef SHARED
+ /* This function is called indirectly from the freeres code in libc.  */
+diff -Nrup a/nptl/pthreadP.h b/nptl/pthreadP.h
+--- a/nptl/pthreadP.h  2010-05-04 05:27:23.000000000 -0600
++++ b/nptl/pthreadP.h  2012-01-03 10:12:35.599269269 -0700
+@@ -555,17 +555,20 @@ extern void __pthread_cleanup_pop_restor
+ /* Old cleanup interfaces, still used in libc.so.  */
+ extern void _pthread_cleanup_push (struct _pthread_cleanup_buffer *buffer,
+-                                   void (*routine) (void *), void *arg);
++                                 void (*routine) (void *), void *arg);
+ extern void _pthread_cleanup_pop (struct _pthread_cleanup_buffer *buffer,
+-                                  int execute);
++                                int execute);
+ extern void _pthread_cleanup_push_defer (struct _pthread_cleanup_buffer *buffer,
+-                                         void (*routine) (void *), void *arg);
++                                       void (*routine) (void *), void *arg);
+ extern void _pthread_cleanup_pop_restore (struct _pthread_cleanup_buffer *buffer,
+-                                          int execute);
++                                        int execute);
+ extern void __nptl_deallocate_tsd (void) attribute_hidden;
+ extern int __nptl_setxid (struct xid_command *cmdp) attribute_hidden;
++#ifndef SHARED
++extern void __nptl_set_robust (struct pthread *self);
++#endif
+ extern void __free_stacks (size_t limit) attribute_hidden;
+diff -Nrup a/nptl/sysdeps/pthread/pthread-functions.h b/nptl/sysdeps/pthread/pthread-functions.h
+--- a/nptl/sysdeps/pthread/pthread-functions.h 2010-05-04 05:27:23.000000000 -0600
++++ b/nptl/sysdeps/pthread/pthread-functions.h 2012-01-03 10:12:35.639269301 -0700
+@@ -97,6 +97,7 @@ struct pthread_functions
+   void (*ptr__nptl_deallocate_tsd) (void);
+   int (*ptr__nptl_setxid) (struct xid_command *);
+   void (*ptr_freeres) (void);
++  void (*ptr_set_robust) (struct pthread *);
+ };
+ /* Variable in libc.so.  */
+diff -Nrup a/nptl/sysdeps/unix/sysv/linux/fork.c b/nptl/sysdeps/unix/sysv/linux/fork.c
+--- a/nptl/sysdeps/unix/sysv/linux/fork.c      2010-05-04 05:27:23.000000000 -0600
++++ b/nptl/sysdeps/unix/sysv/linux/fork.c      2012-01-03 10:12:35.649269309 -0700
+@@ -29,6 +29,7 @@
+ #include <ldsodefs.h>
+ #include <bits/stdio-lock.h>
+ #include <atomic.h>
++#include <pthreadP.h>
+ unsigned long int *__fork_generation_pointer;
+@@ -86,8 +87,8 @@ __libc_fork (void)
+        just go away.  The unloading code works in the order of the
+        list.
+-         While executing the registered handlers we are building a
+-         list of all the entries so that we can go backward later on.  */
++       While executing the registered handlers we are building a
++       list of all the entries so that we can go backward later on.  */
+       while (1)
+       {
+         /* Execute the handler if there is one.  */
+@@ -154,6 +155,24 @@ __libc_fork (void)
+       GL(dl_cpuclock_offset) = now;
+ #endif
++#ifdef __NR_set_robust_list
++      /* Initialize the robust mutex list which has been reset during
++       the fork.  We do not check for errors since if it fails here
++       it failed at process start as well and noone could have used
++       robust mutexes.  We also do not have to set
++       self->robust_head.futex_offset since we inherit the correct
++       value from the parent.  */
++# ifdef SHARED
++      if (__libc_pthread_functions.ptr_set_robust != NULL)
++      PTHFCT_CALL (ptr_set_robust, (self));
++# else
++      extern __typeof (__nptl_set_robust) __nptl_set_robust
++      __attribute__((weak));
++      if (__builtin_expect (__nptl_set_robust != NULL, 0))
++      __nptl_set_robust (self);
++# endif
++#endif
++
+       /* Reset the file list.  These are recursive mutexes.  */
+       fresetlockfiles ();
+@@ -170,10 +189,10 @@ __libc_fork (void)
+           allp->handler->child_handler ();
+         /* Note that we do not have to wake any possible waiter.
+-           This is the only thread in the new process.  The count
+-           may have been bumped up by other threads doing a fork.
+-           We reset it to 1, to avoid waiting for non-existing
+-           thread(s) to release the count.  */
++           This is the only thread in the new process.  The count
++           may have been bumped up by other threads doing a fork.
++           We reset it to 1, to avoid waiting for non-existing
++           thread(s) to release the count.  */
+         allp->handler->refcntr = 1;
+         /* XXX We could at this point look through the object pool
diff --git a/src/patches/glibc/glibc-rh782585.patch b/src/patches/glibc/glibc-rh782585.patch
new file mode 100644 (file)
index 0000000..a554d4b
--- /dev/null
@@ -0,0 +1,329 @@
+diff -rup a/elf/dl-close.c b/elf/dl-close.c
+--- a/elf/dl-close.c   2012-01-19 12:59:42.759484350 -0700
++++ b/elf/dl-close.c   2012-01-19 14:10:20.439263806 -0700
+@@ -223,7 +223,7 @@ _dl_close_worker (struct link_map *map)
+     }
+   /* Sort the entries.  */
+-  _dl_sort_fini (ns->_ns_loaded, maps, nloaded, used, nsid);
++  _dl_sort_fini (maps, nloaded, used, nsid);
+   /* Call all termination functions at once.  */
+ #ifdef SHARED
+diff -rup a/elf/dl-deps.c b/elf/dl-deps.c
+--- a/elf/dl-deps.c    2012-01-19 12:59:42.716484301 -0700
++++ b/elf/dl-deps.c    2012-01-19 13:52:35.223720556 -0700
+@@ -614,51 +614,67 @@ Filters not supported with LD_TRACE_PREL
+       map->l_searchlist.r_list[i]->l_reserved = 0;
+     }
+-  /* Now determine the order in which the initialization has to happen.  */
++  /* Sort the initializer list to take dependencies into account.  The binary
++     itself will always be initialize last.  */
+   memcpy (l_initfini, map->l_searchlist.r_list,
+         nlist * sizeof (struct link_map *));
+-  /* We can skip looking for the binary itself which is at the front
+-     of the search list.  Look through the list backward so that circular
+-     dependencies are not changing the order.  */
+-  for (i = 1; i < nlist; ++i)
++  if (__builtin_expect (nlist > 1, 1))
+     {
+-      struct link_map *l = map->l_searchlist.r_list[i];
+-      unsigned int j;
+-      unsigned int k;
+-
+-      /* Find the place in the initfini list where the map is currently
+-       located.  */
+-      for (j = 1; l_initfini[j] != l; ++j)
+-      ;
+-
+-      /* Find all object for which the current one is a dependency and
+-       move the found object (if necessary) in front.  */
+-      for (k = j + 1; k < nlist; ++k)
++      /* We can skip looking for the binary itself which is at the front
++       of the search list.  */
++      i = 1;
++      unsigned int seen[nlist];
++      memset (seen, 0, nlist * sizeof (seen[0]));
++      while (1)
+       {
+-        struct link_map **runp;
+-
+-        runp = l_initfini[k]->l_initfini;
+-        if (runp != NULL)
++        /* Keep track of which object we looked at this round.  */
++        ++seen[i];
++        struct link_map *thisp = l_initfini[i];
++
++        /* Find the last object in the list for which the current one is
++           a dependency and move the current object behind the object
++           with the dependency.  */
++        unsigned int k = nlist - 1;
++        while (k > i)
+           {
+-            while (*runp != NULL)
+-              if (__builtin_expect (*runp++ == l, 0))
+-                {
+-                  struct link_map *here = l_initfini[k];
+-
+-                  /* Move it now.  */
+-                  memmove (&l_initfini[j] + 1, &l_initfini[j],
+-                           (k - j) * sizeof (struct link_map *));
+-                  l_initfini[j] = here;
+-
+-                  /* Don't insert further matches before the last
+-                     entry moved to the front.  */
+-                  ++j;
++            struct link_map **runp = l_initfini[k]->l_initfini;
++            if (runp != NULL)
++              /* Look through the dependencies of the object.  */
++              while (*runp != NULL)
++                if (__builtin_expect (*runp++ == thisp, 0))
++                  {
++                    /* Move the current object to the back past the last
++                       object with it as the dependency.  */
++                    memmove (&l_initfini[i], &l_initfini[i + 1],
++                             (k - i) * sizeof (l_initfini[0]));
++                    l_initfini[k] = thisp;
++
++                    if (seen[i + 1] > nlist - i - 2)
++                      {
++                        ++i;
++                        goto next_clear;
++                      }
++
++                    unsigned int this_seen = seen[i];
++                    memmove (&seen[i], &seen[i + 1],
++                             (k - i) * sizeof (seen[0]));
++                    seen[k] = this_seen;
++
++                    goto next;
++                  }
+-                  break;
+-                }
++            --k;
+           }
++
++        if (++i == nlist)
++          break;
++      next_clear:
++        memset (&seen[i], 0, (nlist - i) * sizeof (seen[0]));
++
++      next:;
+       }
+     }
++
+   /* Terminate the list of dependencies.  */
+   l_initfini[nlist] = NULL;
+   atomic_write_barrier ();
+diff -rup a/elf/dl-fini.c b/elf/dl-fini.c
+--- a/elf/dl-fini.c    2010-05-04 05:27:23.000000000 -0600
++++ b/elf/dl-fini.c    2012-01-19 13:56:38.653842046 -0700
+@@ -1,5 +1,6 @@
+ /* Call the termination functions of loaded shared objects.
+-   Copyright (C) 1995,96,1998-2002,2004-2005,2009 Free Software Foundation, Inc.
++   Copyright (C) 1995,96,1998-2002,2004-2005,2009,2011
++   Free Software Foundation, Inc.
+    This file is part of the GNU C Library.
+    The GNU C Library is free software; you can redistribute it and/or
+@@ -29,89 +30,100 @@ typedef void (*fini_t) (void);
+ void
+ internal_function
+-_dl_sort_fini (struct link_map *l, struct link_map **maps, size_t nmaps,
+-             char *used, Lmid_t ns)
++_dl_sort_fini (struct link_map **maps, size_t nmaps, char *used, Lmid_t ns)
+ {
+-  if (ns == LM_ID_BASE)
+-    /* The main executable always comes first.  */
+-    l = l->l_next;
+-
+-  for (; l != NULL; l = l->l_next)
+-    /* Do not handle ld.so in secondary namespaces and object which
+-       are not removed.  */
+-    if (l == l->l_real && l->l_idx != -1)
+-      {
+-      /* Find the place in the 'maps' array.  */
+-      unsigned int j;
+-      for (j = ns == LM_ID_BASE ? 1 : 0; maps[j] != l; ++j)
+-        assert (j < nmaps);
+-
+-      /* Find all object for which the current one is a dependency
+-         and move the found object (if necessary) in front.  */
+-      for (unsigned int k = j + 1; k < nmaps; ++k)
+-        {
+-          struct link_map **runp = maps[k]->l_initfini;
+-          if (runp != NULL)
+-            {
+-              while (*runp != NULL)
+-                if (*runp == l)
+-                  {
+-                    struct link_map *here = maps[k];
++  /* A list of one element need not be sorted.  */
++  if (nmaps == 1)
++    return;
++
++  /* We can skip looking for the binary itself which is at the front
++     of the search list for the main namespace.  */
++  unsigned int i = ns == LM_ID_BASE;
++  unsigned int seen[nmaps];
++  memset (seen, 0, nmaps * sizeof (seen[0]));
++  while (1)
++    {
++      /* Keep track of which object we looked at this round.  */
++      ++seen[i];
++      struct link_map *thisp = maps[i];
++
++      /* Do not handle ld.so in secondary namespaces and object which
++       are not removed.  */
++      if (thisp != thisp->l_real || thisp->l_idx == -1)
++      goto skip;
++
++      /* Find the last object in the list for which the current one is
++       a dependency and move the current object behind the object
++       with the dependency.  */
++      unsigned int k = nmaps - 1;
++      while (k > i)
++      {
++        struct link_map **runp = maps[k]->l_initfini;
++        if (runp != NULL)
++          /* Look through the dependencies of the object.  */
++          while (*runp != NULL)
++            if (__builtin_expect (*runp++ == thisp, 0))
++              {
++              move:
++                /* Move the current object to the back past the last
++                   object with it as the dependency.  */
++                memmove (&maps[i], &maps[i + 1],
++                         (k - i) * sizeof (maps[0]));
++                maps[k] = thisp;
+-                    /* Move it now.  */
+-                    memmove (&maps[j] + 1,
+-                             &maps[j], (k - j) * sizeof (struct link_map *));
+-                    maps[j] = here;
++                if (used != NULL)
++                  {
++                    char here_used = used[i];
++                    memmove (&used[i], &used[i + 1],
++                             (k - i) * sizeof (used[0]));
++                    used[k] = here_used;
++                  }
+-                    if (used != NULL)
+-                      {
+-                        char here_used = used[k];
++                if (seen[i + 1] > nmaps - i - 2)
++                  {
++                    ++i;
++                    goto next_clear;
++                  }
+-                        memmove (&used[j] + 1,
+-                                 &used[j], (k - j) * sizeof (char));
+-                        used[j] = here_used;
+-                      }
++                unsigned int this_seen = seen[i];
++                memmove (&seen[i], &seen[i + 1], (k - i) * sizeof (seen[0]));
++                seen[k] = this_seen;
+-                    ++j;
++                goto next;
++              }
+-                    break;
+-                  }
+-                else
+-                  ++runp;
+-            }
+-
+-          if (__builtin_expect (maps[k]->l_reldeps != NULL, 0))
+-            {
+-              unsigned int m = maps[k]->l_reldeps->act;
+-              struct link_map **relmaps = &maps[k]->l_reldeps->list[0];
++        if (__builtin_expect (maps[k]->l_reldeps != NULL, 0))
++          {
++            unsigned int m = maps[k]->l_reldeps->act;
++            struct link_map **relmaps = &maps[k]->l_reldeps->list[0];
+-              while (m-- > 0)
++            /* Look through the relocation dependencies of the object.  */
++            while (m-- > 0)
++              if (__builtin_expect (relmaps[m] == thisp, 0))
+                 {
+-                  if (relmaps[m] == l)
+-                    {
+-                      struct link_map *here = maps[k];
+-
+-                      /* Move it now.  */
+-                      memmove (&maps[j] + 1,
+-                               &maps[j],
+-                               (k - j) * sizeof (struct link_map *));
+-                      maps[j] = here;
+-
+-                      if (used != NULL)
+-                        {
+-                          char here_used = used[k];
+-
+-                          memmove (&used[j] + 1,
+-                                   &used[j], (k - j) * sizeof (char));
+-                          used[j] = here_used;
+-                        }
+-
+-                      break;
+-                    }
++                  /* If a cycle exists with a link time dependency,
++                     preserve the latter.  */
++                  struct link_map **runp = thisp->l_initfini;
++                  if (runp != NULL)
++                    while (*runp != NULL)
++                      if (__builtin_expect (*runp++ == maps[k], 0))
++                        goto ignore;
++                  goto move;
+                 }
+-            }
+-        }
+-      }
++          ignore:;
++          }
++
++        --k;
++      }
++
++    skip:
++      if (++i == nmaps)
++      break;
++    next_clear:
++      memset (&seen[i], 0, (nmaps - i) * sizeof (seen[0]));
++
++    next:;
++    }
+ }
+@@ -196,9 +208,8 @@ _dl_fini (void)
+       assert (ns == LM_ID_BASE || i == nloaded || i == nloaded - 1);
+       nmaps = i;
+-      if (nmaps != 0)
+-      /* Now we have to do the sorting.  */
+-      _dl_sort_fini (GL(dl_ns)[ns]._ns_loaded, maps, nmaps, NULL, ns);
++      /* Now we have to do the sorting.  */
++      _dl_sort_fini (maps, nmaps, NULL, ns);
+       /* We do not rely on the linked list of loaded object anymore from
+        this point on.  We have our own list here (maps).  The various
+diff -rup a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h
+--- a/sysdeps/generic/ldsodefs.h       2012-01-19 12:59:42.446483997 -0700
++++ b/sysdeps/generic/ldsodefs.h       2012-01-19 14:16:36.242453532 -0700
+@@ -947,7 +947,7 @@ extern void _dl_init (struct link_map *m
+ extern void _dl_fini (void) internal_function;
+ /* Sort array MAPS according to dependencies of the contained objects.  */
+-extern void _dl_sort_fini (struct link_map *l, struct link_map **maps,
++extern void _dl_sort_fini (struct link_map **maps,
+                          size_t nmaps, char *used, Lmid_t ns)
+      internal_function;
diff --git a/src/patches/glibc/glibc-rh784402.patch b/src/patches/glibc/glibc-rh784402.patch
new file mode 100644 (file)
index 0000000..d75773e
--- /dev/null
@@ -0,0 +1,166 @@
+commit 3e1aa84e7f9f38815f5db9cd7654b1a9497cf6e4
+Author: Ulrich Drepper <drepper@gmail.com>
+Date:   Fri Jan 20 22:39:54 2012 -0500
+
+    Do not cache negative results in nscd if these are transient
+
+diff -rup a/nscd/aicache.c b/nscd/aicache.c
+--- a/nscd/aicache.c   2012-01-24 20:32:58.906826425 -0700
++++ b/nscd/aicache.c   2012-01-24 20:42:17.663968882 -0700
+@@ -511,9 +511,17 @@ next_nip:
+       if (fd != -1)
+       TEMP_FAILURE_RETRY (send (fd, &notfound, total, MSG_NOSIGNAL));
+-      dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, 1);
+-      /* If we cannot permanently store the result, so be it.  */
+-      if (dataset != NULL)
++      /* If we have a transient error or cannot permanently store the
++       result, so be it.  */
++      if (rc4 == EAGAIN || __builtin_expect (db->negtimeout == 0, 0))
++      {
++        /* Mark the old entry as obsolete.  */
++        if (dh != NULL)
++          dh->usable = false;
++        dataset = NULL;
++      }
++      else if ((dataset = mempool_alloc (db, (sizeof (struct dataset)
++                                            + req->key_len), 1)) != NULL)
+       {
+         dataset->head.allocsize = sizeof (struct dataset) + req->key_len;
+         dataset->head.recsize = total;
+diff -rup a/nscd/grpcache.c b/nscd/grpcache.c
+--- a/nscd/grpcache.c  2012-01-24 20:32:58.910826427 -0700
++++ b/nscd/grpcache.c  2012-01-24 20:42:17.666968883 -0700
+@@ -114,13 +114,21 @@ cache_addgr (struct database_dyn *db, in
+            case.  */
+         total = sizeof (notfound);
+-        written = TEMP_FAILURE_RETRY (send (fd, &notfound, total,
+-                                            MSG_NOSIGNAL));
++        if (fd != -1)
++          written = TEMP_FAILURE_RETRY (send (fd, &notfound, total,
++                                              MSG_NOSIGNAL));
++        else
++          written = total;
+-        dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len,
+-                                 1);
+-        /* If we cannot permanently store the result, so be it.  */
+-        if (dataset != NULL)
++        /* If we have a transient error or cannot permanently store
++           the result, so be it.  */
++        if (errno == EAGAIN || __builtin_expect (db->negtimeout == 0, 0))
++          {
++            /* Mark the old entry as obsolete.  */
++            if (dh != NULL)
++              dh->usable = false;
++          }
++        else if ((dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, 1)) != NULL)
+           {
+             dataset->head.allocsize = sizeof (struct dataset) + req->key_len;
+             dataset->head.recsize = total;
+diff -rup a/nscd/hstcache.c b/nscd/hstcache.c
+--- a/nscd/hstcache.c  2012-01-24 20:32:58.911826427 -0700
++++ b/nscd/hstcache.c  2012-01-24 20:42:17.668968883 -0700
+@@ -141,10 +141,16 @@ cache_addhst (struct database_dyn *db, i
+                                       MSG_NOSIGNAL)) != total)
+           all_written = false;
+-        dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len,
+-                                 1);
+-        /* If we cannot permanently store the result, so be it.  */
+-        if (dataset != NULL)
++        /* If we have a transient error or cannot permanently store
++           the result, so be it.  */
++        if (errval == EAGAIN || __builtin_expect (db->negtimeout == 0, 0))
++          {
++            /* Mark the old entry as obsolete.  */
++            if (dh != NULL)
++              dh->usable = false;
++          }
++        else if ((dataset = mempool_alloc (db, (sizeof (struct dataset)
++                                                + req->key_len), 1)) != NULL)
+           {
+             dataset->head.allocsize = sizeof (struct dataset) + req->key_len;
+             dataset->head.recsize = total;
+diff -rup a/nscd/initgrcache.c b/nscd/initgrcache.c
+--- a/nscd/initgrcache.c       2012-01-24 20:32:58.912826427 -0700
++++ b/nscd/initgrcache.c       2012-01-24 20:42:17.671968883 -0700
+@@ -202,10 +202,16 @@ addinitgroupsX (struct database_dyn *db,
+           written = TEMP_FAILURE_RETRY (send (fd, &notfound, total,
+                                               MSG_NOSIGNAL));
+-        dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len,
+-                                 1);
+-        /* If we cannot permanently store the result, so be it.  */
+-        if (dataset != NULL)
++        /* If we have a transient error or cannot permanently store
++           the result, so be it.  */
++        if (all_tryagain || __builtin_expect (db->negtimeout == 0, 0))
++          {
++            /* Mark the old entry as obsolete.  */
++            if (dh != NULL)
++              dh->usable = false;
++          }
++        else if ((dataset = mempool_alloc (db, (sizeof (struct dataset)
++                                                + req->key_len), 1)) != NULL)
+           {
+             dataset->head.allocsize = sizeof (struct dataset) + req->key_len;
+             dataset->head.recsize = total;
+diff -rup a/nscd/pwdcache.c b/nscd/pwdcache.c
+--- a/nscd/pwdcache.c  2012-01-24 20:32:58.914826427 -0700
++++ b/nscd/pwdcache.c  2012-01-24 20:42:17.671968883 -0700
+@@ -124,10 +124,16 @@ cache_addpw (struct database_dyn *db, in
+           written = TEMP_FAILURE_RETRY (send (fd, &notfound, total,
+                                               MSG_NOSIGNAL));
+-        dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len,
+-                                 1);
+-        /* If we cannot permanently store the result, so be it.  */
+-        if (dataset != NULL)
++        /* If we have a transient error or cannot permanently store
++           the result, so be it.  */
++        if (errno == EAGAIN || __builtin_expect (db->negtimeout == 0, 0))
++          {
++            /* Mark the old entry as obsolete.  */
++            if (dh != NULL)
++              dh->usable = false;
++          }
++        else if ((dataset = mempool_alloc (db, (sizeof (struct dataset)
++                                                + req->key_len), 1)) != NULL)
+           {
+             dataset->head.allocsize = sizeof (struct dataset) + req->key_len;
+             dataset->head.recsize = total;
+diff -rup a/nscd/servicescache.c b/nscd/servicescache.c
+--- a/nscd/servicescache.c     2012-01-24 20:32:58.915826427 -0700
++++ b/nscd/servicescache.c     2012-01-24 20:42:17.672968884 -0700
+@@ -102,15 +102,22 @@ cache_addserv (struct database_dyn *db,
+       {
+         /* We have no data.  This means we send the standard reply for this
+            case.  */
+-        total = sizeof (notfound);
++        written = total = sizeof (notfound);
+-        written = TEMP_FAILURE_RETRY (send (fd, &notfound, total,
+-                                            MSG_NOSIGNAL));
++        if (fd != -1)
++          written = TEMP_FAILURE_RETRY (send (fd, &notfound, total,
++                                              MSG_NOSIGNAL));
+-        dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len,
+-                                 1);
+-        /* If we cannot permanently store the result, so be it.  */
+-        if (dataset != NULL)
++        /* If we have a transient error or cannot permanently store
++           the result, so be it.  */
++        if (errval == EAGAIN || __builtin_expect (db->negtimeout == 0, 0))
++          {
++            /* Mark the old entry as obsolete.  */
++            if (dh != NULL)
++              dh->usable = false;
++          }
++        else if ((dataset = mempool_alloc (db, (sizeof (struct dataset)
++                                                + req->key_len), 1)) != NULL)
+           {
+             dataset->head.allocsize = sizeof (struct dataset) + req->key_len;
+             dataset->head.recsize = total;
diff --git a/src/patches/glibc/glibc-rh785984.patch b/src/patches/glibc/glibc-rh785984.patch
new file mode 100644 (file)
index 0000000..80ba5e8
--- /dev/null
@@ -0,0 +1,20 @@
+diff -rup a/localedata/locales/zh_CN b/localedata/locales/zh_CN
+--- a/localedata/locales/zh_CN 2006-07-30 16:19:43.000000000 -0600
++++ b/localedata/locales/zh_CN 2012-01-30 21:24:46.905115483 -0700
+@@ -108,11 +108,11 @@ day      "<U661F><U671F><U65E5>";/
+       "<U661F><U671F><U4E94>";/
+       "<U661F><U671F><U516D>"
+-abmon "<U0020><U0031><U6708>";"<U0020><U0032><U6708>";/
+-      "<U0020><U0033><U6708>";"<U0020><U0034><U6708>";/
+-      "<U0020><U0035><U6708>";"<U0020><U0036><U6708>";/
+-      "<U0020><U0037><U6708>";"<U0020><U0038><U6708>";/
+-      "<U0020><U0039><U6708>";"<U0031><U0030><U6708>";/
++abmon "<U0031><U6708>";"<U0032><U6708>";/
++      "<U0033><U6708>";"<U0034><U6708>";/
++      "<U0035><U6708>";"<U0036><U6708>";/
++      "<U0037><U6708>";"<U0038><U6708>";/
++      "<U0039><U6708>";"<U0031><U0030><U6708>";/
+       "<U0031><U0031><U6708>";"<U0031><U0032><U6708>"
+ mon   "<U4E00><U6708>";"<U4E8C><U6708>";"<U4E09><U6708>";/
diff --git a/src/patches/glibc/glibc-rh788959-2.patch b/src/patches/glibc/glibc-rh788959-2.patch
new file mode 100644 (file)
index 0000000..1064640
--- /dev/null
@@ -0,0 +1,153 @@
+diff -rcp a/nscd/grpcache.c b/nscd/grpcache.c
+*** a/nscd/grpcache.c  Wed Apr 11 12:50:07 2012
+--- b/nscd/grpcache.c  Wed Apr 11 21:45:58 2012
+*************** cache_addgr (struct database_dyn *db, in
+*** 178,184 ****
+        char *cp;
+        const size_t key_len = strlen (key);
+        const size_t buf_len = 3 * sizeof (grp->gr_gid) + key_len + 1;
+!       char *buf = alloca (buf_len);
+        ssize_t n;
+        size_t cnt;
+  
+--- 178,185 ----
+        char *cp;
+        const size_t key_len = strlen (key);
+        const size_t buf_len = 3 * sizeof (grp->gr_gid) + key_len + 1;
+!       size_t alloca_used = 0;
+!       char *buf = alloca_account (buf_len, alloca_used);
+        ssize_t n;
+        size_t cnt;
+  
+*************** cache_addgr (struct database_dyn *db, in
+*** 190,196 ****
+        /* Determine the length of all members.  */
+        while (grp->gr_mem[gr_mem_cnt])
+       ++gr_mem_cnt;
+!       gr_mem_len = (uint32_t *) alloca (gr_mem_cnt * sizeof (uint32_t));
+        for (gr_mem_cnt = 0; grp->gr_mem[gr_mem_cnt]; ++gr_mem_cnt)
+       {
+         gr_mem_len[gr_mem_cnt] = strlen (grp->gr_mem[gr_mem_cnt]) + 1;
+--- 191,198 ----
+        /* Determine the length of all members.  */
+        while (grp->gr_mem[gr_mem_cnt])
+       ++gr_mem_cnt;
+!       gr_mem_len = (uint32_t *) alloca_account (gr_mem_cnt * sizeof (uint32_t),
+!                                              alloca_used);
+        for (gr_mem_cnt = 0; grp->gr_mem[gr_mem_cnt]; ++gr_mem_cnt)
+       {
+         gr_mem_len[gr_mem_cnt] = strlen (grp->gr_mem[gr_mem_cnt]) + 1;
+*************** cache_addgr (struct database_dyn *db, in
+*** 205,214 ****
+        change.  Allocate memory on the cache since it is likely
+        discarded anyway.  If it turns out to be necessary to have a
+        new record we can still allocate real memory.  */
+!       bool alloca_used = false;
+        dataset = NULL;
+  
+!       if (he == NULL)
+       dataset = (struct dataset *) mempool_alloc (db, total + n, 1);
+  
+        if (dataset == NULL)
+--- 207,216 ----
+        change.  Allocate memory on the cache since it is likely
+        discarded anyway.  If it turns out to be necessary to have a
+        new record we can still allocate real memory.  */
+!       bool dataset_in_stack_or_freed = false;
+        dataset = NULL;
+  
+!       if (he == NULL || ! __libc_use_alloca (alloca_used + total + n))
+       dataset = (struct dataset *) mempool_alloc (db, total + n, 1);
+  
+        if (dataset == NULL)
+*************** cache_addgr (struct database_dyn *db, in
+*** 216,225 ****
+         /* We cannot permanently add the result in the moment.  But
+            we can provide the result as is.  Store the data in some
+            temporary memory.  */
+!        dataset = (struct dataset *) alloca (total + n);
+  
+         /* We cannot add this record to the permanent database.  */
+!        alloca_used = true;
+       }
+  
+        dataset->head.allocsize = total + n;
+--- 218,227 ----
+         /* We cannot permanently add the result in the moment.  But
+            we can provide the result as is.  Store the data in some
+            temporary memory.  */
+!        dataset = (struct dataset *) alloca_account (total + n, alloca_used);
+  
+         /* We cannot add this record to the permanent database.  */
+!        dataset_in_stack_or_freed = true;
+       }
+  
+        dataset->head.allocsize = total + n;
+*************** cache_addgr (struct database_dyn *db, in
+*** 273,278 ****
+--- 275,288 ----
+                allocated on the stack and need not be freed.  */
+             dh->timeout = dataset->head.timeout;
+             ++dh->nreloads;
++ 
++            /* If the new record was not allocated on the stack, then it must
++               be freed.  Note that it can no longer be used.  */
++            if (! dataset_in_stack_or_freed)
++              {
++                free (dataset);
++                dataset_in_stack_or_freed = true;
++              }
+           }
+         else
+           {
+*************** cache_addgr (struct database_dyn *db, in
+*** 288,294 ****
+                 key_copy = (char *) newp + (key_copy - (char *) dataset);
+  
+                 dataset = memcpy (newp, dataset, total + n);
+!                alloca_used = false;
+               }
+  
+             /* Mark the old record as obsolete.  */
+--- 298,304 ----
+                 key_copy = (char *) newp + (key_copy - (char *) dataset);
+  
+                 dataset = memcpy (newp, dataset, total + n);
+!                dataset_in_stack_or_freed = false;
+               }
+  
+             /* Mark the old record as obsolete.  */
+*************** cache_addgr (struct database_dyn *db, in
+*** 303,309 ****
+         assert (fd != -1);
+  
+  #ifdef HAVE_SENDFILE
+!        if (__builtin_expect (db->mmap_used, 1) && !alloca_used)
+           {
+             assert (db->wr_fd != -1);
+             assert ((char *) &dataset->resp > (char *) db->data);
+--- 313,319 ----
+         assert (fd != -1);
+  
+  #ifdef HAVE_SENDFILE
+!        if (__builtin_expect (db->mmap_used, 1) && !dataset_in_stack_or_freed)
+           {
+             assert (db->wr_fd != -1);
+             assert ((char *) &dataset->resp > (char *) db->data);
+*************** cache_addgr (struct database_dyn *db, in
+*** 330,336 ****
+  
+        /* Add the record to the database.  But only if it has not been
+        stored on the stack.  */
+!       if (! alloca_used)
+       {
+         /* If necessary, we also propagate the data to disk.  */
+         if (db->persistent)
+--- 340,346 ----
+  
+        /* Add the record to the database.  But only if it has not been
+        stored on the stack.  */
+!       if (! dataset_in_stack_or_freed)
+       {
+         /* If necessary, we also propagate the data to disk.  */
+         if (db->persistent)
diff --git a/src/patches/glibc/glibc-rh788959.patch b/src/patches/glibc/glibc-rh788959.patch
new file mode 100644 (file)
index 0000000..adc6c99
--- /dev/null
@@ -0,0 +1,130 @@
+diff -pruN glibc-2.12-2-gc4ccff1/nis/nss_compat/compat-initgroups.c glibc-2.12-2-gc4ccff1.patched/nis/nss_compat/compat-initgroups.c
+--- glibc-2.12-2-gc4ccff1/nis/nss_compat/compat-initgroups.c   2010-05-04 16:57:23.000000000 +0530
++++ glibc-2.12-2-gc4ccff1.patched/nis/nss_compat/compat-initgroups.c   2012-02-21 11:11:19.877008465 +0530
+@@ -297,6 +297,8 @@ getgrent_next_nss (ent_t *ent, char *buf
+       if (nss_initgroups_dyn (user, group, &mystart, &mysize, &mygroups,
+                             limit, errnop) == NSS_STATUS_SUCCESS)
+       {
++        status = NSS_STATUS_NOTFOUND;
++
+         /* If there is no blacklist we can trust the underlying
+            initgroups implementation.  */
+         if (ent->blacklist.current <= 1)
+@@ -309,6 +311,7 @@ getgrent_next_nss (ent_t *ent, char *buf
+                overwrite the pointer with one to a bigger buffer.  */
+             char *tmpbuf = buffer;
+             size_t tmplen = buflen;
++            bool use_malloc = false;
+             for (int i = 0; i < mystart; i++)
+               {
+@@ -316,21 +319,36 @@ getgrent_next_nss (ent_t *ent, char *buf
+                                                  tmpbuf, tmplen, errnop))
+                        == NSS_STATUS_TRYAGAIN
+                        && *errnop == ERANGE)
+-                  if (tmpbuf == buffer)
+-                    {
+-                      tmplen *= 2;
+-                      tmpbuf = __alloca (tmplen);
+-                    }
+-                  else
+-                    tmpbuf = extend_alloca (tmpbuf, tmplen, 2 * tmplen);
++                    {
++                      if (__libc_use_alloca (tmplen * 2))
++                        {
++                          if (tmpbuf == buffer)
++                            {
++                              tmplen *= 2;
++                              tmpbuf = __alloca (tmplen);
++                            }
++                          else
++                            tmpbuf = extend_alloca (tmpbuf, tmplen, tmplen * 2);
++                        }
++                      else
++                        {
++                          tmplen *= 2;
++                          char *newbuf = realloc (use_malloc ? tmpbuf : NULL, tmplen);
++                    
++                          if (newbuf == NULL)
++                            {
++                              status = NSS_STATUS_TRYAGAIN;
++                            goto done;
++                            }
++                          use_malloc = true;
++                          tmpbuf = newbuf;
++                        }
++                    }
+                 if (__builtin_expect  (status != NSS_STATUS_NOTFOUND, 1))
+                   {
+                     if (__builtin_expect  (status != NSS_STATUS_SUCCESS, 0))
+-                      {
+-                        free (mygroups);
+-                        return status;
+-                      }
++                      goto done;
+                     if (!in_blacklist (grpbuf.gr_name,
+                                        strlen (grpbuf.gr_name), ent)
+@@ -348,11 +366,17 @@ getgrent_next_nss (ent_t *ent, char *buf
+                       }
+                   }
+               }
++
++              status = NSS_STATUS_NOTFOUND;
++
++ done:
++              if (use_malloc)
++                free (tmpbuf);
+           }
+         free (mygroups);
+-        return NSS_STATUS_NOTFOUND;
++        return status;
+       }
+       free (mygroups);
+@@ -506,6 +530,7 @@ _nss_compat_initgroups_dyn (const char *
+   char *tmpbuf;
+   enum nss_status status;
+   ent_t intern = { true, false, false, NULL, {NULL, 0, 0} };
++  bool use_malloc = false;
+   status = internal_setgrent (&intern);
+   if (status != NSS_STATUS_SUCCESS)
+@@ -519,13 +544,32 @@ _nss_compat_initgroups_dyn (const char *
+                                           user, group, start, size,
+                                           groupsp, limit, errnop))
+            == NSS_STATUS_TRYAGAIN && *errnop == ERANGE)
+-      tmpbuf = extend_alloca (tmpbuf, buflen, 2 * buflen);
++        if (__libc_use_alloca (buflen * 2))
++          tmpbuf = extend_alloca (tmpbuf, buflen, 2 * buflen);
++        else
++          {
++            buflen *= 2;
++            char *newbuf = realloc (use_malloc ? tmpbuf : NULL, buflen);
++            if (newbuf == NULL)
++              {
++                status = NSS_STATUS_TRYAGAIN;
++                goto done;
++              }
++            use_malloc = true;
++            tmpbuf = newbuf;
++          }
+     }
+   while (status == NSS_STATUS_SUCCESS);
++  status = NSS_STATUS_SUCCESS;
++
++ done:
++  if (use_malloc)
++    free (tmpbuf);
++
+   internal_endgrent (&intern);
+-  return NSS_STATUS_SUCCESS;
++  return status;
+ }
diff --git a/src/patches/glibc/glibc-rh789189.patch b/src/patches/glibc/glibc-rh789189.patch
new file mode 100644 (file)
index 0000000..fc0e2e0
--- /dev/null
@@ -0,0 +1,12 @@
+diff -rup a/resolv/res_init.c b/resolv/res_init.c
+--- a/resolv/res_init.c        2010-05-04 05:27:23.000000000 -0600
++++ b/resolv/res_init.c        2012-02-10 10:20:24.923578396 -0700
+@@ -325,7 +325,7 @@ __res_vinit(res_state statp, int preinit
+                         struct in6_addr a6;
+                         char *el;
+-                        if ((el = strchr(cp, '\n')) != NULL)
++                        if ((el = strpbrk(cp, " \t\n")) != NULL)
+                             *el = '\0';
+                       if ((el = strchr(cp, SCOPE_DELIMITER)) != NULL)
+                           *el = '\0';
diff --git a/src/patches/glibc/glibc-rh789209.patch b/src/patches/glibc/glibc-rh789209.patch
new file mode 100644 (file)
index 0000000..3aea97e
--- /dev/null
@@ -0,0 +1,12 @@
+diff -rup a/localedata/locales/uk_UA b/localedata/locales/uk_UA
+--- a/localedata/locales/uk_UA 2010-05-04 05:27:23.000000000 -0600
++++ b/localedata/locales/uk_UA 2012-02-10 09:59:16.934189715 -0700
+@@ -700,7 +700,7 @@ LC_MONETARY
+ % 200 hrv. - 200 hryven (money)
+ % the local currency symbol
+-currency_symbol           "<U0433><U0440>" % hr (hryvnya)
++currency_symbol           "<U0433><U0440><U043D><U002E>"  % hr (hryvnya)
+ % This must be a 4-character string containing the international currency
+ % symbol as defined by the ISO 4217 standard (three characters) followed
diff --git a/src/patches/glibc/glibc-rh789238-2.patch b/src/patches/glibc/glibc-rh789238-2.patch
new file mode 100644 (file)
index 0000000..62b5492
--- /dev/null
@@ -0,0 +1,114 @@
+diff -rup a/malloc/arena.c b/malloc/arena.c
+--- a/malloc/arena.c   2012-03-02 10:22:47.025002715 -0700
++++ b/malloc/arena.c   2012-03-02 10:27:47.442361529 -0700
+@@ -123,14 +123,14 @@ int __malloc_initialized = -1;
+   if(ptr) \
+     (void)mutex_lock(&ptr->mutex); \
+   else \
+-    ptr = arena_get2(ptr, (size)); \
++    ptr = arena_get2(ptr, (size), false); \
+ } while(0)
+ #else
+ #define arena_lock(ptr, size) do { \
+   if(ptr && !mutex_trylock(&ptr->mutex)) { \
+     THREAD_STAT(++(ptr->stat_lock_direct)); \
+   } else \
+-    ptr = arena_get2(ptr, (size)); \
++    ptr = arena_get2(ptr, (size), false); \
+ } while(0)
+ #endif
+@@ -982,7 +982,7 @@ get_free_list (void)
+ static mstate
+-reused_arena (void)
++reused_arena (bool retrying)
+ {
+   mstate result;
+   static mstate next_to_use;
+@@ -999,6 +999,15 @@ reused_arena (void)
+     }
+   while (result != next_to_use);
++  /* If we are retrying due to a failure to allocate in the main
++     arena, don't wait for the main arena to become available, select
++     another.
++
++     To really fix this right we would have to try the allocation
++     in every other arena, but that seems like severe overkill.  */
++  if (retrying && result == &main_arena)
++    result = result->next;
++
+   /* No arena available.  Wait for the next in line.  */
+   (void)mutex_lock(&result->mutex);
+@@ -1014,9 +1023,9 @@ reused_arena (void)
+ static mstate
+ internal_function
+ #if __STD_C
+-arena_get2(mstate a_tsd, size_t size)
++arena_get2(mstate a_tsd, size_t size, bool retrying)
+ #else
+-arena_get2(a_tsd, size) mstate a_tsd; size_t size;
++arena_get2(a_tsd, size, retrying) mstate a_tsd; size_t size; bool retrying
+ #endif
+ {
+   mstate a;
+@@ -1055,7 +1064,7 @@ arena_get2(a_tsd, size) mstate a_tsd; si
+           catomic_decrement (&narenas);
+       }
+       else
+-      a = reused_arena ();
++      a = reused_arena (retrying);
+     }
+ #else
+   if(!a_tsd)
+diff -rup a/malloc/malloc.c b/malloc/malloc.c
+--- a/malloc/malloc.c  2012-03-02 10:22:47.061002519 -0700
++++ b/malloc/malloc.c  2012-03-02 10:23:53.151643863 -0700
+@@ -3671,7 +3671,7 @@ public_mALLOc(size_t bytes)
+       /* ... or sbrk() has failed and there is still a chance to mmap() */
+       mstate prev = ar_ptr->next ? ar_ptr : 0;
+       (void)mutex_unlock(&ar_ptr->mutex);
+-      ar_ptr = arena_get2(prev, bytes);
++      ar_ptr = arena_get2(prev, bytes, true);
+       if(ar_ptr) {
+       victim = _int_malloc(ar_ptr, bytes);
+       (void)mutex_unlock(&ar_ptr->mutex);
+@@ -3892,7 +3892,7 @@ public_mEMALIGn(size_t alignment, size_t
+       /* ... or sbrk() has failed and there is still a chance to mmap() */
+       mstate prev = ar_ptr->next ? ar_ptr : 0;
+       (void)mutex_unlock(&ar_ptr->mutex);
+-      ar_ptr = arena_get2(prev, bytes);
++      ar_ptr = arena_get2(prev, bytes, true);
+       if(ar_ptr) {
+       p = _int_memalign(ar_ptr, alignment, bytes);
+       (void)mutex_unlock(&ar_ptr->mutex);
+@@ -3943,7 +3943,7 @@ public_vALLOc(size_t bytes)
+       /* ... or sbrk() has failed and there is still a chance to mmap() */
+       mstate prev = ar_ptr->next ? ar_ptr : 0;
+       (void)mutex_unlock(&ar_ptr->mutex);
+-      ar_ptr = arena_get2(prev, bytes);
++      ar_ptr = arena_get2(prev, bytes, true);
+       if(ar_ptr) {
+       p = _int_memalign(ar_ptr, pagesz, bytes);
+       (void)mutex_unlock(&ar_ptr->mutex);
+@@ -3992,7 +3992,7 @@ public_pVALLOc(size_t bytes)
+       /* ... or sbrk() has failed and there is still a chance to mmap() */
+       mstate prev = ar_ptr->next ? ar_ptr : 0;
+       (void)mutex_unlock(&ar_ptr->mutex);
+-      ar_ptr = arena_get2(prev, bytes + 2*pagesz + MINSIZE);
++      ar_ptr = arena_get2(prev, bytes + 2*pagesz + MINSIZE, true);
+       if(ar_ptr) {
+       p = _int_memalign(ar_ptr, pagesz, rounded_bytes);
+       (void)mutex_unlock(&ar_ptr->mutex);
+@@ -4086,7 +4086,7 @@ public_cALLOc(size_t n, size_t elem_size
+       /* ... or sbrk() has failed and there is still a chance to mmap() */
+       mstate prev = av->next ? av : 0;
+       (void)mutex_unlock(&av->mutex);
+-      av = arena_get2(prev, sz);
++      av = arena_get2(prev, sz, true);
+       if(av) {
+       mem = _int_malloc(av, sz);
+       (void)mutex_unlock(&av->mutex);
diff --git a/src/patches/glibc/glibc-rh789238.patch b/src/patches/glibc/glibc-rh789238.patch
new file mode 100644 (file)
index 0000000..f2c90e2
--- /dev/null
@@ -0,0 +1,119 @@
+diff -rup a/malloc/malloc.c b/malloc/malloc.c
+--- a/malloc/malloc.c  2012-02-13 21:46:11.678847531 -0700
++++ b/malloc/malloc.c  2012-02-13 22:43:14.788431976 -0700
+@@ -3669,8 +3669,9 @@ public_mALLOc(size_t bytes)
+     } else {
+ #if USE_ARENAS
+       /* ... or sbrk() has failed and there is still a chance to mmap() */
+-      ar_ptr = arena_get2(ar_ptr->next ? ar_ptr : 0, bytes);
+-      (void)mutex_unlock(&main_arena.mutex);
++      mstate prev = ar_ptr->next ? ar_ptr : 0;
++      (void)mutex_unlock(&ar_ptr->mutex);
++      ar_ptr = arena_get2(prev, bytes);
+       if(ar_ptr) {
+       victim = _int_malloc(ar_ptr, bytes);
+       (void)mutex_unlock(&ar_ptr->mutex);
+@@ -3929,10 +3930,10 @@ public_vALLOc(size_t bytes)
+   if(!ar_ptr)
+     return 0;
+   p = _int_valloc(ar_ptr, bytes);
+-  (void)mutex_unlock(&ar_ptr->mutex);
+   if(!p) {
+     /* Maybe the failure is due to running out of mmapped areas. */
+     if(ar_ptr != &main_arena) {
++      (void)mutex_unlock(&ar_ptr->mutex);
+       ar_ptr = &main_arena;
+       (void)mutex_lock(&ar_ptr->mutex);
+       p = _int_memalign(ar_ptr, pagesz, bytes);
+@@ -3940,14 +3941,17 @@ public_vALLOc(size_t bytes)
+     } else {
+ #if USE_ARENAS
+       /* ... or sbrk() has failed and there is still a chance to mmap() */
+-      ar_ptr = arena_get2(ar_ptr->next ? ar_ptr : 0, bytes);
++      mstate prev = ar_ptr->next ? ar_ptr : 0;
++      (void)mutex_unlock(&ar_ptr->mutex);
++      ar_ptr = arena_get2(prev, bytes);
+       if(ar_ptr) {
+       p = _int_memalign(ar_ptr, pagesz, bytes);
+       (void)mutex_unlock(&ar_ptr->mutex);
+       }
+ #endif
+     }
+-  }
++  } else
++    (void)mutex_unlock(&ar_ptr->mutex);
+   assert(!p || chunk_is_mmapped(mem2chunk(p)) ||
+        ar_ptr == arena_for_chunk(mem2chunk(p)));
+@@ -3975,10 +3979,10 @@ public_pVALLOc(size_t bytes)
+   arena_get(ar_ptr, bytes + 2*pagesz + MINSIZE);
+   p = _int_pvalloc(ar_ptr, bytes);
+-  (void)mutex_unlock(&ar_ptr->mutex);
+   if(!p) {
+     /* Maybe the failure is due to running out of mmapped areas. */
+     if(ar_ptr != &main_arena) {
++      (void)mutex_unlock(&ar_ptr->mutex);
+       ar_ptr = &main_arena;
+       (void)mutex_lock(&ar_ptr->mutex);
+       p = _int_memalign(ar_ptr, pagesz, rounded_bytes);
+@@ -3986,15 +3990,17 @@ public_pVALLOc(size_t bytes)
+     } else {
+ #if USE_ARENAS
+       /* ... or sbrk() has failed and there is still a chance to mmap() */
+-      ar_ptr = arena_get2(ar_ptr->next ? ar_ptr : 0,
+-                        bytes + 2*pagesz + MINSIZE);
++      mstate prev = ar_ptr->next ? ar_ptr : 0;
++      (void)mutex_unlock(&ar_ptr->mutex);
++      ar_ptr = arena_get2(prev, bytes + 2*pagesz + MINSIZE);
+       if(ar_ptr) {
+       p = _int_memalign(ar_ptr, pagesz, rounded_bytes);
+       (void)mutex_unlock(&ar_ptr->mutex);
+       }
+ #endif
+     }
+-  }
++  } else
++    (void)mutex_unlock(&ar_ptr->mutex);
+   assert(!p || chunk_is_mmapped(mem2chunk(p)) ||
+        ar_ptr == arena_for_chunk(mem2chunk(p)));
+@@ -4064,8 +4070,6 @@ public_cALLOc(size_t n, size_t elem_size
+ #endif
+   mem = _int_malloc(av, sz);
+-  /* Only clearing follows, so we can unlock early. */
+-  (void)mutex_unlock(&av->mutex);
+   assert(!mem || chunk_is_mmapped(mem2chunk(mem)) ||
+        av == arena_for_chunk(mem2chunk(mem)));
+@@ -4073,15 +4077,16 @@ public_cALLOc(size_t n, size_t elem_size
+   if (mem == 0) {
+     /* Maybe the failure is due to running out of mmapped areas. */
+     if(av != &main_arena) {
++      (void)mutex_unlock(&av->mutex);
+       (void)mutex_lock(&main_arena.mutex);
+       mem = _int_malloc(&main_arena, sz);
+       (void)mutex_unlock(&main_arena.mutex);
+     } else {
+ #if USE_ARENAS
+       /* ... or sbrk() has failed and there is still a chance to mmap() */
+-      (void)mutex_lock(&main_arena.mutex);
+-      av = arena_get2(av->next ? av : 0, sz);
+-      (void)mutex_unlock(&main_arena.mutex);
++      mstate prev = av->next ? av : 0;
++      (void)mutex_unlock(&av->mutex);
++      av = arena_get2(prev, sz);
+       if(av) {
+       mem = _int_malloc(av, sz);
+       (void)mutex_unlock(&av->mutex);
+@@ -4089,7 +4094,8 @@ public_cALLOc(size_t n, size_t elem_size
+ #endif
+     }
+     if (mem == 0) return 0;
+-  }
++  } else
++    (void)mutex_unlock(&av->mutex);
+   p = mem2chunk(mem);
+   /* Two optional cases in which clearing not necessary */
diff --git a/src/patches/glibc/glibc-rh794817-2.patch b/src/patches/glibc/glibc-rh794817-2.patch
new file mode 100644 (file)
index 0000000..15774b4
--- /dev/null
@@ -0,0 +1,85 @@
+diff -rup a/stdio-common/vfprintf.c b/stdio-common/vfprintf.c
+--- a/stdio-common/vfprintf.c  2012-03-05 09:43:14.705536167 -0700
++++ b/stdio-common/vfprintf.c  2012-03-05 09:48:11.602890982 -0700
+@@ -822,7 +822,7 @@ vfprintf (FILE *s, const CHAR_T *format,
+                                                                             \
+       if (function_done < 0)                                                \
+         {                                                                   \
+-          /* Error in print handler.  */                                    \
++          /* Error in print handler; up to handler to set errno.  */        \
+           done = -1;                                                        \
+           goto all_done;                                                    \
+         }                                                                   \
+@@ -876,7 +876,7 @@ vfprintf (FILE *s, const CHAR_T *format,
+                                                                             \
+       if (function_done < 0)                                                \
+         {                                                                   \
+-          /* Error in print handler.  */                                    \
++          /* Error in print handler; up to handler to set errno.  */        \
+           done = -1;                                                        \
+           goto all_done;                                                    \
+         }                                                                   \
+@@ -1117,7 +1117,7 @@ vfprintf (FILE *s, const CHAR_T *format,
+                        &mbstate);                                           \
+       if (len == (size_t) -1)                                               \
+         {                                                                   \
+-          /* Something went wron gduring the conversion.  Bail out.  */     \
++          /* Something went wrong during the conversion.  Bail out.  */     \
+           done = -1;                                                        \
+           goto all_done;                                                    \
+         }                                                                   \
+@@ -1188,6 +1188,7 @@ vfprintf (FILE *s, const CHAR_T *format,
+                     if (__mbsnrtowcs (ignore, &str2, strend - str2,         \
+                                       ignore_size, &ps) == (size_t) -1)     \
+                       {                                                     \
++                        /* Conversion function has set errno.  */           \
+                         done = -1;                                          \
+                         goto all_done;                                      \
+                       }                                                     \
+@@ -1599,6 +1600,7 @@ vfprintf (FILE *s, const CHAR_T *format,
+         if (spec == L_('\0'))
+           {
+             /* The format string ended before the specifier is complete.  */
++            __set_errno (EINVAL);
+             done = -1;
+             goto all_done;
+           }
+@@ -1696,17 +1698,20 @@ do_positional:
+     /* Determine the number of arguments the format string consumes.  */
+     nargs = MAX (nargs, max_ref_arg);
++    /* Calculate total size needed to represent a single argument across
++       all three argument-related arrays.  */
+     bytes_per_arg = sizeof (*args_value) + sizeof (*args_size)
+                     + sizeof (*args_type);
+     /* Check for potential integer overflow.  */
+-    if (nargs > SIZE_MAX / bytes_per_arg)
++    if (__builtin_expect (nargs > SIZE_MAX / bytes_per_arg, 0))
+       {
++         __set_errno (ERANGE);
+          done = -1;
+          goto all_done;
+       }
+-    /* Allocate memory for the argument descriptions.  */
++    /* Allocate memory for all three argument arrays.  */
+     if (__libc_use_alloca (nargs * bytes_per_arg))
+         args_value = alloca (nargs * bytes_per_arg);
+     else
+@@ -1937,6 +1942,7 @@ do_positional:
+                      about # of chars.  */
+                   if (function_done < 0)
+                     {
++                      /* Function has set errno.  */
+                       done = -1;
+                       goto all_done;
+                     }
+@@ -1971,6 +1977,7 @@ do_positional:
+                of chars.  */
+             if (function_done < 0)
+               {
++                /* Function has set errno.  */
+                 done = -1;
+                 goto all_done;
+               }
diff --git a/src/patches/glibc/glibc-rh794817.patch b/src/patches/glibc/glibc-rh794817.patch
new file mode 100644 (file)
index 0000000..e21caaa
--- /dev/null
@@ -0,0 +1,239 @@
+From libc-alpha-return-25252-listarch-libc-alpha=sources dot redhat dot com at sourceware dot org Thu Feb 16 16:21:17 2012
+Return-Path: <libc-alpha-return-25252-listarch-libc-alpha=sources dot redhat dot com at sourceware dot org>
+Delivered-To: listarch-libc-alpha at sources dot redhat dot com
+Received: (qmail 5187 invoked by alias); 16 Feb 2012 16:21:14 -0000
+Delivered-To: moderator for libc-alpha at sourceware dot org
+Received: (qmail 2174 invoked by uid 22791); 16 Feb 2012 16:17:18 -0000
+X-SWARE-Spam-Status: No, hits=-2.0 required=5.0
+       tests=AWL,BAYES_00,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,TW_TV,TW_VB,TW_VF,T_RP_MATCHES_RCVD
+X-Spam-Check-By: sourceware.org
+Date: Thu, 16 Feb 2012 08:16:13 -0800
+From: Kees Cook <kees at outflux dot net>
+To: "Ryan S dot  Arnold" <ryan dot arnold at gmail dot com>
+Cc: libc-alpha at sourceware dot org, Paul Eggert <eggert at cs dot ucla dot edu>,
+        Roland McGrath <roland at hack dot frob dot com>,
+        Andreas Schwab <schwab at linux-m68k dot org>
+Subject: Re: [PATCH] vfprintf: validate nargs and maybe allocate from heap
+Message-ID: <20120216161613.GZ20420@outflux.net>
+References: <20120206062537.GM4979@outflux.net>
+ <20120207000509 dot GP4989 at outflux dot net>
+ <20120210192457 dot GF20420 at outflux dot net>
+ <CAAKybw8AgkGsKAx=kvX4Tsi74f+HtuVnatTCB0VfsHi7vVFi1Q at mail dot gmail dot com>
+ <20120214223048 dot GM20420 at outflux dot net>
+ <CAAKybw_HS+cav+YcDw3ns7UXu6_xA7EHPrkiB87P+OGwEB0PVQ at mail dot gmail dot com>
+ <20120214224543 dot GN20420 at outflux dot net>
+MIME-Version: 1.0
+Content-Type: text/plain; charset=us-ascii
+Content-Disposition: inline
+In-Reply-To: <20120214224543 dot GN20420 at outflux dot net>
+X-MIMEDefang-Filter: outflux$Revision: 1.316 $
+X-HELO: www.outflux.net
+Mailing-List: contact libc-alpha-help at sourceware dot org; run by ezmlm
+Precedence: bulk
+List-Id: <libc-alpha.sourceware.org>
+List-Subscribe: <mailto:libc-alpha-subscribe at sourceware dot org>
+List-Archive: <http://sourceware.org/ml/libc-alpha/>
+List-Post: <mailto:libc-alpha at sourceware dot org>
+List-Help: <mailto:libc-alpha-help at sourceware dot org>, <http://sourceware dot org/ml/#faqs>
+Sender: libc-alpha-owner at sourceware dot org
+Delivered-To: mailing list libc-alpha at sourceware dot org
+
+The nargs value can overflow when doing allocations, allowing arbitrary
+memory writes via format strings, bypassing _FORTIFY_SOURCE:
+http://www.phrack.org/issues.html?issue=67&id=9
+
+This checks for nargs overflow and possibly allocates from heap instead of
+stack, and adds a regression test for the situation.
+
+I have FSF assignment via Google. (Sent from @outflux since that's how I'm
+subscribed here, but CL shows @chromium.org as part of my Google work.)
+
+This version disables the useless test on non-32-bit platforms.
+
+2012-02-16  Kees Cook  <keescook@chromium.org>
+
+       [BZ #13656]
+       * stdio-common/vfprintf.c (vfprintf): Check for nargs overflow and
+       possibly allocate from heap instead of stack.
+       * stdio-common/bug-vfprintf-nargs.c: New file.
+       * stdio-common/Makefile (tests): Add nargs overflow test.
+
+diff -rup a/stdio-common/Makefile b/stdio-common/Makefile
+--- a/stdio-common/Makefile    2010-05-04 05:27:23.000000000 -0600
++++ b/stdio-common/Makefile    2012-02-20 21:57:52.983040992 -0700
+@@ -60,7 +60,7 @@ tests := tstscanf test_rdwr test-popen t
+        tst-popen tst-unlockedio tst-fmemopen2 tst-put-error tst-fgets \
+        tst-fwrite bug16 bug17 tst-swscanf tst-sprintf2 bug18 bug18a \
+        bug19 bug19a tst-popen2 scanf13 scanf14 scanf15 bug20 bug21 bug22 \
+-       scanf16 scanf17 tst-setvbuf1
++       scanf16 scanf17 tst-setvbuf1 bug-vfprintf-nargs
+ test-srcs = tst-unbputc tst-printf
+diff --git a/stdio-common/bug-vfprintf-nargs.c b/stdio-common/bug-vfprintf-nargs.c
+new file mode 100644
+index 0000000..13c66c0
+--- /dev/null
++++ b/stdio-common/bug-vfprintf-nargs.c
+@@ -0,0 +1,78 @@
++/* Test for vfprintf nargs allocation overflow (BZ #13656).
++   Copyright (C) 2012 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++   Contributed by Kees Cook <keescook@chromium.org>, 2012.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#include <stdio.h>
++#include <stdlib.h>
++#include <stdint.h>
++#include <unistd.h>
++#include <inttypes.h>
++#include <string.h>
++#include <signal.h>
++
++static int
++format_failed (const char *fmt, const char *expected)
++{
++  char output[80];
++
++  printf ("%s : ", fmt);
++
++  memset (output, 0, sizeof output);
++  /* Having sprintf itself detect a failure is good.  */
++  if (sprintf (output, fmt, 1, 2, 3, "test") > 0
++      && strcmp (output, expected) != 0)
++    {
++      printf ("FAIL (output '%s' != expected '%s')\n", output, expected);
++      return 1;
++    }
++  puts ("ok");
++  return 0;
++}
++
++static int
++do_test (void)
++{
++  int rc = 0;
++  char buf[64];
++
++  /* Regular positionals work.  */
++  if (format_failed ("%1$d", "1") != 0)
++    rc = 1;
++
++  /* Regular width positionals work.  */
++  if (format_failed ("%1$*2$d", " 1") != 0)
++    rc = 1;
++
++  /* Positional arguments are constructed via read_int, so nargs can only
++     overflow on 32-bit systems.  On 64-bit systems, it will attempt to
++     allocate a giant amount of memory and possibly crash, which is the
++     expected situation.  Since the 64-bit behavior is arch-specific, only
++     test this on 32-bit systems.  */
++  if (sizeof (long int) == 4)
++    {
++      sprintf (buf, "%%1$d %%%" PRIdPTR "$d", UINT32_MAX / sizeof (int));
++      if (format_failed (buf, "1 %$d") != 0)
++        rc = 1;
++    }
++
++  return rc;
++}
++
++#define TEST_FUNCTION do_test ()
++#include "../test-skeleton.c"
+diff --git a/stdio-common/vfprintf.c b/stdio-common/vfprintf.c
+index 863cd5d..022e72b 100644
+--- a/stdio-common/vfprintf.c
++++ b/stdio-common/vfprintf.c
+@@ -235,6 +235,9 @@ vfprintf (FILE *s, const CHAR_T *format, va_list ap)
+      0 if unknown.  */
+   int readonly_format = 0;
++  /* For the argument descriptions, which may be allocated on the heap.  */
++  void *args_malloced = NULL;
++
+   /* This table maps a character into a number representing a
+      class.  In each step there is a destination label for each
+      class.  */
+@@ -1647,9 +1650,10 @@ do_positional:
+        determine the size of the array needed to store the argument
+        attributes.  */
+     size_t nargs = 0;
+-    int *args_type;
+-    union printf_arg *args_value = NULL;
++    size_t bytes_per_arg;
++    union printf_arg *args_value;
+     int *args_size;
++    int *args_type;
+     /* Positional parameters refer to arguments directly.  This could
+        also determine the maximum number of arguments.  Track the
+@@ -1698,13 +1702,33 @@ do_positional:
+     /* Determine the number of arguments the format string consumes.  */
+     nargs = MAX (nargs, max_ref_arg);
++    bytes_per_arg = sizeof (*args_value) + sizeof (*args_size)
++                    + sizeof (*args_type);
++
++    /* Check for potential integer overflow.  */
++    if (nargs > SIZE_MAX / bytes_per_arg)
++      {
++         done = -1;
++         goto all_done;
++      }
+     /* Allocate memory for the argument descriptions.  */
+-    args_type = alloca (nargs * sizeof (int));
++    if (__libc_use_alloca (nargs * bytes_per_arg))
++        args_value = alloca (nargs * bytes_per_arg);
++    else
++      {
++        args_value = args_malloced = malloc (nargs * bytes_per_arg);
++        if (args_value == NULL)
++          {
++            done = -1;
++            goto all_done;
++          }
++      }
++
++    args_size = &args_value[nargs].pa_int;
++    args_type = &args_size[nargs];
+     memset (args_type, s->_flags2 & _IO_FLAGS2_FORTIFY ? '\xff' : '\0',
+-          nargs * sizeof (int));
+-    args_value = alloca (nargs * sizeof (union printf_arg));
+-    args_size = alloca (nargs * sizeof (int));
++          nargs * sizeof (*args_type));
+     /* XXX Could do sanity check here: If any element in ARGS_TYPE is
+        still zero after this loop, format is invalid.  For now we
+@@ -1973,8 +1997,8 @@ do_positional:
+   }
+ all_done:
+-  if (__builtin_expect (workstart != NULL, 0))
+-    free (workstart);
++  free (args_malloced);
++  free (workstart);
+   /* Unlock the stream.  */
+   _IO_funlockfile (s);
+   _IO_cleanup_region_end (0);
+-- 
+1.7.5.4
+
+-- 
+Kees Cook                                            @outflux.net
+
diff --git a/src/patches/glibc/glibc-rh795498.patch b/src/patches/glibc/glibc-rh795498.patch
new file mode 100644 (file)
index 0000000..729c5a4
--- /dev/null
@@ -0,0 +1,13 @@
+diff --git a/resolv/nss_dns/dns-host.c b/resolv/nss_dns/dns-host.c
+index 01369f6..44ad04d 100644
+--- a/resolv/nss_dns/dns-host.c
++++ b/resolv/nss_dns/dns-host.c
+@@ -1219,7 +1219,7 @@ gaih_getanswer (const querybuf *answer1, int anslen1, const querybuf *answer2,
+                                 &first);
+   if ((status == NSS_STATUS_SUCCESS || status == NSS_STATUS_NOTFOUND
+        || (status == NSS_STATUS_TRYAGAIN
+-         && (errno != ERANGE || *h_errnop != NO_RECOVERY)))
++         && (*errnop != ERANGE || *h_errnop == NO_RECOVERY)))
+       && answer2 != NULL && anslen2 > 0)
+     {
+       enum nss_status status2 = gaih_getanswer_slice(answer2, anslen2, qname,
diff --git a/src/patches/glibc/glibc-rh797094-1.patch b/src/patches/glibc/glibc-rh797094-1.patch
new file mode 100644 (file)
index 0000000..e98b9c0
--- /dev/null
@@ -0,0 +1,657 @@
+diff -rup a/include/alloca.h b/include/alloca.h
+--- a/include/alloca.h 2012-02-29 13:11:19.439693476 -0700
++++ b/include/alloca.h 2012-02-29 13:11:49.832530623 -0700
+@@ -49,15 +49,24 @@ libc_hidden_proto (__libc_alloca_cutoff)
+ #if defined stackinfo_get_sp && defined stackinfo_sub_sp
+ # define alloca_account(size, avar) \
+-  ({ void *old__ = stackinfo_get_sp ();                       \
+-     void *m__ = __alloca (size);                     \
+-     avar += stackinfo_sub_sp (old__);                        \
++  ({ void *old__ = stackinfo_get_sp ();                                             \
++     void *m__ = __alloca (size);                                           \
++     avar += stackinfo_sub_sp (old__);                                              \
++     m__; })
++# define extend_alloca_account(buf, len, newlen, avar) \
++  ({ void *old__ = stackinfo_get_sp ();                                             \
++     void *m__ = extend_alloca (buf, len, newlen);                          \
++     avar += stackinfo_sub_sp (old__);                                              \
+      m__; })
+ #else
+ # define alloca_account(size, avar) \
+-  ({ size_t s__ = (size);                 \
+-     avar += s__;                         \
++  ({ size_t s__ = (size);                                                   \
++     avar += s__;                                                           \
+      __alloca (s__); })
++# define extend_alloca_account(buf, len, newlen, avar) \
++  ({ size_t s__ = (newlen);                                                 \
++     avar += s__;                                                           \
++     extend_alloca (buf, len, s__); })
+ #endif
+ #endif
+diff -rup a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c
+--- a/sysdeps/posix/getaddrinfo.c      2012-02-29 13:11:19.588692676 -0700
++++ b/sysdeps/posix/getaddrinfo.c      2012-02-29 13:12:42.972245862 -0700
+@@ -278,6 +278,7 @@ gaih_inet (const char *name, const struc
+   bool got_ipv6 = false;
+   const char *canon = NULL;
+   const char *orig_name = name;
++  size_t alloca_used = 0;
+   if (req->ai_protocol || req->ai_socktype)
+     {
+@@ -310,7 +311,7 @@ gaih_inet (const char *name, const struc
+         if (tp->name[0])
+           {
+             st = (struct gaih_servtuple *)
+-              __alloca (sizeof (struct gaih_servtuple));
++              alloca_account (sizeof (struct gaih_servtuple), alloca_used);
+             if ((rc = gaih_inet_serv (service->name, tp, req, st)))
+               return rc;
+@@ -334,7 +335,8 @@ gaih_inet (const char *name, const struc
+                   continue;
+                 newp = (struct gaih_servtuple *)
+-                  __alloca (sizeof (struct gaih_servtuple));
++                  alloca_account (sizeof (struct gaih_servtuple),
++                                  alloca_used);
+                 if ((rc = gaih_inet_serv (service->name, tp, req, newp)))
+                   {
+@@ -362,7 +364,7 @@ gaih_inet (const char *name, const struc
+       if (req->ai_socktype || req->ai_protocol)
+       {
+-        st = __alloca (sizeof (struct gaih_servtuple));
++        st = alloca_account (sizeof (struct gaih_servtuple), alloca_used);
+         st->next = NULL;
+         st->socktype = tp->socktype;
+         st->protocol = ((tp->protoflag & GAI_PROTO_PROTOANY)
+@@ -379,7 +381,8 @@ gaih_inet (const char *name, const struc
+             {
+               struct gaih_servtuple *newp;
+-              newp = __alloca (sizeof (struct gaih_servtuple));
++              newp = alloca_account (sizeof (struct gaih_servtuple),
++                                     alloca_used);
+               newp->next = NULL;
+               newp->socktype = tp->socktype;
+               newp->protocol = tp->protocol;
+@@ -391,10 +394,17 @@ gaih_inet (const char *name, const struc
+       }
+     }
++  bool malloc_name = false;
++  bool malloc_addrmem = false;
++  struct gaih_addrtuple *addrmem = NULL;
++  bool malloc_canonbuf = false;
++  char *canonbuf = NULL;
++  bool malloc_tmpbuf = false;
++  char *tmpbuf = NULL;
++  int result = 0;
+   if (name != NULL)
+     {
+-      at = __alloca (sizeof (struct gaih_addrtuple));
+-
++      at = alloca_account (sizeof (struct gaih_addrtuple), alloca_used);
+       at->family = AF_UNSPEC;
+       at->scopeid = 0;
+       at->next = NULL;
+@@ -412,6 +422,7 @@ gaih_inet (const char *name, const struc
+         rc = __idna_to_ascii_lz (name, &p, idn_flags);
+         if (rc != IDNA_SUCCESS)
+           {
++            /* No need to jump to free_and_return here.  */
+             if (rc == IDNA_MALLOC_ERROR)
+               return -EAI_MEMORY;
+             if (rc == IDNA_DLOPEN_ERROR)
+@@ -421,10 +432,7 @@ gaih_inet (const char *name, const struc
+         /* In case the output string is the same as the input string
+            no new string has been allocated.  */
+         if (p != name)
+-          {
+-            name = strdupa (p);
+-            free (p);
+-          }
++          malloc_name = true;
+       }
+ #endif
+@@ -441,23 +449,59 @@ gaih_inet (const char *name, const struc
+             at->family = AF_INET6;
+           }
+         else
+-          return -EAI_ADDRFAMILY;
++          {
++            result = -EAI_ADDRFAMILY;
++            goto free_and_return;
++          }
+         if (req->ai_flags & AI_CANONNAME)
+           canon = name;
+       }
+       else if (at->family == AF_UNSPEC)
+       {
+-        char *namebuf = (char *) name;
+         char *scope_delim = strchr (name, SCOPE_DELIMITER);
++        int e;
+-        if (__builtin_expect (scope_delim != NULL, 0))
+-          {
+-            namebuf = alloca (scope_delim - name + 1);
+-            *((char *) __mempcpy (namebuf, name, scope_delim - name)) = '\0';
+-          }
++        {
++          bool malloc_namebuf = false;
++          char *namebuf = (char *) name;
++
++          if (__builtin_expect (scope_delim != NULL, 0))
++            {
++              if (malloc_name)
++                *scope_delim = '\0';
++              else
++                {
++                  if (__libc_use_alloca (alloca_used
++                                         + scope_delim - name + 1))
++                    {
++                      namebuf = alloca_account (scope_delim - name + 1,
++                                                alloca_used);
++                      *((char *) __mempcpy (namebuf, name,
++                                            scope_delim - name)) = '\0';
++                    }
++                  else
++                    {
++                      namebuf = strndup (name, scope_delim - name);
++                      if (namebuf == NULL)
++                        {
++                          assert (!malloc_name);
++                          return -EAI_MEMORY;
++                        }
++                      malloc_namebuf = true;
++                    }
++                }
++            }
+-        if (inet_pton (AF_INET6, namebuf, at->addr) > 0)
++          e = inet_pton (AF_INET6, namebuf, at->addr);
++
++          if (malloc_namebuf)
++            free (namebuf);
++          else if (scope_delim != NULL && malloc_name)
++            /* Undo what we did above.  */
++            *scope_delim = SCOPE_DELIMITER;
++        }
++        if (e > 0)
+           {
+             if (req->ai_family == AF_UNSPEC || req->ai_family == AF_INET6)
+               at->family = AF_INET6;
+@@ -468,7 +512,10 @@ gaih_inet (const char *name, const struc
+                 at->family = AF_INET;
+               }
+             else
+-              return -EAI_ADDRFAMILY;
++              {
++                result = -EAI_ADDRFAMILY;
++                goto free_and_return;
++              }
+             if (scope_delim != NULL)
+               {
+@@ -490,7 +537,10 @@ gaih_inet (const char *name, const struc
+                     at->scopeid = (uint32_t) strtoul (scope_delim + 1, &end,
+                                                       10);
+                     if (*end != '\0')
+-                      return GAIH_OKIFUNSPEC | -EAI_NONAME;
++                      {
++                        result = GAIH_OKIFUNSPEC | -EAI_NONAME;
++                        goto free_and_return;
++                      }
+                   }
+               }
+@@ -520,59 +570,80 @@ gaih_inet (const char *name, const struc
+           {
+             int family = req->ai_family;
+             size_t tmpbuflen = 512;
+-            char *tmpbuf = alloca (tmpbuflen);
++            assert (tmpbuf == NULL);
++            tmpbuf = alloca_account (tmpbuflen, alloca_used);
+             int rc;
+             struct hostent th;
+             struct hostent *h;
+             int herrno;
+-          simple_again:
+             while (1)
+               {
+-                rc = __gethostbyname2_r (name, family, &th, tmpbuf,
++                rc = __gethostbyname2_r (name, AF_INET, &th, tmpbuf,
+                                          tmpbuflen, &h, &herrno);
+                 if (rc != ERANGE || herrno != NETDB_INTERNAL)
+                   break;
+-                tmpbuf = extend_alloca (tmpbuf, tmpbuflen, 2 * tmpbuflen);
++
++                if (!malloc_tmpbuf
++                    && __libc_use_alloca (alloca_used + 2 * tmpbuflen))
++                  tmpbuf = extend_alloca_account (tmpbuf, tmpbuflen,
++                                                  2 * tmpbuflen,
++                                                  alloca_used);
++                else
++                  {
++                    char *newp = realloc (malloc_tmpbuf ? tmpbuf : NULL,
++                                          2 * tmpbuflen);
++                    if (newp == NULL)
++                      {
++                        result = -EAI_MEMORY;
++                        goto free_and_return;
++                      }
++                    tmpbuf = newp;
++                    malloc_tmpbuf = true;
++                    tmpbuflen = 2 * tmpbuflen;
++                  }
+               }
+             if (rc == 0)
+               {
+-                if (h == NULL)
++                if (h != NULL)
+                   {
+-                    if (req->ai_family == AF_INET6
+-                        && (req->ai_flags & AI_V4MAPPED)
+-                        && family == AF_INET6)
++                    int i;
++                    /* We found data, count the number of addresses.  */
++                    for (i = 0; h->h_addr_list[i]; ++i)
++                      ;
++                    if (i > 0 && *pat != NULL)
++                      --i;
++
++                    if (__libc_use_alloca (alloca_used
++                                           + i * sizeof (struct gaih_addrtuple)))
++                      addrmem = alloca_account (i * sizeof (struct gaih_addrtuple),
++                                                alloca_used);
++                    else
+                       {
+-                        /* Try again, this time looking for IPv4
+-                           addresses.  */
+-                        family = AF_INET;
+-                        goto simple_again;
++                        addrmem = malloc (i
++                                          * sizeof (struct gaih_addrtuple));
++                        if (addrmem == NULL)
++                      {
++                            result = -EAI_MEMORY;
++                            goto free_and_return;
+                       }
++                        malloc_addrmem = true;
+                   }
+-                else
+-                  {
+-                    /* We found data, now convert it into the list.  */
+-                    for (int i = 0; h->h_addr_list[i]; ++i)
++
++                    /* Now convert it into the list.  */
++                    struct gaih_addrtuple *addrfree = addrmem;
++                    for (i = 0; h->h_addr_list[i]; ++i)
+                       {
+                         if (*pat == NULL)
+                           {
+-                            *pat = __alloca (sizeof (struct gaih_addrtuple));
++                            *pat = addrfree++;
+                             (*pat)->scopeid = 0;
+                           }
+                         (*pat)->next = NULL;
+-                        (*pat)->family = req->ai_family;
+-                        if (family == req->ai_family)
++                        (*pat)->family = AF_INET;
+                           memcpy ((*pat)->addr, h->h_addr_list[i],
+                                   h->h_length);
+-                        else
+-                          {
+-                            uint32_t *addr = (uint32_t *) (*pat)->addr;
+-                            addr[3] = *(uint32_t *) h->h_addr_list[i];
+-                            addr[2] = htonl (0xffff);
+-                            addr[1] = 0;
+-                            addr[0] = 0;
+-                          }
+                         pat = &((*pat)->next);
+                       }
+                   }
+@@ -582,15 +653,16 @@ gaih_inet (const char *name, const struc
+                 if (herrno == NETDB_INTERNAL)
+                   {
+                     __set_h_errno (herrno);
+-                    return -EAI_SYSTEM;
+-                  }
+-                if (herrno == TRY_AGAIN)
+-                  {
+-                    return -EAI_AGAIN;
++                    result = -EAI_SYSTEM;
+                   }
++                else if (herrno == TRY_AGAIN)
++                  result = -EAI_AGAIN;
++                else
+                 /* We made requests but they turned out no data.
+                    The name is known, though.  */
+-                return GAIH_OKIFUNSPEC | -EAI_NODATA;
++                  result = GAIH_OKIFUNSPEC | -EAI_NODATA;
++
++                goto free_and_return;
+               }
+             goto process_list;
+@@ -613,21 +685,56 @@ gaih_inet (const char *name, const struc
+                 bool added_canon = (req->ai_flags & AI_CANONNAME) == 0;
+                 char *addrs = air->addrs;
++                if (__libc_use_alloca (alloca_used
++                                       + air->naddrs * sizeof (struct gaih_addrtuple)))
++                  addrmem = alloca_account (air->naddrs
++                                            * sizeof (struct gaih_addrtuple),
++                                            alloca_used);
++                else
++                  {
++                    addrmem = malloc (air->naddrs
++                                      * sizeof (struct gaih_addrtuple));
++                    if (addrmem == NULL)
++                      {
++                        result = -EAI_MEMORY;
++                        goto free_and_return;
++                      }
++                    malloc_addrmem = true;
++                  }
++
++                struct gaih_addrtuple *addrfree = addrmem;
+                 for (int i = 0; i < air->naddrs; ++i)
+                   {
+                     socklen_t size = (air->family[i] == AF_INET
+                                       ? INADDRSZ : IN6ADDRSZ);
+                     if (*pat == NULL)
+                       {
+-                        *pat = __alloca (sizeof (struct gaih_addrtuple));
++                        *pat = addrfree++;
+                         (*pat)->scopeid = 0;
+                       }
+                     uint32_t *pataddr = (*pat)->addr;
+                     (*pat)->next = NULL;
+                     if (added_canon || air->canon == NULL)
+                       (*pat)->name = NULL;
+-                    else
+-                      canon = (*pat)->name = strdupa (air->canon);
++                    else if (canonbuf == NULL)
++                      {
++                        size_t canonlen = strlen (air->canon) + 1;
++                        if ((req->ai_flags & AI_CANONIDN) != 0
++                            && __libc_use_alloca (alloca_used + canonlen))
++                          canonbuf = alloca_account (canonlen, alloca_used);
++                        else
++                          {
++                            canonbuf = malloc (canonlen);
++                            if (canonbuf == NULL)
++                              {
++                                result = -EAI_MEMORY;
++                                goto free_and_return;
++                              }
++                            malloc_canonbuf = true;
++                          }
++                        canon = (*pat)->name = memcpy (canonbuf, air->canon,
++                                                       canonlen);
++                      }
+                     if (air->family[i] == AF_INET
+                         && req->ai_family == AF_INET6
+@@ -657,20 +764,26 @@ gaih_inet (const char *name, const struc
+                 free (air);
+                 if (at->family == AF_UNSPEC)
+-                  return GAIH_OKIFUNSPEC | -EAI_NONAME;
++                  {
++                    result = GAIH_OKIFUNSPEC | -EAI_NONAME;
++                    goto free_and_return;
++                  }
+                 goto process_list;
+               }
+             else if (err == 0)
+               /* The database contains a negative entry.  */
+-              return 0;
++              goto free_and_return;
+             else if (__nss_not_use_nscd_hosts == 0)
+               {
+                 if (herrno == NETDB_INTERNAL && errno == ENOMEM)
+-                  return -EAI_MEMORY;
+-                if (herrno == TRY_AGAIN)
+-                  return -EAI_AGAIN;
+-                return -EAI_SYSTEM;
++                  result = -EAI_MEMORY;
++                else if (herrno == TRY_AGAIN)
++                  result = -EAI_AGAIN;
++                else
++                  result = -EAI_SYSTEM;
++
++                goto free_and_return;
+               }
+           }
+ #endif
+@@ -699,7 +812,19 @@ gaih_inet (const char *name, const struc
+         _res.options &= ~RES_USE_INET6;
+         size_t tmpbuflen = 1024;
+-        char *tmpbuf = alloca (tmpbuflen);
++        malloc_tmpbuf = !__libc_use_alloca (alloca_used + tmpbuflen);
++        assert (tmpbuf == NULL);
++        if (!malloc_tmpbuf)
++          tmpbuf = alloca_account (tmpbuflen, alloca_used);
++        else
++          {
++            tmpbuf = malloc (tmpbuflen);
++            if (tmpbuf == NULL)
++              {
++                result = -EAI_MEMORY;
++                goto free_and_return;
++              }
++          }
+         while (!no_more)
+           {
+@@ -728,8 +853,25 @@ gaih_inet (const char *name, const struc
+                           no_data = herrno == NO_DATA;
+                         break;
+                       }
+-                    tmpbuf = extend_alloca (tmpbuf,
+-                                            tmpbuflen, 2 * tmpbuflen);
++
++                    if (!malloc_tmpbuf
++                        && __libc_use_alloca (alloca_used + 2 * tmpbuflen))
++                      tmpbuf = extend_alloca_account (tmpbuf, tmpbuflen,
++                                                      2 * tmpbuflen,
++                                                      alloca_used);
++                    else
++                      {
++                        char *newp = realloc (malloc_tmpbuf ? tmpbuf : NULL,
++                                              2 * tmpbuflen);
++                        if (newp == NULL)
++                          {
++                            result = -EAI_MEMORY;
++                            goto free_and_return;
++                          }
++                        tmpbuf = newp;
++                        malloc_tmpbuf = true;
++                        tmpbuflen = 2 * tmpbuflen;
++                      }
+                   }
+                 if (status == NSS_STATUS_SUCCESS)
+@@ -832,18 +974,40 @@ gaih_inet (const char *name, const struc
+                             if (cfct != NULL)
+                               {
+                                 const size_t max_fqdn_len = 256;
+-                                char *buf = alloca (max_fqdn_len);
++                                if ((req->ai_flags & AI_CANONIDN) != 0
++                                    && __libc_use_alloca (alloca_used
++                                                          + max_fqdn_len))
++                                  canonbuf = alloca_account (max_fqdn_len,
++                                                             alloca_used);
++                                else
++                                  {
++                                    canonbuf = malloc (max_fqdn_len);
++                                    if (canonbuf == NULL)
++                                      {
++                                        result = -EAI_MEMORY;
++                                        goto free_and_return;
++                                      }
++                                    malloc_canonbuf = true;
++                                  }
+                                 char *s;
+                                 if (DL_CALL_FCT (cfct, (at->name ?: name,
+-                                                        buf, max_fqdn_len,
++                                                        canonbuf,
++                                                        max_fqdn_len,
+                                                         &s, &rc, &herrno))
+                                     == NSS_STATUS_SUCCESS)
+                                   canon = s;
+                                 else
+-                                  /* Set to name now to avoid using
+-                                     gethostbyaddr.  */
+-                                  canon = name;
++                                  {
++                                    /* Set to name now to avoid using
++                                       gethostbyaddr.  */
++                                    if (malloc_canonbuf)
++                                      {
++                                        free (canonbuf);
++                                        malloc_canonbuf = false;
++                                      }
++                                    canon = name;
++                                  }
+                               }
+                           }
+                         status = NSS_STATUS_SUCCESS;
+@@ -878,22 +1042,27 @@ gaih_inet (const char *name, const struc
+           {
+             /* If both requests timed out report this.  */
+             if (no_data == EAI_AGAIN && no_inet6_data == EAI_AGAIN)
+-              return -EAI_AGAIN;
++              result = -EAI_AGAIN;
++            else
++              /* We made requests but they turned out no data.  The name
++                 is known, though.  */
++              result = GAIH_OKIFUNSPEC | -EAI_NODATA;
+-            /* We made requests but they turned out no data.  The name
+-               is known, though.  */
+-            return GAIH_OKIFUNSPEC | -EAI_NODATA;
++            goto free_and_return;
+           }
+       }
+     process_list:
+       if (at->family == AF_UNSPEC)
+-      return GAIH_OKIFUNSPEC | -EAI_NONAME;
++      {
++        result = GAIH_OKIFUNSPEC | -EAI_NONAME;
++        goto free_and_return;
++      }
+     }
+   else
+     {
+       struct gaih_addrtuple *atr;
+-      atr = at = __alloca (sizeof (struct gaih_addrtuple));
++      atr = at = alloca_account (sizeof (struct gaih_addrtuple), alloca_used);
+       memset (at, '\0', sizeof (struct gaih_addrtuple));
+       if (req->ai_family == AF_UNSPEC)
+@@ -932,6 +1101,9 @@ gaih_inet (const char *name, const struc
+       /* Only the first entry gets the canonical name.  */
+       if (at2 == at && (req->ai_flags & AI_CANONNAME) != 0)
+         {
++          char *tmpbuf2 = NULL;
++          bool malloc_tmpbuf2 = false;
++
+           if (canon == NULL)
+             {
+               /* If the canonical name cannot be determined, use
+@@ -952,11 +1124,16 @@ gaih_inet (const char *name, const struc
+               int rc = __idna_to_unicode_lzlz (canon, &out, idn_flags);
+               if (rc != IDNA_SUCCESS)
+                 {
++                  if (malloc_tmpbuf2)
++                    free (tmpbuf2);
++
+                   if (rc == IDNA_MALLOC_ERROR)
+-                    return -EAI_MEMORY;
+-                  if (rc == IDNA_DLOPEN_ERROR)
+-                    return -EAI_SYSTEM;
+-                  return -EAI_IDN_ENCODE;
++                    result = -EAI_MEMORY;
++                  else if (rc == IDNA_DLOPEN_ERROR)
++                    result = -EAI_SYSTEM;
++                  else
++                    result = -EAI_IDN_ENCODE;
++                  goto free_and_return;
+                 }
+               /* In case the output string is the same as the input
+                  string no new string has been allocated and we
+@@ -970,10 +1147,25 @@ gaih_inet (const char *name, const struc
+ #ifdef HAVE_LIBIDN
+             make_copy:
+ #endif
+-              canon = strdup (canon);
+-              if (canon == NULL)
+-                return -EAI_MEMORY;
++              if (malloc_canonbuf)
++                /* We already allocated the string using malloc.  */
++                malloc_canonbuf = false;
++              else
++                {
++                  canon = strdup (canon);
++                  if (canon == NULL)
++                    {
++                      if (malloc_tmpbuf2)
++                        free (tmpbuf2);
++
++                      result = -EAI_MEMORY;
++                      goto free_and_return;
++                    }
++                }
+             }
++
++          if (malloc_tmpbuf2)
++            free (tmpbuf2);
+         }
+       family = at2->family;
+@@ -999,7 +1191,8 @@ gaih_inet (const char *name, const struc
+           if (ai == NULL)
+             {
+               free ((char *) canon);
+-              return -EAI_MEMORY;
++              result = -EAI_MEMORY;
++              goto free_and_return;
+             }
+           ai->ai_flags = req->ai_flags;
+@@ -1052,7 +1245,18 @@ gaih_inet (const char *name, const struc
+       at2 = at2->next;
+       }
+   }
+-  return 0;
++
++ free_and_return:
++  if (malloc_name)
++    free ((char *) name);
++  if (malloc_addrmem)
++    free (addrmem);
++  if (malloc_canonbuf)
++    free (canonbuf);
++  if (malloc_tmpbuf)
++    free (tmpbuf);
++
++  return result;
+ }
diff --git a/src/patches/glibc/glibc-rh797094-2.patch b/src/patches/glibc/glibc-rh797094-2.patch
new file mode 100644 (file)
index 0000000..5aa9084
--- /dev/null
@@ -0,0 +1,862 @@
+From: Ulrich Drepper <drepper@gmail.com>
+Date: Mon, 23 May 2011 03:04:16 +0000 (-0400)
+Subject: Add a few more alloca size checks
+X-Git-Tag: glibc-2.14~41
+X-Git-Url: http://sourceware.org/git/?p=glibc.git;a=commitdiff_plain;h=f2962a71959fd254a7a223437ca4b63b9e81130c
+
+Add a few more alloca size checks
+---
+
+ 2011-05-22  Ulrich Drepper  <drepper@gmail.com>
+       [BZ #12671]
+       * nis/nss_nis/nis-alias.c (_nss_nis_getaliasbyname_r): Use malloc in
+       some situations.
+       * nscd/nscd_getserv_r.c (nscd_getserv_r): Likewise.
+       * posix/glob.c (glob_in_dir): Take additional parameter alloca_used.
+       add in in __libc_use_alloca calls.  Adjust callers.
+       (glob): Use malloc in some situations.
+diff --git a/nis/nss_nis/nis-alias.c b/nis/nss_nis/nis-alias.c
+index 9286e36..cfe4097 100644
+--- a/nis/nss_nis/nis-alias.c
++++ b/nis/nss_nis/nis-alias.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 1996-2002, 2003, 2006 Free Software Foundation, Inc.
++/* Copyright (C) 1996-2002, 2003, 2006, 2011 Free Software Foundation, Inc.
+    This file is part of the GNU C Library.
+    Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1996.
+@@ -142,10 +142,10 @@ internal_nis_getaliasent_r (struct aliasent *alias, char *buffer,
+       int yperr;
+       if (new_start)
+-        yperr = yp_first (domain, "mail.aliases", &outkey, &keylen, &result,
++      yperr = yp_first (domain, "mail.aliases", &outkey, &keylen, &result,
+                         &len);
+       else
+-        yperr = yp_next (domain, "mail.aliases", oldkey, oldkeylen, &outkey,
++      yperr = yp_next (domain, "mail.aliases", oldkey, oldkeylen, &outkey,
+                        &keylen, &result, &len);
+       if (__builtin_expect (yperr != YPERR_SUCCESS, 0))
+@@ -153,20 +153,20 @@ internal_nis_getaliasent_r (struct aliasent *alias, char *buffer,
+         enum nss_status retval = yperr2nss (yperr);
+         if (retval == NSS_STATUS_TRYAGAIN)
+-            *errnop = errno;
+-          return retval;
+-        }
++          *errnop = errno;
++        return retval;
++      }
+       if (__builtin_expect ((size_t) (len + 1) > buflen, 0))
+-        {
++      {
+         free (result);
+-          *errnop = ERANGE;
+-          return NSS_STATUS_TRYAGAIN;
+-        }
++        *errnop = ERANGE;
++        return NSS_STATUS_TRYAGAIN;
++      }
+       char *p = strncpy (buffer, result, len);
+       buffer[len] = '\0';
+       while (isspace (*p))
+-        ++p;
++      ++p;
+       free (result);
+       parse_res = _nss_nis_parse_aliasent (outkey, p, alias, buffer,
+@@ -213,13 +213,25 @@ _nss_nis_getaliasbyname_r (const char *name, struct aliasent *alias,
+       return NSS_STATUS_UNAVAIL;
+     }
+-  size_t namlen = strlen (name);
+-  char name2[namlen + 1];
+-
+   char *domain;
+   if (__builtin_expect (yp_get_default_domain (&domain), 0))
+     return NSS_STATUS_UNAVAIL;
++  size_t namlen = strlen (name);
++  char *name2;
++  int use_alloca = __libc_use_alloca (namlen + 1);
++  if (use_alloca)
++    name2 = __alloca (namlen + 1);
++  else
++    {
++      name2 = malloc (namlen + 1);
++      if (name2 == NULL)
++      {
++        *errnop = ENOMEM;
++        return NSS_STATUS_TRYAGAIN;
++      }
++    }
++
+   /* Convert name to lowercase.  */
+   size_t i;
+   for (i = 0; i < namlen; ++i)
+@@ -230,6 +242,9 @@ _nss_nis_getaliasbyname_r (const char *name, struct aliasent *alias,
+   int len;
+   int yperr = yp_match (domain, "mail.aliases", name2, namlen, &result, &len);
++  if (!use_alloca)
++    free (name2);
++
+   if (__builtin_expect (yperr != YPERR_SUCCESS, 0))
+     {
+       enum nss_status retval = yperr2nss (yperr);
+diff --git a/nscd/nscd_getserv_r.c b/nscd/nscd_getserv_r.c
+index dce4165..de96a57 100644
+--- a/nscd/nscd_getserv_r.c
++++ b/nscd/nscd_getserv_r.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2007, 2009 Free Software Foundation, Inc.
++/* Copyright (C) 2007, 2009, 2011 Free Software Foundation, Inc.
+    This file is part of the GNU C Library.
+    Contributed by Ulrich Drepper <drepper@redhat.com>, 2007.
+@@ -17,6 +17,7 @@
+    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+    02111-1307 USA.  */
++#include <assert.h>
+ #include <errno.h>
+ #include <string.h>
+ #include <not-cancel.h>
+@@ -80,6 +81,7 @@ nscd_getserv_r (const char *crit, size_t critlen, const char *proto,
+ {
+   int gc_cycle;
+   int nretries = 0;
++  size_t alloca_used = 0;
+   /* If the mapping is available, try to search there instead of
+      communicating with the nscd.  */
+@@ -88,13 +90,23 @@ nscd_getserv_r (const char *crit, size_t critlen, const char *proto,
+                              &gc_cycle);
+   size_t protolen = proto == NULL ? 0 : strlen (proto);
+   size_t keylen = critlen + 1 + protolen + 1;
+-  char *key = alloca (keylen);
++  int alloca_key = __libc_use_alloca (keylen);
++  char *key;
++  if (alloca_key)
++    key = alloca_account (keylen, alloca_used);
++  else
++    {
++      key = malloc (keylen);
++      if (key == NULL)
++      return -1;
++    }
+   memcpy (__mempcpy (__mempcpy (key, crit, critlen),
+                    "/", 1), proto ?: "", protolen + 1);
+  retry:;
+   const char *s_name = NULL;
+   const char *s_proto = NULL;
++  int alloca_aliases_len = 0;
+   const uint32_t *aliases_len = NULL;
+   const char *aliases_list = NULL;
+   int retval = -1;
+@@ -136,8 +148,22 @@ nscd_getserv_r (const char *crit, size_t critlen, const char *proto,
+         if (((uintptr_t) aliases_len & (__alignof__ (*aliases_len) - 1))
+             != 0)
+           {
+-            uint32_t *tmp = alloca (serv_resp.s_aliases_cnt
+-                                    * sizeof (uint32_t));
++            uint32_t *tmp;
++            alloca_aliases_len
++              = __libc_use_alloca (alloca_used
++                                   + (serv_resp.s_aliases_cnt
++                                      * sizeof (uint32_t)));
++            if (alloca_aliases_len)
++              tmp = __alloca (serv_resp.s_aliases_cnt * sizeof (uint32_t));
++            else
++              {
++                tmp = malloc (serv_resp.s_aliases_cnt * sizeof (uint32_t));
++                if (tmp == NULL)
++                  {
++                    retval = ENOMEM;
++                    goto out;
++                  }
++              }
+             aliases_len = memcpy (tmp, aliases_len,
+                                   serv_resp.s_aliases_cnt
+                                   * sizeof (uint32_t));
+@@ -217,8 +243,24 @@ nscd_getserv_r (const char *crit, size_t critlen, const char *proto,
+         if (serv_resp.s_aliases_cnt > 0)
+           {
+-            aliases_len = alloca (serv_resp.s_aliases_cnt
+-                                  * sizeof (uint32_t));
++            assert (alloca_aliases_len == 0);
++            alloca_aliases_len
++              = __libc_use_alloca (alloca_used
++                                   + (serv_resp.s_aliases_cnt
++                                      * sizeof (uint32_t)));
++            if (alloca_aliases_len)
++              aliases_len = alloca (serv_resp.s_aliases_cnt
++                                    * sizeof (uint32_t));
++            else
++              {
++                aliases_len = malloc (serv_resp.s_aliases_cnt
++                                      * sizeof (uint32_t));
++                if (aliases_len == NULL)
++                  {
++                    retval = ENOMEM;
++                    goto out_close;
++                  }
++              }
+             vec[n].iov_base = (void *) aliases_len;
+             vec[n].iov_len = serv_resp.s_aliases_cnt * sizeof (uint32_t);
+@@ -329,5 +371,10 @@ nscd_getserv_r (const char *crit, size_t critlen, const char *proto,
+       goto retry;
+     }
++  if (!alloca_aliases_len)
++    free ((void *) aliases_len);
++  if (!alloca_key)
++    free (key);
++
+   return retval;
+ }
+diff --git a/posix/glob.c b/posix/glob.c
+index 6df083a..79b6e50 100644
+--- a/posix/glob.c
++++ b/posix/glob.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 1991-2002, 2003, 2004, 2005, 2006, 2007, 2008, 2010
++/* Copyright (C) 1991-2002, 2003, 2004, 2005, 2006, 2007, 2008, 2010, 2011
+    Free Software Foundation, Inc.
+    This file is part of the GNU C Library.
+@@ -199,7 +199,7 @@ static const char *next_brace_sub (const char *begin, int flags) __THROW;
+ static int glob_in_dir (const char *pattern, const char *directory,
+                       int flags, int (*errfunc) (const char *, int),
+-                      glob_t *pglob);
++                      glob_t *pglob, size_t alloca_used);
+ extern int __glob_pattern_type (const char *pattern, int quote)
+     attribute_hidden;
+@@ -253,13 +253,18 @@ glob (pattern, flags, errfunc, pglob)
+      glob_t *pglob;
+ {
+   const char *filename;
+-  const char *dirname;
++  char *dirname = NULL;
+   size_t dirlen;
+   int status;
+   size_t oldcount;
+   int meta;
+   int dirname_modified;
++  int malloc_dirname = 0;
+   glob_t dirs;
++  int retval = 0;
++#ifdef _LIBC
++  size_t alloca_used = 0;
++#endif
+   if (pattern == NULL || pglob == NULL || (flags & ~__GLOB_FLAGS) != 0)
+     {
+@@ -308,20 +313,26 @@ glob (pattern, flags, errfunc, pglob)
+         const char *next;
+         const char *rest;
+         size_t rest_len;
+-#ifdef __GNUC__
+-        char onealt[strlen (pattern) - 1];
+-#else
+-        char *onealt = (char *) malloc (strlen (pattern) - 1);
+-        if (onealt == NULL)
++        char *onealt;
++        size_t pattern_len = strlen (pattern) - 1;
++#ifdef _LIBC
++        int alloca_onealt = __libc_use_alloca (alloca_used + pattern_len);
++        if (alloca_onealt)
++          onealt = alloca_account (pattern_len, alloca_used);
++        else
++#endif
+           {
+-            if (!(flags & GLOB_APPEND))
++            onealt = (char *) malloc (pattern_len);
++            if (onealt == NULL)
+               {
+-                pglob->gl_pathc = 0;
+-                pglob->gl_pathv = NULL;
++                if (!(flags & GLOB_APPEND))
++                  {
++                    pglob->gl_pathc = 0;
++                    pglob->gl_pathv = NULL;
++                  }
++                return GLOB_NOSPACE;
+               }
+-            return GLOB_NOSPACE;
+           }
+-#endif
+         /* We know the prefix for all sub-patterns.  */
+         alt_start = mempcpy (onealt, pattern, begin - pattern);
+@@ -332,9 +343,11 @@ glob (pattern, flags, errfunc, pglob)
+         if (next == NULL)
+           {
+             /* It is an illegal expression.  */
+-#ifndef __GNUC__
+-            free (onealt);
++          illegal_brace:
++#ifdef _LIBC
++            if (__builtin_expect (!alloca_onealt, 0))
+ #endif
++              free (onealt);
+             return glob (pattern, flags & ~GLOB_BRACE, errfunc, pglob);
+           }
+@@ -344,13 +357,8 @@ glob (pattern, flags, errfunc, pglob)
+           {
+             rest = next_brace_sub (rest + 1, flags);
+             if (rest == NULL)
+-              {
+-                /* It is an illegal expression.  */
+-#ifndef __GNUC__
+-                free (onealt);
+-#endif
+-                return glob (pattern, flags & ~GLOB_BRACE, errfunc, pglob);
+-              }
++              /* It is an illegal expression.  */
++              goto illegal_brace;
+           }
+         /* Please note that we now can be sure the brace expression
+            is well-formed.  */
+@@ -386,9 +394,10 @@ glob (pattern, flags, errfunc, pglob)
+             /* If we got an error, return it.  */
+             if (result && result != GLOB_NOMATCH)
+               {
+-#ifndef __GNUC__
+-                free (onealt);
++#ifdef _LIBC
++                if (__builtin_expect (!alloca_onealt, 0))
+ #endif
++                  free (onealt);
+                 if (!(flags & GLOB_APPEND))
+                   {
+                     globfree (pglob);
+@@ -406,9 +415,10 @@ glob (pattern, flags, errfunc, pglob)
+             assert (next != NULL);
+           }
+-#ifndef __GNUC__
+-        free (onealt);
++#ifdef _LIBC
++        if (__builtin_expect (!alloca_onealt, 0))
+ #endif
++          free (onealt);
+         if (pglob->gl_pathc != firstc)
+           /* We found some entries.  */
+@@ -455,7 +465,7 @@ glob (pattern, flags, errfunc, pglob)
+        case is nothing but a notation for a directory.  */
+       if ((flags & (GLOB_TILDE|GLOB_TILDE_CHECK)) && pattern[0] == '~')
+       {
+-        dirname = pattern;
++        dirname = (char *) pattern;
+         dirlen = strlen (pattern);
+         /* Set FILENAME to NULL as a special flag.  This is ugly but
+@@ -473,9 +483,9 @@ glob (pattern, flags, errfunc, pglob)
+         filename = pattern;
+ #ifdef _AMIGA
+-        dirname = "";
++        dirname = (char *) "";
+ #else
+-        dirname = ".";
++        dirname = (char *) ".";
+ #endif
+         dirlen = 0;
+       }
+@@ -485,7 +495,7 @@ glob (pattern, flags, errfunc, pglob)
+              && (flags & GLOB_NOESCAPE) == 0))
+     {
+       /* "/pattern" or "\\/pattern".  */
+-      dirname = "/";
++      dirname = (char *) "/";
+       dirlen = 1;
+       ++filename;
+     }
+@@ -511,7 +521,17 @@ glob (pattern, flags, errfunc, pglob)
+            from "d:/", since "d:" and "d:/" are not the same.*/
+       }
+ #endif
+-      newp = (char *) __alloca (dirlen + 1);
++#ifdef _LIBC
++      if (__libc_use_alloca (alloca_used + dirlen + 1))
++      newp = alloca_account (dirlen + 1, alloca_used);
++      else
++#endif
++      {
++        newp = malloc (dirlen + 1);
++        if (newp == NULL)
++          return GLOB_NOSPACE;
++        malloc_dirname = 1;
++      }
+       *((char *) mempcpy (newp, pattern, dirlen)) = '\0';
+       dirname = newp;
+       ++filename;
+@@ -551,7 +571,8 @@ glob (pattern, flags, errfunc, pglob)
+             oldcount = pglob->gl_pathc + pglob->gl_offs;
+             goto no_matches;
+           }
+-        return val;
++        retval = val;
++        goto out;
+       }
+     }
+@@ -563,7 +584,8 @@ glob (pattern, flags, errfunc, pglob)
+             && (dirname[2] == '\0' || dirname[2] == '/')))
+       {
+         /* Look up home directory.  */
+-        const char *home_dir = getenv ("HOME");
++        char *home_dir = getenv ("HOME");
++        int malloc_home_dir = 0;
+ # ifdef _AMIGA
+         if (home_dir == NULL || home_dir[0] == '\0')
+           home_dir = "SYS:";
+@@ -582,7 +604,7 @@ glob (pattern, flags, errfunc, pglob)
+               /* `sysconf' does not support _SC_LOGIN_NAME_MAX.  Try
+                  a moderate value.  */
+               buflen = 20;
+-            name = (char *) __alloca (buflen);
++            name = alloca_account (buflen, alloca_used);
+             success = getlogin_r (name, buflen) == 0;
+             if (success)
+@@ -592,6 +614,7 @@ glob (pattern, flags, errfunc, pglob)
+                 long int pwbuflen = GETPW_R_SIZE_MAX ();
+                 char *pwtmpbuf;
+                 struct passwd pwbuf;
++                int malloc_pwtmpbuf = 0;
+                 int save = errno;
+ #    ifndef _LIBC
+@@ -600,7 +623,18 @@ glob (pattern, flags, errfunc, pglob)
+                      Try a moderate value.  */
+                   pwbuflen = 1024;
+ #    endif
+-                pwtmpbuf = (char *) __alloca (pwbuflen);
++                if (__libc_use_alloca (alloca_used + pwbuflen))
++                  pwtmpbuf = alloca_account (pwbuflen, alloca_used);
++                else
++                  {
++                    pwtmpbuf = malloc (pwbuflen);
++                    if (pwtmpbuf == NULL)
++                      {
++                        retval = GLOB_NOSPACE;
++                        goto out;
++                      }
++                    malloc_pwtmpbuf = 1;
++                  }
+                 while (getpwnam_r (name, &pwbuf, pwtmpbuf, pwbuflen, &p)
+                        != 0)
+@@ -610,46 +644,115 @@ glob (pattern, flags, errfunc, pglob)
+                         p = NULL;
+                         break;
+                       }
+-#    ifdef _LIBC
+-                    pwtmpbuf = extend_alloca (pwtmpbuf, pwbuflen,
++
++                    if (!malloc_pwtmpbuf
++                        && __libc_use_alloca (alloca_used
++                                              + 2 * pwbuflen))
++                      pwtmpbuf = extend_alloca_account (pwtmpbuf, pwbuflen,
++                                                        2 * pwbuflen,
++                                                        alloca_used);
++                    else
++                      {
++                        char *newp = realloc (malloc_pwtmpbuf
++                                              ? pwtmpbuf : NULL,
+                                               2 * pwbuflen);
+-#    else
+-                    pwbuflen *= 2;
+-                    pwtmpbuf = (char *) __alloca (pwbuflen);
+-#    endif
++                        if (newp == NULL)
++                          {
++                            if (__builtin_expect (malloc_pwtmpbuf, 0))
++                              free (pwtmpbuf);
++                            retval = GLOB_NOSPACE;
++                            goto out;
++                          }
++                        pwtmpbuf = newp;
++                        pwbuflen = 2 * pwbuflen;
++                        malloc_pwtmpbuf = 1;
++                      }
+                     __set_errno (save);
+                   }
+ #   else
+                 p = getpwnam (name);
+ #   endif
+                 if (p != NULL)
+-                  home_dir = p->pw_dir;
++                  {
++                    if (!malloc_pwtmpbuf)
++                      home_dir = p->pw_dir;
++                    else
++                      {
++                        size_t home_dir_len = strlen (p->pw_dir) + 1;
++                        if (__libc_use_alloca (alloca_used + home_dir_len))
++                          home_dir = alloca_account (home_dir_len,
++                                                     alloca_used);
++                        else
++                          {
++                            home_dir = malloc (home_dir_len);
++                            if (home_dir == NULL)
++                              {
++                                free (pwtmpbuf);
++                                retval = GLOB_NOSPACE;
++                                goto out;
++                              }
++                            malloc_home_dir = 1;
++                          }
++                        memcpy (home_dir, p->pw_dir, home_dir_len);
++
++                        free (pwtmpbuf);
++                      }
++                  }
+               }
+           }
+         if (home_dir == NULL || home_dir[0] == '\0')
+           {
+             if (flags & GLOB_TILDE_CHECK)
+-              return GLOB_NOMATCH;
++              {
++                if (__builtin_expect (malloc_home_dir, 0))
++                  free (home_dir);
++                retval = GLOB_NOMATCH;
++                goto out;
++              }
+             else
+-              home_dir = "~"; /* No luck.  */
++              home_dir = (char *) "~"; /* No luck.  */
+           }
+ #  endif /* WINDOWS32 */
+ # endif
+         /* Now construct the full directory.  */
+         if (dirname[1] == '\0')
+           {
++            if (__builtin_expect (malloc_dirname, 0))
++              free (dirname);
++
+             dirname = home_dir;
+             dirlen = strlen (dirname);
++            malloc_dirname = malloc_home_dir;
+           }
+         else
+           {
+             char *newp;
+             size_t home_len = strlen (home_dir);
+-            newp = (char *) __alloca (home_len + dirlen);
++            int use_alloca = __libc_use_alloca (alloca_used
++                                                + home_len + dirlen);
++            if (use_alloca)
++              newp = alloca_account (home_len + dirlen, alloca_used);
++            else
++              {
++                newp = malloc (home_len + dirlen);
++                if (newp == NULL)
++                  {
++                    if (__builtin_expect (malloc_home_dir, 0))
++                      free (home_dir);
++                    retval = GLOB_NOSPACE;
++                    goto out;
++                  }
++              }
++
+             mempcpy (mempcpy (newp, home_dir, home_len),
+                      &dirname[1], dirlen);
++
++            if (__builtin_expect (malloc_dirname, 0))
++              free (dirname);
++
+             dirname = newp;
+             dirlen += home_len - 1;
++            malloc_dirname = !use_alloca;
+           }
+         dirname_modified = 1;
+       }
+@@ -657,7 +760,8 @@ glob (pattern, flags, errfunc, pglob)
+       else
+       {
+         char *end_name = strchr (dirname, '/');
+-        const char *user_name;
++        char *user_name;
++        int malloc_user_name = 0;
+         const char *home_dir;
+         char *unescape = NULL;
+@@ -677,7 +781,18 @@ glob (pattern, flags, errfunc, pglob)
+         else
+           {
+             char *newp;
+-            newp = (char *) __alloca (end_name - dirname);
++            if (__libc_use_alloca (alloca_used + (end_name - dirname)))
++              newp = alloca_account (end_name - dirname, alloca_used);
++            else
++              {
++                newp = malloc (end_name - dirname);
++                if (newp == NULL)
++                  {
++                    retval = GLOB_NOSPACE;
++                    goto out;
++                  }
++                malloc_user_name = 1;
++              }
+             if (unescape != NULL)
+               {
+                 char *p = mempcpy (newp, dirname + 1,
+@@ -714,6 +829,7 @@ glob (pattern, flags, errfunc, pglob)
+ #  if defined HAVE_GETPWNAM_R || defined _LIBC
+           long int buflen = GETPW_R_SIZE_MAX ();
+           char *pwtmpbuf;
++          int malloc_pwtmpbuf = 0;
+           struct passwd pwbuf;
+           int save = errno;
+@@ -723,7 +839,21 @@ glob (pattern, flags, errfunc, pglob)
+                moderate value.  */
+             buflen = 1024;
+ #   endif
+-          pwtmpbuf = (char *) __alloca (buflen);
++          if (__libc_use_alloca (alloca_used + buflen))
++            pwtmpbuf = alloca_account (buflen, alloca_used);
++          else
++            {
++              pwtmpbuf = malloc (buflen);
++              if (pwtmpbuf == NULL)
++                {
++                nomem_getpw:
++                  if (__builtin_expect (malloc_user_name, 0))
++                    free (user_name);
++                  retval = GLOB_NOSPACE;
++                  goto out;
++                }
++              malloc_pwtmpbuf = 1;
++            }
+           while (getpwnam_r (user_name, &pwbuf, pwtmpbuf, buflen, &p) != 0)
+             {
+@@ -732,40 +862,77 @@ glob (pattern, flags, errfunc, pglob)
+                   p = NULL;
+                   break;
+                 }
+-#   ifdef _LIBC
+-              pwtmpbuf = extend_alloca (pwtmpbuf, buflen, 2 * buflen);
+-#   else
+-              buflen *= 2;
+-              pwtmpbuf = __alloca (buflen);
+-#   endif
++              if (!malloc_pwtmpbuf
++                  && __libc_use_alloca (alloca_used + 2 * buflen))
++                pwtmpbuf = extend_alloca_account (pwtmpbuf, buflen,
++                                                  2 * buflen, alloca_used);
++              else
++                {
++                  char *newp = realloc (malloc_pwtmpbuf ? pwtmpbuf : NULL,
++                                        2 * buflen);
++                  if (newp == NULL)
++                    {
++                      if (__builtin_expect (malloc_pwtmpbuf, 0))
++                        free (pwtmpbuf);
++                      goto nomem_getpw;
++                    }
++                  pwtmpbuf = newp;
++                  malloc_pwtmpbuf = 1;
++                }
+               __set_errno (save);
+             }
+ #  else
+           p = getpwnam (user_name);
+ #  endif
++
++          if (__builtin_expect (malloc_user_name, 0))
++            free (user_name);
++
++          /* If we found a home directory use this.  */
+           if (p != NULL)
+-            home_dir = p->pw_dir;
++            {
++              size_t home_len = strlen (p->pw_dir);
++              size_t rest_len = end_name == NULL ? 0 : strlen (end_name);
++
++              if (__builtin_expect (malloc_dirname, 0))
++                free (dirname);
++              malloc_dirname = 0;
++
++              if (__libc_use_alloca (alloca_used + home_len + rest_len + 1))
++                dirname = alloca_account (home_len + rest_len + 1,
++                                          alloca_used);
++              else
++                {
++                  dirname = malloc (home_len + rest_len + 1);
++                  if (dirname == NULL)
++                    {
++                      if (__builtin_expect (malloc_pwtmpbuf, 0))
++                        free (pwtmpbuf);
++                      retval = GLOB_NOSPACE;
++                      goto out;
++                    }
++                  malloc_dirname = 1;
++                }
++              *((char *) mempcpy (mempcpy (dirname, p->pw_dir, home_len),
++                                  end_name, rest_len)) = '\0';
++
++              dirlen = home_len + rest_len;
++              dirname_modified = 1;
++
++              if (__builtin_expect (malloc_pwtmpbuf, 0))
++                free (pwtmpbuf);
++            }
+           else
+-            home_dir = NULL;
++            {
++              if (__builtin_expect (malloc_pwtmpbuf, 0))
++                free (pwtmpbuf);
++
++              if (flags & GLOB_TILDE_CHECK)
++                /* We have to regard it as an error if we cannot find the
++                   home directory.  */
++                return GLOB_NOMATCH;
++            }
+         }
+-        /* If we found a home directory use this.  */
+-        if (home_dir != NULL)
+-          {
+-            char *newp;
+-            size_t home_len = strlen (home_dir);
+-            size_t rest_len = end_name == NULL ? 0 : strlen (end_name);
+-            newp = (char *) __alloca (home_len + rest_len + 1);
+-            *((char *) mempcpy (mempcpy (newp, home_dir, home_len),
+-                                end_name, rest_len)) = '\0';
+-            dirname = newp;
+-            dirlen = home_len + rest_len;
+-            dirname_modified = 1;
+-          }
+-        else
+-          if (flags & GLOB_TILDE_CHECK)
+-            /* We have to regard it as an error if we cannot find the
+-               home directory.  */
+-            return GLOB_NOMATCH;
+       }
+ # endif       /* Not Amiga && not WINDOWS32.  */
+     }
+@@ -899,7 +1066,7 @@ glob (pattern, flags, errfunc, pglob)
+         status = glob_in_dir (filename, dirs.gl_pathv[i],
+                               ((flags | GLOB_APPEND)
+                                & ~(GLOB_NOCHECK | GLOB_NOMAGIC)),
+-                              errfunc, pglob);
++                              errfunc, pglob, alloca_used);
+         if (status == GLOB_NOMATCH)
+           /* No matches in this directory.  Try the next.  */
+           continue;
+@@ -1000,7 +1167,8 @@ glob (pattern, flags, errfunc, pglob)
+       }
+       if (dirname_modified)
+       flags &= ~(GLOB_NOCHECK | GLOB_NOMAGIC);
+-      status = glob_in_dir (filename, dirname, flags, errfunc, pglob);
++      status = glob_in_dir (filename, dirname, flags, errfunc, pglob,
++                          alloca_used);
+       if (status != 0)
+       {
+         if (status == GLOB_NOMATCH && flags != orig_flags
+@@ -1063,7 +1231,11 @@ glob (pattern, flags, errfunc, pglob)
+            sizeof (char *), collated_compare);
+     }
+-  return 0;
++ out:
++  if (__builtin_expect (malloc_dirname, 0))
++    free (dirname);
++
++  return retval;
+ }
+ #if defined _LIBC && !defined glob
+ libc_hidden_def (glob)
+@@ -1273,7 +1445,7 @@ link_exists2_p (const char *dir, size_t dirlen, const char *fname,
+ static int
+ glob_in_dir (const char *pattern, const char *directory, int flags,
+            int (*errfunc) (const char *, int),
+-           glob_t *pglob)
++           glob_t *pglob, size_t alloca_used)
+ {
+   size_t dirlen = strlen (directory);
+   void *stream = NULL;
+@@ -1288,11 +1460,12 @@ glob_in_dir (const char *pattern, const char *directory, int flags,
+   struct globnames *names = &init_names;
+   struct globnames *names_alloca = &init_names;
+   size_t nfound = 0;
+-  size_t allocasize = sizeof (init_names);
+   size_t cur = 0;
+   int meta;
+   int save;
++  alloca_used += sizeof (init_names);
++
+   init_names.next = NULL;
+   init_names.count = INITIAL_COUNT;
+@@ -1308,20 +1481,36 @@ glob_in_dir (const char *pattern, const char *directory, int flags,
+     {
+       /* Since we use the normal file functions we can also use stat()
+        to verify the file is there.  */
+-      struct stat st;
+-      struct_stat64 st64;
++      union
++      {
++      struct stat st;
++      struct_stat64 st64;
++      } ust;
+       size_t patlen = strlen (pattern);
+-      char *fullname = (char *) __alloca (dirlen + 1 + patlen + 1);
++      int alloca_fullname = __libc_use_alloca (alloca_used
++                                             + dirlen + 1 + patlen + 1);
++      char *fullname;
++      if (alloca_fullname)
++      fullname = alloca_account (dirlen + 1 + patlen + 1, alloca_used);
++      else
++      {
++        fullname = malloc (dirlen + 1 + patlen + 1);
++        if (fullname == NULL)
++          return GLOB_NOSPACE;
++      }
+       mempcpy (mempcpy (mempcpy (fullname, directory, dirlen),
+                       "/", 1),
+              pattern, patlen + 1);
+       if ((__builtin_expect (flags & GLOB_ALTDIRFUNC, 0)
+-         ? (*pglob->gl_stat) (fullname, &st)
+-         : __stat64 (fullname, &st64)) == 0)
++         ? (*pglob->gl_stat) (fullname, &ust.st)
++         : __stat64 (fullname, &ust.st64)) == 0)
+       /* We found this file to be existing.  Now tell the rest
+          of the function to copy this name into the result.  */
+       flags |= GLOB_NOCHECK;
++
++      if (__builtin_expect (!alloca_fullname, 0))
++      free (fullname);
+     }
+   else
+     {
+@@ -1409,9 +1598,9 @@ glob_in_dir (const char *pattern, const char *directory, int flags,
+                         size_t size = (sizeof (struct globnames)
+                                        + ((count - INITIAL_COUNT)
+                                           * sizeof (char *)));
+-                        allocasize += size;
+-                        if (__libc_use_alloca (allocasize))
+-                          newnames = names_alloca = __alloca (size);
++                        if (__libc_use_alloca (alloca_used + size))
++                          newnames = names_alloca
++                            = alloca_account (size, alloca_used);
+                         else if ((newnames = malloc (size))
+                                  == NULL)
+                           goto memory_error;
diff --git a/src/patches/glibc/glibc-rh804630.patch b/src/patches/glibc/glibc-rh804630.patch
new file mode 100644 (file)
index 0000000..75dbe94
--- /dev/null
@@ -0,0 +1,23 @@
+diff -rup c/resolv/res_send.c d/resolv/res_send.c
+--- c/resolv/res_send.c        2012-01-01 05:16:32.000000000 -0700
++++ d/resolv/res_send.c        2012-03-30 12:39:30.862467628 -0600
+@@ -409,6 +409,7 @@ __libc_res_nsend(res_state statp, const
+        */
+       if (EXT(statp).nsinit == 0) {
+               unsigned char map[MAXNS];
++              unsigned int ext_total_nscount;
+               memset (map, MAXNS, sizeof (map));
+               for (n = 0; n < MAXNS; n++) {
+@@ -422,8 +423,9 @@ __libc_res_nsend(res_state statp, const
+                       }
+               }
+               n = statp->nscount;
+-              if (statp->nscount > EXT(statp).nscount)
+-                      for (n = EXT(statp).nscount, ns = 0;
++              ext_total_nscount = EXT(statp).nscount + EXT(statp).nscount6;
++              if (statp->nscount > ext_total_nscount)
++                      for (n = ext_total_nscount, ns = 0;
+                            n < statp->nscount; n++) {
+                               while (ns < MAXNS
+                                      && EXT(statp).nsmap[ns] != MAXNS)
diff --git a/src/patches/glibc/glibc-rh804689.patch b/src/patches/glibc/glibc-rh804689.patch
new file mode 100644 (file)
index 0000000..a96a33f
--- /dev/null
@@ -0,0 +1,23 @@
+diff -rup a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c
+--- a/sysdeps/posix/getaddrinfo.c      2012-03-20 21:31:14.177358937 -0600
++++ b/sysdeps/posix/getaddrinfo.c      2012-03-21 09:13:17.198290683 -0600
+@@ -560,15 +563,11 @@ gaih_inet (const char *name, const struc
+         int no_more;
+         int old_res_options;
+-        /* If we do not have to look for IPv4 and IPv6 together, use
+-           the simple, old functions.  */
+-        if ((req->ai_family == AF_INET
+-             || (req->ai_family == AF_INET6
+-                 && ((req->ai_flags & AI_V4MAPPED) == 0
+-                     || (req->ai_flags & AI_ALL) == 0)))
+-            && (req->ai_flags & AI_CANONNAME) == 0)
++        /* If we do not have to look for IPv6 addresses, use
++           the simple, old functions, which do not support
++           IPv6 scope ids. */
++        if (req->ai_family == AF_INET)
+           {
+-            int family = req->ai_family;
+             size_t tmpbuflen = 512;
+             assert (tmpbuf == NULL);
+             tmpbuf = alloca_account (tmpbuflen, alloca_used);
diff --git a/src/patches/glibc/glibc-rh808337.patch b/src/patches/glibc/glibc-rh808337.patch
new file mode 100644 (file)
index 0000000..bc20cbc
--- /dev/null
@@ -0,0 +1,21 @@
+commit 6a5ee1029b3966c5ae9adaaa881e255b2880f511
+Author: Ulrich Drepper <drepper@gmail.com>
+Date:   Sun Mar 6 00:01:50 2011 -0500
+
+    Fix loading first object along a path when tracing.
+
+diff --git a/elf/dl-load.c b/elf/dl-load.c
+index 1ad16a0..f866066 100644
+--- a/elf/dl-load.c
++++ b/elf/dl-load.c
+@@ -2111,7 +2111,9 @@ _dl_map_object (struct link_map *loader, const char *name,
+           {
+ #ifdef SHARED
+             // XXX Correct to unconditionally default to namespace 0?
+-            l = loader ?: GL(dl_ns)[LM_ID_BASE]._ns_loaded;
++            l = (loader
++                 ?: GL(dl_ns)[LM_ID_BASE]._ns_loaded
++                 ?: &GL(dl_rtld_map));
+ #else
+             l = loader;
+ #endif
diff --git a/src/patches/glibc/glibc-rh808545.patch b/src/patches/glibc/glibc-rh808545.patch
new file mode 100644 (file)
index 0000000..9a2cae3
--- /dev/null
@@ -0,0 +1,44 @@
+diff -rup a/resolv/nss_dns/dns-host.c b/resolv/nss_dns/dns-host.c
+--- a/resolv/nss_dns/dns-host.c        2012-04-18 11:17:31.527539744 -0600
++++ b/resolv/nss_dns/dns-host.c        2012-04-18 11:21:45.441394159 -0600
+@@ -745,6 +745,10 @@ getanswer_r (const querybuf *answer, int
+       if ((qtype == T_A || qtype == T_AAAA) && type == T_CNAME)
+       {
++        /* A CNAME could also have a TTL entry.  */
++        if (ttlp != NULL && ttl < *ttlp)
++            *ttlp = ttl;
++
+         if (ap >= &host_data->aliases[MAX_NR_ALIASES - 1])
+           continue;
+         n = dn_expand (answer->buf, end_of_message, cp, tbuf, sizeof tbuf);
+@@ -906,7 +910,7 @@ getanswer_r (const querybuf *answer, int
+           {
+             register int nn;
+-            if (ttlp != NULL)
++            if (ttlp != NULL && ttl < *ttlp)
+               *ttlp = ttl;
+             if (canonp != NULL)
+               *canonp = bp;
+@@ -1082,6 +1086,11 @@ gaih_getanswer_slice (const querybuf *an
+       if (type == T_CNAME)
+       {
+         char tbuf[MAXDNAME];
++
++        /* A CNAME could also have a TTL entry.  */
++        if (ttlp != NULL && ttl < *ttlp)
++          *ttlp = ttl;
++
+         n = dn_expand (answer->buf, end_of_message, cp, tbuf, sizeof tbuf);
+         if (__builtin_expect (n < 0 || res_hnok (tbuf) == 0, 0))
+           {
+@@ -1162,7 +1171,7 @@ gaih_getanswer_slice (const querybuf *an
+       if (*firstp)
+       {
+-        if (ttlp != NULL)
++        if (ttlp != NULL && ttl < *ttlp)
+           *ttlp = ttl;
+         (*pat)->name = canon ?: h_name;
diff --git a/src/patches/glibc/glibc-rh809602.patch b/src/patches/glibc/glibc-rh809602.patch
new file mode 100644 (file)
index 0000000..81aa63a
--- /dev/null
@@ -0,0 +1,47 @@
+diff -rup a/nscd/nscd_getserv_r.c b/nscd/nscd_getserv_r.c
+--- a/nscd/nscd_getserv_r.c    2012-04-04 16:37:27.873951850 -0600
++++ b/nscd/nscd_getserv_r.c    2012-04-04 16:37:49.904837348 -0600
+@@ -124,6 +123,7 @@ nscd_getserv_r (const char *crit, size_t
+         s_name = (char *) (&found->data[0].servdata + 1);
+         serv_resp = found->data[0].servdata;
+         s_proto = s_name + serv_resp.s_name_len;
++        alloca_aliases_len = 1;
+         aliases_len = (uint32_t *) (s_proto + serv_resp.s_proto_len);
+         aliases_list = ((char *) aliases_len
+                         + serv_resp.s_aliases_cnt * sizeof (uint32_t));
+@@ -154,7 +154,9 @@ nscd_getserv_r (const char *crit, size_t
+                                    + (serv_resp.s_aliases_cnt
+                                       * sizeof (uint32_t)));
+             if (alloca_aliases_len)
+-              tmp = __alloca (serv_resp.s_aliases_cnt * sizeof (uint32_t));
++              tmp = alloca_account (serv_resp.s_aliases_cnt
++                                    * sizeof (uint32_t),
++                                    alloca_used);
+             else
+               {
+                 tmp = malloc (serv_resp.s_aliases_cnt * sizeof (uint32_t));
+@@ -249,8 +251,9 @@ nscd_getserv_r (const char *crit, size_t
+                                    + (serv_resp.s_aliases_cnt
+                                       * sizeof (uint32_t)));
+             if (alloca_aliases_len)
+-              aliases_len = alloca (serv_resp.s_aliases_cnt
+-                                    * sizeof (uint32_t));
++              aliases_len = alloca_account (serv_resp.s_aliases_cnt
++                                            * sizeof (uint32_t),
++                                            alloca_used);
+             else
+               {
+                 aliases_len = malloc (serv_resp.s_aliases_cnt
+@@ -368,7 +371,11 @@ nscd_getserv_r (const char *crit, size_t
+       }
+       if (retval != -1)
+-      goto retry;
++      {
++        if (!alloca_aliases_len)
++          free ((void *) aliases_len);
++        goto retry;
++      }
+     }
+   if (!alloca_aliases_len)
diff --git a/src/patches/glibc/glibc-rh833716.patch b/src/patches/glibc/glibc-rh833716.patch
new file mode 100644 (file)
index 0000000..e44573c
--- /dev/null
@@ -0,0 +1,45265 @@
+diff -Nrup a/stdio-common/Makefile b/stdio-common/Makefile
+--- a/stdio-common/Makefile    2012-05-23 14:54:54.670443298 -0600
++++ b/stdio-common/Makefile    2012-05-22 13:47:51.000000000 -0600
+@@ -60,7 +60,7 @@ tests := tstscanf test_rdwr test-popen t
+        tst-popen tst-unlockedio tst-fmemopen2 tst-put-error tst-fgets \
+        tst-fwrite bug16 bug17 tst-swscanf tst-sprintf2 bug18 bug18a \
+        bug19 bug19a tst-popen2 scanf13 scanf14 scanf15 bug20 bug21 bug22 \
+-       scanf16 scanf17 tst-setvbuf1 bug-vfprintf-nargs
++       scanf16 scanf17 tst-setvbuf1 bug-vfprintf-nargs bug23 bug23-2 bug23-3
+ test-srcs = tst-unbputc tst-printf
+diff -Nrup a/stdio-common/bug23-2.c b/stdio-common/bug23-2.c
+--- a/stdio-common/bug23-2.c   1969-12-31 17:00:00.000000000 -0700
++++ b/stdio-common/bug23-2.c   2012-05-24 07:12:55.331644716 -0600
+@@ -0,0 +1,70 @@
++#include <stdio.h>
++#include <string.h>
++#include <stdlib.h>
++
++static const char expected[] = "\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55%%%%%%%%%%%%%%%%%%%%%%%%%%\n";
++
++static int
++do_test (void)
++{
++  char *buf = malloc (strlen (expected) + 1);
++  snprintf (buf, strlen (expected) + 1,
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n",
++          "a", "b", "c", "d", 5);
++  return strcmp (buf, expected) != 0;
++}
++
++#define TEST_FUNCTION do_test ()
++#include "../test-skeleton.c"
+diff -Nrup a/stdio-common/bug23-3.c b/stdio-common/bug23-3.c
+--- a/stdio-common/bug23-3.c   1969-12-31 17:00:00.000000000 -0700
++++ b/stdio-common/bug23-3.c   2012-05-24 07:13:26.948480695 -0600
+@@ -0,0 +1,45076 @@
++#include <stdio.h>
++#include <string.h>
++#include <stdlib.h>
++
++static const char expected[] = "\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55%%%%%%%%%%%%%%%%%%%%%%%%%%\n";
++
++
++
++int
++do_test (void)
++{
++  char *buf = malloc (strlen (expected) + 1);
++  snprintf (buf, strlen (expected) + 1, 
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n",
++          "a", "b", "c", "d", 5);
++  return (strcmp (buf, expected) != 0);
++}
++#define TEST_FUNCTION do_test ()
++#include "../test-skeleton.c"
++
+diff -Nrup a/stdio-common/bug23.c b/stdio-common/bug23.c
+--- a/stdio-common/bug23.c     1969-12-31 17:00:00.000000000 -0700
++++ b/stdio-common/bug23.c     2012-05-24 07:12:27.636788393 -0600
+@@ -0,0 +1,22 @@
++#include <stdio.h>
++#include <string.h>
++#include <stdlib.h>
++
++static const char expected[] = "\
++\n\
++a\n\
++abbcd55%%%%%%%%%%%%%%%%%%%%%%%%%%\n";
++
++static int
++do_test (void)
++{
++  char *buf = malloc (strlen (expected) + 1);
++  snprintf (buf, strlen (expected) + 1,
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n",
++          "a", "b", "c", "d", 5);
++  return strcmp (buf, expected) != 0;
++}
++
++#define TEST_FUNCTION do_test ()
++#include "../test-skeleton.c"
+diff -Nrup a/stdio-common/vfprintf.c b/stdio-common/vfprintf.c
+--- a/stdio-common/vfprintf.c  2012-05-23 14:54:54.689443199 -0600
++++ b/stdio-common/vfprintf.c  2012-05-23 23:16:55.376155638 -0600
+@@ -238,6 +238,12 @@ vfprintf (FILE *s, const CHAR_T *format,
+   /* For the argument descriptions, which may be allocated on the heap.  */
+   void *args_malloced = NULL;
++  /* For positional argument handling.  */
++  struct printf_spec *specs;
++
++  /* Track if we malloced the SPECS array and thus must free it.  */
++  bool specs_malloced = false;
++
+   /* This table maps a character into a number representing a
+      class.  In each step there is a destination label for each
+      class.  */
+@@ -1638,10 +1644,10 @@ do_positional:
+     /* Array with information about the needed arguments.  This has to
+        be dynamically extensible.  */
+     size_t nspecs = 0;
+-    size_t nspecs_max = 32;   /* A more or less arbitrary start value.  */
+-    struct printf_spec *specs
+-      = alloca (nspecs_max * sizeof (struct printf_spec));
++    /* A more or less arbitrary start value.  */
++    size_t nspecs_size = 32 * sizeof (struct printf_spec);
++    specs = alloca (nspecs_size);
+     /* The number of arguments the format string requests.  This will
+        determine the size of the array needed to store the argument
+        attributes.  */
+@@ -1678,14 +1684,30 @@ do_positional:
+     for (f = lead_str_end; *f != L_('\0'); f = specs[nspecs++].next_fmt)
+       {
+-      if (nspecs >= nspecs_max)
++      if (nspecs * sizeof (*specs) >= nspecs_size)
+         {
+           /* Extend the array of format specifiers.  */
+           struct printf_spec *old = specs;
+-          specs = extend_alloca (specs, nspecs_max, 2 * nspecs_max);
++          if (__libc_use_alloca (2 * nspecs_size))
++            specs = extend_alloca (specs, nspecs_size, 2 * nspecs_size);
++          else
++            {
++              nspecs_size *= 2;
++              specs = malloc (nspecs_size);
++            }
++              
+           /* Copy the old array's elements to the new space.  */
+-          memmove (specs, old, nspecs * sizeof (struct printf_spec));
++          memmove (specs, old, nspecs * sizeof (*specs));
++
++          /* If we had previously malloc'd space for SPECS, then
++             release it after the copy is complete.  */
++          if (specs_malloced)
++            free (old);
++
++          /* Now set SPECS_MALLOCED if needed.  */
++         if (!__libc_use_alloca (nspecs_size))
++           specs_malloced = true;
+         }
+       /* Parse the format specifier.  */
+@@ -1998,6 +2020,8 @@ do_positional:
+   }
+ all_done:
++  if (specs_malloced)
++    free (specs);
+   free (args_malloced);
+   free (workstart);
+   /* Unlock the stream.  */
diff --git a/src/patches/glibc/glibc-rh837026.patch b/src/patches/glibc/glibc-rh837026.patch
new file mode 100644 (file)
index 0000000..558ad4f
--- /dev/null
@@ -0,0 +1,30 @@
+diff -rup a/resolv/res_send.c b/resolv/res_send.c
+--- a/resolv/res_send.c        2012-06-28 11:55:38.361886650 -0600
++++ b/resolv/res_send.c        2012-06-28 11:51:38.253963687 -0600
+@@ -424,17 +424,15 @@ __libc_res_nsend(res_state statp, const
+               }
+               n = statp->nscount;
+               ext_total_nscount = EXT(statp).nscount + EXT(statp).nscount6;
+-              if (statp->nscount > ext_total_nscount)
+-                      for (n = ext_total_nscount, ns = 0;
+-                           n < statp->nscount; n++) {
+-                              while (ns < MAXNS
+-                                     && EXT(statp).nsmap[ns] != MAXNS)
+-                                      ns++;
+-                              if (ns == MAXNS)
+-                                      break;
+-                              EXT(statp).nsmap[ns] = n;
+-                              map[n] = ns++;
+-                      }
++              for (n = 0, ns = 0; n < statp->nscount - ext_total_nscount; n++) {
++                      while (ns < MAXNS
++                             && EXT(statp).nsmap[ns] != MAXNS)
++                              ns++;
++                      if (ns == MAXNS)
++                              break;
++                      EXT(statp).nsmap[ns] = n;
++                      map[n] = ns++;
++              }
+               EXT(statp).nscount = n;
+               for (ns = 0; ns < EXT(statp).nscount; ns++) {
+                       n = map[ns];
diff --git a/src/patches/grep-2.5.1a-redhat_fixes-2.patch b/src/patches/grep-2.5.1a-redhat_fixes-2.patch
deleted file mode 100644 (file)
index 9c30342..0000000
+++ /dev/null
@@ -1,2109 +0,0 @@
-Submitted by: Alexander E. Patrakov
-Date: 2005-08-13
-Initial Package Version: 2.5.1a
-Upstream Status: Partially accepted, partially rejected, but required for LSB >= 2.0 certification
-Origin: RedHat
-Description: Various fixes from RedHat. Individual patches:
-
-   grep-2.5.1-fgrep.patch
-   grep-2.5.1-bracket.patch
-   grep-2.5-i18n.patch
-   grep-2.5.1-oi.patch
-   grep-2.5.1-manpage.patch
-   grep-2.5.1-color.patch
-   grep-2.5.1-icolor.patch
-   grep-2.5.1-egf-speedup.patch
-   grep-2.5.1-dfa-optional.patch
-   grep-2.5.1-tests.patch
-   grep-2.5.1-w.patch
-
-Testcases:
-
- -fgrep: ???, but required for other patches
- -bracket: echo "[" | LANG=en_US.UTF-8 grep "[[:space:]]"
- -i18n: many fixes for multibyte locale support, required for LSB.
- -oi: echo xxYYzz | LANG=C grep -i -o yy
- -manpage: typo
- -color: restore the background color correctly
- -icolor: ??? echo 'spam foo SPAM FOO' | grep -i --color spam
-     (but that's also fixed by -oi. Is this patch just a cleanup?)
- -egf-speedup: without this, grep is as slow as a snail in UTF-8 locales.
- -dfa-optional: disables dfa in multibyte locales by default.
- -w: (echo 'foo';echo 'fo') > /tmp/testfile && grep -F -w fo /tmp/testfile
-
-diff -urN grep-2.5.1a.orig/doc/grep.1 grep-2.5.1a/doc/grep.1
---- grep-2.5.1a.orig/doc/grep.1        2004-11-12 16:26:37.000000000 +0500
-+++ grep-2.5.1a/doc/grep.1     2005-10-23 09:49:43.000000000 +0600
-@@ -191,6 +191,7 @@
- .I PATTERN
- as a list of fixed strings, separated by newlines,
- any of which is to be matched.
-+.TP
- .BR \-P ", " \-\^\-perl-regexp
- Interpret
- .I PATTERN
-@@ -302,7 +303,7 @@
- This is especially useful for tools like zgrep, e.g.
- .B "gzip -cd foo.gz |grep --label=foo something"
- .TP
--.BR \-\^\-line-buffering
-+.BR \-\^\-line-buffered
- Use line buffering, it can be a performance penality.
- .TP
- .BR \-q ", " \-\^\-quiet ", " \-\^\-silent
-diff -urN grep-2.5.1a.orig/lib/posix/regex.h grep-2.5.1a/lib/posix/regex.h
---- grep-2.5.1a.orig/lib/posix/regex.h 2001-04-02 23:56:50.000000000 +0600
-+++ grep-2.5.1a/lib/posix/regex.h      2005-10-23 09:49:31.000000000 +0600
-@@ -109,6 +109,10 @@
-    If not set, \{, \}, {, and } are literals.  */
- #define RE_INTERVALS (RE_HAT_LISTS_NOT_NEWLINE << 1)
-+/* If this bit is set, then ignore case when matching.
-+   If not set, then case is significant.  */
-+#define RE_ICASE (RE_INVALID_INTERVAL_ORD << 1)
-+
- /* If this bit is set, +, ? and | aren't recognized as operators.
-    If not set, they are.  */
- #define RE_LIMITED_OPS (RE_INTERVALS << 1)
-diff -urN grep-2.5.1a.orig/src/dfa.c grep-2.5.1a/src/dfa.c
---- grep-2.5.1a.orig/src/dfa.c 2001-09-26 22:57:55.000000000 +0600
-+++ grep-2.5.1a/src/dfa.c      2005-10-23 09:49:17.000000000 +0600
-@@ -414,7 +414,7 @@
- /* This function fetch a wide character, and update cur_mb_len,
-    used only if the current locale is a multibyte environment.  */
--static wchar_t
-+static wint_t
- fetch_wc (char const *eoferr)
- {
-   wchar_t wc;
-@@ -423,7 +423,7 @@
-       if (eoferr != 0)
-       dfaerror (eoferr);
-       else
--      return -1;
-+      return WEOF;
-     }
-   cur_mb_len = mbrtowc(&wc, lexptr, lexleft, &mbs);
-@@ -459,7 +459,7 @@
- static void
- parse_bracket_exp_mb ()
- {
--  wchar_t wc, wc1, wc2;
-+  wint_t wc, wc1, wc2;
-   /* Work area to build a mb_char_classes.  */
-   struct mb_char_classes *work_mbc;
-@@ -496,7 +496,7 @@
-     work_mbc->invert = 0;
-   do
-     {
--      wc1 = -1; /* mark wc1 is not initialized".  */
-+      wc1 = WEOF; /* mark wc1 is not initialized".  */
-       /* Note that if we're looking at some other [:...:] construct,
-        we just treat it as a bunch of ordinary characters.  We can do
-@@ -586,7 +586,7 @@
-                     work_mbc->coll_elems[work_mbc->ncoll_elems++] = elem;
-                   }
-               }
--            wc = -1;
-+            wc1 = wc = WEOF;
-           }
-         else
-           /* We treat '[' as a normal character here.  */
-@@ -600,7 +600,7 @@
-           wc = fetch_wc(("Unbalanced ["));
-       }
--      if (wc1 == -1)
-+      if (wc1 == WEOF)
-       wc1 = fetch_wc(_("Unbalanced ["));
-       if (wc1 == L'-')
-@@ -630,17 +630,17 @@
-           }
-         REALLOC_IF_NECESSARY(work_mbc->range_sts, wchar_t,
-                              range_sts_al, work_mbc->nranges + 1);
--        work_mbc->range_sts[work_mbc->nranges] = wc;
-+        work_mbc->range_sts[work_mbc->nranges] = (wchar_t)wc;
-         REALLOC_IF_NECESSARY(work_mbc->range_ends, wchar_t,
-                              range_ends_al, work_mbc->nranges + 1);
--        work_mbc->range_ends[work_mbc->nranges++] = wc2;
-+        work_mbc->range_ends[work_mbc->nranges++] = (wchar_t)wc2;
-       }
--      else if (wc != -1)
-+      else if (wc != WEOF)
-       /* build normal characters.  */
-       {
-         REALLOC_IF_NECESSARY(work_mbc->chars, wchar_t, chars_al,
-                              work_mbc->nchars + 1);
--        work_mbc->chars[work_mbc->nchars++] = wc;
-+        work_mbc->chars[work_mbc->nchars++] = (wchar_t)wc;
-       }
-     }
-   while ((wc = wc1) != L']');
-@@ -2552,6 +2552,8 @@
-     }
-   /* match with a character?  */
-+  if (case_fold)
-+    wc = towlower (wc);
-   for (i = 0; i<work_mbc->nchars; i++)
-     {
-       if (wc == work_mbc->chars[i])
-diff -urN grep-2.5.1a.orig/src/grep.c grep-2.5.1a/src/grep.c
---- grep-2.5.1a.orig/src/grep.c        2004-11-12 16:25:35.000000000 +0500
-+++ grep-2.5.1a/src/grep.c     2005-10-23 09:50:06.000000000 +0600
-@@ -30,6 +30,12 @@
- # include <sys/time.h>
- # include <sys/resource.h>
- #endif
-+#if defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H && defined HAVE_MBRTOWC
-+/* We can handle multibyte string.  */
-+# define MBS_SUPPORT
-+# include <wchar.h>
-+# include <wctype.h>
-+#endif
- #include <stdio.h>
- #include "system.h"
- #include "getopt.h"
-@@ -558,33 +564,6 @@
-     {
-       size_t match_size;
-       size_t match_offset;
--      if(match_icase)
--        {
--        /* Yuck, this is tricky */
--          char *buf = (char*) xmalloc (lim - beg);
--        char *ibeg = buf;
--        char *ilim = ibeg + (lim - beg);
--        int i;
--        for (i = 0; i < lim - beg; i++)
--          ibeg[i] = tolower (beg[i]);
--        while ((match_offset = (*execute) (ibeg, ilim-ibeg, &match_size, 1))
--               != (size_t) -1)
--          {
--            char const *b = beg + match_offset;
--            if (b == lim)
--              break;
--            fwrite (beg, sizeof (char), match_offset, stdout);
--            printf ("\33[%sm", grep_color);
--            fwrite (b, sizeof (char), match_size, stdout);
--            fputs ("\33[00m", stdout);
--            beg = b + match_size;
--            ibeg = ibeg + match_offset + match_size;
--          }
--        fwrite (beg, 1, lim - beg, stdout);
--        free (buf);
--        lastout = lim;
--        return;
--      }
-       while (lim-beg && (match_offset = (*execute) (beg, lim - beg, &match_size, 1))
-            != (size_t) -1)
-       {
-@@ -601,6 +580,7 @@
-         fputs ("\33[00m", stdout);
-         beg = b + match_size;
-       }
-+      fputs ("\33[K", stdout);
-     }
-   fwrite (beg, 1, lim - beg, stdout);
-   if (ferror (stdout))
-@@ -1697,6 +1677,37 @@
-   if (!install_matcher (matcher) && !install_matcher ("default"))
-     abort ();
-+#ifdef MBS_SUPPORT
-+  if (MB_CUR_MAX != 1 && match_icase)
-+    {
-+      wchar_t wc;
-+      mbstate_t cur_state, prev_state;
-+      int i, len = strlen(keys);
-+
-+      memset(&cur_state, 0, sizeof(mbstate_t));
-+      for (i = 0; i <= len ;)
-+      {
-+        size_t mbclen;
-+        mbclen = mbrtowc(&wc, keys + i, len - i, &cur_state);
-+        if (mbclen == (size_t) -1 || mbclen == (size_t) -2 || mbclen == 0)
-+          {
-+            /* An invalid sequence, or a truncated multibyte character.
-+               We treat it as a singlebyte character.  */
-+            mbclen = 1;
-+          }
-+        else
-+          {
-+            if (iswupper((wint_t)wc))
-+              {
-+                wc = towlower((wint_t)wc);
-+                wcrtomb(keys + i, wc, &cur_state);
-+              }
-+          }
-+        i += mbclen;
-+      }
-+    }
-+#endif /* MBS_SUPPORT */
-+
-   (*compile)(keys, keycc);
-   if ((argc - optind > 1 && !no_filenames) || with_filenames)
-diff -urN grep-2.5.1a.orig/src/search.c grep-2.5.1a/src/search.c
---- grep-2.5.1a.orig/src/search.c      2001-04-19 09:42:14.000000000 +0600
-+++ grep-2.5.1a/src/search.c   2005-10-23 09:51:25.000000000 +0600
-@@ -18,9 +18,13 @@
- /* Written August 1992 by Mike Haertel. */
-+#ifndef _GNU_SOURCE
-+# define _GNU_SOURCE 1
-+#endif
- #ifdef HAVE_CONFIG_H
- # include <config.h>
- #endif
-+#include <assert.h>
- #include <sys/types.h>
- #if defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H && defined HAVE_MBRTOWC
- /* We can handle multibyte string.  */
-@@ -31,7 +35,7 @@
- #include "system.h"
- #include "grep.h"
--#include "regex.h"
-+#include <regex.h>
- #include "dfa.h"
- #include "kwset.h"
- #include "error.h"
-@@ -39,6 +43,9 @@
- #ifdef HAVE_LIBPCRE
- # include <pcre.h>
- #endif
-+#ifdef HAVE_LANGINFO_CODESET
-+# include <langinfo.h>
-+#endif
- #define NCHAR (UCHAR_MAX + 1)
-@@ -70,9 +77,10 @@
-    call the regexp matcher at all. */
- static int kwset_exact_matches;
--#if defined(MBS_SUPPORT)
--static char* check_multibyte_string PARAMS ((char const *buf, size_t size));
--#endif
-+/* UTF-8 encoding allows some optimizations that we can't otherwise
-+   assume in a multibyte encoding. */
-+static int using_utf8;
-+
- static void kwsinit PARAMS ((void));
- static void kwsmusts PARAMS ((void));
- static void Gcompile PARAMS ((char const *, size_t));
-@@ -84,6 +92,15 @@
- static size_t Pexecute PARAMS ((char const *, size_t, size_t *, int));
- void
-+check_utf8 (void)
-+{
-+#ifdef HAVE_LANGINFO_CODESET
-+  if (strcmp (nl_langinfo (CODESET), "UTF-8") == 0)
-+    using_utf8 = 1;
-+#endif
-+}
-+
-+void
- dfaerror (char const *mesg)
- {
-   error (2, 0, mesg);
-@@ -141,38 +158,6 @@
-     }
- }
--#ifdef MBS_SUPPORT
--/* This function allocate the array which correspond to "buf".
--   Then this check multibyte string and mark on the positions which
--   are not singlebyte character nor the first byte of a multibyte
--   character.  Caller must free the array.  */
--static char*
--check_multibyte_string(char const *buf, size_t size)
--{
--  char *mb_properties = malloc(size);
--  mbstate_t cur_state;
--  int i;
--  memset(&cur_state, 0, sizeof(mbstate_t));
--  memset(mb_properties, 0, sizeof(char)*size);
--  for (i = 0; i < size ;)
--    {
--      size_t mbclen;
--      mbclen = mbrlen(buf + i, size - i, &cur_state);
--
--      if (mbclen == (size_t) -1 || mbclen == (size_t) -2 || mbclen == 0)
--      {
--        /* An invalid sequence, or a truncated multibyte character.
--           We treat it as a singlebyte character.  */
--        mbclen = 1;
--      }
--      mb_properties[i] = mbclen;
--      i += mbclen;
--    }
--
--  return mb_properties;
--}
--#endif
--
- static void
- Gcompile (char const *pattern, size_t size)
- {
-@@ -181,7 +166,8 @@
-   size_t total = size;
-   char const *motif = pattern;
--  re_set_syntax (RE_SYNTAX_GREP | RE_HAT_LISTS_NOT_NEWLINE);
-+  check_utf8 ();
-+  re_set_syntax (RE_SYNTAX_GREP | RE_HAT_LISTS_NOT_NEWLINE | (match_icase ? RE_ICASE : 0));
-   dfasyntax (RE_SYNTAX_GREP | RE_HAT_LISTS_NOT_NEWLINE, match_icase, eolbyte);
-   /* For GNU regex compiler we have to pass the patterns separately to detect
-@@ -233,7 +219,7 @@
-       static char const line_end[] = "\\)$";
-       static char const word_beg[] = "\\(^\\|[^[:alnum:]_]\\)\\(";
-       static char const word_end[] = "\\)\\([^[:alnum:]_]\\|$\\)";
--      char *n = malloc (sizeof word_beg - 1 + size + sizeof word_end);
-+      char *n = xmalloc (sizeof word_beg - 1 + size + sizeof word_end);
-       size_t i;
-       strcpy (n, match_lines ? line_beg : word_beg);
-       i = strlen (n);
-@@ -257,14 +243,15 @@
-   size_t total = size;
-   char const *motif = pattern;
-+  check_utf8 ();
-   if (strcmp (matcher, "awk") == 0)
-     {
--      re_set_syntax (RE_SYNTAX_AWK);
-+      re_set_syntax (RE_SYNTAX_AWK | (match_icase ? RE_ICASE : 0));
-       dfasyntax (RE_SYNTAX_AWK, match_icase, eolbyte);
-     }
-   else
-     {
--      re_set_syntax (RE_SYNTAX_POSIX_EGREP);
-+      re_set_syntax (RE_SYNTAX_POSIX_EGREP | (match_icase ? RE_ICASE : 0));
-       dfasyntax (RE_SYNTAX_POSIX_EGREP, match_icase, eolbyte);
-     }
-@@ -316,7 +303,7 @@
-       static char const line_end[] = ")$";
-       static char const word_beg[] = "(^|[^[:alnum:]_])(";
-       static char const word_end[] = ")([^[:alnum:]_]|$)";
--      char *n = malloc (sizeof word_beg - 1 + size + sizeof word_end);
-+      char *n = xmalloc (sizeof word_beg - 1 + size + sizeof word_end);
-       size_t i;
-       strcpy (n, match_lines ? line_beg : word_beg);
-       i = strlen(n);
-@@ -339,15 +326,35 @@
-   char eol = eolbyte;
-   int backref, start, len;
-   struct kwsmatch kwsm;
--  size_t i;
-+  size_t i, ret_val;
-+  static int use_dfa;
-+  static int use_dfa_checked = 0;
- #ifdef MBS_SUPPORT
--  char *mb_properties = NULL;
-+  const char *last_char = NULL;
-+  int mb_cur_max = MB_CUR_MAX;
-+  mbstate_t mbs;
-+  memset (&mbs, '\0', sizeof (mbstate_t));
- #endif /* MBS_SUPPORT */
-+  if (!use_dfa_checked)
-+    {
-+      char *grep_use_dfa = getenv ("GREP_USE_DFA");
-+      if (!grep_use_dfa)
-+      {
- #ifdef MBS_SUPPORT
--  if (MB_CUR_MAX > 1 && kwset)
--    mb_properties = check_multibyte_string(buf, size);
-+        /* Turn off DFA when processing multibyte input. */
-+        use_dfa = (MB_CUR_MAX == 1);
-+#else
-+        use_dfa = 1;
- #endif /* MBS_SUPPORT */
-+      }
-+      else
-+      {
-+        use_dfa = atoi (grep_use_dfa);
-+      }
-+
-+      use_dfa_checked = 1;
-+    }
-   buflim = buf + size;
-@@ -358,47 +365,124 @@
-         if (kwset)
-           {
-             /* Find a possible match using the KWset matcher. */
--            size_t offset = kwsexec (kwset, beg, buflim - beg, &kwsm);
-+#ifdef MBS_SUPPORT
-+            size_t bytes_left = 0;
-+#endif /* MBS_SUPPORT */
-+            size_t offset;
-+#ifdef MBS_SUPPORT
-+            /* kwsexec doesn't work with match_icase and multibyte input. */
-+            if (match_icase && mb_cur_max > 1)
-+              /* Avoid kwset */
-+              offset = 0;
-+            else
-+#endif /* MBS_SUPPORT */
-+            offset = kwsexec (kwset, beg, buflim - beg, &kwsm);
-             if (offset == (size_t) -1)
--              {
-+              goto failure;
- #ifdef MBS_SUPPORT
--                if (MB_CUR_MAX > 1)
--                  free(mb_properties);
--#endif
--                return (size_t)-1;
-+            if (mb_cur_max > 1 && !using_utf8)
-+              {
-+                bytes_left = offset;
-+                while (bytes_left)
-+                  {
-+                    size_t mlen = mbrlen (beg, bytes_left, &mbs);
-+
-+                    last_char = beg;
-+                    if (mlen == (size_t) -1 || mlen == 0)
-+                      {
-+                        /* Incomplete character: treat as single-byte. */
-+                        memset (&mbs, '\0', sizeof (mbstate_t));
-+                        beg++;
-+                        bytes_left--;
-+                        continue;
-+                      }
-+
-+                    if (mlen == (size_t) -2)
-+                      /* Offset points inside multibyte character:
-+                       * no good. */
-+                      break;
-+
-+                    beg += mlen;
-+                    bytes_left -= mlen;
-+                  }
-               }
-+            else
-+#endif /* MBS_SUPPORT */
-             beg += offset;
-             /* Narrow down to the line containing the candidate, and
-                run it through DFA. */
-             end = memchr(beg, eol, buflim - beg);
-             end++;
- #ifdef MBS_SUPPORT
--            if (MB_CUR_MAX > 1 && mb_properties[beg - buf] == 0)
-+            if (mb_cur_max > 1 && bytes_left)
-               continue;
--#endif
-+#endif /* MBS_SUPPORT */
-             while (beg > buf && beg[-1] != eol)
-               --beg;
--            if (kwsm.index < kwset_exact_matches)
--              goto success;
--            if (dfaexec (&dfa, beg, end - beg, &backref) == (size_t) -1)
-+            if (
-+#ifdef MBS_SUPPORT
-+                !(match_icase && mb_cur_max > 1) &&
-+#endif /* MBS_SUPPORT */
-+                (kwsm.index < kwset_exact_matches))
-+              goto success_in_beg_and_end;
-+            if (use_dfa &&
-+                dfaexec (&dfa, beg, end - beg, &backref) == (size_t) -1)
-               continue;
-           }
-         else
-           {
-             /* No good fixed strings; start with DFA. */
--            size_t offset = dfaexec (&dfa, beg, buflim - beg, &backref);
-+#ifdef MBS_SUPPORT
-+            size_t bytes_left = 0;
-+#endif /* MBS_SUPPORT */
-+            size_t offset = 0;
-+            if (use_dfa)
-+              offset = dfaexec (&dfa, beg, buflim - beg, &backref);
-             if (offset == (size_t) -1)
-               break;
-             /* Narrow down to the line we've found. */
-+#ifdef MBS_SUPPORT
-+            if (mb_cur_max > 1 && !using_utf8)
-+              {
-+                bytes_left = offset;
-+                while (bytes_left)
-+                  {
-+                    size_t mlen = mbrlen (beg, bytes_left, &mbs);
-+
-+                    last_char = beg;
-+                    if (mlen == (size_t) -1 || mlen == 0)
-+                      {
-+                        /* Incomplete character: treat as single-byte. */
-+                        memset (&mbs, '\0', sizeof (mbstate_t));
-+                        beg++;
-+                        bytes_left--;
-+                        continue;
-+                      }
-+
-+                    if (mlen == (size_t) -2)
-+                      /* Offset points inside multibyte character:
-+                       * no good. */
-+                      break;
-+
-+                    beg += mlen;
-+                    bytes_left -= mlen;
-+                  }
-+              }
-+            else
-+#endif /* MBS_SUPPORT */
-             beg += offset;
-             end = memchr (beg, eol, buflim - beg);
-             end++;
-+#ifdef MBS_SUPPORT
-+            if (mb_cur_max > 1 && bytes_left)
-+              continue;
-+#endif /* MBS_SUPPORT */
-             while (beg > buf && beg[-1] != eol)
-               --beg;
-           }
-         /* Successful, no backreferences encountered! */
--        if (!backref)
--          goto success;
-+        if (use_dfa && !backref)
-+          goto success_in_beg_and_end;
-       }
-       else
-       end = beg + size;
-@@ -413,14 +497,11 @@
-                                      end - beg - 1, &(patterns[i].regs))))
-           {
-             len = patterns[i].regs.end[0] - start;
--            if (exact)
--              {
--                *match_size = len;
--                return start;
--              }
-+            if (exact && !match_words)
-+              goto success_in_start_and_len;
-             if ((!match_lines && !match_words)
-                 || (match_lines && len == end - beg - 1))
--              goto success;
-+              goto success_in_beg_and_end;
-             /* If -w, check if the match aligns with word boundaries.
-                We do this iteratively because:
-                (a) the line may contain more than one occurence of the
-@@ -431,10 +512,84 @@
-             if (match_words)
-               while (start >= 0)
-                 {
--                  if ((start == 0 || !WCHAR ((unsigned char) beg[start - 1]))
--                      && (len == end - beg - 1
--                          || !WCHAR ((unsigned char) beg[start + len])))
--                    goto success;
-+                  int lword_match = 0;
-+                  if (start == 0)
-+                    lword_match = 1;
-+                  else
-+                    {
-+                      assert (start > 0);
-+#ifdef MBS_SUPPORT
-+                      if (mb_cur_max > 1)
-+                        {
-+                          const char *s;
-+                          int mr;
-+                          wchar_t pwc;
-+
-+                          if (using_utf8)
-+                            {
-+                              s = beg + start - 1;
-+                              while (s > buf
-+                                     && (unsigned char) *s >= 0x80
-+                                     && (unsigned char) *s <= 0xbf)
-+                                --s;
-+                            }
-+                          else
-+                            s = last_char;
-+                          mr = mbtowc (&pwc, s, beg + start - s);
-+                          if (mr <= 0)
-+                            {
-+                              memset (&mbs, '\0', sizeof (mbstate_t));
-+                              lword_match = 1;
-+                            }
-+                          else if (!(iswalnum (pwc) || pwc == L'_')
-+                                   && mr == (int) (beg + start - s))
-+                            lword_match = 1;
-+                        }
-+                      else
-+#endif /* MBS_SUPPORT */
-+                      if (!WCHAR ((unsigned char) beg[start - 1]))
-+                        lword_match = 1;
-+                    }
-+
-+                  if (lword_match)
-+                    {
-+                      int rword_match = 0;
-+                      if (start + len == end - beg - 1)
-+                        rword_match = 1;
-+                      else
-+                        {
-+#ifdef MBS_SUPPORT
-+                          if (mb_cur_max > 1)
-+                            {
-+                              wchar_t nwc;
-+                              int mr;
-+
-+                              mr = mbtowc (&nwc, beg + start + len,
-+                                           end - beg - start - len - 1);
-+                              if (mr <= 0)
-+                                {
-+                                  memset (&mbs, '\0', sizeof (mbstate_t));
-+                                  rword_match = 1;
-+                                }
-+                              else if (!iswalnum (nwc) && nwc != L'_')
-+                                rword_match = 1;
-+                            }
-+                          else
-+#endif /* MBS_SUPPORT */
-+                          if (!WCHAR ((unsigned char) beg[start + len]))
-+                            rword_match = 1;
-+                        }
-+
-+                      if (rword_match)
-+                        {
-+                          if (!exact)
-+                            /* Returns the whole line. */
-+                            goto success_in_beg_and_end;
-+                          else
-+                            /* Returns just this word match. */
-+                            goto success_in_start_and_len;
-+                        }
-+                    }
-                   if (len > 0)
-                     {
-                       /* Try a shorter length anchored at the same place. */
-@@ -461,26 +616,154 @@
-           }
-       } /* for Regex patterns.  */
-     } /* for (beg = end ..) */
--#ifdef MBS_SUPPORT
--  if (MB_CUR_MAX > 1 && mb_properties)
--    free (mb_properties);
--#endif /* MBS_SUPPORT */
-+
-+ failure:
-   return (size_t) -1;
-- success:
--#ifdef MBS_SUPPORT
--  if (MB_CUR_MAX > 1 && mb_properties)
--    free (mb_properties);
--#endif /* MBS_SUPPORT */
--  *match_size = end - beg;
--  return beg - buf;
-+ success_in_beg_and_end:
-+  len = end - beg;
-+  start = beg - buf;
-+  /* FALLTHROUGH */
-+
-+ success_in_start_and_len:
-+  *match_size = len;
-+  return start;
- }
-+#ifdef MBS_SUPPORT
-+static int f_i_multibyte; /* whether we're using the new -Fi MB method */
-+static struct
-+{
-+  wchar_t **patterns;
-+  size_t count, maxlen;
-+  unsigned char *match;
-+} Fimb;
-+#endif
-+
- static void
- Fcompile (char const *pattern, size_t size)
- {
-+  int mb_cur_max = MB_CUR_MAX;
-   char const *beg, *lim, *err;
-+  check_utf8 ();
-+#ifdef MBS_SUPPORT
-+  /* Support -F -i for UTF-8 input. */
-+  if (match_icase && mb_cur_max > 1)
-+    {
-+      mbstate_t mbs;
-+      wchar_t *wcpattern = xmalloc ((size + 1) * sizeof (wchar_t));
-+      const char *patternend = pattern;
-+      size_t wcsize;
-+      kwset_t fimb_kwset = NULL;
-+      char *starts = NULL;
-+      wchar_t *wcbeg, *wclim;
-+      size_t allocated = 0;
-+
-+      memset (&mbs, '\0', sizeof (mbs));
-+# ifdef __GNU_LIBRARY__
-+      wcsize = mbsnrtowcs (wcpattern, &patternend, size, size, &mbs);
-+      if (patternend != pattern + size)
-+      wcsize = (size_t) -1;
-+# else
-+      {
-+      char *patterncopy = xmalloc (size + 1);
-+
-+      memcpy (patterncopy, pattern, size);
-+      patterncopy[size] = '\0';
-+      patternend = patterncopy;
-+      wcsize = mbsrtowcs (wcpattern, &patternend, size, &mbs);
-+      if (patternend != patterncopy + size)
-+        wcsize = (size_t) -1;
-+      free (patterncopy);
-+      }
-+# endif
-+      if (wcsize + 2 <= 2)
-+      {
-+fimb_fail:
-+        free (wcpattern);
-+        free (starts);
-+        if (fimb_kwset)
-+          kwsfree (fimb_kwset);
-+        free (Fimb.patterns);
-+        Fimb.patterns = NULL;
-+      }
-+      else
-+      {
-+        if (!(fimb_kwset = kwsalloc (NULL)))
-+          error (2, 0, _("memory exhausted"));
-+
-+        starts = xmalloc (mb_cur_max * 3);
-+        wcbeg = wcpattern;
-+        do
-+          {
-+            int i;
-+            size_t wclen;
-+
-+            if (Fimb.count >= allocated)
-+              {
-+                if (allocated == 0)
-+                  allocated = 128;
-+                else
-+                  allocated *= 2;
-+                Fimb.patterns = xrealloc (Fimb.patterns,
-+                                          sizeof (wchar_t *) * allocated);
-+              }
-+            Fimb.patterns[Fimb.count++] = wcbeg;
-+            for (wclim = wcbeg;
-+                 wclim < wcpattern + wcsize && *wclim != L'\n'; ++wclim)
-+              *wclim = towlower (*wclim);
-+            *wclim = L'\0';
-+            wclen = wclim - wcbeg;
-+            if (wclen > Fimb.maxlen)
-+              Fimb.maxlen = wclen;
-+            if (wclen > 3)
-+              wclen = 3;
-+            if (wclen == 0)
-+              {
-+                if ((err = kwsincr (fimb_kwset, "", 0)) != 0)
-+                  error (2, 0, err);
-+              }
-+            else
-+              for (i = 0; i < (1 << wclen); i++)
-+                {
-+                  char *p = starts;
-+                  int j, k;
-+
-+                  for (j = 0; j < wclen; ++j)
-+                    {
-+                      wchar_t wc = wcbeg[j];
-+                      if (i & (1 << j))
-+                        {
-+                          wc = towupper (wc);
-+                          if (wc == wcbeg[j])
-+                            continue;
-+                        }
-+                      k = wctomb (p, wc);
-+                      if (k <= 0)
-+                        goto fimb_fail;
-+                      p += k;
-+                    }
-+                  if ((err = kwsincr (fimb_kwset, starts, p - starts)) != 0)
-+                    error (2, 0, err);
-+                }
-+            if (wclim < wcpattern + wcsize)
-+              ++wclim;
-+            wcbeg = wclim;
-+          }
-+        while (wcbeg < wcpattern + wcsize);
-+        f_i_multibyte = 1;
-+        kwset = fimb_kwset;
-+        free (starts);
-+        Fimb.match = xmalloc (Fimb.count);
-+        if ((err = kwsprep (kwset)) != 0)
-+          error (2, 0, err);
-+        return;
-+      }
-+    }
-+#endif /* MBS_SUPPORT */
-+
-+
-   kwsinit ();
-   beg = pattern;
-   do
-@@ -499,6 +782,76 @@
-     error (2, 0, err);
- }
-+#ifdef MBS_SUPPORT
-+static int
-+Fimbexec (const char *buf, size_t size, size_t *plen, int exact)
-+{
-+  size_t len, letter, i;
-+  int ret = -1;
-+  mbstate_t mbs;
-+  wchar_t wc;
-+  int patterns_left;
-+
-+  assert (match_icase && f_i_multibyte == 1);
-+  assert (MB_CUR_MAX > 1);
-+
-+  memset (&mbs, '\0', sizeof (mbs));
-+  memset (Fimb.match, '\1', Fimb.count);
-+  letter = len = 0;
-+  patterns_left = 1;
-+  while (patterns_left && len <= size)
-+    {
-+      size_t c;
-+
-+      patterns_left = 0;
-+      if (len < size)
-+      {
-+        c = mbrtowc (&wc, buf + len, size - len, &mbs);
-+        if (c + 2 <= 2)
-+          return ret;
-+
-+        wc = towlower (wc);
-+      }
-+      else
-+      {
-+        c = 1;
-+        wc = L'\0';
-+      }
-+
-+      for (i = 0; i < Fimb.count; i++)
-+      {
-+        if (Fimb.match[i])
-+          {
-+            if (Fimb.patterns[i][letter] == L'\0')
-+              {
-+                /* Found a match. */
-+                *plen = len;
-+                if (!exact && !match_words)
-+                  return 0;
-+                else
-+                  {
-+                    /* For -w or exact look for longest match.  */
-+                    ret = 0;
-+                    Fimb.match[i] = '\0';
-+                    continue;
-+                  }
-+              }
-+
-+            if (Fimb.patterns[i][letter] == wc)
-+              patterns_left = 1;
-+            else
-+              Fimb.match[i] = '\0';
-+          }
-+      }
-+
-+      len += c;
-+      letter++;
-+    }
-+
-+  return ret;
-+}
-+#endif /* MBS_SUPPORT */
-+
- static size_t
- Fexecute (char const *buf, size_t size, size_t *match_size, int exact)
- {
-@@ -506,88 +859,268 @@
-   register size_t len;
-   char eol = eolbyte;
-   struct kwsmatch kwsmatch;
-+  size_t ret_val;
- #ifdef MBS_SUPPORT
--  char *mb_properties;
--  if (MB_CUR_MAX > 1)
--    mb_properties = check_multibyte_string (buf, size);
-+  int mb_cur_max = MB_CUR_MAX;
-+  mbstate_t mbs;
-+  memset (&mbs, '\0', sizeof (mbstate_t));
-+  const char *last_char = NULL;
- #endif /* MBS_SUPPORT */
-   for (beg = buf; beg <= buf + size; ++beg)
-     {
--      size_t offset = kwsexec (kwset, beg, buf + size - beg, &kwsmatch);
-+      size_t offset;
-+      offset = kwsexec (kwset, beg, buf + size - beg, &kwsmatch);
-+
-       if (offset == (size_t) -1)
--      {
-+      goto failure;
- #ifdef MBS_SUPPORT
--        if (MB_CUR_MAX > 1)
--          free(mb_properties);
--#endif /* MBS_SUPPORT */
--        return offset;
-+      if (mb_cur_max > 1 && !using_utf8)
-+      {
-+        size_t bytes_left = offset;
-+        while (bytes_left)
-+          {
-+            size_t mlen = mbrlen (beg, bytes_left, &mbs);
-+
-+            last_char = beg;
-+            if (mlen == (size_t) -1 || mlen == 0)
-+              {
-+                /* Incomplete character: treat as single-byte. */
-+                memset (&mbs, '\0', sizeof (mbstate_t));
-+                beg++;
-+                bytes_left--;
-+                continue;
-+              }
-+
-+            if (mlen == (size_t) -2)
-+              /* Offset points inside multibyte character: no good. */
-+              break;
-+
-+            beg += mlen;
-+            bytes_left -= mlen;
-+          }
-+
-+        if (bytes_left)
-+          continue;
-       }
--#ifdef MBS_SUPPORT
--      if (MB_CUR_MAX > 1 && mb_properties[offset+beg-buf] == 0)
--      continue; /* It is a part of multibyte character.  */
-+      else
- #endif /* MBS_SUPPORT */
-       beg += offset;
--      len = kwsmatch.size[0];
--      if (exact)
--      {
--        *match_size = len;
- #ifdef MBS_SUPPORT
--        if (MB_CUR_MAX > 1)
--          free (mb_properties);
-+      /* For f_i_multibyte, the string at beg now matches first 3 chars of
-+       one of the search strings (less if there are shorter search strings).
-+       See if this is a real match.  */
-+      if (f_i_multibyte
-+        && Fimbexec (beg, buf + size - beg, &kwsmatch.size[0], exact))
-+      goto next_char;
- #endif /* MBS_SUPPORT */
--        return beg - buf;
--      }
-+      len = kwsmatch.size[0];
-+      if (exact && !match_words)
-+      goto success_in_beg_and_len;
-       if (match_lines)
-       {
-         if (beg > buf && beg[-1] != eol)
--          continue;
-+          goto next_char;
-         if (beg + len < buf + size && beg[len] != eol)
--          continue;
-+          goto next_char;
-         goto success;
-       }
-       else if (match_words)
--      for (try = beg; len; )
--        {
--          if (try > buf && WCHAR((unsigned char) try[-1]))
--            break;
--          if (try + len < buf + size && WCHAR((unsigned char) try[len]))
--            {
--              offset = kwsexec (kwset, beg, --len, &kwsmatch);
--              if (offset == (size_t) -1)
--                {
-+      {
-+        while (len)
-+          {
-+            int word_match = 0;
-+            if (beg > buf)
-+              {
- #ifdef MBS_SUPPORT
--                  if (MB_CUR_MAX > 1)
--                    free (mb_properties);
-+                if (mb_cur_max > 1)
-+                  {
-+                    const char *s;
-+                    int mr;
-+                    wchar_t pwc;
-+
-+                    if (using_utf8)
-+                      {
-+                        s = beg - 1;
-+                        while (s > buf
-+                               && (unsigned char) *s >= 0x80
-+                               && (unsigned char) *s <= 0xbf)
-+                          --s;
-+                      }
-+                    else
-+                      s = last_char;
-+                    mr = mbtowc (&pwc, s, beg - s);
-+                    if (mr <= 0)
-+                      memset (&mbs, '\0', sizeof (mbstate_t));
-+                    else if ((iswalnum (pwc) || pwc == L'_')
-+                             && mr == (int) (beg - s))
-+                      goto next_char;
-+                  }
-+                else
- #endif /* MBS_SUPPORT */
--                  return offset;
--                }
--              try = beg + offset;
--              len = kwsmatch.size[0];
--            }
--          else
--            goto success;
--        }
-+                if (WCHAR ((unsigned char) beg[-1]))
-+                  goto next_char;
-+              }
-+#ifdef MBS_SUPPORT
-+            if (mb_cur_max > 1)
-+              {
-+                wchar_t nwc;
-+                int mr;
-+
-+                mr = mbtowc (&nwc, beg + len, buf + size - beg - len);
-+                if (mr <= 0)
-+                  {
-+                    memset (&mbs, '\0', sizeof (mbstate_t));
-+                    word_match = 1;
-+                  }
-+                else if (!iswalnum (nwc) && nwc != L'_')
-+                  word_match = 1;
-+              }
-+            else
-+#endif /* MBS_SUPPORT */
-+              if (beg + len >= buf + size || !WCHAR ((unsigned char) beg[len]))
-+                word_match = 1;
-+            if (word_match)
-+              {
-+                if (!exact)
-+                  /* Returns the whole line now we know there's a word match. */
-+                  goto success;
-+                else
-+                  /* Returns just this word match. */
-+                  goto success_in_beg_and_len;
-+              }
-+            if (len > 0)
-+              {
-+                /* Try a shorter length anchored at the same place. */
-+                --len;
-+                offset = kwsexec (kwset, beg, len, &kwsmatch);
-+
-+                if (offset == -1)
-+                  goto next_char; /* Try a different anchor. */
-+#ifdef MBS_SUPPORT
-+                if (mb_cur_max > 1 && !using_utf8)
-+                  {
-+                    size_t bytes_left = offset;
-+                    while (bytes_left)
-+                      {
-+                        size_t mlen = mbrlen (beg, bytes_left, &mbs);
-+
-+                        last_char = beg;
-+                        if (mlen == (size_t) -1 || mlen == 0)
-+                          {
-+                            /* Incomplete character: treat as single-byte. */
-+                            memset (&mbs, '\0', sizeof (mbstate_t));
-+                            beg++;
-+                            bytes_left--;
-+                            continue;
-+                          }
-+
-+                        if (mlen == (size_t) -2)
-+                          {
-+                            /* Offset points inside multibyte character:
-+                             * no good. */
-+                            break;
-+                          }
-+
-+                        beg += mlen;
-+                        bytes_left -= mlen;
-+                      }
-+
-+                    if (bytes_left)
-+                      {
-+                        memset (&mbs, '\0', sizeof (mbstate_t));
-+                        goto next_char; /* Try a different anchor. */
-+                      }
-+                  }
-+                else
-+#endif /* MBS_SUPPORT */
-+                beg += offset;
-+#ifdef MBS_SUPPORT
-+                /* The string at beg now matches first 3 chars of one of
-+                   the search strings (less if there are shorter search
-+                   strings).  See if this is a real match.  */
-+                if (f_i_multibyte
-+                    && Fimbexec (beg, len - offset, &kwsmatch.size[0],
-+                                 exact))
-+                  goto next_char;
-+#endif /* MBS_SUPPORT */
-+                len = kwsmatch.size[0];
-+              }
-+          }
-+      }
-       else
-       goto success;
--    }
--
-+next_char:;
- #ifdef MBS_SUPPORT
--  if (MB_CUR_MAX > 1)
--    free (mb_properties);
-+      /* Advance to next character.  For MB_CUR_MAX == 1 case this is handled
-+       by ++beg above.  */
-+      if (mb_cur_max > 1)
-+      {
-+        if (using_utf8)
-+          {
-+            unsigned char c = *beg;
-+            if (c >= 0xc2)
-+              {
-+                if (c < 0xe0)
-+                  ++beg;
-+                else if (c < 0xf0)
-+                  beg += 2;
-+                else if (c < 0xf8)
-+                  beg += 3;
-+                else if (c < 0xfc)
-+                  beg += 4;
-+                else if (c < 0xfe)
-+                  beg += 5;
-+              }
-+          }
-+        else
-+          {
-+            size_t l = mbrlen (beg, buf + size - beg, &mbs);
-+
-+            last_char = beg;
-+            if (l + 2 >= 2)
-+              beg += l - 1;
-+            else
-+              memset (&mbs, '\0', sizeof (mbstate_t));
-+          }
-+      }
- #endif /* MBS_SUPPORT */
-+    }
-+
-+ failure:
-   return -1;
-  success:
-+#ifdef MBS_SUPPORT
-+  if (mb_cur_max > 1 && !using_utf8)
-+    {
-+      end = beg + len;
-+      while (end < buf + size)
-+      {
-+        size_t mlen = mbrlen (end, buf + size - end, &mbs);
-+        if (mlen == (size_t) -1 || mlen == (size_t) -2 || mlen == 0)
-+          {
-+            memset (&mbs, '\0', sizeof (mbstate_t));
-+            mlen = 1;
-+          }
-+        if (mlen == 1 && *end == eol)
-+          break;
-+
-+        end += mlen;
-+      }
-+    }
-+  else
-+#endif /* MBS_SUPPORT */
-   end = memchr (beg + len, eol, (buf + size) - (beg + len));
-+
-   end++;
-   while (buf < beg && beg[-1] != eol)
-     --beg;
--  *match_size = end - beg;
--#ifdef MBS_SUPPORT
--  if (MB_CUR_MAX > 1)
--    free (mb_properties);
--#endif /* MBS_SUPPORT */
-+  len = end - beg;
-+  /* FALLTHROUGH */
-+
-+ success_in_beg_and_len:
-+  *match_size = len;
-   return beg - buf;
- }
-diff -urN grep-2.5.1a.orig/src/search.c.orig grep-2.5.1a/src/search.c.orig
---- grep-2.5.1a.orig/src/search.c.orig 1970-01-01 05:00:00.000000000 +0500
-+++ grep-2.5.1a/src/search.c.orig      2005-10-23 09:48:39.000000000 +0600
-@@ -0,0 +1,714 @@
-+/* search.c - searching subroutines using dfa, kwset and regex for grep.
-+   Copyright 1992, 1998, 2000 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
-+   the Free Software Foundation; either version 2, 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, write to the Free Software
-+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-+   02111-1307, USA.  */
-+
-+/* Written August 1992 by Mike Haertel. */
-+
-+#ifdef HAVE_CONFIG_H
-+# include <config.h>
-+#endif
-+#include <sys/types.h>
-+#if defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H && defined HAVE_MBRTOWC
-+/* We can handle multibyte string.  */
-+# define MBS_SUPPORT
-+# include <wchar.h>
-+# include <wctype.h>
-+#endif
-+
-+#include "system.h"
-+#include "grep.h"
-+#include "regex.h"
-+#include "dfa.h"
-+#include "kwset.h"
-+#include "error.h"
-+#include "xalloc.h"
-+#ifdef HAVE_LIBPCRE
-+# include <pcre.h>
-+#endif
-+
-+#define NCHAR (UCHAR_MAX + 1)
-+
-+/* For -w, we also consider _ to be word constituent.  */
-+#define WCHAR(C) (ISALNUM(C) || (C) == '_')
-+
-+/* DFA compiled regexp. */
-+static struct dfa dfa;
-+
-+/* The Regex compiled patterns.  */
-+static struct patterns
-+{
-+  /* Regex compiled regexp. */
-+  struct re_pattern_buffer regexbuf;
-+  struct re_registers regs; /* This is here on account of a BRAIN-DEAD
-+                             Q@#%!# library interface in regex.c.  */
-+} patterns0;
-+
-+struct patterns *patterns;
-+size_t pcount;
-+
-+/* KWset compiled pattern.  For Ecompile and Gcompile, we compile
-+   a list of strings, at least one of which is known to occur in
-+   any string matching the regexp. */
-+static kwset_t kwset;
-+
-+/* Number of compiled fixed strings known to exactly match the regexp.
-+   If kwsexec returns < kwset_exact_matches, then we don't need to
-+   call the regexp matcher at all. */
-+static int kwset_exact_matches;
-+
-+#if defined(MBS_SUPPORT)
-+static char* check_multibyte_string PARAMS ((char const *buf, size_t size));
-+#endif
-+static void kwsinit PARAMS ((void));
-+static void kwsmusts PARAMS ((void));
-+static void Gcompile PARAMS ((char const *, size_t));
-+static void Ecompile PARAMS ((char const *, size_t));
-+static size_t EGexecute PARAMS ((char const *, size_t, size_t *, int ));
-+static void Fcompile PARAMS ((char const *, size_t));
-+static size_t Fexecute PARAMS ((char const *, size_t, size_t *, int));
-+static void Pcompile PARAMS ((char const *, size_t ));
-+static size_t Pexecute PARAMS ((char const *, size_t, size_t *, int));
-+
-+void
-+dfaerror (char const *mesg)
-+{
-+  error (2, 0, mesg);
-+}
-+
-+static void
-+kwsinit (void)
-+{
-+  static char trans[NCHAR];
-+  int i;
-+
-+  if (match_icase)
-+    for (i = 0; i < NCHAR; ++i)
-+      trans[i] = TOLOWER (i);
-+
-+  if (!(kwset = kwsalloc (match_icase ? trans : (char *) 0)))
-+    error (2, 0, _("memory exhausted"));
-+}
-+
-+/* If the DFA turns out to have some set of fixed strings one of
-+   which must occur in the match, then we build a kwset matcher
-+   to find those strings, and thus quickly filter out impossible
-+   matches. */
-+static void
-+kwsmusts (void)
-+{
-+  struct dfamust const *dm;
-+  char const *err;
-+
-+  if (dfa.musts)
-+    {
-+      kwsinit ();
-+      /* First, we compile in the substrings known to be exact
-+       matches.  The kwset matcher will return the index
-+       of the matching string that it chooses. */
-+      for (dm = dfa.musts; dm; dm = dm->next)
-+      {
-+        if (!dm->exact)
-+          continue;
-+        ++kwset_exact_matches;
-+        if ((err = kwsincr (kwset, dm->must, strlen (dm->must))) != 0)
-+          error (2, 0, err);
-+      }
-+      /* Now, we compile the substrings that will require
-+       the use of the regexp matcher.  */
-+      for (dm = dfa.musts; dm; dm = dm->next)
-+      {
-+        if (dm->exact)
-+          continue;
-+        if ((err = kwsincr (kwset, dm->must, strlen (dm->must))) != 0)
-+          error (2, 0, err);
-+      }
-+      if ((err = kwsprep (kwset)) != 0)
-+      error (2, 0, err);
-+    }
-+}
-+
-+#ifdef MBS_SUPPORT
-+/* This function allocate the array which correspond to "buf".
-+   Then this check multibyte string and mark on the positions which
-+   are not singlebyte character nor the first byte of a multibyte
-+   character.  Caller must free the array.  */
-+static char*
-+check_multibyte_string(char const *buf, size_t size)
-+{
-+  char *mb_properties = malloc(size);
-+  mbstate_t cur_state;
-+  int i;
-+  memset(&cur_state, 0, sizeof(mbstate_t));
-+  memset(mb_properties, 0, sizeof(char)*size);
-+  for (i = 0; i < size ;)
-+    {
-+      size_t mbclen;
-+      mbclen = mbrlen(buf + i, size - i, &cur_state);
-+
-+      if (mbclen == (size_t) -1 || mbclen == (size_t) -2 || mbclen == 0)
-+      {
-+        /* An invalid sequence, or a truncated multibyte character.
-+           We treat it as a singlebyte character.  */
-+        mbclen = 1;
-+      }
-+      mb_properties[i] = mbclen;
-+      i += mbclen;
-+    }
-+
-+  return mb_properties;
-+}
-+#endif
-+
-+static void
-+Gcompile (char const *pattern, size_t size)
-+{
-+  const char *err;
-+  char const *sep;
-+  size_t total = size;
-+  char const *motif = pattern;
-+
-+  re_set_syntax (RE_SYNTAX_GREP | RE_HAT_LISTS_NOT_NEWLINE);
-+  dfasyntax (RE_SYNTAX_GREP | RE_HAT_LISTS_NOT_NEWLINE, match_icase, eolbyte);
-+
-+  /* For GNU regex compiler we have to pass the patterns separately to detect
-+     errors like "[\nallo\n]\n".  The patterns here are "[", "allo" and "]"
-+     GNU regex should have raise a syntax error.  The same for backref, where
-+     the backref should have been local to each pattern.  */
-+  do
-+    {
-+      size_t len;
-+      sep = memchr (motif, '\n', total);
-+      if (sep)
-+      {
-+        len = sep - motif;
-+        sep++;
-+        total -= (len + 1);
-+      }
-+      else
-+      {
-+        len = total;
-+        total = 0;
-+      }
-+
-+      patterns = realloc (patterns, (pcount + 1) * sizeof (*patterns));
-+      if (patterns == NULL)
-+      error (2, errno, _("memory exhausted"));
-+
-+      patterns[pcount] = patterns0;
-+
-+      if ((err = re_compile_pattern (motif, len,
-+                                  &(patterns[pcount].regexbuf))) != 0)
-+      error (2, 0, err);
-+      pcount++;
-+
-+      motif = sep;
-+    } while (sep && total != 0);
-+
-+  /* In the match_words and match_lines cases, we use a different pattern
-+     for the DFA matcher that will quickly throw out cases that won't work.
-+     Then if DFA succeeds we do some hairy stuff using the regex matcher
-+     to decide whether the match should really count. */
-+  if (match_words || match_lines)
-+    {
-+      /* In the whole-word case, we use the pattern:
-+       \(^\|[^[:alnum:]_]\)\(userpattern\)\([^[:alnum:]_]|$\).
-+       In the whole-line case, we use the pattern:
-+       ^\(userpattern\)$.  */
-+
-+      static char const line_beg[] = "^\\(";
-+      static char const line_end[] = "\\)$";
-+      static char const word_beg[] = "\\(^\\|[^[:alnum:]_]\\)\\(";
-+      static char const word_end[] = "\\)\\([^[:alnum:]_]\\|$\\)";
-+      char *n = malloc (sizeof word_beg - 1 + size + sizeof word_end);
-+      size_t i;
-+      strcpy (n, match_lines ? line_beg : word_beg);
-+      i = strlen (n);
-+      memcpy (n + i, pattern, size);
-+      i += size;
-+      strcpy (n + i, match_lines ? line_end : word_end);
-+      i += strlen (n + i);
-+      pattern = n;
-+      size = i;
-+    }
-+
-+  dfacomp (pattern, size, &dfa, 1);
-+  kwsmusts ();
-+}
-+
-+static void
-+Ecompile (char const *pattern, size_t size)
-+{
-+  const char *err;
-+  const char *sep;
-+  size_t total = size;
-+  char const *motif = pattern;
-+
-+  if (strcmp (matcher, "awk") == 0)
-+    {
-+      re_set_syntax (RE_SYNTAX_AWK);
-+      dfasyntax (RE_SYNTAX_AWK, match_icase, eolbyte);
-+    }
-+  else
-+    {
-+      re_set_syntax (RE_SYNTAX_POSIX_EGREP);
-+      dfasyntax (RE_SYNTAX_POSIX_EGREP, match_icase, eolbyte);
-+    }
-+
-+  /* For GNU regex compiler we have to pass the patterns separately to detect
-+     errors like "[\nallo\n]\n".  The patterns here are "[", "allo" and "]"
-+     GNU regex should have raise a syntax error.  The same for backref, where
-+     the backref should have been local to each pattern.  */
-+  do
-+    {
-+      size_t len;
-+      sep = memchr (motif, '\n', total);
-+      if (sep)
-+      {
-+        len = sep - motif;
-+        sep++;
-+        total -= (len + 1);
-+      }
-+      else
-+      {
-+        len = total;
-+        total = 0;
-+      }
-+
-+      patterns = realloc (patterns, (pcount + 1) * sizeof (*patterns));
-+      if (patterns == NULL)
-+      error (2, errno, _("memory exhausted"));
-+      patterns[pcount] = patterns0;
-+
-+      if ((err = re_compile_pattern (motif, len,
-+                                  &(patterns[pcount].regexbuf))) != 0)
-+      error (2, 0, err);
-+      pcount++;
-+
-+      motif = sep;
-+    } while (sep && total != 0);
-+
-+  /* In the match_words and match_lines cases, we use a different pattern
-+     for the DFA matcher that will quickly throw out cases that won't work.
-+     Then if DFA succeeds we do some hairy stuff using the regex matcher
-+     to decide whether the match should really count. */
-+  if (match_words || match_lines)
-+    {
-+      /* In the whole-word case, we use the pattern:
-+       (^|[^[:alnum:]_])(userpattern)([^[:alnum:]_]|$).
-+       In the whole-line case, we use the pattern:
-+       ^(userpattern)$.  */
-+
-+      static char const line_beg[] = "^(";
-+      static char const line_end[] = ")$";
-+      static char const word_beg[] = "(^|[^[:alnum:]_])(";
-+      static char const word_end[] = ")([^[:alnum:]_]|$)";
-+      char *n = malloc (sizeof word_beg - 1 + size + sizeof word_end);
-+      size_t i;
-+      strcpy (n, match_lines ? line_beg : word_beg);
-+      i = strlen(n);
-+      memcpy (n + i, pattern, size);
-+      i += size;
-+      strcpy (n + i, match_lines ? line_end : word_end);
-+      i += strlen (n + i);
-+      pattern = n;
-+      size = i;
-+    }
-+
-+  dfacomp (pattern, size, &dfa, 1);
-+  kwsmusts ();
-+}
-+
-+static size_t
-+EGexecute (char const *buf, size_t size, size_t *match_size, int exact)
-+{
-+  register char const *buflim, *beg, *end;
-+  char eol = eolbyte;
-+  int backref, start, len;
-+  struct kwsmatch kwsm;
-+  size_t i;
-+#ifdef MBS_SUPPORT
-+  char *mb_properties = NULL;
-+#endif /* MBS_SUPPORT */
-+
-+#ifdef MBS_SUPPORT
-+  if (MB_CUR_MAX > 1 && kwset)
-+    mb_properties = check_multibyte_string(buf, size);
-+#endif /* MBS_SUPPORT */
-+
-+  buflim = buf + size;
-+
-+  for (beg = end = buf; end < buflim; beg = end)
-+    {
-+      if (!exact)
-+      {
-+        if (kwset)
-+          {
-+            /* Find a possible match using the KWset matcher. */
-+            size_t offset = kwsexec (kwset, beg, buflim - beg, &kwsm);
-+            if (offset == (size_t) -1)
-+              goto failure;
-+            beg += offset;
-+            /* Narrow down to the line containing the candidate, and
-+               run it through DFA. */
-+            end = memchr(beg, eol, buflim - beg);
-+            end++;
-+#ifdef MBS_SUPPORT
-+            if (MB_CUR_MAX > 1 && mb_properties[beg - buf] == 0)
-+              continue;
-+#endif
-+            while (beg > buf && beg[-1] != eol)
-+              --beg;
-+            if (kwsm.index < kwset_exact_matches)
-+              goto success_in_beg_and_end;
-+            if (dfaexec (&dfa, beg, end - beg, &backref) == (size_t) -1)
-+              continue;
-+          }
-+        else
-+          {
-+            /* No good fixed strings; start with DFA. */
-+            size_t offset = dfaexec (&dfa, beg, buflim - beg, &backref);
-+            if (offset == (size_t) -1)
-+              break;
-+            /* Narrow down to the line we've found. */
-+            beg += offset;
-+            end = memchr (beg, eol, buflim - beg);
-+            end++;
-+            while (beg > buf && beg[-1] != eol)
-+              --beg;
-+          }
-+        /* Successful, no backreferences encountered! */
-+        if (!backref)
-+          goto success_in_beg_and_end;
-+      }
-+      else
-+      end = beg + size;
-+
-+      /* If we've made it to this point, this means DFA has seen
-+       a probable match, and we need to run it through Regex. */
-+      for (i = 0; i < pcount; i++)
-+      {
-+        patterns[i].regexbuf.not_eol = 0;
-+        if (0 <= (start = re_search (&(patterns[i].regexbuf), beg,
-+                                     end - beg - 1, 0,
-+                                     end - beg - 1, &(patterns[i].regs))))
-+          {
-+            len = patterns[i].regs.end[0] - start;
-+            if (exact && !match_words)
-+              goto success_in_start_and_len;
-+            if ((!match_lines && !match_words)
-+                || (match_lines && len == end - beg - 1))
-+              goto success_in_beg_and_end;
-+            /* If -w, check if the match aligns with word boundaries.
-+               We do this iteratively because:
-+               (a) the line may contain more than one occurence of the
-+               pattern, and
-+               (b) Several alternatives in the pattern might be valid at a
-+               given point, and we may need to consider a shorter one to
-+               find a word boundary.  */
-+            if (match_words)
-+              while (start >= 0)
-+                {
-+                  if ((start == 0 || !WCHAR ((unsigned char) beg[start - 1]))
-+                      && (len == end - beg - 1
-+                          || !WCHAR ((unsigned char) beg[start + len])))
-+                    goto success_in_beg_and_end;
-+                  if (len > 0)
-+                    {
-+                      /* Try a shorter length anchored at the same place. */
-+                      --len;
-+                      patterns[i].regexbuf.not_eol = 1;
-+                      len = re_match (&(patterns[i].regexbuf), beg,
-+                                      start + len, start,
-+                                      &(patterns[i].regs));
-+                    }
-+                  if (len <= 0)
-+                    {
-+                      /* Try looking further on. */
-+                      if (start == end - beg - 1)
-+                        break;
-+                      ++start;
-+                      patterns[i].regexbuf.not_eol = 0;
-+                      start = re_search (&(patterns[i].regexbuf), beg,
-+                                         end - beg - 1,
-+                                         start, end - beg - 1 - start,
-+                                         &(patterns[i].regs));
-+                      len = patterns[i].regs.end[0] - start;
-+                    }
-+                }
-+          }
-+      } /* for Regex patterns.  */
-+    } /* for (beg = end ..) */
-+
-+ failure:
-+#ifdef MBS_SUPPORT
-+  if (MB_CUR_MAX > 1 && mb_properties)
-+    free (mb_properties);
-+#endif /* MBS_SUPPORT */
-+  return (size_t) -1;
-+
-+ success_in_beg_and_end:
-+  len = end - beg;
-+  start = beg - buf;
-+  /* FALLTHROUGH */
-+
-+ success_in_start_and_len:
-+#ifdef MBS_SUPPORT
-+  if (MB_CUR_MAX > 1 && mb_properties)
-+    free (mb_properties);
-+#endif /* MBS_SUPPORT */
-+  *match_size = len;
-+  return start;
-+}
-+
-+static void
-+Fcompile (char const *pattern, size_t size)
-+{
-+  char const *beg, *lim, *err;
-+
-+  kwsinit ();
-+  beg = pattern;
-+  do
-+    {
-+      for (lim = beg; lim < pattern + size && *lim != '\n'; ++lim)
-+      ;
-+      if ((err = kwsincr (kwset, beg, lim - beg)) != 0)
-+      error (2, 0, err);
-+      if (lim < pattern + size)
-+      ++lim;
-+      beg = lim;
-+    }
-+  while (beg < pattern + size);
-+
-+  if ((err = kwsprep (kwset)) != 0)
-+    error (2, 0, err);
-+}
-+
-+static size_t
-+Fexecute (char const *buf, size_t size, size_t *match_size, int exact)
-+{
-+  register char const *beg, *try, *end;
-+  register size_t len;
-+  char eol = eolbyte;
-+  struct kwsmatch kwsmatch;
-+#ifdef MBS_SUPPORT
-+  char *mb_properties;
-+  if (MB_CUR_MAX > 1)
-+    mb_properties = check_multibyte_string (buf, size);
-+#endif /* MBS_SUPPORT */
-+
-+  for (beg = buf; beg <= buf + size; ++beg)
-+    {
-+      size_t offset = kwsexec (kwset, beg, buf + size - beg, &kwsmatch);
-+      if (offset == (size_t) -1)
-+      goto failure;
-+#ifdef MBS_SUPPORT
-+      if (MB_CUR_MAX > 1 && mb_properties[offset+beg-buf] == 0)
-+      continue; /* It is a part of multibyte character.  */
-+#endif /* MBS_SUPPORT */
-+      beg += offset;
-+      len = kwsmatch.size[0];
-+      if (exact && !match_words)
-+      goto success_in_beg_and_len;
-+      if (match_lines)
-+      {
-+        if (beg > buf && beg[-1] != eol)
-+          continue;
-+        if (beg + len < buf + size && beg[len] != eol)
-+          continue;
-+        goto success;
-+      }
-+      else if (match_words)
-+      for (try = beg; len; )
-+        {
-+          if (try > buf && WCHAR((unsigned char) try[-1]))
-+            break;
-+          if (try + len < buf + size && WCHAR((unsigned char) try[len]))
-+            {
-+              offset = kwsexec (kwset, beg, --len, &kwsmatch);
-+              if (offset == (size_t) -1)
-+                {
-+#ifdef MBS_SUPPORT
-+                  if (MB_CUR_MAX > 1)
-+                    free (mb_properties);
-+#endif /* MBS_SUPPORT */
-+                  return offset;
-+                }
-+              try = beg + offset;
-+              len = kwsmatch.size[0];
-+            }
-+          else
-+            goto success;
-+        }
-+      else
-+      goto success;
-+    }
-+
-+ failure:
-+#ifdef MBS_SUPPORT
-+  if (MB_CUR_MAX > 1)
-+    free (mb_properties);
-+#endif /* MBS_SUPPORT */
-+  return -1;
-+
-+ success:
-+  end = memchr (beg + len, eol, (buf + size) - (beg + len));
-+  end++;
-+  while (buf < beg && beg[-1] != eol)
-+    --beg;
-+  len = end - beg;
-+  /* FALLTHROUGH */
-+
-+ success_in_beg_and_len:
-+  *match_size = len;
-+#ifdef MBS_SUPPORT
-+  if (MB_CUR_MAX > 1)
-+    free (mb_properties);
-+#endif /* MBS_SUPPORT */
-+  return beg - buf;
-+}
-+
-+#if HAVE_LIBPCRE
-+/* Compiled internal form of a Perl regular expression.  */
-+static pcre *cre;
-+
-+/* Additional information about the pattern.  */
-+static pcre_extra *extra;
-+#endif
-+
-+static void
-+Pcompile (char const *pattern, size_t size)
-+{
-+#if !HAVE_LIBPCRE
-+  error (2, 0, _("The -P option is not supported"));
-+#else
-+  int e;
-+  char const *ep;
-+  char *re = xmalloc (4 * size + 7);
-+  int flags = PCRE_MULTILINE | (match_icase ? PCRE_CASELESS : 0);
-+  char const *patlim = pattern + size;
-+  char *n = re;
-+  char const *p;
-+  char const *pnul;
-+
-+  /* FIXME: Remove this restriction.  */
-+  if (eolbyte != '\n')
-+    error (2, 0, _("The -P and -z options cannot be combined"));
-+
-+  *n = '\0';
-+  if (match_lines)
-+    strcpy (n, "^(");
-+  if (match_words)
-+    strcpy (n, "\\b(");
-+  n += strlen (n);
-+
-+  /* The PCRE interface doesn't allow NUL bytes in the pattern, so
-+     replace each NUL byte in the pattern with the four characters
-+     "\000", removing a preceding backslash if there are an odd
-+     number of backslashes before the NUL.
-+
-+     FIXME: This method does not work with some multibyte character
-+     encodings, notably Shift-JIS, where a multibyte character can end
-+     in a backslash byte.  */
-+  for (p = pattern; (pnul = memchr (p, '\0', patlim - p)); p = pnul + 1)
-+    {
-+      memcpy (n, p, pnul - p);
-+      n += pnul - p;
-+      for (p = pnul; pattern < p && p[-1] == '\\'; p--)
-+      continue;
-+      n -= (pnul - p) & 1;
-+      strcpy (n, "\\000");
-+      n += 4;
-+    }
-+
-+  memcpy (n, p, patlim - p);
-+  n += patlim - p;
-+  *n = '\0';
-+  if (match_words)
-+    strcpy (n, ")\\b");
-+  if (match_lines)
-+    strcpy (n, ")$");
-+
-+  cre = pcre_compile (re, flags, &ep, &e, pcre_maketables ());
-+  if (!cre)
-+    error (2, 0, ep);
-+
-+  extra = pcre_study (cre, 0, &ep);
-+  if (ep)
-+    error (2, 0, ep);
-+
-+  free (re);
-+#endif
-+}
-+
-+static size_t
-+Pexecute (char const *buf, size_t size, size_t *match_size, int exact)
-+{
-+#if !HAVE_LIBPCRE
-+  abort ();
-+  return -1;
-+#else
-+  /* This array must have at least two elements; everything after that
-+     is just for performance improvement in pcre_exec.  */
-+  int sub[300];
-+
-+  int e = pcre_exec (cre, extra, buf, size, 0, 0,
-+                   sub, sizeof sub / sizeof *sub);
-+
-+  if (e <= 0)
-+    {
-+      switch (e)
-+      {
-+      case PCRE_ERROR_NOMATCH:
-+        return -1;
-+
-+      case PCRE_ERROR_NOMEMORY:
-+        error (2, 0, _("Memory exhausted"));
-+
-+      default:
-+        abort ();
-+      }
-+    }
-+  else
-+    {
-+      /* Narrow down to the line we've found.  */
-+      char const *beg = buf + sub[0];
-+      char const *end = buf + sub[1];
-+      char const *buflim = buf + size;
-+      char eol = eolbyte;
-+      if (!exact)
-+      {
-+        end = memchr (end, eol, buflim - end);
-+        end++;
-+        while (buf < beg && beg[-1] != eol)
-+          --beg;
-+      }
-+
-+      *match_size = end - beg;
-+      return beg - buf;
-+    }
-+#endif
-+}
-+
-+struct matcher const matchers[] = {
-+  { "default", Gcompile, EGexecute },
-+  { "grep", Gcompile, EGexecute },
-+  { "egrep", Ecompile, EGexecute },
-+  { "awk", Ecompile, EGexecute },
-+  { "fgrep", Fcompile, Fexecute },
-+  { "perl", Pcompile, Pexecute },
-+  { "", 0, 0 },
-+};
-diff -urN grep-2.5.1a.orig/tests/fmbtest.sh grep-2.5.1a/tests/fmbtest.sh
---- grep-2.5.1a.orig/tests/fmbtest.sh  1970-01-01 05:00:00.000000000 +0500
-+++ grep-2.5.1a/tests/fmbtest.sh       2005-10-23 09:51:12.000000000 +0600
-@@ -0,0 +1,111 @@
-+#!/bin/sh
-+
-+: ${srcdir=.}
-+
-+# If cs_CZ.UTF-8 locale doesn't work, skip this test silently
-+LC_ALL=cs_CZ.UTF-8 locale -k LC_CTYPE 2>/dev/null | ${GREP} -q charmap.*UTF-8 \
-+  || exit 77
-+
-+failures=0
-+
-+cat > csinput <<EOF
-+01 Žluťoučká číše
-+ČíŠE 02
-+03 Z číší Čiší cosi
-+04 Čí
-+Še 05
-+06 ČČČČČČČíšČÍŠčíš
-+07 ČČČ ČČČČíšČÍŠčíšEEEE
-+čAs 08
-+09Čapka
-+10ČaSy se měnÍ
-+ČÍšE11
-+Čas12
-+𝇕ČÍšE𝇓13
-+ŽČÍšE𝇓14
-+𝇕ČÍšEŽ15
-+ŽČÍšEŽ16
-+ČÍšE𝇓17
-+ČÍšEŽ18
-+19𝇕ČÍše
-+20ŽČÍše
-+EOF
-+cat > cspatfile <<EOF
-+ČÍšE
-+Čas
-+EOF
-+
-+for mode in F G E; do
-+
-+test1="$(echo `LC_ALL=cs_CZ.UTF-8 ${GREP} -${mode} -f cspatfile csinput \
-+             | LC_ALL=C sed 's/^.*\([0-9][0-9]\).*$/\1/'`)"
-+if test "$test1" != "11 12 13 14 15 16 17 18"; then
-+  echo "Test #1 ${mode} failed: $test1"
-+  failures=1
-+fi
-+
-+test2="$(echo `LC_ALL=cs_CZ.UTF-8 ${GREP} -${mode}i -f cspatfile csinput \
-+             | LC_ALL=C sed 's/^.*\([0-9][0-9]\).*$/\1/'`)"
-+if test "$test2" != "01 02 07 08 10 11 12 13 14 15 16 17 18 19 20"; then
-+  echo "Test #2 ${mode} failed: $test2"
-+  failures=1
-+fi
-+
-+test3="$(echo `LC_ALL=cs_CZ.UTF-8 ${GREP} -${mode}i -e 'ČÍšE' -e 'Čas' csinput \
-+             | LC_ALL=C sed 's/^.*\([0-9][0-9]\).*$/\1/'`)"
-+if test "$test3" != "01 02 07 08 10 11 12 13 14 15 16 17 18 19 20"; then
-+  echo "Test #3 ${mode} failed: $test3"
-+  failures=1
-+fi
-+
-+test4="$(echo `LC_ALL=cs_CZ.UTF-8 ${GREP} -${mode}iw -f cspatfile csinput \
-+             | LC_ALL=C sed 's/^.*\([0-9][0-9]\).*$/\1/'`)"
-+if test "$test4" != "01 02 08 13 17 19"; then
-+  echo "Test #4 ${mode} failed: $test4"
-+  failures=1
-+fi
-+
-+done
-+
-+# Test that -F --color=always prefers longer matches.
-+test5="`echo 'Cosi tu ČišÍ...' \
-+      | LC_ALL=cs_CZ.UTF-8 ${GREP} --color=always -Fi -e 'čiš' -e 'čiší'`"
-+if echo "$test5" | LC_ALL=C ${GREP} -q 'Cosi tu .*\[.*mČišÍ.*\[.*m\(.\[K\)\?\.\.\.'; then
-+  :
-+else
-+  echo "Test #5 F failed: $test5"
-+  failures=1
-+fi
-+
-+for mode in G E; do
-+
-+# Test that -{G,E} --color=always prefers earlier pattern matches.
-+test6="`echo 'Cosi tu ČišÍ...' \
-+      | LC_ALL=cs_CZ.UTF-8 ${GREP} --color=always -${mode}i -e 'čiš' -e 'čiší'`"
-+if echo "$test6" | LC_ALL=C ${GREP} -q 'Cosi tu .*\[.*mČiš.*\[.*m\(.\[K\)\?Í\.\.\.'; then
-+  :
-+else
-+  echo "Test #6 ${mode} failed: $test6"
-+  failures=1
-+fi
-+
-+# Test that -{G,E} --color=always prefers earlier pattern matches.
-+test7="`echo 'Cosi tu ČišÍ...' \
-+      | LC_ALL=cs_CZ.UTF-8 ${GREP} --color=always -${mode}i -e 'čiší' -e 'čiš'`"
-+if echo "$test7" | LC_ALL=C ${GREP} -q 'Cosi tu .*\[.*mČišÍ.*\[.*m\(.\[K\)\?\.\.\.'; then
-+  :
-+else
-+  echo "Test #7 ${mode} failed: $test7"
-+  failures=1
-+fi
-+
-+test8="$(echo `LC_ALL=cs_CZ.UTF-8 ${GREP} -${mode}i -e 'Č.šE' -e 'Č[a-f]s' csinput \
-+             | LC_ALL=C sed 's/^.*\([0-9][0-9]\).*$/\1/'`)"
-+if test "$test8" != "01 02 07 08 10 11 12 13 14 15 16 17 18 19 20"; then
-+  echo "Test #8 ${mode} failed: $test8"
-+  failures=1
-+fi
-+
-+done
-+
-+exit $failures
-diff -urN grep-2.5.1a.orig/tests/Makefile.am grep-2.5.1a/tests/Makefile.am
---- grep-2.5.1a.orig/tests/Makefile.am 2001-03-07 09:11:27.000000000 +0500
-+++ grep-2.5.1a/tests/Makefile.am      2005-10-23 09:51:12.000000000 +0600
-@@ -3,7 +3,8 @@
- AWK=@AWK@
- TESTS = warning.sh khadafy.sh spencer1.sh bre.sh ere.sh \
--        status.sh empty.sh options.sh backref.sh file.sh
-+        status.sh empty.sh options.sh backref.sh file.sh \
-+        fmbtest.sh
- EXTRA_DIST = $(TESTS) \
-              khadafy.lines khadafy.regexp \
-              spencer1.awk spencer1.tests \
-diff -urN grep-2.5.1a.orig/tests/Makefile.in grep-2.5.1a/tests/Makefile.in
---- grep-2.5.1a.orig/tests/Makefile.in 2002-03-26 21:09:36.000000000 +0500
-+++ grep-2.5.1a/tests/Makefile.in      2005-10-23 09:51:13.000000000 +0600
-@@ -97,7 +97,8 @@
- AWK = @AWK@
- TESTS = warning.sh khadafy.sh spencer1.sh bre.sh ere.sh \
--        status.sh empty.sh options.sh backref.sh file.sh
-+        status.sh empty.sh options.sh backref.sh file.sh \
-+      fmbtest.sh
- EXTRA_DIST = $(TESTS) \
-              khadafy.lines khadafy.regexp \
diff --git a/src/patches/grub-0.90-append.patch b/src/patches/grub-0.90-append.patch
deleted file mode 100644 (file)
index 88f79d0..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
---- grub-0.90/stage2/stage2.c.append   Thu Dec 20 08:20:48 2001
-+++ grub-0.90/stage2/stage2.c  Thu Dec 20 17:01:20 2001
-@@ -500,7 +500,8 @@
-         if (config_entries)
-           printf ("\
-       Press enter to boot the selected OS, \'e\' to edit the\n\
--      commands before booting, or \'c\' for a command-line.");
-+      commands before booting, \'a\' to modify the kernel arguments\n\
-+      before booting, or \'c\' for a command-line.");
-         else
-           printf ("\
-       Press \'b\' to boot, \'e\' to edit the selected command in the\n\
-@@ -787,6 +788,98 @@
-                 enter_cmdline (heap, 0);
-                 goto restart;
-               }
-+            if (config_entries && c == 'a')
-+              {
-+                int new_num_entries = 0, i = 0, j;
-+                int needs_padding, amount;
-+                char *new_heap;
-+                char * entries;
-+                char * entry_copy;
-+                char * append_line;
-+                char * start;
-+
-+                entry_copy = new_heap = heap;
-+                cur_entry = get_entry (config_entries, first_entry + entryno,
-+                                       1);
-+                
-+                do
-+                  {
-+                    while ((*(new_heap++) = cur_entry[i++]) != 0);
-+                    new_num_entries++;
-+                  }
-+                while (config_entries && cur_entry[i]);
-+
-+                /* this only needs to be done if config_entries is non-NULL,
-+                   but it doesn't hurt to do it always */
-+                *(new_heap++) = 0;
-+
-+                new_heap = heap + NEW_HEAPSIZE + 1;
-+
-+                entries = entry_copy;
-+                while (*entries) 
-+                  {
-+                    if ((strstr(entries, "kernel") == entries) &&
-+                        isspace(entries[6])) 
-+                        break;
-+
-+                    while (*entries) entries++;
-+                    entries++;
-+                  }
-+
-+                if (!*entries)
-+                    goto restart;
-+
-+                start = entries + 6;
-+
-+                /* skip the white space */
-+                while (*start && isspace(*start)) start++;
-+                /* skip the kernel name */
-+                while (*start && !isspace(*start)) start++;
-+
-+                /* skip the white space */
-+                needs_padding = (!*start || !isspace(*start));
-+                while (*start && isspace(*start)) start++;
-+
-+                append_line = new_heap;
-+                grub_strcpy(append_line, start);
-+
-+                cls();
-+                print_cmdline_message (CMDLINE_EDIT_MODE);
-+
-+                if (get_cmdline(PACKAGE " append> ", 
-+                                  append_line, NEW_HEAPSIZE + 1, 
-+                                  0, 1))
-+                    goto restart;
-+
-+                /* have new args; append_line points to the
-+                   new args and start points to the old
-+                   args */
-+
-+                i = grub_strlen(start);
-+                j = grub_strlen(append_line);
-+
-+                if (i > (j + needs_padding))
-+                    amount = i;
-+                else
-+                    amount = j + needs_padding;
-+
-+                /* align rest of commands properly */
-+                memmove (start + j + needs_padding, start + i,
-+                     ((int) append_line) - ((int) start) - (amount));
-+
-+                if (needs_padding)
-+                    *start = ' ';
-+
-+                /* copy command to correct area */
-+                memmove (start + needs_padding, append_line, j);
-+
-+                /* set up this entry to boot */
-+                config_entries = NULL;
-+                cur_entry = entry_copy;
-+                heap = new_heap;
-+
-+                break;
-+              }
- #ifdef GRUB_UTIL
-             if (c == 'q')
-               {
diff --git a/src/patches/grub-0.90-symlinkmenulst.patch b/src/patches/grub-0.90-symlinkmenulst.patch
deleted file mode 100644 (file)
index 553d15a..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-Only in grub: ChangeLog~
-diff -ur grub-0.90/util/grub-install.in grub/util/grub-install.in
---- grub-0.90/util/grub-install.in     Wed Sep  5 15:50:06 2001
-+++ grub/util/grub-install.in  Wed Sep  5 15:50:24 2001
-@@ -320,6 +320,10 @@
-     exit 1
- fi
-+if ! test -e ${grubdir}/grub.conf ; then
-+    test -e ${grubdir}/menu.lst && ln -s ./menu.lst ${grubdir}/grub.conf
-+fi
-+
- # Create a safe temporary file.
- test -x /bin/mktemp && log_file=`/bin/mktemp /tmp/grub-install.log.XXXXXX`
-Only in grub/util: grub-install.in.orig
diff --git a/src/patches/grub-0.91-splashimagehelp.patch b/src/patches/grub-0.91-splashimagehelp.patch
deleted file mode 100644 (file)
index cc78073..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-diff -ur grub-0.91/docs/grub.texi grub/docs/grub.texi
---- grub-0.91/docs/grub.texi   Mon Jan 21 22:57:46 2002
-+++ grub/docs/grub.texi        Mon Jan 21 22:57:51 2002
-@@ -1891,6 +1891,7 @@
- * rarp::                        Initialize a network device via RARP
- * serial::                      Set up a serial device
- * setkey::                      Configure the key map
-+* splashimage::                 Use a splash image
- * terminal::                    Choose a terminal
- * tftpserver::                  Specify a TFTP server
- * unhide::                      Unhide a partition
-@@ -2260,6 +2261,16 @@
- @end deffn
-+@node splashimage
-+@subsection splashimage
-+
-+@deffn Command splashimage file
-+Select an image to use as the background image.  This should be
-+specified using normal GRUB device naming syntax.  The format of the
-+file is a gzipped xpm which is 640x480 with a 14 color palette.
-+@end deffn
-+
-+
- @node terminal
- @subsection terminal
diff --git a/src/patches/grub-0.93-configfile.patch b/src/patches/grub-0.93-configfile.patch
deleted file mode 100644 (file)
index 9cb1182..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
---- grub-0.93/stage2/asm.S.config      2002-12-02 18:18:56.000000000 -0500
-+++ grub-0.93/stage2/asm.S     2002-12-28 22:01:24.000000000 -0500
-@@ -97,7 +97,7 @@
-       .string VERSION
- VARIABLE(config_file)
- #ifndef STAGE1_5
--      .string "/boot/grub/menu.lst"
-+      .string "/boot/grub/grub.conf"
- #else   /* STAGE1_5 */
-       .long   0xffffffff
-       .string "/boot/grub/stage2"
---- grub-0.93/stage2/builtins.c.config 2002-12-03 23:41:57.000000000 -0500
-+++ grub-0.93/stage2/builtins.c        2002-12-28 22:01:24.000000000 -0500
-@@ -3838,7 +3838,7 @@
-   /* The prefix was determined.  */
-   grub_sprintf (stage2, "%s%s", prefix, "/stage2");
--  grub_sprintf (config_filename, "%s%s", prefix, "/menu.lst");
-+  grub_sprintf (config_filename, "%s%s", prefix, "/grub.conf");
-   *real_config_filename = 0;
-   /* Check if stage2 exists.  */
---- grub-0.93/grub/asmstub.c.config    2002-12-02 18:20:45.000000000 -0500
-+++ grub-0.93/grub/asmstub.c   2002-12-28 22:01:24.000000000 -0500
-@@ -71,7 +71,7 @@
- unsigned long boot_drive = 0;
- int saved_entryno = 0;
- char version_string[] = VERSION;
--char config_file[128] = "/boot/grub/menu.lst"; /* FIXME: arbitrary */
-+char config_file[128] = "/boot/grub/grub.conf"; /* FIXME: arbitrary */
- unsigned long linux_text_len = 0;
- char *linux_data_tmp_addr = 0;
- char *linux_data_real_addr = 0;
---- grub-0.93/docs/grub.8.config       2002-12-07 22:17:59.000000000 -0500
-+++ grub-0.93/docs/grub.8      2002-12-28 22:01:24.000000000 -0500
-@@ -15,7 +15,7 @@
- specify stage2 boot_drive [default=0x0]
- .TP
- \fB\-\-config\-file\fR=\fIFILE\fR
--specify stage2 config_file [default=/boot/grub/menu.lst]
-+specify stage2 config_file [default=/boot/grub/grub.conf]
- .TP
- \fB\-\-device\-map\fR=\fIFILE\fR
- use the device map file FILE
---- grub-0.93/docs/grub.texi.config    2002-12-02 17:35:28.000000000 -0500
-+++ grub-0.93/docs/grub.texi   2002-12-28 22:01:24.000000000 -0500
-@@ -989,7 +989,7 @@
- keys) that will do everything to boot an OS.
- To enable the menu, you need a configuration file,
--@file{menu.lst} under the boot directory. We'll analyze an example
-+@file{grub.conf} under the boot directory. We'll analyze an example
- file.
- The file first contains some general settings, the menu interface
-@@ -1596,8 +1596,8 @@
- An absolute file name resembles a Unix absolute file name, using
- @samp{/} for the directory separator (not @samp{\} as in DOS). One
--example is @samp{(hd0,0)/boot/grub/menu.lst}. This means the file
--@file{/boot/grub/menu.lst} in the first partition of the first hard
-+example is @samp{(hd0,0)/boot/grub/grub.conf}. This means the file
-+@file{/boot/grub/grub.conf} in the first partition of the first hard
- disk. If you omit the device name in an absolute file name, GRUB uses
- GRUB's @dfn{root device} implicitly. So if you set the root device to,
- say, @samp{(hd1,0)} by the command @command{root} (@pxref{root}), then
-@@ -3249,7 +3249,7 @@
- @item --config-file=@var{file}
- Read the configuration file @var{file} instead of
--@file{/boot/grub/menu.lst}. The format is the same as the normal GRUB
-+@file{/boot/grub/grub.conf}. The format is the same as the normal GRUB
- syntax. See @ref{Filesystem}, for more information.
- @item --boot-drive=@var{drive}
diff --git a/src/patches/grub-0.93-endedit.patch b/src/patches/grub-0.93-endedit.patch
deleted file mode 100644 (file)
index eb0463c..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-Index: stage2/cmdline.c
-===================================================================
-RCS file: /cvsroot/grub/grub/stage2/cmdline.c,v
-retrieving revision 1.27
-diff -u -r1.27 cmdline.c
---- stage2/cmdline.c   3 Dec 2002 00:02:53 -0000       1.27
-+++ stage2/cmdline.c   6 Jan 2003 05:33:33 -0000
-@@ -48,12 +48,17 @@
- /* Print a helpful message for the command-line interface.  */
- void
--print_cmdline_message (int forever)
-+print_cmdline_message (int type)
- {
-   printf (" [ Minimal BASH-like line editing is supported.  For the first word, TAB\n"
-         "   lists possible command completions.  Anywhere else TAB lists the possible\n"
--        "   completions of a device/filename.%s ]\n",
--        (forever ? "" : "  ESC at any time exits."));
-+        "   completions of a device/filename.");
-+  if (type == CMDLINE_NORMAL_MODE)
-+    printf("  ESC at any time exits.");
-+  if (type == CMDLINE_EDIT_MODE)
-+    printf("  ESC at any time cancels.  ENTER \n"
-+           "   at any time accepts your changes.");
-+  printf("]\n");
- }
- /* Find the builtin whose command name is COMMAND and return the
-@@ -128,7 +133,7 @@
-   print_network_configuration ();
-   grub_putchar ('\n');
- #endif
--  print_cmdline_message (forever);
-+  print_cmdline_message (forever ? CMDLINE_FOREVER_MODE : CMDLINE_NORMAL_MODE);
-   
-   while (1)
-     {
-Index: stage2/shared.h
-===================================================================
-RCS file: /cvsroot/grub/grub/stage2/shared.h,v
-retrieving revision 1.90
-diff -u -r1.90 shared.h
---- stage2/shared.h    3 Dec 2002 00:02:53 -0000       1.90
-+++ stage2/shared.h    6 Jan 2003 05:33:33 -0000
-@@ -843,9 +843,15 @@
- void init_config (void);
- char *skip_to (int after_equal, char *cmdline);
- struct builtin *find_command (char *command);
--void print_cmdline_message (int forever);
- void enter_cmdline (char *heap, int forever);
- int run_script (char *script, char *heap);
-+
-+/* the flags for the cmdline message */
-+#define CMDLINE_FOREVER_MODE 0x0
-+#define CMDLINE_NORMAL_MODE 0x1
-+#define CMDLINE_EDIT_MODE 0x2
-+
-+void print_cmdline_message (int type);
- #endif
- /* C library replacement functions with identical semantics. */
-Index: stage2/stage2.c
-===================================================================
-RCS file: /cvsroot/grub/grub/stage2/stage2.c,v
-retrieving revision 1.42
-diff -u -r1.42 stage2.c
---- stage2/stage2.c    4 Dec 2002 00:55:45 -0000       1.42
-+++ stage2/stage2.c    6 Jan 2003 05:33:33 -0000
-@@ -655,7 +655,7 @@
-                 else
-                   {
-                     cls ();
--                    print_cmdline_message (0);
-+                    print_cmdline_message (CMDLINE_EDIT_MODE);
-                     new_heap = heap + NEW_HEAPSIZE + 1;
diff --git a/src/patches/grub-0.93-graphics-bootterm.patch b/src/patches/grub-0.93-graphics-bootterm.patch
deleted file mode 100644 (file)
index 1e2be9a..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
---- grub-0.93/stage2/builtins.c.bootterm       2002-12-29 02:01:50.000000000 -0500
-+++ grub-0.93/stage2/builtins.c        2002-12-29 02:01:07.000000000 -0500
-@@ -233,12 +233,22 @@
- static int
- boot_func (char *arg, int flags)
- {
-+  struct term_entry *prev_term = current_term;
-   /* Clear the int15 handler if we can boot the kernel successfully.
-      This assumes that the boot code never fails only if KERNEL_TYPE is
-      not KERNEL_TYPE_NONE. Is this assumption is bad?  */
-   if (kernel_type != KERNEL_TYPE_NONE)
-     unset_int15_handler ();
-+  /* if our terminal needed initialization, we should shut it down
-+   * before booting the kernel, but we want to save what it was so
-+   * we can come back if needed */
-+  if (current_term->shutdown) 
-+    {
-+      (*current_term->shutdown)();
-+      current_term = term_table; /* assumption: console is first */
-+    }
-+
- #ifdef SUPPORT_NETBOOT
-   /* Shut down the networking.  */
-   cleanup_net ();
-@@ -302,6 +312,13 @@
-       return 1;
-     }
-+  /* if we get back here, we should go back to what our term was before */
-+  current_term = prev_term;
-+  if (current_term->startup)
-+      /* if our terminal fails to initialize, fall back to console since
-+       * it should always work */
-+      if ((*current_term->startup)() == 0)
-+          current_term = term_table; /* we know that console is first */
-   return 0;
- }
diff --git a/src/patches/grub-0.93-special-device-names.patch b/src/patches/grub-0.93-special-device-names.patch
deleted file mode 100644 (file)
index 894f3e8..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
---- grub-0.93/lib/device.c.raid        2002-05-20 05:53:46.000000000 -0400
-+++ grub-0.93/lib/device.c     2002-12-28 23:24:10.000000000 -0500
-@@ -689,7 +689,14 @@
-       if (strcmp (dev + strlen(dev) - 5, "/disc") == 0)
-       strcpy (dev + strlen(dev) - 5, "/part");
-     }
--  sprintf (dev + strlen(dev), "%d", ((partition >> 16) & 0xFF) + 1);
-+
-+  sprintf (dev + strlen(dev), "%s%d", 
-+         /* Compaq smart and others */
-+         (strncmp(dev, "/dev/ida/", 9) == 0 ||
-+          strncmp(dev, "/dev/ataraid/", 13) == 0 ||
-+          strncmp(dev, "/dev/cciss/", 11) == 0 ||
-+          strncmp(dev, "/dev/rd/", 8) == 0) ? "p" : "",
-+         ((partition >> 16) & 0xFF) + 1);
-   
-   /* Open the partition.  */
-   fd = open (dev, O_RDWR);
diff --git a/src/patches/grub-0.94-i2o.patch b/src/patches/grub-0.94-i2o.patch
deleted file mode 100644 (file)
index 2af846c..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-Only in grub-0.94/docs: grub.info
-Only in grub-0.94/docs: multiboot.info
-diff -ur grub-0.94/lib/device.c grub-0.94.new/lib/device.c
---- grub-0.94/lib/device.c     2004-05-07 04:50:36.375238696 +0200
-+++ grub-0.94.new/lib/device.c 2004-05-07 04:48:57.611253104 +0200
-@@ -419,6 +419,12 @@
- {
-   sprintf (name, "/dev/rd/c%dd%d", controller, drive);
- }
-+
-+static void
-+get_i2o_disk_name (char *name, int unit)
-+{
-+  sprintf (name, "/dev/i2o/hd%c", unit + 'a');
-+}
- #endif
- /* Check if DEVICE can be read. If an error occurs, return zero,
-@@ -789,6 +795,26 @@
-         }
-       }
-   }
-+
-+  /* I2O disks.  */
-+  for (i = 0; i < 8; i++)
-+    {
-+      char name[16];
-+      
-+      get_i2o_disk_name (name, i);
-+      if (check_device (name))
-+      {
-+        (*map)[num_hd + 0x80] = strdup (name);
-+        assert ((*map)[num_hd + 0x80]);
-+        
-+        /* If the device map file is opened, write the map.  */
-+        if (fp)
-+          fprintf (fp, "(hd%d)\t%s\n", num_hd, name);
-+        
-+        num_hd++;
-+      }
-+    }
-+  
- #endif /* __linux__ */
-   
-   /* OK, close the device map file if opened.  */
diff --git a/src/patches/grub-0.94-installcopyonly.patch b/src/patches/grub-0.94-installcopyonly.patch
deleted file mode 100644 (file)
index a2e38fb..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
---- grub-0.94/util/grub-install.in.copyonly    2004-02-02 16:33:29.172127985 -0500
-+++ grub-0.94/util/grub-install.in     2004-02-02 16:34:26.027454320 -0500
-@@ -40,6 +40,7 @@
- force_lba=
- recheck=no
- debug=no
-+justcopy=no
- # look for secure tempfile creation wrappers on this platform
- if test -x /bin/tempfile; then
-@@ -221,6 +222,17 @@
-     echo "$tmp_fname"
- }
-+copy_images() {
-+    # Copy the GRUB images to the GRUB directory.
-+    for file in ${grubdir}/stage1 ${grubdir}/stage2 ${grubdir}/*stage1_5; do
-+      rm -f $file || exit 1
-+    done
-+    for file in \
-+      ${pkgdatadir}/stage1 ${pkgdatadir}/stage2 ${pkgdatadir}/*stage1_5; do
-+      cp -f $file ${grubdir} || exit 1
-+    done
-+}
-+
- # Check the arguments.
- for option in "$@"; do
-     case "$option" in
-@@ -240,6 +252,8 @@
-       force_lba="--force-lba" ;;
-     --recheck)
-       recheck=yes ;;
-+    --just-copy)
-+        justcopy=yes ;;
-     # This is an undocumented feature...
-     --debug)
-       debug=yes ;;
-@@ -258,12 +272,6 @@
-     esac
- done
--if test "x$install_device" = x; then
--    echo "install_device not specified." 1>&2
--    usage
--    exit 1
--fi
--
- # If the debugging feature is enabled, print commands.
- if test $debug = yes; then
-     set -x
-@@ -286,6 +294,18 @@
- grubdir=${bootdir}/grub
- device_map=${grubdir}/device.map
-+# if they just want the images copied, copy the images and then exit
-+if test $justcopy = yes; then
-+    copy_images
-+    exit 0
-+fi
-+
-+if test "x$install_device" = x; then
-+    echo "install_device not specified." 1>&2
-+    usage
-+    exit 1
-+fi
-+
- # Check if GRUB is installed.
- # This is necessary, because the user can specify "grub --read-only".
- set $grub_shell dummy
-@@ -317,14 +337,7 @@
- test -d "$bootdir" || mkdir "$bootdir" || exit 1
- test -d "$grubdir" || mkdir "$grubdir" || exit 1
--# Copy the GRUB images to the GRUB directory.
--for file in ${grubdir}/stage1 ${grubdir}/stage2 ${grubdir}/*stage1_5; do
--    rm -f $file || exit 1
--done
--for file in \
--    ${pkgdatadir}/stage1 ${pkgdatadir}/stage2 ${pkgdatadir}/*stage1_5; do
--    cp -f $file ${grubdir} || exit 1
--done
-+copy_images
- # If --recheck is specified, remove the device map, if present.
- if test $recheck = yes; then
diff --git a/src/patches/grub-0.95-graphics.patch b/src/patches/grub-0.95-graphics.patch
deleted file mode 100644 (file)
index 0c62b77..0000000
+++ /dev/null
@@ -1,1283 +0,0 @@
---- grub-0.95/stage2/asm.S.graphics    2004-06-18 17:35:51.932054040 -0400
-+++ grub-0.95/stage2/asm.S     2004-06-18 17:35:52.473971656 -0400
-@@ -2215,6 +2215,156 @@
-       pop     %ebx
-       pop     %ebp
-       ret
-+
-+/* graphics mode functions */
-+#ifdef SUPPORT_GRAPHICS
-+VARIABLE(cursorX)
-+.word 0
-+VARIABLE(cursorY)
-+.word 0
-+VARIABLE(cursorCount)
-+.word 0
-+VARIABLE(cursorBuf)
-+.byte 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
-+
-+      
-+/*
-+ * int set_videomode(mode)
-+ * BIOS call "INT 10H Function 0h" to set video mode
-+ *    Call with       %ah = 0x0
-+ *                    %al = video mode
-+ *      Returns old videomode.
-+ */
-+ENTRY(set_videomode)
-+      push    %ebp
-+      push    %ebx
-+      push    %ecx
-+
-+      movb    0x10(%esp), %cl
-+
-+      call    EXT_C(prot_to_real)
-+      .code16
-+
-+      xorw    %bx, %bx
-+      movb    $0xf, %ah
-+      int     $0x10                   /* Get Current Video mode */
-+      movb    %al, %ch
-+      xorb    %ah, %ah
-+      movb    %cl, %al
-+        int   $0x10                   /* Set Video mode */
-+
-+      DATA32  call    EXT_C(real_to_prot)
-+      .code32
-+
-+      xorb    %ah, %ah
-+      movb    %ch, %al
-+
-+      pop     %ecx
-+      pop     %ebx
-+      pop     %ebp
-+      ret
-+
-+
-+/*
-+ * unsigned char * graphics_get_font()
-+ * BIOS call "INT 10H Function 11h" to set font
-+ *      Call with       %ah = 0x11
-+ */
-+ENTRY(graphics_get_font)
-+      push    %ebp
-+      push    %ebx
-+      push    %ecx
-+      push    %edx
-+
-+      call    EXT_C(prot_to_real)
-+      .code16
-+
-+      movw    $0x1130, %ax
-+      movb    $6, %bh         /* font 8x16 */
-+      int     $0x10
-+      movw    %bp, %dx
-+      movw    %es, %cx
-+
-+      DATA32  call    EXT_C(real_to_prot)
-+      .code32
-+
-+      xorl    %eax, %eax
-+      movw    %cx, %ax
-+      shll    $4, %eax
-+      movw    %dx, %ax
-+
-+      pop     %edx
-+      pop     %ecx
-+      pop     %ebx
-+      pop     %ebp
-+      ret
-+      
-+
-+      
-+/*
-+ * graphics_set_palette(index, red, green, blue)
-+ * BIOS call "INT 10H Function 10h" to set individual dac register
-+ *    Call with       %ah = 0x10
-+ *                    %bx = register number
-+ *                    %ch = new value for green (0-63)
-+ *                    %cl = new value for blue (0-63)
-+ *                    %dh = new value for red (0-63)
-+ */
-+
-+ENTRY(graphics_set_palette)
-+      push    %ebp
-+      push    %eax
-+      push    %ebx
-+      push    %ecx
-+      push    %edx
-+
-+      movw    $0x3c8, %bx             /* address write mode register */
-+
-+      /* wait vertical retrace */
-+
-+      movw    $0x3da, %dx
-+l1b:  inb     %dx, %al        /* wait vertical active display */
-+      test    $8, %al
-+      jnz     l1b
-+
-+l2b:  inb     %dx, %al        /* wait vertical retrace */
-+      test    $8, %al
-+      jnz     l2b
-+
-+      mov     %bx, %dx
-+      movb    0x18(%esp), %al         /* index */
-+      outb    %al, %dx
-+      inc     %dx
-+
-+      movb    0x1c(%esp), %al         /* red */
-+      outb    %al, %dx
-+
-+      movb    0x20(%esp), %al         /* green */
-+      outb    %al, %dx
-+
-+      movb    0x24(%esp), %al         /* blue */
-+      outb    %al, %dx
-+
-+      movw    0x18(%esp), %bx
-+
-+      call    EXT_C(prot_to_real)
-+      .code16
-+
-+      movb    %bl, %bh
-+      movw    $0x1000, %ax
-+      int     $0x10
-+
-+      DATA32  call    EXT_C(real_to_prot)
-+      .code32 
-+
-+      pop     %edx
-+      pop     %ecx
-+      pop     %ebx
-+      pop     %eax
-+      pop     %ebp
-+      ret
-+
-+#endif /* SUPPORT_GRAPHICS */
-               
- /*
-  * getrtsecs()
---- grub-0.95/stage2/stage2.c.graphics 2004-06-18 17:35:52.314995824 -0400
-+++ grub-0.95/stage2/stage2.c  2004-06-18 17:35:52.494968464 -0400
-@@ -233,6 +233,7 @@
- {
-   int c, time1, time2 = -1, first_entry = 0;
-   char *cur_entry = 0;
-+  struct term_entry *prev_term = NULL;
-   /*
-    *  Main loop for menu UI.
-@@ -807,6 +808,15 @@
-   
-   cls ();
-   setcursor (1);
-+  /* if our terminal needed initialization, we should shut it down
-+   * before booting the kernel, but we want to save what it was so
-+   * we can come back if needed */
-+  prev_term = current_term;
-+  if (current_term->shutdown) 
-+    {
-+      (*current_term->shutdown)();
-+      current_term = term_table; /* assumption: console is first */
-+    }
-   
-   while (1)
-     {
-@@ -838,6 +848,13 @@
-       break;
-     }
-+  /* if we get back here, we should go back to what our term was before */
-+  current_term = prev_term;
-+  if (current_term->startup)
-+      /* if our terminal fails to initialize, fall back to console since
-+       * it should always work */
-+      if ((*current_term->startup)() == 0)
-+          current_term = term_table; /* we know that console is first */
-   show_menu = 1;
-   goto restart;
- }
-@@ -1082,6 +1099,10 @@
-         while (is_preset);
-       }
-+      /* go ahead and make sure the terminal is setup */
-+      if (current_term->startup)
-+        (*current_term->startup)();
-+
-       if (! num_entries)
-       {
-         /* If no acceptable config file, goto command-line, starting
---- grub-0.95/stage2/builtins.c.graphics       2004-06-18 17:35:52.370987312 -0400
-+++ grub-0.95/stage2/builtins.c        2004-06-18 17:35:52.482970288 -0400
-@@ -858,6 +858,138 @@
- };
- #endif /* SUPPORT_NETBOOT */
-+static int terminal_func (char *arg, int flags);
-+
-+#ifdef SUPPORT_GRAPHICS
-+\f
-+static int splashimage_func(char *arg, int flags) {
-+    char splashimage[64];
-+    int i;
-+    
-+    /* filename can only be 64 characters due to our buffer size */
-+    if (strlen(arg) > 63)
-+      return 1;
-+    if (flags == BUILTIN_CMDLINE) {
-+      if (!grub_open(arg))
-+          return 1;
-+      grub_close();
-+    }
-+
-+    strcpy(splashimage, arg);
-+
-+    /* get rid of TERM_NEED_INIT from the graphics terminal. */
-+    for (i = 0; term_table[i].name; i++) {
-+      if (grub_strcmp (term_table[i].name, "graphics") == 0) {
-+          term_table[i].flags &= ~TERM_NEED_INIT;
-+          break;
-+      }
-+    }
-+    
-+    graphics_set_splash(splashimage);
-+
-+    if (flags == BUILTIN_CMDLINE && graphics_inited) {
-+      graphics_end();
-+      graphics_init();
-+      graphics_cls();
-+    }
-+
-+    /* FIXME: should we be explicitly switching the terminal as a 
-+     * side effect here? */
-+    terminal_func("graphics", flags);
-+
-+    return 0;
-+}
-+
-+static struct builtin builtin_splashimage =
-+{
-+  "splashimage",
-+  splashimage_func,
-+  BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST,
-+  "splashimage FILE",
-+  "Load FILE as the background image when in graphics mode."
-+};
-+
-+\f
-+/* foreground */
-+static int
-+foreground_func(char *arg, int flags)
-+{
-+    if (grub_strlen(arg) == 6) {
-+      int r = ((hex(arg[0]) << 4) | hex(arg[1])) >> 2;
-+      int g = ((hex(arg[2]) << 4) | hex(arg[3])) >> 2;
-+      int b = ((hex(arg[4]) << 4) | hex(arg[5])) >> 2;
-+
-+      foreground = (r << 16) | (g << 8) | b;
-+      if (graphics_inited)
-+          graphics_set_palette(15, r, g, b);
-+
-+      return (0);
-+    }
-+
-+    return (1);
-+}
-+
-+static struct builtin builtin_foreground =
-+{
-+  "foreground",
-+  foreground_func,
-+  BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST,
-+  "foreground RRGGBB",
-+  "Sets the foreground color when in graphics mode."
-+  "RR is red, GG is green, and BB blue. Numbers must be in hexadecimal."
-+};
-+
-+\f
-+/* background */
-+static int
-+background_func(char *arg, int flags)
-+{
-+    if (grub_strlen(arg) == 6) {
-+      int r = ((hex(arg[0]) << 4) | hex(arg[1])) >> 2;
-+      int g = ((hex(arg[2]) << 4) | hex(arg[3])) >> 2;
-+      int b = ((hex(arg[4]) << 4) | hex(arg[5])) >> 2;
-+
-+      background = (r << 16) | (g << 8) | b;
-+      if (graphics_inited)
-+          graphics_set_palette(0, r, g, b);
-+      return (0);
-+    }
-+
-+    return (1);
-+}
-+
-+static struct builtin builtin_background =
-+{
-+  "background",
-+  background_func,
-+  BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST,
-+  "background RRGGBB",
-+  "Sets the background color when in graphics mode."
-+  "RR is red, GG is green, and BB blue. Numbers must be in hexadecimal."
-+};
-+
-+#endif /* SUPPORT_GRAPHICS */
-+
-+\f
-+/* clear */
-+static int 
-+clear_func() 
-+{
-+  if (current_term->cls)
-+    current_term->cls();
-+
-+  return 0;
-+}
-+
-+static struct builtin builtin_clear =
-+{
-+  "clear",
-+  clear_func,
-+  BUILTIN_CMDLINE | BUILTIN_HELP_LIST,
-+  "clear",
-+  "Clear the screen"
-+};
-+
\f
- /* displayapm */
- static int
-@@ -4090,7 +4222,7 @@
- };
\f
--#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES)
-+#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES) || defined(SUPPORT_GRAPHICS)
- /* terminal */
- static int
- terminal_func (char *arg, int flags)
-@@ -4249,17 +4381,21 @@
-  end:
-   current_term = term_table + default_term;
-   current_term->flags = term_flags;
--  
-+
-   if (lines)
-     max_lines = lines;
-   else
--    /* 24 would be a good default value.  */
--    max_lines = 24;
--  
-+    max_lines = current_term->max_lines;
-+
-   /* If the interface is currently the command-line,
-      restart it to repaint the screen.  */
--  if (current_term != prev_term && (flags & BUILTIN_CMDLINE))
-+  if ((current_term != prev_term) && (flags & BUILTIN_CMDLINE)){
-+    if (prev_term->shutdown)
-+      prev_term->shutdown();
-+    if (current_term->startup)
-+      current_term->startup();
-     grub_longjmp (restart_cmdline_env, 0);
-+  }
-   
-   return 0;
- }
-@@ -4269,7 +4405,7 @@
-   "terminal",
-   terminal_func,
-   BUILTIN_MENU | BUILTIN_CMDLINE | BUILTIN_HELP_LIST,
--  "terminal [--dumb] [--no-echo] [--no-edit] [--timeout=SECS] [--lines=LINES] [--silent] [console] [serial] [hercules]",
-+  "terminal [--dumb] [--no-echo] [--no-edit] [--timeout=SECS] [--lines=LINES] [--silent] [console] [serial] [hercules] [graphics]",
-   "Select a terminal. When multiple terminals are specified, wait until"
-   " you push any key to continue. If both console and serial are specified,"
-   " the terminal to which you input a key first will be selected. If no"
-@@ -4281,7 +4417,7 @@
-   " seconds. The option --lines specifies the maximum number of lines."
-   " The option --silent is used to suppress messages."
- };
--#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES */
-+#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES || SUPPORT_GRAPHICS */
\f
- #ifdef SUPPORT_SERIAL
-@@ -4809,6 +4945,9 @@
- /* The table of builtin commands. Sorted in dictionary order.  */
- struct builtin *builtin_table[] =
- {
-+#ifdef SUPPORT_GRAPHICS
-+  &builtin_background,
-+#endif
-   &builtin_blocklist,
-   &builtin_boot,
- #ifdef SUPPORT_NETBOOT
-@@ -4816,6 +4955,7 @@
- #endif /* SUPPORT_NETBOOT */
-   &builtin_cat,
-   &builtin_chainloader,
-+  &builtin_clear,
-   &builtin_cmp,
-   &builtin_color,
-   &builtin_configfile,
-@@ -4835,6 +4975,9 @@
-   &builtin_embed,
-   &builtin_fallback,
-   &builtin_find,
-+#ifdef SUPPORT_GRAPHICS
-+  &builtin_foreground,
-+#endif
-   &builtin_fstest,
-   &builtin_geometry,
-   &builtin_halt,
-@@ -4878,9 +5021,12 @@
- #endif /* SUPPORT_SERIAL */
-   &builtin_setkey,
-   &builtin_setup,
--#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES)
-+#ifdef SUPPORT_GRAPHICS
-+  &builtin_splashimage,
-+#endif /* SUPPORT_GRAPHICS */
-+#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES) || defined(SUPPORT_GRAPHICS)
-   &builtin_terminal,
--#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES */
-+#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES || SUPPORT_GRAPHICS */
- #ifdef SUPPORT_SERIAL
-   &builtin_terminfo,
- #endif /* SUPPORT_SERIAL */
---- /dev/null  2004-02-23 16:02:56.000000000 -0500
-+++ grub-0.95/stage2/graphics.c        2004-06-18 17:35:52.488969376 -0400
-@@ -0,0 +1,552 @@
-+/* graphics.c - graphics mode support for GRUB */
-+/* Implemented as a terminal type by Jeremy Katz <katzj@redhat.com> based
-+ * on a patch by Paulo César Pereira de Andrade <pcpa@conectiva.com.br>
-+ */
-+/*
-+ *  GRUB  --  GRand Unified Bootloader
-+ *  Copyright (C) 2001,2002  Red Hat, Inc.
-+ *  Portions copyright (C) 2000  Conectiva, 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
-+ *  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, write to the Free Software
-+ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ */
-+
-+
-+
-+#ifdef SUPPORT_GRAPHICS
-+
-+#include <term.h>
-+#include <shared.h>
-+#include <graphics.h>
-+
-+int saved_videomode;
-+unsigned char *font8x16;
-+
-+int graphics_inited = 0;
-+static char splashimage[64];
-+
-+#define VSHADOW VSHADOW1
-+unsigned char VSHADOW1[38400];
-+unsigned char VSHADOW2[38400];
-+unsigned char VSHADOW4[38400];
-+unsigned char VSHADOW8[38400];
-+
-+/* constants to define the viewable area */
-+const int x0 = 0;
-+const int x1 = 80;
-+const int y0 = 0;
-+const int y1 = 30;
-+
-+/* text buffer has to be kept around so that we can write things as we
-+ * scroll and the like */
-+unsigned short text[80 * 30];
-+
-+/* why do these have to be kept here? */
-+int foreground = (63 << 16) | (63 << 8) | (63), background = 0, border = 0;
-+
-+/* current position */
-+static int fontx = 0;
-+static int fonty = 0;
-+
-+/* global state so that we don't try to recursively scroll or cursor */
-+static int no_scroll = 0;
-+
-+/* color state */
-+static int graphics_standard_color = A_NORMAL;
-+static int graphics_normal_color = A_NORMAL;
-+static int graphics_highlight_color = A_REVERSE;
-+static int graphics_current_color = A_NORMAL;
-+static color_state graphics_color_state = COLOR_STATE_STANDARD;
-+
-+
-+/* graphics local functions */
-+static void graphics_setxy(int col, int row);
-+static void graphics_scroll();
-+
-+/* FIXME: where do these really belong? */
-+static inline void outb(unsigned short port, unsigned char val)
-+{
-+    __asm __volatile ("outb %0,%1"::"a" (val), "d" (port));
-+}
-+
-+static void MapMask(int value) {
-+    outb(0x3c4, 2);
-+    outb(0x3c5, value);
-+}
-+
-+/* bit mask register */
-+static void BitMask(int value) {
-+    outb(0x3ce, 8);
-+    outb(0x3cf, value);
-+}
-+
-+
-+
-+/* Set the splash image */
-+void graphics_set_splash(char *splashfile) {
-+    grub_strcpy(splashimage, splashfile);
-+}
-+
-+/* Get the current splash image */
-+char *graphics_get_splash(void) {
-+    return splashimage;
-+}
-+
-+/* Initialize a vga16 graphics display with the palette based off of
-+ * the image in splashimage.  If the image doesn't exist, leave graphics
-+ * mode.  */
-+int graphics_init()
-+{
-+    if (!graphics_inited) {
-+        saved_videomode = set_videomode(0x12);
-+    }
-+
-+    if (!read_image(splashimage)) {
-+        set_videomode(saved_videomode);
-+        grub_printf("failed to read image\n");
-+        return 0;
-+    }
-+
-+    font8x16 = (unsigned char*)graphics_get_font();
-+
-+    graphics_inited = 1;
-+
-+    /* make sure that the highlight color is set correctly */
-+    graphics_highlight_color = ((graphics_normal_color >> 4) | 
-+                              ((graphics_normal_color & 0xf) << 4));
-+
-+    return 1;
-+}
-+
-+/* Leave graphics mode */
-+void graphics_end(void)
-+{
-+    if (graphics_inited) {
-+        set_videomode(saved_videomode);
-+        graphics_inited = 0;
-+    }
-+}
-+
-+/* Print ch on the screen.  Handle any needed scrolling or the like */
-+void graphics_putchar(int ch) {
-+    ch &= 0xff;
-+
-+    graphics_cursor(0);
-+
-+    if (ch == '\n') {
-+        if (fonty + 1 < y1)
-+            graphics_setxy(fontx, fonty + 1);
-+        else
-+            graphics_scroll();
-+        graphics_cursor(1);
-+        return;
-+    } else if (ch == '\r') {
-+        graphics_setxy(x0, fonty);
-+        graphics_cursor(1);
-+        return;
-+    }
-+
-+    graphics_cursor(0);
-+
-+    text[fonty * 80 + fontx] = ch;
-+    text[fonty * 80 + fontx] &= 0x00ff;
-+    if (graphics_current_color & 0xf0)
-+        text[fonty * 80 + fontx] |= 0x100;
-+
-+    graphics_cursor(0);
-+
-+    if ((fontx + 1) >= x1) {
-+        graphics_setxy(x0, fonty);
-+        if (fonty + 1 < y1)
-+            graphics_setxy(x0, fonty + 1);
-+        else
-+            graphics_scroll();
-+    } else {
-+        graphics_setxy(fontx + 1, fonty);
-+    }
-+
-+    graphics_cursor(1);
-+}
-+
-+/* get the current location of the cursor */
-+int graphics_getxy(void) {
-+    return (fontx << 8) | fonty;
-+}
-+
-+void graphics_gotoxy(int x, int y) {
-+    graphics_cursor(0);
-+
-+    graphics_setxy(x, y);
-+
-+    graphics_cursor(1);
-+}
-+
-+void graphics_cls(void) {
-+    int i;
-+    unsigned char *mem, *s1, *s2, *s4, *s8;
-+
-+    graphics_cursor(0);
-+    graphics_gotoxy(x0, y0);
-+
-+    mem = (unsigned char*)VIDEOMEM;
-+    s1 = (unsigned char*)VSHADOW1;
-+    s2 = (unsigned char*)VSHADOW2;
-+    s4 = (unsigned char*)VSHADOW4;
-+    s8 = (unsigned char*)VSHADOW8;
-+
-+    for (i = 0; i < 80 * 30; i++)
-+        text[i] = ' ';
-+    graphics_cursor(1);
-+
-+    BitMask(0xff);
-+
-+    /* plano 1 */
-+    MapMask(1);
-+    grub_memcpy(mem, s1, 38400);
-+
-+    /* plano 2 */
-+    MapMask(2);
-+    grub_memcpy(mem, s2, 38400);
-+
-+    /* plano 3 */
-+    MapMask(4);
-+    grub_memcpy(mem, s4, 38400);
-+
-+    /* plano 4 */
-+    MapMask(8);
-+    grub_memcpy(mem, s8, 38400);
-+
-+    MapMask(15);
-+ 
-+}
-+
-+void graphics_setcolorstate (color_state state) {
-+    switch (state) {
-+    case COLOR_STATE_STANDARD:
-+        graphics_current_color = graphics_standard_color;
-+        break;
-+    case COLOR_STATE_NORMAL:
-+        graphics_current_color = graphics_normal_color;
-+        break;
-+    case COLOR_STATE_HIGHLIGHT:
-+        graphics_current_color = graphics_highlight_color;
-+        break;
-+    default:
-+        graphics_current_color = graphics_standard_color;
-+        break;
-+    }
-+
-+    graphics_color_state = state;
-+}
-+
-+void graphics_setcolor (int normal_color, int highlight_color) {
-+    graphics_normal_color = normal_color;
-+    graphics_highlight_color = highlight_color;
-+
-+    graphics_setcolorstate (graphics_color_state);
-+}
-+
-+void graphics_setcursor (int on) {
-+    /* FIXME: we don't have a cursor in graphics */
-+    return;
-+}
-+
-+/* Read in the splashscreen image and set the palette up appropriately.
-+ * Format of splashscreen is an xpm (can be gzipped) with 16 colors and
-+ * 640x480. */
-+int read_image(char *s)
-+{
-+    char buf[32], pal[16];
-+    unsigned char c, base, mask, *s1, *s2, *s4, *s8;
-+    unsigned i, len, idx, colors, x, y, width, height;
-+
-+    if (!grub_open(s))
-+        return 0;
-+
-+    /* read header */
-+    if (!grub_read((char*)&buf, 10) || grub_memcmp(buf, "/* XPM */\n", 10)) {
-+        grub_close();
-+        return 0;
-+    }
-+    
-+    /* parse info */
-+    while (grub_read(&c, 1)) {
-+        if (c == '"')
-+            break;
-+    }
-+
-+    while (grub_read(&c, 1) && (c == ' ' || c == '\t'))
-+        ;
-+
-+    i = 0;
-+    width = c - '0';
-+    while (grub_read(&c, 1)) {
-+        if (c >= '0' && c <= '9')
-+            width = width * 10 + c - '0';
-+        else
-+            break;
-+    }
-+    while (grub_read(&c, 1) && (c == ' ' || c == '\t'))
-+        ;
-+
-+    height = c - '0';
-+    while (grub_read(&c, 1)) {
-+        if (c >= '0' && c <= '9')
-+            height = height * 10 + c - '0';
-+        else
-+            break;
-+    }
-+    while (grub_read(&c, 1) && (c == ' ' || c == '\t'))
-+        ;
-+
-+    colors = c - '0';
-+    while (grub_read(&c, 1)) {
-+        if (c >= '0' && c <= '9')
-+            colors = colors * 10 + c - '0';
-+        else
-+            break;
-+    }
-+
-+    base = 0;
-+    while (grub_read(&c, 1) && c != '"')
-+        ;
-+
-+    /* palette */
-+    for (i = 0, idx = 1; i < colors; i++) {
-+        len = 0;
-+
-+        while (grub_read(&c, 1) && c != '"')
-+            ;
-+        grub_read(&c, 1);       /* char */
-+        base = c;
-+        grub_read(buf, 4);      /* \t c # */
-+
-+        while (grub_read(&c, 1) && c != '"') {
-+            if (len < sizeof(buf))
-+                buf[len++] = c;
-+        }
-+
-+        if (len == 6 && idx < 15) {
-+            int r = ((hex(buf[0]) << 4) | hex(buf[1])) >> 2;
-+            int g = ((hex(buf[2]) << 4) | hex(buf[3])) >> 2;
-+            int b = ((hex(buf[4]) << 4) | hex(buf[5])) >> 2;
-+
-+            pal[idx] = base;
-+            graphics_set_palette(idx, r, g, b);
-+            ++idx;
-+        }
-+    }
-+
-+    x = y = len = 0;
-+
-+    s1 = (unsigned char*)VSHADOW1;
-+    s2 = (unsigned char*)VSHADOW2;
-+    s4 = (unsigned char*)VSHADOW4;
-+    s8 = (unsigned char*)VSHADOW8;
-+
-+    for (i = 0; i < 38400; i++)
-+        s1[i] = s2[i] = s4[i] = s8[i] = 0;
-+
-+    /* parse xpm data */
-+    while (y < height) {
-+        while (1) {
-+            if (!grub_read(&c, 1)) {
-+                grub_close();
-+                return 0;
-+            }
-+            if (c == '"')
-+                break;
-+        }
-+
-+        while (grub_read(&c, 1) && c != '"') {
-+            for (i = 1; i < 15; i++)
-+                if (pal[i] == c) {
-+                    c = i;
-+                    break;
-+                }
-+
-+            mask = 0x80 >> (x & 7);
-+            if (c & 1)
-+                s1[len + (x >> 3)] |= mask;
-+            if (c & 2)
-+                s2[len + (x >> 3)] |= mask;
-+            if (c & 4)
-+                s4[len + (x >> 3)] |= mask;
-+            if (c & 8)
-+                s8[len + (x >> 3)] |= mask;
-+
-+            if (++x >= 640) {
-+                x = 0;
-+
-+                if (y < 480)
-+                    len += 80;
-+                ++y;
-+            }
-+        }
-+    }
-+
-+    grub_close();
-+
-+    graphics_set_palette(0, (background >> 16), (background >> 8) & 63, 
-+                background & 63);
-+    graphics_set_palette(15, (foreground >> 16), (foreground >> 8) & 63, 
-+                foreground & 63);
-+    graphics_set_palette(0x11, (border >> 16), (border >> 8) & 63, 
-+                         border & 63);
-+
-+    return 1;
-+}
-+
-+
-+/* Convert a character which is a hex digit to the appropriate integer */
-+int hex(int v)
-+{
-+    if (v >= 'A' && v <= 'F')
-+        return (v - 'A' + 10);
-+    if (v >= 'a' && v <= 'f')
-+        return (v - 'a' + 10);
-+    return (v - '0');
-+}
-+
-+
-+/* move the graphics cursor location to col, row */
-+static void graphics_setxy(int col, int row) {
-+    if (col >= x0 && col < x1) {
-+        fontx = col;
-+        cursorX = col << 3;
-+    }
-+    if (row >= y0 && row < y1) {
-+        fonty = row;
-+        cursorY = row << 4;
-+    }
-+}
-+
-+/* scroll the screen */
-+static void graphics_scroll() {
-+    int i, j;
-+
-+    /* we don't want to scroll recursively... that would be bad */
-+    if (no_scroll)
-+        return;
-+    no_scroll = 1;
-+
-+    /* move everything up a line */
-+    for (j = y0 + 1; j < y1; j++) {
-+        graphics_gotoxy(x0, j - 1);
-+        for (i = x0; i < x1; i++) {
-+            graphics_putchar(text[j * 80 + i]);
-+        }
-+    }
-+
-+    /* last line should be blank */
-+    graphics_gotoxy(x0, y1 - 1);
-+    for (i = x0; i < x1; i++)
-+        graphics_putchar(' ');
-+    graphics_setxy(x0, y1 - 1);
-+
-+    no_scroll = 0;
-+}
-+
-+
-+void graphics_cursor(int set) {
-+    unsigned char *pat, *mem, *ptr, chr[16 << 2];
-+    int i, ch, invert, offset;
-+
-+    if (set && no_scroll)
-+        return;
-+
-+    offset = cursorY * 80 + fontx;
-+    ch = text[fonty * 80 + fontx] & 0xff;
-+    invert = (text[fonty * 80 + fontx] & 0xff00) != 0;
-+    pat = font8x16 + (ch << 4);
-+
-+    mem = (unsigned char*)VIDEOMEM + offset;
-+
-+    if (!set) {
-+        for (i = 0; i < 16; i++) {
-+            unsigned char mask = pat[i];
-+
-+            if (!invert) {
-+                chr[i     ] = ((unsigned char*)VSHADOW1)[offset];
-+                chr[16 + i] = ((unsigned char*)VSHADOW2)[offset];
-+                chr[32 + i] = ((unsigned char*)VSHADOW4)[offset];
-+                chr[48 + i] = ((unsigned char*)VSHADOW8)[offset];
-+
-+                /* FIXME: if (shade) */
-+                if (1) {
-+                    if (ch == DISP_VERT || ch == DISP_LL ||
-+                        ch == DISP_UR || ch == DISP_LR) {
-+                        unsigned char pmask = ~(pat[i] >> 1);
-+
-+                        chr[i     ] &= pmask;
-+                        chr[16 + i] &= pmask;
-+                        chr[32 + i] &= pmask;
-+                        chr[48 + i] &= pmask;
-+                    }
-+                    if (i > 0 && ch != DISP_VERT) {
-+                        unsigned char pmask = ~(pat[i - 1] >> 1);
-+
-+                        chr[i     ] &= pmask;
-+                        chr[16 + i] &= pmask;
-+                        chr[32 + i] &= pmask;
-+                        chr[48 + i] &= pmask;
-+                        if (ch == DISP_HORIZ || ch == DISP_UR || ch == DISP_LR) {
-+                            pmask = ~pat[i - 1];
-+
-+                            chr[i     ] &= pmask;
-+                            chr[16 + i] &= pmask;
-+                            chr[32 + i] &= pmask;
-+                            chr[48 + i] &= pmask;
-+                        }
-+                    }
-+                }
-+                chr[i     ] |= mask;
-+                chr[16 + i] |= mask;
-+                chr[32 + i] |= mask;
-+                chr[48 + i] |= mask;
-+
-+                offset += 80;
-+            }
-+            else {
-+                chr[i     ] = mask;
-+                chr[16 + i] = mask;
-+                chr[32 + i] = mask;
-+                chr[48 + i] = mask;
-+            }
-+        }
-+    }
-+    else {
-+        MapMask(15);
-+        ptr = mem;
-+        for (i = 0; i < 16; i++, ptr += 80) {
-+            cursorBuf[i] = pat[i];
-+            *ptr = ~pat[i];
-+        }
-+        return;
-+    }
-+
-+    offset = 0;
-+    for (i = 1; i < 16; i <<= 1, offset += 16) {
-+        int j;
-+
-+        MapMask(i);
-+        ptr = mem;
-+        for (j = 0; j < 16; j++, ptr += 80)
-+            *ptr = chr[j + offset];
-+    }
-+
-+    MapMask(15);
-+}
-+
-+#endif /* SUPPORT_GRAPHICS */
---- grub-0.95/stage2/Makefile.am.graphics      2004-06-13 13:57:27.000000000 -0400
-+++ grub-0.95/stage2/Makefile.am       2004-06-18 17:36:58.289966104 -0400
-@@ -7,7 +7,7 @@
-         fat.h filesys.h freebsd.h fs.h hercules.h i386-elf.h \
-       imgact_aout.h iso9660.h jfs.h mb_header.h mb_info.h md5.h \
-       nbi.h pc_slice.h serial.h shared.h smp-imps.h term.h \
--      terminfo.h tparm.h nbi.h ufs2.h vstafs.h xfs.h
-+      terminfo.h tparm.h nbi.h ufs2.h vstafs.h xfs.h graphics.h
- EXTRA_DIST = setjmp.S apm.S $(noinst_SCRIPTS)
- # For <stage1.h>.
-@@ -19,7 +19,7 @@
-       disk_io.c fsys_ext2fs.c fsys_fat.c fsys_ffs.c fsys_iso9660.c \
-       fsys_jfs.c fsys_minix.c fsys_reiserfs.c fsys_ufs2.c \
-       fsys_vstafs.c fsys_xfs.c gunzip.c md5.c serial.c stage2.c \
--      terminfo.c tparm.c
-+      terminfo.c tparm.c graphics.c
- libgrub_a_CFLAGS = $(GRUB_CFLAGS) -I$(top_srcdir)/lib \
-       -DGRUB_UTIL=1 -DFSYS_EXT2FS=1 -DFSYS_FAT=1 -DFSYS_FFS=1 \
-       -DFSYS_ISO9660=1 -DFSYS_JFS=1 -DFSYS_MINIX=1 -DFSYS_REISERFS=1 \
-@@ -80,8 +80,14 @@
- HERCULES_FLAGS =
- endif
-+if GRAPHICS_SUPPORT
-+GRAPHICS_FLAGS = -DSUPPORT_GRAPHICS=1
-+else
-+GRAPHICS_FLAGS =
-+endif
-+
- STAGE2_COMPILE = $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
--      $(NETBOOT_FLAGS) $(SERIAL_FLAGS) $(HERCULES_FLAGS)
-+      $(NETBOOT_FLAGS) $(SERIAL_FLAGS) $(HERCULES_FLAGS) $(GRAPHICS_FLAGS)
- STAGE1_5_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,2000
- STAGE1_5_COMPILE = $(STAGE2_COMPILE) -DNO_DECOMPRESSION=1 -DSTAGE1_5=1
-@@ -91,7 +97,8 @@
-       cmdline.c common.c console.c disk_io.c fsys_ext2fs.c \
-       fsys_fat.c fsys_ffs.c fsys_iso9660.c fsys_jfs.c fsys_minix.c \
-       fsys_reiserfs.c fsys_ufs2.c fsys_vstafs.c fsys_xfs.c gunzip.c \
--      hercules.c md5.c serial.c smp-imps.c stage2.c terminfo.c tparm.c
-+      hercules.c md5.c serial.c smp-imps.c stage2.c terminfo.c tparm.c \
-+      graphics.c
- pre_stage2_exec_CFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS)
- pre_stage2_exec_CCASFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS)
- pre_stage2_exec_LDFLAGS = $(PRE_STAGE2_LINK)
---- grub-0.95/stage2/term.h.graphics   2003-07-09 07:45:53.000000000 -0400
-+++ grub-0.95/stage2/term.h    2004-06-18 17:35:52.496968160 -0400
-@@ -60,6 +60,8 @@
-   const char *name;
-   /* The feature flags defined above.  */
-   unsigned long flags;
-+  /* Default for maximum number of lines if not specified */
-+  unsigned short max_lines;
-   /* Put a character.  */
-   void (*putchar) (int c);
-   /* Check if any input character is available.  */
-@@ -79,6 +81,11 @@
-   void (*setcolor) (int normal_color, int highlight_color);
-   /* Turn on/off the cursor.  */
-   int (*setcursor) (int on);
-+
-+  /* function to start a terminal */
-+  int (*startup) (void);
-+  /* function to use to shutdown a terminal */
-+  void (*shutdown) (void);
- };
- /* This lists up available terminals.  */
-@@ -124,4 +131,23 @@
- int hercules_setcursor (int on);
- #endif
-+#ifdef SUPPORT_GRAPHICS
-+extern int foreground, background, border, graphics_inited;
-+
-+void graphics_set_splash(char *splashfile);
-+int set_videomode (int mode);
-+void graphics_putchar (int c);
-+int graphics_getxy(void);
-+void graphics_gotoxy(int x, int y);
-+void graphics_cls(void);
-+void graphics_setcolorstate (color_state state);
-+void graphics_setcolor (int normal_color, int highlight_color);
-+void graphics_setcursor (int on);
-+int graphics_init(void);
-+void graphics_end(void);
-+
-+int hex(int v);
-+void graphics_set_palette(int idx, int red, int green, int blue);
-+#endif /* SUPPORT_GRAPHICS */
-+
- #endif /* ! GRUB_TERM_HEADER */
---- /dev/null  2004-02-23 16:02:56.000000000 -0500
-+++ grub-0.95/stage2/graphics.h        2004-06-18 17:35:52.490969072 -0400
-@@ -0,0 +1,42 @@
-+/* graphics.h - graphics console interface */
-+/*
-+ *  GRUB  --  GRand Unified Bootloader
-+ *  Copyright (C) 2002  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
-+ *  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, write to the Free Software
-+ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ */
-+
-+#ifndef GRAPHICS_H
-+#define GRAPHICS_H
-+
-+/* magic constant */
-+#define VIDEOMEM 0xA0000
-+
-+/* function prototypes */
-+char *graphics_get_splash(void);
-+
-+int read_image(char *s);
-+void graphics_cursor(int set);
-+
-+/* function prototypes for asm functions */
-+void * graphics_get_font();
-+void graphics_set_palette(int idx, int red, int green, int blue);
-+void set_int1c_handler();
-+void unset_int1c_handler();
-+
-+extern short cursorX, cursorY;
-+extern char cursorBuf[16];
-+
-+#endif /* GRAPHICS_H */
---- grub-0.95/stage2/shared.h.graphics 2004-06-18 17:35:52.372987008 -0400
-+++ grub-0.95/stage2/shared.h  2004-06-18 17:35:52.492968768 -0400
-@@ -873,6 +873,7 @@
- int grub_tolower (int c);
- int grub_isspace (int c);
- int grub_strncat (char *s1, const char *s2, int n);
-+void grub_memcpy(void *dest, const void *src, int len);
- void *grub_memmove (void *to, const void *from, int len);
- void *grub_memset (void *start, int c, int len);
- int grub_strncat (char *s1, const char *s2, int n);
---- grub-0.95/stage2/char_io.c.graphics        2004-05-23 12:45:43.000000000 -0400
-+++ grub-0.95/stage2/char_io.c 2004-06-18 17:35:52.485969832 -0400
-@@ -35,6 +35,7 @@
-     {
-       "console",
-       0,
-+      24,
-       console_putchar,
-       console_checkkey,
-       console_getkey,
-@@ -43,13 +44,16 @@
-       console_cls,
-       console_setcolorstate,
-       console_setcolor,
--      console_setcursor
-+      console_setcursor,
-+      0, 
-+      0
-     },
- #ifdef SUPPORT_SERIAL
-     {
-       "serial",
-       /* A serial device must be initialized.  */
-       TERM_NEED_INIT,
-+      24,
-       serial_putchar,
-       serial_checkkey,
-       serial_getkey,
-@@ -58,6 +62,8 @@
-       serial_cls,
-       serial_setcolorstate,
-       0,
-+      0,
-+      0, 
-       0
-     },
- #endif /* SUPPORT_SERIAL */
-@@ -65,6 +71,7 @@
-     {
-       "hercules",
-       0,
-+      24,
-       hercules_putchar,
-       console_checkkey,
-       console_getkey,
-@@ -73,9 +80,28 @@
-       hercules_cls,
-       hercules_setcolorstate,
-       hercules_setcolor,
--      hercules_setcursor
-+      hercules_setcursor,
-+      0,
-+      0
-     },      
- #endif /* SUPPORT_HERCULES */
-+#ifdef SUPPORT_GRAPHICS
-+    { "graphics",
-+      TERM_NEED_INIT, /* flags */
-+      30, /* number of lines */
-+      graphics_putchar, /* putchar */
-+      console_checkkey, /* checkkey */
-+      console_getkey, /* getkey */
-+      graphics_getxy, /* getxy */
-+      graphics_gotoxy, /* gotoxy */
-+      graphics_cls, /* cls */
-+      graphics_setcolorstate, /* setcolorstate */
-+      graphics_setcolor, /* setcolor */
-+      graphics_setcursor, /* nocursor */
-+      graphics_init, /* initialize */
-+      graphics_end /* shutdown */
-+    },
-+#endif /* SUPPORT_GRAPHICS */
-     /* This must be the last entry.  */
-     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
-   };
-@@ -1046,13 +1072,15 @@
-                the following grub_printf call will print newlines.  */
-             count_lines = -1;
-+            grub_printf("\n");
-             if (current_term->setcolorstate)
-               current_term->setcolorstate (COLOR_STATE_HIGHLIGHT);
-             
--            grub_printf ("\n[Hit return to continue]");
-+            grub_printf ("[Hit return to continue]");
-             if (current_term->setcolorstate)
-               current_term->setcolorstate (COLOR_STATE_NORMAL);
-+              
-             
-             do
-               {
-@@ -1090,7 +1118,7 @@
- cls (void)
- {
-   /* If the terminal is dumb, there is no way to clean the terminal.  */
--  if (current_term->flags & TERM_DUMB)
-+  if (current_term->flags & TERM_DUMB) 
-     grub_putchar ('\n');
-   else
-     current_term->cls ();
-@@ -1214,6 +1242,16 @@
-   return ! errnum;
- }
-+void
-+grub_memcpy(void *dest, const void *src, int len)
-+{
-+  int i;
-+  register char *d = (char*)dest, *s = (char*)src;
-+
-+  for (i = 0; i < len; i++)
-+    d[i] = s[i];
-+}
-+
- void *
- grub_memmove (void *to, const void *from, int len)
- {
---- grub-0.95/configure.ac.graphics    2004-06-18 17:35:52.211011632 -0400
-+++ grub-0.95/configure.ac     2004-06-18 17:35:52.498967856 -0400
-@@ -595,6 +595,11 @@
-   [  --enable-diskless       enable diskless support])
- AM_CONDITIONAL(DISKLESS_SUPPORT, test "x$enable_diskless" = xyes)
-+dnl Graphical splashscreen support
-+AC_ARG_ENABLE(graphics,
-+  [  --disable-graphics      disable graphics terminal support])
-+AM_CONDITIONAL(GRAPHICS_SUPPORT, test "x$enable_graphics" != xno)
-+
- dnl Hercules terminal
- AC_ARG_ENABLE(hercules,
-   [  --disable-hercules      disable hercules terminal support])
diff --git a/src/patches/grub-0.95-hiddenmenu-tweak.patch b/src/patches/grub-0.95-hiddenmenu-tweak.patch
deleted file mode 100644 (file)
index 56fb083..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
---- grub-0.95/stage2/stage2.c.hidden   2004-09-30 16:39:38.028893664 -0400
-+++ grub-0.95/stage2/stage2.c  2004-09-30 16:42:07.981097464 -0400
-@@ -235,6 +235,8 @@
-   char *cur_entry = 0;
-   struct term_entry *prev_term = NULL;
-+  cls();
-+
-   /*
-    *  Main loop for menu UI.
-    */
-@@ -262,14 +264,16 @@
-       /* Get current time.  */
-       while ((time1 = getrtsecs ()) == 0xFF)
-       ;
-+      grub_printf("\rPress any key to enter the menu\n\n\n");
-       while (1)
-       {
-         /* Check if ESC is pressed.  */
--        if (checkkey () != -1 && ASCII_CHAR (getkey ()) == '\e')
-+        if (checkkey () != -1)
-           {
-             grub_timeout = -1;
-             show_menu = 1;
-+            getkey ();
-             break;
-           }
-@@ -288,7 +292,8 @@
-             grub_timeout--;
-             
-             /* Print a message.  */
--            grub_printf ("\rPress `ESC' to enter the menu... %d   ",
-+            grub_printf ("\rBooting %s in %d seconds...",
-+                         get_entry(menu_entries, first_entry + entryno, 0),
-                          grub_timeout);
-           }
-       }
diff --git a/src/patches/grub-0.95-md-mbr.patch b/src/patches/grub-0.95-md-mbr.patch
deleted file mode 100644 (file)
index 1aaa3e9..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- grub-0.95/util/grub-install.in.md-mbr      2005-02-20 17:56:48.000000000 -0500
-+++ grub-0.95/util/grub-install.in     2005-02-20 17:57:12.000000000 -0500
-@@ -444,7 +444,7 @@
- /dev/*)
-     install_device=`resolve_symlink "$install_device"`
-     for install_drive in `find_real_devs $install_device` ; do
--      install_drive=`convert $install_drive`
-+      install_drive=`convert $install_drive | sed 's/,[0-9]*)/)/'`
-       if [ "x$install_drive" = "x" ]; then
-           exit 1
-       fi
diff --git a/src/patches/grub-0.95-md-rework.patch b/src/patches/grub-0.95-md-rework.patch
deleted file mode 100644 (file)
index cff1977..0000000
+++ /dev/null
@@ -1,183 +0,0 @@
---- grub-0.95/util/grub-install.in.md2 2005-01-03 14:49:18.133866107 -0500
-+++ grub-0.95/util/grub-install.in     2005-01-03 16:35:44.923732271 -0500
-@@ -35,6 +35,7 @@
- rootdir=
- grub_prefix=/boot/grub
-+install_drives=
- install_device=
- no_floppy=
- force_lba=
-@@ -272,6 +273,30 @@
-     done
- }
-+
-+dump_boot_block () {
-+    sync
-+    $grub_shell --batch $no_floppy --device-map=$device_map <<EOF >$log_file
-+dump ${root_drive}${tmp} ${img_file}
-+quit
-+EOF
-+}
-+
-+
-+install_boot_block () {
-+    # Before all invocations of the grub shell, call sync to make sure
-+    # the raw device is in sync with any bufferring in filesystems.
-+    sync
-+
-+    # Now perform the installation.
-+    $grub_shell --batch $no_floppy --device-map=$device_map <<EOF >>$log_file
-+root $1
-+setup $force_lba --stage2=$grubdir/stage2 --prefix=$grub_prefix $2
-+quit
-+EOF
-+}
-+
-+
- # Check the arguments.
- for option in "$@"; do
-     case "$option" in
-@@ -416,28 +441,32 @@
- # Check for INSTALL_DEVICE.
- case "$install_device" in
- /dev/*)
--    # If we are running md on a Linux box, just use the first physical device
--    # at this point.
-     install_device=`resolve_symlink "$install_device"`
--    install_device=`find_real_devs $install_device | awk '{print $1}'`
--
--    install_drive=`convert "$install_device"`
--    # I don't know why, but some shells wouldn't die if exit is
--    # called in a function.
--    if test "x$install_drive" = x; then
-+    for install_drive in `find_real_devs $install_device` ; do
-+      install_drive=`convert $install_drive`
-+      if [ "x$install_drive" = "x" ]; then
-+          exit 1
-+      fi
-+      install_drives="${install_drives} ${install_drive}"
-+    done
-+    unset install_drive
-+      
-+    if test "x$install_drives" = x ; then
-       exit 1
-     fi ;;
- \([hf]d[0-9]*\))
--    install_drive="$install_device" ;;
-+    install_drives="$install_device" ;;
- [hf]d[0-9]*)
-     # The GRUB format with no parenthesis.
--    install_drive="($install_device)" ;;
-+    install_drives="($install_device)" ;;
- *)
-     echo "Format of install_device not recognized." 1>&2
-     usage
-     exit 1 ;;
- esac
-+unset install_device
-+
- # Get the root drive.
- root_device=`find_device ${rootdir}`
- bootdir_device=`find_device ${bootdir}`
-@@ -465,41 +494,39 @@
- test -n "$mkimg" && img_file=`$mkimg`
- test -n "$mklog" && log_file=`$mklog`
--for real_device in `find_real_devs $root_device`; do
--    # Convert the root deviceto a GRUB drive.
--    root_drive=`convert "$real_device"`
--    if [ "x$root_drive" = x ]; then
--      exit 1
--    fi
-+# There's not a real root device, so just pick the first
-+if is_raid1_device $root_device ; then
-+    root_device=`find_real_devs $root_device | awk '{print $1}'`
-+fi
--    for file in ${grubdir}/stage1 ${grubdir}/stage2 ${grubdir}/*stage1_5; do
--      count=5
--      tmp=`echo $file | sed "s|^${grubdir}|${grub_prefix}|"`
--      while test $count -gt 0; do
--          sync
--          $grub_shell --batch $no_floppy --device-map=$device_map \
--              <<EOF >$log_file
--dump ${root_drive}${tmp} ${img_file}
--quit
--EOF
--          if grep "Error [0-9]*: " $log_file >/dev/null; then
--              :
--          elif cmp $file $img_file >/dev/null; then
--              break
--          fi
--          sleep 1
--          count=`expr $count - 1`    
--      done
--      if test $count -eq 0; then
--          echo "The file $file not read correctly." 1>&2
--          exit 1
--      fi
--    done
-+# Convert the root deviceto a GRUB drive.
-+root_drive=`convert "$root_device"`
-+if [ "x$root_drive" = x ]; then
-+    exit 1
-+fi
--    rm -f $img_file
--    rm -f $log_file
-+for file in ${grubdir}/stage1 ${grubdir}/stage2 ${grubdir}/*stage1_5; do
-+    count=5
-+    tmp=`echo $file | sed "s|^${grubdir}|${grub_prefix}|"`
-+    while test $count -gt 0; do
-+        dump_boot_block $root_drive $img_file
-+        if grep "Error [0-9]*: " $log_file >/dev/null; then
-+      :
-+        elif cmp $file $img_file >/dev/null; then
-+      break
-+        fi
-+        sleep 1
-+        count=`expr $count - 1`    
-+    done
-+    if test $count -eq 0; then
-+        echo "The file $file not read correctly." 1>&2
-+        exit 1
-+    fi
- done
-+rm -f $img_file
-+rm -f $log_file
-+
- if ! test -e ${grubdir}/grub.conf ; then
-     test -e ${grubdir}/menu.lst && ln -s ./menu.lst ${grubdir}/grub.conf
- fi
-@@ -507,24 +534,13 @@
- # Create a safe temporary file.
- test -n "$mklog" && log_file=`$mklog`
--for real_device in `find_real_devs $root_device`; do
-+for install_drive in $install_drives; do 
-     # Convert the root deviceto a GRUB drive.
--    root_drive=`convert "$real_device"`
-+    root_drive=`convert "$root_device"`
-     if [ "x$root_drive" = x ]; then
-       exit 1
-     fi
--
--    # Before all invocations of the grub shell, call sync to make sure
--    # the raw device is in sync with any bufferring in filesystems.
--    sync
--
--    # Now perform the installation.
--    $grub_shell --batch $no_floppy --device-map=$device_map <<EOF >>$log_file
--root $root_drive
--setup $force_lba --stage2=$grubdir/stage2 --prefix=$grub_prefix $root_drive
--quit
--EOF
--
-+    install_boot_block $root_drive $install_drive
- done
- if grep "Error [0-9]*: " $log_file >/dev/null ; then
diff --git a/src/patches/grub-0.95-md.patch b/src/patches/grub-0.95-md.patch
deleted file mode 100644 (file)
index 9e4ff89..0000000
+++ /dev/null
@@ -1,183 +0,0 @@
---- grub-0.95/util/grub-install.in.support_md  2004-12-17 17:50:45.000000000 -0500
-+++ grub-0.95/util/grub-install.in     2004-12-19 19:19:20.509409160 -0500
-@@ -207,6 +207,43 @@
-       echo "$tmp_fname"
- }
-+# Usage: is_raid1_device devicename
-+# Returns 0 if devicename is a raid1 md device, 1 if it is not.
-+is_raid1_device () {
-+    case "$host_os" in
-+    linux*)
-+      level=`mdadm --query --detail $1 2>/dev/null | \
-+              awk '/Raid Level :/ {print $4}'` 
-+      if [ "$level" = "raid1" ]; then
-+          return 0
-+      fi
-+    ;;
-+    esac
-+    return 1
-+}
-+
-+# Usage: find_real_devs device
-+# Returns space separated list of devices for linux if device is 
-+# a raid1 device. In all other cases, the provided value is returned.
-+find_real_devs () {
-+    source_device=$1
-+    case "$host_os" in
-+    linux*)
-+      if is_raid1_device $source_device ; then
-+          list=""
-+          for device in `mdadm --query --detail "${source_device}" | \
-+                  awk '/\/dev\/[^(md)]/ {print $7}'` ; do
-+              list="$list $device"
-+          done
-+          echo $list
-+          return 0
-+      fi
-+    ;;
-+    esac
-+    echo $source_device
-+    return 0
-+}
-+
- # Usage: find_device file
- # Find block device on which the file resides.
- find_device () {
-@@ -219,7 +256,7 @@
-       exit 1
-     fi
--      tmp_fname=`resolve_symlink $tmp_fname`
-+    tmp_fname=`resolve_symlink $tmp_fname`
-     echo "$tmp_fname"
- }
-@@ -379,7 +416,11 @@
- # Check for INSTALL_DEVICE.
- case "$install_device" in
- /dev/*)
-+    # If we are running md on a Linux box, just use the first physical device
-+    # at this point.
-     install_device=`resolve_symlink "$install_device"`
-+    install_device=`find_real_devs $install_device | awk '{print $1}'`
-+
-     install_drive=`convert "$install_device"`
-     # I don't know why, but some shells wouldn't die if exit is
-     # called in a function.
-@@ -408,14 +449,7 @@
-     grub_prefix="/grub"
- fi
--# Convert the root device to a GRUB drive.
--root_drive=`convert "$root_device"`
--if test "x$root_drive" = x; then
--    exit 1
--fi
--
--# Check if the root directory exists in the same device as the grub
--# directory.
-+# Check if the root directory exists in the same device as the grub directory.
- grubdir_device=`find_device ${grubdir}`
- if test "x$grubdir_device" != "x$root_device"; then
-@@ -431,30 +465,40 @@
- test -n "$mkimg" && img_file=`$mkimg`
- test -n "$mklog" && log_file=`$mklog`
--for file in ${grubdir}/stage1 ${grubdir}/stage2 ${grubdir}/*stage1_5; do
--    count=5
--    tmp=`echo $file | sed "s|^${grubdir}|${grub_prefix}|"`
--    while test $count -gt 0; do
--      $grub_shell --batch $no_floppy --device-map=$device_map <<EOF >$log_file
-+for real_device in `find_real_devs $root_device`; do
-+    # Convert the root deviceto a GRUB drive.
-+    root_drive=`convert "$real_device"`
-+    if [ "x$root_drive" = x ]; then
-+      exit 1
-+    fi
-+
-+    for file in ${grubdir}/stage1 ${grubdir}/stage2 ${grubdir}/*stage1_5; do
-+      count=5
-+      tmp=`echo $file | sed "s|^${grubdir}|${grub_prefix}|"`
-+      while test $count -gt 0; do
-+          sync
-+          $grub_shell --batch $no_floppy --device-map=$device_map \
-+              <<EOF >$log_file
- dump ${root_drive}${tmp} ${img_file}
- quit
- EOF
--      if grep "Error [0-9]*: " $log_file >/dev/null; then
--          :
--      elif cmp $file $img_file >/dev/null; then
--          break
-+          if grep "Error [0-9]*: " $log_file >/dev/null; then
-+              :
-+          elif cmp $file $img_file >/dev/null; then
-+              break
-+          fi
-+          sleep 1
-+          count=`expr $count - 1`    
-+      done
-+      if test $count -eq 0; then
-+          echo "The file $file not read correctly." 1>&2
-+          exit 1
-       fi
--      sleep 1
--      count=`expr $count - 1`    
-     done
--    if test $count -eq 0; then
--      echo "The file $file not read correctly." 1>&2
--      exit 1
--    fi
--done
--rm -f $img_file
--rm -f $log_file
-+    rm -f $img_file
-+    rm -f $log_file
-+done
- if ! test -e ${grubdir}/grub.conf ; then
-     test -e ${grubdir}/menu.lst && ln -s ./menu.lst ${grubdir}/grub.conf
-@@ -463,21 +507,33 @@
- # Create a safe temporary file.
- test -n "$mklog" && log_file=`$mklog`
--# Before all invocations of the grub shell, call sync to make sure
--# the raw device is in sync with any bufferring in filesystems.
--sync
-+for real_device in `find_real_devs $root_device`; do
-+    # Convert the root deviceto a GRUB drive.
-+    root_drive=`convert "$real_device"`
-+    if [ "x$root_drive" = x ]; then
-+      exit 1
-+    fi
-+
-+    # Before all invocations of the grub shell, call sync to make sure
-+    # the raw device is in sync with any bufferring in filesystems.
-+    sync
--# Now perform the installation.
--$grub_shell --batch $no_floppy --device-map=$device_map <<EOF >$log_file
-+    # Now perform the installation.
-+    $grub_shell --batch $no_floppy --device-map=$device_map <<EOF >>$log_file
- root $root_drive
--setup $force_lba --stage2=$grubdir/stage2 --prefix=$grub_prefix $install_drive
-+setup $force_lba --stage2=$grubdir/stage2 --prefix=$grub_prefix $root_drive
- quit
- EOF
--if grep "Error [0-9]*: " $log_file >/dev/null || test $debug = yes; then
-+done
-+
-+if grep "Error [0-9]*: " $log_file >/dev/null ; then
-     cat $log_file 1>&2
-     exit 1
- fi
-+if test $debug = yes; then
-+    cat $log_file 1>&2
-+fi
- rm -f $log_file
diff --git a/src/patches/grub-0.95-moreraid.patch b/src/patches/grub-0.95-moreraid.patch
deleted file mode 100644 (file)
index 39db234..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
---- grub-0.95/lib/device.c.moreraid    2004-11-30 17:09:36.736099360 -0500
-+++ grub-0.95/lib/device.c     2004-11-30 17:12:17.319686944 -0500
-@@ -544,6 +544,17 @@
- }
- static void
-+get_cciss_disk_name (char * name, int controller, int drive)
-+{
-+  sprintf (name, "/dev/cciss/c%dd%d", controller, drive);
-+}
-+
-+static void
-+get_cpqarray_disk_name (char * name, int controller, int drive)
-+{
-+  sprintf (name, "/dev/ida/c%dd%d", controller, drive);
-+}
-+static void
- get_ataraid_disk_name (char *name, int unit)
- {
-   sprintf (name, "/dev/ataraid/d%c", unit + '0');
-@@ -920,7 +931,7 @@
-     
-     for (controller = 0; controller < 8; controller++)
-       {
--      for (drive = 0; drive < 15; drive++)
-+      for (drive = 0; drive < 32; drive++)
-         {
-           char name[24];
-           
-@@ -940,6 +951,70 @@
-       }
-   }
- #endif /* __linux__ */
-+
-+#ifdef __linux__
-+  /* This is for cciss - we have
-+     /dev/cciss/c<controller>d<logical drive>p<partition>.
-+     
-+     cciss driver currently supports up to 8 controllers, 16 logical
-+     drives, and 7 partitions.  */
-+  {
-+    int controller, drive;
-+    
-+    for (controller = 0; controller < 8; controller++)
-+      {
-+      for (drive = 0; drive < 16; drive++)
-+        {
-+          char name[24];
-+          
-+          get_cciss_disk_name (name, controller, drive);
-+          if (check_device (name))
-+            {
-+              (*map)[num_hd + 0x80] = strdup (name);
-+              assert ((*map)[num_hd + 0x80]);
-+              
-+              /* If the device map file is opened, write the map.  */
-+              if (fp)
-+                fprintf (fp, "(hd%d)\t%s\n", num_hd, name);
-+              
-+              num_hd++;
-+            }
-+        }
-+      }
-+  }
-+#endif /* __linux__ */
-+
-+#ifdef __linux__
-+  /* This is for cpqarray - we have
-+     /dev/ida/c<controller>d<logical drive>p<partition>.
-+     
-+     cpqarray driver currently supports up to 8 controllers, 16 logical
-+     drives, and 15 partitions.  */
-+  {
-+    int controller, drive;
-+    
-+    for (controller = 0; controller < 8; controller++)
-+      {
-+      for (drive = 0; drive < 15; drive++)
-+        {
-+          char name[24];
-+          
-+          get_cpqarray_disk_name (name, controller, drive);
-+          if (check_device (name))
-+            {
-+              (*map)[num_hd + 0x80] = strdup (name);
-+              assert ((*map)[num_hd + 0x80]);
-+              
-+              /* If the device map file is opened, write the map.  */
-+              if (fp)
-+                fprintf (fp, "(hd%d)\t%s\n", num_hd, name);
-+              
-+              num_hd++;
-+            }
-+        }
-+      }
-+  }
-+#endif /* __linux__ */
-   
-   /* OK, close the device map file if opened.  */
-   if (fp)
diff --git a/src/patches/grub-0.95-nonmbr.patch b/src/patches/grub-0.95-nonmbr.patch
deleted file mode 100644 (file)
index 35bd5f3..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
---- grub-0.95/util/grub-install.in.nonmbr      2005-03-16 10:02:50.000000000 -0500
-+++ grub-0.95/util/grub-install.in     2005-03-16 10:02:13.000000000 -0500
-@@ -444,7 +444,10 @@
- /dev/*)
-     install_device=`resolve_symlink "$install_device"`
-     for install_drive in `find_real_devs $install_device` ; do
--      install_drive=`convert $install_drive | sed 's/,[0-9]*)/)/'`
-+      install_drive=`convert $install_drive`
-+      if is_raid1_device $install_device; then
-+              install_drive=`echo $install_drive | sed 's/,[0-9]*)/)/'`
-+      fi
-       if [ "x$install_drive" = "x" ]; then
-           exit 1
-       fi
diff --git a/src/patches/grub-0.95-odirect.patch b/src/patches/grub-0.95-odirect.patch
deleted file mode 100644 (file)
index 12dd9d9..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
---- grub-0.95/grub/asmstub.c.odirect   2004-11-30 16:58:06.577019488 -0500
-+++ grub-0.95/grub/asmstub.c   2004-11-30 16:59:56.057375944 -0500
-@@ -53,6 +53,9 @@
- # ifndef BLKFLSBUF
- #  define BLKFLSBUF   _IO (0x12,97)   /* flush buffer cache */
- # endif /* ! BLKFLSBUF */
-+# ifndef O_DIRECT
-+#   define O_DIRECT 040000
-+# endif /* ! O_DIRECT */
- #endif /* __linux__ */
- /* We want to prevent any circularararity in our stubs, as well as
-@@ -764,7 +767,7 @@
-     {
-       /* The unpartitioned device name: /dev/XdX */
-       char *devname = device_map[drive];
--      char buf[512];
-+      char * buf, * buf_unaligned;
-       if (! devname)
-       return -1;
-@@ -775,13 +778,13 @@
-       /* Open read/write, or read-only if that failed. */
-       if (! read_only)
--      disks[drive].flags = open (devname, O_RDWR);
-+      disks[drive].flags = open (devname, O_RDWR | O_DIRECT);
-       if (disks[drive].flags == -1)
-       {
-         if (read_only || errno == EACCES || errno == EROFS || errno == EPERM)
-           {
--            disks[drive].flags = open (devname, O_RDONLY);
-+            disks[drive].flags = open (devname, O_RDONLY | O_DIRECT);
-             if (disks[drive].flags == -1)
-               {
-                 assign_device_name (drive, 0);
-@@ -795,6 +798,10 @@
-           }
-       }
-+      buf_unaligned = malloc((512 * sizeof(char)) + 4095);
-+      buf = (char *) (((unsigned long)buf_unaligned + 4096 - 1) &
-+                      (~(4096-1)));
-+
-       /* Attempt to read the first sector.  */
-       if (read (disks[drive].flags, buf, 512) != 512)
-       {
-@@ -806,6 +813,7 @@
-       if (disks[drive].flags != -1)
-       get_drive_geometry (&disks[drive], device_map, drive);
-+      free(buf_unaligned);
-     }
-   if (disks[drive].flags == -1)
-@@ -827,24 +835,34 @@
- nread (int fd, char *buf, size_t len)
- {
-   int size = len;
-+  char * buf_unaligned, * buff, * obuff;
-+  int ret;
-+
-+  buf_unaligned = malloc((len * sizeof(char)) + 4095);
-+  obuff = buff = (char *) (((unsigned long)buf_unaligned + 4096 - 1) &
-+                           (~(4096-1)));
-+
-   while (len)
-     {
--      int ret = read (fd, buf, len);
-+      ret = read (fd, buff, len);
-       if (ret <= 0)
-       {
-         if (errno == EINTR)
-           continue;
-         else
--          return ret;
-+            break;
-       }
-       len -= ret;
--      buf += ret;
-+      buff += ret;
-     }
--  return size;
-+  if (!len) ret = size;
-+
-+  buf = memcpy(buf, obuff, size);
-+  return ret;
- }
- /* Write LEN bytes from BUF to FD. Return less than or equal to zero if an
-@@ -853,10 +871,18 @@
- nwrite (int fd, char *buf, size_t len)
- {
-   int size = len;
-+  char * buf_unaligned, * buff;
-+
-+  buf_unaligned = malloc((len * sizeof(char)) + 4095);
-+  buff = (char *) (((unsigned long)buf_unaligned + 4096 - 1) &
-+                   (~(4096-1)));
-   while (len)
-     {
--      int ret = write (fd, buf, len);
-+      int ret;
-+
-+      memcpy(buff, buf, len);
-+      ret = write (fd, buff, len);
-       if (ret <= 0)
-       {
diff --git a/src/patches/grub-0.95-recheck-bad.patch b/src/patches/grub-0.95-recheck-bad.patch
deleted file mode 100644 (file)
index b55c6ae..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
---- grub-0.95/docs/grub.texi.recheck-bad       2005-07-25 17:55:57.000000000 -0400
-+++ grub-0.95/docs/grub.texi   2005-07-25 17:58:00.000000000 -0400
-@@ -3417,8 +3417,9 @@
- @item --recheck
- Recheck the device map, even if @file{/boot/grub/device.map} already
--exists. You should use this option whenever you add/remove a disk
--into/from your computer.
-+exists.
-+
-+This option is unreliable and its use is strongly discouraged.
- @end table
---- grub-0.95/util/grub-install.in.recheck-bad 2005-07-25 17:58:19.000000000 -0400
-+++ grub-0.95/util/grub-install.in     2005-07-25 18:05:14.000000000 -0400
-@@ -68,6 +68,8 @@
-   --force-lba             force GRUB to use LBA mode even for a buggy
-                           BIOS
-   --recheck               probe a device map even if it already exists
-+                          This flag is unreliable and its use is
-+                          strongly discouraged.
- INSTALL_DEVICE can be a GRUB device name or a system device filename.
-@@ -328,7 +330,7 @@
- # If --recheck is specified, remove the device map, if present.
- if test $recheck = yes; then
--    rm -f $device_map
-+    mv $device_map ${device_map}.backup
- fi
- # Create the device map file if it is not present.
-@@ -357,7 +359,22 @@
- tmp=`sed -n '/^([fh]d[0-9]*)/s/\(^(.*)\).*/\1/p' $device_map \
-     | sort | uniq -d | sed -n 1p`
- if test -n "$tmp"; then
--    echo "The drive $tmp is defined multiple times in the device map $device_map" 1>&2
-+    echo "The drive $tmp is defined multiple times in the new device map." 1>&2
-+    if test $recheck = yes; then
-+        echo "Reverting to backed up copy." 1>&2
-+        mv ${device_map}.backup $device_map
-+    fi
-+    exit 1
-+fi
-+
-+# Make sure device.map has at least one hd device
-+grep -q "^(hd[0-9]\+)" $device_map
-+if [ "x$?" != "x0" ]; then
-+    echo "No suitable drive was found in the generated device map." 1>&2
-+    if test $recheck = yes; then
-+        echo "Reverting to backed up copy." 1>&2
-+        mv ${device_map}.backup $device_map
-+    fi
-     exit 1
- fi
---- grub-0.95/docs/grub-install.8.recheck-bad  2004-06-13 13:44:59.000000000 -0400
-+++ grub-0.95/docs/grub-install.8      2005-07-25 18:15:02.000000000 -0400
-@@ -30,6 +30,8 @@
- .TP
- \fB\-\-recheck\fR
- probe a device map even if it already exists
-+
-+This option is unreliable and its use is strongly discouraged.
- .PP
- INSTALL_DEVICE can be a GRUB device name or a system device filename.
- .SH "REPORTING BUGS"
---- grub-0.95/docs/grub.info.recheck-bad       2004-05-11 08:22:54.000000000 -0400
-+++ grub-0.95/docs/grub.info   2005-07-25 18:16:09.000000000 -0400
-@@ -3373,9 +3373,9 @@
- `--recheck'
-      Recheck the device map, even if `/boot/grub/device.map' already
--     exists. You should use this option whenever you add/remove a disk
--     into/from your computer.
-+     exists.
-+     This option is unreliable and its use is strongly discouraged.
\1f
- File: grub.info,  Node: Invoking grub-md5-crypt,  Next: Invoking grub-terminfo,  Prev: Invoking grub-install,  Up: Top
diff --git a/src/patches/grub-0.95-splash-error-term.patch b/src/patches/grub-0.95-splash-error-term.patch
deleted file mode 100644 (file)
index 71b036a..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
---- grub-0.95/stage2/graphics.c.old    2005-01-11 09:34:17.125451981 -0500
-+++ grub-0.95/stage2/graphics.c        2005-01-11 09:34:03.743949015 -0500
-@@ -108,12 +108,8 @@
-  * mode.  */
- int graphics_init()
- {
--    if (!graphics_inited) {
--        saved_videomode = set_videomode(0x12);
--    }
--
-     if (!read_image(splashimage)) {
--        set_videomode(saved_videomode);
-+      current_term = term_table;
-         grub_printf("failed to read image\n");
-         return 0;
-     }
-@@ -303,6 +299,8 @@
-     if (!xpm_open(s))
-         return 0;
-+    saved_videomode = set_videomode(0x12);
-+
-     /* parse info */
-     while (grub_read(&c, 1)) {
-         if (c == '"')
diff --git a/src/patches/grub-0.95-staticcurses.patch b/src/patches/grub-0.95-staticcurses.patch
deleted file mode 100644 (file)
index ff87dd3..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
---- grub-0.95/configure.ac.static      2004-06-13 13:38:17.000000000 -0400
-+++ grub-0.95/configure.ac     2004-06-18 17:35:23.513374336 -0400
-@@ -207,9 +207,9 @@
- # Unless the user specify --without-curses, check for curses.
- if test "x$with_curses" != "xno"; then
--  AC_CHECK_LIB(ncurses, wgetch, [GRUB_LIBS="$GRUB_LIBS -lncurses"
-+  AC_CHECK_LIB(ncurses, wgetch, [GRUB_LIBS="$GRUB_LIBS -Wl,-Bstatic -lncurses -Wl,-Bdynamic"
-   AC_DEFINE(HAVE_LIBCURSES, 1, [Define if you have a curses library])],
--    [AC_CHECK_LIB(curses, wgetch, [GRUB_LIBS="$GRUB_LIBS -lcurses"
-+    [AC_CHECK_LIB(curses, wgetch, [GRUB_LIBS="$GRUB_LIBS -Wl,-Bstatic -lcurses -Wl,-Bdynamic"
-        AC_DEFINE(HAVE_LIBCURSES, 1, [Define if you have a curses library])])])
- fi
diff --git a/src/patches/grub-0.95-xpmjunk.patch b/src/patches/grub-0.95-xpmjunk.patch
deleted file mode 100644 (file)
index de02897..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
---- grub-0.95/stage2/graphics.c.xpmjunk        2005-01-04 17:01:35.492804523 -0500
-+++ grub-0.95/stage2/graphics.c        2005-01-04 17:02:52.722495885 -0500
-@@ -262,6 +262,35 @@
-     return;
- }
-+/* Open the file, and search for a valid XPM header.  Return 1 if one is found,
-+ * leaving the current position as the start of the next line.  Else,
-+ * return 0.
-+ */
-+int xpm_open(const char *s) {
-+    char buf, prev, target[]="/* XPM */\n";
-+    int pos=0;
-+
-+    if (!grub_open(s))
-+        return 0;
-+
-+    prev='\n';
-+    buf=0;
-+    do {
-+        if (grub_read(&buf, 1) != 1) {
-+            grub_close();
-+            return 0;
-+        }
-+        if ((pos == 0 && prev == '\n') || pos > 0) {
-+            if (buf == target[pos])
-+                pos++;
-+            else
-+                pos=0;
-+        }
-+        prev=buf;
-+    } while (target[pos]);
-+    return 1;
-+}
-+
- /* Read in the splashscreen image and set the palette up appropriately.
-  * Format of splashscreen is an xpm (can be gzipped) with 16 colors and
-  * 640x480. */
-@@ -271,15 +300,9 @@
-     unsigned char c, base, mask, *s1, *s2, *s4, *s8;
-     unsigned i, len, idx, colors, x, y, width, height;
--    if (!grub_open(s))
-+    if (!xpm_open(s))
-         return 0;
--    /* read header */
--    if (!grub_read((char*)&buf, 10) || grub_memcmp(buf, "/* XPM */\n", 10)) {
--        grub_close();
--        return 0;
--    }
--    
-     /* parse info */
-     while (grub_read(&c, 1)) {
-         if (c == '"')
diff --git a/src/patches/grub-0.97-bz429187-cciss.patch b/src/patches/grub-0.97-bz429187-cciss.patch
deleted file mode 100644 (file)
index 32f18bc..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-diff -up grub-0.97/util/grub-install.in.cciss grub-0.97/util/grub-install.in
---- grub-0.97/util/grub-install.in.cciss       2008-02-04 14:30:31.000000000 -0500
-+++ grub-0.97/util/grub-install.in     2008-02-07 18:34:14.000000000 -0500
-@@ -100,25 +100,56 @@ convert () {
-     # Break the device name into the disk part and the partition part.
-     case "$host_os" in
-     linux*)
-+      # formats that need to be handled (disk name -> partition name):
-+      # floppies: /dev/fd0
-+      # normal sd/hd devices: /dev/hda -> /dev/hda3
-+      # md: /dev/md0 -> /dev/md0p0
-+      # ide raid devs: /dev/ide/host0/bus0/target0/lun0/disc
-+      #             -> /dev/ide/host0/bus0/target0/lun0/part1
-+      # cciss: /dev/cciss/c0d0 -> /dev/cciss/c0d0p1
-+      # mpath devs: /dev/mapper/mpath0 -> /dev/mapper/mpath0p1
-+      #             /dev/mapper/lalala -> /dev/mapper/lalalap1
-+      # dmraid devs: /dev/mapper/via_abcdef -> /dev/mapper/via_abcdefp1
-+      #    /dev/mapper/isw_Volume0_abcdef -> /dev/mapper/isw_Volume0_abcdefp1
-+      #  the known list (to me) is (X means we should handle it):
-+      #       X asr_[unfettered crap]
-+      #         hpt[0-9]+x_[0-9]+-[0-9]+
-+      #       X hpt[0-9]+x_[0-9]+
-+      #         hpt[0-9]+x_SPARE
-+      #         isw_[a-z]+_[a-z]+[0-9]+
-+      #       X isw_[a-z]+
-+      #         jm_[0-9]+-[0-9]+
-+      #       X jm_[0-9]+
-+      #         lsi_[0-9]+-[0-9]+
-+      #       X lsi_[0-9]+
-+      #         nvidia_[a-z]+-[0-9]+
-+      #       X nvidia_[a-z]+
-+      #         pdc_[a-z]+-[0-9]+
-+      #       X pdc_[a-z]+
-+      #         sil_[0-9]+-[0-9]+
-+      #       X sil_[0-9]+
-+      #         via_[a-z]+-[0-9]+
-+      #       X via_[a-z]+
-+      #
-+      # more? 
-       tmp_disk=`echo "$1" | grep -v '/mapper/control$' |
--              grep -v '/mapper/[[:alnum:]]\+-[[:alnum:]]\+$' | uniq |
-+              grep -v '/mapper/[[:alnum:]_]\+-[[:digit:]]\+$' | uniq |
-               sed -e 's%\([sh]d[a-z]\)[0-9]*$%\1%' \
--                                -e 's%\(d[0-9]*\)p[0-9]*$%\1%' \
--                                -e 's%\(fd[0-9]*\)$%\1%' \
--                                -e 's%/part[0-9]*$%/disc%' \
--                                -e 's%\(c[0-7]d[0-9]*\).*$%\1%' \
--        -e 's%\(/mapper/[[:alpha:]]\+[[:digit:]]\+\)p[[:digit:]]\+$%\1%' \
--        -e 's%\(/mapper/[[:alpha:]]\+_[[:alpha:]]\+\)[[:digit:]]\+$%\1%'`
-+                        -e 's%\(/c[0-9]\+d[0-9]\+\).*$%\1%' \
-+                        -e 's%\(fd[0-9]*\)$%\1%' \
-+                        -e 's%/part[0-9]*$%/disc%' \
-+  -e 's%\(/mapper/[[:alnum:]_-]\+\)\+p[[:digit:]]\+$%\1%'\
-+  -e 's%\(/mapper/[[:alnum:]]\+\(_[[:alnum:]]\+\)\+\)\p[[:digit:]]\+$%\1%'`
-       tmp_part=`echo "$1" | grep -v '/mapper/control$' |
--              grep -v '/mapper/[[:alnum:]]\+-[[:alnum:]]\+$' | uniq |
-+              grep -v '/mapper/[[:alnum:]_]\+-[[:digit:]]\+$' | uniq |
-               sed -e 's%.*/[sh]d[a-z]\([0-9]*\)$%\1%' \
--                                -e 's%.*d[0-9]*p%%' \
--                                -e 's%.*/fd[0-9]*$%%' \
--                                -e 's%.*/floppy/[0-9]*$%%' \
--                                -e 's%.*/\(disc\|part\([0-9]*\)\)$%\2%' \
--                                -e 's%.*c[0-7]d[0-9]*p%%' \
--        -e 's%.*/mapper/[[:alpha:]]\+[[:digit:]]\+p\([[:digit:]]\+\)$%\1%' \
--        -e 's%.*/mapper/[[:alpha:]]\+_[[:alpha:]]\+\([[:digit:]]\+\)$%\1%' |
-+                        -e 's%.*/c[0-9]\+d[0-9]\+p\([[:digit:]]\+\)%\1%' \
-+                        -e 's%.*/c[0-9]\+d[0-9]\+$%%' \
-+                        -e 's%.*/fd[0-9]\+$%%' \
-+                        -e 's%.*/floppy/[0-9]*$%%' \
-+                        -e 's%.*/\(disc\|part\([0-9]*\)\)$%\2%' \
-+  -e 's%.*/mapper/[[:alpha:]]\+[[:digit:]]\+p\([[:digit:]]\+\)$%\1%' \
-+  -e 's%.*/mapper/[[:alnum:]]\+\(_[[:alpha:]]\+[[:digit:]]*\)\+p\([[:digit:]]\+\)$%\2%' |
-               grep -v '.*/mapper/.*'`
-       ;;
-     gnu*)
diff --git a/src/patches/grub-0.97-cmdline-size.patch b/src/patches/grub-0.97-cmdline-size.patch
deleted file mode 100644 (file)
index e93aa98..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-diff --git a/stage2/boot.c b/stage2/boot.c
-index bf442e1..a6872e0 100644
---- a/stage2/boot.c
-+++ b/stage2/boot.c
-@@ -241,6 +241,7 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
-           }
-         if (lh->version >= 0x0202)
-+          /* version 0x0202 and higher can handle 4096 */
-           lh->cmd_line_ptr = linux_data_real_addr + LINUX_CL_OFFSET;
-         else
-           {
-@@ -403,8 +404,10 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
-         {
-           char *src = skip_to (0, arg);
-           char *dest = linux_data_tmp_addr + LINUX_CL_OFFSET;
--      
--          while (dest < linux_data_tmp_addr + LINUX_CL_END_OFFSET && *src)
-+            unsigned long cl_end_offset = lh->version < 0x0202 ? 
-+                LINUX_CL_END_OFFSET : LINUX_CL_END_OFFSET_202;
-+
-+          while (dest < linux_data_tmp_addr + cl_end_offset && *src)
-             *(dest++) = *(src++);
-       
-           /* Old Linux kernels have problems determining the amount of
-diff --git a/stage2/shared.h b/stage2/shared.h
-index d05644b..c052480 100644
---- a/stage2/shared.h
-+++ b/stage2/shared.h
-@@ -160,10 +160,13 @@ extern void *grub_scratch_mem;
- #define LINUX_VID_MODE_ASK            0xFFFD
- #define LINUX_CL_OFFSET                       0x9000
--#define LINUX_CL_END_OFFSET           0x90FF
--#define LINUX_SETUP_MOVE_SIZE         0x9100
- #define LINUX_CL_MAGIC                        0xA33F
-+#define LINUX_CL_END_OFFSET           0x90FF
-+#define LINUX_CL_END_OFFSET_202               0x9FFF /* version 0x0202 or higher */
-+#define LINUX_SETUP_MOVE_SIZE         0xA000 /* where am I putting it? */
-+
-+
- /*
-  *  General disk stuff
-  */
diff --git a/src/patches/grub-0.97-datadir.patch b/src/patches/grub-0.97-datadir.patch
deleted file mode 100644 (file)
index eaa89f0..0000000
+++ /dev/null
@@ -1,229 +0,0 @@
---- grub-0.97/stage1/Makefile.am.datadir       2005-12-14 11:07:01.000000000 -0500
-+++ grub-0.97/stage1/Makefile.am       2005-12-14 11:07:21.000000000 -0500
-@@ -1,7 +1,7 @@
--pkglibdir = $(libdir)/$(PACKAGE)/$(host_cpu)-$(host_vendor)
--nodist_pkglib_DATA = stage1
-+pkgdatadir = $(datadir)/$(PACKAGE)/$(host_cpu)-$(host_vendor)
-+nodist_pkgdata_DATA = stage1
--CLEANFILES = $(nodist_pkglib_DATA)
-+CLEANFILES = $(nodist_pkgdata_DATA)
- # We can't use builtins or standard includes.
- AM_CCASFLAGS = $(STAGE1_CFLAGS) -fno-builtin -nostdinc
---- grub-0.97/stage1/Makefile.in.datadir       2005-05-07 22:42:36.000000000 -0400
-+++ grub-0.97/stage1/Makefile.in       2005-12-14 11:08:13.000000000 -0500
-@@ -1,8 +1,8 @@
--# Makefile.in generated by automake 1.9.4 from Makefile.am.
-+# Makefile.in generated by automake 1.9.6 from Makefile.am.
- # @configure_input@
- # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
--# 2003, 2004  Free Software Foundation, Inc.
-+# 2003, 2004, 2005  Free Software Foundation, Inc.
- # This Makefile.in is free software; the Free Software Foundation
- # gives unlimited permission to copy and/or distribute it,
- # with or without modifications, as long as this notice is preserved.
-@@ -15,8 +15,6 @@
- @SET_MAKE@
--SOURCES = $(stage1_exec_SOURCES)
--
- srcdir = @srcdir@
- top_srcdir = @top_srcdir@
- VPATH = @srcdir@
-@@ -67,13 +65,13 @@
-     *) f=$$p;; \
-   esac;
- am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
--am__installdirs = "$(DESTDIR)$(pkglibdir)"
--nodist_pkglibDATA_INSTALL = $(INSTALL_DATA)
--DATA = $(nodist_pkglib_DATA)
-+am__installdirs = "$(DESTDIR)$(pkgdatadir)"
-+nodist_pkgdataDATA_INSTALL = $(INSTALL_DATA)
-+DATA = $(nodist_pkgdata_DATA)
- ETAGS = etags
- CTAGS = ctags
- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
--pkglibdir = $(libdir)/$(PACKAGE)/$(host_cpu)-$(host_vendor)
-+pkgdatadir = $(datadir)/$(PACKAGE)/$(host_cpu)-$(host_vendor)
- ACLOCAL = @ACLOCAL@
- AMDEP_FALSE = @AMDEP_FALSE@
- AMDEP_TRUE = @AMDEP_TRUE@
-@@ -102,6 +100,8 @@
- EGREP = @EGREP@
- EXEEXT = @EXEEXT@
- FSYS_CFLAGS = @FSYS_CFLAGS@
-+GRAPHICS_SUPPORT_FALSE = @GRAPHICS_SUPPORT_FALSE@
-+GRAPHICS_SUPPORT_TRUE = @GRAPHICS_SUPPORT_TRUE@
- GRUB_CFLAGS = @GRUB_CFLAGS@
- GRUB_LIBS = @GRUB_LIBS@
- HERCULES_SUPPORT_FALSE = @HERCULES_SUPPORT_FALSE@
-@@ -172,6 +172,7 @@
- infodir = @infodir@
- install_sh = @install_sh@
- libdir = @libdir@
-+datadir = @datadir@
- libexecdir = @libexecdir@
- localstatedir = @localstatedir@
- mandir = @mandir@
-@@ -183,8 +184,8 @@
- sharedstatedir = @sharedstatedir@
- sysconfdir = @sysconfdir@
- target_alias = @target_alias@
--nodist_pkglib_DATA = stage1
--CLEANFILES = $(nodist_pkglib_DATA)
-+nodist_pkgdata_DATA = stage1
-+CLEANFILES = $(nodist_pkgdata_DATA)
- # We can't use builtins or standard includes.
- AM_CCASFLAGS = $(STAGE1_CFLAGS) -fno-builtin -nostdinc
-@@ -242,22 +243,22 @@
- .S.obj:
-       $(CCASCOMPILE) -c `$(CYGPATH_W) '$<'`
- uninstall-info-am:
--install-nodist_pkglibDATA: $(nodist_pkglib_DATA)
-+install-nodist_pkgdataDATA: $(nodist_pkgdata_DATA)
-       @$(NORMAL_INSTALL)
--      test -z "$(pkglibdir)" || $(mkdir_p) "$(DESTDIR)$(pkglibdir)"
--      @list='$(nodist_pkglib_DATA)'; for p in $$list; do \
-+      test -z "$(pkgdatadir)" || $(mkdir_p) "$(DESTDIR)$(pkgdatadir)"
-+      @list='$(nodist_pkgdata_DATA)'; for p in $$list; do \
-         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-         f=$(am__strip_dir) \
--        echo " $(nodist_pkglibDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkglibdir)/$$f'"; \
--        $(nodist_pkglibDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkglibdir)/$$f"; \
-+        echo " $(nodist_pkgdataDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgdatadir)/$$f'"; \
-+        $(nodist_pkgdataDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgdatadir)/$$f"; \
-       done
--uninstall-nodist_pkglibDATA:
-+uninstall-nodist_pkgdataDATA:
-       @$(NORMAL_UNINSTALL)
--      @list='$(nodist_pkglib_DATA)'; for p in $$list; do \
-+      @list='$(nodist_pkgdata_DATA)'; for p in $$list; do \
-         f=$(am__strip_dir) \
--        echo " rm -f '$(DESTDIR)$(pkglibdir)/$$f'"; \
--        rm -f "$(DESTDIR)$(pkglibdir)/$$f"; \
-+        echo " rm -f '$(DESTDIR)$(pkgdatadir)/$$f'"; \
-+        rm -f "$(DESTDIR)$(pkgdatadir)/$$f"; \
-       done
- ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-@@ -339,7 +340,7 @@
- check: check-am
- all-am: Makefile $(PROGRAMS) $(DATA)
- installdirs:
--      for dir in "$(DESTDIR)$(pkglibdir)"; do \
-+      for dir in "$(DESTDIR)$(pkgdatadir)"; do \
-         test -z "$$dir" || $(mkdir_p) "$$dir"; \
-       done
- install: install-am
-@@ -388,7 +389,7 @@
- install-data-am:
--install-exec-am: install-nodist_pkglibDATA
-+install-exec-am: install-nodist_pkgdataDATA
- install-info: install-info-am
-@@ -412,19 +413,19 @@
- ps-am:
--uninstall-am: uninstall-info-am uninstall-nodist_pkglibDATA
-+uninstall-am: uninstall-info-am uninstall-nodist_pkgdataDATA
- .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-       clean-noinstPROGRAMS ctags distclean distclean-compile \
-       distclean-generic distclean-tags distdir dvi dvi-am html \
-       html-am info info-am install install-am install-data \
-       install-data-am install-exec install-exec-am install-info \
--      install-info-am install-man install-nodist_pkglibDATA \
-+      install-info-am install-man install-nodist_pkgdataDATA \
-       install-strip installcheck installcheck-am installdirs \
-       maintainer-clean maintainer-clean-generic mostlyclean \
-       mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \
-       tags uninstall uninstall-am uninstall-info-am \
--      uninstall-nodist_pkglibDATA
-+      uninstall-nodist_pkgdataDATA
- .exec:
-       $(OBJCOPY) -O binary $< $@
---- grub-0.97/util/grub-install.in.datadir     2005-12-14 11:00:21.000000000 -0500
-+++ grub-0.97/util/grub-install.in     2005-12-14 11:00:21.000000000 -0500
-@@ -21,13 +21,13 @@
- prefix=@prefix@
- exec_prefix=@exec_prefix@
- sbindir=@sbindir@
--libdir=@libdir@
-+datadir=@datadir@
- PACKAGE=@PACKAGE@
- VERSION=@VERSION@
- host_cpu=@host_cpu@
- host_os=@host_os@
- host_vendor=@host_vendor@
--pkglibdir=${libdir}/${PACKAGE}/${host_cpu}-${host_vendor}
-+pkgdatadir=${datadir}/${PACKAGE}/${host_cpu}-${host_vendor}
- grub_shell=${sbindir}/grub
- mdadm=${sbindir}/mdadm
-@@ -388,17 +388,17 @@
-     exit 1
- fi
--if test -f "$pkglibdir/stage1"; then
-+if test -f "$pkgdatadir/stage1"; then
-     :
- else
--    echo "${pkglibdir}/stage1: Not found." 1>&2
-+    echo "${pkgdatadir}/stage1: Not found." 1>&2
-     exit 1
- fi
--if test -f "$pkglibdir/stage2"; then
-+if test -f "$pkgdatadir/stage2"; then
-     :
- else
--    echo "${pkglibdir}/stage2: Not found." 1>&2
-+    echo "${pkgdatadir}/stage2: Not found." 1>&2
-     exit 1
- fi
---- grub-0.97/stage2/Makefile.am.datadir       2005-12-14 11:03:54.000000000 -0500
-+++ grub-0.97/stage2/Makefile.am       2005-12-14 11:05:04.000000000 -0500
-@@ -27,12 +27,12 @@
-       -DUSE_MD5_PASSWORDS=1 -DSUPPORT_SERIAL=1 -DSUPPORT_HERCULES=1
- # Stage 2 and Stage 1.5's.
--pkglibdir = $(libdir)/$(PACKAGE)/$(host_cpu)-$(host_vendor)
-+pkgdatadir = $(datadir)/$(PACKAGE)/$(host_cpu)-$(host_vendor)
- EXTRA_PROGRAMS = nbloader.exec pxeloader.exec diskless.exec
- if DISKLESS_SUPPORT
--pkglib_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \
-+pkgdata_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \
-       ffs_stage1_5 iso9660_stage1_5 jfs_stage1_5 minix_stage1_5 \
-       reiserfs_stage1_5 ufs2_stage1_5 vstafs_stage1_5 xfs_stage1_5 \
-       nbgrub pxegrub
-@@ -43,7 +43,7 @@
-       reiserfs_stage1_5.exec ufs2_stage1_5.exec vstafs_stage1_5.exec \
-       xfs_stage1_5.exec nbloader.exec pxeloader.exec diskless.exec
- else
--pkglib_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \
-+pkgdata_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \
-       ffs_stage1_5 iso9660_stage1_5 jfs_stage1_5 minix_stage1_5 \
-       reiserfs_stage1_5 ufs2_stage1_5 vstafs_stage1_5 xfs_stage1_5
- noinst_DATA = pre_stage2 start start_eltorito
-@@ -112,7 +112,7 @@
- BUILT_SOURCES = stage2_size.h
- endif
--CLEANFILES = $(pkglib_DATA) $(noinst_DATA) $(BUILT_SOURCES)
-+CLEANFILES = $(pkgdata_DATA) $(noinst_DATA) $(BUILT_SOURCES)
- stage2_size.h: pre_stage2
-       -rm -f stage2_size.h
diff --git a/src/patches/grub-0.97-disk_geometry-1.patch b/src/patches/grub-0.97-disk_geometry-1.patch
deleted file mode 100644 (file)
index e09686d..0000000
+++ /dev/null
@@ -1,892 +0,0 @@
-Submitted By: Jim Gifford <jim@linuxfromscratch.org>
-Date: 05-28-2006
-Initial Package Version: 0.97
-Upstream Status: Unknown
-Origin: Fedora and Mandriva
-Description: This patch fixes issues with disk geometry not being 
-            detected properly. Part of this patch also fixes
-            gcc 4 compile errors, which are a part of the issue.
-
-diff -Naur grub-0.97.orig/configure grub-0.97/configure
---- grub-0.97.orig/configure   2005-05-07 19:48:12.000000000 -0700
-+++ grub-0.97/configure        2006-05-28 20:29:36.025466751 -0700
-@@ -3485,9 +3485,9 @@
- echo "$as_me:$LINENO: result: $size_flag" >&5
- echo "${ECHO_T}$size_flag" >&6
-     if test "x$size_flag" = xyes; then
--      STAGE2_CFLAGS="-Os"
-+      STAGE2_CFLAGS="-Os -fno-strict-aliasing"
-     else
--      STAGE2_CFLAGS="-O2 -fno-strength-reduce -fno-unroll-loops"
-+      STAGE2_CFLAGS="-O2 -fno-strict-aliasing -fno-strength-reduce -fno-unroll-loops"
-     fi
-     # OpenBSD has a GCC extension for protecting applications from
-     # stack smashing attacks, but GRUB doesn't want this feature.
-diff -Naur grub-0.97.orig/configure.ac grub-0.97/configure.ac
---- grub-0.97.orig/configure.ac        2005-05-07 19:36:03.000000000 -0700
-+++ grub-0.97/configure.ac     2006-05-28 20:28:41.538819726 -0700
-@@ -93,9 +93,9 @@
-       CFLAGS=$saved_CFLAGS
-     ])
-     if test "x$size_flag" = xyes; then
--      STAGE2_CFLAGS="-Os"
-+      STAGE2_CFLAGS="-Os -fno-strict-aliasing"
-     else
--      STAGE2_CFLAGS="-O2 -fno-strength-reduce -fno-unroll-loops"
-+      STAGE2_CFLAGS="-O2 -fno-strict-aliasing -fno-strength-reduce -fno-unroll-loops"
-     fi
-     # OpenBSD has a GCC extension for protecting applications from
-     # stack smashing attacks, but GRUB doesn't want this feature.
-diff -Naur grub-0.97.orig/lib/device.c grub-0.97/lib/device.c
---- grub-0.97.orig/lib/device.c        2005-03-27 15:14:25.000000000 -0800
-+++ grub-0.97/lib/device.c     2006-05-28 20:34:03.546804777 -0700
-@@ -131,6 +131,152 @@
- #include <shared.h>
- #include <device.h>
-+#if defined(__linux__)
-+/* The 2.6 kernel has removed all of the geometry handling for IDE drives
-+ * that did fixups for LBA, etc.  This means that the geometry we get
-+ * with the ioctl has a good chance of being wrong.  So, we get to 
-+ * also know about partition tables and try to read what the geometry
-+ * is there. *grumble*   Very closely based on code from cfdisk
-+ */
-+static void get_kernel_geometry(int fd, long long *cyl, int *heads, int *sectors) {
-+    struct hd_geometry hdg;
-+    
-+    if (ioctl (fd, HDIO_GETGEO, &hdg))
-+        return;
-+
-+    *cyl = hdg.cylinders;
-+    *heads = hdg.heads;
-+    *sectors = hdg.sectors;
-+}
-+
-+struct partition {
-+        unsigned char boot_ind;         /* 0x80 - active */
-+        unsigned char head;             /* starting head */
-+        unsigned char sector;           /* starting sector */
-+        unsigned char cyl;              /* starting cylinder */
-+        unsigned char sys_ind;          /* What partition type */
-+        unsigned char end_head;         /* end head */
-+        unsigned char end_sector;       /* end sector */
-+        unsigned char end_cyl;          /* end cylinder */
-+        unsigned char start4[4];        /* starting sector counting from 0 */
-+        unsigned char size4[4];         /* nr of sectors in partition */
-+};
-+
-+#define ALIGNMENT 2
-+typedef union {
-+    struct {
-+      unsigned char align[ALIGNMENT];
-+      unsigned char b[SECTOR_SIZE];
-+    } c;
-+    struct {
-+      unsigned char align[ALIGNMENT];
-+      unsigned char buffer[0x1BE];
-+      struct partition part[4];
-+      unsigned char magicflag[2];
-+    } p;
-+} partition_table;
-+
-+#define PART_TABLE_FLAG0 0x55
-+#define PART_TABLE_FLAG1 0xAA
-+
-+static void
-+get_partition_table_geometry(partition_table *bufp, long long *cyl, int *heads, 
-+                             int *sectors) {
-+    struct partition *p;
-+    int i,h,s,hh,ss;
-+    int first = 1;
-+    int bad = 0;
-+
-+    if (bufp->p.magicflag[0] != PART_TABLE_FLAG0 ||
-+      bufp->p.magicflag[1] != PART_TABLE_FLAG1) {
-+          /* Matthew Wilcox: slightly friendlier version of
-+             fatal(_("Bad signature on partition table"), 3);
-+          */
-+            fprintf(stderr, "Unknown partition table signature\n");
-+          return;
-+    }
-+
-+    hh = ss = 0;
-+    for (i=0; i<4; i++) {
-+      p = &(bufp->p.part[i]);
-+      if (p->sys_ind != 0) {
-+          h = p->end_head + 1;
-+          s = (p->end_sector & 077);
-+          if (first) {
-+              hh = h;
-+              ss = s;
-+              first = 0;
-+          } else if (hh != h || ss != s)
-+              bad = 1;
-+      }
-+    }
-+
-+    if (!first && !bad) {
-+      *heads = hh;
-+      *sectors = ss;
-+    }
-+}
-+
-+static long long my_lseek (unsigned int fd, long long offset, 
-+                           unsigned int origin)
-+{
-+#if defined(__linux__) && (!defined(__GLIBC__) || \
-+        ((__GLIBC__ < 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ < 1))))
-+  /* Maybe libc doesn't have large file support.  */
-+  loff_t offset, result;
-+  static int _llseek (uint filedes, ulong hi, ulong lo,
-+                      loff_t *res, uint wh);
-+  _syscall5 (int, _llseek, uint, filedes, ulong, hi, ulong, lo,
-+             loff_t *, res, uint, wh);
-+  
-+  if (_llseek (fd, offset >> 32, offset & 0xffffffff, &result, SEEK_SET) < 0)
-+    return (long long) -1;
-+  return result;
-+#else
-+  return lseek(fd, offset, SEEK_SET);
-+#endif
-+}
-+
-+static void get_linux_geometry (int fd, struct geometry *geom) {
-+    long long kern_cyl = 0; int kern_head = 0, kern_sectors = 0;
-+    long long pt_cyl = 0; int pt_head = 0, pt_sectors = 0;
-+    partition_table bufp;
-+    char *buff, *buf_unaligned;
-+
-+    buf_unaligned = malloc(sizeof(partition_table) + 4095);
-+    buff = (char *) (((unsigned long)buf_unaligned + 4096 - 1) &
-+                     (~(4096-1)));
-+
-+    get_kernel_geometry(fd, &kern_cyl, &kern_head, &kern_sectors);
-+
-+    if (my_lseek (fd, 0*SECTOR_SIZE, SEEK_SET) < 0) {
-+        fprintf(stderr, "Unable to seek");
-+    }
-+
-+    if (read(fd, buff, SECTOR_SIZE) == SECTOR_SIZE) {
-+        memcpy(bufp.c.b, buff, SECTOR_SIZE);
-+        get_partition_table_geometry(&bufp, &pt_cyl, &pt_head, &pt_sectors);
-+    } else {
-+        fprintf(stderr, "Unable to read partition table: %s\n", strerror(errno));
-+    }
-+
-+    if (pt_head && pt_sectors) {
-+        int cyl_size;
-+
-+        geom->heads = pt_head;
-+        geom->sectors = pt_sectors;
-+        cyl_size = pt_head * pt_sectors;
-+        geom->cylinders = geom->total_sectors/cyl_size;
-+    } else {
-+        geom->heads = kern_head;
-+        geom->sectors = kern_sectors;
-+        geom->cylinders = kern_cyl;
-+    }
-+
-+    return;
-+}
-+#endif
-+
- /* Get the geometry of a drive DRIVE.  */
- void
- get_drive_geometry (struct geometry *geom, char **map, int drive)
-@@ -151,21 +297,16 @@
- #if defined(__linux__)
-   /* Linux */
-   {
--    struct hd_geometry hdg;
-     unsigned long nr;
--    
--    if (ioctl (fd, HDIO_GETGEO, &hdg))
--      goto fail;
-     if (ioctl (fd, BLKGETSIZE, &nr))
-       goto fail;
-     
-     /* Got the geometry, so save it. */
--    geom->cylinders = hdg.cylinders;
--    geom->heads = hdg.heads;
--    geom->sectors = hdg.sectors;
-     geom->total_sectors = nr;
--    
-+    get_linux_geometry(fd, geom);
-+    if (!geom->heads && !geom->cylinders && !geom->sectors)
-+        goto fail;
-     goto success;
-   }
-@@ -844,6 +985,7 @@
- {
-   char dev[PATH_MAX]; /* XXX */
-   int fd;
-+  off_t offset = (off_t) sector * (off_t) SECTOR_SIZE;
-   
-   if ((partition & 0x00FF00) != 0x00FF00)
-     {
-@@ -870,35 +1012,13 @@
-       errnum = ERR_NO_PART;
-       return 0;
-     }
--  
--#if defined(__linux__) && (!defined(__GLIBC__) || \
--        ((__GLIBC__ < 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ < 1))))
--  /* Maybe libc doesn't have large file support.  */
--  {
--    loff_t offset, result;
--    static int _llseek (uint filedes, ulong hi, ulong lo,
--                        loff_t *res, uint wh);
--    _syscall5 (int, _llseek, uint, filedes, ulong, hi, ulong, lo,
--               loff_t *, res, uint, wh);
--    offset = (loff_t) sector * (loff_t) SECTOR_SIZE;
--    if (_llseek (fd, offset >> 32, offset & 0xffffffff, &result, SEEK_SET))
--      {
--      errnum = ERR_DEV_VALUES;
--      return 0;
--      }
--  }
--#else
--  {
--    off_t offset = (off_t) sector * (off_t) SECTOR_SIZE;
--    if (lseek (fd, offset, SEEK_SET) != offset)
--      {
--      errnum = ERR_DEV_VALUES;
--      return 0;
--      }
--  }
--#endif
-+  if (my_lseek(fd, offset, SEEK_SET) != offset)
-+    {
-+      errnum = ERR_DEV_VALUES;
-+      return 0;
-+    }
-   
-   if (write (fd, buf, size * SECTOR_SIZE) != (size * SECTOR_SIZE))
-     {
-diff -Naur grub-0.97.orig/stage2/Makefile.am grub-0.97/stage2/Makefile.am
---- grub-0.97.orig/stage2/Makefile.am  2005-02-02 12:37:35.000000000 -0800
-+++ grub-0.97/stage2/Makefile.am       2006-05-28 20:28:41.590818435 -0700
-@@ -24,7 +24,8 @@
-       -DGRUB_UTIL=1 -DFSYS_EXT2FS=1 -DFSYS_FAT=1 -DFSYS_FFS=1 \
-       -DFSYS_ISO9660=1 -DFSYS_JFS=1 -DFSYS_MINIX=1 -DFSYS_REISERFS=1 \
-       -DFSYS_UFS2=1 -DFSYS_VSTAFS=1 -DFSYS_XFS=1 \
--      -DUSE_MD5_PASSWORDS=1 -DSUPPORT_SERIAL=1 -DSUPPORT_HERCULES=1
-+      -DUSE_MD5_PASSWORDS=1 -DSUPPORT_SERIAL=1 -DSUPPORT_HERCULES=1 \
-+      -fno-strict-aliasing
- # Stage 2 and Stage 1.5's.
- pkglibdir = $(libdir)/$(PACKAGE)/$(host_cpu)-$(host_vendor)
-diff -Naur grub-0.97.orig/stage2/boot.c grub-0.97/stage2/boot.c
---- grub-0.97.orig/stage2/boot.c       2004-03-30 03:44:08.000000000 -0800
-+++ grub-0.97/stage2/boot.c    2006-05-28 20:33:30.123638792 -0700
-@@ -55,7 +55,7 @@
-   pu;
-   /* presuming that MULTIBOOT_SEARCH is large enough to encompass an
-      executable header */
--  unsigned char buffer[MULTIBOOT_SEARCH];
-+  char buffer[MULTIBOOT_SEARCH];
-   /* sets the header pointer to point to the beginning of the
-      buffer by default */
-@@ -98,7 +98,7 @@
-   /* ELF loading supported if multiboot, FreeBSD and NetBSD.  */
-   if ((type == KERNEL_TYPE_MULTIBOOT
-        || pu.elf->e_ident[EI_OSABI] == ELFOSABI_FREEBSD
--       || grub_strcmp (pu.elf->e_ident + EI_BRAND, "FreeBSD") == 0
-+       || grub_strcmp ((char *) pu.elf->e_ident + EI_BRAND, "FreeBSD") == 0
-        || suggested_type == KERNEL_TYPE_NETBSD)
-       && len > sizeof (Elf32_Ehdr)
-       && BOOTABLE_I386_ELF ((*((Elf32_Ehdr *) buffer))))
-@@ -824,8 +824,12 @@
-     moveto = (mbi.mem_upper + 0x400) << 10;
-   
-   moveto = (moveto - len) & 0xfffff000;
-+#if 0
-   max_addr = (lh->header == LINUX_MAGIC_SIGNATURE && lh->version >= 0x0203
-             ? lh->initrd_addr_max : LINUX_INITRD_MAX_ADDRESS);
-+#else
-+  max_addr = LINUX_INITRD_MAX_ADDRESS;
-+#endif
-   if (moveto + len >= max_addr)
-     moveto = (max_addr - len) & 0xfffff000;
-   
-diff -Naur grub-0.97.orig/stage2/disk_io.c grub-0.97/stage2/disk_io.c
---- grub-0.97.orig/stage2/disk_io.c    2004-05-23 09:35:24.000000000 -0700
-+++ grub-0.97/stage2/disk_io.c 2006-05-28 20:28:41.582818634 -0700
-@@ -127,12 +127,19 @@
- int filepos;
- int filemax;
--static inline unsigned long
--log2 (unsigned long word)
-+#define log2(n) ffz(~(n))
-+
-+/* include/asm-i386/bitops.h */
-+/*
-+ * ffz = Find First Zero in word. Undefined if no zero exists,
-+ * so code should check against ~0UL first..
-+ */
-+static __inline__ unsigned long
-+ffz (unsigned long word)
- {
--  asm volatile ("bsfl %1,%0"
--              : "=r" (word)
--              : "r" (word));
-+  __asm__ ("bsfl %1,%0"
-+:        "=r" (word)
-+:        "r" (~word));
-   return word;
- }
-diff -Naur grub-0.97.orig/stage2/freebsd.h grub-0.97/stage2/freebsd.h
---- grub-0.97.orig/stage2/freebsd.h    2003-07-09 04:45:52.000000000 -0700
-+++ grub-0.97/stage2/freebsd.h 2006-05-28 20:28:41.582818634 -0700
-@@ -78,7 +78,7 @@
- struct bootinfo
-   {
-     unsigned int bi_version;
--    unsigned char *bi_kernelname;
-+    char *bi_kernelname;
-     struct nfs_diskless *bi_nfs_diskless;
-     /* End of fields that are always present. */
- #define bi_endcommon            bi_n_bios_used
-diff -Naur grub-0.97.orig/stage2/fsys_fat.c grub-0.97/stage2/fsys_fat.c
---- grub-0.97.orig/stage2/fsys_fat.c   2005-03-15 08:52:00.000000000 -0800
-+++ grub-0.97/stage2/fsys_fat.c        2006-05-28 20:28:41.582818634 -0700
-@@ -54,12 +54,19 @@
- #define FAT_CACHE_SIZE 2048
-+#define log2(n) ffz(~(n))
-+
-+/* include/asm-i386/bitops.h */
-+/*
-+ * ffz = Find First Zero in word. Undefined if no zero exists,
-+ * so code should check against ~0UL first..
-+ */
- static __inline__ unsigned long
--log2 (unsigned long word)
-+ffz (unsigned long word)
- {
-   __asm__ ("bsfl %1,%0"
--         : "=r" (word)
--         : "r" (word));
-+:        "=r" (word)
-+:        "r" (~word));
-   return word;
- }
-diff -Naur grub-0.97.orig/stage2/fsys_iso9660.c grub-0.97/stage2/fsys_iso9660.c
---- grub-0.97.orig/stage2/fsys_iso9660.c       2004-05-11 05:11:19.000000000 -0700
-+++ grub-0.97/stage2/fsys_iso9660.c    2006-05-28 20:28:41.582818634 -0700
-@@ -55,13 +55,19 @@
- #define RRCONT_BUF      ((unsigned char *)(FSYS_BUF + 6144))
- #define NAME_BUF        ((unsigned char *)(FSYS_BUF + 8192))
-+#define log2(n) ffz(~(n))
--static inline unsigned long
--log2 (unsigned long word)
-+/* include/asm-i386/bitops.h */
-+/*
-+ * ffz = Find First Zero in word. Undefined if no zero exists,
-+ * so code should check against ~0UL first..
-+ */
-+static __inline__ unsigned long
-+ffz (unsigned long word)
- {
--  asm volatile ("bsfl %1,%0"
--              :          "=r" (word)
--              :          "r" (word));
-+  __asm__ ("bsfl %1,%0"
-+:        "=r" (word)
-+:        "r" (~word));
-   return word;
- }
-@@ -120,7 +126,7 @@
-       break;
-       /* check ISO_VD_PRIMARY and ISO_STANDARD_ID */
-       if (PRIMDESC->type.l == ISO_VD_PRIMARY
--        && !memcmp(PRIMDESC->id, ISO_STANDARD_ID, sizeof(PRIMDESC->id)))
-+        && !memcmp((char *) PRIMDESC->id, ISO_STANDARD_ID, sizeof(PRIMDESC->id)))
-       {
-         ISO_SUPER->vol_sector = sector;
-         INODE->file_start = 0;
-@@ -175,7 +181,7 @@
-         for (; idr->length.l > 0;
-              idr = (struct iso_directory_record *)((char *)idr + idr->length.l) )
-           {
--            const char *name = idr->name;
-+            const u_int8_t *name = idr->name;
-             unsigned int name_len = idr->name_len.l;
-             file_type = (idr->flags.l & 2) ? ISO_DIRECTORY : ISO_REGULAR;
-@@ -198,7 +204,7 @@
-             rr_len = (idr->length.l - idr->name_len.l
-                       - sizeof(struct iso_directory_record)
-                       + sizeof(idr->name));
--            rr_ptr.ptr = ((unsigned char *)idr + idr->name_len.l
-+            rr_ptr.ptr = ((char *)idr + idr->name_len.l
-                           + sizeof(struct iso_directory_record)
-                           - sizeof(idr->name));
-             if (rr_ptr.i & 1)
-@@ -331,9 +337,9 @@
-                         memcpy(NAME_BUF, name, name_len);
-                         name = NAME_BUF;
-                       }
--                    rr_ptr.ptr = RRCONT_BUF + ce_ptr->u.ce.offset.l;
-+                    rr_ptr.ptr = (char *) RRCONT_BUF + ce_ptr->u.ce.offset.l;
-                     rr_len = ce_ptr->u.ce.size.l;
--                    if (!iso9660_devread(ce_ptr->u.ce.extent.l, 0, ISO_SECTOR_SIZE, RRCONT_BUF))
-+                    if (!iso9660_devread(ce_ptr->u.ce.extent.l, 0, ISO_SECTOR_SIZE, (char *) RRCONT_BUF))
-                       {
-                         errnum = 0;   /* this is not fatal. */
-                         break;
-@@ -344,7 +350,7 @@
-             filemax = MAXINT;
-             if (name_len >= pathlen
--                && !memcmp(name, dirname, pathlen))
-+                && !memcmp((char *) name, dirname, pathlen))
-               {
-                 if (dirname[pathlen] == '/' || !print_possibilities)
-                   {
-@@ -381,7 +387,7 @@
-                       print_possibilities = -print_possibilities;
-                     memcpy(NAME_BUF, name, name_len);
-                     NAME_BUF[name_len] = '\0';
--                    print_a_completion (NAME_BUF);
-+                    print_a_completion ((char *) NAME_BUF);
- #endif
-                   }
-               }
-diff -Naur grub-0.97.orig/stage2/fsys_reiserfs.c grub-0.97/stage2/fsys_reiserfs.c
---- grub-0.97.orig/stage2/fsys_reiserfs.c      2004-02-18 14:09:10.000000000 -0800
-+++ grub-0.97/stage2/fsys_reiserfs.c   2006-05-28 20:28:41.586818535 -0700
-@@ -365,13 +365,19 @@
- #define JOURNAL_START    ((__u32 *) (INFO + 1))
- #define JOURNAL_END      ((__u32 *) (FSYS_BUF + FSYS_BUFLEN))
-+#define log2(n) ffz(~(n))
-+/* include/asm-i386/bitops.h */
-+/*
-+ * ffz = Find First Zero in word. Undefined if no zero exists,
-+ * so code should check against ~0UL first..
-+ */
- static __inline__ unsigned long
--log2 (unsigned long word)
-+ffz (unsigned long word)
- {
-   __asm__ ("bsfl %1,%0"
--         : "=r" (word)
--         : "r" (word));
-+:        "=r" (word)
-+:        "r" (~word));
-   return word;
- }
-diff -Naur grub-0.97.orig/stage2/fsys_vstafs.c grub-0.97/stage2/fsys_vstafs.c
---- grub-0.97.orig/stage2/fsys_vstafs.c        2003-07-09 04:45:53.000000000 -0700
-+++ grub-0.97/stage2/fsys_vstafs.c     2006-05-28 20:28:41.586818535 -0700
-@@ -186,35 +186,35 @@
- int 
- vstafs_read (char *addr, int len)
- {
--  struct alloc *a;
-+  struct alloc *b;
-   int size, ret = 0, offset, curr_len = 0;
--  int curr_ext;
-+  int curr_exten;
-   char extent;
-   int ext_size;
-   char *curr_pos;
-   
-   get_file_info (f_sector);
-   size = FILE_INFO->len-VSTAFS_START_DATA;
--  a = FILE_INFO->blocks;
-+  b = FILE_INFO->blocks;
-   
-   if (filepos > 0)
-     {
--      if (filepos < a[0].a_len * 512 - VSTAFS_START_DATA)
-+      if (filepos < b[0].a_len * 512 - VSTAFS_START_DATA)
-       {
-         offset = filepos + VSTAFS_START_DATA;
-         extent = 0;
--        curr_len = a[0].a_len * 512 - offset - filepos; 
-+        curr_len = b[0].a_len * 512 - offset - filepos; 
-       }
-       else
-       {
--        ext_size = a[0].a_len * 512 - VSTAFS_START_DATA;
-+        ext_size = b[0].a_len * 512 - VSTAFS_START_DATA;
-         offset = filepos - ext_size;
-         extent = 1;
-         do
-           {
-             curr_len -= ext_size;
-             offset -= ext_size;
--            ext_size = a[extent+1].a_len * 512;
-+            ext_size = b[extent+1].a_len * 512;
-           }
-         while (extent < FILE_INFO->extents && offset>ext_size);
-       }
-@@ -223,16 +223,16 @@
-     {
-       offset = VSTAFS_START_DATA;
-       extent = 0;
--      curr_len = a[0].a_len * 512 - offset;
-+      curr_len = b[0].a_len * 512 - offset;
-     }
-   
-   curr_pos = addr;
-   if (curr_len > len)
-     curr_len = len;
-   
--  for (curr_ext=extent;
--       curr_ext < FILE_INFO->extents; 
--       curr_len = a[curr_ext].a_len * 512, curr_pos += curr_len, curr_ext++)
-+  for (curr_exten = extent;
-+       curr_exten < FILE_INFO->extents; 
-+       curr_len = b[curr_exten].a_len * 512, curr_pos += curr_len, curr_exten++)
-     {
-       ret += curr_len;
-       size -= curr_len;
-@@ -242,7 +242,7 @@
-         curr_len += size;
-       }
-       
--      devread (a[curr_ext].a_start,offset, curr_len, curr_pos);
-+      devread (b[curr_exten].a_start, offset, curr_len, curr_pos);
-       offset = 0;
-     }
-   
-diff -Naur grub-0.97.orig/stage2/fsys_xfs.c grub-0.97/stage2/fsys_xfs.c
---- grub-0.97.orig/stage2/fsys_xfs.c   2005-05-07 19:15:55.000000000 -0700
-+++ grub-0.97/stage2/fsys_xfs.c        2006-05-28 20:28:41.586818535 -0700
-@@ -97,7 +97,7 @@
-       return ino & XFS_INO_MASK(XFS_INO_OFFSET_BITS);
- }
--static inline __const__ xfs_uint16_t
-+static inline __attribute__((const)) xfs_uint16_t
- le16 (xfs_uint16_t x)
- {
-       __asm__("xchgb %b0,%h0" \
-@@ -106,7 +106,7 @@
-               return x;
- }
--static inline __const__ xfs_uint32_t
-+static inline __attribute__((const)) xfs_uint32_t
- le32 (xfs_uint32_t x)
- {
- #if 0
-@@ -122,7 +122,7 @@
-       return x;
- }
--static inline __const__ xfs_uint64_t
-+static inline __attribute__((const)) xfs_uint64_t
- le64 (xfs_uint64_t x)
- {
-       xfs_uint32_t h = x >> 32;
-@@ -368,7 +368,7 @@
-               default:
-                       namelen = sfe->namelen;
-                       *ino = sf_ino ((char *)sfe, namelen);
--                      name = sfe->name;
-+                      name = (char *) sfe->name;
-                       sfe = (xfs_dir2_sf_entry_t *)
-                                 ((char *)sfe + namelen + 11 - xfs.i8param);
-               }
-diff -Naur grub-0.97.orig/stage2/gunzip.c grub-0.97/stage2/gunzip.c
---- grub-0.97.orig/stage2/gunzip.c     2003-07-09 04:45:53.000000000 -0700
-+++ grub-0.97/stage2/gunzip.c  2006-05-28 20:28:41.586818535 -0700
-@@ -277,7 +277,7 @@
-    *  is a compressed file, and simply mark it as such.
-    */
-   if (no_decompression
--      || grub_read (buf, 10) != 10
-+      || grub_read ((char *) buf, 10) != 10
-       || ((*((unsigned short *) buf) != GZIP_HDR_LE)
-         && (*((unsigned short *) buf) != OLD_GZIP_HDR_LE)))
-     {
-@@ -293,7 +293,7 @@
-   if (buf[2] != DEFLATED
-       || (buf[3] & UNSUPP_FLAGS)
-       || ((buf[3] & EXTRA_FIELD)
--        && (grub_read (buf, 2) != 2
-+        && (grub_read ((char *) buf, 2) != 2
-             || bad_field (*((unsigned short *) buf))))
-       || ((buf[3] & ORIG_NAME) && bad_field (-1))
-       || ((buf[3] & COMMENT) && bad_field (-1)))
-@@ -308,7 +308,7 @@
-   
-   filepos = filemax - 8;
-   
--  if (grub_read (buf, 8) != 8)
-+  if (grub_read ((char *) buf, 8) != 8)
-     {
-       if (! errnum)
-       errnum = ERR_BAD_GZIP_HEADER;
-@@ -485,8 +485,8 @@
- #define INBUFSIZ  0x2000
--static uch inbuf[INBUFSIZ];
--static int bufloc;
-+static unsigned char inbuf[INBUFSIZ];
-+static int  bufloc;
- static int
- get_byte (void)
-@@ -494,7 +494,7 @@
-   if (filepos == gzip_data_offset || bufloc == INBUFSIZ)
-     {
-       bufloc = 0;
--      grub_read (inbuf, INBUFSIZ);
-+      grub_read ((char *) inbuf, INBUFSIZ);
-     }
-   return inbuf[bufloc++];
-@@ -925,7 +925,7 @@
-   unsigned m;                 /* mask for bit lengths table */
-   unsigned n;                 /* number of lengths to get */
-   unsigned nb;                        /* number of bit length codes */
--  unsigned nl;                        /* number of literal/length codes */
-+  unsigned nc;                        /* number of literal/length codes */
-   unsigned nd;                        /* number of distance codes */
-   unsigned ll[286 + 30];      /* literal/length and distance code lengths */
-   register ulg b;             /* bit buffer */
-@@ -937,7 +937,7 @@
-   /* read in table lengths */
-   NEEDBITS (5);
--  nl = 257 + ((unsigned) b & 0x1f);   /* number of literal/length codes */
-+  nc = 257 + ((unsigned) b & 0x1f);   /* number of literal/length codes */
-   DUMPBITS (5);
-   NEEDBITS (5);
-   nd = 1 + ((unsigned) b & 0x1f);     /* number of distance codes */
-@@ -945,7 +945,7 @@
-   NEEDBITS (4);
-   nb = 4 + ((unsigned) b & 0xf);      /* number of bit length codes */
-   DUMPBITS (4);
--  if (nl > 286 || nd > 30)
-+  if (nc > 286 || nd > 30)
-     {
-       errnum = ERR_BAD_GZIP_DATA;
-       return;
-@@ -970,7 +970,7 @@
-     }
-   /* read in literal and distance code lengths */
--  n = nl + nd;
-+  n = nc + nd;
-   m = mask_bits[bl];
-   i = l = 0;
-   while ((unsigned) i < n)
-@@ -1034,7 +1034,7 @@
-   /* build the decoding tables for literal/length and distance codes */
-   bl = lbits;
--  if ((i = huft_build (ll, nl, 257, cplens, cplext, &tl, &bl)) != 0)
-+  if ((i = huft_build (ll, nc, 257, cplens, cplext, &tl, &bl)) != 0)
-     {
- #if 0
-       if (i == 1)
-@@ -1045,7 +1045,7 @@
-       return;
-     }
-   bd = dbits;
--  if ((i = huft_build (ll + nl, nd, 0, cpdist, cpdext, &td, &bd)) != 0)
-+  if ((i = huft_build (ll + nc, nd, 0, cpdist, cpdext, &td, &bd)) != 0)
-     {
- #if 0
-       if (i == 1)
-diff -Naur grub-0.97.orig/stage2/md5.c grub-0.97/stage2/md5.c
---- grub-0.97.orig/stage2/md5.c        2003-07-09 04:45:53.000000000 -0700
-+++ grub-0.97/stage2/md5.c     2006-05-28 20:28:41.590818435 -0700
-@@ -166,7 +166,7 @@
-   inputlen -= 64 - buflen;
-   while (inputlen >= 64)
-     {
--      md5_transform (input);
-+      md5_transform ((unsigned char *) input);
-       input += 64;
-       inputlen -= 64;
-     }
-@@ -211,7 +211,7 @@
-   char *p; 
-   int saltlen;
-   int i, n;
--  unsigned char alt_result[16];
-+  char alt_result[16];
-   unsigned char *digest;
-   if (check)
-diff -Naur grub-0.97.orig/stage2/start_eltorito.S grub-0.97/stage2/start_eltorito.S
---- grub-0.97.orig/stage2/start_eltorito.S     2004-03-27 08:14:20.000000000 -0800
-+++ grub-0.97/stage2/start_eltorito.S  2006-05-28 20:31:17.770936712 -0700
-@@ -40,9 +40,9 @@
- #define ABS(x)                        (x-_start+BOOTSEC_LOCATION)
- #ifdef STAGE1_5
--# define STAGE_ADDR           0x2000
-+# define STAGE_ADDR           0x2200
- #else
--# define STAGE_ADDR           0x8000
-+# define STAGE_ADDR           0x8200
- #endif /* STAGE1_5 */
-       /* Print message string */
-@@ -71,12 +71,14 @@
-       . = _start + 8                      /* Pad to file offset 8 */
-               /* This table gets filled in by mkisofs using the
--                 -boot-info-table option */
--bi_pvd:               .long 0xDEADBEEF            /* LBA of primary volume descript */
--bi_file:      .long 0xDEADBEEF            /* LBA of boot file */
--bi_length:    .long 0xDEADBEEF            /* Length of boot file */
--bi_csum:      .long 0xDEADBEEF            /* Checksum of boot file */
--bi_reserved:  .space (10*4)               /* Reserved */
-+                 -boot-info-table option If not, the values in this
-+                 table are default values that we can use to get us
-+                 what we need, at least under a certain set of assumptions. */
-+bi_pvd:       .long 16                /* LBA of primary volume descript */
-+bi_file:      .long 0                 /* LBA of boot file */
-+bi_length:    .long 0xDEADBEEF        /* Length of boot file */
-+bi_csum:      .long 0xDEADBEEF        /* Checksum of boot file */
-+bi_reserved:  .space (10*4)           /* Reserved */
- real_start:
-       xor     %ax, %ax
-@@ -92,10 +94,28 @@
-       /* save drive reference first thing! */
-       mov     %dl, ABS(BootDrive)
--      /* print a notification message on the screen */
--      MSG(notification_string)
-+      /* check if machine support IBM/MS int 13h extensions */
-+      mov     $0x41, %ah
-+      mov     $0x55AA, %bx
-+      int     $0x13
-+      jnc     load_image
-+
-+      /* bios doesn't support int 13h extensions, print error messages */
-+      MSG(int13_error_string1)
-+      MSG(notification_done)
-+      MSG(int13_error_string2)
-+      MSG(notification_done)
-+      MSG(int13_error_string3)
-+      MSG(notification_done)
-+      /* even when bios says that it doesn't support int 13h
-+           extensions, do not stop here and try to load image anyway,
-+           because some bioses says that there isn't support for
-+           extended functions but have the needed extended read function
-+           (int 13h, function AH=42h) */
- load_image:
-+      /* print a notification message on the screen */
-+      MSG(notification_string)
-       /* Set up boot file sector, size, load address */
-       mov     ABS(bi_length), %eax
-       add     $(ISO_SECTOR_SIZE-1), %eax
-@@ -105,6 +125,8 @@
-       mov     %bx, %es
-       xor     %bx, %bx
-       mov     ABS(bi_file), %eax
-+      inc     %eax                /* do not reload the first sector (this code) */
-+      dec     %bp                 /* this way we have more room for code in stage1 */
-       call    getlinsec
-       mov     %ds, %ax
-       mov     %ax, %es
-@@ -115,7 +137,7 @@
-       mov     $ABS(firstlist - BOOTSEC_LISTSIZE), %si
-       mov     (%si), %ebp
-       mov     ABS(BootDrive), %dl         /* this makes sure %dl is our "boot" drive */
--      ljmp    $0, $(STAGE_ADDR+SECTOR_SIZE)  /* jump to main() in asm.S */
-+      ljmp    $0, $(STAGE_ADDR)           /* jump to main() in asm.S */
- /* go here when you need to stop the machine hard after an error condition */
- stop: jmp     stop
-@@ -171,11 +193,11 @@
-  */
- xint13:
-       movb    $6, ABS(RetryCount)
--      pushal
- .try:
-+      pushal
-       int     $0x13
-       jc      1f
--      add     $(8*4), %sp                 /* Clean up stack */
-+      popal                               /* Clean up stack */
-       ret
- 1:
-       mov     %ah, %dl                    /* Save error code */
-@@ -276,6 +298,10 @@
- read_error_string:    .string "Read error 0x"
-+int13_error_string1:  .string "Support for IBM/MS INT 13h extensions not found"
-+int13_error_string2:  .string "GRUB cannot be loaded if int 13h/function AH=42h isn't present"
-+int13_error_string3:  .string "Trying to load stage 2 anyway..."
-+
- /*
-  * EBIOS disk address packet
-  */
-@@ -306,7 +332,8 @@
-       .word 0
-       .word 0
--      . = _start + SECTOR_SIZE - BOOTSEC_LISTSIZE
-+      /* size of the code we can place between main body and fixed top location */
-+      . = _start + 1536 - BOOTSEC_LISTSIZE
-       /* fill the first data listing with the default */
- blocklist_default_start:/* this is the sector start parameter, in logical
-@@ -321,6 +348,12 @@
- #endif
- blocklist_default_seg:        /* this is the segment of the starting address
-                          to load the data into */
--      .word (STAGE_ADDR + SECTOR_SIZE) >> 4
-+      .word (STAGE_ADDR) >> 4
- firstlist:    /* this label has to be after the list data!!! */
-+
-+      /* this is a workaround to allow more code to be added in stage1,
-+         it allows more code to be added for this stage, but for this
-+         we can't reload the first sector. So we have to align the code
-+         to ISO_SECTOR_SIZE. */
-+      . = _start + ISO_SECTOR_SIZE
-diff -Naur grub-0.97.orig/util/grub-install.in grub-0.97/util/grub-install.in
---- grub-0.97.orig/util/grub-install.in        2004-07-24 11:57:31.000000000 -0700
-+++ grub-0.97/util/grub-install.in     2006-05-28 20:30:31.484088268 -0700
-@@ -336,6 +336,10 @@
-     # Create a safe temporary file.
-     test -n "$mklog" && log_file=`$mklog`
-+    # Before all invocations of the grub shell, call sync to make sure
-+    # the raw device is in sync with any bufferring in filesystems.
-+    sync
-+ 
-     $grub_shell --batch $no_floppy --device-map=$device_map <<EOF >$log_file
- quit
- EOF
-@@ -450,6 +454,10 @@
- # Create a safe temporary file.
- test -n "$mklog" && log_file=`$mklog`
-+# Before all invocations of the grub shell, call sync to make sure
-+# the raw device is in sync with any bufferring in filesystems.
-+sync
-+
- # Now perform the installation.
- $grub_shell --batch $no_floppy --device-map=$device_map <<EOF >$log_file
- root $root_drive
diff --git a/src/patches/grub-0.97-dmraid-partition-names.patch b/src/patches/grub-0.97-dmraid-partition-names.patch
deleted file mode 100644 (file)
index 9390b29..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
---- grub-0.97/lib/device.c.dmraid-partition-names      2006-02-13 18:53:59.000000000 -0500
-+++ grub-0.97/lib/device.c     2006-02-13 18:56:04.000000000 -0500
-@@ -1106,6 +1106,7 @@
-          /* Compaq smart and others */
-          (strncmp(dev, "/dev/ida/", 9) == 0 ||
-           strncmp(dev, "/dev/ataraid/", 13) == 0 ||
-+          strncmp(dev, "/dev/mapper/", 12) == 0 || 
-           strncmp(dev, "/dev/cciss/", 11) == 0 ||
-           strncmp(dev, "/dev/rd/", 8) == 0) ? "p" : "",
-          ((partition >> 16) & 0xFF) + 1);
diff --git a/src/patches/grub-0.97-dmraid-recheck-bad.patch b/src/patches/grub-0.97-dmraid-recheck-bad.patch
deleted file mode 100644 (file)
index 49b33ae..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
---- grub-0.97/util/grub-install.in.dmraid-recheck-bad  2006-01-13 17:04:26.000000000 -0500
-+++ grub-0.97/util/grub-install.in     2006-01-13 17:05:00.000000000 -0500
-@@ -415,6 +415,14 @@
- grubdir=${bootdir}/grub
- device_map=${grubdir}/device.map
-+if [ "$recheck" == "yes" ]; then
-+    if grep 'mapper' ${device_map} >/dev/null; then
-+      echo 'grub-install does not support reprobing of device.map when' 1>&2
-+      echo 'using a device-mapper based boot device.' 1>&2
-+      exit 1
-+    fi
-+fi
-+
- # if they just want the images copied, copy the images and then exit
- if test $justcopy = yes; then
-     copy_images
diff --git a/src/patches/grub-0.97-dmraid.patch b/src/patches/grub-0.97-dmraid.patch
deleted file mode 100644 (file)
index 5aad8c4..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
---- grub-0.97/util/grub-install.in.dmraid      2006-01-13 16:40:24.000000000 -0500
-+++ grub-0.97/util/grub-install.in     2006-01-13 16:40:37.000000000 -0500
-@@ -101,17 +101,24 @@
-     # Break the device name into the disk part and the partition part.
-     case "$host_os" in
-     linux*)
--      tmp_disk=`echo "$1" | sed -e 's%\([sh]d[a-z]\)[0-9]*$%\1%' \
-+      tmp_disk=`echo "$1" | grep -v '/mapper/control$' |
-+              grep -v '/mapper/[[:alnum:]]\+-[[:alnum:]]\+$' | uniq |
-+              sed -e 's%\([sh]d[a-z]\)[0-9]*$%\1%' \
-                                 -e 's%\(d[0-9]*\)p[0-9]*$%\1%' \
-                                 -e 's%\(fd[0-9]*\)$%\1%' \
-                                 -e 's%/part[0-9]*$%/disc%' \
--                                -e 's%\(c[0-7]d[0-9]*\).*$%\1%'`
--      tmp_part=`echo "$1" | sed -e 's%.*/[sh]d[a-z]\([0-9]*\)$%\1%' \
-+                                -e 's%\(c[0-7]d[0-9]*\).*$%\1%' \
-+        -e 's%\(/mapper/[[:alpha:]]\+_[[:alpha:]]\+\)[[:digit:]]\+$%\1%'`
-+      tmp_part=`echo "$1" | grep -v '/mapper/control$' |
-+              grep -v '/mapper/[[:alnum:]]\+-[[:alnum:]]\+$' | uniq |
-+              sed -e 's%.*/[sh]d[a-z]\([0-9]*\)$%\1%' \
-                                 -e 's%.*d[0-9]*p%%' \
-                                 -e 's%.*/fd[0-9]*$%%' \
-                                 -e 's%.*/floppy/[0-9]*$%%' \
-                                 -e 's%.*/\(disc\|part\([0-9]*\)\)$%\2%' \
--                                -e 's%.*c[0-7]d[0-9]*p%%'`
-+                                -e 's%.*c[0-7]d[0-9]*p%%' \
-+        -e 's%.*/mapper/[[:alpha:]]\+_[[:alpha:]]\+\([[:digit:]]\+\)$%\1%' |
-+              grep -v '.*/mapper/.*'`
-       ;;
-     gnu*)
-       tmp_disk=`echo "$1" | sed 's%\([sh]d[0-9]*\).*%\1%'`
-@@ -253,6 +260,43 @@
-     return 0
- }
-+# Usage: stat_device file
-+# Find major:minor of a device node.
-+stat_device() {
-+    majmin=`stat -c "%t:%T" "$1" 2>/dev/null`
-+    if test -z "$majmin"; then
-+      echo "Could not find device for $1" 2>&1
-+      exit 1
-+    fi
-+
-+    echo "$majmin"
-+}
-+
-+# Usage: find_mapper_device file
-+# Find a file in /dev/mapper with the same major:minor as the specified node.
-+find_mapper_device() {
-+    if [ -b "$1" ]; then
-+      dev="$1"
-+    else
-+      mntpnt=`echo "$1" | sed 's,/,\\\\/,g'`
-+      dev=`awk '($2 ~ /'$mntpnt'/) { print $1 }' /etc/mtab`
-+    fi
-+    if test -z "$dev"; then
-+      echo "Could not find device for $1" 2>&1
-+      exit 1
-+    fi
-+      
-+    majmin=`stat_device $dev`
-+    for x in /dev/mapper/* ; do
-+      devmajmin=`stat_device "$x"`
-+      if [ "$majmin" == "$devmajmin" ]; then
-+          echo "$x"
-+          return 0
-+      fi
-+    done
-+    return 1
-+}
-+
- # Usage: find_device file
- # Find block device on which the file resides.
- find_device () {
-@@ -265,9 +309,14 @@
-       exit 1
-     fi
--    tmp_fname=`resolve_symlink $tmp_fname`
-+    ret_fname=`resolve_symlink $tmp_fname`
-+    tmp_fname=`find_mapper_device $ret_fname`
-+    if test -n "$tmp_fname"; then
-+      ret_fname="$tmp_fname"
-+    fi
--    echo "$tmp_fname"
-+    echo "$ret_fname"
-+    return 0
- }
- copy_images() {
diff --git a/src/patches/grub-0.97-install.in.patch b/src/patches/grub-0.97-install.in.patch
deleted file mode 100644 (file)
index a9f2aef..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
---- grub-0.97/util/grub-install.in.install     2005-12-12 18:15:45.000000000 -0500
-+++ grub-0.97/util/grub-install.in     2005-12-12 18:18:11.000000000 -0500
-@@ -324,6 +324,15 @@
- test -d "$bootdir" || mkdir "$bootdir" || exit 1
- test -d "$grubdir" || mkdir "$grubdir" || exit 1
-+# Copy the GRUB images to the GRUB directory.
-+for file in ${grubdir}/stage1 ${grubdir}/stage2 ${grubdir}/*stage1_5; do
-+    rm -f $file || exit 1
-+done
-+for file in \
-+    ${pkgdatadir}/stage1 ${pkgdatadir}/stage2 ${pkgdatadir}/*stage1_5; do
-+    cp -f $file ${grubdir} || exit 1
-+done
-+
- # If --recheck is specified, remove the device map, if present.
- if test $recheck = yes; then
-     rm -f $device_map
-@@ -406,15 +415,6 @@
-     exit 1
- fi
--# Copy the GRUB images to the GRUB directory.
--for file in ${grubdir}/stage1 ${grubdir}/stage2 ${grubdir}/*stage1_5; do
--    rm -f $file || exit 1
--done
--for file in \
--    ${pkglibdir}/stage1 ${pkglibdir}/stage2 ${pkglibdir}/*stage1_5; do
--    cp -f $file ${grubdir} || exit 1
--done
--
- # Make a default file.
- ${grub_set_default} --root-directory=${rootdir} default
diff --git a/src/patches/grub-0.97-mactel-kbd.patch b/src/patches/grub-0.97-mactel-kbd.patch
deleted file mode 100644 (file)
index f1de19f..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
---- grub-0.97/stage2/asm.S.mactel-kbd  2006-06-12 17:00:10.000000000 -0400
-+++ grub-0.97/stage2/asm.S     2006-06-12 17:03:38.000000000 -0400
-@@ -1651,7 +1651,30 @@
-       jnz     3f
-       ret
--3:    /* use keyboard controller */
-+3:    /*
-+      * try to switch gateA20 using PORT92, the "Fast A20 and Init"
-+      * register
-+      */
-+      mov     $0x92, %dx
-+      inb     %dx, %al
-+      /* skip the port92 code if it's unimplemented (read returns 0xff) */
-+      cmpb    $0xff, %al
-+      jz      6f
-+
-+      /* set or clear bit1, the ALT_A20_GATE bit */
-+      movb    4(%esp), %ah
-+      testb   %ah, %ah
-+      jz      4f
-+      orb     $2, %al
-+      jmp     5f
-+4:    and     $0xfd, %al
-+
-+      /* clear the INIT_NOW bit; don't accidently reset the machine */
-+5:    and     $0xfe, %al
-+      outb    %al, %dx
-+
-+
-+6:    /* use keyboard controller */
-       pushl   %eax
-       call    gloop1
-@@ -1661,9 +1684,12 @@
- gloopint1:
-       inb     $K_STATUS
-+      cmpb    $0xff, %al
-+      jz      gloopint1_done
-       andb    $K_IBUF_FUL, %al
-       jnz     gloopint1
-+gloopint1_done:
-       movb    $KB_OUTPUT_MASK, %al
-       cmpb    $0, 0x8(%esp)
-       jz      gdoit
-@@ -1684,6 +1710,8 @@
- gloop1:
-       inb     $K_STATUS
-+      cmpb    $0xff, %al
-+      jz      gloop2ret
-       andb    $K_IBUF_FUL, %al
-       jnz     gloop1
-@@ -1994,8 +2022,25 @@
-       call    EXT_C(prot_to_real)
-       .code16
-+.again:
-+      mov     $0x11, %ah              /* poll kbd */
-       int     $0x16
-+      jz      .again
-+#if 0
-+/* XXX handle serial here? -- pj */
-+      jnz     .kbd
-+#endif
-+.kbd:
-+      mov     $0x10, %ah
-+      int     $0x16
-+      cmp     $0xe0, %al
-+      jnz     .not_ext
-+      xor     %al, %al
-+.not_ext:
-+      and     %al, %al
-+      jz      .func_key
-+.func_key:
-       movw    %ax, %dx                /* real_to_prot uses %eax */
-       call    translate_keycode
-       call    remap_ascii_char
-@@ -2003,7 +2048,7 @@
-       DATA32  call    EXT_C(real_to_prot)
-       .code32
--      movw    %dx, %ax
-+      mov     %dx, %ax
-       pop     %ebp
-       ret
-@@ -2029,7 +2074,7 @@
-       call    EXT_C(prot_to_real)     /* enter real mode */
-       .code16
--      movb    $0x1, %ah
-+      movb    $0x11, %ah
-       int     $0x16
-       DATA32  jz      notpending
diff --git a/src/patches/grub-0.97-mdadm-path.patch b/src/patches/grub-0.97-mdadm-path.patch
deleted file mode 100644 (file)
index fff301c..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
---- grub-0.97/util/grub-install.in.mdadm-path  2005-12-12 18:42:23.000000000 -0500
-+++ grub-0.97/util/grub-install.in     2005-12-12 18:44:15.000000000 -0500
-@@ -30,5 +30,6 @@
- pkglibdir=${libdir}/${PACKAGE}/${host_cpu}-${host_vendor}
- grub_shell=${sbindir}/grub
-+mdadm=${sbindir}/mdadm
- log_file=/tmp/grub-install.log.$$
- img_file=/tmp/grub-install.img.$$
-@@ -217,7 +218,7 @@
- is_raid1_device () {
-     case "$host_os" in
-     linux*)
--      level=`mdadm --query --detail $1 2>/dev/null | \
-+      level=`$mdadm --query --detail $1 2>/dev/null | \
-               awk '/Raid Level :/ {print $4}'` 
-       if [ "$level" = "raid1" ]; then
-           return 0
-@@ -236,7 +237,7 @@
-     linux*)
-       if is_raid1_device $source_device ; then
-           list=""
--          for device in `mdadm --query --detail "${source_device}" | \
-+          for device in `$mdadm --query --detail "${source_device}" | \
-                   awk '/\/dev\/[^(md)]/ {print $7}'` ; do
-               list="$list $device"
-           done
diff --git a/src/patches/grub-0.97-mpath.patch b/src/patches/grub-0.97-mpath.patch
deleted file mode 100644 (file)
index 4b7edf3..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
---- grub-0.97/util/grub-install.in.mpath       2006-08-02 17:21:53.000000000 -0400
-+++ grub-0.97/util/grub-install.in     2006-08-02 17:23:23.000000000 -0400
-@@ -107,6 +107,7 @@
-                                 -e 's%\(fd[0-9]*\)$%\1%' \
-                                 -e 's%/part[0-9]*$%/disc%' \
-                                 -e 's%\(c[0-7]d[0-9]*\).*$%\1%' \
-+        -e 's%\(/mapper/[[:alpha:]]\+[[:digit:]]\+\)p[[:digit:]]\+$%\1%' \
-         -e 's%\(/mapper/[[:alpha:]]\+_[[:alpha:]]\+\)[[:digit:]]\+$%\1%'`
-       tmp_part=`echo "$1" | grep -v '/mapper/control$' |
-               grep -v '/mapper/[[:alnum:]]\+-[[:alnum:]]\+$' | uniq |
-@@ -116,6 +117,7 @@
-                                 -e 's%.*/floppy/[0-9]*$%%' \
-                                 -e 's%.*/\(disc\|part\([0-9]*\)\)$%\2%' \
-                                 -e 's%.*c[0-7]d[0-9]*p%%' \
-+        -e 's%.*/mapper/[[:alpha:]]\+[[:digit:]]\+p\([[:digit:]]\+\)$%\1%' \
-         -e 's%.*/mapper/[[:alpha:]]\+_[[:alpha:]]\+\([[:digit:]]\+\)$%\1%' |
-               grep -v '.*/mapper/.*'`
-       ;;
diff --git a/src/patches/grub-0.97-nx-multiinstall.patch b/src/patches/grub-0.97-nx-multiinstall.patch
deleted file mode 100644 (file)
index f0e4ec0..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-2006-03-09  Alexandre Oliva  <oliva@gnu.org>
-
-       * lib/builtins.c (install_blocklist_helper): Move static
-       last_lenght...
-       (install_func_context): ... here.
-       (install_func): Reset it.
-
-Index: grub-0.97/stage2/builtins.c
-===================================================================
---- grub-0.97.orig/stage2/builtins.c   2006-03-09 10:26:41.000000000 -0300
-+++ grub-0.97/stage2/builtins.c        2006-03-09 11:36:18.000000000 -0300
-@@ -1926,11 +1926,13 @@ static struct {
-       int saved_sector;
-       int installaddr;
-       int installlist;
-+      int last_length;
-       char *stage2_first_buffer;
- } install_func_context = {
-       .saved_sector = 0,
-       .installaddr = 0,
-       .installlist = 0,
-+      .last_length = SECTOR_SIZE,
-       .stage2_first_buffer = NULL,
- };
-@@ -1960,19 +1962,19 @@ install_blocklist_helper (int sector, in
-   int *installlist = &install_func_context.installlist;
-   char **stage2_first_buffer = &install_func_context.stage2_first_buffer;
-   /* Was the last sector full? */
--  static int last_length = SECTOR_SIZE;
-+  int *last_length = &install_func_context.last_length;
-   if (debug)
-     printf("[%d]", sector);
--  if (offset != 0 || last_length != SECTOR_SIZE)
-+  if (offset != 0 || *last_length != SECTOR_SIZE)
-     {
-       /* We found a non-sector-aligned data block. */
-       errnum = ERR_UNALIGNED;
-       return;
-     }
--  last_length = length;
-+  *last_length = length;
-   if (*((unsigned long *) (*installlist - 4))
-       + *((unsigned short *) *installlist) != sector
-@@ -2027,7 +2029,11 @@ install_func (char *arg, int flags)
-   int is_open = 0;
-   /* If LBA is forced?  */
-   int is_force_lba = 0;
-+  int *last_length = &install_func_context.last_length;
-   
-+  /* Reset state.  */
-+  *last_length = SECTOR_SIZE;
-+
-   *stage2_first_buffer = old_sect + SECTOR_SIZE;
- #ifdef GRUB_UTIL
-   /* If the Stage 2 is in a partition mounted by an OS, this will store
diff --git a/src/patches/grub-0.97-nxstack.patch b/src/patches/grub-0.97-nxstack.patch
deleted file mode 100644 (file)
index 92742cd..0000000
+++ /dev/null
@@ -1,615 +0,0 @@
---- grub-0.97/stage2/shared.h.nxstack  2005-12-12 18:31:41.000000000 -0500
-+++ grub-0.97/stage2/shared.h  2005-12-12 18:31:42.000000000 -0500
-@@ -36,8 +36,8 @@
- /* Maybe redirect memory requests through grub_scratch_mem. */
- #ifdef GRUB_UTIL
--extern char *grub_scratch_mem;
--# define RAW_ADDR(x) ((x) + (int) grub_scratch_mem)
-+extern void *grub_scratch_mem;
-+# define RAW_ADDR(x) ((x) + (unsigned long) grub_scratch_mem)
- # define RAW_SEG(x) (RAW_ADDR ((x) << 4) >> 4)
- #else
- # define RAW_ADDR(x) (x)
---- grub-0.97/stage2/builtins.c.nxstack        2005-12-12 18:31:41.000000000 -0500
-+++ grub-0.97/stage2/builtins.c        2005-12-12 18:41:47.000000000 -0500
-@@ -131,62 +131,97 @@
- }
\f
-+/* blocklist_read_helper nee disk_read_blocklist_func was a nested
-+ * function, to which pointers were taken and exposed globally.  Even
-+ * in the GNU-C nested functions extension, they have local linkage,
-+ * and aren't guaranteed to be accessable *at all* outside of their 
-+ * containing scope.
-+ *
-+ * Above and beyond all of that, the variables within blocklist_func_context
-+ * are originally local variables, with local (not even static) linkage,
-+ * from within blocklist_func.  These were each referenced by
-+ * disk_read_blocklist_func, which is only called from other functions
-+ * through a globally scoped pointer.
-+ * 
-+ * The documentation in GCC actually uses the words "all hell will break
-+ * loose" to describe this scenario.
-+ *
-+ * Also, "start_sector" was also used uninitialized, but gcc doesn't warn
-+ * about it (possibly because of the scoping madness?)
-+ */
-+   
-+static struct {
-+      int start_sector;
-+      int num_sectors;
-+      int num_entries;
-+      int last_length;
-+} blocklist_func_context = {
-+      .start_sector = 0,
-+      .num_sectors = 0,
-+      .num_entries = 0,
-+      .last_length = 0
-+};
-+
-+/* Collect contiguous blocks into one entry as many as possible,
-+   and print the blocklist notation on the screen.  */
-+static void
-+blocklist_read_helper (int sector, int offset, int length)
-+{
-+  int *start_sector = &blocklist_func_context.start_sector;
-+  int *num_sectors = &blocklist_func_context.num_sectors;
-+  int *num_entries = &blocklist_func_context.num_entries;
-+  int *last_length = &blocklist_func_context.last_length;
-+
-+  if (*num_sectors > 0)
-+  {
-+    if (*start_sector + *num_sectors == sector
-+      && offset == 0 && *last_length == SECTOR_SIZE)
-+    {
-+      *num_sectors++;
-+      *last_length = length;
-+      return;
-+    }
-+    else
-+    {
-+      if (*last_length == SECTOR_SIZE)
-+        grub_printf ("%s%d+%d", *num_entries ? "," : "",
-+          *start_sector - part_start, *num_sectors);
-+      else if (*num_sectors > 1)
-+        grub_printf ("%s%d+%d,%d[0-%d]", *num_entries ? "," : "",
-+          *start_sector - part_start, *num_sectors-1,
-+          *start_sector + *num_sectors-1 - part_start, 
-+          *last_length);
-+      else
-+        grub_printf ("%s%d[0-%d]", *num_entries ? "," : "",
-+          *start_sector - part_start, *last_length);
-+      *num_entries++;
-+      *num_sectors = 0;
-+    }
-+  }
-+
-+  if (offset > 0)
-+  {
-+    grub_printf("%s%d[%d-%d]", *num_entries ? "," : "",
-+          sector-part_start, offset, offset+length);
-+    *num_entries++;
-+  }
-+  else
-+  {
-+    *start_sector = sector;
-+    *num_sectors = 1;
-+    *last_length = length;
-+  }
-+}
-+
- /* blocklist */
- static int
- blocklist_func (char *arg, int flags)
- {
-   char *dummy = (char *) RAW_ADDR (0x100000);
--  int start_sector;
--  int num_sectors = 0;
--  int num_entries = 0;
--  int last_length = 0;
--  auto void disk_read_blocklist_func (int sector, int offset, int length);
--  
--  /* Collect contiguous blocks into one entry as many as possible,
--     and print the blocklist notation on the screen.  */
--  auto void disk_read_blocklist_func (int sector, int offset, int length)
--    {
--      if (num_sectors > 0)
--      {
--        if (start_sector + num_sectors == sector
--            && offset == 0 && last_length == SECTOR_SIZE)
--          {
--            num_sectors++;
--            last_length = length;
--            return;
--          }
--        else
--          {
--            if (last_length == SECTOR_SIZE)
--              grub_printf ("%s%d+%d", num_entries ? "," : "",
--                           start_sector - part_start, num_sectors);
--            else if (num_sectors > 1)
--              grub_printf ("%s%d+%d,%d[0-%d]", num_entries ? "," : "",
--                           start_sector - part_start, num_sectors-1,
--                           start_sector + num_sectors-1 - part_start, 
--                           last_length);
--            else
--              grub_printf ("%s%d[0-%d]", num_entries ? "," : "",
--                           start_sector - part_start, last_length);
--            num_entries++;
--            num_sectors = 0;
--          }
--      }
--
--      if (offset > 0)
--      {
--        grub_printf("%s%d[%d-%d]", num_entries ? "," : "",
--                    sector-part_start, offset, offset+length);
--        num_entries++;
--      }
--      else
--      {
--        start_sector = sector;
--        num_sectors = 1;
--        last_length = length;
--      }
--    }
-+  int *start_sector = &blocklist_func_context.start_sector;
-+  int *num_sectors = &blocklist_func_context.num_sectors;
-+  int *num_entries = &blocklist_func_context.num_entries;
-   /* Open the file.  */
-   if (! grub_open (arg))
-@@ -206,15 +241,15 @@
-   grub_printf (")");
-   /* Read in the whole file to DUMMY.  */
--  disk_read_hook = disk_read_blocklist_func;
-+  disk_read_hook = blocklist_read_helper;
-   if (! grub_read (dummy, -1))
-     goto fail;
-   /* The last entry may not be printed yet.  Don't check if it is a
-    * full sector, since it doesn't matter if we read too much. */
--  if (num_sectors > 0)
--    grub_printf ("%s%d+%d", num_entries ? "," : "",
--               start_sector - part_start, num_sectors);
-+  if (*num_sectors > 0)
-+    grub_printf ("%s%d+%d", *num_entries ? "," : "",
-+               *start_sector - part_start, *num_sectors);
-   grub_printf ("\n");
-   
-@@ -1889,6 +1924,77 @@
\f
- /* install */
-+static struct {
-+      int saved_sector;
-+      int installaddr;
-+      int installlist;
-+      char *stage2_first_buffer;
-+} install_func_context = {
-+      .saved_sector = 0,
-+      .installaddr = 0,
-+      .installlist = 0,
-+      .stage2_first_buffer = NULL,
-+};
-+
-+/* Save the first sector of Stage2 in STAGE2_SECT.  */
-+/* Formerly disk_read_savesect_func with local scope inside install_func */
-+static void
-+install_savesect_helper(int sector, int offset, int length)
-+{
-+  if (debug)
-+    printf ("[%d]", sector);
-+
-+  /* ReiserFS has files which sometimes contain data not aligned
-+     on sector boundaries.  Returning an error is better than
-+     silently failing. */
-+  if (offset != 0 || length != SECTOR_SIZE)
-+    errnum = ERR_UNALIGNED;
-+
-+  install_func_context.saved_sector = sector;
-+}
-+
-+/* Write SECTOR to INSTALLLIST, and update INSTALLADDR and  INSTALLSECT.  */
-+/* Formerly disk_read_blocklist_func with local scope inside install_func */
-+static void
-+install_blocklist_helper (int sector, int offset, int length)
-+{
-+  int *installaddr = &install_func_context.installaddr;
-+  int *installlist = &install_func_context.installlist;
-+  char **stage2_first_buffer = &install_func_context.stage2_first_buffer;
-+  /* Was the last sector full? */
-+  static int last_length = SECTOR_SIZE;
-+
-+  if (debug)
-+    printf("[%d]", sector);
-+
-+  if (offset != 0 || last_length != SECTOR_SIZE)
-+    {
-+      /* We found a non-sector-aligned data block. */
-+      errnum = ERR_UNALIGNED;
-+      return;
-+    }
-+
-+  last_length = length;
-+
-+  if (*((unsigned long *) (*installlist - 4))
-+      + *((unsigned short *) *installlist) != sector
-+      || *installlist == (int) *stage2_first_buffer + SECTOR_SIZE + 4)
-+    {
-+      *installlist -= 8;
-+
-+      if (*((unsigned long *) (*installlist - 8)))
-+        errnum = ERR_WONT_FIT;
-+      else
-+        {
-+          *((unsigned short *) (*installlist + 2)) = (*installaddr >> 4);
-+          *((unsigned long *) (*installlist - 4)) = sector;
-+        }
-+    }
-+
-+  *((unsigned short *) *installlist) += 1;
-+  *installaddr += 512;
-+}
-+
- static int
- install_func (char *arg, int flags)
- {
-@@ -1896,8 +2002,12 @@
-   char *stage1_buffer = (char *) RAW_ADDR (0x100000);
-   char *stage2_buffer = stage1_buffer + SECTOR_SIZE;
-   char *old_sect = stage2_buffer + SECTOR_SIZE;
--  char *stage2_first_buffer = old_sect + SECTOR_SIZE;
--  char *stage2_second_buffer = stage2_first_buffer + SECTOR_SIZE;
-+  /* stage2_first_buffer used to be defined as:
-+   * char *stage2_first_buffer = old_sect + SECTOR_SIZE;  */
-+  char **stage2_first_buffer = &install_func_context.stage2_first_buffer;
-+  /* and stage2_second_buffer was:
-+   * char *stage2_second_buffer = stage2_first_buffer + SECTOR_SIZE; */
-+  char *stage2_second_buffer = old_sect + SECTOR_SIZE + SECTOR_SIZE;
-   /* XXX: Probably SECTOR_SIZE is reasonable.  */
-   char *config_filename = stage2_second_buffer + SECTOR_SIZE;
-   char *dummy = config_filename + SECTOR_SIZE;
-@@ -1906,10 +2016,11 @@
-   int src_drive, src_partition, src_part_start;
-   int i;
-   struct geometry dest_geom, src_geom;
--  int saved_sector;
-+  int *saved_sector = &install_func_context.saved_sector;
-   int stage2_first_sector, stage2_second_sector;
-   char *ptr;
--  int installaddr, installlist;
-+  int *installaddr = &install_func_context.installaddr;
-+  int *installlist = &install_func_context.installlist;
-   /* Point to the location of the name of a configuration file in Stage 2.  */
-   char *config_file_location;
-   /* If FILE is a Stage 1.5?  */
-@@ -1918,68 +2029,14 @@
-   int is_open = 0;
-   /* If LBA is forced?  */
-   int is_force_lba = 0;
--  /* Was the last sector full? */
--  int last_length = SECTOR_SIZE;
-   
-+  *stage2_first_buffer = old_sect + SECTOR_SIZE;
- #ifdef GRUB_UTIL
-   /* If the Stage 2 is in a partition mounted by an OS, this will store
-      the filename under the OS.  */
-   char *stage2_os_file = 0;
- #endif /* GRUB_UTIL */
-   
--  auto void disk_read_savesect_func (int sector, int offset, int length);
--  auto void disk_read_blocklist_func (int sector, int offset, int length);
--  
--  /* Save the first sector of Stage2 in STAGE2_SECT.  */
--  auto void disk_read_savesect_func (int sector, int offset, int length)
--    {
--      if (debug)
--      printf ("[%d]", sector);
--
--      /* ReiserFS has files which sometimes contain data not aligned
--         on sector boundaries.  Returning an error is better than
--         silently failing. */
--      if (offset != 0 || length != SECTOR_SIZE)
--      errnum = ERR_UNALIGNED;
--
--      saved_sector = sector;
--    }
--
--  /* Write SECTOR to INSTALLLIST, and update INSTALLADDR and
--     INSTALLSECT.  */
--  auto void disk_read_blocklist_func (int sector, int offset, int length)
--    {
--      if (debug)
--      printf("[%d]", sector);
--
--      if (offset != 0 || last_length != SECTOR_SIZE)
--      {
--        /* We found a non-sector-aligned data block. */
--        errnum = ERR_UNALIGNED;
--        return;
--      }
--
--      last_length = length;
--
--      if (*((unsigned long *) (installlist - 4))
--        + *((unsigned short *) installlist) != sector
--        || installlist == (int) stage2_first_buffer + SECTOR_SIZE + 4)
--      {
--        installlist -= 8;
--
--        if (*((unsigned long *) (installlist - 8)))
--          errnum = ERR_WONT_FIT;
--        else
--          {
--            *((unsigned short *) (installlist + 2)) = (installaddr >> 4);
--            *((unsigned long *) (installlist - 4)) = sector;
--          }
--      }
--
--      *((unsigned short *) installlist) += 1;
--      installaddr += 512;
--    }
--
-   /* First, check the GNU-style long option.  */
-   while (1)
-     {
-@@ -2011,10 +2068,10 @@
-   addr = skip_to (0, file);
-   /* Get the installation address.  */
--  if (! safe_parse_maxint (&addr, &installaddr))
-+  if (! safe_parse_maxint (&addr, installaddr))
-     {
-       /* ADDR is not specified.  */
--      installaddr = 0;
-+      *installaddr = 0;
-       ptr = addr;
-       errnum = 0;
-     }
-@@ -2110,17 +2167,17 @@
-       = 0x9090;
-   
-   /* Read the first sector of Stage 2.  */
--  disk_read_hook = disk_read_savesect_func;
--  if (grub_read (stage2_first_buffer, SECTOR_SIZE) != SECTOR_SIZE)
-+  disk_read_hook = install_savesect_helper;
-+  if (grub_read (*stage2_first_buffer, SECTOR_SIZE) != SECTOR_SIZE)
-     goto fail;
--  stage2_first_sector = saved_sector;
-+  stage2_first_sector = *saved_sector;
-   
-   /* Read the second sector of Stage 2.  */
-   if (grub_read (stage2_second_buffer, SECTOR_SIZE) != SECTOR_SIZE)
-     goto fail;
--  stage2_second_sector = saved_sector;
-+  stage2_second_sector = *saved_sector;
-   
-   /* Check for the version of Stage 2.  */
-   if (*((short *) (stage2_second_buffer + STAGE2_VER_MAJ_OFFS))
-@@ -2136,27 +2193,27 @@
-   /* If INSTALLADDR is not specified explicitly in the command-line,
-      determine it by the Stage 2 id.  */
--  if (! installaddr)
-+  if (! *installaddr)
-     {
-       if (! is_stage1_5)
-       /* Stage 2.  */
--      installaddr = 0x8000;
-+      *installaddr = 0x8000;
-       else
-       /* Stage 1.5.  */
--      installaddr = 0x2000;
-+      *installaddr = 0x2000;
-     }
-   *((unsigned long *) (stage1_buffer + STAGE1_STAGE2_SECTOR))
-     = stage2_first_sector;
-   *((unsigned short *) (stage1_buffer + STAGE1_STAGE2_ADDRESS))
--    = installaddr;
-+    = *installaddr;
-   *((unsigned short *) (stage1_buffer + STAGE1_STAGE2_SEGMENT))
--    = installaddr >> 4;
-+    = *installaddr >> 4;
--  i = (int) stage2_first_buffer + SECTOR_SIZE - 4;
-+  i = (int) *stage2_first_buffer + SECTOR_SIZE - 4;
-   while (*((unsigned long *) i))
-     {
--      if (i < (int) stage2_first_buffer
-+      if (i < (int) *stage2_first_buffer
-         || (*((int *) (i - 4)) & 0x80000000)
-         || *((unsigned short *) i) >= 0xA00
-         || *((short *) (i + 2)) == 0)
-@@ -2170,13 +2227,13 @@
-       i -= 8;
-     }
--  installlist = (int) stage2_first_buffer + SECTOR_SIZE + 4;
--  installaddr += SECTOR_SIZE;
-+  *installlist = (int) *stage2_first_buffer + SECTOR_SIZE + 4;
-+  *installaddr += SECTOR_SIZE;
-   
-   /* Read the whole of Stage2 except for the first sector.  */
-   grub_seek (SECTOR_SIZE);
--  disk_read_hook = disk_read_blocklist_func;
-+  disk_read_hook = install_blocklist_helper;
-   if (! grub_read (dummy, -1))
-     goto fail;
-   
-@@ -2259,7 +2316,7 @@
-         /* Skip the first sector.  */
-         grub_seek (SECTOR_SIZE);
-         
--        disk_read_hook = disk_read_savesect_func;
-+        disk_read_hook = install_savesect_helper;
-         if (grub_read (stage2_buffer, SECTOR_SIZE) != SECTOR_SIZE)
-           goto fail;
-         
-@@ -2329,7 +2386,7 @@
-         else
- #endif /* GRUB_UTIL */
-           {
--            if (! devwrite (saved_sector - part_start, 1, stage2_buffer))
-+            if (! devwrite (*saved_sector - part_start, 1, stage2_buffer))
-               goto fail;
-           }
-       }
-@@ -2351,7 +2408,7 @@
-         goto fail;
-       }
--      if (fwrite (stage2_first_buffer, 1, SECTOR_SIZE, fp) != SECTOR_SIZE)
-+      if (fwrite (*stage2_first_buffer, 1, SECTOR_SIZE, fp) != SECTOR_SIZE)
-       {
-         fclose (fp);
-         errnum = ERR_WRITE;
-@@ -2378,7 +2435,7 @@
-       goto fail;
-       if (! devwrite (stage2_first_sector - src_part_start, 1,
--                    stage2_first_buffer))
-+                    *stage2_first_buffer))
-       goto fail;
-       if (! devwrite (stage2_second_sector - src_part_start, 1,
---- grub-0.97/grub/asmstub.c.nxstack   2005-12-12 18:31:41.000000000 -0500
-+++ grub-0.97/grub/asmstub.c   2005-12-12 18:31:42.000000000 -0500
-@@ -42,6 +42,7 @@
- #include <sys/time.h>
- #include <termios.h>
- #include <signal.h>
-+#include <sys/mman.h>
- #ifdef __linux__
- # include <sys/ioctl.h>               /* ioctl */
-@@ -82,7 +83,7 @@
- struct apm_info apm_bios_info;
- /* Emulation requirements. */
--char *grub_scratch_mem = 0;
-+void *grub_scratch_mem = 0;
- struct geometry *disks = 0;
-@@ -106,14 +107,62 @@
- static unsigned int serial_speed;
- #endif /* SIMULATE_SLOWNESS_OF_SERIAL */
-+/* This allocates page-aligned storage of the specified size, which must be
-+ * a multiple of the page size as determined by calling sysconf(_SC_PAGESIZE)
-+ */
-+#ifdef __linux__
-+static void *
-+grub_mmap_alloc(size_t len)
-+{
-+  int mmap_flags = MAP_ANONYMOUS|MAP_PRIVATE|MAP_EXECUTABLE;
-+
-+#ifdef MAP_32BIT
-+  mmap_flags |= MAP_32BIT;
-+#endif
-+  /* Mark the simulated stack executable, as GCC uses stack trampolines
-+   * to implement nested functions. */
-+  return mmap(NULL, len, PROT_READ|PROT_WRITE|PROT_EXEC, mmap_flags, -1, 0);
-+}
-+#else /* !defined(__linux__) */
-+static void *
-+grub_mmap_alloc(size_t len)
-+{
-+  int fd = 0, offset = 0, ret = 0;
-+  void *pa = MAP_FAILED; 
-+  char template[] = "/tmp/grub_mmap_alloc_XXXXXX";
-+  errno_t e;
-+
-+  fd = mkstemp(template);
-+  if (fd < 0)
-+    return pa;
-+
-+  unlink(template);
-+
-+  ret = ftruncate(fd, len);
-+  if (ret < 0)
-+    return pa;
-+
-+  /* Mark the simulated stack executable, as GCC uses stack trampolines
-+   * to implement nested functions. */
-+  pa = mmap(NULL, len, PROT_READ|PROT_WRITE|PROT_EXEC,
-+                  MAP_PRIVATE|MAP_EXECUTABLE, fd, offset);
-+
-+  e = errno;
-+  close(fd);
-+  errno = e;
-+  return pa;
-+}
-+#endif /* defined(__linux__) */
-+
- /* The main entry point into this mess. */
- int
- grub_stage2 (void)
- {
-   /* These need to be static, because they survive our stack transitions. */
-   static int status = 0;
--  static char *realstack;
--  char *scratch, *simstack;
-+  static void *realstack;
-+  void *simstack_alloc_base, *simstack;
-+  size_t simstack_size, page_size;
-   int i;
-   auto void doit (void);
-@@ -145,9 +194,35 @@
-     }
-   assert (grub_scratch_mem == 0);
--  scratch = malloc (0x100000 + EXTENDED_MEMSIZE + 15);
--  assert (scratch);
--  grub_scratch_mem = (char *) ((((int) scratch) >> 4) << 4);
-+
-+  /* Allocate enough pages for 0x100000 + EXTENDED_SIZE + 15, and
-+   * make sure the memory is aligned to a multiple of the system's
-+   * page size */
-+  page_size = sysconf (_SC_PAGESIZE);
-+  simstack_size = ( 0x100000 + EXTENDED_MEMSIZE + 15);
-+  if (simstack_size % page_size)
-+    {
-+      /* If we're not on a page_size boundary, round up to the next one */
-+      simstack_size &= ~(page_size-1);
-+      simstack_size += page_size;
-+    }
-+
-+  /* Add one for a PROT_NONE boundary page at each end. */
-+  simstack_size += 2 * page_size;
-+
-+  simstack_alloc_base = grub_mmap_alloc(simstack_size);
-+  assert (simstack_alloc_base != MAP_FAILED);
-+
-+  /* mark pages above and below our simstack area as innaccessable.
-+   * If the implementation we're using doesn't support that, then the
-+   * new protection modes are undefined.  It's safe to just ignore
-+   * them, though.  It'd be nice if we knew that we'd get a SEGV for
-+   * touching the area, but that's all.  it'd be nice to have. */
-+  mprotect (simstack_alloc_base, page_size, PROT_NONE);
-+  mprotect ((void *)((unsigned long)simstack_alloc_base +
-+                        simstack_size - page_size),  page_size, PROT_NONE);
-+
-+  grub_scratch_mem = (void *)((unsigned long)simstack_alloc_base + page_size);
-   /* FIXME: simulate the memory holes using mprot, if available. */
-@@ -220,7 +295,7 @@
-   device_map = 0;
-   free (disks);
-   disks = 0;
--  free (scratch);
-+  munmap(simstack_alloc_base, simstack_size);
-   grub_scratch_mem = 0;
-   if (serial_device)
diff --git a/src/patches/grub-0.97-once.patch b/src/patches/grub-0.97-once.patch
deleted file mode 100644 (file)
index 6fb9a8d..0000000
+++ /dev/null
@@ -1,513 +0,0 @@
---- grub-0.97/stage2/builtins.c.bootonce       2005-12-12 18:23:12.000000000 -0500
-+++ grub-0.97/stage2/builtins.c        2005-12-12 18:29:20.000000000 -0500
-@@ -3217,146 +3217,175 @@
- };
\f
--/* savedefault */
-+
-+#if !defined(SUPPORT_DISKLESS) && !defined(GRUB_UTIL)
-+/* Write specified default entry number into stage2 file. */
- static int
--savedefault_func (char *arg, int flags)
-+savedefault_helper(int new_default)
- {
--#if !defined(SUPPORT_DISKLESS) && !defined(GRUB_UTIL)
--  unsigned long tmp_drive = saved_drive;
--  unsigned long tmp_partition = saved_partition;
--  char *default_file = (char *) DEFAULT_FILE_BUF;
--  char buf[10];
--  char sect[SECTOR_SIZE];
--  int entryno;
--  int sector_count = 0;
--  int saved_sectors[2];
--  int saved_offsets[2];
--  int saved_lengths[2];
--
--  /* Save sector information about at most two sectors.  */
--  auto void disk_read_savesect_func (int sector, int offset, int length);
--  void disk_read_savesect_func (int sector, int offset, int length)
--    {
--      if (sector_count < 2)
--      {
--        saved_sectors[sector_count] = sector;
--        saved_offsets[sector_count] = offset;
--        saved_lengths[sector_count] = length;
--      }
--      sector_count++;
--    }
--  
--  /* This command is only useful when you boot an entry from the menu
--     interface.  */
--  if (! (flags & BUILTIN_SCRIPT))
-+  char buffer[512];
-+  int *entryno_ptr;
-+
-+  /* Get the geometry of the boot drive (i.e. the disk which contains
-+     this stage2).  */
-+  if (get_diskinfo (boot_drive, &buf_geom))
-     {
--      errnum = ERR_UNRECOGNIZED;
-+      errnum = ERR_NO_DISK;
-       return 1;
-     }
--  /* Determine a saved entry number.  */
--  if (*arg)
-+  /* Load the second sector of this stage2.  */
-+  if (! rawread (boot_drive, install_second_sector, 0, SECTOR_SIZE, buffer))
-     {
--      if (grub_memcmp (arg, "fallback", sizeof ("fallback") - 1) == 0)
--      {
--        int i;
--        int index = 0;
--        
--        for (i = 0; i < MAX_FALLBACK_ENTRIES; i++)
--          {
--            if (fallback_entries[i] < 0)
--              break;
--            if (fallback_entries[i] == current_entryno)
--              {
--                index = i + 1;
--                break;
--              }
--          }
--        
--        if (index >= MAX_FALLBACK_ENTRIES || fallback_entries[index] < 0)
--          {
--            /* This is the last.  */
--            errnum = ERR_BAD_ARGUMENT;
--            return 1;
--          }
-+      return 1;
-+    }
--        entryno = fallback_entries[index];
--      }
--      else if (! safe_parse_maxint (&arg, &entryno))
--      return 1;
-+  /* Sanity check.  */
-+  if (buffer[STAGE2_STAGE2_ID] != STAGE2_ID_STAGE2
-+      || *((short *) (buffer + STAGE2_VER_MAJ_OFFS)) != COMPAT_VERSION)
-+    {
-+      errnum = ERR_BAD_VERSION;
-+      return 1;
-     }
--  else
--    entryno = current_entryno;
-+  
-+  entryno_ptr = (int *) (buffer + STAGE2_SAVED_ENTRYNO);
--  /* Open the default file.  */
--  saved_drive = boot_drive;
--  saved_partition = install_partition;
--  if (grub_open (default_file))
-+  /* Check if the saved entry number differs from current entry number.  */
-+  if (*entryno_ptr != new_default)
-     {
--      int len;
-+      /* Overwrite the saved entry number.  */
-+      *entryno_ptr = new_default;
-       
--      disk_read_hook = disk_read_savesect_func;
--      len = grub_read (buf, sizeof (buf));
--      disk_read_hook = 0;
--      grub_close ();
-+      /* Save the image in the disk.  */
-+      if (! rawwrite (boot_drive, install_second_sector, buffer))
-+      return 1;
-       
--      if (len != sizeof (buf))
--      {
--        /* This is too small. Do not modify the file manually, please!  */
--        errnum = ERR_READ;
--        goto fail;
--      }
-+      /* Clear the cache.  */
-+      buf_track = -1;
-+    }
--      if (sector_count > 2)
--      {
--        /* Is this possible?! Too fragmented!  */
--        errnum = ERR_FSYS_CORRUPT;
--        goto fail;
--      }
--      
--      /* Set up a string to be written.  */
--      grub_memset (buf, '\n', sizeof (buf));
--      grub_sprintf (buf, "%d", entryno);
--      
--      if (saved_lengths[0] < sizeof (buf))
--      {
--        /* The file is anchored to another file and the first few bytes
--           are spanned in two sectors. Uggh...  */
--        if (! rawread (current_drive, saved_sectors[0], 0, SECTOR_SIZE,
--                       sect))
--          goto fail;
--        grub_memmove (sect + saved_offsets[0], buf, saved_lengths[0]);
--        if (! rawwrite (current_drive, saved_sectors[0], sect))
--          goto fail;
-+  return 0;
-+}
-+#endif
--        if (! rawread (current_drive, saved_sectors[1], 0, SECTOR_SIZE,
--                       sect))
--          goto fail;
--        grub_memmove (sect + saved_offsets[1],
--                      buf + saved_lengths[0],
--                      sizeof (buf) - saved_lengths[0]);
--        if (! rawwrite (current_drive, saved_sectors[1], sect))
--          goto fail;
--      }
-+#if !defined(SUPPORT_DISKLESS) && defined(GRUB_UTIL)
-+/*
-+ * Full implementation of new `savedefault' for GRUB shell.
-+ * XXX This needs fixing for stage2 files which aren't accessible
-+ *     through a mounted filesystem.
-+ */
-+static int
-+savedefault_shell(char *arg, int flags)
-+{
-+  char *stage2_os_file = "/boot/grub/stage2"; /* Default filename */
-+  FILE *fp;
-+  char buffer[512];
-+  int *entryno_ptr;
-+  int new_default = 0;
-+  int old_default = 0;
-+
-+  while (1)
-+    {
-+      if (grub_memcmp ("--stage2=", arg, sizeof ("--stage2=") - 1) == 0)
-+        {
-+          stage2_os_file = arg + sizeof ("--stage2=") - 1;
-+          arg = skip_to (0, arg);
-+          nul_terminate (stage2_os_file);
-+        }
-+      else if (grub_memcmp ("--default=", arg, sizeof ("--default=") - 1) == 0)
-+        {
-+          char *p = arg + sizeof ("--default=") - 1;
-+          if (! safe_parse_maxint (&p, &new_default))
-+            return 1;
-+          arg = skip_to (0, arg);
-+        }
-+      else if (grub_memcmp ("--once", arg, sizeof ("--once") - 1) == 0)
-+        {
-+          new_default <<= 8;
-+          new_default |= STAGE2_ONCEONLY_ENTRY;
-+          arg = skip_to (0, arg);
-+        }
-       else
--      {
--        /* This is a simple case. It fits into a single sector.  */
--        if (! rawread (current_drive, saved_sectors[0], 0, SECTOR_SIZE,
--                       sect))
--          goto fail;
--        grub_memmove (sect + saved_offsets[0], buf, sizeof (buf));
--        if (! rawwrite (current_drive, saved_sectors[0], sect))
--          goto fail;
--      }
-+        break;
-+    }
--      /* Clear the cache.  */
--      buf_track = -1;
-+  if (! (fp = fopen(stage2_os_file, "r+")))
-+    {
-+      errnum = ERR_FILE_NOT_FOUND;
-+      return 1;
-+    }
-+  
-+  if (fseek (fp, SECTOR_SIZE, SEEK_SET) != 0)
-+    {
-+      fclose (fp);
-+      errnum = ERR_BAD_VERSION;
-+      return 1;
-+    }
-+  
-+  if (fread (buffer, 1, SECTOR_SIZE, fp) != SECTOR_SIZE)
-+    {
-+      fclose (fp);
-+      errnum = ERR_READ;
-+      return 1;
-     }
-- fail:
--  saved_drive = tmp_drive;
--  saved_partition = tmp_partition;
--  return errnum;
-+  /* Sanity check.  */
-+  if (buffer[STAGE2_STAGE2_ID] != STAGE2_ID_STAGE2
-+      || *((short *) (buffer + STAGE2_VER_MAJ_OFFS)) != COMPAT_VERSION)
-+    {
-+      errnum = ERR_BAD_VERSION;
-+      return 1;
-+    }
-+  
-+  entryno_ptr = (int *) (buffer + STAGE2_SAVED_ENTRYNO);
-+  if (new_default & STAGE2_ONCEONLY_ENTRY)
-+    {
-+      old_default=*entryno_ptr;
-+      *entryno_ptr = new_default + (old_default & 0xFF);
-+    }
-+  else
-+    {
-+      *entryno_ptr = new_default;
-+    }
-+
-+  if (fseek (fp, SECTOR_SIZE, SEEK_SET) != 0)
-+    {
-+      fclose (fp);
-+      errnum = ERR_BAD_VERSION;
-+      return 1;
-+    }
-+  
-+  if (fwrite (buffer, 1, SECTOR_SIZE, fp) != SECTOR_SIZE)
-+    {
-+      fclose (fp);
-+      errnum = ERR_WRITE;
-+      return 1;
-+    }
-+  
-+  (void)fflush (fp);
-+  fclose (fp);
-+  return 0;
-+}
-+#endif
-+
-+/* savedefault */
-+static int
-+savedefault_func (char *arg, int flags)
-+{
-+#if !defined(SUPPORT_DISKLESS)
-+#if !defined(GRUB_UTIL)
-+  /* This command is only useful when you boot an entry from the menu
-+     interface.  */
-+  if (! (flags & BUILTIN_SCRIPT))
-+    {
-+      errnum = ERR_UNRECOGNIZED;
-+      return 1;
-+    }
-+
-+  return savedefault_helper(current_entryno);
-+#else /* defined(GRUB_UTIL) */
-+  return savedefault_shell(arg, flags);
-+#endif
- #else /* ! SUPPORT_DISKLESS && ! GRUB_UTIL */
-   errnum = ERR_UNRECOGNIZED;
-   return 1;
-@@ -3368,10 +3397,14 @@
-   "savedefault",
-   savedefault_func,
-   BUILTIN_CMDLINE,
--  "savedefault [NUM | `fallback']",
--  "Save the current entry as the default boot entry if no argument is"
--  " specified. If a number is specified, this number is saved. If"
--  " `fallback' is used, next fallback entry is saved."
-+#ifdef GRUB_UTIL
-+  "savedefault [--stage2=STAGE2_FILE] [--default=DEFAULT] [--once]",
-+  "Save DEFAULT as the default boot entry in STAGE2_FILE. If '--once'"
-+  " is specified, the default is reset after the next reboot."
-+#else
-+  "savedefault",
-+  "Save the current entry as the default boot entry."
-+#endif
- };
\f
-@@ -4598,6 +4631,15 @@
- static int
- timeout_func (char *arg, int flags)
- {
-+  /* One-shot default shenanigans -- don't piss around with the menu! */
-+  if (grub_timeout != -1)
-+    return 0;
-+  if ((saved_entryno & STAGE2_ONCEONLY_ENTRY) != 0)
-+    {
-+      grub_timeout = 0;
-+      return 0;
-+    }
-+
-   if (! safe_parse_maxint (&arg, &grub_timeout))
-     return 1;
---- grub-0.97/stage2/shared.h.bootonce 2005-12-12 18:23:13.000000000 -0500
-+++ grub-0.97/stage2/shared.h  2005-12-12 18:23:13.000000000 -0500
-@@ -200,6 +200,8 @@
- #define STAGE2_FORCE_LBA      0x11
- #define STAGE2_VER_STR_OFFS   0x12
-+#define STAGE2_ONCEONLY_ENTRY   0x10000
-+
- /* Stage 2 identifiers */
- #define STAGE2_ID_STAGE2              0
- #define STAGE2_ID_FFS_STAGE1_5                1
---- grub-0.97/stage2/builtins.c.bootonce       2006-03-13 16:55:11.000000000 -0500
-+++ grub-0.97/stage2/builtins.c        2006-03-13 16:56:01.000000000 -0500
-@@ -761,11 +761,25 @@
- };
\f
-+#if !defined(SUPPORT_DISKLESS) && !defined(GRUB_UTIL)
-+static int savedefault_helper(int);
-+#endif
- /* default */
- static int
- default_func (char *arg, int flags)
- {
- #ifndef SUPPORT_DISKLESS
-+#ifndef GRUB_UTIL
-+  /* Has a forced once-only default been specified? */
-+  if ((saved_entryno & STAGE2_ONCEONLY_ENTRY) != 0)
-+    {
-+      int old_defaults=saved_entryno & ~STAGE2_ONCEONLY_ENTRY;
-+      grub_timeout = 0;
-+      default_entry = old_defaults >> 8;
-+      savedefault_helper(old_defaults & 0xff);
-+      return 0;
-+    }
-+#endif
-   if (grub_strcmp (arg, "saved") == 0)
-     {
-       default_entry = saved_entryno;
---- grub-0.97/stage2/stage2.c.bootonce 2006-03-13 17:27:40.000000000 -0500
-+++ grub-0.97/stage2/stage2.c  2006-03-13 17:29:11.000000000 -0500
-@@ -960,38 +960,8 @@
-       if (use_config_file)
- #endif /* GRUB_UTIL */
-       {
--        char *default_file = (char *) DEFAULT_FILE_BUF;
-         int i;
--        
--        /* Get a saved default entry if possible.  */
--        saved_entryno = 0;
--        *default_file = 0;
--        grub_strncat (default_file, config_file, DEFAULT_FILE_BUFLEN);
--        for (i = grub_strlen(default_file); i >= 0; i--)
--          if (default_file[i] == '/')
--            {
--              i++;
--              break;
--            }
--        default_file[i] = 0;
--        grub_strncat (default_file + i, "default", DEFAULT_FILE_BUFLEN - i);
--        if (grub_open (default_file))
--          {
--            char buf[10]; /* This is good enough.  */
--            char *p = buf;
--            int len;
--            
--            len = grub_read (buf, sizeof (buf));
--            if (len > 0)
--              {
--                buf[sizeof (buf) - 1] = 0;
--                safe_parse_maxint (&p, &saved_entryno);
--              }
--            grub_close ();
--          }
--        errnum = ERR_NONE;
--        
-         do
-           {
-             /* STATE 0:  Before any title command.
---- grub-0.97/util/grub-install.in.bootonce    2006-03-13 17:39:35.000000000 -0500
-+++ grub-0.97/util/grub-install.in     2006-03-13 17:39:50.000000000 -0500
-@@ -30,7 +30,6 @@
- pkglibdir=${libdir}/${PACKAGE}/${host_cpu}-${host_vendor}
- grub_shell=${sbindir}/grub
--grub_set_default=${sbindir}/grub-set-default
- log_file=/tmp/grub-install.log.$$
- img_file=/tmp/grub-install.img.$$
- rootdir=
-@@ -432,9 +431,6 @@
-     exit 1
- fi
--# Make a default file.
--${grub_set_default} --root-directory=${rootdir} default
--
- # Make sure that GRUB reads the same images as the host OS.
- test -n "$mkimg" && img_file=`$mkimg`
- test -n "$mklog" && log_file=`$mklog`
---- grub-0.97/configure.bootonce       2006-03-13 17:49:05.000000000 -0500
-+++ grub-0.97/configure        2006-03-13 17:49:16.000000000 -0500
-@@ -6135,7 +6135,7 @@
--                                                                                                                                  ac_config_files="$ac_config_files Makefile stage1/Makefile stage2/Makefile docs/Makefile lib/Makefile util/Makefile grub/Makefile netboot/Makefile util/grub-image util/grub-install util/grub-md5-crypt util/grub-terminfo util/grub-set-default"
-+                                                                                                                                  ac_config_files="$ac_config_files Makefile stage1/Makefile stage2/Makefile docs/Makefile lib/Makefile util/Makefile grub/Makefile netboot/Makefile util/grub-image util/grub-install util/grub-md5-crypt util/grub-terminfo"
- cat >confcache <<\_ACEOF
- # This file is a shell script that caches the results of configure
-@@ -6754,7 +6754,6 @@
-   "util/grub-install" ) CONFIG_FILES="$CONFIG_FILES util/grub-install" ;;
-   "util/grub-md5-crypt" ) CONFIG_FILES="$CONFIG_FILES util/grub-md5-crypt" ;;
-   "util/grub-terminfo" ) CONFIG_FILES="$CONFIG_FILES util/grub-terminfo" ;;
--  "util/grub-set-default" ) CONFIG_FILES="$CONFIG_FILES util/grub-set-default" ;;
-   "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
-   "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
-   *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
---- grub-0.97/configure.ac.bootonce    2006-03-13 17:47:24.000000000 -0500
-+++ grub-0.97/configure.ac     2006-03-13 17:47:37.000000000 -0500
-@@ -666,5 +666,5 @@
-                docs/Makefile lib/Makefile util/Makefile \
-                grub/Makefile netboot/Makefile util/grub-image \
-                util/grub-install util/grub-md5-crypt \
--               util/grub-terminfo util/grub-set-default])
-+               util/grub-terminfo])
- AC_OUTPUT
---- grub-0.97/util/Makefile.am.bootonce        2006-03-13 17:48:39.000000000 -0500
-+++ grub-0.97/util/Makefile.am 2006-03-13 17:48:45.000000000 -0500
-@@ -1,6 +1,5 @@
- bin_PROGRAMS = mbchk
--sbin_SCRIPTS = grub-install grub-md5-crypt grub-terminfo \
--      grub-set-default
-+sbin_SCRIPTS = grub-install grub-md5-crypt grub-terminfo
- noinst_SCRIPTS = grub-image mkbimage
- EXTRA_DIST = mkbimage
---- grub-0.97/util/Makefile.in.bootonce        2006-03-13 17:47:56.000000000 -0500
-+++ grub-0.97/util/Makefile.in 2006-03-13 17:48:34.000000000 -0500
-@@ -43,8 +43,7 @@
- subdir = util
- DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
-       $(srcdir)/grub-image.in $(srcdir)/grub-install.in \
--      $(srcdir)/grub-md5-crypt.in $(srcdir)/grub-set-default.in \
--      $(srcdir)/grub-terminfo.in
-+      $(srcdir)/grub-md5-crypt.in $(srcdir)/grub-terminfo.in
- ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
- am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
-       $(top_srcdir)/configure.ac
-@@ -52,8 +51,7 @@
-       $(ACLOCAL_M4)
- mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
- CONFIG_HEADER = $(top_builddir)/config.h
--CONFIG_CLEAN_FILES = grub-image grub-install grub-md5-crypt \
--      grub-terminfo grub-set-default
-+CONFIG_CLEAN_FILES = grub-image grub-install grub-md5-crypt grub-terminfo 
- am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(sbindir)"
- binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
- PROGRAMS = $(bin_PROGRAMS)
-@@ -183,8 +181,7 @@
- sharedstatedir = @sharedstatedir@
- sysconfdir = @sysconfdir@
- target_alias = @target_alias@
--sbin_SCRIPTS = grub-install grub-md5-crypt grub-terminfo \
--      grub-set-default
-+sbin_SCRIPTS = grub-install grub-md5-crypt grub-terminfo
- noinst_SCRIPTS = grub-image mkbimage
- EXTRA_DIST = mkbimage
-@@ -234,8 +231,6 @@
-       cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
- grub-terminfo: $(top_builddir)/config.status $(srcdir)/grub-terminfo.in
-       cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
--grub-set-default: $(top_builddir)/config.status $(srcdir)/grub-set-default.in
--      cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
- install-binPROGRAMS: $(bin_PROGRAMS)
-       @$(NORMAL_INSTALL)
-       test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
diff --git a/src/patches/grub-0.97-prototypes.patch b/src/patches/grub-0.97-prototypes.patch
deleted file mode 100644 (file)
index 21d65d5..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- grub-0.97/acinclude.m4.prototypes  2005-12-12 19:07:24.000000000 -0500
-+++ grub-0.97/acinclude.m4     2005-12-12 19:07:56.000000000 -0500
-@@ -44,6 +44,8 @@
- [AC_MSG_CHECKING([whether ${OBJCOPY} works for absolute addresses])
- AC_CACHE_VAL(grub_cv_prog_objcopy_absolute,
- [cat > conftest.c <<\EOF
-+void cmain(void);
-+
- void
- cmain (void)
- {
diff --git a/src/patches/grub-0.97-stderr.patch b/src/patches/grub-0.97-stderr.patch
deleted file mode 100644 (file)
index 71d20ad..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
---- grub-0.97/util/grub-install.in.stderr      2006-07-07 10:56:37.000000000 -0400
-+++ grub-0.97/util/grub-install.in     2006-07-07 11:01:35.000000000 -0400
-@@ -207,7 +207,7 @@
-       while test -L $tmp_fname; do
-               tmp_new_fname=`ls -al $tmp_fname | sed -n 's%.*-> \(.*\)%\1%p'`
-               if test -z "$tmp_new_fname"; then
--                      echo "Unrecognized ls output" 2>&1
-+                      echo "Unrecognized ls output" 1>&2
-                       exit 1
-               fi
-@@ -264,7 +264,7 @@
- stat_device() {
-     majmin=`stat -c "%t:%T" "$1" 2>/dev/null`
-     if test -z "$majmin"; then
--      echo "Could not find device for $1" 2>&1
-+      echo "Could not find device for $1" 1>&2
-       exit 1
-     fi
-@@ -281,7 +281,7 @@
-       dev=`awk '($2 ~ /'$mntpnt'/) { print $1 }' /etc/mtab`
-     fi
-     if test -z "$dev"; then
--      echo "Could not find device for $1" 2>&1
-+      echo "Could not find device for $1" 1>&2
-       exit 1
-     fi
-       
-@@ -304,11 +304,11 @@
-     tmp_fname=`df $1/ | sed -n 's%.*\(/dev/[^         ]*\).*%\1%p'`
-     if test -z "$tmp_fname"; then
--      echo "Could not find device for $1" 2>&1
-+      echo "Could not find device for $1" 1>&2
-       exit 1
-     fi
--    ret_fname=`resolve_symlink $tmp_fname`
-+    ret_fname=`resolve_symlink $tmp_fname` || exit 1
-     tmp_fname=`find_mapper_device $ret_fname`
-     if test -n "$tmp_fname"; then
-       ret_fname="$tmp_fname"
-@@ -325,7 +325,7 @@
-     done
-     for file in \
-       ${pkgdatadir}/stage1 ${pkgdatadir}/stage2 ${pkgdatadir}/*stage1_5; do
--      cp -f $file ${grubdir} || exit 1
-+      cp -f $file ${grubdir} 1>&2 || exit 1
-     done
- }
-@@ -520,9 +520,9 @@
- # Check for INSTALL_DEVICE.
- case "$install_device" in
- /dev/*)
--    install_device=`resolve_symlink "$install_device"`
-+    install_device=`resolve_symlink "$install_device"` || exit 1
-     for install_drive in `find_real_devs $install_device` ; do
--      install_drive=`convert $install_drive`
-+      install_drive=`convert $install_drive` || exit 1
-       if is_raid1_device $install_device; then
-               install_drive=`echo $install_drive | sed 's/,[0-9]*)/)/'`
-       fi
-@@ -550,8 +550,8 @@
- unset install_device
- # Get the root drive.
--root_device=`find_device ${rootdir}`
--bootdir_device=`find_device ${bootdir}`
-+root_device=`find_device ${rootdir}` || exit 1
-+bootdir_device=`find_device ${bootdir}` || exit 1
- # Check if the boot directory is in the same device as the root directory.
- if test "x$root_device" != "x$bootdir_device"; then
-@@ -561,7 +561,7 @@
- fi
- # Check if the root directory exists in the same device as the grub directory.
--grubdir_device=`find_device ${grubdir}`
-+grubdir_device=`find_device ${grubdir}` || exit 1
- if test "x$grubdir_device" != "x$root_device"; then
-     # For now, cannot deal with this situation.
-@@ -582,7 +582,7 @@
- fi
- # Convert the root deviceto a GRUB drive.
--root_drive=`convert "$root_device"`
-+root_drive=`convert "$root_device"` || exit 1
- if [ "x$root_drive" = x ]; then
-     exit 1
- fi
-@@ -618,7 +618,7 @@
- for install_drive in $install_drives; do 
-     # Convert the root deviceto a GRUB drive.
--    root_drive=`convert "$root_device"`
-+    root_drive=`convert "$root_device"` || exit 1
-     if [ "x$root_drive" = x ]; then
-       exit 1
-     fi
diff --git a/src/patches/grub-0.97_grub-install_virtio.patch b/src/patches/grub-0.97_grub-install_virtio.patch
deleted file mode 100644 (file)
index 86afba9..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
---- grub-0.97/util/grub-install.in     2010-06-24 08:47:23.000000000 +0200
-+++ grub-0.97/util/grub-install.in     2010-06-24 09:20:42.000000000 +0200
-@@ -102,7 +102,7 @@
-     linux*)
-       # formats that need to be handled (disk name -> partition name):
-       # floppies: /dev/fd0
--      # normal sd/hd devices: /dev/hda -> /dev/hda3
-+      # normal sd/hd/vd devices: /dev/hda -> /dev/hda3
-       # md: /dev/md0 -> /dev/md0p0
-       # ide raid devs: /dev/ide/host0/bus0/target0/lun0/disc
-       #             -> /dev/ide/host0/bus0/target0/lun0/part1
-@@ -134,7 +134,7 @@
-       # more? 
-       tmp_disk=`echo "$1" | grep -v '/mapper/control$' |
-               grep -v '/mapper/[[:alnum:]_]\+-[[:digit:]]\+$' | uniq |
--              sed -e 's%\([sh]d[a-z]\)[0-9]*$%\1%' \
-+              sed -e 's%\([shv]d[a-z]\)[0-9]*$%\1%' \
-                         -e 's%\(/c[0-9]\+d[0-9]\+\).*$%\1%' \
-                         -e 's%\(fd[0-9]*\)$%\1%' \
-                         -e 's%/part[0-9]*$%/disc%' \
-@@ -142,7 +142,7 @@
-   -e 's%\(/mapper/[[:alnum:]]\+\(_[[:alnum:]]\+\)\+\)\p[[:digit:]]\+$%\1%'`
-       tmp_part=`echo "$1" | grep -v '/mapper/control$' |
-               grep -v '/mapper/[[:alnum:]_]\+-[[:digit:]]\+$' | uniq |
--              sed -e 's%.*/[sh]d[a-z]\([0-9]*\)$%\1%' \
-+              sed -e 's%.*/[shv]d[a-z]\([0-9]*\)$%\1%' \
-                         -e 's%.*/c[0-9]\+d[0-9]\+p\([[:digit:]]\+\)%\1%' \
-                         -e 's%.*/c[0-9]\+d[0-9]\+$%%' \
-                         -e 's%.*/fd[0-9]\+$%%' \
-@@ -509,6 +509,10 @@
- if test -f "$device_map"; then
-     :
- else
-+
-+  tmp_disk=`echo "$install_device" | grep "/dev/vd"`
-+  if test "x$tmp_disk" = x; then
-+    
-     # Create a safe temporary file.
-     test -n "$mklog" && log_file=`$mklog`
-@@ -525,6 +529,11 @@
-     fi
-     rm -f $log_file
-+
-+  else
-+    echo "Create fake device.map for virtio device $1" 1>&2
-+    echo "(hd0)    $install_device" > $device_map
-+  fi
- fi
- # Make sure that there is no duplicated entry.
diff --git a/src/patches/grub-gentoo-14.patch b/src/patches/grub-gentoo-14.patch
new file mode 100644 (file)
index 0000000..d2bb959
--- /dev/null
@@ -0,0 +1,16087 @@
+diff -Nur grub-0.97/acinclude.m4 grub-0.97-patched/acinclude.m4
+--- grub-0.97/acinclude.m4     2004-04-27 22:48:06.000000000 +0200
++++ grub-0.97-patched/acinclude.m4     2012-11-11 17:07:12.710729053 +0100
+@@ -57,7 +57,7 @@
+ fi
+ grub_cv_prog_objcopy_absolute=yes
+ for link_addr in 2000 8000 7C00; do
+-  if AC_TRY_COMMAND([${CC-cc} ${CFLAGS} -nostdlib -Wl,-N -Wl,-Ttext -Wl,$link_addr conftest.o -o conftest.exec]); then :
++  if AC_TRY_COMMAND([${CC-cc} ${CFLAGS} ${LDFLAGS} -nostdlib -Wl,-N -Wl,-Ttext -Wl,$link_addr conftest.o -o conftest.exec]); then :
+   else
+     AC_MSG_ERROR([${CC-cc} cannot link at address $link_addr])
+   fi
+diff -Nur grub-0.97/ChangeLog grub-0.97-patched/ChangeLog
+--- grub-0.97/ChangeLog        2005-05-08 04:47:02.000000000 +0200
++++ grub-0.97-patched/ChangeLog        2012-11-11 17:07:12.708728989 +0100
+@@ -1,3 +1,127 @@
++2008-05-20  Robert Millan  <rmh@aybabtu.com>
++
++      * netboot/cs89x0.c: Fix license violation.
++      * netboot/cs89x0.h: Likewise.
++
++2008-04-10  Pavel Roskin  <proski@gnu.org>
++
++      * configure.ac: Always use "_cv_" in cache variables for
++      compatibility with Autoconf 2.62.
++
++2008-03-28  Robert Millan  <rmh@aybabtu.com>
++
++      Surpass 1 TiB disk addressing limit.  Note: there are no plans to handle
++      the 2 TiB disk limit in GRUB Legacy, since that would need considerable
++      rework.  If you have >2TiB disks, use GRUB 2 instead.
++
++      * grub/asmstub.c (biosdisk): Add unsigned qualifier to `sector'.
++      * stage2/bios.c (biosdisk): Likewise.
++      * stage2/disk_io.c (rawread, devread, rawwrite, devwrite): Likewise.
++      * stage2/shared.h (rawread, devread, rawwrite, devwrite): Likewise.
++      * lib/device.c (get_drive_geometry): Replace BLKGETSIZE with
++      BLKGETSIZE64.
++
++2007-10-29  Pavel Roskin  <proski@gnu.org>
++
++      * configure.ac: Test if '--build-id=none' is supported by the
++      linker and add it to LDFLAGS if possible.  Build ID causes
++      objcopy to generate huge binary files.
++      * aclocal.m4 (grub_PROG_OBJCOPY_ABSOLUTE): Use LDFLAGS when
++      linking, so that build ID doesn't break the test.
++      * stage1/Makefile.am: Preserve LDFLAGS, use stage1_exec_LDFLAGS.
++
++2007-02-22  Pavel Roskin  <proski@gnu.org>
++
++      * stage2/iso9660.h: Remove unnecessary packed attributes.
++
++2007-02-22  Robert Millan  <rmh@aybabtu.com>
++
++      * util/mkbimage: Update my email address, and remove my name from
++      some places where unnecessary credit is given.
++
++2006-09-10  Pavel Roskin  <proski@gnu.org>
++
++      * netboot/natsemi.c: Fix compile error with gcc 4.1.1.  Cast
++      cannot make a variable volatile - it should be declared as such.
++      * netboot/sis900.c: Likewise.
++
++2006-09-08  Pavel Roskin  <proski@gnu.org>
++
++      * netboot/etherboot.h: Remove incorrect extern declarations of
++      the variables later declared static.  Move BOOTP_DATA_ADDR ...
++      * netboot/main.c: ... here.  Eliminate end_of_rfc1533 - it's
++      write-only.
++
++2006-06-24  Yoshinori K. Okuji  <okuji@enbug.org>
++
++      * docs/grub.texi: Changed the license term to the GNU Free
++      Documentation License 1.2.
++
++      * docs/multiboot.texi: Reformatted to show the license term
++      and the version number explicitly.
++      
++      * docs/fdl.texi: New file.
++      
++      * docs/Makefile.am (grub_TEXINFOS): Added fdl.texi.
++
++2006-06-24  Robert Millan  <robertmh@gnu.org>
++
++      * lib/device.c (write_to_partition): /dev/ataraid/ and /dev/rd/
++      partitions have a "p" prefix.  Add it.
++
++2006-06-24  Robert Millan  <robertmh@gnu.org>
++
++      * lib/device.c (get_i2o_disk_name): New function.
++      (init_device_map) [__linux__]: Add support for I2O devices.
++
++2006-05-02  Pavel Roskin  <proski@gnu.org>
++
++      * stage2/stage2.c (run_menu): Fix "savedefault" to save only top
++      level menu positions.  Remember current position when calling a
++      submenu.  Don't recalculate it when booting from a submenu.
++
++      * grub/main.c (main): Make sure the boot drive number doesn't
++      exceed 255.
++
++2006-05-02  Vesa Jaaskelainen  <chaac@nic.fi>
++
++      * stage2/shared.h (vbe_mode): Back ported aligment fix from GRUB 2
++      to GRUB Legacy.  Problem reported by Gerardo Richarte.
++
++2006-04-23  Robert Millan  <robertmh@gnu.org>
++
++      * grub/asmstub.c (get_diskinfo): Optimize sysctl routine.
++
++2006-04-20  Robert Millan  <robertmh@gnu.org>
++
++      Fixes for kernel of FreeBSD:
++      * grub/asmstub.c (get_diskinfo): Toggle "kern.geom.debugflags" sysctl
++      before opening a device for writing.
++      * util/grub-install.in: Devices don't have this "r" prefix anymore.
++
++2006-04-16  Yoshinori K. Okuji  <okuji@enbug.org>
++
++      * docs/multiboot.texi: Correct the offset of address
++      fields. Reported by Jeroen Dekkers.
++
++2006-03-21  Yoshinori K. Okuji  <okuji@enbug.org>
++
++      * stage2/builtins.c (setup_func): Specify the size of DEVICE to
++      grub_strncat instead of a strange number 256. Reported by Vitaly
++      Fertman <vitaly@namesys.com>.
++
++2005-09-29  Yoshinori K. Okuji  <okuji@enbug.org>
++
++      * docs/multiboot.texi: Fix a bug in the byte order of
++      boot_device. I hope this won't affect any OS image.
++      Increased the version number to 0.6.94.
++
++2005-09-28  Yoshinori K. Okuji  <okuji@enbug.org>
++
++      * stage2/boot.c (load_image): Even if an OS image is an ELF
++      object, use the a.out kludge if MULTIBOOT_AOUT_KLUDGE is
++      specified.
++
+ 2005-05-08  Yoshinori K. Okuji  <okuji@enbug.org>
+       * configure.ac (AC_INIT): Upgraded to 0.97.
+diff -Nur grub-0.97/configure.ac grub-0.97-patched/configure.ac
+--- grub-0.97/configure.ac     2005-05-08 04:36:03.000000000 +0200
++++ grub-0.97-patched/configure.ac     2012-11-11 17:07:12.752730394 +0100
+@@ -21,8 +21,12 @@
+ AC_CANONICAL_HOST
+ case "$host_cpu" in
+-i[[3456]]86) host_cpu=i386 ;;
+-x86_64) host_cpu=x86_64 ;;
++i[[3456]]86)
++  STAGE_MARCH="-march=$host_cpu"
++  host_cpu=i386 ;;
++x86_64)
++  STAGE_MARCH="-march=i686"
++  host_cpu=x86_64 ;;
+ *) AC_MSG_ERROR([unsupported CPU type]) ;;
+ esac
+@@ -56,12 +60,7 @@
+ AC_CHECK_TOOL(CC, gcc)
+ AC_PROG_CC
+-# We need this for older versions of Autoconf.
+-_AM_DEPENDENCIES(CC)
+-
+-dnl Because recent automake complains about AS, set it here.
+-CCAS="$CC"
+-AC_SUBST(CCAS)
++AM_PROG_AS
+ AC_ARG_WITH(binutils,
+   [  --with-binutils=DIR     search the directory DIR to find binutils])
+@@ -86,13 +85,13 @@
+     fi
+     STAGE1_CFLAGS="-O2"
+     GRUB_CFLAGS="-O2"
+-    AC_CACHE_CHECK([whether optimization for size works], size_flag, [
++    AC_CACHE_CHECK([whether optimization for size works], grub_cv_cc_Os, [
+       saved_CFLAGS=$CFLAGS
+       CFLAGS="-Os -g"
+-      AC_TRY_COMPILE(, , size_flag=yes, size_flag=no)
++      AC_TRY_COMPILE(, , grub_cv_cc_Os=yes, grub_cv_cc_Os=no)
+       CFLAGS=$saved_CFLAGS
+     ])
+-    if test "x$size_flag" = xyes; then
++    if test "x$grub_cv_cc_Os" = xyes; then
+       STAGE2_CFLAGS="-Os"
+     else
+       STAGE2_CFLAGS="-O2 -fno-strength-reduce -fno-unroll-loops"
+@@ -100,21 +99,38 @@
+     # OpenBSD has a GCC extension for protecting applications from
+     # stack smashing attacks, but GRUB doesn't want this feature.
+     AC_CACHE_CHECK([whether gcc has -fno-stack-protector],
+-                 no_stack_protector_flag, [
++                 grub_cv_cc_no_stack_protector, [
+       saved_CFLAGS=$CFLAGS
+       CFLAGS="-fno-stack-protector"
+       AC_TRY_COMPILE(,
+                    ,
+-                   no_stack_protector_flag=yes,
+-                   no_stack_protector_flag=no)
++                   grub_cv_cc_no_stack_protector=yes,
++                   grub_cv_cc_no_stack_protector=no)
+       CFLAGS=$saved_CFLAGS
+     ])
+-    if test "x$no_stack_protector_flag" = xyes; then
++    if test "x$grub_cv_cc_no_stack_protector" = xyes; then
+       STAGE2_CFLAGS="$STAGE2_CFLAGS -fno-stack-protector"
+     fi
++    # Position Independent Executables, but GRUB doesn't want this feature.
++    AC_CACHE_CHECK([whether gcc has -fPIE on as default], grub_cv_cc_fpie, [
++      AC_TRY_COMPILE(,[
++              #if ! defined (__PIC__) || ! defined (__PIE__)
++              #error
++              #endif
++              ],
++            grub_cv_cc_fpie=yes,
++            grub_cv_cc_fpie=no)
++    ])
++    if test "x$grub_cv_cc_fpie" = xyes; then
++      STAGE1_CFLAGS="$STAGE1_CFLAGS -nopie"
++      STAGE2_CFLAGS="$STAGE2_CFLAGS -nopie"
++    fi
+   fi
+ fi
++STAGE1_CFLAGS="$STAGE1_CFLAGS -fno-strict-aliasing $STAGE_MARCH"
++STAGE2_CFLAGS="$STAGE2_CFLAGS -fno-strict-aliasing $STAGE_MARCH"
++GRUB_CFLAGS="$GRUB_CFLAGS -fno-strict-aliasing"
+ AC_SUBST(STAGE1_CFLAGS)
+ AC_SUBST(STAGE2_CFLAGS)
+ AC_SUBST(GRUB_CFLAGS)
+@@ -123,33 +139,44 @@
+ CPPFLAGS="$CPPFLAGS -Wall -Wmissing-prototypes -Wunused -Wshadow"
+ CPPFLAGS="$CPPFLAGS -Wpointer-arith"
+-AC_CACHE_CHECK([whether -Wundef works], undef_flag, [
++AC_CACHE_CHECK([whether -Wundef works], grub_cv_cc_Wundef, [
+   saved_CPPFLAGS="$CPPFLAGS"
+   CPPFLAGS="-Wundef"
+-  AC_TRY_COMPILE(, , undef_flag=yes, undef_flag=no)
++  AC_TRY_COMPILE(, , grub_cv_cc_Wundef=yes, grub_cv_cc_Wundef=no)
+   CPPFLAGS="$saved_CPPFLAGS"
+ ])
+ # The options `-falign-*' are supported by gcc 3.0 or later.
+ # Probably it is sufficient to only check for -falign-loops.
+-AC_CACHE_CHECK([whether -falign-loops works], [falign_loop_flag], [
++AC_CACHE_CHECK([whether -falign-loops works], [grub_cv_cc_falign_loop], [
+   saved_CPPFLAGS="$CPPFLAGS"
+   CPPFLAGS="-falign-loops=1"
+-  AC_TRY_COMPILE(, , [falign_loop_flag=yes], [falign_loop_flag=no])
++  AC_TRY_COMPILE(, , [grub_cv_cc_falign_loop=yes], [grub_cv_cc_falign_loop=no])
+   CPPFLAGS="$saved_CPPFLAGS"
+ ])
+ # Force no alignment to save space.
+-if test "x$falign_loop_flag" = xyes; then
++if test "x$grub_cv_cc_falign_loop" = xyes; then
+   CPPFLAGS="$CPPFLAGS -falign-jumps=1 -falign-loops=1 -falign-functions=1"
+ else
+   CPPFLAGS="$CPPFLAGS -malign-jumps=1 -malign-loops=1 -malign-functions=1"
+ fi
+-if test "x$undef_flag" = xyes; then
++if test "x$grub_cv_cc_Wundef" = xyes; then
+   CPPFLAGS="$CPPFLAGS -Wundef"
+ fi
++# Check if build ID can be disabled in the linker
++AC_MSG_CHECKING([whether linker accepts `--build-id=none'])
++save_LDFLAGS="$LDFLAGS"
++LDFLAGS="$LDFLAGS -Wl,--build-id=none"
++AC_TRY_LINK(, , build_id_flag=yes, build_id_flag=no)
++AC_MSG_RESULT([$build_id_flag])
++LDFLAGS="$save_LDFLAGS"
++if test "x$build_id_flag" = xyes; then
++  LDFLAGS="$LDFLAGS -Wl,--build-id=none"
++fi
++
+ if test "x$with_binutils" != x; then
+ dnl  AC_PATH_TOOL(OBJCOPY, objcopy, , "$with_binutils:$PATH")
+   AC_PATH_PROG(OBJCOPY, objcopy, , "$with_binutils:$PATH")
+@@ -595,6 +622,11 @@
+   [  --enable-diskless       enable diskless support])
+ AM_CONDITIONAL(DISKLESS_SUPPORT, test "x$enable_diskless" = xyes)
++dnl Graphical splashscreen support
++AC_ARG_ENABLE(graphics,
++  [  --disable-graphics      disable graphics terminal support])
++AM_CONDITIONAL(GRAPHICS_SUPPORT, test "x$enable_graphics" != xno)
++
+ dnl Hercules terminal
+ AC_ARG_ENABLE(hercules,
+   [  --disable-hercules      disable hercules terminal support])
+diff -Nur grub-0.97/docs/fdl.texi grub-0.97-patched/docs/fdl.texi
+--- grub-0.97/docs/fdl.texi    1970-01-01 01:00:00.000000000 +0100
++++ grub-0.97-patched/docs/fdl.texi    2012-11-11 17:07:12.712729117 +0100
+@@ -0,0 +1,452 @@
++
++@node GNU Free Documentation License
++@appendixsec GNU Free Documentation License
++
++@cindex FDL, GNU Free Documentation License
++@center Version 1.2, November 2002
++
++@display
++Copyright @copyright{} 2000,2001,2002 Free Software Foundation, Inc.
++51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
++
++Everyone is permitted to copy and distribute verbatim copies
++of this license document, but changing it is not allowed.
++@end display
++
++@enumerate 0
++@item
++PREAMBLE
++
++The purpose of this License is to make a manual, textbook, or other
++functional and useful document @dfn{free} in the sense of freedom: to
++assure everyone the effective freedom to copy and redistribute it,
++with or without modifying it, either commercially or noncommercially.
++Secondarily, this License preserves for the author and publisher a way
++to get credit for their work, while not being considered responsible
++for modifications made by others.
++
++This License is a kind of ``copyleft'', which means that derivative
++works of the document must themselves be free in the same sense.  It
++complements the GNU General Public License, which is a copyleft
++license designed for free software.
++
++We have designed this License in order to use it for manuals for free
++software, because free software needs free documentation: a free
++program should come with manuals providing the same freedoms that the
++software does.  But this License is not limited to software manuals;
++it can be used for any textual work, regardless of subject matter or
++whether it is published as a printed book.  We recommend this License
++principally for works whose purpose is instruction or reference.
++
++@item
++APPLICABILITY AND DEFINITIONS
++
++This License applies to any manual or other work, in any medium, that
++contains a notice placed by the copyright holder saying it can be
++distributed under the terms of this License.  Such a notice grants a
++world-wide, royalty-free license, unlimited in duration, to use that
++work under the conditions stated herein.  The ``Document'', below,
++refers to any such manual or work.  Any member of the public is a
++licensee, and is addressed as ``you''.  You accept the license if you
++copy, modify or distribute the work in a way requiring permission
++under copyright law.
++
++A ``Modified Version'' of the Document means any work containing the
++Document or a portion of it, either copied verbatim, or with
++modifications and/or translated into another language.
++
++A ``Secondary Section'' is a named appendix or a front-matter section
++of the Document that deals exclusively with the relationship of the
++publishers or authors of the Document to the Document's overall
++subject (or to related matters) and contains nothing that could fall
++directly within that overall subject.  (Thus, if the Document is in
++part a textbook of mathematics, a Secondary Section may not explain
++any mathematics.)  The relationship could be a matter of historical
++connection with the subject or with related matters, or of legal,
++commercial, philosophical, ethical or political position regarding
++them.
++
++The ``Invariant Sections'' are certain Secondary Sections whose titles
++are designated, as being those of Invariant Sections, in the notice
++that says that the Document is released under this License.  If a
++section does not fit the above definition of Secondary then it is not
++allowed to be designated as Invariant.  The Document may contain zero
++Invariant Sections.  If the Document does not identify any Invariant
++Sections then there are none.
++
++The ``Cover Texts'' are certain short passages of text that are listed,
++as Front-Cover Texts or Back-Cover Texts, in the notice that says that
++the Document is released under this License.  A Front-Cover Text may
++be at most 5 words, and a Back-Cover Text may be at most 25 words.
++
++A ``Transparent'' copy of the Document means a machine-readable copy,
++represented in a format whose specification is available to the
++general public, that is suitable for revising the document
++straightforwardly with generic text editors or (for images composed of
++pixels) generic paint programs or (for drawings) some widely available
++drawing editor, and that is suitable for input to text formatters or
++for automatic translation to a variety of formats suitable for input
++to text formatters.  A copy made in an otherwise Transparent file
++format whose markup, or absence of markup, has been arranged to thwart
++or discourage subsequent modification by readers is not Transparent.
++An image format is not Transparent if used for any substantial amount
++of text.  A copy that is not ``Transparent'' is called ``Opaque''.
++
++Examples of suitable formats for Transparent copies include plain
++@sc{ascii} without markup, Texinfo input format, La@TeX{} input
++format, @acronym{SGML} or @acronym{XML} using a publicly available
++@acronym{DTD}, and standard-conforming simple @acronym{HTML},
++PostScript or @acronym{PDF} designed for human modification.  Examples
++of transparent image formats include @acronym{PNG}, @acronym{XCF} and
++@acronym{JPG}.  Opaque formats include proprietary formats that can be
++read and edited only by proprietary word processors, @acronym{SGML} or
++@acronym{XML} for which the @acronym{DTD} and/or processing tools are
++not generally available, and the machine-generated @acronym{HTML},
++PostScript or @acronym{PDF} produced by some word processors for
++output purposes only.
++
++The ``Title Page'' means, for a printed book, the title page itself,
++plus such following pages as are needed to hold, legibly, the material
++this License requires to appear in the title page.  For works in
++formats which do not have any title page as such, ``Title Page'' means
++the text near the most prominent appearance of the work's title,
++preceding the beginning of the body of the text.
++
++A section ``Entitled XYZ'' means a named subunit of the Document whose
++title either is precisely XYZ or contains XYZ in parentheses following
++text that translates XYZ in another language.  (Here XYZ stands for a
++specific section name mentioned below, such as ``Acknowledgements'',
++``Dedications'', ``Endorsements'', or ``History''.)  To ``Preserve the Title''
++of such a section when you modify the Document means that it remains a
++section ``Entitled XYZ'' according to this definition.
++
++The Document may include Warranty Disclaimers next to the notice which
++states that this License applies to the Document.  These Warranty
++Disclaimers are considered to be included by reference in this
++License, but only as regards disclaiming warranties: any other
++implication that these Warranty Disclaimers may have is void and has
++no effect on the meaning of this License.
++
++@item
++VERBATIM COPYING
++
++You may copy and distribute the Document in any medium, either
++commercially or noncommercially, provided that this License, the
++copyright notices, and the license notice saying this License applies
++to the Document are reproduced in all copies, and that you add no other
++conditions whatsoever to those of this License.  You may not use
++technical measures to obstruct or control the reading or further
++copying of the copies you make or distribute.  However, you may accept
++compensation in exchange for copies.  If you distribute a large enough
++number of copies you must also follow the conditions in section 3.
++
++You may also lend copies, under the same conditions stated above, and
++you may publicly display copies.
++
++@item
++COPYING IN QUANTITY
++
++If you publish printed copies (or copies in media that commonly have
++printed covers) of the Document, numbering more than 100, and the
++Document's license notice requires Cover Texts, you must enclose the
++copies in covers that carry, clearly and legibly, all these Cover
++Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
++the back cover.  Both covers must also clearly and legibly identify
++you as the publisher of these copies.  The front cover must present
++the full title with all words of the title equally prominent and
++visible.  You may add other material on the covers in addition.
++Copying with changes limited to the covers, as long as they preserve
++the title of the Document and satisfy these conditions, can be treated
++as verbatim copying in other respects.
++
++If the required texts for either cover are too voluminous to fit
++legibly, you should put the first ones listed (as many as fit
++reasonably) on the actual cover, and continue the rest onto adjacent
++pages.
++
++If you publish or distribute Opaque copies of the Document numbering
++more than 100, you must either include a machine-readable Transparent
++copy along with each Opaque copy, or state in or with each Opaque copy
++a computer-network location from which the general network-using
++public has access to download using public-standard network protocols
++a complete Transparent copy of the Document, free of added material.
++If you use the latter option, you must take reasonably prudent steps,
++when you begin distribution of Opaque copies in quantity, to ensure
++that this Transparent copy will remain thus accessible at the stated
++location until at least one year after the last time you distribute an
++Opaque copy (directly or through your agents or retailers) of that
++edition to the public.
++
++It is requested, but not required, that you contact the authors of the
++Document well before redistributing any large number of copies, to give
++them a chance to provide you with an updated version of the Document.
++
++@item
++MODIFICATIONS
++
++You may copy and distribute a Modified Version of the Document under
++the conditions of sections 2 and 3 above, provided that you release
++the Modified Version under precisely this License, with the Modified
++Version filling the role of the Document, thus licensing distribution
++and modification of the Modified Version to whoever possesses a copy
++of it.  In addition, you must do these things in the Modified Version:
++
++@enumerate A
++@item
++Use in the Title Page (and on the covers, if any) a title distinct
++from that of the Document, and from those of previous versions
++(which should, if there were any, be listed in the History section
++of the Document).  You may use the same title as a previous version
++if the original publisher of that version gives permission.
++
++@item
++List on the Title Page, as authors, one or more persons or entities
++responsible for authorship of the modifications in the Modified
++Version, together with at least five of the principal authors of the
++Document (all of its principal authors, if it has fewer than five),
++unless they release you from this requirement.
++
++@item
++State on the Title page the name of the publisher of the
++Modified Version, as the publisher.
++
++@item
++Preserve all the copyright notices of the Document.
++
++@item
++Add an appropriate copyright notice for your modifications
++adjacent to the other copyright notices.
++
++@item
++Include, immediately after the copyright notices, a license notice
++giving the public permission to use the Modified Version under the
++terms of this License, in the form shown in the Addendum below.
++
++@item
++Preserve in that license notice the full lists of Invariant Sections
++and required Cover Texts given in the Document's license notice.
++
++@item
++Include an unaltered copy of this License.
++
++@item
++Preserve the section Entitled ``History'', Preserve its Title, and add
++to it an item stating at least the title, year, new authors, and
++publisher of the Modified Version as given on the Title Page.  If
++there is no section Entitled ``History'' in the Document, create one
++stating the title, year, authors, and publisher of the Document as
++given on its Title Page, then add an item describing the Modified
++Version as stated in the previous sentence.
++
++@item
++Preserve the network location, if any, given in the Document for
++public access to a Transparent copy of the Document, and likewise
++the network locations given in the Document for previous versions
++it was based on.  These may be placed in the ``History'' section.
++You may omit a network location for a work that was published at
++least four years before the Document itself, or if the original
++publisher of the version it refers to gives permission.
++
++@item
++For any section Entitled ``Acknowledgements'' or ``Dedications'', Preserve
++the Title of the section, and preserve in the section all the
++substance and tone of each of the contributor acknowledgements and/or
++dedications given therein.
++
++@item
++Preserve all the Invariant Sections of the Document,
++unaltered in their text and in their titles.  Section numbers
++or the equivalent are not considered part of the section titles.
++
++@item
++Delete any section Entitled ``Endorsements''.  Such a section
++may not be included in the Modified Version.
++
++@item
++Do not retitle any existing section to be Entitled ``Endorsements'' or
++to conflict in title with any Invariant Section.
++
++@item
++Preserve any Warranty Disclaimers.
++@end enumerate
++
++If the Modified Version includes new front-matter sections or
++appendices that qualify as Secondary Sections and contain no material
++copied from the Document, you may at your option designate some or all
++of these sections as invariant.  To do this, add their titles to the
++list of Invariant Sections in the Modified Version's license notice.
++These titles must be distinct from any other section titles.
++
++You may add a section Entitled ``Endorsements'', provided it contains
++nothing but endorsements of your Modified Version by various
++parties---for example, statements of peer review or that the text has
++been approved by an organization as the authoritative definition of a
++standard.
++
++You may add a passage of up to five words as a Front-Cover Text, and a
++passage of up to 25 words as a Back-Cover Text, to the end of the list
++of Cover Texts in the Modified Version.  Only one passage of
++Front-Cover Text and one of Back-Cover Text may be added by (or
++through arrangements made by) any one entity.  If the Document already
++includes a cover text for the same cover, previously added by you or
++by arrangement made by the same entity you are acting on behalf of,
++you may not add another; but you may replace the old one, on explicit
++permission from the previous publisher that added the old one.
++
++The author(s) and publisher(s) of the Document do not by this License
++give permission to use their names for publicity for or to assert or
++imply endorsement of any Modified Version.
++
++@item
++COMBINING DOCUMENTS
++
++You may combine the Document with other documents released under this
++License, under the terms defined in section 4 above for modified
++versions, provided that you include in the combination all of the
++Invariant Sections of all of the original documents, unmodified, and
++list them all as Invariant Sections of your combined work in its
++license notice, and that you preserve all their Warranty Disclaimers.
++
++The combined work need only contain one copy of this License, and
++multiple identical Invariant Sections may be replaced with a single
++copy.  If there are multiple Invariant Sections with the same name but
++different contents, make the title of each such section unique by
++adding at the end of it, in parentheses, the name of the original
++author or publisher of that section if known, or else a unique number.
++Make the same adjustment to the section titles in the list of
++Invariant Sections in the license notice of the combined work.
++
++In the combination, you must combine any sections Entitled ``History''
++in the various original documents, forming one section Entitled
++``History''; likewise combine any sections Entitled ``Acknowledgements'',
++and any sections Entitled ``Dedications''.  You must delete all
++sections Entitled ``Endorsements.''
++
++@item
++COLLECTIONS OF DOCUMENTS
++
++You may make a collection consisting of the Document and other documents
++released under this License, and replace the individual copies of this
++License in the various documents with a single copy that is included in
++the collection, provided that you follow the rules of this License for
++verbatim copying of each of the documents in all other respects.
++
++You may extract a single document from such a collection, and distribute
++it individually under this License, provided you insert a copy of this
++License into the extracted document, and follow this License in all
++other respects regarding verbatim copying of that document.
++
++@item
++AGGREGATION WITH INDEPENDENT WORKS
++
++A compilation of the Document or its derivatives with other separate
++and independent documents or works, in or on a volume of a storage or
++distribution medium, is called an ``aggregate'' if the copyright
++resulting from the compilation is not used to limit the legal rights
++of the compilation's users beyond what the individual works permit.
++When the Document is included in an aggregate, this License does not
++apply to the other works in the aggregate which are not themselves
++derivative works of the Document.
++
++If the Cover Text requirement of section 3 is applicable to these
++copies of the Document, then if the Document is less than one half of
++the entire aggregate, the Document's Cover Texts may be placed on
++covers that bracket the Document within the aggregate, or the
++electronic equivalent of covers if the Document is in electronic form.
++Otherwise they must appear on printed covers that bracket the whole
++aggregate.
++
++@item
++TRANSLATION
++
++Translation is considered a kind of modification, so you may
++distribute translations of the Document under the terms of section 4.
++Replacing Invariant Sections with translations requires special
++permission from their copyright holders, but you may include
++translations of some or all Invariant Sections in addition to the
++original versions of these Invariant Sections.  You may include a
++translation of this License, and all the license notices in the
++Document, and any Warranty Disclaimers, provided that you also include
++the original English version of this License and the original versions
++of those notices and disclaimers.  In case of a disagreement between
++the translation and the original version of this License or a notice
++or disclaimer, the original version will prevail.
++
++If a section in the Document is Entitled ``Acknowledgements'',
++``Dedications'', or ``History'', the requirement (section 4) to Preserve
++its Title (section 1) will typically require changing the actual
++title.
++
++@item
++TERMINATION
++
++You may not copy, modify, sublicense, or distribute the Document except
++as expressly provided for under this License.  Any other attempt to
++copy, modify, sublicense or distribute the Document is void, and will
++automatically terminate your rights under this License.  However,
++parties who have received copies, or rights, from you under this
++License will not have their licenses terminated so long as such
++parties remain in full compliance.
++
++@item
++FUTURE REVISIONS OF THIS LICENSE
++
++The Free Software Foundation may publish new, revised versions
++of the GNU Free Documentation License from time to time.  Such new
++versions will be similar in spirit to the present version, but may
++differ in detail to address new problems or concerns.  See
++@uref{http://www.gnu.org/copyleft/}.
++
++Each version of the License is given a distinguishing version number.
++If the Document specifies that a particular numbered version of this
++License ``or any later version'' applies to it, you have the option of
++following the terms and conditions either of that specified version or
++of any later version that has been published (not as a draft) by the
++Free Software Foundation.  If the Document does not specify a version
++number of this License, you may choose any version ever published (not
++as a draft) by the Free Software Foundation.
++@end enumerate
++
++@page
++@appendixsubsec ADDENDUM: How to use this License for your documents
++
++To use this License in a document you have written, include a copy of
++the License in the document and put the following copyright and
++license notices just after the title page:
++
++@smallexample
++@group
++  Copyright (C)  @var{year}  @var{your name}.
++  Permission is granted to copy, distribute and/or modify this document
++  under the terms of the GNU Free Documentation License, Version 1.2
++  or any later version published by the Free Software Foundation;
++  with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
++  Texts.  A copy of the license is included in the section entitled ``GNU
++  Free Documentation License''.
++@end group
++@end smallexample
++
++If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
++replace the ``with...Texts.'' line with this:
++
++@smallexample
++@group
++    with the Invariant Sections being @var{list their titles}, with
++    the Front-Cover Texts being @var{list}, and with the Back-Cover Texts
++    being @var{list}.
++@end group
++@end smallexample
++
++If you have Invariant Sections without Cover Texts, or some other
++combination of the three, merge those two alternatives to suit the
++situation.
++
++If your document contains nontrivial examples of program code, we
++recommend releasing these examples in parallel under your choice of
++free software license, such as the GNU General Public License,
++to permit their use in free software.
++
++@c Local Variables:
++@c ispell-local-pdict: "ispell-dict"
++@c End:
++
+diff -Nur grub-0.97/docs/grub.8 grub-0.97-patched/docs/grub.8
+--- grub-0.97/docs/grub.8      2005-05-08 04:48:56.000000000 +0200
++++ grub-0.97-patched/docs/grub.8      2012-11-11 17:07:12.715729211 +0100
+@@ -1,5 +1,5 @@
+ .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.23.
+-.TH GRUB "8" "May 2005" "grub (GNU GRUB 0.97)" FSF
++.TH GRUB "8" "June 2006" "grub (GNU GRUB 0.97)" FSF
+ .SH NAME
+ grub \- the grub shell
+ .SH SYNOPSIS
+diff -Nur grub-0.97/docs/grub.8.additions grub-0.97-patched/docs/grub.8.additions
+--- grub-0.97/docs/grub.8.additions    1970-01-01 01:00:00.000000000 +0100
++++ grub-0.97-patched/docs/grub.8.additions    2012-11-11 17:07:12.702728798 +0100
+@@ -0,0 +1,3 @@
++[SEE ALSO]
++.BR update-grub (8),
++.BR grub-install (8).
+diff -Nur grub-0.97/docs/grub-install.8 grub-0.97-patched/docs/grub-install.8
+--- grub-0.97/docs/grub-install.8      2005-05-08 04:48:56.000000000 +0200
++++ grub-0.97-patched/docs/grub-install.8      2012-11-11 17:07:12.713729149 +0100
+@@ -1,5 +1,5 @@
+ .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.23.
+-.TH GRUB-INSTALL "8" "May 2005" "grub-install (GNU GRUB 0.97)" FSF
++.TH GRUB-INSTALL "8" "June 2006" "grub-install (GNU GRUB 0.97)" FSF
+ .SH NAME
+ grub-install \- install GRUB on your drive
+ .SH SYNOPSIS
+diff -Nur grub-0.97/docs/grub-install.8.additions grub-0.97-patched/docs/grub-install.8.additions
+--- grub-0.97/docs/grub-install.8.additions    1970-01-01 01:00:00.000000000 +0100
++++ grub-0.97-patched/docs/grub-install.8.additions    2012-11-11 17:07:12.703728829 +0100
+@@ -0,0 +1,3 @@
++[SEE ALSO]
++.BR grub (8),
++.BR update-grub (8).
+diff -Nur grub-0.97/docs/grub-md5-crypt.8 grub-0.97-patched/docs/grub-md5-crypt.8
+--- grub-0.97/docs/grub-md5-crypt.8    2005-05-08 04:48:56.000000000 +0200
++++ grub-0.97-patched/docs/grub-md5-crypt.8    2012-11-11 17:07:12.713729149 +0100
+@@ -1,5 +1,5 @@
+ .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.23.
+-.TH GRUB-MD5-CRYPT "8" "May 2005" "grub-md5-crypt (GNU GRUB )" FSF
++.TH GRUB-MD5-CRYPT "8" "June 2006" "grub-md5-crypt (GNU GRUB )" FSF
+ .SH NAME
+ grub-md5-crypt \- Encrypt a password in MD5 format
+ .SH SYNOPSIS
+diff -Nur grub-0.97/docs/grub-terminfo.8 grub-0.97-patched/docs/grub-terminfo.8
+--- grub-0.97/docs/grub-terminfo.8     2005-05-08 04:48:56.000000000 +0200
++++ grub-0.97-patched/docs/grub-terminfo.8     2012-11-11 17:07:12.714729180 +0100
+@@ -1,5 +1,5 @@
+ .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.23.
+-.TH GRUB-TERMINFO "8" "May 2005" "grub-terminfo (GNU GRUB 0.97)" FSF
++.TH GRUB-TERMINFO "8" "June 2006" "grub-terminfo (GNU GRUB 0.97)" FSF
+ .SH NAME
+ grub-terminfo \- Generate a terminfo command from a terminfo name
+ .SH SYNOPSIS
+diff -Nur grub-0.97/docs/grub.texi grub-0.97-patched/docs/grub.texi
+--- grub-0.97/docs/grub.texi   2005-05-08 04:59:59.000000000 +0200
++++ grub-0.97-patched/docs/grub.texi   2012-11-11 17:07:12.717729276 +0100
+@@ -2,22 +2,41 @@
+ @c -*-texinfo-*-
+ @c %**start of header
+ @setfilename grub.info
+-@settitle GRUB Manual
+-@c %**end of header
+-
+ @include version.texi
+-
++@settitle GNU GRUB Manual @value{VERSION}
+ @c Unify all our little indices for now.
+ @syncodeindex fn cp
+ @syncodeindex vr cp
+ @syncodeindex ky cp
+ @syncodeindex pg cp
+ @syncodeindex tp cp
++@c %**end of header
+ @footnotestyle separate
+ @paragraphindent 3
+ @finalout
++@copying
++This manual is for GNU GRUB (version @value{VERSION},
++@value{UPDATED}).
++
++Copyright @copyright{} 1999,2000,2001,2002,2004,2006 Free Software Foundation, Inc.
++
++@quotation
++Permission is granted to copy, distribute and/or modify this document
++under the terms of the GNU Free Documentation License, Version 1.2 or
++any later version published by the Free Software Foundation; with no
++Invariant Sections, with the Front-Cover Texts being ``A GNU Manual,''
++and with the Back-Cover Texts as in (a) below.  A copy of the
++license is included in the section entitled ``GNU Free Documentation
++License.''
++
++(a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify
++this GNU Manual, like GNU software.  Copies published by the Free
++Software Foundation raise funds for GNU development.''
++@end quotation
++@end copying
++
+ @dircategory Kernel
+ @direntry
+ * GRUB: (grub).                 The GRand Unified Bootloader
+@@ -34,53 +53,16 @@
+ @setchapternewpage odd
+-@ifinfo
+-Copyright @copyright{} 1999,2000,2001,2002,2004 Free Software Foundation, Inc.
+-
+-Permission is granted to make and distribute verbatim copies of
+-this manual provided the copyright notice and this permission notice
+-are preserved on all copies.
+-
+-@ignore
+-Permission is granted to process this file through TeX and print the
+-results, provided the printed document carries a copying permission
+-notice identical to this one except for the removal of this paragraph
+-(this paragraph not being relevant to the printed manual).
+-
+-@end ignore
+-
+-Permission is granted to copy and distribute modified versions of this
+-manual under the conditions for verbatim copying, provided also that
+-the entire resulting derived work is distributed under the terms of a
+-permission notice identical to this one.
+-
+-Permission is granted to copy and distribute translations of this manual
+-into another language, under the above conditions for modified versions.
+-@end ifinfo
+-
+ @titlepage
+ @sp 10
+-@title the GRUB manual
++@title the GNU GRUB manual
+ @subtitle The GRand Unified Bootloader, version @value{VERSION}, @value{UPDATED}.
+ @author Gordon Matzigkeit
+ @author Yoshinori K. Okuji
+ @c The following two commands start the copyright page.
+ @page
+ @vskip 0pt plus 1filll
+-Copyright @copyright{} 1999,2000,2001,2002,2004 Free Software Foundation, Inc.
+-
+-Permission is granted to make and distribute verbatim copies of
+-this manual provided the copyright notice and this permission notice
+-are preserved on all copies.
+-Permission is granted to copy and distribute modified versions of this
+-manual under the conditions for verbatim copying, provided that the entire
+-resulting derived work is distributed under the terms of a permission
+-notice identical to this one.
+-
+-Permission is granted to copy and distribute translations of this manual
+-into another language, under the above conditions for modified versions,
+-except that this permission notice may be stated in a translation approved
+-by Free Software Foundation.
++@insertcopying
+ @end titlepage
+ @c Output the table of contents at the beginning.
+@@ -91,12 +73,14 @@
+ @ifnottex
+ @node Top
+-@top GRUB manual
++@top GNU GRUB manual
+ This is the documentation of GNU GRUB, the GRand Unified Bootloader,
+ a flexible and powerful boot loader program for @sc{pc}s.
+ This edition documents version @value{VERSION}.
++
++@insertcopying
+ @end ifnottex
+ @menu
+@@ -124,6 +108,7 @@
+ * Reporting bugs::              Where you should send a bug report
+ * Future::                      Some future plans on GRUB
+ * Internals::                   Hacking GRUB
++* Copying This Manual::         Copying This Manual
+ * Index::
+ @end menu
+@@ -3965,6 +3950,16 @@
+ @include internals.texi
++@node Copying This Manual
++@appendix Copying This Manual
++
++@menu
++* GNU Free Documentation License::  License for copying this manual.
++@end menu
++
++@include fdl.texi
++
++
+ @node Index
+ @unnumbered Index
+diff -Nur grub-0.97/docs/help2man grub-0.97-patched/docs/help2man
+--- grub-0.97/docs/help2man    2003-07-09 13:45:36.000000000 +0200
++++ grub-0.97-patched/docs/help2man    2012-11-11 17:07:12.701728766 +0100
+@@ -455,7 +455,9 @@
+     $include{$sect} .= <<EOT;
+ The full documentation for
+ .B $program
+-is maintained as a Texinfo manual.  If the
++is maintained as a Texinfo manual in the
++.B grub-doc
++package.  If the
+ .B info
+ and
+ .B $program
+diff -Nur grub-0.97/docs/Makefile.am grub-0.97-patched/docs/Makefile.am
+--- grub-0.97/docs/Makefile.am 2003-07-09 13:45:35.000000000 +0200
++++ grub-0.97-patched/docs/Makefile.am 2012-11-11 17:07:12.711729085 +0100
+@@ -1,5 +1,5 @@
+ info_TEXINFOS = grub.texi multiboot.texi
+-grub_TEXINFOS = internals.texi
++grub_TEXINFOS = internals.texi fdl.texi
+ EXAMPLES = boot.S kernel.c multiboot.h
+ multiboot_TEXINFOS = boot.S.texi kernel.c.texi multiboot.h.texi
+ man_MANS = grub.8 mbchk.1 grub-install.8 grub-md5-crypt.8 grub-terminfo.8
+@@ -37,14 +37,14 @@
+       $(SHELL) $(srcdir)/$(SRC2TEXI) $(srcdir) $< $@
+ if MAINTAINER_MODE
+-$(srcdir)/grub.8: ../grub/grub $(srcdir)/$(HELP2MAN)
++$(srcdir)/grub.8: ../grub/grub $(srcdir)/$(HELP2MAN) $(srcdir)/grub.8.additions
+       $(PERL) $(srcdir)/$(HELP2MAN) --name="the grub shell" \
+-              --section=8 --output=$@ $<
++              --section=8 --include=$@.additions --output=$@ $<
+-$(srcdir)/grub-install.8: ../util/grub-install $(srcdir)/$(HELP2MAN)
++$(srcdir)/grub-install.8: ../util/grub-install $(srcdir)/$(HELP2MAN)  $(srcdir)/grub-install.8.additions
+       chmod 755 $<
+       $(PERL) $(srcdir)/$(HELP2MAN) --name="install GRUB on your drive" \
+-              --section=8 --output=$@ $<
++              --section=8 --include=$@.additions --output=$@ $<
+ $(srcdir)/mbchk.1: ../util/mbchk $(srcdir)/$(HELP2MAN)
+       $(PERL) $(srcdir)/$(HELP2MAN) \
+diff -Nur grub-0.97/docs/mbchk.1 grub-0.97-patched/docs/mbchk.1
+--- grub-0.97/docs/mbchk.1     2005-05-08 04:48:56.000000000 +0200
++++ grub-0.97-patched/docs/mbchk.1     2012-11-11 17:07:12.717729276 +0100
+@@ -1,5 +1,5 @@
+ .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.23.
+-.TH MBCHK "1" "May 2005" "mbchk (GNU GRUB 0.97)" FSF
++.TH MBCHK "1" "June 2006" "mbchk (GNU GRUB 0.97)" FSF
+ .SH NAME
+ mbchk \- check the format of a Multiboot kernel
+ .SH SYNOPSIS
+diff -Nur grub-0.97/docs/menu.lst grub-0.97-patched/docs/menu.lst
+--- grub-0.97/docs/menu.lst    2004-05-11 14:11:17.000000000 +0200
++++ grub-0.97-patched/docs/menu.lst    2012-11-11 17:07:07.225553829 +0100
+@@ -11,6 +11,9 @@
+ # Fallback to the second entry.
+ fallback 1
++# Splash image to show behind grub.
++splashimage=(hd0,0)/boot/grub/splash.xpm.gz
++
+ # For booting GNU/Hurd
+ title  GNU/Hurd
+ root   (hd0,0)
+@@ -23,6 +26,11 @@
+ kernel /vmlinuz root=/dev/hdb1
+ #initrd /initrd.img
++# For booting Gentoo with the static rescue shell
++title  Gentoo (rescue shell)
++root (hd1,0)
++kernel /vmlinuz root=/dev/hdb1 init=/bin/bb
++
+ # For booting GNU/kFreeBSD
+ title  GNU/kFreeBSD
+ root   (hd0,2,a)
+diff -Nur grub-0.97/docs/menu.lst.orig grub-0.97-patched/docs/menu.lst.orig
+--- grub-0.97/docs/menu.lst.orig       1970-01-01 01:00:00.000000000 +0100
++++ grub-0.97-patched/docs/menu.lst.orig       2004-05-11 14:11:17.000000000 +0200
+@@ -0,0 +1,82 @@
++#
++# Sample boot menu configuration file
++#
++
++# Boot automatically after 30 secs.
++timeout 30
++
++# By default, boot the first entry.
++default 0
++
++# Fallback to the second entry.
++fallback 1
++
++# For booting GNU/Hurd
++title  GNU/Hurd
++root   (hd0,0)
++kernel /boot/gnumach.gz root=hd0s1
++module /boot/serverboot.gz
++
++# For booting GNU/Linux
++title  GNU/Linux
++root (hd1,0)
++kernel /vmlinuz root=/dev/hdb1
++#initrd /initrd.img
++
++# For booting GNU/kFreeBSD
++title  GNU/kFreeBSD
++root   (hd0,2,a)
++kernel /boot/loader.gz
++
++# For booting GNU/kNetBSD
++title  GNU/kNetBSD
++root   (hd0,2,a)
++kernel --type=netbsd /boot/knetbsd.gz
++
++# For booting Mach (getting kernel from floppy)
++title  Utah Mach4 multiboot
++root   (hd0,2)
++pause  Insert the diskette now\a!!
++kernel (fd0)/boot/kernel root=hd0s3
++module (fd0)/boot/bootstrap
++
++# For booting FreeBSD
++title  FreeBSD
++root   (hd0,2,a)
++kernel /boot/loader
++
++# For booting NetBSD
++title  NetBSD
++root   (hd0,2,a)
++kernel --type=netbsd /netbsd
++
++# For booting OpenBSD
++title  OpenBSD
++root   (hd0,2,a)
++kernel --type=netbsd /bsd
++
++# For booting OS/2
++title OS/2
++root  (hd0,1)
++makeactive
++# chainload OS/2 bootloader from the first sector
++chainloader +1
++# This is similar to "chainload", but loads a specific file
++#chainloader /boot/chain.os2
++
++# For booting Windows NT or Windows95
++title Windows NT / Windows 95 boot menu
++rootnoverify (hd0,0)
++makeactive
++chainloader  +1
++# For loading DOS if Windows NT is installed
++# chainload /bootsect.dos
++
++# For installing GRUB into the hard disk
++title Install GRUB into the hard disk
++root    (hd0,0)
++setup   (hd0)
++
++# Change the colors.
++title Change the colors
++color light-green/brown blink-red/blue
+diff -Nur grub-0.97/docs/multiboot.texi grub-0.97-patched/docs/multiboot.texi
+--- grub-0.97/docs/multiboot.texi      2003-07-09 13:45:36.000000000 +0200
++++ grub-0.97-patched/docs/multiboot.texi      2012-11-11 17:07:12.718729309 +0100
+@@ -1,32 +1,28 @@
+ \input texinfo @c -*-texinfo-*-
+-@c -*-texinfo-*-
+ @c %**start of header
+ @setfilename multiboot.info
+-@settitle Multiboot Specification
+-@c %**end of header
+-
++@set VERSION 0.6.95
++@settitle Multiboot Specification version @value{VERSION}
+ @c Unify all our little indices for now.
+ @syncodeindex fn cp
+ @syncodeindex vr cp
+ @syncodeindex ky cp
+ @syncodeindex pg cp
+ @syncodeindex tp cp
++@c %**end of header
+ @footnotestyle separate
+ @paragraphindent 3
+ @finalout
++@copying
++Copyright @copyright{} 1995,96 Bryan Ford <baford@@cs.utah.edu>
+-@dircategory Kernel
+-@direntry
+-* Multiboot Specification: (multiboot).               Multiboot Specification.
+-@end direntry
++Copyright @copyright{} 1995,96 Erich Stefan Boleyn <erich@@uruk.org>
+-@ifinfo
+-Copyright @copyright{} 1995, 96 Bryan Ford <baford@@cs.utah.edu>
+-Copyright @copyright{} 1995, 96 Erich Stefan Boleyn <erich@@uruk.org>
+-Copyright @copyright{} 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
++Copyright @copyright{} 1999,2000,2001,2002,2005,2006 Free Software Foundation, Inc.
++@quotation
+ Permission is granted to make and distribute verbatim copies of
+ this manual provided the copyright notice and this permission notice
+ are preserved on all copies.
+@@ -36,7 +32,6 @@
+ results, provided the printed document carries a copying permission
+ notice identical to this one except for the removal of this paragraph
+ (this paragraph not being relevant to the printed manual).
+-
+ @end ignore
+ Permission is granted to copy and distribute modified versions of this
+@@ -45,31 +40,23 @@
+ permission notice identical to this one.
+ Permission is granted to copy and distribute translations of this manual
+-into another language, under the above conditions for modified versions.
+-@end ifinfo
++into another language, under the above conditions for modified
++versions.
++@end quotation
++@end copying
++
++@dircategory Kernel
++@direntry
++* Multiboot Specification: (multiboot).               Multiboot Specification.
++@end direntry
+ @titlepage
+ @sp 10
+-@title The Multiboot Specification
++@title The Multiboot Specification version @value{VERSION}
+ @author Yoshinori K. Okuji, Bryan Ford, Erich Stefan Boleyn, Kunihiro Ishiguro
+ @page
+-
+ @vskip 0pt plus 1filll
+-Copyright @copyright{} 1995, 96 Bryan Ford <baford@@cs.utah.edu>
+-Copyright @copyright{} 1995, 96 Erich Stefan Boleyn <erich@@uruk.org>
+-Copyright @copyright{} 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+-
+-Permission is granted to make and distribute verbatim copies of
+-this manual provided the copyright notice and this permission notice
+-are preserved on all copies.
+-
+-Permission is granted to copy and distribute modified versions of this
+-manual under the conditions for verbatim copying, provided also that
+-the entire resulting derived work is distributed under the terms of a
+-permission notice identical to this one.
+-
+-Permission is granted to copy and distribute translations of this manual
+-into another language, under the above conditions for modified versions.
++@insertcopying
+ @end titlepage
+ @finalout
+@@ -80,7 +67,9 @@
+ @top Multiboot Specification
+ This file documents Multiboot Specification, the proposal for the boot
+-sequence standard. This edition documents version 0.6.93.
++sequence standard. This edition documents version @value{VERSION}.
++
++@insertcopying
+ @end ifnottex
+ @menu
+@@ -426,7 +415,7 @@
+ kernel.
+ If bit 16 in the @samp{flags} word is set, then the fields at offsets
+-8-24 in the Multiboot header are valid, and the boot loader should use
++12-28 in the Multiboot header are valid, and the boot loader should use
+ them instead of the fields in the actual executable header to calculate
+ where to load the OS image. This information does not need to be
+ provided if the kernel image is in @sc{elf} format, but it @emph{must}
+@@ -677,7 +666,7 @@
+ @example
+ @group
+ +-------+-------+-------+-------+
+-| drive | part1 | part2 | part3 |
++| part3 | part2 | part1 | drive |
+ +-------+-------+-------+-------+
+ @end group
+ @end example
+@@ -1197,6 +1186,17 @@
+ @item
+ The maintainer changes to the GNU GRUB maintainer team
+ @email{bug-grub@@gnu.org}, from Bryan Ford and Erich Stefan Boleyn.
++
++@item
++The byte order of the @samp{boot_device} in Multiboot information is
++reversed. This was a mistake.
++
++@item
++The offset of the address fields were wrong.
++
++@item
++The format is adapted to a newer Texinfo, and the version number is
++specified more explicitly in the title.
+ @end itemize
+ @item 0.6
+diff -Nur grub-0.97/grub/asmstub.c grub-0.97-patched/grub/asmstub.c
+--- grub-0.97/grub/asmstub.c   2005-02-16 21:45:14.000000000 +0100
++++ grub-0.97-patched/grub/asmstub.c   2012-11-11 17:07:12.719729342 +0100
+@@ -42,6 +42,7 @@
+ #include <sys/time.h>
+ #include <termios.h>
+ #include <signal.h>
++#include <sys/mman.h>
+ #ifdef __linux__
+ # include <sys/ioctl.h>               /* ioctl */
+@@ -55,6 +56,10 @@
+ # endif /* ! BLKFLSBUF */
+ #endif /* __linux__ */
++#if defined(__FreeBSD_kernel__) || defined(__FreeBSD__)
++# include <sys/sysctl.h>
++#endif
++
+ /* We want to prevent any circularararity in our stubs, as well as
+    libc name clashes. */
+ #define WITHOUT_LIBC_STUBS 1
+@@ -79,7 +84,7 @@
+ struct apm_info apm_bios_info;
+ /* Emulation requirements. */
+-char *grub_scratch_mem = 0;
++void *grub_scratch_mem = 0;
+ struct geometry *disks = 0;
+@@ -103,14 +108,62 @@
+ static unsigned int serial_speed;
+ #endif /* SIMULATE_SLOWNESS_OF_SERIAL */
++/* This allocates page-aligned storage of the specified size, which must be
++ * a multiple of the page size as determined by calling sysconf(_SC_PAGESIZE)
++ */
++#ifdef __linux__
++static void *
++grub_mmap_alloc(size_t len)
++{
++  int mmap_flags = MAP_ANONYMOUS|MAP_PRIVATE;
++
++#ifdef MAP_32BIT
++  mmap_flags |= MAP_32BIT;
++#endif
++  /* Mark the simulated stack executable, as GCC uses stack trampolines
++   * to implement nested functions. */
++  return mmap(NULL, len, PROT_READ|PROT_WRITE|PROT_EXEC, mmap_flags, -1, 0);
++}
++#else /* !defined(__linux__) */
++static void *
++grub_mmap_alloc(size_t len)
++{
++  int fd = 0, offset = 0, ret = 0;
++  void *pa = MAP_FAILED; 
++  char template[] = "/tmp/grub_mmap_alloc_XXXXXX";
++  int e;
++
++  fd = mkstemp(template);
++  if (fd < 0)
++    return pa;
++
++  unlink(template);
++
++  ret = ftruncate(fd, len);
++  if (ret < 0)
++    return pa;
++
++  /* Mark the simulated stack executable, as GCC uses stack trampolines
++   * to implement nested functions. */
++  pa = mmap(NULL, len, PROT_READ|PROT_WRITE|PROT_EXEC,
++                  MAP_PRIVATE, fd, offset);
++
++  e = errno;
++  close(fd);
++  errno = e;
++  return pa;
++}
++#endif /* defined(__linux__) */
++
+ /* The main entry point into this mess. */
+ int
+ grub_stage2 (void)
+ {
+   /* These need to be static, because they survive our stack transitions. */
+   static int status = 0;
+-  static char *realstack;
+-  char *scratch, *simstack;
++  static void *realstack;
++  void *simstack_alloc_base, *simstack;
++  size_t simstack_size, page_size;
+   int i;
+   auto void doit (void);
+@@ -142,9 +195,35 @@
+     }
+   assert (grub_scratch_mem == 0);
+-  scratch = malloc (0x100000 + EXTENDED_MEMSIZE + 15);
+-  assert (scratch);
+-  grub_scratch_mem = (char *) ((((int) scratch) >> 4) << 4);
++
++  /* Allocate enough pages for 0x100000 + EXTENDED_SIZE + 15, and
++   * make sure the memory is aligned to a multiple of the system's
++   * page size */
++  page_size = sysconf (_SC_PAGESIZE);
++  simstack_size = ( 0x100000 + EXTENDED_MEMSIZE + 15);
++  if (simstack_size % page_size)
++    {
++      /* If we're not on a page_size boundary, round up to the next one */
++      simstack_size &= ~(page_size-1);
++      simstack_size += page_size;
++    }
++
++  /* Add one for a PROT_NONE boundary page at each end. */
++  simstack_size += 2 * page_size;
++
++  simstack_alloc_base = grub_mmap_alloc(simstack_size);
++  assert (simstack_alloc_base != MAP_FAILED);
++
++  /* mark pages above and below our simstack area as innaccessable.
++   * If the implementation we're using doesn't support that, then the
++   * new protection modes are undefined.  It's safe to just ignore
++   * them, though.  It'd be nice if we knew that we'd get a SEGV for
++   * touching the area, but that's all.  it'd be nice to have. */
++  mprotect (simstack_alloc_base, page_size, PROT_NONE);
++  mprotect ((void *)((unsigned long)simstack_alloc_base +
++                         simstack_size - page_size),  page_size, PROT_NONE);
++
++  grub_scratch_mem = (void *)((unsigned long)simstack_alloc_base + page_size);
+   /* FIXME: simulate the memory holes using mprot, if available. */
+@@ -217,7 +296,7 @@
+   device_map = 0;
+   free (disks);
+   disks = 0;
+-  free (scratch);
++  munmap(simstack_alloc_base, simstack_size);
+   grub_scratch_mem = 0;
+   if (serial_device)
+@@ -777,7 +856,39 @@
+       /* Open read/write, or read-only if that failed. */
+       if (! read_only)
+-      disks[drive].flags = open (devname, O_RDWR);
++      {
++/* By default, kernel of FreeBSD does not allow overwriting MBR */
++#if defined(__FreeBSD_kernel__) || defined(__FreeBSD__)
++#define GEOM_SYSCTL   "kern.geom.debugflags"
++        int old_flags, flags;
++        size_t sizeof_int = sizeof (int);
++
++        if (sysctlbyname (GEOM_SYSCTL, &old_flags, &sizeof_int, NULL, 0) != 0)
++          grub_printf ("failed to get " GEOM_SYSCTL "sysctl: %s\n", strerror (errno));
++
++        if ((old_flags & 0x10) == 0)
++          {
++            /* "allow foot shooting", see geom(4) */
++            flags = old_flags | 0x10;
++
++            if (sysctlbyname (GEOM_SYSCTL, NULL, NULL, &flags, sizeof (int)) != 0)
++              {
++                flags = old_flags;
++                grub_printf ("failed to set " GEOM_SYSCTL "sysctl: %s\n", strerror (errno));
++              }
++          }
++        else
++          flags = old_flags;
++#endif
++        disks[drive].flags = open (devname, O_RDWR);
++#if defined(__FreeBSD_kernel__) || defined(__FreeBSD__)
++        if (flags != old_flags)
++          {
++            if (sysctlbyname (GEOM_SYSCTL, NULL, NULL, &old_flags, sizeof (int)) != 0)
++              grub_printf ("failed to set " GEOM_SYSCTL "sysctl: %s\n", strerror (errno));
++          }
++#endif
++      }
+       if (disks[drive].flags == -1)
+       {
+@@ -926,7 +1037,7 @@
+ int
+ biosdisk (int subfunc, int drive, struct geometry *geometry,
+-        int sector, int nsec, int segment)
++        unsigned int sector, int nsec, int segment)
+ {
+   char *buf;
+   int fd = geometry->flags;
+diff -Nur grub-0.97/grub/asmstub.c.orig grub-0.97-patched/grub/asmstub.c.orig
+--- grub-0.97/grub/asmstub.c.orig      1970-01-01 01:00:00.000000000 +0100
++++ grub-0.97-patched/grub/asmstub.c.orig      2005-02-16 21:45:14.000000000 +0100
+@@ -0,0 +1,1275 @@
++/* asmstub.c - a version of shared_src/asm.S that works under Unix */
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 1999,2000,2001,2002,2004  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
++ *  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, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++/* Try to use glibc's transparant LFS support. */
++#define _LARGEFILE_SOURCE     1
++/* lseek becomes synonymous with lseek64.  */
++#define _FILE_OFFSET_BITS     64
++
++/* Simulator entry point. */
++int grub_stage2 (void);
++
++#include <stdlib.h>
++#include <string.h>
++#include <ctype.h>
++#include <assert.h>
++#include <stdio.h>
++#include <sys/types.h>
++#include <sys/stat.h>
++#include <fcntl.h>
++#include <time.h>
++#include <errno.h>
++#include <string.h>
++#include <unistd.h>
++#include <setjmp.h>
++#include <sys/time.h>
++#include <termios.h>
++#include <signal.h>
++
++#ifdef __linux__
++# include <sys/ioctl.h>               /* ioctl */
++# if !defined(__GLIBC__) || \
++      ((__GLIBC__ < 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ < 1)))
++/* Maybe libc doesn't have large file support.  */
++#  include <linux/unistd.h>   /* _llseek */
++# endif /* (GLIBC < 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR < 1)) */
++# ifndef BLKFLSBUF
++#  define BLKFLSBUF   _IO (0x12,97)   /* flush buffer cache */
++# endif /* ! BLKFLSBUF */
++#endif /* __linux__ */
++
++/* We want to prevent any circularararity in our stubs, as well as
++   libc name clashes. */
++#define WITHOUT_LIBC_STUBS 1
++#include <shared.h>
++#include <device.h>
++#include <serial.h>
++#include <term.h>
++
++/* Simulated memory sizes. */
++#define EXTENDED_MEMSIZE (3 * 1024 * 1024)    /* 3MB */
++#define CONVENTIONAL_MEMSIZE (640 * 1024)     /* 640kB */
++
++unsigned long install_partition = 0x20000;
++unsigned long boot_drive = 0;
++int saved_entryno = 0;
++char version_string[] = VERSION;
++char config_file[128] = "/boot/grub/menu.lst"; /* FIXME: arbitrary */
++unsigned long linux_text_len = 0;
++char *linux_data_tmp_addr = 0;
++char *linux_data_real_addr = 0;
++unsigned short io_map[IO_MAP_SIZE];
++struct apm_info apm_bios_info;
++
++/* Emulation requirements. */
++char *grub_scratch_mem = 0;
++
++struct geometry *disks = 0;
++
++/* The map between BIOS drives and UNIX device file names.  */
++char **device_map = 0;
++
++/* The jump buffer for exiting correctly.  */
++static jmp_buf env_for_exit;
++
++/* The current color for console.  */
++int console_current_color = A_NORMAL;
++
++/* The file descriptor for a serial device.  */
++static int serial_fd = -1;
++
++/* The file name of a serial device.  */
++static char *serial_device = 0;
++
++#ifdef SIMULATE_SLOWNESS_OF_SERIAL
++/* The speed of a serial device.  */
++static unsigned int serial_speed;
++#endif /* SIMULATE_SLOWNESS_OF_SERIAL */
++
++/* The main entry point into this mess. */
++int
++grub_stage2 (void)
++{
++  /* These need to be static, because they survive our stack transitions. */
++  static int status = 0;
++  static char *realstack;
++  char *scratch, *simstack;
++  int i;
++
++  auto void doit (void);
++  
++  /* We need a nested function so that we get a clean stack frame,
++     regardless of how the code is optimized. */
++  void doit (void)
++    {
++      /* Make sure our stack lives in the simulated memory area. */
++      asm volatile ("movl %%esp, %0\n\tmovl %1, %%esp\n"
++                  : "=&r" (realstack) : "r" (simstack));
++      
++      /* Do a setjmp here for the stop command.  */
++      if (! setjmp (env_for_exit))
++      {
++        /* Actually enter the generic stage2 code.  */
++        status = 0;
++        init_bios_info ();
++      }
++      else
++      {
++        /* If ERRNUM is non-zero, then set STATUS to non-zero.  */
++        if (errnum)
++          status = 1;
++      }
++      
++      /* Replace our stack before we use any local variables. */
++      asm volatile ("movl %0, %%esp\n" : : "r" (realstack));
++    }
++
++  assert (grub_scratch_mem == 0);
++  scratch = malloc (0x100000 + EXTENDED_MEMSIZE + 15);
++  assert (scratch);
++  grub_scratch_mem = (char *) ((((int) scratch) >> 4) << 4);
++
++  /* FIXME: simulate the memory holes using mprot, if available. */
++
++  assert (disks == 0);
++  disks = malloc (NUM_DISKS * sizeof (*disks));
++  assert (disks);
++  /* Initialize DISKS.  */
++  for (i = 0; i < NUM_DISKS; i++)
++    disks[i].flags = -1;
++
++  if (! init_device_map (&device_map, device_map_file, floppy_disks))
++    return 1;
++  
++  /* Check some invariants. */
++  assert ((SCRATCHSEG << 4) == SCRATCHADDR);
++  assert ((BUFFERSEG << 4) == BUFFERADDR);
++  assert (BUFFERADDR + BUFFERLEN == SCRATCHADDR);
++  assert (FSYS_BUF % 16 == 0);
++  assert (FSYS_BUF + FSYS_BUFLEN == BUFFERADDR);
++
++#ifdef HAVE_LIBCURSES
++  /* Get into char-at-a-time mode. */
++  if (use_curses)
++    {
++      initscr ();
++      cbreak ();
++      noecho ();
++      nonl ();
++      scrollok (stdscr, TRUE);
++      keypad (stdscr, TRUE);
++      wtimeout (stdscr, 100);
++      signal (SIGWINCH, SIG_IGN);
++    }
++#endif
++
++  /* Make sure that actual writing is done.  */
++  sync ();
++
++  /* Set our stack, and go for it. */
++  simstack = (char *) PROTSTACKINIT;
++  doit ();
++
++  /* I don't know if this is necessary really.  */
++  sync ();
++
++#ifdef HAVE_LIBCURSES
++  if (use_curses)
++    endwin ();
++#endif
++
++  /* Close off the file descriptors we used. */
++  for (i = 0; i < NUM_DISKS; i ++)
++    if (disks[i].flags != -1)
++      {
++#ifdef __linux__
++      /* In Linux, invalidate the buffer cache. In other OSes, reboot
++         is one of the solutions...  */
++      ioctl (disks[i].flags, BLKFLSBUF, 0);
++#else
++# warning "In your operating system, the buffer cache will not be flushed."
++#endif
++      close (disks[i].flags);
++      }
++
++  if (serial_fd >= 0)
++    close (serial_fd);
++  
++  /* Release memory. */
++  restore_device_map (device_map);
++  device_map = 0;
++  free (disks);
++  disks = 0;
++  free (scratch);
++  grub_scratch_mem = 0;
++
++  if (serial_device)
++    free (serial_device);
++  serial_device = 0;
++  
++  /* Ahh... at last we're ready to return to caller. */
++  return status;
++}
++
++/* Assign DRIVE to a device name DEVICE.  */
++void
++assign_device_name (int drive, const char *device)
++{
++  /* If DRIVE is already assigned, free it.  */
++  if (device_map[drive])
++    free (device_map[drive]);
++
++  /* If the old one is already opened, close it.  */
++  if (disks[drive].flags != -1)
++    {
++      close (disks[drive].flags);
++      disks[drive].flags = -1;
++    }
++
++  /* Assign DRIVE to DEVICE.  */
++  if (! device)
++    device_map[drive] = 0;
++  else
++    device_map[drive] = strdup (device);
++}
++
++void
++stop (void)
++{
++#ifdef HAVE_LIBCURSES
++  if (use_curses)
++    endwin ();
++#endif
++
++  /* Jump to doit.  */
++  longjmp (env_for_exit, 1);
++}
++
++void
++grub_reboot (void)
++{
++  stop ();
++}
++
++void
++grub_halt (int no_apm)
++{
++  stop ();
++}
++
++/* calls for direct boot-loader chaining */
++void
++chain_stage1 (unsigned long segment, unsigned long offset,
++            unsigned long part_table_addr)
++{
++  stop ();
++}
++
++
++void
++chain_stage2 (unsigned long segment, unsigned long offset, int second_sector)
++{
++  stop ();
++}
++
++
++/* do some funky stuff, then boot linux */
++void
++linux_boot (void)
++{
++  stop ();
++}
++
++
++/* For bzImage kernels. */
++void
++big_linux_boot (void)
++{
++  stop ();
++}
++
++
++/* booting a multiboot executable */
++void
++multi_boot (int start, int mb_info)
++{
++  stop ();
++}
++
++/* sets it to linear or wired A20 operation */
++void
++gateA20 (int linear)
++{
++  /* Nothing to do in the simulator. */
++}
++
++/* Set up the int15 handler.  */
++void
++set_int15_handler (void)
++{
++  /* Nothing to do in the simulator.  */
++}
++
++/* Restore the original int15 handler.  */
++void
++unset_int15_handler (void)
++{
++  /* Nothing to do in the simulator.  */
++}
++
++/* The key map.  */
++unsigned short bios_key_map[KEY_MAP_SIZE + 1];
++unsigned short ascii_key_map[KEY_MAP_SIZE + 1];
++
++/* Copy MAP to the drive map and set up the int13 handler.  */
++void
++set_int13_handler (unsigned short *map)
++{
++  /* Nothing to do in the simulator.  */
++}
++
++int
++get_code_end (void)
++{
++  /* Just return a little area for simulation. */
++  return BOOTSEC_LOCATION + (60 * 1024);
++}
++
++
++/* memory probe routines */
++int
++get_memsize (int type)
++{
++  if (! type)
++    return CONVENTIONAL_MEMSIZE >> 10;
++  else
++    return EXTENDED_MEMSIZE >> 10;
++}
++
++
++/* get_eisamemsize() :  return packed EISA memory map, lower 16 bits is
++ *            memory between 1M and 16M in 1K parts, upper 16 bits is
++ *            memory above 16M in 64K parts.  If error, return -1.
++ */
++int
++get_eisamemsize (void)
++{
++  return (EXTENDED_MEMSIZE >> 10);
++}
++
++
++#define MMAR_DESC_TYPE_AVAILABLE 1 /* available to OS */
++#define MMAR_DESC_TYPE_RESERVED 2 /* not available */
++#define MMAR_DESC_TYPE_ACPI_RECLAIM 3 /* usable by OS after reading ACPI */
++#define MMAR_DESC_TYPE_ACPI_NVS 4 /* required to save between NVS sessions */
++
++#define MMAR_DESC_LENGTH      20
++
++/* Fetch the next entry in the memory map and return the continuation
++   value.  DESC is a pointer to the descriptor buffer, and CONT is the
++   previous continuation value (0 to get the first entry in the
++   map).  */
++int
++get_mmap_entry (struct mmar_desc *desc, int cont)
++{
++  /* Record the memory map statically.  */
++  static struct mmar_desc desc_table[] =
++  {
++    /* The conventional memory.  */
++    {
++      MMAR_DESC_LENGTH,
++      0,
++      CONVENTIONAL_MEMSIZE,
++      MMAR_DESC_TYPE_AVAILABLE
++    },
++    /* BIOS RAM and ROM (such as video memory).  */
++    {
++      MMAR_DESC_LENGTH,
++      CONVENTIONAL_MEMSIZE,
++      0x100000 - CONVENTIONAL_MEMSIZE,
++      MMAR_DESC_TYPE_RESERVED
++    },
++    /* The extended memory.  */
++    {
++      MMAR_DESC_LENGTH,
++      0x100000,
++      EXTENDED_MEMSIZE,
++      MMAR_DESC_TYPE_AVAILABLE
++    }
++  };
++  
++  int num = sizeof (desc_table) / sizeof (*desc_table);
++
++  if (cont < 0 || cont >= num)
++    {
++      /* Should not happen.  */
++      desc->desc_len = 0;
++    }
++  else
++    {
++      /* Copy the entry.  */
++      *desc = desc_table[cont++];
++
++      /* If the next entry exists, return the index.  */
++      if (cont < num)
++      return cont;
++    }
++  
++  return 0;
++}
++
++/* Track the int13 handler.  */
++void
++track_int13 (int drive)
++{
++  /* Nothing to do in the simulator.  */
++}
++
++/* Get the ROM configuration table.  */
++unsigned long
++get_rom_config_table (void)
++{
++  return 0;
++}
++
++/* Get APM BIOS information.  */
++void
++get_apm_info (void)
++{
++  /* Nothing to do in the simulator.  */
++}
++
++/* Get VBE controller information.  */
++int
++get_vbe_controller_info (struct vbe_controller *controller)
++{
++  /* Always fails.  */
++  return 0;
++}
++
++/* Get VBE mode information.  */
++int
++get_vbe_mode_info (int mode_number, struct vbe_mode *mode)
++{
++  /* Always fails.  */
++  return 0;
++}
++
++/* Set VBE mode.  */
++int
++set_vbe_mode (int mode_number)
++{
++  /* Always fails.  */
++  return 0;
++}
++
++/* low-level timing info */
++int
++getrtsecs (void)
++{
++  /* FIXME: exact value is not important, so just return time_t for now. */
++  return time (0);
++}
++
++int
++currticks (void)
++{
++  struct timeval tv;
++  long csecs;
++  int ticks_per_csec, ticks_per_usec;
++
++  /* Note: 18.2 ticks/sec.  */
++
++  /* Get current time.  */
++  gettimeofday (&tv, 0);
++
++  /* Compute centiseconds.  */
++  csecs = tv.tv_sec / 10;
++
++  /* Ticks per centisecond.  */
++  ticks_per_csec = csecs * 182;
++
++  /* Ticks per microsecond.  */
++  ticks_per_usec = (((tv.tv_sec - csecs * 10) * 1000000 + tv.tv_usec)
++                  * 182 / 10000000);
++
++  /* Sum them.  */
++  return ticks_per_csec + ticks_per_usec;
++}
++
++/* displays an ASCII character.  IBM displays will translate some
++   characters to special graphical ones */
++void
++console_putchar (int c)
++{
++  /* Curses doesn't have VGA fonts.  */
++  switch (c)
++    {
++    case DISP_UL:
++      c = ACS_ULCORNER;
++      break;
++    case DISP_UR:
++      c = ACS_URCORNER;
++      break;
++    case DISP_LL:
++      c = ACS_LLCORNER;
++      break;
++    case DISP_LR:
++      c = ACS_LRCORNER;
++      break;
++    case DISP_HORIZ:
++      c = ACS_HLINE;
++      break;
++    case DISP_VERT:
++      c = ACS_VLINE;
++      break;
++    case DISP_LEFT:
++      c = ACS_LARROW;
++      break;
++    case DISP_RIGHT:
++      c = ACS_RARROW;
++      break;
++    case DISP_UP:
++      c = ACS_UARROW;
++      break;
++    case DISP_DOWN:
++      c = ACS_DARROW;
++      break;
++    default:
++      break;
++    }
++
++#ifdef HAVE_LIBCURSES
++  if (use_curses)
++    {
++      /* In ncurses, a newline is treated badly, so we emulate it in our
++       own way.  */
++      if (c == '\n')
++      {
++        int x, y;
++
++        getyx (stdscr, y, x);
++        if (y + 1 == LINES)
++          scroll (stdscr);
++        else
++          move (y + 1, x);
++      }
++      else if (isprint (c))
++      {
++        int x, y;
++
++        getyx (stdscr, y, x);
++        if (x + 1 == COLS)
++          {
++            console_putchar ('\r');
++            console_putchar ('\n');
++          }
++        addch (c | console_current_color);
++      }
++      else
++      {
++        addch (c);
++      }
++      
++#ifdef REFRESH_IMMEDIATELY
++      refresh ();
++#endif
++    }
++  else
++#endif
++    {
++      /* CR is not used in Unix.  */
++      if (c != '\r')
++      putchar (c);
++    }
++}
++
++/* The store for ungetch simulation. This is necessary, because
++   ncurses-1.9.9g is still used in the world and its ungetch is
++   completely broken.  */
++#ifdef HAVE_LIBCURSES
++static int save_char = ERR;
++#endif
++
++static int
++console_translate_key (int c)
++{
++  switch (c)
++    {
++    case KEY_LEFT:
++      return 2;
++    case KEY_RIGHT:
++      return 6;
++    case KEY_UP:
++      return 16;
++    case KEY_DOWN:
++      return 14;
++    case KEY_DC:
++      return 4;
++    case KEY_BACKSPACE:
++      return 8;
++    case KEY_HOME:
++      return 1;
++    case KEY_END:
++      return 5;
++    case KEY_PPAGE:
++      return 7;
++    case KEY_NPAGE:
++      return 3;
++    default:
++      break;
++    }
++
++  return c;
++}
++
++/* like 'getkey', but doesn't wait, returns -1 if nothing available */
++int
++console_checkkey (void)
++{
++#ifdef HAVE_LIBCURSES
++  if (use_curses)
++    {
++      int c;
++
++      /* Check for SAVE_CHAR. This should not be true, because this
++       means checkkey is called twice continuously.  */
++      if (save_char != ERR)
++      return save_char;
++
++      c = getch ();
++      /* If C is not ERR, then put it back in the input queue.  */
++      if (c != ERR)
++      save_char = c;
++      return console_translate_key (c);
++    }
++#endif
++
++  /* Just pretend they hit the space bar, then read the real key when
++     they call getkey. */
++  return ' ';
++}
++
++/* returns packed BIOS/ASCII code */
++int
++console_getkey (void)
++{
++  int c;
++
++#ifdef HAVE_LIBCURSES
++  if (use_curses)
++    {
++      /* If checkkey has already got a character, then return it.  */
++      if (save_char != ERR)
++      {
++        c = save_char;
++        save_char = ERR;
++        return console_translate_key (c);
++      }
++
++      wtimeout (stdscr, -1);
++      c = getch ();
++      wtimeout (stdscr, 100);
++    }
++  else
++#endif
++    c = getchar ();
++
++  /* Quit if we get EOF. */
++  if (c == -1)
++    stop ();
++  
++  return console_translate_key (c);
++}
++
++/* returns packed values, LSB+1 is x, LSB is y */
++int
++console_getxy (void)
++{
++  int y, x;
++#ifdef HAVE_LIBCURSES
++  if (use_curses)
++    getyx (stdscr, y, x);
++  else
++#endif
++  y = x = 0;
++  return (x << 8) | (y & 0xff);
++}
++
++void
++console_gotoxy (int x, int y)
++{
++#ifdef HAVE_LIBCURSES
++  if (use_curses)
++    move (y, x);
++#endif
++}
++
++/* low-level character I/O */
++void
++console_cls (void)
++{
++#ifdef HAVE_LIBCURSES
++  if (use_curses)
++    clear ();
++#endif
++}
++
++void
++console_setcolorstate (color_state state)
++{
++  console_current_color = 
++    (state == COLOR_STATE_HIGHLIGHT) ? A_REVERSE : A_NORMAL;
++}
++
++void
++console_setcolor (int normal_color, int highlight_color)
++{
++  /* Nothing to do.  */
++}
++
++int
++console_setcursor (int on)
++{
++  return 1;
++}
++
++/* Low-level disk I/O.  Our stubbed version just returns a file
++   descriptor, not the actual geometry. */
++int
++get_diskinfo (int drive, struct geometry *geometry)
++{
++  /* FIXME: this function is truly horrid.  We try opening the device,
++     then severely abuse the GEOMETRY->flags field to pass a file
++     descriptor to biosdisk.  Thank God nobody's looking at this comment,
++     or my reputation would be ruined. --Gord */
++
++  /* See if we have a cached device. */
++  if (disks[drive].flags == -1)
++    {
++      /* The unpartitioned device name: /dev/XdX */
++      char *devname = device_map[drive];
++      char buf[512];
++
++      if (! devname)
++      return -1;
++
++      if (verbose)
++      grub_printf ("Attempt to open drive 0x%x (%s)\n",
++                   drive, devname);
++
++      /* Open read/write, or read-only if that failed. */
++      if (! read_only)
++      disks[drive].flags = open (devname, O_RDWR);
++
++      if (disks[drive].flags == -1)
++      {
++        if (read_only || errno == EACCES || errno == EROFS || errno == EPERM)
++          {
++            disks[drive].flags = open (devname, O_RDONLY);
++            if (disks[drive].flags == -1)
++              {
++                assign_device_name (drive, 0);
++                return -1;
++              }
++          }
++        else
++          {
++            assign_device_name (drive, 0);
++            return -1;
++          }
++      }
++
++      /* Attempt to read the first sector.  */
++      if (read (disks[drive].flags, buf, 512) != 512)
++      {
++        close (disks[drive].flags);
++        disks[drive].flags = -1;
++        assign_device_name (drive, 0);
++        return -1;
++      }
++
++      if (disks[drive].flags != -1)
++      get_drive_geometry (&disks[drive], device_map, drive);
++    }
++
++  if (disks[drive].flags == -1)
++    return -1;
++
++#ifdef __linux__
++  /* In Linux, invalidate the buffer cache, so that left overs
++     from other program in the cache are flushed and seen by us */
++  ioctl (disks[drive].flags, BLKFLSBUF, 0);
++#endif
++
++  *geometry = disks[drive];
++  return 0;
++}
++
++/* Read LEN bytes from FD in BUF. Return less than or equal to zero if an
++   error occurs, otherwise return LEN.  */
++static int
++nread (int fd, char *buf, size_t len)
++{
++  int size = len;
++
++  while (len)
++    {
++      int ret = read (fd, buf, len);
++
++      if (ret <= 0)
++      {
++        if (errno == EINTR)
++          continue;
++        else
++          return ret;
++      }
++
++      len -= ret;
++      buf += ret;
++    }
++
++  return size;
++}
++
++/* Write LEN bytes from BUF to FD. Return less than or equal to zero if an
++   error occurs, otherwise return LEN.  */
++static int
++nwrite (int fd, char *buf, size_t len)
++{
++  int size = len;
++
++  while (len)
++    {
++      int ret = write (fd, buf, len);
++
++      if (ret <= 0)
++      {
++        if (errno == EINTR)
++          continue;
++        else
++          return ret;
++      }
++
++      len -= ret;
++      buf += ret;
++    }
++
++  return size;
++}
++
++/* Dump BUF in the format of hexadecimal numbers.  */
++static void
++hex_dump (void *buf, size_t size)
++{
++  /* FIXME: How to determine which length is readable?  */
++#define MAX_COLUMN    70
++
++  /* use unsigned char for numerical computations */
++  unsigned char *ptr = buf;
++  /* count the width of the line */
++  int column = 0;
++  /* how many bytes written */
++  int count = 0;
++
++  while (size > 0)
++    {
++      /* high 4 bits */
++      int hi = *ptr >> 4;
++      /* low 4 bits */
++      int low = *ptr & 0xf;
++
++      /* grub_printf does not handle prefix number, such as %2x, so
++       format the number by hand...  */
++      grub_printf ("%x%x", hi, low);
++      column += 2;
++      count++;
++      ptr++;
++      size--;
++
++      /* Insert space or newline with the interval 4 bytes.  */
++      if (size != 0 && (count % 4) == 0)
++      {
++        if (column < MAX_COLUMN)
++          {
++            grub_printf (" ");
++            column++;
++          }
++        else
++          {
++            grub_printf ("\n");
++            column = 0;
++          }
++      }
++    }
++
++  /* Add a newline at the end for readability.  */
++  grub_printf ("\n");
++}
++
++int
++biosdisk (int subfunc, int drive, struct geometry *geometry,
++        int sector, int nsec, int segment)
++{
++  char *buf;
++  int fd = geometry->flags;
++
++  /* Get the file pointer from the geometry, and make sure it matches. */
++  if (fd == -1 || fd != disks[drive].flags)
++    return BIOSDISK_ERROR_GEOMETRY;
++
++  /* Seek to the specified location. */
++#if defined(__linux__) && (!defined(__GLIBC__) || \
++      ((__GLIBC__ < 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ < 1))))
++  /* Maybe libc doesn't have large file support.  */
++  {
++    loff_t offset, result;
++    static int _llseek (uint filedes, ulong hi, ulong lo,
++                      loff_t *res, uint wh);
++    _syscall5 (int, _llseek, uint, filedes, ulong, hi, ulong, lo,
++             loff_t *, res, uint, wh);
++
++    offset = (loff_t) sector * (loff_t) SECTOR_SIZE;
++    if (_llseek (fd, offset >> 32, offset & 0xffffffff, &result, SEEK_SET))
++      return -1;
++  }
++#else
++  {
++    off_t offset = (off_t) sector * (off_t) SECTOR_SIZE;
++
++    if (lseek (fd, offset, SEEK_SET) != offset)
++      return -1;
++  }
++#endif
++
++  buf = (char *) (segment << 4);
++
++  switch (subfunc)
++    {
++    case BIOSDISK_READ:
++#ifdef __linux__
++      if (sector == 0 && nsec > 1)
++      {
++        /* Work around a bug in linux's ez remapping.  Linux remaps all
++           sectors that are read together with the MBR in one read.  It
++           should only remap the MBR, so we split the read in two 
++           parts. -jochen  */
++        if (nread (fd, buf, SECTOR_SIZE) != SECTOR_SIZE)
++          return -1;
++        buf += SECTOR_SIZE;
++        nsec--;
++      }
++#endif
++      if (nread (fd, buf, nsec * SECTOR_SIZE) != nsec * SECTOR_SIZE)
++      return -1;
++      break;
++
++    case BIOSDISK_WRITE:
++      if (verbose)
++      {
++        grub_printf ("Write %d sectors starting from %d sector"
++                     " to drive 0x%x (%s)\n",
++                     nsec, sector, drive, device_map[drive]);
++        hex_dump (buf, nsec * SECTOR_SIZE);
++      }
++      if (! read_only)
++      if (nwrite (fd, buf, nsec * SECTOR_SIZE) != nsec * SECTOR_SIZE)
++        return -1;
++      break;
++
++    default:
++      grub_printf ("unknown subfunc %d\n", subfunc);
++      break;
++    }
++
++  return 0;
++}
++
++
++void
++stop_floppy (void)
++{
++  /* NOTUSED */
++}
++
++/* Fetch a key from a serial device.  */
++int
++serial_hw_fetch (void)
++{
++  fd_set fds;
++  struct timeval to;
++  char c;
++
++  /* Wait only for the serial device.  */
++  FD_ZERO (&fds);
++  FD_SET (serial_fd, &fds);
++
++  to.tv_sec = 0;
++  to.tv_usec = 0;
++  
++  if (select (serial_fd + 1, &fds, 0, 0, &to) > 0)
++    {
++      if (nread (serial_fd, &c, 1) != 1)
++      stop ();
++
++      return c;
++    }
++  
++  return -1;
++}
++
++/* Put a character to a serial device.  */
++void
++serial_hw_put (int c)
++{
++  char ch = (char) c;
++  
++  if (nwrite (serial_fd, &ch, 1) != 1)
++    stop ();
++}
++
++void
++serial_hw_delay (void)
++{
++#ifdef SIMULATE_SLOWNESS_OF_SERIAL
++  struct timeval otv, tv;
++
++  gettimeofday (&otv, 0);
++
++  while (1)
++    {
++      long delta;
++      
++      gettimeofday (&tv, 0);
++      delta = tv.tv_usec - otv.tv_usec;
++      if (delta < 0)
++      delta += 1000000;
++      
++      if (delta >= 1000000 / (serial_speed >> 3))
++      break;
++    }
++#endif /* SIMULATE_SLOWNESS_OF_SERIAL */
++}
++
++static speed_t
++get_termios_speed (int speed)
++{
++  switch (speed)
++    {
++    case 2400: return B2400;
++    case 4800: return B4800;
++    case 9600: return B9600;
++    case 19200: return B19200;
++    case 38400: return B38400;
++#ifdef B57600
++    case 57600: return B57600;
++#endif
++#ifdef B115200      
++    case 115200: return B115200;
++#endif
++    }
++
++  return B0;
++}
++
++/* Get the port number of the unit UNIT. In the grub shell, this doesn't
++   make sense.  */
++unsigned short
++serial_hw_get_port (int unit)
++{
++  return 0;
++}
++
++/* Initialize a serial device. In the grub shell, PORT is unused.  */
++int
++serial_hw_init (unsigned short port, unsigned int speed,
++              int word_len, int parity, int stop_bit_len)
++{
++  struct termios termios;
++  speed_t termios_speed;
++  int i;
++  
++  /* Check if the file name is specified.  */
++  if (! serial_device)
++    return 0;
++
++  /* If a serial device is already opened, close it first.  */
++  if (serial_fd >= 0)
++    close (serial_fd);
++  
++  /* Open the device file.  */
++  serial_fd = open (serial_device,
++                  O_RDWR | O_NOCTTY
++#if defined(O_SYNC)
++                  /* O_SYNC is used in Linux (and some others?).  */
++                  | O_SYNC
++#elif defined(O_FSYNC)
++                  /* O_FSYNC is used in FreeBSD.  */
++                  | O_FSYNC
++#endif
++                  );
++  if (serial_fd < 0)
++    return 0;
++
++  /* Get the termios parameters.  */
++  if (tcgetattr (serial_fd, &termios))
++    goto fail;
++
++  /* Raw mode.  */
++  cfmakeraw (&termios);
++
++  /* Set the speed.  */
++  termios_speed = get_termios_speed (speed);
++  if (termios_speed == B0)
++    goto fail;
++  
++  cfsetispeed (&termios, termios_speed);
++  cfsetospeed (&termios, termios_speed);
++
++  /* Set the word length.  */
++  termios.c_cflag &= ~CSIZE;
++  switch (word_len)
++    {
++    case UART_5BITS_WORD:
++      termios.c_cflag |= CS5;
++      break;
++    case UART_6BITS_WORD:
++      termios.c_cflag |= CS6;
++      break;
++    case UART_7BITS_WORD:
++      termios.c_cflag |= CS7;
++      break;
++    case UART_8BITS_WORD:
++      termios.c_cflag |= CS8;
++      break;
++    default:
++      goto fail;
++    }
++
++  /* Set the parity.  */
++  switch (parity)
++    {
++    case UART_NO_PARITY:
++      termios.c_cflag &= ~PARENB;
++      break;
++    case UART_ODD_PARITY:
++      termios.c_cflag |= PARENB;
++      termios.c_cflag |= PARODD;
++      break;
++    case UART_EVEN_PARITY:
++      termios.c_cflag |= PARENB;
++      termios.c_cflag &= ~PARODD;
++      break;
++    default:
++      goto fail;
++    }
++
++  /* Set the length of stop bit.  */
++  switch (stop_bit_len)
++    {
++    case UART_1_STOP_BIT:
++      termios.c_cflag &= ~CSTOPB;
++      break;
++    case UART_2_STOP_BITS:
++      termios.c_cflag |= CSTOPB;
++      break;
++    default:
++      goto fail;
++    }
++
++  /* Set the parameters.  */
++  if (tcsetattr (serial_fd, TCSANOW, &termios))
++    goto fail;
++
++#ifdef SIMULATE_SLOWNESS_OF_SERIAL
++  serial_speed = speed;
++#endif /* SIMUATE_SLOWNESS_OF_SERIAL */
++
++  /* Get rid of the flag TERM_NEED_INIT from the serial terminal.  */
++  for (i = 0; term_table[i].name; i++)
++    {
++      if (strcmp (term_table[i].name, "serial") == 0)
++      {
++        term_table[i].flags &= ~(TERM_NEED_INIT);
++        break;
++      }
++    }
++  
++  return 1;
++
++ fail:
++  close (serial_fd);
++  serial_fd = -1;
++  return 0;
++}
++
++/* Set the file name of a serial device (or a pty device). This is a
++   function specific to the grub shell.  */
++void
++serial_set_device (const char *device)
++{
++  if (serial_device)
++    free (serial_device);
++  
++  serial_device = strdup (device);
++}
++
++/* There is no difference between console and hercules in the grub shell.  */
++void
++hercules_putchar (int c)
++{
++  console_putchar (c);
++}
++
++int
++hercules_getxy (void)
++{
++  return console_getxy ();
++}
++
++void
++hercules_gotoxy (int x, int y)
++{
++  console_gotoxy (x, y);
++}
++
++void
++hercules_cls (void)
++{
++  console_cls ();
++}
++
++void
++hercules_setcolorstate (color_state state)
++{
++  console_setcolorstate (state);
++}
++
++void
++hercules_setcolor (int normal_color, int highlight_color)
++{
++  console_setcolor (normal_color, highlight_color);
++}
++
++int
++hercules_setcursor (int on)
++{
++  return 1;
++}
+diff -Nur grub-0.97/grub/main.c grub-0.97-patched/grub/main.c
+--- grub-0.97/grub/main.c      2003-07-09 13:45:36.000000000 +0200
++++ grub-0.97-patched/grub/main.c      2012-11-11 17:07:12.720729374 +0100
+@@ -32,6 +32,7 @@
+ #define WITHOUT_LIBC_STUBS 1
+ #include <shared.h>
+ #include <term.h>
++#include <device.h>
+ char *program_name = 0;
+ int use_config_file = 1;
+@@ -140,10 +141,7 @@
+   program_name = argv[0];
+   default_boot_drive = boot_drive;
+   default_install_partition = install_partition;
+-  if (config_file)
+-    default_config_file = config_file;
+-  else
+-    default_config_file = "NONE";
++  default_config_file = config_file;
+   
+   /* Parse command-line options. */
+   do
+@@ -192,6 +190,12 @@
+             perror ("strtoul");
+             exit (1);
+           }
++        if (boot_drive >= NUM_DISKS)
++          {
++            fprintf (stderr, "boot_drive should be from 0 to %d\n",
++                     NUM_DISKS - 1);
++            exit (1);
++          }
+         break;
+       case OPT_NO_CONFIG_FILE:
+diff -Nur grub-0.97/grub/main.c.orig grub-0.97-patched/grub/main.c.orig
+--- grub-0.97/grub/main.c.orig 1970-01-01 01:00:00.000000000 +0100
++++ grub-0.97-patched/grub/main.c.orig 2003-07-09 13:45:36.000000000 +0200
+@@ -0,0 +1,265 @@
++/* main.c - experimental GRUB stage2 that runs under Unix */
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 1999,2000,2001,2002  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
++ *  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, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++/* Simulator entry point. */
++int grub_stage2 (void);
++
++#include <stdio.h>
++#include <getopt.h>
++#include <unistd.h>
++#include <string.h>
++#include <stdlib.h>
++#include <limits.h>
++#include <setjmp.h>
++
++#define WITHOUT_LIBC_STUBS 1
++#include <shared.h>
++#include <term.h>
++
++char *program_name = 0;
++int use_config_file = 1;
++int use_preset_menu = 0;
++#ifdef HAVE_LIBCURSES
++int use_curses = 1;
++#else
++int use_curses = 0;
++#endif
++int verbose = 0;
++int read_only = 0;
++int floppy_disks = 1;
++char *device_map_file = 0;
++static int default_boot_drive;
++static int default_install_partition;
++static char *default_config_file;
++
++#define OPT_HELP              -2
++#define OPT_VERSION           -3
++#define OPT_HOLD              -4
++#define OPT_CONFIG_FILE               -5
++#define OPT_INSTALL_PARTITION -6
++#define OPT_BOOT_DRIVE                -7
++#define OPT_NO_CONFIG_FILE    -8
++#define OPT_NO_CURSES         -9
++#define OPT_BATCH             -10
++#define OPT_VERBOSE           -11
++#define OPT_READ_ONLY         -12
++#define OPT_PROBE_SECOND_FLOPPY       -13
++#define OPT_NO_FLOPPY         -14
++#define OPT_DEVICE_MAP                -15
++#define OPT_PRESET_MENU               -16
++#define OPT_NO_PAGER          -17
++#define OPTSTRING ""
++
++static struct option longopts[] =
++{
++  {"batch", no_argument, 0, OPT_BATCH},
++  {"boot-drive", required_argument, 0, OPT_BOOT_DRIVE},
++  {"config-file", required_argument, 0, OPT_CONFIG_FILE},
++  {"device-map", required_argument, 0, OPT_DEVICE_MAP},
++  {"help", no_argument, 0, OPT_HELP},
++  {"hold", optional_argument, 0, OPT_HOLD},
++  {"install-partition", required_argument, 0, OPT_INSTALL_PARTITION},
++  {"no-config-file", no_argument, 0, OPT_NO_CONFIG_FILE},
++  {"no-curses", no_argument, 0, OPT_NO_CURSES},
++  {"no-floppy", no_argument, 0, OPT_NO_FLOPPY},
++  {"no-pager", no_argument, 0, OPT_NO_PAGER},
++  {"preset-menu", no_argument, 0, OPT_PRESET_MENU},
++  {"probe-second-floppy", no_argument, 0, OPT_PROBE_SECOND_FLOPPY},
++  {"read-only", no_argument, 0, OPT_READ_ONLY},
++  {"verbose", no_argument, 0, OPT_VERBOSE},
++  {"version", no_argument, 0, OPT_VERSION},
++  {0},
++};
++
++
++static void
++usage (int status)
++{
++  if (status)
++    fprintf (stderr, "Try ``grub --help'' for more information.\n");
++  else
++    printf ("\
++Usage: grub [OPTION]...\n\
++\n\
++Enter the GRand Unified Bootloader command shell.\n\
++\n\
++    --batch                  turn on batch mode for non-interactive use\n\
++    --boot-drive=DRIVE       specify stage2 boot_drive [default=0x%x]\n\
++    --config-file=FILE       specify stage2 config_file [default=%s]\n\
++    --device-map=FILE        use the device map file FILE\n\
++    --help                   display this message and exit\n\
++    --hold                   wait until a debugger will attach\n\
++    --install-partition=PAR  specify stage2 install_partition [default=0x%x]\n\
++    --no-config-file         do not use the config file\n\
++    --no-curses              do not use curses\n\
++    --no-floppy              do not probe any floppy drive\n\
++    --no-pager               do not use internal pager\n\
++    --preset-menu            use the preset menu\n\
++    --probe-second-floppy    probe the second floppy drive\n\
++    --read-only              do not write anything to devices\n\
++    --verbose                print verbose messages\n\
++    --version                print version information and exit\n\
++\n\
++Report bugs to <bug-grub@gnu.org>.\n\
++",
++          default_boot_drive, default_config_file,
++          default_install_partition);
++
++  exit (status);
++}
++
++
++int
++main (int argc, char **argv)
++{
++  int c;
++  int hold = 0;
++
++  /* First of all, call sync so that all in-core data is scheduled to be
++     actually written to disks. This is very important because GRUB does
++     not use ordinary stdio interface but raw devices.  */
++  sync ();
++  
++  program_name = argv[0];
++  default_boot_drive = boot_drive;
++  default_install_partition = install_partition;
++  if (config_file)
++    default_config_file = config_file;
++  else
++    default_config_file = "NONE";
++  
++  /* Parse command-line options. */
++  do
++    {
++      c = getopt_long (argc, argv, OPTSTRING, longopts, 0);
++      switch (c)
++      {
++      case EOF:
++        /* Fall through the bottom of the loop. */
++        break;
++
++      case OPT_HELP:
++        usage (0);
++        break;
++
++      case OPT_VERSION:
++        printf ("grub (GNU GRUB " VERSION ")\n");
++        exit (0);
++        break;
++
++      case OPT_HOLD:
++        if (! optarg)
++          hold = -1;
++        else
++          hold = atoi (optarg);
++        break;
++
++      case OPT_CONFIG_FILE:
++        strncpy (config_file, optarg, 127); /* FIXME: arbitrary */
++        config_file[127] = '\0';
++        break;
++
++      case OPT_INSTALL_PARTITION:
++        install_partition = strtoul (optarg, 0, 0);
++        if (install_partition == ULONG_MAX)
++          {
++            perror ("strtoul");
++            exit (1);
++          }
++        break;
++
++      case OPT_BOOT_DRIVE:
++        boot_drive = strtoul (optarg, 0, 0);
++        if (boot_drive == ULONG_MAX)
++          {
++            perror ("strtoul");
++            exit (1);
++          }
++        break;
++
++      case OPT_NO_CONFIG_FILE:
++        use_config_file = 0;
++        break;
++
++      case OPT_NO_CURSES:
++        use_curses = 0;
++        break;
++
++      case OPT_NO_PAGER:
++        use_pager = 0;
++        break;
++
++      case OPT_BATCH:
++        /* This is the same as "--no-config-file --no-curses --no-pager".  */
++        use_config_file = 0;
++        use_curses = 0;
++        use_pager = 0;
++        break;
++
++      case OPT_READ_ONLY:
++        read_only = 1;
++        break;
++
++      case OPT_VERBOSE:
++        verbose = 1;
++        break;
++
++      case OPT_NO_FLOPPY:
++        floppy_disks = 0;
++        break;
++
++      case OPT_PROBE_SECOND_FLOPPY:
++        floppy_disks = 2;
++        break;
++
++      case OPT_DEVICE_MAP:
++        device_map_file = strdup (optarg);
++        break;
++
++      case OPT_PRESET_MENU:
++        use_preset_menu = 1;
++        break;
++        
++      default:
++        usage (1);
++      }
++    }
++  while (c != EOF);
++
++  /* Wait until the HOLD variable is cleared by an attached debugger. */
++  if (hold && verbose)
++    printf ("Run \"gdb %s %d\", and set HOLD to zero.\n",
++          program_name, (int) getpid ());
++  while (hold)
++    {
++      if (hold > 0)
++      hold--;
++      
++      sleep (1);
++    }
++
++  /* If we don't have curses (!HAVE_LIBCURSES or --no-curses or
++     --batch) put terminal to dumb for better handling of line i/o */
++  if (! use_curses)
++    current_term->flags = TERM_NO_EDIT | TERM_DUMB;
++
++  /* Transfer control to the stage2 simulator. */
++  exit (grub_stage2 ());
++}
+diff -Nur grub-0.97/lib/device.c grub-0.97-patched/lib/device.c
+--- grub-0.97/lib/device.c     2005-03-28 01:14:25.000000000 +0200
++++ grub-0.97-patched/lib/device.c     2012-11-11 17:07:12.748730268 +0100
+@@ -69,9 +69,9 @@
+ # ifndef CDROM_GET_CAPABILITY
+ #  define CDROM_GET_CAPABILITY        0x5331  /* get capabilities */
+ # endif /* ! CDROM_GET_CAPABILITY */
+-# ifndef BLKGETSIZE
+-#  define BLKGETSIZE  _IO(0x12,96)    /* return device size */
+-# endif /* ! BLKGETSIZE */
++# ifndef BLKGETSIZE64
++#  define BLKGETSIZE64        _IOR(0x12,114,size_t)   /* return device size */
++# endif /* ! BLKGETSIZE64 */
+ #endif /* __linux__ */
+ /* Use __FreeBSD_kernel__ instead of __FreeBSD__ for compatibility with
+@@ -131,6 +131,152 @@
+ #include <shared.h>
+ #include <device.h>
++#if defined(__linux__)
++/* The 2.6 kernel has removed all of the geometry handling for IDE drives
++ * that did fixups for LBA, etc.  This means that the geometry we get
++ * with the ioctl has a good chance of being wrong.  So, we get to 
++ * also know about partition tables and try to read what the geometry
++ * is there. *grumble*   Very closely based on code from cfdisk
++ */
++static void get_kernel_geometry(int fd, long long *cyl, int *heads, int *sectors) {
++    struct hd_geometry hdg;
++    
++    if (ioctl (fd, HDIO_GETGEO, &hdg))
++        return;
++
++    *cyl = hdg.cylinders;
++    *heads = hdg.heads;
++    *sectors = hdg.sectors;
++}
++
++struct partition {
++        unsigned char boot_ind;         /* 0x80 - active */
++        unsigned char head;             /* starting head */
++        unsigned char sector;           /* starting sector */
++        unsigned char cyl;              /* starting cylinder */
++        unsigned char sys_ind;          /* What partition type */
++        unsigned char end_head;         /* end head */
++        unsigned char end_sector;       /* end sector */
++        unsigned char end_cyl;          /* end cylinder */
++        unsigned char start4[4];        /* starting sector counting from 0 */
++        unsigned char size4[4];         /* nr of sectors in partition */
++};
++
++#define ALIGNMENT 2
++typedef union {
++    struct {
++      unsigned char align[ALIGNMENT];
++      unsigned char b[SECTOR_SIZE];
++    } c;
++    struct {
++      unsigned char align[ALIGNMENT];
++      unsigned char buffer[0x1BE];
++      struct partition part[4];
++      unsigned char magicflag[2];
++    } p;
++} partition_table;
++
++#define PART_TABLE_FLAG0 0x55
++#define PART_TABLE_FLAG1 0xAA
++
++static void
++get_partition_table_geometry(partition_table *bufp, long long *cyl, int *heads, 
++                             int *sectors) {
++    struct partition *p;
++    int i,h,s,hh,ss;
++    int first = 1;
++    int bad = 0;
++
++    if (bufp->p.magicflag[0] != PART_TABLE_FLAG0 ||
++      bufp->p.magicflag[1] != PART_TABLE_FLAG1) {
++          /* Matthew Wilcox: slightly friendlier version of
++             fatal(_("Bad signature on partition table"), 3);
++          */
++            fprintf(stderr, "Unknown partition table signature\n");
++          return;
++    }
++
++    hh = ss = 0;
++    for (i=0; i<4; i++) {
++      p = &(bufp->p.part[i]);
++      if (p->sys_ind != 0) {
++          h = p->end_head + 1;
++          s = (p->end_sector & 077);
++          if (first) {
++              hh = h;
++              ss = s;
++              first = 0;
++          } else if (hh != h || ss != s)
++              bad = 1;
++      }
++    }
++
++    if (!first && !bad) {
++      *heads = hh;
++      *sectors = ss;
++    }
++}
++
++static long long my_lseek (unsigned int fd, long long offset, 
++                           unsigned int origin)
++{
++#if defined(__linux__) && (!defined(__GLIBC__) || \
++        ((__GLIBC__ < 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ < 1))))
++  /* Maybe libc doesn't have large file support.  */
++  loff_t offset, result;
++  static int _llseek (uint filedes, ulong hi, ulong lo,
++                      loff_t *res, uint wh);
++  _syscall5 (int, _llseek, uint, filedes, ulong, hi, ulong, lo,
++             loff_t *, res, uint, wh);
++  
++  if (_llseek (fd, offset >> 32, offset & 0xffffffff, &result, SEEK_SET) < 0)
++    return (long long) -1;
++  return result;
++#else
++  return lseek(fd, offset, SEEK_SET);
++#endif
++}
++
++static void get_linux_geometry (int fd, struct geometry *geom) {
++    long long kern_cyl = 0; int kern_head = 0, kern_sectors = 0;
++    long long pt_cyl = 0; int pt_head = 0, pt_sectors = 0;
++    partition_table bufp;
++    char *buff, *buf_unaligned;
++
++    buf_unaligned = malloc(sizeof(partition_table) + 4095);
++    buff = (char *) (((unsigned long)buf_unaligned + 4096 - 1) &
++                     (~(4096-1)));
++
++    get_kernel_geometry(fd, &kern_cyl, &kern_head, &kern_sectors);
++
++    if (my_lseek (fd, 0*SECTOR_SIZE, SEEK_SET) < 0) {
++        fprintf(stderr, "Unable to seek");
++    }
++
++    if (read(fd, buff, SECTOR_SIZE) == SECTOR_SIZE) {
++        memcpy(bufp.c.b, buff, SECTOR_SIZE);
++        get_partition_table_geometry(&bufp, &pt_cyl, &pt_head, &pt_sectors);
++    } else {
++        fprintf(stderr, "Unable to read partition table: %s\n", strerror(errno));
++    }
++
++    if (pt_head && pt_sectors) {
++        int cyl_size;
++
++        geom->heads = pt_head;
++        geom->sectors = pt_sectors;
++        cyl_size = pt_head * pt_sectors;
++        geom->cylinders = geom->total_sectors/cyl_size;
++    } else {
++        geom->heads = kern_head;
++        geom->sectors = kern_sectors;
++        geom->cylinders = kern_cyl;
++    }
++
++    return;
++}
++#endif
++
+ /* Get the geometry of a drive DRIVE.  */
+ void
+ get_drive_geometry (struct geometry *geom, char **map, int drive)
+@@ -151,20 +297,16 @@
+ #if defined(__linux__)
+   /* Linux */
+   {
+-    struct hd_geometry hdg;
+-    unsigned long nr;
++    unsigned long long nr;
+     
+-    if (ioctl (fd, HDIO_GETGEO, &hdg))
+-      goto fail;
+-
+-    if (ioctl (fd, BLKGETSIZE, &nr))
++    if (ioctl (fd, BLKGETSIZE64, &nr))
+       goto fail;
+     
+     /* Got the geometry, so save it. */
+-    geom->cylinders = hdg.cylinders;
+-    geom->heads = hdg.heads;
+-    geom->sectors = hdg.sectors;
+-    geom->total_sectors = nr;
++    get_linux_geometry(fd, geom);
++    if (!geom->heads && !geom->cylinders && !geom->sectors)
++      goto fail;
++    geom->total_sectors = nr / 512;
+     
+     goto success;
+   }
+@@ -403,10 +545,28 @@
+ }
+ static void
++get_cciss_disk_name (char *name, int controller, int drive)
++{
++  sprintf (name, "/dev/cciss/c%dd%d", controller, drive);
++}
++
++static void
++get_ida_disk_name (char *name, int controller, int drive)
++{
++  sprintf (name, "/dev/ida/c%dd%d", controller, drive);
++}
++
++static void
+ get_ataraid_disk_name (char *name, int unit)
+ {
+   sprintf (name, "/dev/ataraid/d%c", unit + '0');
+ }
++
++static void
++get_i2o_disk_name (char *name, char unit)
++{
++  sprintf (name, "/dev/i2o/hd%c", unit);
++}
+ #endif
+ /* Check if DEVICE can be read. If an error occurs, return zero,
+@@ -801,6 +961,97 @@
+         }
+       }
+   }
++    
++  /* This is for I2O - we have /dev/i2o/hd<logical drive><partition> */
++  {
++    int unit;
++
++    for (unit = 'a'; unit < 'f'; unit++)
++      {
++        char name[24];
++    
++        get_i2o_disk_name (name, unit);
++        if (check_device (name))
++          {
++              (*map)[num_hd + 0x80] = strdup (name);
++                  assert ((*map)[num_hd + 0x80]);
++                  
++          /* If the device map file is opened, write the map.  */
++               if (fp)
++                     fprintf (fp, "(hd%d)\t%s\n", num_hd, name);
++                     
++          num_hd++;
++          }
++      }
++  }
++
++  /* This is for CCISS, its like the DAC960  - we have
++     /dev/cciss/<controller>d<logical drive>p<partition> 
++
++     It currently supports up to 3 controllers, 10 logical volumes
++     and 10 partitions
++
++     Code gratuitously copied from DAC960 above.
++     Horms <horms@verge.net.au> 23rd July 2004
++  */
++  {
++    int controller, drive;
++    
++    for (controller = 0; controller < 2; controller++)
++      {
++      for (drive = 0; drive < 9; drive++)
++        {
++          char name[24];
++          
++          get_cciss_disk_name (name, controller, drive);
++          if (check_device (name))
++            {
++              (*map)[num_hd + 0x80] = strdup (name);
++              assert ((*map)[num_hd + 0x80]);
++              
++              /* If the device map file is opened, write the map.  */
++              if (fp)
++                fprintf (fp, "(hd%d)\t%s\n", num_hd, name);
++              
++              num_hd++;
++            }
++        }
++      }
++  }
++
++  /* This is for Compaq Smart Array, its like the DAC960  - we have
++     /dev/ida/<controller>d<logical drive>p<partition> 
++
++     It currently supports up to 3 controllers, 10 logical volumes
++     and 15 partitions
++
++     Code gratuitously copied from DAC960 above.
++     Piotr Roszatycki <dexter@debian.org>
++  */
++  {
++    int controller, drive;
++    
++    for (controller = 0; controller < 2; controller++)
++      {
++      for (drive = 0; drive < 9; drive++)
++        {
++          char name[24];
++          
++          get_ida_disk_name (name, controller, drive);
++          if (check_device (name))
++            {
++              (*map)[num_hd + 0x80] = strdup (name);
++              assert ((*map)[num_hd + 0x80]);
++              
++              /* If the device map file is opened, write the map.  */
++              if (fp)
++                fprintf (fp, "(hd%d)\t%s\n", num_hd, name);
++              
++              num_hd++;
++            }
++        }
++      }
++  }
+ #endif /* __linux__ */
+   
+   /* OK, close the device map file if opened.  */
+@@ -844,6 +1095,7 @@
+ {
+   char dev[PATH_MAX]; /* XXX */
+   int fd;
++  off_t offset = (off_t) sector * (off_t) SECTOR_SIZE;
+   
+   if ((partition & 0x00FF00) != 0x00FF00)
+     {
+@@ -861,6 +1113,14 @@
+       if (strcmp (dev + strlen(dev) - 5, "/disc") == 0)
+       strcpy (dev + strlen(dev) - 5, "/part");
+     }
++  else
++    {
++      if ((strncmp (dev, "/dev/ataraid/", 13) == 0) ||
++         (strncmp (dev, "/dev/ida/", 9) == 0) ||
++         (strncmp (dev, "/dev/cciss/", 11) == 0) ||
++         (strncmp (dev, "/dev/rd/", 8) == 0))
++        strcpy (dev + strlen(dev), "p");
++    }
+   sprintf (dev + strlen(dev), "%d", ((partition >> 16) & 0xFF) + 1);
+   
+   /* Open the partition.  */
+@@ -870,35 +1130,13 @@
+       errnum = ERR_NO_PART;
+       return 0;
+     }
+-  
+-#if defined(__linux__) && (!defined(__GLIBC__) || \
+-        ((__GLIBC__ < 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ < 1))))
+-  /* Maybe libc doesn't have large file support.  */
+-  {
+-    loff_t offset, result;
+-    static int _llseek (uint filedes, ulong hi, ulong lo,
+-                        loff_t *res, uint wh);
+-    _syscall5 (int, _llseek, uint, filedes, ulong, hi, ulong, lo,
+-               loff_t *, res, uint, wh);
+-    offset = (loff_t) sector * (loff_t) SECTOR_SIZE;
+-    if (_llseek (fd, offset >> 32, offset & 0xffffffff, &result, SEEK_SET))
+-      {
+-      errnum = ERR_DEV_VALUES;
+-      return 0;
+-      }
+-  }
+-#else
+-  {
+-    off_t offset = (off_t) sector * (off_t) SECTOR_SIZE;
+-    if (lseek (fd, offset, SEEK_SET) != offset)
+-      {
+-      errnum = ERR_DEV_VALUES;
+-      return 0;
+-      }
+-  }
+-#endif
++  if (my_lseek(fd, offset, SEEK_SET) != offset)
++    {
++      errnum = ERR_DEV_VALUES;
++      return 0;
++    }
+   
+   if (write (fd, buf, size * SECTOR_SIZE) != (size * SECTOR_SIZE))
+     {
+diff -Nur grub-0.97/netboot/cs89x0.c grub-0.97-patched/netboot/cs89x0.c
+--- grub-0.97/netboot/cs89x0.c 2003-07-09 13:45:37.000000000 +0200
++++ grub-0.97-patched/netboot/cs89x0.c 2012-11-11 17:07:12.722729437 +0100
+@@ -1,3 +1,21 @@
++/**
++   Per an email message from Russ Nelson <nelson@crynwr.com> on
++   18 March 2008 this file is now licensed under GPL Version 2.
++
++   From: Russ Nelson <nelson@crynwr.com>
++   Date: Tue, 18 Mar 2008 12:42:00 -0400
++   Subject: Re: [Etherboot-developers] cs89x0 driver in etherboot
++   -- quote from email
++   As copyright holder, if I say it doesn't conflict with the GPL,
++   then it doesn't conflict with the GPL.
++
++   However, there's no point in causing people's brains to overheat,
++   so yes, I grant permission for the code to be relicensed under the
++   GPLv2.  Please make sure that this change in licensing makes its
++   way upstream.  -russ
++   -- quote from email
++**/
++
+ /* cs89x0.c: A Crystal Semiconductor CS89[02]0 driver for etherboot. */
+ /*
+   Permission is granted to distribute the enclosed cs89x0.[ch] driver
+diff -Nur grub-0.97/netboot/cs89x0.h grub-0.97-patched/netboot/cs89x0.h
+--- grub-0.97/netboot/cs89x0.h 2003-07-09 13:45:37.000000000 +0200
++++ grub-0.97-patched/netboot/cs89x0.h 2012-11-11 17:07:12.723729469 +0100
+@@ -1,3 +1,21 @@
++/**
++   Per an email message from Russ Nelson <nelson@crynwr.com> on
++   18 March 2008 this file is now licensed under GPL Version 2.
++
++   From: Russ Nelson <nelson@crynwr.com>
++   Date: Tue, 18 Mar 2008 12:42:00 -0400
++   Subject: Re: [Etherboot-developers] cs89x0 driver in etherboot
++   -- quote from email
++   As copyright holder, if I say it doesn't conflict with the GPL,
++   then it doesn't conflict with the GPL.
++
++   However, there's no point in causing people's brains to overheat,
++   so yes, I grant permission for the code to be relicensed under the
++   GPLv2.  Please make sure that this change in licensing makes its
++   way upstream.  -russ
++   -- quote from email
++**/
++
+ /*  Copyright, 1988-1992, Russell Nelson, Crynwr Software
+    This program is free software; you can redistribute it and/or modify
+diff -Nur grub-0.97/netboot/etherboot.h grub-0.97-patched/netboot/etherboot.h
+--- grub-0.97/netboot/etherboot.h      2003-07-09 13:45:37.000000000 +0200
++++ grub-0.97-patched/netboot/etherboot.h      2012-11-11 17:07:12.723729469 +0100
+@@ -531,9 +531,6 @@
+ extern int network_ready;
+ extern struct rom_info rom;
+ extern struct arptable_t arptable[MAX_ARP];
+-extern struct bootpd_t bootp_data;
+-#define       BOOTP_DATA_ADDR (&bootp_data)
+-extern unsigned char *end_of_rfc1533;
+ /* config.c */
+ extern struct nic nic;
+diff -Nur grub-0.97/netboot/main.c grub-0.97-patched/netboot/main.c
+--- grub-0.97/netboot/main.c   2004-05-21 00:19:33.000000000 +0200
++++ grub-0.97-patched/netboot/main.c   2012-11-11 17:07:12.724729500 +0100
+@@ -56,7 +56,8 @@
+ static unsigned long netmask;
+ static struct bootpd_t bootp_data;
+ static unsigned long xid;
+-static unsigned char *end_of_rfc1533 = NULL;
++
++#define       BOOTP_DATA_ADDR (&bootp_data)
+ #ifndef       NO_DHCP_SUPPORT
+ #endif /* NO_DHCP_SUPPORT */
+@@ -83,7 +84,9 @@
+   RFC2132_MAX_SIZE,2, /* request as much as we can */
+   ETH_MAX_MTU / 256, ETH_MAX_MTU % 256,
+   RFC2132_PARAM_LIST, 4, RFC1533_NETMASK, RFC1533_GATEWAY,
+-  RFC1533_HOSTNAME, RFC1533_EXTENSIONPATH
++  RFC1533_HOSTNAME, RFC1533_EXTENSIONPATH,
++  /* Vendor class identifier */
++  RFC2132_VENDOR_CLASS_ID, 10, 'G', 'R', 'U', 'B', 'C', 'l', 'i', 'e', 'n', 't',
+ };
+ static const unsigned char dhcprequest[] =
+@@ -103,6 +106,8 @@
+   /* Etherboot vendortags */
+   RFC1533_VENDOR_MAGIC,
+   RFC1533_VENDOR_CONFIGFILE,
++  /* Vendor class identifier */
++  RFC2132_VENDOR_CLASS_ID, 10, 'G', 'R', 'U', 'B', 'C', 'l', 'i', 'e', 'n', 't',
+ };
+ #endif /* ! NO_DHCP_SUPPORT */
+@@ -701,7 +706,7 @@
+      "adcw %%ax,%0\n\t"               /* add carry of previous iteration */
+      "loop 1b\n\t"
+      "adcw $0,%0"             /* add carry of last iteration */
+-     : "=b" (*sum), "=S"(start), "=c"(len)
++     : "=r" (*sum), "=S"(start), "=c"(len)
+      : "0"(*sum), "1"(start), "2"(len)
+      : "ax", "cc"
+      );
+@@ -967,7 +972,6 @@
+   
+   if (block == 0)
+     {
+-      end_of_rfc1533 = NULL;
+       vendorext_isvalid = 0;
+       
+       if (grub_memcmp (p, rfc1533_cookie, 4))
+@@ -1021,7 +1025,7 @@
+       }
+       else if (c == RFC1533_END)
+       {
+-        end_of_rfc1533 = endp = p;
++        endp = p;
+         continue;
+       }
+       else if (c == RFC1533_NETMASK)
+diff -Nur grub-0.97/netboot/natsemi.c grub-0.97-patched/netboot/natsemi.c
+--- grub-0.97/netboot/natsemi.c        2003-07-09 13:45:38.000000000 +0200
++++ grub-0.97-patched/netboot/natsemi.c        2012-11-11 17:07:12.724729500 +0100
+@@ -608,7 +608,7 @@
+                const char  *p)     /* Packet */
+ {
+     u32 status, to, nstype;
+-    u32 tx_status;
++    volatile u32 tx_status;
+     
+     /* Stop the transmitter */
+     outl(TxOff, ioaddr + ChipCmd);
+@@ -647,7 +647,7 @@
+     to = currticks() + TX_TIMEOUT;
+-    while ((((volatile u32) tx_status=txd.cmdsts) & OWN) && (currticks() < to))
++    while (((tx_status=txd.cmdsts) & OWN) && (currticks() < to))
+         /* wait */ ;
+     if (currticks() >= to) {
+diff -Nur grub-0.97/netboot/pci.c grub-0.97-patched/netboot/pci.c
+--- grub-0.97/netboot/pci.c    2003-07-09 13:45:38.000000000 +0200
++++ grub-0.97-patched/netboot/pci.c    2012-11-11 17:07:07.227553894 +0100
+@@ -105,13 +105,16 @@
+       save_flags(flags);
+       __asm__(
++              "pushl %%ebx\n\t" /* save %ebx */
+ #ifdef ABSOLUTE_WITHOUT_ASTERISK
+-              "lcall (%%edi)"
++              "lcall (%%edi)\n\t"
+ #else
+-              "lcall *(%%edi)"
++              "lcall *(%%edi)\n\t"
+ #endif
++              "movl %%ebx, %1\n\t" /* capture what was in %ebx */
++              "popl %%ebx\n\t" /* restore %ebx */
+               : "=a" (return_code),
+-                "=b" (address),
++                "=r" (address),
+                 "=c" (length),
+                 "=d" (entry)
+               : "0" (service),
+@@ -141,18 +144,21 @@
+         save_flags(flags);
+         __asm__(
++              "pushl %%ebx\n\t" /* save %ebx */
++              "movl %3, %%ebx\n\t" /* put the value into ebx */
+ #ifdef ABSOLUTE_WITHOUT_ASTERISK
+               "lcall (%%esi)\n\t"
+ #else
+               "lcall *(%%esi)\n\t"
+ #endif
+                 "jc 1f\n\t"
+-                "xor %%ah, %%ah\n"
++              "popl %%ebx\n\t" /* restore %ebx */
++              "xor %%ah, %%ah\n\t"
+                 "1:"
+                 : "=c" (*value),
+                   "=a" (ret)
+                 : "1" (PCIBIOS_READ_CONFIG_BYTE),
+-                  "b" (bx),
++                  "r" (bx),
+                   "D" ((long) where),
+                   "S" (&pci_indirect));
+         restore_flags(flags);
+@@ -168,18 +174,21 @@
+         save_flags(flags);
+         __asm__(
++              "pushl %%ebx\n\t" /* save %ebx */
++              "movl %3, %%ebx\n\t" /* put the value into ebx */
+ #ifdef ABSOLUTE_WITHOUT_ASTERISK
+               "lcall (%%esi)\n\t"
+ #else
+               "lcall *(%%esi)\n\t"
+ #endif
+                 "jc 1f\n\t"
+-                "xor %%ah, %%ah\n"
++              "popl %%ebx\n\t" /* restore %ebx */
++              "xor %%ah, %%ah\n\t"
+                 "1:"
+                 : "=c" (*value),
+                   "=a" (ret)
+                 : "1" (PCIBIOS_READ_CONFIG_WORD),
+-                  "b" (bx),
++              "r" (bx),
+                   "D" ((long) where),
+                   "S" (&pci_indirect));
+         restore_flags(flags);
+@@ -195,18 +204,21 @@
+         save_flags(flags);
+         __asm__(
++          "pushl %%ebx\n\t" /* save %ebx */
++          "movl %3, %%ebx\n\t" /* put the value into ebx */
+ #ifdef ABSOLUTE_WITHOUT_ASTERISK
+               "lcall (%%esi)\n\t"
+ #else
+               "lcall *(%%esi)\n\t"
+ #endif
+                 "jc 1f\n\t"
+-                "xor %%ah, %%ah\n"
++          "popl %%ebx\n\t" /* restore %ebx */
++          "xor %%ah, %%ah\n\t"
+                 "1:"
+                 : "=c" (*value),
+                   "=a" (ret)
+                 : "1" (PCIBIOS_READ_CONFIG_DWORD),
+-                  "b" (bx),
++          "r" (bx),
+                   "D" ((long) where),
+                   "S" (&pci_indirect));
+         restore_flags(flags);
+@@ -222,18 +234,21 @@
+       save_flags(flags); cli();
+       __asm__(
++          "pushl %%ebx\n\t" /* save %ebx */
++          "movl %3, %%ebx\n\t" /* put the value into ebx */
+ #ifdef ABSOLUTE_WITHOUT_ASTERISK
+               "lcall (%%esi)\n\t"
+ #else
+               "lcall *(%%esi)\n\t"
+ #endif
+               "jc 1f\n\t"
+-              "xor %%ah, %%ah\n"
++          "popl %%ebx\n\t" /* restore %ebx */
++          "xor %%ah, %%ah\n\t"
+               "1:"
+               : "=a" (ret)
+               : "0" (PCIBIOS_WRITE_CONFIG_BYTE),
+                 "c" (value),
+-                "b" (bx),
++          "r" (bx),
+                 "D" ((long) where),
+                 "S" (&pci_indirect));
+       restore_flags(flags);
+@@ -249,18 +264,21 @@
+       save_flags(flags); cli();
+       __asm__(
++          "pushl %%ebx\n\t" /* save %ebx */
++          "movl %3, %%ebx\n\t" /* put the value into ebx */
+ #ifdef ABSOLUTE_WITHOUT_ASTERISK
+               "lcall (%%esi)\n\t"
+ #else
+               "lcall *(%%esi)\n\t"
+ #endif
+               "jc 1f\n\t"
+-              "xor %%ah, %%ah\n"
++          "popl %%ebx\n\t" /* restore %ebx */
++          "xor %%ah, %%ah\n\t"
+               "1:"
+               : "=a" (ret)
+               : "0" (PCIBIOS_WRITE_CONFIG_WORD),
+                 "c" (value),
+-                "b" (bx),
++          "r" (bx),
+                 "D" ((long) where),
+                 "S" (&pci_indirect));
+       restore_flags(flags);
+@@ -276,18 +294,21 @@
+       save_flags(flags); cli();
+       __asm__(
++          "pushl %%ebx\n\t" /* save %ebx */
++          "movl %3, %%ebx\n\t" /* put the value into ebx */
+ #ifdef ABSOLUTE_WITHOUT_ASTERISK
+               "lcall (%%esi)\n\t"
+ #else
+               "lcall *(%%esi)\n\t"
+ #endif
+               "jc 1f\n\t"
+-              "xor %%ah, %%ah\n"
++          "popl %%ebx\n\t" /* restore %ebx */
++          "xor %%ah, %%ah\n\t"
+               "1:"
+               : "=a" (ret)
+               : "0" (PCIBIOS_WRITE_CONFIG_DWORD),
+                 "c" (value),
+-                "b" (bx),
++          "r" (bx),
+                 "D" ((long) where),
+                 "S" (&pci_indirect));
+       restore_flags(flags);
+@@ -308,20 +329,22 @@
+               save_flags(flags);
+               __asm__(
++              "pushl %%ebx\n\t" /* save %ebx */
+ #ifdef ABSOLUTE_WITHOUT_ASTERISK
+                       "lcall (%%edi)\n\t"
+ #else
+                       "lcall *(%%edi)\n\t"
+ #endif
+                       "jc 1f\n\t"
+-                      "xor %%ah, %%ah\n"
++              "xor %%ah, %%ah\n\t"
+                       "1:\tshl $8, %%eax\n\t"
+-                      "movw %%bx, %%ax"
++              "movw %%bx, %%ax\n\t"
++              "popl %%ebx\n\t" /* restore %ebx */
+                       : "=d" (signature),
+                         "=a" (pack)
+                       : "1" (PCIBIOS_PCI_BIOS_PRESENT),
+                         "D" (&pci_indirect)
+-                      : "bx", "cx");
++              : "cx");
+               restore_flags(flags);
+               present_status = (pack >> 16) & 0xff;
+diff -Nur grub-0.97/netboot/sis900.c grub-0.97-patched/netboot/sis900.c
+--- grub-0.97/netboot/sis900.c 2003-07-09 13:45:38.000000000 +0200
++++ grub-0.97-patched/netboot/sis900.c 2012-11-11 17:07:12.725729531 +0100
+@@ -901,7 +901,7 @@
+                 const char  *p)     /* Packet */
+ {
+     u32 status, to, nstype;
+-    u32 tx_status;
++    volatile u32 tx_status;
+     
+     /* Stop the transmitter */
+     outl(TxDIS, ioaddr + cr);
+@@ -940,7 +940,7 @@
+     to = currticks() + TX_TIMEOUT;
+-    while ((((volatile u32) tx_status=txd.cmdsts) & OWN) && (currticks() < to))
++    while (((tx_status=txd.cmdsts) & OWN) && (currticks() < to))
+         /* wait */ ;
+     if (currticks() >= to) {
+diff -Nur grub-0.97/stage1/Makefile.am grub-0.97-patched/stage1/Makefile.am
+--- grub-0.97/stage1/Makefile.am       2004-07-16 13:44:56.000000000 +0200
++++ grub-0.97-patched/stage1/Makefile.am       2012-11-11 17:07:12.747730236 +0100
+@@ -1,11 +1,11 @@
+-pkglibdir = $(libdir)/$(PACKAGE)/$(host_cpu)-$(host_vendor)
+-nodist_pkglib_DATA = stage1
++stagedir = $(libdir)/$(PACKAGE)/$(host_cpu)-$(host_vendor)
++nodist_stage_DATA = stage1
+-CLEANFILES = $(nodist_pkglib_DATA)
++CLEANFILES = $(nodist_stage_DATA)
+ # We can't use builtins or standard includes.
+ AM_CCASFLAGS = $(STAGE1_CFLAGS) -fno-builtin -nostdinc
+-LDFLAGS = -nostdlib -Wl,-N,-Ttext,7C00
++stage1_exec_LDFLAGS = -nostdlib -Wl,-N,-Ttext,7C00
+ noinst_PROGRAMS = stage1.exec
+ stage1_exec_SOURCES = stage1.S stage1.h
+diff -Nur grub-0.97/stage2/asm.S grub-0.97-patched/stage2/asm.S
+--- grub-0.97/stage2/asm.S     2004-06-19 18:55:22.000000000 +0200
++++ grub-0.97-patched/stage2/asm.S     2012-11-11 17:07:03.850446017 +0100
+@@ -1651,7 +1651,29 @@
+       jnz     3f
+       ret
+-3:    /* use keyboard controller */
++3:    /*
++       * try to switch gateA20 using PORT92, the "Fast A20 and Init"
++       * register
++      */
++      mov $0x92, %dx
++      inb %dx, %al
++      /* skip the port92 code if it's unimplemented (read returns 0xff) */
++      cmpb $0xff, %al
++      jz 6f
++      
++      /* set or clear bit1, the ALT_A20_GATE bit */
++      movb 4(%esp), %ah
++      testb %ah, %ah
++      jz 4f
++      orb $2, %al
++      jmp 5f
++4:    and $0xfd, %al
++      
++      /* clear the INIT_NOW bit don't accidently reset the machine */
++5:    and $0xfe, %al
++      outb %al, %dx
++      
++6:    /* use keyboard controller */
+       pushl   %eax
+       call    gloop1
+@@ -1661,9 +1683,12 @@
+ gloopint1:
+       inb     $K_STATUS
++      cmpb    $0xff, %al
++      jz      gloopint1_done
+       andb    $K_IBUF_FUL, %al
+       jnz     gloopint1
++gloopint1_done:       
+       movb    $KB_OUTPUT_MASK, %al
+       cmpb    $0, 0x8(%esp)
+       jz      gdoit
+@@ -1684,6 +1709,8 @@
+ gloop1:
+       inb     $K_STATUS
++      cmpb    $0xff, %al
++      jz      gloop2ret
+       andb    $K_IBUF_FUL, %al
+       jnz     gloop1
+@@ -1991,6 +2018,11 @@
+ ENTRY(console_getkey)
+       push    %ebp
++wait_for_key:
++      call    EXT_C(console_checkkey)
++      incl    %eax
++      jz      wait_for_key
++      
+       call    EXT_C(prot_to_real)
+       .code16
+@@ -2216,6 +2248,156 @@
+       pop     %ebx
+       pop     %ebp
+       ret
++
++/* graphics mode functions */
++#ifdef SUPPORT_GRAPHICS
++VARIABLE(cursorX)
++.word 0
++VARIABLE(cursorY)
++.word 0
++VARIABLE(cursorCount)
++.word 0
++VARIABLE(cursorBuf)
++.byte 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
++
++      
++/*
++ * int set_videomode(mode)
++ * BIOS call "INT 10H Function 0h" to set video mode
++ *    Call with       %ah = 0x0
++ *                    %al = video mode
++ *      Returns old videomode.
++ */
++ENTRY(set_videomode)
++      push    %ebp
++      push    %ebx
++      push    %ecx
++
++      movb    0x10(%esp), %cl
++
++      call    EXT_C(prot_to_real)
++      .code16
++
++      xorw    %bx, %bx
++      movb    $0xf, %ah
++      int     $0x10                   /* Get Current Video mode */
++      movb    %al, %ch
++      xorb    %ah, %ah
++      movb    %cl, %al
++        int   $0x10                   /* Set Video mode */
++
++      DATA32  call    EXT_C(real_to_prot)
++      .code32
++
++      xorb    %ah, %ah
++      movb    %ch, %al
++
++      pop     %ecx
++      pop     %ebx
++      pop     %ebp
++      ret
++
++
++/*
++ * unsigned char * graphics_get_font()
++ * BIOS call "INT 10H Function 11h" to set font
++ *      Call with       %ah = 0x11
++ */
++ENTRY(graphics_get_font)
++      push    %ebp
++      push    %ebx
++      push    %ecx
++      push    %edx
++
++      call    EXT_C(prot_to_real)
++      .code16
++
++      movw    $0x1130, %ax
++      movb    $6, %bh         /* font 8x16 */
++      int     $0x10
++      movw    %bp, %dx
++      movw    %es, %cx
++
++      DATA32  call    EXT_C(real_to_prot)
++      .code32
++
++      xorl    %eax, %eax
++      movw    %cx, %ax
++      shll    $4, %eax
++      movw    %dx, %ax
++
++      pop     %edx
++      pop     %ecx
++      pop     %ebx
++      pop     %ebp
++      ret
++      
++
++      
++/*
++ * graphics_set_palette(index, red, green, blue)
++ * BIOS call "INT 10H Function 10h" to set individual dac register
++ *    Call with       %ah = 0x10
++ *                    %bx = register number
++ *                    %ch = new value for green (0-63)
++ *                    %cl = new value for blue (0-63)
++ *                    %dh = new value for red (0-63)
++ */
++
++ENTRY(graphics_set_palette)
++      push    %ebp
++      push    %eax
++      push    %ebx
++      push    %ecx
++      push    %edx
++
++      movw    $0x3c8, %bx             /* address write mode register */
++
++      /* wait vertical retrace */
++
++      movw    $0x3da, %dx
++l1b:  inb     %dx, %al        /* wait vertical active display */
++      test    $8, %al
++      jnz     l1b
++
++l2b:  inb     %dx, %al        /* wait vertical retrace */
++      test    $8, %al
++      jnz     l2b
++
++      mov     %bx, %dx
++      movb    0x18(%esp), %al         /* index */
++      outb    %al, %dx
++      inc     %dx
++
++      movb    0x1c(%esp), %al         /* red */
++      outb    %al, %dx
++
++      movb    0x20(%esp), %al         /* green */
++      outb    %al, %dx
++
++      movb    0x24(%esp), %al         /* blue */
++      outb    %al, %dx
++
++      movw    0x18(%esp), %bx
++
++      call    EXT_C(prot_to_real)
++      .code16
++
++      movb    %bl, %bh
++      movw    $0x1000, %ax
++      int     $0x10
++
++      DATA32  call    EXT_C(real_to_prot)
++      .code32 
++
++      pop     %edx
++      pop     %ecx
++      pop     %ebx
++      pop     %eax
++      pop     %ebp
++      ret
++
++#endif /* SUPPORT_GRAPHICS */
+               
+ /*
+  * getrtsecs()
+diff -Nur grub-0.97/stage2/bios.c grub-0.97-patched/stage2/bios.c
+--- grub-0.97/stage2/bios.c    2004-03-27 17:34:04.000000000 +0100
++++ grub-0.97-patched/stage2/bios.c    2012-11-11 17:07:12.751730363 +0100
+@@ -47,7 +47,7 @@
+    return the error number. Otherwise, return 0.  */
+ int
+ biosdisk (int read, int drive, struct geometry *geometry,
+-        int sector, int nsec, int segment)
++        unsigned int sector, int nsec, int segment)
+ {
+   int err;
+   
+@@ -60,7 +60,18 @@
+       unsigned short blocks;
+       unsigned long buffer;
+       unsigned long long block;
+-      } __attribute__ ((packed)) dap;
++
++      /* This structure is passed in the stack. A buggy BIOS could write
++       * garbage data to the tail of the struct and hang the machine. So
++       * we need this protection. - Tinybit
++       */
++      unsigned char dummy[16];
++      } __attribute__ ((packed)) *dap;
++
++      /* Even the above protection is not enough to avoid stupid actions by
++       * buggy BIOSes. So we do it in the 0040:0000 segment. - Tinybit
++       */
++      dap = (struct disk_address_packet *)0x580;
+       /* XXX: Don't check the geometry by default, because some buggy
+        BIOSes don't return the number of total sectors correctly,
+@@ -72,15 +83,15 @@
+       /* FIXME: sizeof (DAP) must be 0x10. Should assert that the compiler
+        can't add any padding.  */
+-      dap.length = sizeof (dap);
+-      dap.block = sector;
+-      dap.blocks = nsec;
+-      dap.reserved = 0;
++      dap->length = 0x10;
++      dap->block = sector;
++      dap->blocks = nsec;
++      dap->reserved = 0;
+       /* This is undocumented part. The address is formated in
+        SEGMENT:ADDRESS.  */
+-      dap.buffer = segment << 16;
++      dap->buffer = segment << 16;
+       
+-      err = biosdisk_int13_extensions ((read + 0x42) << 8, drive, &dap);
++      err = biosdisk_int13_extensions ((read + 0x42) << 8, drive, dap);
+ /* #undef NO_INT13_FALLBACK */
+ #ifndef NO_INT13_FALLBACK
+diff -Nur grub-0.97/stage2/boot.c grub-0.97-patched/stage2/boot.c
+--- grub-0.97/stage2/boot.c    2004-03-30 13:44:08.000000000 +0200
++++ grub-0.97-patched/stage2/boot.c    2012-11-11 17:07:12.727729596 +0100
+@@ -1,7 +1,7 @@
+ /* boot.c - load and bootstrap a kernel */
+ /*
+  *  GRUB  --  GRand Unified Bootloader
+- *  Copyright (C) 1999,2000,2001,2002,2003,2004  Free Software Foundation, Inc.
++ *  Copyright (C) 1999,2000,2001,2002,2003,2004,2005  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
+@@ -96,7 +96,7 @@
+   lh = (struct linux_kernel_header *) buffer;
+   
+   /* ELF loading supported if multiboot, FreeBSD and NetBSD.  */
+-  if ((type == KERNEL_TYPE_MULTIBOOT
++  if (((type == KERNEL_TYPE_MULTIBOOT && ! (flags & MULTIBOOT_AOUT_KLUDGE))
+        || pu.elf->e_ident[EI_OSABI] == ELFOSABI_FREEBSD
+        || grub_strcmp (pu.elf->e_ident + EI_BRAND, "FreeBSD") == 0
+        || suggested_type == KERNEL_TYPE_NETBSD)
+@@ -241,7 +241,7 @@
+           }
+         if (lh->version >= 0x0202)
+-          lh->cmd_line_ptr = linux_data_real_addr + LINUX_CL_OFFSET;
++          lh->cmd_line_ptr = linux_data_real_addr + LINUX_CL_0202_PRM_OFFSET;
+         else
+           {
+             lh->cl_magic = LINUX_CL_MAGIC;
+@@ -407,6 +407,15 @@
+           while (dest < linux_data_tmp_addr + LINUX_CL_END_OFFSET && *src)
+             *(dest++) = *(src++);
+       
++          {
++          char *src = skip_to (0, arg);
++          char *dest = linux_data_tmp_addr + LINUX_CL_0202_PRM_OFFSET;
++      
++          while (dest < linux_data_tmp_addr + LINUX_CL_0202_PRM_END_OFFSET && *src)
++            *(dest++) = *(src++);
++          *dest = 0;
++          }
++
+           /* Old Linux kernels have problems determining the amount of
+              the available memory.  To work around this problem, we add
+              the "mem" option to the kernel command line.  This has its
+@@ -824,8 +833,11 @@
+     moveto = (mbi.mem_upper + 0x400) << 10;
+   
+   moveto = (moveto - len) & 0xfffff000;
+-  max_addr = (lh->header == LINUX_MAGIC_SIGNATURE && lh->version >= 0x0203
+-            ? lh->initrd_addr_max : LINUX_INITRD_MAX_ADDRESS);
++  max_addr = LINUX_INITRD_MAX_ADDRESS;
++  if (lh->header == LINUX_MAGIC_SIGNATURE &&
++      lh->version >= 0x0203 &&
++      lh->initrd_addr_max < max_addr)
++    max_addr = lh->initrd_addr_max;
+   if (moveto + len >= max_addr)
+     moveto = (max_addr - len) & 0xfffff000;
+   
+diff -Nur grub-0.97/stage2/boot.c.orig grub-0.97-patched/stage2/boot.c.orig
+--- grub-0.97/stage2/boot.c.orig       1970-01-01 01:00:00.000000000 +0100
++++ grub-0.97-patched/stage2/boot.c.orig       2004-03-30 13:44:08.000000000 +0200
+@@ -0,0 +1,1020 @@
++/* boot.c - load and bootstrap a kernel */
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 1999,2000,2001,2002,2003,2004  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
++ *  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, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++
++#include "shared.h"
++
++#include "freebsd.h"
++#include "imgact_aout.h"
++#include "i386-elf.h"
++
++static int cur_addr;
++entry_func entry_addr;
++static struct mod_list mll[99];
++static int linux_mem_size;
++
++/*
++ *  The next two functions, 'load_image' and 'load_module', are the building
++ *  blocks of the multiboot loader component.  They handle essentially all
++ *  of the gory details of loading in a bootable image and the modules.
++ */
++
++kernel_t
++load_image (char *kernel, char *arg, kernel_t suggested_type,
++          unsigned long load_flags)
++{
++  int len, i, exec_type = 0, align_4k = 1;
++  entry_func real_entry_addr = 0;
++  kernel_t type = KERNEL_TYPE_NONE;
++  unsigned long flags = 0, text_len = 0, data_len = 0, bss_len = 0;
++  char *str = 0, *str2 = 0;
++  struct linux_kernel_header *lh;
++  union
++    {
++      struct multiboot_header *mb;
++      struct exec *aout;
++      Elf32_Ehdr *elf;
++    }
++  pu;
++  /* presuming that MULTIBOOT_SEARCH is large enough to encompass an
++     executable header */
++  unsigned char buffer[MULTIBOOT_SEARCH];
++
++  /* sets the header pointer to point to the beginning of the
++     buffer by default */
++  pu.aout = (struct exec *) buffer;
++
++  if (!grub_open (kernel))
++    return KERNEL_TYPE_NONE;
++
++  if (!(len = grub_read (buffer, MULTIBOOT_SEARCH)) || len < 32)
++    {
++      grub_close ();
++      
++      if (!errnum)
++      errnum = ERR_EXEC_FORMAT;
++
++      return KERNEL_TYPE_NONE;
++    }
++
++  for (i = 0; i < len; i++)
++    {
++      if (MULTIBOOT_FOUND ((int) (buffer + i), len - i))
++      {
++        flags = ((struct multiboot_header *) (buffer + i))->flags;
++        if (flags & MULTIBOOT_UNSUPPORTED)
++          {
++            grub_close ();
++            errnum = ERR_BOOT_FEATURES;
++            return KERNEL_TYPE_NONE;
++          }
++        type = KERNEL_TYPE_MULTIBOOT;
++        str2 = "Multiboot";
++        break;
++      }
++    }
++
++  /* Use BUFFER as a linux kernel header, if the image is Linux zImage
++     or bzImage.  */
++  lh = (struct linux_kernel_header *) buffer;
++  
++  /* ELF loading supported if multiboot, FreeBSD and NetBSD.  */
++  if ((type == KERNEL_TYPE_MULTIBOOT
++       || pu.elf->e_ident[EI_OSABI] == ELFOSABI_FREEBSD
++       || grub_strcmp (pu.elf->e_ident + EI_BRAND, "FreeBSD") == 0
++       || suggested_type == KERNEL_TYPE_NETBSD)
++      && len > sizeof (Elf32_Ehdr)
++      && BOOTABLE_I386_ELF ((*((Elf32_Ehdr *) buffer))))
++    {
++      if (type == KERNEL_TYPE_MULTIBOOT)
++      entry_addr = (entry_func) pu.elf->e_entry;
++      else
++      entry_addr = (entry_func) (pu.elf->e_entry & 0xFFFFFF);
++
++      if (entry_addr < (entry_func) 0x100000)
++      errnum = ERR_BELOW_1MB;
++
++      /* don't want to deal with ELF program header at some random
++         place in the file -- this generally won't happen */
++      if (pu.elf->e_phoff == 0 || pu.elf->e_phnum == 0
++        || ((pu.elf->e_phoff + (pu.elf->e_phentsize * pu.elf->e_phnum))
++            >= len))
++      errnum = ERR_EXEC_FORMAT;
++      str = "elf";
++
++      if (type == KERNEL_TYPE_NONE)
++      {
++        /* At the moment, there is no way to identify a NetBSD ELF
++           kernel, so rely on the suggested type by the user.  */
++        if (suggested_type == KERNEL_TYPE_NETBSD)
++          {
++            str2 = "NetBSD";
++            type = suggested_type;
++          }
++        else
++          {
++            str2 = "FreeBSD";
++            type = KERNEL_TYPE_FREEBSD;
++          }
++      }
++    }
++  else if (flags & MULTIBOOT_AOUT_KLUDGE)
++    {
++      pu.mb = (struct multiboot_header *) (buffer + i);
++      entry_addr = (entry_func) pu.mb->entry_addr;
++      cur_addr = pu.mb->load_addr;
++      /* first offset into file */
++      grub_seek (i - (pu.mb->header_addr - cur_addr));
++
++      /* If the load end address is zero, load the whole contents.  */
++      if (! pu.mb->load_end_addr)
++      pu.mb->load_end_addr = cur_addr + filemax;
++      
++      text_len = pu.mb->load_end_addr - cur_addr;
++      data_len = 0;
++
++      /* If the bss end address is zero, assume that there is no bss area.  */
++      if (! pu.mb->bss_end_addr)
++      pu.mb->bss_end_addr = pu.mb->load_end_addr;
++      
++      bss_len = pu.mb->bss_end_addr - pu.mb->load_end_addr;
++
++      if (pu.mb->header_addr < pu.mb->load_addr
++        || pu.mb->load_end_addr <= pu.mb->load_addr
++        || pu.mb->bss_end_addr < pu.mb->load_end_addr
++        || (pu.mb->header_addr - pu.mb->load_addr) > i)
++      errnum = ERR_EXEC_FORMAT;
++
++      if (cur_addr < 0x100000)
++      errnum = ERR_BELOW_1MB;
++
++      pu.aout = (struct exec *) buffer;
++      exec_type = 2;
++      str = "kludge";
++    }
++  else if (len > sizeof (struct exec) && !N_BADMAG ((*(pu.aout))))
++    {
++      entry_addr = (entry_func) pu.aout->a_entry;
++
++      if (type == KERNEL_TYPE_NONE)
++      {
++        /*
++         *  If it doesn't have a Multiboot header, then presume
++         *  it is either a FreeBSD or NetBSD executable.  If so,
++         *  then use a magic number of normal ordering, ZMAGIC to
++         *  determine if it is FreeBSD.
++         *
++         *  This is all because freebsd and netbsd seem to require
++         *  masking out some address bits...  differently for each
++         *  one...  plus of course we need to know which booting
++         *  method to use.
++         */
++        entry_addr = (entry_func) ((int) entry_addr & 0xFFFFFF);
++        
++        if (buffer[0] == 0xb && buffer[1] == 1)
++          {
++            type = KERNEL_TYPE_FREEBSD;
++            cur_addr = (int) entry_addr;
++            str2 = "FreeBSD";
++          }
++        else
++          {
++            type = KERNEL_TYPE_NETBSD;
++            cur_addr = (int) entry_addr & 0xF00000;
++            if (N_GETMAGIC ((*(pu.aout))) != NMAGIC)
++              align_4k = 0;
++            str2 = "NetBSD";
++          }
++      }
++
++      /* first offset into file */
++      grub_seek (N_TXTOFF (*(pu.aout)));
++      text_len = pu.aout->a_text;
++      data_len = pu.aout->a_data;
++      bss_len = pu.aout->a_bss;
++
++      if (cur_addr < 0x100000)
++      errnum = ERR_BELOW_1MB;
++
++      exec_type = 1;
++      str = "a.out";
++    }
++  else if (lh->boot_flag == BOOTSEC_SIGNATURE
++         && lh->setup_sects <= LINUX_MAX_SETUP_SECTS)
++    {
++      int big_linux = 0;
++      int setup_sects = lh->setup_sects;
++
++      if (lh->header == LINUX_MAGIC_SIGNATURE && lh->version >= 0x0200)
++      {
++        big_linux = (lh->loadflags & LINUX_FLAG_BIG_KERNEL);
++        lh->type_of_loader = LINUX_BOOT_LOADER_TYPE;
++
++        /* Put the real mode part at as a high location as possible.  */
++        linux_data_real_addr
++          = (char *) ((mbi.mem_lower << 10) - LINUX_SETUP_MOVE_SIZE);
++        /* But it must not exceed the traditional area.  */
++        if (linux_data_real_addr > (char *) LINUX_OLD_REAL_MODE_ADDR)
++          linux_data_real_addr = (char *) LINUX_OLD_REAL_MODE_ADDR;
++
++        if (lh->version >= 0x0201)
++          {
++            lh->heap_end_ptr = LINUX_HEAP_END_OFFSET;
++            lh->loadflags |= LINUX_FLAG_CAN_USE_HEAP;
++          }
++
++        if (lh->version >= 0x0202)
++          lh->cmd_line_ptr = linux_data_real_addr + LINUX_CL_OFFSET;
++        else
++          {
++            lh->cl_magic = LINUX_CL_MAGIC;
++            lh->cl_offset = LINUX_CL_OFFSET;
++            lh->setup_move_size = LINUX_SETUP_MOVE_SIZE;
++          }
++      }
++      else
++      {
++        /* Your kernel is quite old...  */
++        lh->cl_magic = LINUX_CL_MAGIC;
++        lh->cl_offset = LINUX_CL_OFFSET;
++        
++        setup_sects = LINUX_DEFAULT_SETUP_SECTS;
++
++        linux_data_real_addr = (char *) LINUX_OLD_REAL_MODE_ADDR;
++      }
++      
++      /* If SETUP_SECTS is not set, set it to the default (4).  */
++      if (! setup_sects)
++      setup_sects = LINUX_DEFAULT_SETUP_SECTS;
++
++      data_len = setup_sects << 9;
++      text_len = filemax - data_len - SECTOR_SIZE;
++
++      linux_data_tmp_addr = (char *) LINUX_BZIMAGE_ADDR + text_len;
++      
++      if (! big_linux
++        && text_len > linux_data_real_addr - (char *) LINUX_ZIMAGE_ADDR)
++      {
++        grub_printf (" linux 'zImage' kernel too big, try 'make bzImage'\n");
++        errnum = ERR_WONT_FIT;
++      }
++      else if (linux_data_real_addr + LINUX_SETUP_MOVE_SIZE
++             > RAW_ADDR ((char *) (mbi.mem_lower << 10)))
++      errnum = ERR_WONT_FIT;
++      else
++      {
++        grub_printf ("   [Linux-%s, setup=0x%x, size=0x%x]\n",
++                     (big_linux ? "bzImage" : "zImage"), data_len, text_len);
++
++        /* Video mode selection support. What a mess!  */
++        /* NOTE: Even the word "mess" is not still enough to
++           represent how wrong and bad the Linux video support is,
++           but I don't want to hear complaints from Linux fanatics
++           any more. -okuji  */
++        {
++          char *vga;
++      
++          /* Find the substring "vga=".  */
++          vga = grub_strstr (arg, "vga=");
++          if (vga)
++            {
++              char *value = vga + 4;
++              int vid_mode;
++          
++              /* Handle special strings.  */
++              if (substring ("normal", value) < 1)
++                vid_mode = LINUX_VID_MODE_NORMAL;
++              else if (substring ("ext", value) < 1)
++                vid_mode = LINUX_VID_MODE_EXTENDED;
++              else if (substring ("ask", value) < 1)
++                vid_mode = LINUX_VID_MODE_ASK;
++              else if (safe_parse_maxint (&value, &vid_mode))
++                ;
++              else
++                {
++                  /* ERRNUM is already set inside the function
++                     safe_parse_maxint.  */
++                  grub_close ();
++                  return KERNEL_TYPE_NONE;
++                }
++          
++              lh->vid_mode = vid_mode;
++            }
++        }
++
++        /* Check the mem= option to limit memory used for initrd.  */
++        {
++          char *mem;
++      
++          mem = grub_strstr (arg, "mem=");
++          if (mem)
++            {
++              char *value = mem + 4;
++          
++              safe_parse_maxint (&value, &linux_mem_size);
++              switch (errnum)
++                {
++                case ERR_NUMBER_OVERFLOW:
++                  /* If an overflow occurs, use the maximum address for
++                     initrd instead. This is good, because MAXINT is
++                     greater than LINUX_INITRD_MAX_ADDRESS.  */
++                  linux_mem_size = LINUX_INITRD_MAX_ADDRESS;
++                  errnum = ERR_NONE;
++                  break;
++              
++                case ERR_NONE:
++                  {
++                    int shift = 0;
++                
++                    switch (grub_tolower (*value))
++                      {
++                      case 'g':
++                        shift += 10;
++                      case 'm':
++                        shift += 10;
++                      case 'k':
++                        shift += 10;
++                      default:
++                        break;
++                      }
++                
++                    /* Check an overflow.  */
++                    if (linux_mem_size > (MAXINT >> shift))
++                      linux_mem_size = LINUX_INITRD_MAX_ADDRESS;
++                    else
++                      linux_mem_size <<= shift;
++                  }
++                  break;
++              
++                default:
++                  linux_mem_size = 0;
++                  errnum = ERR_NONE;
++                  break;
++                }
++            }
++          else
++            linux_mem_size = 0;
++        }
++      
++        /* It is possible that DATA_LEN + SECTOR_SIZE is greater than
++           MULTIBOOT_SEARCH, so the data may have been read partially.  */
++        if (data_len + SECTOR_SIZE <= MULTIBOOT_SEARCH)
++          grub_memmove (linux_data_tmp_addr, buffer,
++                        data_len + SECTOR_SIZE);
++        else
++          {
++            grub_memmove (linux_data_tmp_addr, buffer, MULTIBOOT_SEARCH);
++            grub_read (linux_data_tmp_addr + MULTIBOOT_SEARCH,
++                       data_len + SECTOR_SIZE - MULTIBOOT_SEARCH);
++          }
++        
++        if (lh->header != LINUX_MAGIC_SIGNATURE ||
++            lh->version < 0x0200)
++          /* Clear the heap space.  */
++          grub_memset (linux_data_tmp_addr + ((setup_sects + 1) << 9),
++                       0,
++                       (64 - setup_sects - 1) << 9);
++      
++        /* Copy command-line plus memory hack to staging area.
++           NOTE: Linux has a bug that it doesn't handle multiple spaces
++           between two options and a space after a "mem=" option isn't
++           removed correctly so the arguments to init could be like
++           {"init", "", "", NULL}. This affects some not-very-clever
++           shells. Thus, the code below does a trick to avoid the bug.
++           That is, copy "mem=XXX" to the end of the command-line, and
++           avoid to copy spaces unnecessarily. Hell.  */
++        {
++          char *src = skip_to (0, arg);
++          char *dest = linux_data_tmp_addr + LINUX_CL_OFFSET;
++      
++          while (dest < linux_data_tmp_addr + LINUX_CL_END_OFFSET && *src)
++            *(dest++) = *(src++);
++      
++          /* Old Linux kernels have problems determining the amount of
++             the available memory.  To work around this problem, we add
++             the "mem" option to the kernel command line.  This has its
++             own drawbacks because newer kernels can determine the
++             memory map more accurately.  Boot protocol 2.03, which
++             appeared in Linux 2.4.18, provides a pointer to the kernel
++             version string, so we could check it.  But since kernel
++             2.4.18 and newer are known to detect memory reliably, boot
++             protocol 2.03 already implies that the kernel is new
++             enough.  The "mem" option is added if neither of the
++             following conditions is met:
++             1) The "mem" option is already present.
++             2) The "kernel" command is used with "--no-mem-option".
++             3) GNU GRUB is configured not to pass the "mem" option.
++             4) The kernel supports boot protocol 2.03 or newer.  */
++          if (! grub_strstr (arg, "mem=")
++              && ! (load_flags & KERNEL_LOAD_NO_MEM_OPTION)
++              && lh->version < 0x0203         /* kernel version < 2.4.18 */
++              && dest + 15 < linux_data_tmp_addr + LINUX_CL_END_OFFSET)
++            {
++              *dest++ = ' ';
++              *dest++ = 'm';
++              *dest++ = 'e';
++              *dest++ = 'm';
++              *dest++ = '=';
++          
++              dest = convert_to_ascii (dest, 'u', (extended_memory + 0x400));
++              *dest++ = 'K';
++            }
++      
++          *dest = 0;
++        }
++      
++        /* offset into file */
++        grub_seek (data_len + SECTOR_SIZE);
++      
++        cur_addr = (int) linux_data_tmp_addr + LINUX_SETUP_MOVE_SIZE;
++        grub_read ((char *) LINUX_BZIMAGE_ADDR, text_len);
++      
++        if (errnum == ERR_NONE)
++          {
++            grub_close ();
++        
++            /* Sanity check.  */
++            if (suggested_type != KERNEL_TYPE_NONE
++                && ((big_linux && suggested_type != KERNEL_TYPE_BIG_LINUX)
++                    || (! big_linux && suggested_type != KERNEL_TYPE_LINUX)))
++              {
++                errnum = ERR_EXEC_FORMAT;
++                return KERNEL_TYPE_NONE;
++              }
++        
++            /* Ugly hack.  */
++            linux_text_len = text_len;
++        
++            return big_linux ? KERNEL_TYPE_BIG_LINUX : KERNEL_TYPE_LINUX;
++          }
++      }
++    }
++  else                                /* no recognizable format */
++    errnum = ERR_EXEC_FORMAT;
++
++  /* return if error */
++  if (errnum)
++    {
++      grub_close ();
++      return KERNEL_TYPE_NONE;
++    }
++
++  /* fill the multiboot info structure */
++  mbi.cmdline = (int) arg;
++  mbi.mods_count = 0;
++  mbi.mods_addr = 0;
++  mbi.boot_device = (current_drive << 24) | current_partition;
++  mbi.flags &= ~(MB_INFO_MODS | MB_INFO_AOUT_SYMS | MB_INFO_ELF_SHDR);
++  mbi.syms.a.tabsize = 0;
++  mbi.syms.a.strsize = 0;
++  mbi.syms.a.addr = 0;
++  mbi.syms.a.pad = 0;
++
++  printf ("   [%s-%s", str2, str);
++
++  str = "";
++
++  if (exec_type)              /* can be loaded like a.out */
++    {
++      if (flags & MULTIBOOT_AOUT_KLUDGE)
++      str = "-and-data";
++
++      printf (", loadaddr=0x%x, text%s=0x%x", cur_addr, str, text_len);
++
++      /* read text, then read data */
++      if (grub_read ((char *) RAW_ADDR (cur_addr), text_len) == text_len)
++      {
++        cur_addr += text_len;
++
++        if (!(flags & MULTIBOOT_AOUT_KLUDGE))
++          {
++            /* we have to align to a 4K boundary */
++            if (align_4k)
++              cur_addr = (cur_addr + 0xFFF) & 0xFFFFF000;
++            else
++              printf (", C");
++
++            printf (", data=0x%x", data_len);
++
++            if ((grub_read ((char *) RAW_ADDR (cur_addr), data_len)
++                 != data_len)
++                && !errnum)
++              errnum = ERR_EXEC_FORMAT;
++            cur_addr += data_len;
++          }
++
++        if (!errnum)
++          {
++            memset ((char *) RAW_ADDR (cur_addr), 0, bss_len);
++            cur_addr += bss_len;
++
++            printf (", bss=0x%x", bss_len);
++          }
++      }
++      else if (!errnum)
++      errnum = ERR_EXEC_FORMAT;
++
++      if (!errnum && pu.aout->a_syms
++        && pu.aout->a_syms < (filemax - filepos))
++      {
++        int symtab_err, orig_addr = cur_addr;
++
++        /* we should align to a 4K boundary here for good measure */
++        if (align_4k)
++          cur_addr = (cur_addr + 0xFFF) & 0xFFFFF000;
++
++        mbi.syms.a.addr = cur_addr;
++
++        *((int *) RAW_ADDR (cur_addr)) = pu.aout->a_syms;
++        cur_addr += sizeof (int);
++        
++        printf (", symtab=0x%x", pu.aout->a_syms);
++
++        if (grub_read ((char *) RAW_ADDR (cur_addr), pu.aout->a_syms)
++            == pu.aout->a_syms)
++          {
++            cur_addr += pu.aout->a_syms;
++            mbi.syms.a.tabsize = pu.aout->a_syms;
++
++            if (grub_read ((char *) &i, sizeof (int)) == sizeof (int))
++              {
++                *((int *) RAW_ADDR (cur_addr)) = i;
++                cur_addr += sizeof (int);
++
++                mbi.syms.a.strsize = i;
++
++                i -= sizeof (int);
++
++                printf (", strtab=0x%x", i);
++
++                symtab_err = (grub_read ((char *) RAW_ADDR (cur_addr), i)
++                              != i);
++                cur_addr += i;
++              }
++            else
++              symtab_err = 1;
++          }
++        else
++          symtab_err = 1;
++
++        if (symtab_err)
++          {
++            printf ("(bad)");
++            cur_addr = orig_addr;
++            mbi.syms.a.tabsize = 0;
++            mbi.syms.a.strsize = 0;
++            mbi.syms.a.addr = 0;
++          }
++        else
++          mbi.flags |= MB_INFO_AOUT_SYMS;
++      }
++    }
++  else
++    /* ELF executable */
++    {
++      unsigned loaded = 0, memaddr, memsiz, filesiz;
++      Elf32_Phdr *phdr;
++
++      /* reset this to zero for now */
++      cur_addr = 0;
++
++      /* scan for program segments */
++      for (i = 0; i < pu.elf->e_phnum; i++)
++      {
++        phdr = (Elf32_Phdr *)
++          (pu.elf->e_phoff + ((int) buffer)
++           + (pu.elf->e_phentsize * i));
++        if (phdr->p_type == PT_LOAD)
++          {
++            /* offset into file */
++            grub_seek (phdr->p_offset);
++            filesiz = phdr->p_filesz;
++            
++            if (type == KERNEL_TYPE_FREEBSD || type == KERNEL_TYPE_NETBSD)
++              memaddr = RAW_ADDR (phdr->p_paddr & 0xFFFFFF);
++            else
++              memaddr = RAW_ADDR (phdr->p_paddr);
++            
++            memsiz = phdr->p_memsz;
++            if (memaddr < RAW_ADDR (0x100000))
++              errnum = ERR_BELOW_1MB;
++
++            /* If the memory range contains the entry address, get the
++               physical address here.  */
++            if (type == KERNEL_TYPE_MULTIBOOT
++                && (unsigned) entry_addr >= phdr->p_vaddr
++                && (unsigned) entry_addr < phdr->p_vaddr + memsiz)
++              real_entry_addr = (entry_func) ((unsigned) entry_addr
++                                              + memaddr - phdr->p_vaddr);
++              
++            /* make sure we only load what we're supposed to! */
++            if (filesiz > memsiz)
++              filesiz = memsiz;
++            /* mark memory as used */
++            if (cur_addr < memaddr + memsiz)
++              cur_addr = memaddr + memsiz;
++            printf (", <0x%x:0x%x:0x%x>", memaddr, filesiz,
++                    memsiz - filesiz);
++            /* increment number of segments */
++            loaded++;
++
++            /* load the segment */
++            if (memcheck (memaddr, memsiz)
++                && grub_read ((char *) memaddr, filesiz) == filesiz)
++              {
++                if (memsiz > filesiz)
++                  memset ((char *) (memaddr + filesiz), 0, memsiz - filesiz);
++              }
++            else
++              break;
++          }
++      }
++
++      if (! errnum)
++      {
++        if (! loaded)
++          errnum = ERR_EXEC_FORMAT;
++        else
++          {
++            /* Load ELF symbols.  */
++            Elf32_Shdr *shdr = NULL;
++            int tab_size, sec_size;
++            int symtab_err = 0;
++
++            mbi.syms.e.num = pu.elf->e_shnum;
++            mbi.syms.e.size = pu.elf->e_shentsize;
++            mbi.syms.e.shndx = pu.elf->e_shstrndx;
++            
++            /* We should align to a 4K boundary here for good measure.  */
++            if (align_4k)
++              cur_addr = (cur_addr + 0xFFF) & 0xFFFFF000;
++            
++            tab_size = pu.elf->e_shentsize * pu.elf->e_shnum;
++            
++            grub_seek (pu.elf->e_shoff);
++            if (grub_read ((char *) RAW_ADDR (cur_addr), tab_size)
++                == tab_size)
++              {
++                mbi.syms.e.addr = cur_addr;
++                shdr = (Elf32_Shdr *) mbi.syms.e.addr;
++                cur_addr += tab_size;
++                
++                printf (", shtab=0x%x", cur_addr);
++                
++                for (i = 0; i < mbi.syms.e.num; i++)
++                  {
++                    /* This section is a loaded section,
++                       so we don't care.  */
++                    if (shdr[i].sh_addr != 0)
++                      continue;
++                    
++                    /* This section is empty, so we don't care.  */
++                    if (shdr[i].sh_size == 0)
++                      continue;
++                    
++                    /* Align the section to a sh_addralign bits boundary.  */
++                    cur_addr = ((cur_addr + shdr[i].sh_addralign) & 
++                                - (int) shdr[i].sh_addralign);
++                    
++                    grub_seek (shdr[i].sh_offset);
++                    
++                    sec_size = shdr[i].sh_size;
++
++                    if (! (memcheck (cur_addr, sec_size)
++                           && (grub_read ((char *) RAW_ADDR (cur_addr),
++                                          sec_size)
++                               == sec_size)))
++                      {
++                        symtab_err = 1;
++                        break;
++                      }
++                    
++                    shdr[i].sh_addr = cur_addr;
++                    cur_addr += sec_size;
++                  }
++              }
++            else 
++              symtab_err = 1;
++            
++            if (mbi.syms.e.addr < RAW_ADDR(0x10000))
++              symtab_err = 1;
++            
++            if (symtab_err) 
++              {
++                printf ("(bad)");
++                mbi.syms.e.num = 0;
++                mbi.syms.e.size = 0;
++                mbi.syms.e.addr = 0;
++                mbi.syms.e.shndx = 0;
++                cur_addr = 0;
++              }
++            else
++              mbi.flags |= MB_INFO_ELF_SHDR;
++          }
++      }
++    }
++
++  if (! errnum)
++    {
++      grub_printf (", entry=0x%x]\n", (unsigned) entry_addr);
++      
++      /* If the entry address is physically different from that of the ELF
++       header, correct it here.  */
++      if (real_entry_addr)
++      entry_addr = real_entry_addr;
++    }
++  else
++    {
++      putchar ('\n');
++      type = KERNEL_TYPE_NONE;
++    }
++
++  grub_close ();
++
++  /* Sanity check.  */
++  if (suggested_type != KERNEL_TYPE_NONE && suggested_type != type)
++    {
++      errnum = ERR_EXEC_FORMAT;
++      return KERNEL_TYPE_NONE;
++    }
++  
++  return type;
++}
++
++int
++load_module (char *module, char *arg)
++{
++  int len;
++
++  /* if we are supposed to load on 4K boundaries */
++  cur_addr = (cur_addr + 0xFFF) & 0xFFFFF000;
++
++  if (!grub_open (module))
++    return 0;
++
++  len = grub_read ((char *) cur_addr, -1);
++  if (! len)
++    {
++      grub_close ();
++      return 0;
++    }
++
++  printf ("   [Multiboot-module @ 0x%x, 0x%x bytes]\n", cur_addr, len);
++
++  /* these two simply need to be set if any modules are loaded at all */
++  mbi.flags |= MB_INFO_MODS;
++  mbi.mods_addr = (int) mll;
++
++  mll[mbi.mods_count].cmdline = (int) arg;
++  mll[mbi.mods_count].mod_start = cur_addr;
++  cur_addr += len;
++  mll[mbi.mods_count].mod_end = cur_addr;
++  mll[mbi.mods_count].pad = 0;
++
++  /* increment number of modules included */
++  mbi.mods_count++;
++
++  grub_close ();
++  return 1;
++}
++
++int
++load_initrd (char *initrd)
++{
++  int len;
++  unsigned long moveto;
++  unsigned long max_addr;
++  struct linux_kernel_header *lh
++    = (struct linux_kernel_header *) (cur_addr - LINUX_SETUP_MOVE_SIZE);
++  
++#ifndef NO_DECOMPRESSION
++  no_decompression = 1;
++#endif
++  
++  if (! grub_open (initrd))
++    goto fail;
++
++  len = grub_read ((char *) cur_addr, -1);
++  if (! len)
++    {
++      grub_close ();
++      goto fail;
++    }
++
++  if (linux_mem_size)
++    moveto = linux_mem_size;
++  else
++    moveto = (mbi.mem_upper + 0x400) << 10;
++  
++  moveto = (moveto - len) & 0xfffff000;
++  max_addr = (lh->header == LINUX_MAGIC_SIGNATURE && lh->version >= 0x0203
++            ? lh->initrd_addr_max : LINUX_INITRD_MAX_ADDRESS);
++  if (moveto + len >= max_addr)
++    moveto = (max_addr - len) & 0xfffff000;
++  
++  /* XXX: Linux 2.3.xx has a bug in the memory range check, so avoid
++     the last page.
++     XXX: Linux 2.2.xx has a bug in the memory range check, which is
++     worse than that of Linux 2.3.xx, so avoid the last 64kb. *sigh*  */
++  moveto -= 0x10000;
++  memmove ((void *) RAW_ADDR (moveto), (void *) cur_addr, len);
++
++  printf ("   [Linux-initrd @ 0x%x, 0x%x bytes]\n", moveto, len);
++
++  /* FIXME: Should check if the kernel supports INITRD.  */
++  lh->ramdisk_image = RAW_ADDR (moveto);
++  lh->ramdisk_size = len;
++
++  grub_close ();
++
++ fail:
++  
++#ifndef NO_DECOMPRESSION
++  no_decompression = 0;
++#endif
++
++  return ! errnum;
++}
++
++
++#ifdef GRUB_UTIL
++/* Dummy function to fake the *BSD boot.  */
++static void
++bsd_boot_entry (int flags, int bootdev, int sym_start, int sym_end,
++              int mem_upper, int mem_lower)
++{
++  stop ();
++}
++#endif
++
++
++/*
++ *  All "*_boot" commands depend on the images being loaded into memory
++ *  correctly, the variables in this file being set up correctly, and
++ *  the root partition being set in the 'saved_drive' and 'saved_partition'
++ *  variables.
++ */
++
++
++void
++bsd_boot (kernel_t type, int bootdev, char *arg)
++{
++  char *str;
++  int clval = 0, i;
++  struct bootinfo bi;
++
++#ifdef GRUB_UTIL
++  entry_addr = (entry_func) bsd_boot_entry;
++#else
++  stop_floppy ();
++#endif
++
++  while (*(++arg) && *arg != ' ');
++  str = arg;
++  while (*str)
++    {
++      if (*str == '-')
++      {
++        while (*str && *str != ' ')
++          {
++            if (*str == 'C')
++              clval |= RB_CDROM;
++            if (*str == 'a')
++              clval |= RB_ASKNAME;
++            if (*str == 'b')
++              clval |= RB_HALT;
++            if (*str == 'c')
++              clval |= RB_CONFIG;
++            if (*str == 'd')
++              clval |= RB_KDB;
++            if (*str == 'D')
++              clval |= RB_MULTIPLE;
++            if (*str == 'g')
++              clval |= RB_GDB;
++            if (*str == 'h')
++              clval |= RB_SERIAL;
++            if (*str == 'm')
++              clval |= RB_MUTE;
++            if (*str == 'r')
++              clval |= RB_DFLTROOT;
++            if (*str == 's')
++              clval |= RB_SINGLE;
++            if (*str == 'v')
++              clval |= RB_VERBOSE;
++            str++;
++          }
++        continue;
++      }
++      str++;
++    }
++
++  if (type == KERNEL_TYPE_FREEBSD)
++    {
++      clval |= RB_BOOTINFO;
++
++      bi.bi_version = BOOTINFO_VERSION;
++
++      *arg = 0;
++      while ((--arg) > (char *) MB_CMDLINE_BUF && *arg != '/');
++      if (*arg == '/')
++      bi.bi_kernelname = arg + 1;
++      else
++      bi.bi_kernelname = 0;
++
++      bi.bi_nfs_diskless = 0;
++      bi.bi_n_bios_used = 0;  /* this field is apparently unused */
++
++      for (i = 0; i < N_BIOS_GEOM; i++)
++      {
++        struct geometry geom;
++
++        /* XXX Should check the return value.  */
++        get_diskinfo (i + 0x80, &geom);
++        /* FIXME: If HEADS or SECTORS is greater than 255, then this will
++           break the geometry information. That is a drawback of BSD
++           but not of GRUB.  */
++        bi.bi_bios_geom[i] = (((geom.cylinders - 1) << 16)
++                              + (((geom.heads - 1) & 0xff) << 8)
++                              + (geom.sectors & 0xff));
++      }
++
++      bi.bi_size = sizeof (struct bootinfo);
++      bi.bi_memsizes_valid = 1;
++      bi.bi_bios_dev = saved_drive;
++      bi.bi_basemem = mbi.mem_lower;
++      bi.bi_extmem = extended_memory;
++
++      if (mbi.flags & MB_INFO_AOUT_SYMS)
++      {
++        bi.bi_symtab = mbi.syms.a.addr;
++        bi.bi_esymtab = mbi.syms.a.addr + 4
++          + mbi.syms.a.tabsize + mbi.syms.a.strsize;
++      }
++#if 0
++      else if (mbi.flags & MB_INFO_ELF_SHDR)
++      {
++        /* FIXME: Should check if a symbol table exists and, if exists,
++           pass the table to BI.  */
++      }
++#endif
++      else
++      {
++        bi.bi_symtab = 0;
++        bi.bi_esymtab = 0;
++      }
++
++      /* call entry point */
++      (*entry_addr) (clval, bootdev, 0, 0, 0, ((int) (&bi)));
++    }
++  else
++    {
++      /*
++       *  We now pass the various bootstrap parameters to the loaded
++       *  image via the argument list.
++       *
++       *  This is the official list:
++       *
++       *  arg0 = 8 (magic)
++       *  arg1 = boot flags
++       *  arg2 = boot device
++       *  arg3 = start of symbol table (0 if not loaded)
++       *  arg4 = end of symbol table (0 if not loaded)
++       *  arg5 = transfer address from image
++       *  arg6 = transfer address for next image pointer
++       *  arg7 = conventional memory size (640)
++       *  arg8 = extended memory size (8196)
++       *
++       *  ...in actuality, we just pass the parameters used by the kernel.
++       */
++
++      /* call entry point */
++      unsigned long end_mark;
++
++      if (mbi.flags & MB_INFO_AOUT_SYMS)
++      end_mark = (mbi.syms.a.addr + 4
++                  + mbi.syms.a.tabsize + mbi.syms.a.strsize);
++      else
++      /* FIXME: it should be mbi.syms.e.size.  */
++      end_mark = 0;
++      
++      (*entry_addr) (clval, bootdev, 0, end_mark,
++                   extended_memory, mbi.mem_lower);
++    }
++}
+diff -Nur grub-0.97/stage2/builtins.c grub-0.97-patched/stage2/builtins.c
+--- grub-0.97/stage2/builtins.c        2005-02-15 22:58:23.000000000 +0100
++++ grub-0.97-patched/stage2/builtins.c        2012-11-11 17:07:12.729729661 +0100
+@@ -131,63 +131,98 @@
+ }
\f
++/* blocklist_read_helper nee disk_read_blocklist_func was a nested
++ * function, to which pointers were taken and exposed globally.  Even
++ * in the GNU-C nested functions extension, they have local linkage,
++ * and aren't guaranteed to be accessable *at all* outside of their 
++ * containing scope.
++ *
++ * Above and beyond all of that, the variables within blocklist_func_context
++ * are originally local variables, with local (not even static) linkage,
++ * from within blocklist_func.  These were each referenced by
++ * disk_read_blocklist_func, which is only called from other functions
++ * through a globally scoped pointer.
++ * 
++ * The documentation in GCC actually uses the words "all hell will break
++ * loose" to describe this scenario.
++ *
++ * Also, "start_sector" was also used uninitialized, but gcc doesn't warn
++ * about it (possibly because of the scoping madness?)
++ */
++   
++static struct {
++       int start_sector;
++       int num_sectors;
++       int num_entries;
++       int last_length;
++} blocklist_func_context = {
++       .start_sector = 0,
++       .num_sectors = 0,
++       .num_entries = 0,
++       .last_length = 0
++};
++
++/* Collect contiguous blocks into one entry as many as possible,
++   and print the blocklist notation on the screen.  */
++static void
++blocklist_read_helper (int sector, int offset, int length)
++{
++  int *start_sector = &blocklist_func_context.start_sector;
++  int *num_sectors = &blocklist_func_context.num_sectors;
++  int *num_entries = &blocklist_func_context.num_entries;
++  int *last_length = &blocklist_func_context.last_length;
++
++  if (*num_sectors > 0)
++  {
++    if (*start_sector + *num_sectors == sector
++      && offset == 0 && *last_length == SECTOR_SIZE)
++    {
++      *num_sectors++;
++      *last_length = length;
++      return;
++    }
++    else
++    {
++      if (*last_length == SECTOR_SIZE)
++        grub_printf ("%s%d+%d", *num_entries ? "," : "",
++          *start_sector - part_start, *num_sectors);
++      else if (*num_sectors > 1)
++        grub_printf ("%s%d+%d,%d[0-%d]", *num_entries ? "," : "",
++          *start_sector - part_start, *num_sectors-1,
++          *start_sector + *num_sectors-1 - part_start, 
++          *last_length);
++      else
++        grub_printf ("%s%d[0-%d]", *num_entries ? "," : "",
++          *start_sector - part_start, *last_length);
++      *num_entries++;
++      *num_sectors = 0;
++    }
++  }
++
++  if (offset > 0)
++  {
++    grub_printf("%s%d[%d-%d]", *num_entries ? "," : "",
++          sector-part_start, offset, offset+length);
++    *num_entries++;
++  }
++  else
++  {
++    *start_sector = sector;
++    *num_sectors = 1;
++    *last_length = length;
++  }
++}
++
+ /* blocklist */
+ static int
+ blocklist_func (char *arg, int flags)
+ {
+   char *dummy = (char *) RAW_ADDR (0x100000);
+-  int start_sector;
+-  int num_sectors = 0;
+-  int num_entries = 0;
+-  int last_length = 0;
+-  auto void disk_read_blocklist_func (int sector, int offset, int length);
++  int *start_sector = &blocklist_func_context.start_sector;
++  int *num_sectors = &blocklist_func_context.num_sectors;
++  int *num_entries = &blocklist_func_context.num_entries;
+   
+-  /* Collect contiguous blocks into one entry as many as possible,
+-     and print the blocklist notation on the screen.  */
+-  auto void disk_read_blocklist_func (int sector, int offset, int length)
+-    {
+-      if (num_sectors > 0)
+-      {
+-        if (start_sector + num_sectors == sector
+-            && offset == 0 && last_length == SECTOR_SIZE)
+-          {
+-            num_sectors++;
+-            last_length = length;
+-            return;
+-          }
+-        else
+-          {
+-            if (last_length == SECTOR_SIZE)
+-              grub_printf ("%s%d+%d", num_entries ? "," : "",
+-                           start_sector - part_start, num_sectors);
+-            else if (num_sectors > 1)
+-              grub_printf ("%s%d+%d,%d[0-%d]", num_entries ? "," : "",
+-                           start_sector - part_start, num_sectors-1,
+-                           start_sector + num_sectors-1 - part_start, 
+-                           last_length);
+-            else
+-              grub_printf ("%s%d[0-%d]", num_entries ? "," : "",
+-                           start_sector - part_start, last_length);
+-            num_entries++;
+-            num_sectors = 0;
+-          }
+-      }
+-
+-      if (offset > 0)
+-      {
+-        grub_printf("%s%d[%d-%d]", num_entries ? "," : "",
+-                    sector-part_start, offset, offset+length);
+-        num_entries++;
+-      }
+-      else
+-      {
+-        start_sector = sector;
+-        num_sectors = 1;
+-        last_length = length;
+-      }
+-    }
+-
+   /* Open the file.  */
+   if (! grub_open (arg))
+     return 1;
+@@ -206,15 +241,15 @@
+   grub_printf (")");
+   /* Read in the whole file to DUMMY.  */
+-  disk_read_hook = disk_read_blocklist_func;
++  disk_read_hook = blocklist_read_helper;
+   if (! grub_read (dummy, -1))
+     goto fail;
+   /* The last entry may not be printed yet.  Don't check if it is a
+    * full sector, since it doesn't matter if we read too much. */
+-  if (num_sectors > 0)
+-    grub_printf ("%s%d+%d", num_entries ? "," : "",
+-               start_sector - part_start, num_sectors);
++  if (*num_sectors > 0)
++      grub_printf ("%s%d+%d", *num_entries ? "," : "",
++                *start_sector - part_start, *num_sectors);
+   grub_printf ("\n");
+   
+@@ -852,6 +887,138 @@
+ };
+ #endif /* SUPPORT_NETBOOT */
++static int terminal_func (char *arg, int flags);
++
++#ifdef SUPPORT_GRAPHICS
++\f
++static int splashimage_func(char *arg, int flags) {
++    char splashimage[64];
++    int i;
++    
++    /* filename can only be 64 characters due to our buffer size */
++    if (strlen(arg) > 63)
++      return 1;
++    if (flags == BUILTIN_CMDLINE) {
++      if (!grub_open(arg))
++          return 1;
++      grub_close();
++    }
++
++    strcpy(splashimage, arg);
++
++    /* get rid of TERM_NEED_INIT from the graphics terminal. */
++    for (i = 0; term_table[i].name; i++) {
++      if (grub_strcmp (term_table[i].name, "graphics") == 0) {
++          term_table[i].flags &= ~TERM_NEED_INIT;
++          break;
++      }
++    }
++    
++    graphics_set_splash(splashimage);
++
++    if (flags == BUILTIN_CMDLINE && graphics_inited) {
++      graphics_end();
++      graphics_init();
++      graphics_cls();
++    }
++
++    /* FIXME: should we be explicitly switching the terminal as a 
++     * side effect here? */
++    terminal_func("graphics", flags);
++
++    return 0;
++}
++
++static struct builtin builtin_splashimage =
++{
++  "splashimage",
++  splashimage_func,
++  BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST,
++  "splashimage FILE",
++  "Load FILE as the background image when in graphics mode."
++};
++
++\f
++/* foreground */
++static int
++foreground_func(char *arg, int flags)
++{
++    if (grub_strlen(arg) == 6) {
++      int r = ((hex(arg[0]) << 4) | hex(arg[1])) >> 2;
++      int g = ((hex(arg[2]) << 4) | hex(arg[3])) >> 2;
++      int b = ((hex(arg[4]) << 4) | hex(arg[5])) >> 2;
++
++      foreground = (r << 16) | (g << 8) | b;
++      if (graphics_inited)
++          graphics_set_palette(15, r, g, b);
++
++      return (0);
++    }
++
++    return (1);
++}
++
++static struct builtin builtin_foreground =
++{
++  "foreground",
++  foreground_func,
++  BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST,
++  "foreground RRGGBB",
++  "Sets the foreground color when in graphics mode."
++  "RR is red, GG is green, and BB blue. Numbers must be in hexadecimal."
++};
++
++\f
++/* background */
++static int
++background_func(char *arg, int flags)
++{
++    if (grub_strlen(arg) == 6) {
++      int r = ((hex(arg[0]) << 4) | hex(arg[1])) >> 2;
++      int g = ((hex(arg[2]) << 4) | hex(arg[3])) >> 2;
++      int b = ((hex(arg[4]) << 4) | hex(arg[5])) >> 2;
++
++      background = (r << 16) | (g << 8) | b;
++      if (graphics_inited)
++          graphics_set_palette(0, r, g, b);
++      return (0);
++    }
++
++    return (1);
++}
++
++static struct builtin builtin_background =
++{
++  "background",
++  background_func,
++  BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST,
++  "background RRGGBB",
++  "Sets the background color when in graphics mode."
++  "RR is red, GG is green, and BB blue. Numbers must be in hexadecimal."
++};
++
++#endif /* SUPPORT_GRAPHICS */
++
++\f
++/* clear */
++static int 
++clear_func() 
++{
++  if (current_term->cls)
++    current_term->cls();
++
++  return 0;
++}
++
++static struct builtin builtin_clear =
++{
++  "clear",
++  clear_func,
++  BUILTIN_CMDLINE | BUILTIN_HELP_LIST,
++  "clear",
++  "Clear the screen"
++};
++
\f
+ /* displayapm */
+ static int
+@@ -1233,14 +1400,15 @@
+   for (drive = 0x80; drive < 0x88; drive++)
+     {
+       unsigned long part = 0xFFFFFF;
+-      unsigned long start, len, offset, ext_offset;
+-      int type, entry;
++      unsigned long start, len, offset, ext_offset, gpt_offset;
++      int type, entry, gpt_count, gpt_size;
+       char buf[SECTOR_SIZE];
+       current_drive = drive;
+       while (next_partition (drive, 0xFFFFFF, &part, &type,
+                            &start, &len, &offset, &entry,
+-                           &ext_offset, buf))
++                            &ext_offset, &gpt_offset,
++                            &gpt_count, &gpt_size, buf))
+       {
+         if (type != PC_SLICE_TYPE_NONE
+             && ! IS_PC_SLICE_TYPE_BSD (type)
+@@ -1740,6 +1908,77 @@
\f
+ /* install */
++static struct {
++       int saved_sector;
++       int installaddr;
++       int installlist;
++       char *stage2_first_buffer;
++} install_func_context = {
++       .saved_sector = 0,
++       .installaddr = 0,
++       .installlist = 0,
++       .stage2_first_buffer = NULL,
++};
++
++/* Save the first sector of Stage2 in STAGE2_SECT.  */
++/* Formerly disk_read_savesect_func with local scope inside install_func */
++static void
++install_savesect_helper(int sector, int offset, int length)
++{
++  if (debug)
++    printf ("[%d]", sector);
++
++  /* ReiserFS has files which sometimes contain data not aligned
++     on sector boundaries.  Returning an error is better than
++     silently failing. */
++  if (offset != 0 || length != SECTOR_SIZE)
++    errnum = ERR_UNALIGNED;
++
++  install_func_context.saved_sector = sector;
++}
++
++/* Write SECTOR to INSTALLLIST, and update INSTALLADDR and  INSTALLSECT.  */
++/* Formerly disk_read_blocklist_func with local scope inside install_func */
++static void
++install_blocklist_helper (int sector, int offset, int length)
++{
++  int *installaddr = &install_func_context.installaddr;
++  int *installlist = &install_func_context.installlist;
++  char **stage2_first_buffer = &install_func_context.stage2_first_buffer;
++  /* Was the last sector full? */
++  static int last_length = SECTOR_SIZE;
++
++  if (debug)
++    printf("[%d]", sector);
++
++  if (offset != 0 || last_length != SECTOR_SIZE)
++    {
++      /* We found a non-sector-aligned data block. */
++      errnum = ERR_UNALIGNED;
++      return;
++    }
++
++  last_length = length;
++
++  if (*((unsigned long *) (*installlist - 4))
++      + *((unsigned short *) *installlist) != sector
++      || *installlist == (int) *stage2_first_buffer + SECTOR_SIZE + 4)
++    {
++      *installlist -= 8;
++
++      if (*((unsigned long *) (*installlist - 8)))
++        errnum = ERR_WONT_FIT;
++      else
++        {
++          *((unsigned short *) (*installlist + 2)) = (*installaddr >> 4);
++          *((unsigned long *) (*installlist - 4)) = sector;
++        }
++    }
++
++  *((unsigned short *) *installlist) += 1;
++  *installaddr += 512;
++}
++
+ static int
+ install_func (char *arg, int flags)
+ {
+@@ -1747,8 +1986,12 @@
+   char *stage1_buffer = (char *) RAW_ADDR (0x100000);
+   char *stage2_buffer = stage1_buffer + SECTOR_SIZE;
+   char *old_sect = stage2_buffer + SECTOR_SIZE;
+-  char *stage2_first_buffer = old_sect + SECTOR_SIZE;
+-  char *stage2_second_buffer = stage2_first_buffer + SECTOR_SIZE;
++  /* stage2_first_buffer used to be defined as:
++   * char *stage2_first_buffer = old_sect + SECTOR_SIZE;  */
++  char **stage2_first_buffer = &install_func_context.stage2_first_buffer;
++  /* and stage2_second_buffer was:
++   * char *stage2_second_buffer = stage2_first_buffer + SECTOR_SIZE; */
++  char *stage2_second_buffer = old_sect + SECTOR_SIZE + SECTOR_SIZE;
+   /* XXX: Probably SECTOR_SIZE is reasonable.  */
+   char *config_filename = stage2_second_buffer + SECTOR_SIZE;
+   char *dummy = config_filename + SECTOR_SIZE;
+@@ -1757,10 +2000,11 @@
+   int src_drive, src_partition, src_part_start;
+   int i;
+   struct geometry dest_geom, src_geom;
+-  int saved_sector;
++  int *saved_sector = &install_func_context.saved_sector;
+   int stage2_first_sector, stage2_second_sector;
+   char *ptr;
+-  int installaddr, installlist;
++  int *installaddr = &install_func_context.installaddr;
++  int *installlist = &install_func_context.installlist;
+   /* Point to the location of the name of a configuration file in Stage 2.  */
+   char *config_file_location;
+   /* If FILE is a Stage 1.5?  */
+@@ -1769,67 +2013,13 @@
+   int is_open = 0;
+   /* If LBA is forced?  */
+   int is_force_lba = 0;
+-  /* Was the last sector full? */
+-  int last_length = SECTOR_SIZE;
+-  
++
++  *stage2_first_buffer = old_sect + SECTOR_SIZE;
+ #ifdef GRUB_UTIL
+   /* If the Stage 2 is in a partition mounted by an OS, this will store
+      the filename under the OS.  */
+   char *stage2_os_file = 0;
+ #endif /* GRUB_UTIL */
+-  
+-  auto void disk_read_savesect_func (int sector, int offset, int length);
+-  auto void disk_read_blocklist_func (int sector, int offset, int length);
+-  
+-  /* Save the first sector of Stage2 in STAGE2_SECT.  */
+-  auto void disk_read_savesect_func (int sector, int offset, int length)
+-    {
+-      if (debug)
+-      printf ("[%d]", sector);
+-
+-      /* ReiserFS has files which sometimes contain data not aligned
+-         on sector boundaries.  Returning an error is better than
+-         silently failing. */
+-      if (offset != 0 || length != SECTOR_SIZE)
+-      errnum = ERR_UNALIGNED;
+-
+-      saved_sector = sector;
+-    }
+-
+-  /* Write SECTOR to INSTALLLIST, and update INSTALLADDR and
+-     INSTALLSECT.  */
+-  auto void disk_read_blocklist_func (int sector, int offset, int length)
+-    {
+-      if (debug)
+-      printf("[%d]", sector);
+-
+-      if (offset != 0 || last_length != SECTOR_SIZE)
+-      {
+-        /* We found a non-sector-aligned data block. */
+-        errnum = ERR_UNALIGNED;
+-        return;
+-      }
+-
+-      last_length = length;
+-
+-      if (*((unsigned long *) (installlist - 4))
+-        + *((unsigned short *) installlist) != sector
+-        || installlist == (int) stage2_first_buffer + SECTOR_SIZE + 4)
+-      {
+-        installlist -= 8;
+-
+-        if (*((unsigned long *) (installlist - 8)))
+-          errnum = ERR_WONT_FIT;
+-        else
+-          {
+-            *((unsigned short *) (installlist + 2)) = (installaddr >> 4);
+-            *((unsigned long *) (installlist - 4)) = sector;
+-          }
+-      }
+-
+-      *((unsigned short *) installlist) += 1;
+-      installaddr += 512;
+-    }
+   /* First, check the GNU-style long option.  */
+   while (1)
+@@ -1862,10 +2052,10 @@
+   addr = skip_to (0, file);
+   /* Get the installation address.  */
+-  if (! safe_parse_maxint (&addr, &installaddr))
++  if (! safe_parse_maxint (&addr, installaddr))
+     {
+       /* ADDR is not specified.  */
+-      installaddr = 0;
++      *installaddr = 0;
+       ptr = addr;
+       errnum = 0;
+     }
+@@ -1961,17 +2151,17 @@
+       = 0x9090;
+   
+   /* Read the first sector of Stage 2.  */
+-  disk_read_hook = disk_read_savesect_func;
+-  if (grub_read (stage2_first_buffer, SECTOR_SIZE) != SECTOR_SIZE)
++  disk_read_hook = install_savesect_helper;
++  if (grub_read (*stage2_first_buffer, SECTOR_SIZE) != SECTOR_SIZE)
+     goto fail;
+-  stage2_first_sector = saved_sector;
++  stage2_first_sector = *saved_sector;
+   
+   /* Read the second sector of Stage 2.  */
+   if (grub_read (stage2_second_buffer, SECTOR_SIZE) != SECTOR_SIZE)
+     goto fail;
+-  stage2_second_sector = saved_sector;
++  stage2_second_sector = *saved_sector;
+   
+   /* Check for the version of Stage 2.  */
+   if (*((short *) (stage2_second_buffer + STAGE2_VER_MAJ_OFFS))
+@@ -1987,27 +2177,27 @@
+   /* If INSTALLADDR is not specified explicitly in the command-line,
+      determine it by the Stage 2 id.  */
+-  if (! installaddr)
++  if (! *installaddr)
+     {
+       if (! is_stage1_5)
+       /* Stage 2.  */
+-      installaddr = 0x8000;
++      *installaddr = 0x8000;
+       else
+       /* Stage 1.5.  */
+-      installaddr = 0x2000;
++      *installaddr = 0x2000;
+     }
+   *((unsigned long *) (stage1_buffer + STAGE1_STAGE2_SECTOR))
+     = stage2_first_sector;
+   *((unsigned short *) (stage1_buffer + STAGE1_STAGE2_ADDRESS))
+-    = installaddr;
++    = *installaddr;
+   *((unsigned short *) (stage1_buffer + STAGE1_STAGE2_SEGMENT))
+-    = installaddr >> 4;
++    = *installaddr >> 4;
+-  i = (int) stage2_first_buffer + SECTOR_SIZE - 4;
++  i = (int) *stage2_first_buffer + SECTOR_SIZE - 4;
+   while (*((unsigned long *) i))
+     {
+-      if (i < (int) stage2_first_buffer
++      if (i < (int) *stage2_first_buffer
+         || (*((int *) (i - 4)) & 0x80000000)
+         || *((unsigned short *) i) >= 0xA00
+         || *((short *) (i + 2)) == 0)
+@@ -2021,13 +2211,13 @@
+       i -= 8;
+     }
+-  installlist = (int) stage2_first_buffer + SECTOR_SIZE + 4;
+-  installaddr += SECTOR_SIZE;
++  *installlist = (int) *stage2_first_buffer + SECTOR_SIZE + 4;
++  *installaddr += SECTOR_SIZE;
+   
+   /* Read the whole of Stage2 except for the first sector.  */
+   grub_seek (SECTOR_SIZE);
+-  disk_read_hook = disk_read_blocklist_func;
++  disk_read_hook = install_blocklist_helper;
+   if (! grub_read (dummy, -1))
+     goto fail;
+   
+@@ -2110,7 +2300,7 @@
+         /* Skip the first sector.  */
+         grub_seek (SECTOR_SIZE);
+         
+-        disk_read_hook = disk_read_savesect_func;
++        disk_read_hook = install_savesect_helper;
+         if (grub_read (stage2_buffer, SECTOR_SIZE) != SECTOR_SIZE)
+           goto fail;
+         
+@@ -2180,7 +2370,7 @@
+         else
+ #endif /* GRUB_UTIL */
+           {
+-            if (! devwrite (saved_sector - part_start, 1, stage2_buffer))
++            if (! devwrite (*saved_sector - part_start, 1, stage2_buffer))
+               goto fail;
+           }
+       }
+@@ -2202,7 +2392,7 @@
+         goto fail;
+       }
+-      if (fwrite (stage2_first_buffer, 1, SECTOR_SIZE, fp) != SECTOR_SIZE)
++      if (fwrite (*stage2_first_buffer, 1, SECTOR_SIZE, fp) != SECTOR_SIZE)
+       {
+         fclose (fp);
+         errnum = ERR_WRITE;
+@@ -2229,7 +2419,7 @@
+       goto fail;
+       if (! devwrite (stage2_first_sector - src_part_start, 1,
+-                    stage2_first_buffer))
++                    *stage2_first_buffer))
+       goto fail;
+       if (! devwrite (stage2_second_sector - src_part_start, 1,
+@@ -2815,8 +3005,8 @@
+ {
+   int new_type;
+   unsigned long part = 0xFFFFFF;
+-  unsigned long start, len, offset, ext_offset;
+-  int entry, type;
++  unsigned long start, len, offset, ext_offset, gpt_offset;
++  int entry, type, gpt_count, gpt_size;
+   char mbr[512];
+   /* Get the drive and the partition.  */
+@@ -2853,8 +3043,15 @@
+   /* Look for the partition.  */
+   while (next_partition (current_drive, 0xFFFFFF, &part, &type,
+                        &start, &len, &offset, &entry,
+-                       &ext_offset, mbr))
++                       &ext_offset, &gpt_offset, &gpt_count, &gpt_size, mbr))
+     {
++        /* The partition may not be a GPT partition.  */
++        if (gpt_offset != 0)
++          {
++              errnum = ERR_BAD_ARGUMENT;
++              return 1;
++          }
++
+       if (part == current_partition)
+       {
+         /* Found.  */
+@@ -3830,15 +4027,15 @@
+       {
+         char tmp[16];
+         grub_sprintf (tmp, ",%d", (partition >> 16) & 0xFF);
+-        grub_strncat (device, tmp, 256);
++        grub_strncat (device, tmp, sizeof (device));
+       }
+       if ((partition & 0x00FF00) != 0x00FF00)
+       {
+         char tmp[16];
+         grub_sprintf (tmp, ",%c", 'a' + ((partition >> 8) & 0xFF));
+-        grub_strncat (device, tmp, 256);
++        grub_strncat (device, tmp, sizeof (device));
+       }
+-      grub_strncat (device, ")", 256);
++      grub_strncat (device, ")", sizeof (device));
+     }
+   
+   int embed_stage1_5 (char *stage1_5, int drive, int partition)
+@@ -4085,7 +4282,7 @@
+ };
\f
+-#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES)
++#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES) || defined(SUPPORT_GRAPHICS)
+ /* terminal */
+ static int
+ terminal_func (char *arg, int flags)
+@@ -4244,17 +4441,21 @@
+  end:
+   current_term = term_table + default_term;
+   current_term->flags = term_flags;
+-  
++
+   if (lines)
+     max_lines = lines;
+   else
+-    /* 24 would be a good default value.  */
+-    max_lines = 24;
+-  
++    max_lines = current_term->max_lines;
++
+   /* If the interface is currently the command-line,
+      restart it to repaint the screen.  */
+-  if (current_term != prev_term && (flags & BUILTIN_CMDLINE))
++  if ((current_term != prev_term) && (flags & BUILTIN_CMDLINE)){
++    if (prev_term->shutdown)
++      prev_term->shutdown();
++    if (current_term->startup)
++      current_term->startup();
+     grub_longjmp (restart_cmdline_env, 0);
++  }
+   
+   return 0;
+ }
+@@ -4264,7 +4465,7 @@
+   "terminal",
+   terminal_func,
+   BUILTIN_MENU | BUILTIN_CMDLINE | BUILTIN_HELP_LIST,
+-  "terminal [--dumb] [--no-echo] [--no-edit] [--timeout=SECS] [--lines=LINES] [--silent] [console] [serial] [hercules]",
++  "terminal [--dumb] [--no-echo] [--no-edit] [--timeout=SECS] [--lines=LINES] [--silent] [console] [serial] [hercules] [graphics]",
+   "Select a terminal. When multiple terminals are specified, wait until"
+   " you push any key to continue. If both console and serial are specified,"
+   " the terminal to which you input a key first will be selected. If no"
+@@ -4276,7 +4477,7 @@
+   " seconds. The option --lines specifies the maximum number of lines."
+   " The option --silent is used to suppress messages."
+ };
+-#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES */
++#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES || SUPPORT_GRAPHICS */
\f
+ #ifdef SUPPORT_SERIAL
+@@ -4795,6 +4996,9 @@
+ /* The table of builtin commands. Sorted in dictionary order.  */
+ struct builtin *builtin_table[] =
+ {
++#ifdef SUPPORT_GRAPHICS
++  &builtin_background,
++#endif
+   &builtin_blocklist,
+   &builtin_boot,
+ #ifdef SUPPORT_NETBOOT
+@@ -4802,6 +5006,7 @@
+ #endif /* SUPPORT_NETBOOT */
+   &builtin_cat,
+   &builtin_chainloader,
++  &builtin_clear,
+   &builtin_cmp,
+   &builtin_color,
+   &builtin_configfile,
+@@ -4821,6 +5026,9 @@
+   &builtin_embed,
+   &builtin_fallback,
+   &builtin_find,
++#ifdef SUPPORT_GRAPHICS
++  &builtin_foreground,
++#endif
+   &builtin_fstest,
+   &builtin_geometry,
+   &builtin_halt,
+@@ -4864,9 +5072,12 @@
+ #endif /* SUPPORT_SERIAL */
+   &builtin_setkey,
+   &builtin_setup,
+-#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES)
++#ifdef SUPPORT_GRAPHICS
++  &builtin_splashimage,
++#endif /* SUPPORT_GRAPHICS */
++#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES) || defined(SUPPORT_GRAPHICS)
+   &builtin_terminal,
+-#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES */
++#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES || SUPPORT_GRAPHICS */
+ #ifdef SUPPORT_SERIAL
+   &builtin_terminfo,
+ #endif /* SUPPORT_SERIAL */
+diff -Nur grub-0.97/stage2/builtins.c.orig grub-0.97-patched/stage2/builtins.c.orig
+--- grub-0.97/stage2/builtins.c.orig   1970-01-01 01:00:00.000000000 +0100
++++ grub-0.97-patched/stage2/builtins.c.orig   2005-02-15 22:58:23.000000000 +0100
+@@ -0,0 +1,4884 @@
++/* builtins.c - the GRUB builtin commands */
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 1999,2000,2001,2002,2003,2004  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
++ *  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, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++/* Include stdio.h before shared.h, because we can't define
++   WITHOUT_LIBC_STUBS here.  */
++#ifdef GRUB_UTIL
++# include <stdio.h>
++#endif
++
++#include <shared.h>
++#include <filesys.h>
++#include <term.h>
++
++#ifdef SUPPORT_NETBOOT
++# define GRUB 1
++# include <etherboot.h>
++#endif
++
++#ifdef SUPPORT_SERIAL
++# include <serial.h>
++# include <terminfo.h>
++#endif
++
++#ifdef GRUB_UTIL
++# include <device.h>
++#else /* ! GRUB_UTIL */
++# include <apic.h>
++# include <smp-imps.h>
++#endif /* ! GRUB_UTIL */
++
++#ifdef USE_MD5_PASSWORDS
++# include <md5.h>
++#endif
++
++/* The type of kernel loaded.  */
++kernel_t kernel_type;
++/* The boot device.  */
++static int bootdev;
++/* True when the debug mode is turned on, and false
++   when it is turned off.  */
++int debug = 0;
++/* The default entry.  */
++int default_entry = 0;
++/* The fallback entry.  */
++int fallback_entryno;
++int fallback_entries[MAX_FALLBACK_ENTRIES];
++/* The number of current entry.  */
++int current_entryno;
++/* The address for Multiboot command-line buffer.  */
++static char *mb_cmdline;
++/* The password.  */
++char *password;
++/* The password type.  */
++password_t password_type;
++/* The flag for indicating that the user is authoritative.  */
++int auth = 0;
++/* The timeout.  */
++int grub_timeout = -1;
++/* Whether to show the menu or not.  */
++int show_menu = 1;
++/* The BIOS drive map.  */
++static unsigned short bios_drive_map[DRIVE_MAP_SIZE + 1];
++
++/* Prototypes for allowing straightfoward calling of builtins functions
++   inside other functions.  */
++static int configfile_func (char *arg, int flags);
++
++/* Initialize the data for builtins.  */
++void
++init_builtins (void)
++{
++  kernel_type = KERNEL_TYPE_NONE;
++  /* BSD and chainloading evil hacks!  */
++  bootdev = set_bootdev (0);
++  mb_cmdline = (char *) MB_CMDLINE_BUF;
++}
++
++/* Initialize the data for the configuration file.  */
++void
++init_config (void)
++{
++  default_entry = 0;
++  password = 0;
++  fallback_entryno = -1;
++  fallback_entries[0] = -1;
++  grub_timeout = -1;
++}
++
++/* Check a password for correctness.  Returns 0 if password was
++   correct, and a value != 0 for error, similarly to strcmp. */
++int
++check_password (char *entered, char* expected, password_t type)
++{
++  switch (type)
++    {
++    case PASSWORD_PLAIN:
++      return strcmp (entered, expected);
++
++#ifdef USE_MD5_PASSWORDS
++    case PASSWORD_MD5:
++      return check_md5_password (entered, expected);
++#endif
++    default: 
++      /* unsupported password type: be secure */
++      return 1;
++    }
++}
++
++/* Print which sector is read when loading a file.  */
++static void
++disk_read_print_func (int sector, int offset, int length)
++{
++  grub_printf ("[%d,%d,%d]", sector, offset, length);
++}
++
++\f
++/* blocklist */
++static int
++blocklist_func (char *arg, int flags)
++{
++  char *dummy = (char *) RAW_ADDR (0x100000);
++  int start_sector;
++  int num_sectors = 0;
++  int num_entries = 0;
++  int last_length = 0;
++
++  auto void disk_read_blocklist_func (int sector, int offset, int length);
++  
++  /* Collect contiguous blocks into one entry as many as possible,
++     and print the blocklist notation on the screen.  */
++  auto void disk_read_blocklist_func (int sector, int offset, int length)
++    {
++      if (num_sectors > 0)
++      {
++        if (start_sector + num_sectors == sector
++            && offset == 0 && last_length == SECTOR_SIZE)
++          {
++            num_sectors++;
++            last_length = length;
++            return;
++          }
++        else
++          {
++            if (last_length == SECTOR_SIZE)
++              grub_printf ("%s%d+%d", num_entries ? "," : "",
++                           start_sector - part_start, num_sectors);
++            else if (num_sectors > 1)
++              grub_printf ("%s%d+%d,%d[0-%d]", num_entries ? "," : "",
++                           start_sector - part_start, num_sectors-1,
++                           start_sector + num_sectors-1 - part_start, 
++                           last_length);
++            else
++              grub_printf ("%s%d[0-%d]", num_entries ? "," : "",
++                           start_sector - part_start, last_length);
++            num_entries++;
++            num_sectors = 0;
++          }
++      }
++
++      if (offset > 0)
++      {
++        grub_printf("%s%d[%d-%d]", num_entries ? "," : "",
++                    sector-part_start, offset, offset+length);
++        num_entries++;
++      }
++      else
++      {
++        start_sector = sector;
++        num_sectors = 1;
++        last_length = length;
++      }
++    }
++
++  /* Open the file.  */
++  if (! grub_open (arg))
++    return 1;
++
++  /* Print the device name.  */
++  grub_printf ("(%cd%d",
++             (current_drive & 0x80) ? 'h' : 'f',
++             current_drive & ~0x80);
++  
++  if ((current_partition & 0xFF0000) != 0xFF0000)
++    grub_printf (",%d", (current_partition >> 16) & 0xFF);
++  
++  if ((current_partition & 0x00FF00) != 0x00FF00)
++    grub_printf (",%c", 'a' + ((current_partition >> 8) & 0xFF));
++  
++  grub_printf (")");
++
++  /* Read in the whole file to DUMMY.  */
++  disk_read_hook = disk_read_blocklist_func;
++  if (! grub_read (dummy, -1))
++    goto fail;
++
++  /* The last entry may not be printed yet.  Don't check if it is a
++   * full sector, since it doesn't matter if we read too much. */
++  if (num_sectors > 0)
++    grub_printf ("%s%d+%d", num_entries ? "," : "",
++               start_sector - part_start, num_sectors);
++
++  grub_printf ("\n");
++  
++ fail:
++  disk_read_hook = 0;
++  grub_close ();
++  return errnum;
++}
++
++static struct builtin builtin_blocklist =
++{
++  "blocklist",
++  blocklist_func,
++  BUILTIN_CMDLINE | BUILTIN_HELP_LIST,
++  "blocklist FILE",
++  "Print the blocklist notation of the file FILE."
++};
++
++/* boot */
++static int
++boot_func (char *arg, int flags)
++{
++  /* Clear the int15 handler if we can boot the kernel successfully.
++     This assumes that the boot code never fails only if KERNEL_TYPE is
++     not KERNEL_TYPE_NONE. Is this assumption is bad?  */
++  if (kernel_type != KERNEL_TYPE_NONE)
++    unset_int15_handler ();
++
++#ifdef SUPPORT_NETBOOT
++  /* Shut down the networking.  */
++  cleanup_net ();
++#endif
++  
++  switch (kernel_type)
++    {
++    case KERNEL_TYPE_FREEBSD:
++    case KERNEL_TYPE_NETBSD:
++      /* *BSD */
++      bsd_boot (kernel_type, bootdev, (char *) mbi.cmdline);
++      break;
++
++    case KERNEL_TYPE_LINUX:
++      /* Linux */
++      linux_boot ();
++      break;
++
++    case KERNEL_TYPE_BIG_LINUX:
++      /* Big Linux */
++      big_linux_boot ();
++      break;
++
++    case KERNEL_TYPE_CHAINLOADER:
++      /* Chainloader */
++      
++      /* Check if we should set the int13 handler.  */
++      if (bios_drive_map[0] != 0)
++      {
++        int i;
++        
++        /* Search for SAVED_DRIVE.  */
++        for (i = 0; i < DRIVE_MAP_SIZE; i++)
++          {
++            if (! bios_drive_map[i])
++              break;
++            else if ((bios_drive_map[i] & 0xFF) == saved_drive)
++              {
++                /* Exchage SAVED_DRIVE with the mapped drive.  */
++                saved_drive = (bios_drive_map[i] >> 8) & 0xFF;
++                break;
++              }
++          }
++        
++        /* Set the handler. This is somewhat dangerous.  */
++        set_int13_handler (bios_drive_map);
++      }
++      
++      gateA20 (0);
++      boot_drive = saved_drive;
++      chain_stage1 (0, BOOTSEC_LOCATION, boot_part_addr);
++      break;
++
++    case KERNEL_TYPE_MULTIBOOT:
++      /* Multiboot */
++      multi_boot ((int) entry_addr, (int) &mbi);
++      break;
++
++    default:
++      errnum = ERR_BOOT_COMMAND;
++      return 1;
++    }
++
++  return 0;
++}
++
++static struct builtin builtin_boot =
++{
++  "boot",
++  boot_func,
++  BUILTIN_CMDLINE | BUILTIN_HELP_LIST,
++  "boot",
++  "Boot the OS/chain-loader which has been loaded."
++};
++
++\f
++#ifdef SUPPORT_NETBOOT
++/* bootp */
++static int
++bootp_func (char *arg, int flags)
++{
++  int with_configfile = 0;
++
++  if (grub_memcmp (arg, "--with-configfile", sizeof ("--with-configfile") - 1)
++      == 0)
++    {
++      with_configfile = 1;
++      arg = skip_to (0, arg);
++    }
++  
++  if (! bootp ())
++    {
++      if (errnum == ERR_NONE)
++      errnum = ERR_DEV_VALUES;
++
++      return 1;
++    }
++
++  /* Notify the configuration.  */
++  print_network_configuration ();
++
++  /* XXX: this can cause an endless loop, but there is no easy way to
++     detect such a loop unfortunately.  */
++  if (with_configfile)
++    configfile_func (config_file, flags);
++  
++  return 0;
++}
++
++static struct builtin builtin_bootp =
++{
++  "bootp",
++  bootp_func,
++  BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST,
++  "bootp [--with-configfile]",
++  "Initialize a network device via BOOTP. If the option `--with-configfile'"
++  " is given, try to load a configuration file specified by the 150 vendor"
++  " tag."
++};
++#endif /* SUPPORT_NETBOOT */
++
++\f
++/* cat */
++static int
++cat_func (char *arg, int flags)
++{
++  char c;
++
++  if (! grub_open (arg))
++    return 1;
++
++  while (grub_read (&c, 1))
++    {
++      /* Because running "cat" with a binary file can confuse the terminal,
++       print only some characters as they are.  */
++      if (grub_isspace (c) || (c >= ' ' && c <= '~'))
++      grub_putchar (c);
++      else
++      grub_putchar ('?');
++    }
++  
++  grub_close ();
++  return 0;
++}
++
++static struct builtin builtin_cat =
++{
++  "cat",
++  cat_func,
++  BUILTIN_CMDLINE | BUILTIN_HELP_LIST,
++  "cat FILE",
++  "Print the contents of the file FILE."
++};
++
++\f
++/* chainloader */
++static int
++chainloader_func (char *arg, int flags)
++{
++  int force = 0;
++  char *file = arg;
++
++  /* If the option `--force' is specified?  */
++  if (substring ("--force", arg) <= 0)
++    {
++      force = 1;
++      file = skip_to (0, arg);
++    }
++
++  /* Open the file.  */
++  if (! grub_open (file))
++    {
++      kernel_type = KERNEL_TYPE_NONE;
++      return 1;
++    }
++
++  /* Read the first block.  */
++  if (grub_read ((char *) BOOTSEC_LOCATION, SECTOR_SIZE) != SECTOR_SIZE)
++    {
++      grub_close ();
++      kernel_type = KERNEL_TYPE_NONE;
++
++      /* This below happens, if a file whose size is less than 512 bytes
++       is loaded.  */
++      if (errnum == ERR_NONE)
++      errnum = ERR_EXEC_FORMAT;
++      
++      return 1;
++    }
++
++  /* If not loading it forcibly, check for the signature.  */
++  if (! force
++      && (*((unsigned short *) (BOOTSEC_LOCATION + BOOTSEC_SIG_OFFSET))
++        != BOOTSEC_SIGNATURE))
++    {
++      grub_close ();
++      errnum = ERR_EXEC_FORMAT;
++      kernel_type = KERNEL_TYPE_NONE;
++      return 1;
++    }
++
++  grub_close ();
++  kernel_type = KERNEL_TYPE_CHAINLOADER;
++
++  /* XXX: Windows evil hack. For now, only the first five letters are
++     checked.  */
++  if (IS_PC_SLICE_TYPE_FAT (current_slice)
++      && ! grub_memcmp ((char *) BOOTSEC_LOCATION + BOOTSEC_BPB_SYSTEM_ID,
++                      "MSWIN", 5))
++    *((unsigned long *) (BOOTSEC_LOCATION + BOOTSEC_BPB_HIDDEN_SECTORS))
++      = part_start;
++
++  errnum = ERR_NONE;
++  
++  return 0;
++}
++
++static struct builtin builtin_chainloader =
++{
++  "chainloader",
++  chainloader_func,
++  BUILTIN_CMDLINE | BUILTIN_HELP_LIST,
++  "chainloader [--force] FILE",
++  "Load the chain-loader FILE. If --force is specified, then load it"
++  " forcibly, whether the boot loader signature is present or not."
++};
++
++\f
++/* This function could be used to debug new filesystem code. Put a file
++   in the new filesystem and the same file in a well-tested filesystem.
++   Then, run "cmp" with the files. If no output is obtained, probably
++   the code is good, otherwise investigate what's wrong...  */
++/* cmp FILE1 FILE2 */
++static int
++cmp_func (char *arg, int flags)
++{
++  /* The filenames.  */
++  char *file1, *file2;
++  /* The addresses.  */
++  char *addr1, *addr2;
++  int i;
++  /* The size of the file.  */
++  int size;
++
++  /* Get the filenames from ARG.  */
++  file1 = arg;
++  file2 = skip_to (0, arg);
++  if (! *file1 || ! *file2)
++    {
++      errnum = ERR_BAD_ARGUMENT;
++      return 1;
++    }
++
++  /* Terminate the filenames for convenience.  */
++  nul_terminate (file1);
++  nul_terminate (file2);
++
++  /* Read the whole data from FILE1.  */
++  addr1 = (char *) RAW_ADDR (0x100000);
++  if (! grub_open (file1))
++    return 1;
++  
++  /* Get the size.  */
++  size = filemax;
++  if (grub_read (addr1, -1) != size)
++    {
++      grub_close ();
++      return 1;
++    }
++  
++  grub_close ();
++
++  /* Read the whole data from FILE2.  */
++  addr2 = addr1 + size;
++  if (! grub_open (file2))
++    return 1;
++
++  /* Check if the size of FILE2 is equal to the one of FILE2.  */
++  if (size != filemax)
++    {
++      grub_printf ("Differ in size: 0x%x [%s], 0x%x [%s]\n",
++                 size, file1, filemax, file2);
++      grub_close ();
++      return 0;
++    }
++  
++  if (! grub_read (addr2, -1))
++    {
++      grub_close ();
++      return 1;
++    }
++  
++  grub_close ();
++
++  /* Now compare ADDR1 with ADDR2.  */
++  for (i = 0; i < size; i++)
++    {
++      if (addr1[i] != addr2[i])
++      grub_printf ("Differ at the offset %d: 0x%x [%s], 0x%x [%s]\n",
++                   i, (unsigned) addr1[i], file1,
++                   (unsigned) addr2[i], file2);
++    }
++  
++  return 0;
++}
++
++static struct builtin builtin_cmp =
++{
++  "cmp",
++  cmp_func,
++  BUILTIN_CMDLINE,
++  "cmp FILE1 FILE2",
++  "Compare the file FILE1 with the FILE2 and inform the different values"
++  " if any."
++};
++
++\f
++/* color */
++/* Set new colors used for the menu interface. Support two methods to
++   specify a color name: a direct integer representation and a symbolic
++   color name. An example of the latter is "blink-light-gray/blue".  */
++static int
++color_func (char *arg, int flags)
++{
++  char *normal;
++  char *highlight;
++  int new_normal_color;
++  int new_highlight_color;
++  static char *color_list[16] =
++  {
++    "black",
++    "blue",
++    "green",
++    "cyan",
++    "red",
++    "magenta",
++    "brown",
++    "light-gray",
++    "dark-gray",
++    "light-blue",
++    "light-green",
++    "light-cyan",
++    "light-red",
++    "light-magenta",
++    "yellow",
++    "white"
++  };
++
++  auto int color_number (char *str);
++  
++  /* Convert the color name STR into the magical number.  */
++  auto int color_number (char *str)
++    {
++      char *ptr;
++      int i;
++      int color = 0;
++      
++      /* Find the separator.  */
++      for (ptr = str; *ptr && *ptr != '/'; ptr++)
++      ;
++
++      /* If not found, return -1.  */
++      if (! *ptr)
++      return -1;
++
++      /* Terminate the string STR.  */
++      *ptr++ = 0;
++
++      /* If STR contains the prefix "blink-", then set the `blink' bit
++       in COLOR.  */
++      if (substring ("blink-", str) <= 0)
++      {
++        color = 0x80;
++        str += 6;
++      }
++      
++      /* Search for the color name.  */
++      for (i = 0; i < 16; i++)
++      if (grub_strcmp (color_list[i], str) == 0)
++        {
++          color |= i;
++          break;
++        }
++
++      if (i == 16)
++      return -1;
++
++      str = ptr;
++      nul_terminate (str);
++
++      /* Search for the color name.  */      
++      for (i = 0; i < 8; i++)
++      if (grub_strcmp (color_list[i], str) == 0)
++        {
++          color |= i << 4;
++          break;
++        }
++
++      if (i == 8)
++      return -1;
++
++      return color;
++    }
++      
++  normal = arg;
++  highlight = skip_to (0, arg);
++
++  new_normal_color = color_number (normal);
++  if (new_normal_color < 0 && ! safe_parse_maxint (&normal, &new_normal_color))
++    return 1;
++  
++  /* The second argument is optional, so set highlight_color
++     to inverted NORMAL_COLOR.  */
++  if (! *highlight)
++    new_highlight_color = ((new_normal_color >> 4)
++                         | ((new_normal_color & 0xf) << 4));
++  else
++    {
++      new_highlight_color = color_number (highlight);
++      if (new_highlight_color < 0
++        && ! safe_parse_maxint (&highlight, &new_highlight_color))
++      return 1;
++    }
++
++  if (current_term->setcolor)
++    current_term->setcolor (new_normal_color, new_highlight_color);
++  
++  return 0;
++}
++
++static struct builtin builtin_color =
++{
++  "color",
++  color_func,
++  BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST,
++  "color NORMAL [HIGHLIGHT]",
++  "Change the menu colors. The color NORMAL is used for most"
++  " lines in the menu, and the color HIGHLIGHT is used to highlight the"
++  " line where the cursor points. If you omit HIGHLIGHT, then the"
++  " inverted color of NORMAL is used for the highlighted line."
++  " The format of a color is \"FG/BG\". FG and BG are symbolic color names."
++  " A symbolic color name must be one of these: black, blue, green,"
++  " cyan, red, magenta, brown, light-gray, dark-gray, light-blue,"
++  " light-green, light-cyan, light-red, light-magenta, yellow and white."
++  " But only the first eight names can be used for BG. You can prefix"
++  " \"blink-\" to FG if you want a blinking foreground color."
++};
++
++\f
++/* configfile */
++static int
++configfile_func (char *arg, int flags)
++{
++  char *new_config = config_file;
++
++  /* Check if the file ARG is present.  */
++  if (! grub_open (arg))
++    return 1;
++
++  grub_close ();
++  
++  /* Copy ARG to CONFIG_FILE.  */
++  while ((*new_config++ = *arg++) != 0)
++    ;
++
++#ifdef GRUB_UTIL
++  /* Force to load the configuration file.  */
++  use_config_file = 1;
++#endif
++
++  /* Make sure that the user will not be authoritative.  */
++  auth = 0;
++  
++  /* Restart cmain.  */
++  grub_longjmp (restart_env, 0);
++
++  /* Never reach here.  */
++  return 0;
++}
++
++static struct builtin builtin_configfile =
++{
++  "configfile",
++  configfile_func,
++  BUILTIN_CMDLINE | BUILTIN_HELP_LIST,
++  "configfile FILE",
++  "Load FILE as the configuration file."
++};
++
++\f
++/* debug */
++static int
++debug_func (char *arg, int flags)
++{
++  if (debug)
++    {
++      debug = 0;
++      grub_printf (" Debug mode is turned off\n");
++    }
++  else
++    {
++      debug = 1;
++      grub_printf (" Debug mode is turned on\n");
++    }
++
++  return 0;
++}
++
++static struct builtin builtin_debug =
++{
++  "debug",
++  debug_func,
++  BUILTIN_CMDLINE,
++  "debug",
++  "Turn on/off the debug mode."
++};
++
++\f
++/* default */
++static int
++default_func (char *arg, int flags)
++{
++#ifndef SUPPORT_DISKLESS
++  if (grub_strcmp (arg, "saved") == 0)
++    {
++      default_entry = saved_entryno;
++      return 0;
++    }
++#endif /* SUPPORT_DISKLESS */
++  
++  if (! safe_parse_maxint (&arg, &default_entry))
++    return 1;
++
++  return 0;
++}
++
++static struct builtin builtin_default =
++{
++  "default",
++  default_func,
++  BUILTIN_MENU,
++#if 0
++  "default [NUM | `saved']",
++  "Set the default entry to entry number NUM (if not specified, it is"
++  " 0, the first entry) or the entry number saved by savedefault."
++#endif
++};
++
++\f
++#ifdef GRUB_UTIL
++/* device */
++static int
++device_func (char *arg, int flags)
++{
++  char *drive = arg;
++  char *device;
++
++  /* Get the drive number from DRIVE.  */
++  if (! set_device (drive))
++    return 1;
++
++  /* Get the device argument.  */
++  device = skip_to (0, drive);
++  
++  /* Terminate DEVICE.  */
++  nul_terminate (device);
++
++  if (! *device || ! check_device (device))
++    {
++      errnum = ERR_FILE_NOT_FOUND;
++      return 1;
++    }
++
++  assign_device_name (current_drive, device);
++  
++  return 0;
++}
++
++static struct builtin builtin_device =
++{
++  "device",
++  device_func,
++  BUILTIN_MENU | BUILTIN_CMDLINE | BUILTIN_HELP_LIST,
++  "device DRIVE DEVICE",
++  "Specify DEVICE as the actual drive for a BIOS drive DRIVE. This command"
++  " can be used only in the grub shell."
++};
++#endif /* GRUB_UTIL */
++
++\f
++#ifdef SUPPORT_NETBOOT
++/* dhcp */
++static int
++dhcp_func (char *arg, int flags)
++{
++  /* For now, this is an alias for bootp.  */
++  return bootp_func (arg, flags);
++}
++
++static struct builtin builtin_dhcp =
++{
++  "dhcp",
++  dhcp_func,
++  BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST,
++  "dhcp",
++  "Initialize a network device via DHCP."
++};
++#endif /* SUPPORT_NETBOOT */
++
++\f
++/* displayapm */
++static int
++displayapm_func (char *arg, int flags)
++{
++  if (mbi.flags & MB_INFO_APM_TABLE)
++    {
++      grub_printf ("APM BIOS information:\n"
++                 " Version:          0x%x\n"
++                 " 32-bit CS:        0x%x\n"
++                 " Offset:           0x%x\n"
++                 " 16-bit CS:        0x%x\n"
++                 " 16-bit DS:        0x%x\n"
++                 " 32-bit CS length: 0x%x\n"
++                 " 16-bit CS length: 0x%x\n"
++                 " 16-bit DS length: 0x%x\n",
++                 (unsigned) apm_bios_info.version,
++                 (unsigned) apm_bios_info.cseg,
++                 apm_bios_info.offset,
++                 (unsigned) apm_bios_info.cseg_16,
++                 (unsigned) apm_bios_info.dseg_16,
++                 (unsigned) apm_bios_info.cseg_len,
++                 (unsigned) apm_bios_info.cseg_16_len,
++                 (unsigned) apm_bios_info.dseg_16_len);
++    }
++  else
++    {
++      grub_printf ("No APM BIOS found or probe failed\n");
++    }
++
++  return 0;
++}
++
++static struct builtin builtin_displayapm =
++{
++  "displayapm",
++  displayapm_func,
++  BUILTIN_CMDLINE | BUILTIN_HELP_LIST,
++  "displayapm",
++  "Display APM BIOS information."
++};
++
++\f
++/* displaymem */
++static int
++displaymem_func (char *arg, int flags)
++{
++  if (get_eisamemsize () != -1)
++    grub_printf (" EISA Memory BIOS Interface is present\n");
++  if (get_mmap_entry ((void *) SCRATCHADDR, 0) != 0
++      || *((int *) SCRATCHADDR) != 0)
++    grub_printf (" Address Map BIOS Interface is present\n");
++
++  grub_printf (" Lower memory: %uK, "
++             "Upper memory (to first chipset hole): %uK\n",
++             mbi.mem_lower, mbi.mem_upper);
++
++  if (mbi.flags & MB_INFO_MEM_MAP)
++    {
++      struct AddrRangeDesc *map = (struct AddrRangeDesc *) mbi.mmap_addr;
++      int end_addr = mbi.mmap_addr + mbi.mmap_length;
++
++      grub_printf (" [Address Range Descriptor entries "
++                 "immediately follow (values are 64-bit)]\n");
++      while (end_addr > (int) map)
++      {
++        char *str;
++
++        if (map->Type == MB_ARD_MEMORY)
++          str = "Usable RAM";
++        else
++          str = "Reserved";
++        grub_printf ("   %s:  Base Address:  0x%x X 4GB + 0x%x,\n"
++                     "      Length:   0x%x X 4GB + 0x%x bytes\n",
++                     str,
++                     (unsigned long) (map->BaseAddr >> 32),
++                     (unsigned long) (map->BaseAddr & 0xFFFFFFFF),
++                     (unsigned long) (map->Length >> 32),
++                     (unsigned long) (map->Length & 0xFFFFFFFF));
++
++        map = ((struct AddrRangeDesc *) (((int) map) + 4 + map->size));
++      }
++    }
++
++  return 0;
++}
++
++static struct builtin builtin_displaymem =
++{
++  "displaymem",
++  displaymem_func,
++  BUILTIN_CMDLINE | BUILTIN_HELP_LIST,
++  "displaymem",
++  "Display what GRUB thinks the system address space map of the"
++  " machine is, including all regions of physical RAM installed."
++};
++
++\f
++/* dump FROM TO */
++#ifdef GRUB_UTIL
++static int
++dump_func (char *arg, int flags)
++{
++  char *from, *to;
++  FILE *fp;
++  char c;
++  
++  from = arg;
++  to = skip_to (0, arg);
++  if (! *from || ! *to)
++    {
++      errnum = ERR_BAD_ARGUMENT;
++      return 1;
++    }
++
++  nul_terminate (from);
++  nul_terminate (to);
++  
++  if (! grub_open (from))
++    return 1;
++
++  fp = fopen (to, "w");
++  if (! fp)
++    {
++      errnum = ERR_WRITE;
++      return 1;
++    }
++
++  while (grub_read (&c, 1))
++    if (fputc (c, fp) == EOF)
++      {
++      errnum = ERR_WRITE;
++      fclose (fp);
++      return 1;
++      }
++
++  if (fclose (fp) == EOF)
++    {
++      errnum = ERR_WRITE;
++      return 1;
++    }
++
++  grub_close ();
++  return 0;
++}
++
++static struct builtin builtin_dump =
++  {
++    "dump",
++    dump_func,
++    BUILTIN_CMDLINE,
++    "dump FROM TO",
++    "Dump the contents of the file FROM to the file TO. FROM must be"
++    " a GRUB file and TO must be an OS file."
++  };
++#endif /* GRUB_UTIL */
++
++\f
++static char embed_info[32];
++/* embed */
++/* Embed a Stage 1.5 in the first cylinder after MBR or in the
++   bootloader block in a FFS.  */
++static int
++embed_func (char *arg, int flags)
++{
++  char *stage1_5;
++  char *device;
++  char *stage1_5_buffer = (char *) RAW_ADDR (0x100000);
++  int len, size;
++  int sector;
++  
++  stage1_5 = arg;
++  device = skip_to (0, stage1_5);
++
++  /* Open a Stage 1.5.  */
++  if (! grub_open (stage1_5))
++    return 1;
++
++  /* Read the whole of the Stage 1.5.  */
++  len = grub_read (stage1_5_buffer, -1);
++  grub_close ();
++  
++  if (errnum)
++    return 1;
++  
++  size = (len + SECTOR_SIZE - 1) / SECTOR_SIZE;
++  
++  /* Get the device where the Stage 1.5 will be embedded.  */
++  set_device (device);
++  if (errnum)
++    return 1;
++
++  if (current_partition == 0xFFFFFF)
++    {
++      /* Embed it after the MBR.  */
++      
++      char mbr[SECTOR_SIZE];
++      char ezbios_check[2*SECTOR_SIZE];
++      int i;
++      
++      /* Open the partition.  */
++      if (! open_partition ())
++      return 1;
++
++      /* No floppy has MBR.  */
++      if (! (current_drive & 0x80))
++      {
++        errnum = ERR_DEV_VALUES;
++        return 1;
++      }
++      
++      /* Read the MBR of CURRENT_DRIVE.  */
++      if (! rawread (current_drive, PC_MBR_SECTOR, 0, SECTOR_SIZE, mbr))
++      return 1;
++      
++      /* Sanity check.  */
++      if (! PC_MBR_CHECK_SIG (mbr))
++      {
++        errnum = ERR_BAD_PART_TABLE;
++        return 1;
++      }
++
++      /* Check if the disk can store the Stage 1.5.  */
++      for (i = 0; i < 4; i++)
++      if (PC_SLICE_TYPE (mbr, i) && PC_SLICE_START (mbr, i) - 1 < size)
++        {
++          errnum = ERR_NO_DISK_SPACE;
++          return 1;
++        }
++      
++      /* Check for EZ-BIOS signature. It should be in the third
++       * sector, but due to remapping it can appear in the second, so
++       * load and check both.  
++       */
++      if (! rawread (current_drive, 1, 0, 2 * SECTOR_SIZE, ezbios_check))
++      return 1;
++
++      if (! memcmp (ezbios_check + 3, "AERMH", 5)
++        || ! memcmp (ezbios_check + 512 + 3, "AERMH", 5))
++      {
++        /* The space after the MBR is used by EZ-BIOS which we must 
++         * not overwrite.
++         */
++        errnum = ERR_NO_DISK_SPACE;
++        return 1;
++      }
++
++      sector = 1;
++    }
++  else
++    {
++      /* Embed it in the bootloader block in the filesystem.  */
++      int start_sector;
++      
++      /* Open the partition.  */
++      if (! open_device ())
++      return 1;
++
++      /* Check if the current slice supports embedding.  */
++      if (fsys_table[fsys_type].embed_func == 0
++        || ! fsys_table[fsys_type].embed_func (&start_sector, size))
++      {
++        errnum = ERR_DEV_VALUES;
++        return 1;
++      }
++
++      sector = part_start + start_sector;
++    }
++
++  /* Clear the cache.  */
++  buf_track = -1;
++
++  /* Now perform the embedding.  */
++  if (! devwrite (sector - part_start, size, stage1_5_buffer))
++    return 1;
++  
++  grub_printf (" %d sectors are embedded.\n", size);
++  grub_sprintf (embed_info, "%d+%d", sector - part_start, size);
++  return 0;
++}
++
++static struct builtin builtin_embed =
++{
++  "embed",
++  embed_func,
++  BUILTIN_CMDLINE,
++  "embed STAGE1_5 DEVICE",
++  "Embed the Stage 1.5 STAGE1_5 in the sectors after MBR if DEVICE"
++  " is a drive, or in the \"bootloader\" area if DEVICE is a FFS partition."
++  " Print the number of sectors which STAGE1_5 occupies if successful."
++};
++
++\f
++/* fallback */
++static int
++fallback_func (char *arg, int flags)
++{
++  int i = 0;
++
++  while (*arg)
++    {
++      int entry;
++      int j;
++      
++      if (! safe_parse_maxint (&arg, &entry))
++      return 1;
++
++      /* Remove duplications to prevent infinite looping.  */
++      for (j = 0; j < i; j++)
++      if (entry == fallback_entries[j])
++        break;
++      if (j != i)
++      continue;
++      
++      fallback_entries[i++] = entry;
++      if (i == MAX_FALLBACK_ENTRIES)
++      break;
++      
++      arg = skip_to (0, arg);
++    }
++
++  if (i < MAX_FALLBACK_ENTRIES)
++    fallback_entries[i] = -1;
++
++  fallback_entryno = (i == 0) ? -1 : 0;
++  
++  return 0;
++}
++
++static struct builtin builtin_fallback =
++{
++  "fallback",
++  fallback_func,
++  BUILTIN_MENU,
++#if 0
++  "fallback NUM...",
++  "Go into unattended boot mode: if the default boot entry has any"
++  " errors, instead of waiting for the user to do anything, it"
++  " immediately starts over using the NUM entry (same numbering as the"
++  " `default' command). This obviously won't help if the machine"
++  " was rebooted by a kernel that GRUB loaded."
++#endif
++};
++
++\f
++/* find */
++/* Search for the filename ARG in all of partitions.  */
++static int
++find_func (char *arg, int flags)
++{
++  char *filename = arg;
++  unsigned long drive;
++  unsigned long tmp_drive = saved_drive;
++  unsigned long tmp_partition = saved_partition;
++  int got_file = 0;
++  
++  /* Floppies.  */
++  for (drive = 0; drive < 8; drive++)
++    {
++      current_drive = drive;
++      current_partition = 0xFFFFFF;
++      
++      if (open_device ())
++      {
++        saved_drive = current_drive;
++        saved_partition = current_partition;
++        if (grub_open (filename))
++          {
++            grub_close ();
++            grub_printf (" (fd%d)\n", drive);
++            got_file = 1;
++          }
++      }
++
++      errnum = ERR_NONE;
++    }
++
++  /* Hard disks.  */
++  for (drive = 0x80; drive < 0x88; drive++)
++    {
++      unsigned long part = 0xFFFFFF;
++      unsigned long start, len, offset, ext_offset;
++      int type, entry;
++      char buf[SECTOR_SIZE];
++
++      current_drive = drive;
++      while (next_partition (drive, 0xFFFFFF, &part, &type,
++                           &start, &len, &offset, &entry,
++                           &ext_offset, buf))
++      {
++        if (type != PC_SLICE_TYPE_NONE
++            && ! IS_PC_SLICE_TYPE_BSD (type)
++            && ! IS_PC_SLICE_TYPE_EXTENDED (type))
++          {
++            current_partition = part;
++            if (open_device ())
++              {
++                saved_drive = current_drive;
++                saved_partition = current_partition;
++                if (grub_open (filename))
++                  {
++                    int bsd_part = (part >> 8) & 0xFF;
++                    int pc_slice = part >> 16;
++                    
++                    grub_close ();
++                    
++                    if (bsd_part == 0xFF)
++                      grub_printf (" (hd%d,%d)\n",
++                                   drive - 0x80, pc_slice);
++                    else
++                      grub_printf (" (hd%d,%d,%c)\n",
++                                   drive - 0x80, pc_slice, bsd_part + 'a');
++
++                    got_file = 1;
++                  }
++              }
++          }
++
++        /* We want to ignore any error here.  */
++        errnum = ERR_NONE;
++      }
++
++      /* next_partition always sets ERRNUM in the last call, so clear
++       it.  */
++      errnum = ERR_NONE;
++    }
++
++  saved_drive = tmp_drive;
++  saved_partition = tmp_partition;
++
++  if (got_file)
++    {
++      errnum = ERR_NONE;
++      return 0;
++    }
++
++  errnum = ERR_FILE_NOT_FOUND;
++  return 1;
++}
++
++static struct builtin builtin_find =
++{
++  "find",
++  find_func,
++  BUILTIN_CMDLINE | BUILTIN_HELP_LIST,
++  "find FILENAME",
++  "Search for the filename FILENAME in all of partitions and print the list of"
++  " the devices which contain the file."
++};
++
++\f
++/* fstest */
++static int
++fstest_func (char *arg, int flags)
++{
++  if (disk_read_hook)
++    {
++      disk_read_hook = NULL;
++      printf (" Filesystem tracing is now off\n");
++    }
++  else
++    {
++      disk_read_hook = disk_read_print_func;
++      printf (" Filesystem tracing is now on\n");
++    }
++
++  return 0;
++}
++
++static struct builtin builtin_fstest =
++{
++  "fstest",
++  fstest_func,
++  BUILTIN_CMDLINE,
++  "fstest",
++  "Toggle filesystem test mode."
++};
++
++\f
++/* geometry */
++static int
++geometry_func (char *arg, int flags)
++{
++  struct geometry geom;
++  char *msg;
++  char *device = arg;
++#ifdef GRUB_UTIL
++  char *ptr;
++#endif
++
++  /* Get the device number.  */
++  set_device (device);
++  if (errnum)
++    return 1;
++
++  /* Check for the geometry.  */
++  if (get_diskinfo (current_drive, &geom))
++    {
++      errnum = ERR_NO_DISK;
++      return 1;
++    }
++
++  /* Attempt to read the first sector, because some BIOSes turns out not
++     to support LBA even though they set the bit 0 in the support
++     bitmap, only after reading something actually.  */
++  if (biosdisk (BIOSDISK_READ, current_drive, &geom, 0, 1, SCRATCHSEG))
++    {
++      errnum = ERR_READ;
++      return 1;
++    }
++
++#ifdef GRUB_UTIL
++  ptr = skip_to (0, device);
++  if (*ptr)
++    {
++      char *cylinder, *head, *sector, *total_sector;
++      int num_cylinder, num_head, num_sector, num_total_sector;
++
++      cylinder = ptr;
++      head = skip_to (0, cylinder);
++      sector = skip_to (0, head);
++      total_sector = skip_to (0, sector);
++      if (! safe_parse_maxint (&cylinder, &num_cylinder)
++        || ! safe_parse_maxint (&head, &num_head)
++        || ! safe_parse_maxint (&sector, &num_sector))
++      return 1;
++
++      disks[current_drive].cylinders = num_cylinder;
++      disks[current_drive].heads = num_head;
++      disks[current_drive].sectors = num_sector;
++
++      if (safe_parse_maxint (&total_sector, &num_total_sector))
++      disks[current_drive].total_sectors = num_total_sector;
++      else
++      disks[current_drive].total_sectors
++        = num_cylinder * num_head * num_sector;
++      errnum = 0;
++
++      geom = disks[current_drive];
++      buf_drive = -1;
++    }
++#endif /* GRUB_UTIL */
++
++#ifdef GRUB_UTIL
++  msg = device_map[current_drive];
++#else
++  if (geom.flags & BIOSDISK_FLAG_LBA_EXTENSION)
++    msg = "LBA";
++  else
++    msg = "CHS";
++#endif
++
++  grub_printf ("drive 0x%x: C/H/S = %d/%d/%d, "
++             "The number of sectors = %d, %s\n",
++             current_drive,
++             geom.cylinders, geom.heads, geom.sectors,
++             geom.total_sectors, msg);
++  real_open_partition (1);
++
++  return 0;
++}
++
++static struct builtin builtin_geometry =
++{
++  "geometry",
++  geometry_func,
++  BUILTIN_CMDLINE | BUILTIN_HELP_LIST,
++  "geometry DRIVE [CYLINDER HEAD SECTOR [TOTAL_SECTOR]]",
++  "Print the information for a drive DRIVE. In the grub shell, you can"
++  " set the geometry of the drive arbitrarily. The number of the cylinders,"
++  " the one of the heads, the one of the sectors and the one of the total"
++  " sectors are set to CYLINDER, HEAD, SECTOR and TOTAL_SECTOR,"
++  " respectively. If you omit TOTAL_SECTOR, then it will be calculated based"
++  " on the C/H/S values automatically."
++};
++
++\f
++/* halt */
++static int
++halt_func (char *arg, int flags)
++{
++  int no_apm;
++
++  no_apm = (grub_memcmp (arg, "--no-apm", 8) == 0);
++  grub_halt (no_apm);
++  
++  /* Never reach here.  */
++  return 1;
++}
++
++static struct builtin builtin_halt =
++{
++  "halt",
++  halt_func,
++  BUILTIN_CMDLINE | BUILTIN_HELP_LIST,
++  "halt [--no-apm]",
++  "Halt your system. If APM is avaiable on it, turn off the power using"
++  " the APM BIOS, unless you specify the option `--no-apm'."
++};
++
++\f
++/* help */
++#define MAX_SHORT_DOC_LEN     39
++#define MAX_LONG_DOC_LEN      66
++
++static int
++help_func (char *arg, int flags)
++{
++  int all = 0;
++  
++  if (grub_memcmp (arg, "--all", sizeof ("--all") - 1) == 0)
++    {
++      all = 1;
++      arg = skip_to (0, arg);
++    }
++  
++  if (! *arg)
++    {
++      /* Invoked with no argument. Print the list of the short docs.  */
++      struct builtin **builtin;
++      int left = 1;
++
++      for (builtin = builtin_table; *builtin != 0; builtin++)
++      {
++        int len;
++        int i;
++
++        /* If this cannot be used in the command-line interface,
++           skip this.  */
++        if (! ((*builtin)->flags & BUILTIN_CMDLINE))
++          continue;
++        
++        /* If this doesn't need to be listed automatically and "--all"
++           is not specified, skip this.  */
++        if (! all && ! ((*builtin)->flags & BUILTIN_HELP_LIST))
++          continue;
++
++        len = grub_strlen ((*builtin)->short_doc);
++        /* If the length of SHORT_DOC is too long, truncate it.  */
++        if (len > MAX_SHORT_DOC_LEN - 1)
++          len = MAX_SHORT_DOC_LEN - 1;
++
++        for (i = 0; i < len; i++)
++          grub_putchar ((*builtin)->short_doc[i]);
++
++        for (; i < MAX_SHORT_DOC_LEN; i++)
++          grub_putchar (' ');
++
++        if (! left)
++          grub_putchar ('\n');
++
++        left = ! left;
++      }
++
++      /* If the last entry was at the left column, no newline was printed
++       at the end.  */
++      if (! left)
++      grub_putchar ('\n');
++    }
++  else
++    {
++      /* Invoked with one or more patterns.  */
++      do
++      {
++        struct builtin **builtin;
++        char *next_arg;
++
++        /* Get the next argument.  */
++        next_arg = skip_to (0, arg);
++
++        /* Terminate ARG.  */
++        nul_terminate (arg);
++
++        for (builtin = builtin_table; *builtin; builtin++)
++          {
++            /* Skip this if this is only for the configuration file.  */
++            if (! ((*builtin)->flags & BUILTIN_CMDLINE))
++              continue;
++
++            if (substring (arg, (*builtin)->name) < 1)
++              {
++                char *doc = (*builtin)->long_doc;
++
++                /* At first, print the name and the short doc.  */
++                grub_printf ("%s: %s\n",
++                             (*builtin)->name, (*builtin)->short_doc);
++
++                /* Print the long doc.  */
++                while (*doc)
++                  {
++                    int len = grub_strlen (doc);
++                    int i;
++
++                    /* If LEN is too long, fold DOC.  */
++                    if (len > MAX_LONG_DOC_LEN)
++                      {
++                        /* Fold this line at the position of a space.  */
++                        for (len = MAX_LONG_DOC_LEN; len > 0; len--)
++                          if (doc[len - 1] == ' ')
++                            break;
++                      }
++
++                    grub_printf ("    ");
++                    for (i = 0; i < len; i++)
++                      grub_putchar (*doc++);
++                    grub_putchar ('\n');
++                  }
++              }
++          }
++
++        arg = next_arg;
++      }
++      while (*arg);
++    }
++
++  return 0;
++}
++
++static struct builtin builtin_help =
++{
++  "help",
++  help_func,
++  BUILTIN_CMDLINE | BUILTIN_HELP_LIST,
++  "help [--all] [PATTERN ...]",
++  "Display helpful information about builtin commands. Not all commands"
++  " aren't shown without the option `--all'."
++};
++
++\f
++/* hiddenmenu */
++static int
++hiddenmenu_func (char *arg, int flags)
++{
++  show_menu = 0;
++  return 0;
++}
++
++static struct builtin builtin_hiddenmenu =
++{
++  "hiddenmenu",
++  hiddenmenu_func,
++  BUILTIN_MENU,
++#if 0
++  "hiddenmenu",
++  "Hide the menu."
++#endif
++};
++
++\f
++/* hide */
++static int
++hide_func (char *arg, int flags)
++{
++  if (! set_device (arg))
++    return 1;
++
++  if (! set_partition_hidden_flag (1))
++    return 1;
++
++  return 0;
++}
++
++static struct builtin builtin_hide =
++{
++  "hide",
++  hide_func,
++  BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST,
++  "hide PARTITION",
++  "Hide PARTITION by setting the \"hidden\" bit in"
++  " its partition type code."
++};
++
++\f
++#ifdef SUPPORT_NETBOOT
++/* ifconfig */
++static int
++ifconfig_func (char *arg, int flags)
++{
++  char *svr = 0, *ip = 0, *gw = 0, *sm = 0;
++  
++  if (! eth_probe ())
++    {
++      grub_printf ("No ethernet card found.\n");
++      errnum = ERR_DEV_VALUES;
++      return 1;
++    }
++  
++  while (*arg) 
++    {
++      if (! grub_memcmp ("--server=", arg, sizeof ("--server=") - 1))
++      svr = arg + sizeof("--server=") - 1;
++      else if (! grub_memcmp ("--address=", arg, sizeof ("--address=") - 1))
++      ip = arg + sizeof ("--address=") - 1;
++      else if (! grub_memcmp ("--gateway=", arg, sizeof ("--gateway=") - 1))
++      gw = arg + sizeof ("--gateway=") - 1;
++      else if (! grub_memcmp ("--mask=", arg, sizeof("--mask=") - 1))
++      sm = arg + sizeof ("--mask=") - 1;
++      else
++      {
++        errnum = ERR_BAD_ARGUMENT;
++        return 1;
++      }
++      
++      arg = skip_to (0, arg);
++    }
++  
++  if (! ifconfig (ip, sm, gw, svr))
++    {
++      errnum = ERR_BAD_ARGUMENT;
++      return 1;
++    }
++  
++  print_network_configuration ();
++  return 0;
++}
++
++static struct builtin builtin_ifconfig =
++{
++  "ifconfig",
++  ifconfig_func,
++  BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST,
++  "ifconfig [--address=IP] [--gateway=IP] [--mask=MASK] [--server=IP]",
++  "Configure the IP address, the netmask, the gateway and the server"
++  " address or print current network configuration."
++};
++#endif /* SUPPORT_NETBOOT */
++
++\f
++/* impsprobe */
++static int
++impsprobe_func (char *arg, int flags)
++{
++#ifdef GRUB_UTIL
++  /* In the grub shell, we cannot probe IMPS.  */
++  errnum = ERR_UNRECOGNIZED;
++  return 1;
++#else /* ! GRUB_UTIL */
++  if (!imps_probe ())
++    printf (" No MPS information found or probe failed\n");
++
++  return 0;
++#endif /* ! GRUB_UTIL */
++}
++
++static struct builtin builtin_impsprobe =
++{
++  "impsprobe",
++  impsprobe_func,
++  BUILTIN_CMDLINE,
++  "impsprobe",
++  "Probe the Intel Multiprocessor Specification 1.1 or 1.4"
++  " configuration table and boot the various CPUs which are found into"
++  " a tight loop."
++};
++
++\f
++/* initrd */
++static int
++initrd_func (char *arg, int flags)
++{
++  switch (kernel_type)
++    {
++    case KERNEL_TYPE_LINUX:
++    case KERNEL_TYPE_BIG_LINUX:
++      if (! load_initrd (arg))
++      return 1;
++      break;
++
++    default:
++      errnum = ERR_NEED_LX_KERNEL;
++      return 1;
++    }
++
++  return 0;
++}
++
++static struct builtin builtin_initrd =
++{
++  "initrd",
++  initrd_func,
++  BUILTIN_CMDLINE | BUILTIN_HELP_LIST,
++  "initrd FILE [ARG ...]",
++  "Load an initial ramdisk FILE for a Linux format boot image and set the"
++  " appropriate parameters in the Linux setup area in memory."
++};
++
++\f
++/* install */
++static int
++install_func (char *arg, int flags)
++{
++  char *stage1_file, *dest_dev, *file, *addr;
++  char *stage1_buffer = (char *) RAW_ADDR (0x100000);
++  char *stage2_buffer = stage1_buffer + SECTOR_SIZE;
++  char *old_sect = stage2_buffer + SECTOR_SIZE;
++  char *stage2_first_buffer = old_sect + SECTOR_SIZE;
++  char *stage2_second_buffer = stage2_first_buffer + SECTOR_SIZE;
++  /* XXX: Probably SECTOR_SIZE is reasonable.  */
++  char *config_filename = stage2_second_buffer + SECTOR_SIZE;
++  char *dummy = config_filename + SECTOR_SIZE;
++  int new_drive = GRUB_INVALID_DRIVE;
++  int dest_drive, dest_partition, dest_sector;
++  int src_drive, src_partition, src_part_start;
++  int i;
++  struct geometry dest_geom, src_geom;
++  int saved_sector;
++  int stage2_first_sector, stage2_second_sector;
++  char *ptr;
++  int installaddr, installlist;
++  /* Point to the location of the name of a configuration file in Stage 2.  */
++  char *config_file_location;
++  /* If FILE is a Stage 1.5?  */
++  int is_stage1_5 = 0;
++  /* Must call grub_close?  */
++  int is_open = 0;
++  /* If LBA is forced?  */
++  int is_force_lba = 0;
++  /* Was the last sector full? */
++  int last_length = SECTOR_SIZE;
++  
++#ifdef GRUB_UTIL
++  /* If the Stage 2 is in a partition mounted by an OS, this will store
++     the filename under the OS.  */
++  char *stage2_os_file = 0;
++#endif /* GRUB_UTIL */
++  
++  auto void disk_read_savesect_func (int sector, int offset, int length);
++  auto void disk_read_blocklist_func (int sector, int offset, int length);
++  
++  /* Save the first sector of Stage2 in STAGE2_SECT.  */
++  auto void disk_read_savesect_func (int sector, int offset, int length)
++    {
++      if (debug)
++      printf ("[%d]", sector);
++
++      /* ReiserFS has files which sometimes contain data not aligned
++         on sector boundaries.  Returning an error is better than
++         silently failing. */
++      if (offset != 0 || length != SECTOR_SIZE)
++      errnum = ERR_UNALIGNED;
++
++      saved_sector = sector;
++    }
++
++  /* Write SECTOR to INSTALLLIST, and update INSTALLADDR and
++     INSTALLSECT.  */
++  auto void disk_read_blocklist_func (int sector, int offset, int length)
++    {
++      if (debug)
++      printf("[%d]", sector);
++
++      if (offset != 0 || last_length != SECTOR_SIZE)
++      {
++        /* We found a non-sector-aligned data block. */
++        errnum = ERR_UNALIGNED;
++        return;
++      }
++
++      last_length = length;
++
++      if (*((unsigned long *) (installlist - 4))
++        + *((unsigned short *) installlist) != sector
++        || installlist == (int) stage2_first_buffer + SECTOR_SIZE + 4)
++      {
++        installlist -= 8;
++
++        if (*((unsigned long *) (installlist - 8)))
++          errnum = ERR_WONT_FIT;
++        else
++          {
++            *((unsigned short *) (installlist + 2)) = (installaddr >> 4);
++            *((unsigned long *) (installlist - 4)) = sector;
++          }
++      }
++
++      *((unsigned short *) installlist) += 1;
++      installaddr += 512;
++    }
++
++  /* First, check the GNU-style long option.  */
++  while (1)
++    {
++      if (grub_memcmp ("--force-lba", arg, sizeof ("--force-lba") - 1) == 0)
++      {
++        is_force_lba = 1;
++        arg = skip_to (0, arg);
++      }
++#ifdef GRUB_UTIL
++      else if (grub_memcmp ("--stage2=", arg, sizeof ("--stage2=") - 1) == 0)
++      {
++        stage2_os_file = arg + sizeof ("--stage2=") - 1;
++        arg = skip_to (0, arg);
++        nul_terminate (stage2_os_file);
++      }
++#endif /* GRUB_UTIL */
++      else
++      break;
++    }
++  
++  stage1_file = arg;
++  dest_dev = skip_to (0, stage1_file);
++  if (*dest_dev == 'd')
++    {
++      new_drive = 0;
++      dest_dev = skip_to (0, dest_dev);
++    }
++  file = skip_to (0, dest_dev);
++  addr = skip_to (0, file);
++
++  /* Get the installation address.  */
++  if (! safe_parse_maxint (&addr, &installaddr))
++    {
++      /* ADDR is not specified.  */
++      installaddr = 0;
++      ptr = addr;
++      errnum = 0;
++    }
++  else
++    ptr = skip_to (0, addr);
++
++#ifndef NO_DECOMPRESSION
++  /* Do not decompress Stage 1 or Stage 2.  */
++  no_decompression = 1;
++#endif
++
++  /* Read Stage 1.  */
++  is_open = grub_open (stage1_file);
++  if (! is_open
++      || ! grub_read (stage1_buffer, SECTOR_SIZE) == SECTOR_SIZE)
++    goto fail;
++
++  /* Read the old sector from DEST_DEV.  */
++  if (! set_device (dest_dev)
++      || ! open_partition ()
++      || ! devread (0, 0, SECTOR_SIZE, old_sect))
++    goto fail;
++
++  /* Store the information for the destination device.  */
++  dest_drive = current_drive;
++  dest_partition = current_partition;
++  dest_geom = buf_geom;
++  dest_sector = part_start;
++
++  /* Copy the possible DOS BPB, 59 bytes at byte offset 3.  */
++  grub_memmove (stage1_buffer + BOOTSEC_BPB_OFFSET,
++              old_sect + BOOTSEC_BPB_OFFSET,
++              BOOTSEC_BPB_LENGTH);
++
++  /* If for a hard disk, copy the possible MBR/extended part table.  */
++  if (dest_drive & 0x80)
++    grub_memmove (stage1_buffer + STAGE1_WINDOWS_NT_MAGIC,
++                old_sect + STAGE1_WINDOWS_NT_MAGIC,
++                STAGE1_PARTEND - STAGE1_WINDOWS_NT_MAGIC);
++
++  /* Check for the version and the signature of Stage 1.  */
++  if (*((short *)(stage1_buffer + STAGE1_VER_MAJ_OFFS)) != COMPAT_VERSION
++      || (*((unsigned short *) (stage1_buffer + BOOTSEC_SIG_OFFSET))
++        != BOOTSEC_SIGNATURE))
++    {
++      errnum = ERR_BAD_VERSION;
++      goto fail;
++    }
++
++  /* This below is not true any longer. But should we leave this alone?  */
++  
++  /* If DEST_DRIVE is a floppy, Stage 2 must have the iteration probe
++     routine.  */
++  if (! (dest_drive & 0x80)
++      && (*((unsigned char *) (stage1_buffer + BOOTSEC_PART_OFFSET)) == 0x80
++        || stage1_buffer[BOOTSEC_PART_OFFSET] == 0))
++    {
++      errnum = ERR_BAD_VERSION;
++      goto fail;
++    }
++
++  grub_close ();
++  
++  /* Open Stage 2.  */
++  is_open = grub_open (file);
++  if (! is_open)
++    goto fail;
++
++  src_drive = current_drive;
++  src_partition = current_partition;
++  src_part_start = part_start;
++  src_geom = buf_geom;
++  
++  if (! new_drive)
++    new_drive = src_drive;
++  else if (src_drive != dest_drive)
++    grub_printf ("Warning: the option `d' was not used, but the Stage 1 will"
++               " be installed on a\ndifferent drive than the drive where"
++               " the Stage 2 resides.\n");
++
++  /* Set the boot drive.  */
++  *((unsigned char *) (stage1_buffer + STAGE1_BOOT_DRIVE)) = new_drive;
++
++  /* Set the "force LBA" flag.  */
++  *((unsigned char *) (stage1_buffer + STAGE1_FORCE_LBA)) = is_force_lba;
++
++  /* If DEST_DRIVE is a hard disk, enable the workaround, which is
++     for buggy BIOSes which don't pass boot drive correctly. Instead,
++     they pass 0x00 or 0x01 even when booted from 0x80.  */
++  if (dest_drive & BIOS_FLAG_FIXED_DISK)
++    /* Replace the jmp (2 bytes) with double nop's.  */
++    *((unsigned short *) (stage1_buffer + STAGE1_BOOT_DRIVE_CHECK))
++      = 0x9090;
++  
++  /* Read the first sector of Stage 2.  */
++  disk_read_hook = disk_read_savesect_func;
++  if (grub_read (stage2_first_buffer, SECTOR_SIZE) != SECTOR_SIZE)
++    goto fail;
++
++  stage2_first_sector = saved_sector;
++  
++  /* Read the second sector of Stage 2.  */
++  if (grub_read (stage2_second_buffer, SECTOR_SIZE) != SECTOR_SIZE)
++    goto fail;
++
++  stage2_second_sector = saved_sector;
++  
++  /* Check for the version of Stage 2.  */
++  if (*((short *) (stage2_second_buffer + STAGE2_VER_MAJ_OFFS))
++      != COMPAT_VERSION)
++    {
++      errnum = ERR_BAD_VERSION;
++      goto fail;
++    }
++
++  /* Check for the Stage 2 id.  */
++  if (stage2_second_buffer[STAGE2_STAGE2_ID] != STAGE2_ID_STAGE2)
++    is_stage1_5 = 1;
++
++  /* If INSTALLADDR is not specified explicitly in the command-line,
++     determine it by the Stage 2 id.  */
++  if (! installaddr)
++    {
++      if (! is_stage1_5)
++      /* Stage 2.  */
++      installaddr = 0x8000;
++      else
++      /* Stage 1.5.  */
++      installaddr = 0x2000;
++    }
++
++  *((unsigned long *) (stage1_buffer + STAGE1_STAGE2_SECTOR))
++    = stage2_first_sector;
++  *((unsigned short *) (stage1_buffer + STAGE1_STAGE2_ADDRESS))
++    = installaddr;
++  *((unsigned short *) (stage1_buffer + STAGE1_STAGE2_SEGMENT))
++    = installaddr >> 4;
++
++  i = (int) stage2_first_buffer + SECTOR_SIZE - 4;
++  while (*((unsigned long *) i))
++    {
++      if (i < (int) stage2_first_buffer
++        || (*((int *) (i - 4)) & 0x80000000)
++        || *((unsigned short *) i) >= 0xA00
++        || *((short *) (i + 2)) == 0)
++      {
++        errnum = ERR_BAD_VERSION;
++        goto fail;
++      }
++
++      *((int *) i) = 0;
++      *((int *) (i - 4)) = 0;
++      i -= 8;
++    }
++
++  installlist = (int) stage2_first_buffer + SECTOR_SIZE + 4;
++  installaddr += SECTOR_SIZE;
++  
++  /* Read the whole of Stage2 except for the first sector.  */
++  grub_seek (SECTOR_SIZE);
++
++  disk_read_hook = disk_read_blocklist_func;
++  if (! grub_read (dummy, -1))
++    goto fail;
++  
++  disk_read_hook = 0;
++  
++  /* Find a string for the configuration filename.  */
++  config_file_location = stage2_second_buffer + STAGE2_VER_STR_OFFS;
++  while (*(config_file_location++))
++    ;
++
++  /* Set the "force LBA" flag for Stage2.  */
++  *((unsigned char *) (stage2_second_buffer + STAGE2_FORCE_LBA))
++    = is_force_lba;
++  
++  if (*ptr == 'p')
++    {
++      *((long *) (stage2_second_buffer + STAGE2_INSTALLPART))
++      = src_partition;
++      if (is_stage1_5)
++      {
++        /* Reset the device information in FILE if it is a Stage 1.5.  */
++        unsigned long device = 0xFFFFFFFF;
++
++        grub_memmove (config_file_location, (char *) &device,
++                      sizeof (device));
++      }
++
++      ptr = skip_to (0, ptr);
++    }
++
++  if (*ptr)
++    {
++      grub_strcpy (config_filename, ptr);
++      nul_terminate (config_filename);
++      
++      if (! is_stage1_5)
++      /* If it is a Stage 2, just copy PTR to CONFIG_FILE_LOCATION.  */
++      grub_strcpy (config_file_location, ptr);
++      else
++      {
++        char *real_config;
++        unsigned long device;
++
++        /* Translate the external device syntax to the internal device
++           syntax.  */
++        if (! (real_config = set_device (ptr)))
++          {
++            /* The Stage 2 PTR does not contain the device name, so
++               use the root device instead.  */
++            errnum = ERR_NONE;
++            current_drive = saved_drive;
++            current_partition = saved_partition;
++            real_config = ptr;
++          }
++        
++        if (current_drive == src_drive)
++          {
++            /* If the drive where the Stage 2 resides is the same as
++               the one where the Stage 1.5 resides, do not embed the
++               drive number.  */
++            current_drive = GRUB_INVALID_DRIVE;
++          }
++
++        device = (current_drive << 24) | current_partition;
++        grub_memmove (config_file_location, (char *) &device,
++                      sizeof (device));
++        grub_strcpy (config_file_location + sizeof (device),
++                     real_config);
++      }
++
++      /* If a Stage 1.5 is used, then we need to modify the Stage2.  */
++      if (is_stage1_5)
++      {
++        char *real_config_filename = skip_to (0, ptr);
++        
++        is_open = grub_open (config_filename);
++        if (! is_open)
++          goto fail;
++
++        /* Skip the first sector.  */
++        grub_seek (SECTOR_SIZE);
++        
++        disk_read_hook = disk_read_savesect_func;
++        if (grub_read (stage2_buffer, SECTOR_SIZE) != SECTOR_SIZE)
++          goto fail;
++        
++        disk_read_hook = 0;
++        grub_close ();
++        is_open = 0;
++        
++        /* Sanity check.  */
++        if (*(stage2_buffer + STAGE2_STAGE2_ID) != STAGE2_ID_STAGE2)
++          {
++            errnum = ERR_BAD_VERSION;
++            goto fail;
++          }
++
++        /* Set the "force LBA" flag for Stage2.  */
++        *(stage2_buffer + STAGE2_FORCE_LBA) = is_force_lba;
++
++        /* If REAL_CONFIG_FILENAME is specified, copy it to the Stage2.  */
++        if (*real_config_filename)
++          {
++            /* Specified */
++            char *location;
++            
++            /* Find a string for the configuration filename.  */
++            location = stage2_buffer + STAGE2_VER_STR_OFFS;
++            while (*(location++))
++              ;
++            
++            /* Copy the name.  */
++            grub_strcpy (location, real_config_filename);
++          }
++        
++        /* Write it to the disk.  */
++        buf_track = -1;
++
++#ifdef GRUB_UTIL
++        /* In the grub shell, access the Stage 2 via the OS filesystem
++           service, if possible.  */
++        if (stage2_os_file)
++          {
++            FILE *fp;
++
++            fp = fopen (stage2_os_file, "r+");
++            if (! fp)
++              {
++                errnum = ERR_FILE_NOT_FOUND;
++                goto fail;
++              }
++
++            if (fseek (fp, SECTOR_SIZE, SEEK_SET) != 0)
++              {
++                fclose (fp);
++                errnum = ERR_BAD_VERSION;
++                goto fail;
++              }
++
++            if (fwrite (stage2_buffer, 1, SECTOR_SIZE, fp)
++                != SECTOR_SIZE)
++              {
++                fclose (fp);
++                errnum = ERR_WRITE;
++                goto fail;
++              }
++
++            fclose (fp);
++          }
++        else
++#endif /* GRUB_UTIL */
++          {
++            if (! devwrite (saved_sector - part_start, 1, stage2_buffer))
++              goto fail;
++          }
++      }
++    }
++
++  /* Clear the cache.  */
++  buf_track = -1;
++
++  /* Write the modified sectors of Stage2 to the disk.  */
++#ifdef GRUB_UTIL
++  if (! is_stage1_5 && stage2_os_file)
++    {
++      FILE *fp;
++
++      fp = fopen (stage2_os_file, "r+");
++      if (! fp)
++      {
++        errnum = ERR_FILE_NOT_FOUND;
++        goto fail;
++      }
++
++      if (fwrite (stage2_first_buffer, 1, SECTOR_SIZE, fp) != SECTOR_SIZE)
++      {
++        fclose (fp);
++        errnum = ERR_WRITE;
++        goto fail;
++      }
++
++      if (fwrite (stage2_second_buffer, 1, SECTOR_SIZE, fp) != SECTOR_SIZE)
++      {
++        fclose (fp);
++        errnum = ERR_WRITE;
++        goto fail;
++      }
++
++      fclose (fp);
++    }
++  else
++#endif /* GRUB_UTIL */
++    {
++      /* The first.  */
++      current_drive = src_drive;
++      current_partition = src_partition;
++
++      if (! open_partition ())
++      goto fail;
++
++      if (! devwrite (stage2_first_sector - src_part_start, 1,
++                    stage2_first_buffer))
++      goto fail;
++
++      if (! devwrite (stage2_second_sector - src_part_start, 1,
++                    stage2_second_buffer))
++      goto fail;
++    }
++  
++  /* Write the modified sector of Stage 1 to the disk.  */
++  current_drive = dest_drive;
++  current_partition = dest_partition;
++  if (! open_partition ())
++    goto fail;
++
++  devwrite (0, 1, stage1_buffer);
++
++ fail:
++  if (is_open)
++    grub_close ();
++  
++  disk_read_hook = 0;
++  
++#ifndef NO_DECOMPRESSION
++  no_decompression = 0;
++#endif
++
++  return errnum;
++}
++
++static struct builtin builtin_install =
++{
++  "install",
++  install_func,
++  BUILTIN_CMDLINE,
++  "install [--stage2=STAGE2_FILE] [--force-lba] STAGE1 [d] DEVICE STAGE2 [ADDR] [p] [CONFIG_FILE] [REAL_CONFIG_FILE]",
++  "Install STAGE1 on DEVICE, and install a blocklist for loading STAGE2"
++  " as a Stage 2. If the option `d' is present, the Stage 1 will always"
++  " look for the disk where STAGE2 was installed, rather than using"
++  " the booting drive. The Stage 2 will be loaded at address ADDR, which"
++  " will be determined automatically if you don't specify it. If"
++  " the option `p' or CONFIG_FILE is present, then the first block"
++  " of Stage 2 is patched with new values of the partition and name"
++  " of the configuration file used by the true Stage 2 (for a Stage 1.5,"
++  " this is the name of the true Stage 2) at boot time. If STAGE2 is a Stage"
++  " 1.5 and REAL_CONFIG_FILE is present, then the Stage 2 CONFIG_FILE is"
++  " patched with the configuration filename REAL_CONFIG_FILE."
++  " If the option `--force-lba' is specified, disable some sanity checks"
++  " for LBA mode. If the option `--stage2' is specified, rewrite the Stage"
++  " 2 via your OS's filesystem instead of the raw device."
++};
++
++\f
++/* ioprobe */
++static int
++ioprobe_func (char *arg, int flags)
++{
++#ifdef GRUB_UTIL
++  
++  errnum = ERR_UNRECOGNIZED;
++  return 1;
++  
++#else /* ! GRUB_UTIL */
++  
++  unsigned short *port;
++  
++  /* Get the drive number.  */
++  set_device (arg);
++  if (errnum)
++    return 1;
++
++  /* Clean out IO_MAP.  */
++  grub_memset ((char *) io_map, 0, IO_MAP_SIZE * sizeof (unsigned short));
++
++  /* Track the int13 handler.  */
++  track_int13 (current_drive);
++  
++  /* Print out the result.  */
++  for (port = io_map; *port != 0; port++)
++    grub_printf (" 0x%x", (unsigned int) *port);
++
++  return 0;
++  
++#endif /* ! GRUB_UTIL */
++}
++
++static struct builtin builtin_ioprobe =
++{
++  "ioprobe",
++  ioprobe_func,
++  BUILTIN_CMDLINE,
++  "ioprobe DRIVE",
++  "Probe I/O ports used for the drive DRIVE."
++};
++
++\f
++/* kernel */
++static int
++kernel_func (char *arg, int flags)
++{
++  int len;
++  kernel_t suggested_type = KERNEL_TYPE_NONE;
++  unsigned long load_flags = 0;
++
++#ifndef AUTO_LINUX_MEM_OPT
++  load_flags |= KERNEL_LOAD_NO_MEM_OPTION;
++#endif
++
++  /* Deal with GNU-style long options.  */
++  while (1)
++    {
++      /* If the option `--type=TYPE' is specified, convert the string to
++       a kernel type.  */
++      if (grub_memcmp (arg, "--type=", 7) == 0)
++      {
++        arg += 7;
++        
++        if (grub_memcmp (arg, "netbsd", 6) == 0)
++          suggested_type = KERNEL_TYPE_NETBSD;
++        else if (grub_memcmp (arg, "freebsd", 7) == 0)
++          suggested_type = KERNEL_TYPE_FREEBSD;
++        else if (grub_memcmp (arg, "openbsd", 7) == 0)
++          /* XXX: For now, OpenBSD is identical to NetBSD, from GRUB's
++             point of view.  */
++          suggested_type = KERNEL_TYPE_NETBSD;
++        else if (grub_memcmp (arg, "linux", 5) == 0)
++          suggested_type = KERNEL_TYPE_LINUX;
++        else if (grub_memcmp (arg, "biglinux", 8) == 0)
++          suggested_type = KERNEL_TYPE_BIG_LINUX;
++        else if (grub_memcmp (arg, "multiboot", 9) == 0)
++          suggested_type = KERNEL_TYPE_MULTIBOOT;
++        else
++          {
++            errnum = ERR_BAD_ARGUMENT;
++            return 1;
++          }
++      }
++      /* If the `--no-mem-option' is specified, don't pass a Linux's mem
++       option automatically. If the kernel is another type, this flag
++       has no effect.  */
++      else if (grub_memcmp (arg, "--no-mem-option", 15) == 0)
++      load_flags |= KERNEL_LOAD_NO_MEM_OPTION;
++      else
++      break;
++
++      /* Try the next.  */
++      arg = skip_to (0, arg);
++    }
++      
++  len = grub_strlen (arg);
++
++  /* Reset MB_CMDLINE.  */
++  mb_cmdline = (char *) MB_CMDLINE_BUF;
++  if (len + 1 > MB_CMDLINE_BUFLEN)
++    {
++      errnum = ERR_WONT_FIT;
++      return 1;
++    }
++
++  /* Copy the command-line to MB_CMDLINE.  */
++  grub_memmove (mb_cmdline, arg, len + 1);
++  kernel_type = load_image (arg, mb_cmdline, suggested_type, load_flags);
++  if (kernel_type == KERNEL_TYPE_NONE)
++    return 1;
++
++  mb_cmdline += len + 1;
++  return 0;
++}
++
++static struct builtin builtin_kernel =
++{
++  "kernel",
++  kernel_func,
++  BUILTIN_CMDLINE | BUILTIN_HELP_LIST,
++  "kernel [--no-mem-option] [--type=TYPE] FILE [ARG ...]",
++  "Attempt to load the primary boot image from FILE. The rest of the"
++  " line is passed verbatim as the \"kernel command line\".  Any modules"
++  " must be reloaded after using this command. The option --type is used"
++  " to suggest what type of kernel to be loaded. TYPE must be either of"
++  " \"netbsd\", \"freebsd\", \"openbsd\", \"linux\", \"biglinux\" and"
++  " \"multiboot\". The option --no-mem-option tells GRUB not to pass a"
++  " Linux's mem option automatically."
++};
++
++\f
++/* lock */
++static int
++lock_func (char *arg, int flags)
++{
++  if (! auth && password)
++    {
++      errnum = ERR_PRIVILEGED;
++      return 1;
++    }
++
++  return 0;
++}
++
++static struct builtin builtin_lock =
++{
++  "lock",
++  lock_func,
++  BUILTIN_CMDLINE,
++  "lock",
++  "Break a command execution unless the user is authenticated."
++};
++  
++\f
++/* makeactive */
++static int
++makeactive_func (char *arg, int flags)
++{
++  if (! make_saved_active ())
++    return 1;
++
++  return 0;
++}
++
++static struct builtin builtin_makeactive =
++{
++  "makeactive",
++  makeactive_func,
++  BUILTIN_CMDLINE | BUILTIN_HELP_LIST,
++  "makeactive",
++  "Set the active partition on the root disk to GRUB's root device."
++  " This command is limited to _primary_ PC partitions on a hard disk."
++};
++
++\f
++/* map */
++/* Map FROM_DRIVE to TO_DRIVE.  */
++static int
++map_func (char *arg, int flags)
++{
++  char *to_drive;
++  char *from_drive;
++  unsigned long to, from;
++  int i;
++  
++  to_drive = arg;
++  from_drive = skip_to (0, arg);
++
++  /* Get the drive number for TO_DRIVE.  */
++  set_device (to_drive);
++  if (errnum)
++    return 1;
++  to = current_drive;
++
++  /* Get the drive number for FROM_DRIVE.  */
++  set_device (from_drive);
++  if (errnum)
++    return 1;
++  from = current_drive;
++
++  /* Search for an empty slot in BIOS_DRIVE_MAP.  */
++  for (i = 0; i < DRIVE_MAP_SIZE; i++)
++    {
++      /* Perhaps the user wants to override the map.  */
++      if ((bios_drive_map[i] & 0xff) == from)
++      break;
++      
++      if (! bios_drive_map[i])
++      break;
++    }
++
++  if (i == DRIVE_MAP_SIZE)
++    {
++      errnum = ERR_WONT_FIT;
++      return 1;
++    }
++
++  if (to == from)
++    /* If TO is equal to FROM, delete the entry.  */
++    grub_memmove ((char *) &bios_drive_map[i], (char *) &bios_drive_map[i + 1],
++                sizeof (unsigned short) * (DRIVE_MAP_SIZE - i));
++  else
++    bios_drive_map[i] = from | (to << 8);
++  
++  return 0;
++}
++
++static struct builtin builtin_map =
++{
++  "map",
++  map_func,
++  BUILTIN_CMDLINE | BUILTIN_HELP_LIST,
++  "map TO_DRIVE FROM_DRIVE",
++  "Map the drive FROM_DRIVE to the drive TO_DRIVE. This is necessary"
++  " when you chain-load some operating systems, such as DOS, if such an"
++  " OS resides at a non-first drive."
++};
++
++\f
++#ifdef USE_MD5_PASSWORDS
++/* md5crypt */
++static int
++md5crypt_func (char *arg, int flags)
++{
++  char crypted[36];
++  char key[32];
++  unsigned int seed;
++  int i;
++  const char *const seedchars =
++    "./0123456789ABCDEFGHIJKLMNOPQRST"
++    "UVWXYZabcdefghijklmnopqrstuvwxyz";
++  
++  /* First create a salt.  */
++
++  /* The magical prefix.  */
++  grub_memset (crypted, 0, sizeof (crypted));
++  grub_memmove (crypted, "$1$", 3);
++
++  /* Create the length of a salt.  */
++  seed = currticks ();
++
++  /* Generate a salt.  */
++  for (i = 0; i < 8 && seed; i++)
++    {
++      /* FIXME: This should be more random.  */
++      crypted[3 + i] = seedchars[seed & 0x3f];
++      seed >>= 6;
++    }
++
++  /* A salt must be terminated with `$', if it is less than 8 chars.  */
++  crypted[3 + i] = '$';
++
++#ifdef DEBUG_MD5CRYPT
++  grub_printf ("salt = %s\n", crypted);
++#endif
++  
++  /* Get a password.  */
++  grub_memset (key, 0, sizeof (key));
++  get_cmdline ("Password: ", key, sizeof (key) - 1, '*', 0);
++
++  /* Crypt the key.  */
++  make_md5_password (key, crypted);
++
++  grub_printf ("Encrypted: %s\n", crypted);
++  return 0;
++}
++
++static struct builtin builtin_md5crypt =
++{
++  "md5crypt",
++  md5crypt_func,
++  BUILTIN_CMDLINE | BUILTIN_HELP_LIST,
++  "md5crypt",
++  "Generate a password in MD5 format."
++};
++#endif /* USE_MD5_PASSWORDS */
++
++\f
++/* module */
++static int
++module_func (char *arg, int flags)
++{
++  int len = grub_strlen (arg);
++
++  switch (kernel_type)
++    {
++    case KERNEL_TYPE_MULTIBOOT:
++      if (mb_cmdline + len + 1 > (char *) MB_CMDLINE_BUF + MB_CMDLINE_BUFLEN)
++      {
++        errnum = ERR_WONT_FIT;
++        return 1;
++      }
++      grub_memmove (mb_cmdline, arg, len + 1);
++      if (! load_module (arg, mb_cmdline))
++      return 1;
++      mb_cmdline += len + 1;
++      break;
++
++    case KERNEL_TYPE_LINUX:
++    case KERNEL_TYPE_BIG_LINUX:
++      if (! load_initrd (arg))
++      return 1;
++      break;
++
++    default:
++      errnum = ERR_NEED_MB_KERNEL;
++      return 1;
++    }
++
++  return 0;
++}
++
++static struct builtin builtin_module =
++{
++  "module",
++  module_func,
++  BUILTIN_CMDLINE | BUILTIN_HELP_LIST,
++  "module FILE [ARG ...]",
++  "Load a boot module FILE for a Multiboot format boot image (no"
++  " interpretation of the file contents is made, so users of this"
++  " command must know what the kernel in question expects). The"
++  " rest of the line is passed as the \"module command line\", like"
++  " the `kernel' command."
++};
++
++\f
++/* modulenounzip */
++static int
++modulenounzip_func (char *arg, int flags)
++{
++  int ret;
++
++#ifndef NO_DECOMPRESSION
++  no_decompression = 1;
++#endif
++
++  ret = module_func (arg, flags);
++
++#ifndef NO_DECOMPRESSION
++  no_decompression = 0;
++#endif
++
++  return ret;
++}
++
++static struct builtin builtin_modulenounzip =
++{
++  "modulenounzip",
++  modulenounzip_func,
++  BUILTIN_CMDLINE | BUILTIN_HELP_LIST,
++  "modulenounzip FILE [ARG ...]",
++  "The same as `module', except that automatic decompression is"
++  " disabled."
++};
++
++\f
++/* pager [on|off] */
++static int
++pager_func (char *arg, int flags)
++{
++  /* If ARG is empty, toggle the flag.  */
++  if (! *arg)
++    use_pager = ! use_pager;
++  else if (grub_memcmp (arg, "on", 2) == 0)
++    use_pager = 1;
++  else if (grub_memcmp (arg, "off", 3) == 0)
++    use_pager = 0;
++  else
++    {
++      errnum = ERR_BAD_ARGUMENT;
++      return 1;
++    }
++
++  grub_printf (" Internal pager is now %s\n", use_pager ? "on" : "off");
++  return 0;
++}
++
++static struct builtin builtin_pager =
++{
++  "pager",
++  pager_func,
++  BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST,
++  "pager [FLAG]",
++  "Toggle pager mode with no argument. If FLAG is given and its value"
++  " is `on', turn on the mode. If FLAG is `off', turn off the mode."
++};
++
++\f
++/* partnew PART TYPE START LEN */
++static int
++partnew_func (char *arg, int flags)
++{
++  int new_type, new_start, new_len;
++  int start_cl, start_ch, start_dh;
++  int end_cl, end_ch, end_dh;
++  int entry;
++  char mbr[512];
++
++  /* Convert a LBA address to a CHS address in the INT 13 format.  */
++  auto void lba_to_chs (int lba, int *cl, int *ch, int *dh);
++  void lba_to_chs (int lba, int *cl, int *ch, int *dh)
++    {
++      int cylinder, head, sector;
++
++      sector = lba % buf_geom.sectors + 1;
++      head = (lba / buf_geom.sectors) % buf_geom.heads;
++      cylinder = lba / (buf_geom.sectors * buf_geom.heads);
++
++      if (cylinder >= buf_geom.cylinders)
++      cylinder = buf_geom.cylinders - 1;
++      
++      *cl = sector | ((cylinder & 0x300) >> 2);
++      *ch = cylinder & 0xFF;
++      *dh = head;
++    }
++      
++  /* Get the drive and the partition.  */
++  if (! set_device (arg))
++    return 1;
++
++  /* The drive must be a hard disk.  */
++  if (! (current_drive & 0x80))
++    {
++      errnum = ERR_BAD_ARGUMENT;
++      return 1;
++    }
++
++  /* The partition must a primary partition.  */
++  if ((current_partition >> 16) > 3
++      || (current_partition & 0xFFFF) != 0xFFFF)
++    {
++      errnum = ERR_BAD_ARGUMENT;
++      return 1;
++    }
++
++  entry = current_partition >> 16;
++  
++  /* Get the new partition type.  */
++  arg = skip_to (0, arg);
++  if (! safe_parse_maxint (&arg, &new_type))
++    return 1;
++
++  /* The partition type is unsigned char.  */
++  if (new_type > 0xFF)
++    {
++      errnum = ERR_BAD_ARGUMENT;
++      return 1;
++    }
++
++  /* Get the new partition start.  */
++  arg = skip_to (0, arg);
++  if (! safe_parse_maxint (&arg, &new_start))
++    return 1;
++  
++  /* Get the new partition length.  */
++  arg = skip_to (0, arg);
++  if (! safe_parse_maxint (&arg, &new_len))
++    return 1;
++
++  /* Read the MBR.  */
++  if (! rawread (current_drive, 0, 0, SECTOR_SIZE, mbr))
++    return 1;
++
++  /* Check if the new partition will fit in the disk.  */
++  if (new_start + new_len > buf_geom.total_sectors)
++    {
++      errnum = ERR_GEOM;
++      return 1;
++    }
++
++  /* Store the partition information in the MBR.  */
++  lba_to_chs (new_start, &start_cl, &start_ch, &start_dh);
++  lba_to_chs (new_start + new_len - 1, &end_cl, &end_ch, &end_dh);
++
++  PC_SLICE_FLAG (mbr, entry) = 0;
++  PC_SLICE_HEAD (mbr, entry) = start_dh;
++  PC_SLICE_SEC (mbr, entry) = start_cl;
++  PC_SLICE_CYL (mbr, entry) = start_ch;
++  PC_SLICE_TYPE (mbr, entry) = new_type;
++  PC_SLICE_EHEAD (mbr, entry) = end_dh;
++  PC_SLICE_ESEC (mbr, entry) = end_cl;
++  PC_SLICE_ECYL (mbr, entry) = end_ch;
++  PC_SLICE_START (mbr, entry) = new_start;
++  PC_SLICE_LENGTH (mbr, entry) = new_len;
++
++  /* Make sure that the MBR has a valid signature.  */
++  PC_MBR_SIG (mbr) = PC_MBR_SIGNATURE;
++  
++  /* Write back the MBR to the disk.  */
++  buf_track = -1;
++  if (! rawwrite (current_drive, 0, mbr))
++    return 1;
++
++  return 0;
++}
++
++static struct builtin builtin_partnew =
++{
++  "partnew",
++  partnew_func,
++  BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST,
++  "partnew PART TYPE START LEN",
++  "Create a primary partition at the starting address START with the"
++  " length LEN, with the type TYPE. START and LEN are in sector units."
++};
++
++\f
++/* parttype PART TYPE */
++static int
++parttype_func (char *arg, int flags)
++{
++  int new_type;
++  unsigned long part = 0xFFFFFF;
++  unsigned long start, len, offset, ext_offset;
++  int entry, type;
++  char mbr[512];
++
++  /* Get the drive and the partition.  */
++  if (! set_device (arg))
++    return 1;
++
++  /* The drive must be a hard disk.  */
++  if (! (current_drive & 0x80))
++    {
++      errnum = ERR_BAD_ARGUMENT;
++      return 1;
++    }
++  
++  /* The partition must be a PC slice.  */
++  if ((current_partition >> 16) == 0xFF
++      || (current_partition & 0xFFFF) != 0xFFFF)
++    {
++      errnum = ERR_BAD_ARGUMENT;
++      return 1;
++    }
++
++  /* Get the new partition type.  */
++  arg = skip_to (0, arg);
++  if (! safe_parse_maxint (&arg, &new_type))
++    return 1;
++
++  /* The partition type is unsigned char.  */
++  if (new_type > 0xFF)
++    {
++      errnum = ERR_BAD_ARGUMENT;
++      return 1;
++    }
++
++  /* Look for the partition.  */
++  while (next_partition (current_drive, 0xFFFFFF, &part, &type,
++                       &start, &len, &offset, &entry,
++                       &ext_offset, mbr))
++    {
++      if (part == current_partition)
++      {
++        /* Found.  */
++
++        /* Set the type to NEW_TYPE.  */
++        PC_SLICE_TYPE (mbr, entry) = new_type;
++        
++        /* Write back the MBR to the disk.  */
++        buf_track = -1;
++        if (! rawwrite (current_drive, offset, mbr))
++          return 1;
++
++        /* Succeed.  */
++        return 0;
++      }
++    }
++
++  /* The partition was not found.  ERRNUM was set by next_partition.  */
++  return 1;
++}
++
++static struct builtin builtin_parttype =
++{
++  "parttype",
++  parttype_func,
++  BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST,
++  "parttype PART TYPE",
++  "Change the type of the partition PART to TYPE."
++};
++
++\f
++/* password */
++static int
++password_func (char *arg, int flags)
++{
++  int len;
++  password_t type = PASSWORD_PLAIN;
++
++#ifdef USE_MD5_PASSWORDS
++  if (grub_memcmp (arg, "--md5", 5) == 0)
++    {
++      type = PASSWORD_MD5;
++      arg = skip_to (0, arg);
++    }
++#endif
++  if (grub_memcmp (arg, "--", 2) == 0)
++    {
++      type = PASSWORD_UNSUPPORTED;
++      arg = skip_to (0, arg);
++    }
++
++  if ((flags & (BUILTIN_CMDLINE | BUILTIN_SCRIPT)) != 0)
++    {
++      /* Do password check! */
++      char entered[32];
++      
++      /* Wipe out any previously entered password */
++      entered[0] = 0;
++      get_cmdline ("Password: ", entered, 31, '*', 0);
++
++      nul_terminate (arg);
++      if (check_password (entered, arg, type) != 0)
++      {
++        errnum = ERR_PRIVILEGED;
++        return 1;
++      }
++    }
++  else
++    {
++      len = grub_strlen (arg);
++      
++      /* PASSWORD NUL NUL ... */
++      if (len + 2 > PASSWORD_BUFLEN)
++      {
++        errnum = ERR_WONT_FIT;
++        return 1;
++      }
++      
++      /* Copy the password and clear the rest of the buffer.  */
++      password = (char *) PASSWORD_BUF;
++      grub_memmove (password, arg, len);
++      grub_memset (password + len, 0, PASSWORD_BUFLEN - len);
++      password_type = type;
++    }
++  return 0;
++}
++
++static struct builtin builtin_password =
++{
++  "password",
++  password_func,
++  BUILTIN_MENU | BUILTIN_CMDLINE | BUILTIN_NO_ECHO,
++  "password [--md5] PASSWD [FILE]",
++  "If used in the first section of a menu file, disable all"
++  " interactive editing control (menu entry editor and"
++  " command line). If the password PASSWD is entered, it loads the"
++  " FILE as a new config file and restarts the GRUB Stage 2. If you"
++  " omit the argument FILE, then GRUB just unlocks privileged"
++  " instructions.  You can also use it in the script section, in"
++  " which case it will ask for the password, before continueing."
++  " The option --md5 tells GRUB that PASSWD is encrypted with"
++  " md5crypt."
++};
++
++\f
++/* pause */
++static int
++pause_func (char *arg, int flags)
++{
++  printf("%s\n", arg);
++
++  /* If ESC is returned, then abort this entry.  */
++  if (ASCII_CHAR (getkey ()) == 27)
++    return 1;
++
++  return 0;
++}
++
++static struct builtin builtin_pause =
++{
++  "pause",
++  pause_func,
++  BUILTIN_CMDLINE | BUILTIN_NO_ECHO,
++  "pause [MESSAGE ...]",
++  "Print MESSAGE, then wait until a key is pressed."
++};
++
++\f
++#ifdef GRUB_UTIL
++/* quit */
++static int
++quit_func (char *arg, int flags)
++{
++  stop ();
++  
++  /* Never reach here.  */
++  return 0;
++}
++
++static struct builtin builtin_quit =
++{
++  "quit",
++  quit_func,
++  BUILTIN_CMDLINE | BUILTIN_HELP_LIST,
++  "quit",
++  "Exit from the GRUB shell."
++};
++#endif /* GRUB_UTIL */
++
++\f
++#ifdef SUPPORT_NETBOOT
++/* rarp */
++static int
++rarp_func (char *arg, int flags)
++{
++  if (! rarp ())
++    {
++      if (errnum == ERR_NONE)
++      errnum = ERR_DEV_VALUES;
++
++      return 1;
++    }
++
++  /* Notify the configuration.  */
++  print_network_configuration ();
++  return 0;
++}
++
++static struct builtin builtin_rarp =
++{
++  "rarp",
++  rarp_func,
++  BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST,
++  "rarp",
++  "Initialize a network device via RARP."
++};
++#endif /* SUPPORT_NETBOOT */
++
++\f
++static int
++read_func (char *arg, int flags)
++{
++  int addr;
++
++  if (! safe_parse_maxint (&arg, &addr))
++    return 1;
++
++  grub_printf ("Address 0x%x: Value 0x%x\n",
++             addr, *((unsigned *) RAW_ADDR (addr)));
++  return 0;
++}
++
++static struct builtin builtin_read =
++{
++  "read",
++  read_func,
++  BUILTIN_CMDLINE,
++  "read ADDR",
++  "Read a 32-bit value from memory at address ADDR and"
++  " display it in hex format."
++};
++
++\f
++/* reboot */
++static int
++reboot_func (char *arg, int flags)
++{
++  grub_reboot ();
++
++  /* Never reach here.  */
++  return 1;
++}
++
++static struct builtin builtin_reboot =
++{
++  "reboot",
++  reboot_func,
++  BUILTIN_CMDLINE | BUILTIN_HELP_LIST,
++  "reboot",
++  "Reboot your system."
++};
++
++\f
++/* Print the root device information.  */
++static void
++print_root_device (void)
++{
++  if (saved_drive == NETWORK_DRIVE)
++    {
++      /* Network drive.  */
++      grub_printf (" (nd):");
++    }
++  else if (saved_drive & 0x80)
++    {
++      /* Hard disk drive.  */
++      grub_printf (" (hd%d", saved_drive - 0x80);
++      
++      if ((saved_partition & 0xFF0000) != 0xFF0000)
++      grub_printf (",%d", saved_partition >> 16);
++
++      if ((saved_partition & 0x00FF00) != 0x00FF00)
++      grub_printf (",%c", ((saved_partition >> 8) & 0xFF) + 'a');
++
++      grub_printf ("):");
++    }
++  else
++    {
++      /* Floppy disk drive.  */
++      grub_printf (" (fd%d):", saved_drive);
++    }
++
++  /* Print the filesystem information.  */
++  current_partition = saved_partition;
++  current_drive = saved_drive;
++  print_fsys_type ();
++}
++
++static int
++real_root_func (char *arg, int attempt_mount)
++{
++  int hdbias = 0;
++  char *biasptr;
++  char *next;
++
++  /* If ARG is empty, just print the current root device.  */
++  if (! *arg)
++    {
++      print_root_device ();
++      return 0;
++    }
++  
++  /* Call set_device to get the drive and the partition in ARG.  */
++  next = set_device (arg);
++  if (! next)
++    return 1;
++
++  /* Ignore ERR_FSYS_MOUNT.  */
++  if (attempt_mount)
++    {
++      if (! open_device () && errnum != ERR_FSYS_MOUNT)
++      return 1;
++    }
++  else
++    {
++      /* This is necessary, because the location of a partition table
++       must be set appropriately.  */
++      if (open_partition ())
++      {
++        set_bootdev (0);
++        if (errnum)
++          return 1;
++      }
++    }
++  
++  /* Clear ERRNUM.  */
++  errnum = 0;
++  saved_partition = current_partition;
++  saved_drive = current_drive;
++
++  if (attempt_mount)
++    {
++      /* BSD and chainloading evil hacks !!  */
++      biasptr = skip_to (0, next);
++      safe_parse_maxint (&biasptr, &hdbias);
++      errnum = 0;
++      bootdev = set_bootdev (hdbias);
++      if (errnum)
++      return 1;
++      
++      /* Print the type of the filesystem.  */
++      print_fsys_type ();
++    }
++  
++  return 0;
++}
++
++static int
++root_func (char *arg, int flags)
++{
++  return real_root_func (arg, 1);
++}
++
++static struct builtin builtin_root =
++{
++  "root",
++  root_func,
++  BUILTIN_CMDLINE | BUILTIN_HELP_LIST,
++  "root [DEVICE [HDBIAS]]",
++  "Set the current \"root device\" to the device DEVICE, then"
++  " attempt to mount it to get the partition size (for passing the"
++  " partition descriptor in `ES:ESI', used by some chain-loaded"
++  " bootloaders), the BSD drive-type (for booting BSD kernels using"
++  " their native boot format), and correctly determine "
++  " the PC partition where a BSD sub-partition is located. The"
++  " optional HDBIAS parameter is a number to tell a BSD kernel"
++  " how many BIOS drive numbers are on controllers before the current"
++  " one. For example, if there is an IDE disk and a SCSI disk, and your"
++  " FreeBSD root partition is on the SCSI disk, then use a `1' for HDBIAS."
++};
++
++\f
++/* rootnoverify */
++static int
++rootnoverify_func (char *arg, int flags)
++{
++  return real_root_func (arg, 0);
++}
++
++static struct builtin builtin_rootnoverify =
++{
++  "rootnoverify",
++  rootnoverify_func,
++  BUILTIN_CMDLINE | BUILTIN_HELP_LIST,
++  "rootnoverify [DEVICE [HDBIAS]]",
++  "Similar to `root', but don't attempt to mount the partition. This"
++  " is useful for when an OS is outside of the area of the disk that"
++  " GRUB can read, but setting the correct root device is still"
++  " desired. Note that the items mentioned in `root' which"
++  " derived from attempting the mount will NOT work correctly."
++};
++
++\f
++/* savedefault */
++static int
++savedefault_func (char *arg, int flags)
++{
++#if !defined(SUPPORT_DISKLESS) && !defined(GRUB_UTIL)
++  unsigned long tmp_drive = saved_drive;
++  unsigned long tmp_partition = saved_partition;
++  char *default_file = (char *) DEFAULT_FILE_BUF;
++  char buf[10];
++  char sect[SECTOR_SIZE];
++  int entryno;
++  int sector_count = 0;
++  int saved_sectors[2];
++  int saved_offsets[2];
++  int saved_lengths[2];
++
++  /* Save sector information about at most two sectors.  */
++  auto void disk_read_savesect_func (int sector, int offset, int length);
++  void disk_read_savesect_func (int sector, int offset, int length)
++    {
++      if (sector_count < 2)
++      {
++        saved_sectors[sector_count] = sector;
++        saved_offsets[sector_count] = offset;
++        saved_lengths[sector_count] = length;
++      }
++      sector_count++;
++    }
++  
++  /* This command is only useful when you boot an entry from the menu
++     interface.  */
++  if (! (flags & BUILTIN_SCRIPT))
++    {
++      errnum = ERR_UNRECOGNIZED;
++      return 1;
++    }
++
++  /* Determine a saved entry number.  */
++  if (*arg)
++    {
++      if (grub_memcmp (arg, "fallback", sizeof ("fallback") - 1) == 0)
++      {
++        int i;
++        int index = 0;
++        
++        for (i = 0; i < MAX_FALLBACK_ENTRIES; i++)
++          {
++            if (fallback_entries[i] < 0)
++              break;
++            if (fallback_entries[i] == current_entryno)
++              {
++                index = i + 1;
++                break;
++              }
++          }
++        
++        if (index >= MAX_FALLBACK_ENTRIES || fallback_entries[index] < 0)
++          {
++            /* This is the last.  */
++            errnum = ERR_BAD_ARGUMENT;
++            return 1;
++          }
++
++        entryno = fallback_entries[index];
++      }
++      else if (! safe_parse_maxint (&arg, &entryno))
++      return 1;
++    }
++  else
++    entryno = current_entryno;
++
++  /* Open the default file.  */
++  saved_drive = boot_drive;
++  saved_partition = install_partition;
++  if (grub_open (default_file))
++    {
++      int len;
++      
++      disk_read_hook = disk_read_savesect_func;
++      len = grub_read (buf, sizeof (buf));
++      disk_read_hook = 0;
++      grub_close ();
++      
++      if (len != sizeof (buf))
++      {
++        /* This is too small. Do not modify the file manually, please!  */
++        errnum = ERR_READ;
++        goto fail;
++      }
++
++      if (sector_count > 2)
++      {
++        /* Is this possible?! Too fragmented!  */
++        errnum = ERR_FSYS_CORRUPT;
++        goto fail;
++      }
++      
++      /* Set up a string to be written.  */
++      grub_memset (buf, '\n', sizeof (buf));
++      grub_sprintf (buf, "%d", entryno);
++      
++      if (saved_lengths[0] < sizeof (buf))
++      {
++        /* The file is anchored to another file and the first few bytes
++           are spanned in two sectors. Uggh...  */
++        if (! rawread (current_drive, saved_sectors[0], 0, SECTOR_SIZE,
++                       sect))
++          goto fail;
++        grub_memmove (sect + saved_offsets[0], buf, saved_lengths[0]);
++        if (! rawwrite (current_drive, saved_sectors[0], sect))
++          goto fail;
++
++        if (! rawread (current_drive, saved_sectors[1], 0, SECTOR_SIZE,
++                       sect))
++          goto fail;
++        grub_memmove (sect + saved_offsets[1],
++                      buf + saved_lengths[0],
++                      sizeof (buf) - saved_lengths[0]);
++        if (! rawwrite (current_drive, saved_sectors[1], sect))
++          goto fail;
++      }
++      else
++      {
++        /* This is a simple case. It fits into a single sector.  */
++        if (! rawread (current_drive, saved_sectors[0], 0, SECTOR_SIZE,
++                       sect))
++          goto fail;
++        grub_memmove (sect + saved_offsets[0], buf, sizeof (buf));
++        if (! rawwrite (current_drive, saved_sectors[0], sect))
++          goto fail;
++      }
++
++      /* Clear the cache.  */
++      buf_track = -1;
++    }
++
++ fail:
++  saved_drive = tmp_drive;
++  saved_partition = tmp_partition;
++  return errnum;
++#else /* ! SUPPORT_DISKLESS && ! GRUB_UTIL */
++  errnum = ERR_UNRECOGNIZED;
++  return 1;
++#endif /* ! SUPPORT_DISKLESS && ! GRUB_UTIL */
++}
++
++static struct builtin builtin_savedefault =
++{
++  "savedefault",
++  savedefault_func,
++  BUILTIN_CMDLINE,
++  "savedefault [NUM | `fallback']",
++  "Save the current entry as the default boot entry if no argument is"
++  " specified. If a number is specified, this number is saved. If"
++  " `fallback' is used, next fallback entry is saved."
++};
++
++\f
++#ifdef SUPPORT_SERIAL
++/* serial */
++static int
++serial_func (char *arg, int flags)
++{
++  unsigned short port = serial_hw_get_port (0);
++  unsigned int speed = 9600;
++  int word_len = UART_8BITS_WORD;
++  int parity = UART_NO_PARITY;
++  int stop_bit_len = UART_1_STOP_BIT;
++
++  /* Process GNU-style long options.
++     FIXME: We should implement a getopt-like function, to avoid
++     duplications.  */
++  while (1)
++    {
++      if (grub_memcmp (arg, "--unit=", sizeof ("--unit=") - 1) == 0)
++      {
++        char *p = arg + sizeof ("--unit=") - 1;
++        int unit;
++        
++        if (! safe_parse_maxint (&p, &unit))
++          return 1;
++        
++        if (unit < 0 || unit > 3)
++          {
++            errnum = ERR_DEV_VALUES;
++            return 1;
++          }
++
++        port = serial_hw_get_port (unit);
++      }
++      else if (grub_memcmp (arg, "--speed=", sizeof ("--speed=") - 1) == 0)
++      {
++        char *p = arg + sizeof ("--speed=") - 1;
++        int num;
++        
++        if (! safe_parse_maxint (&p, &num))
++          return 1;
++
++        speed = (unsigned int) num;
++      }
++      else if (grub_memcmp (arg, "--port=", sizeof ("--port=") - 1) == 0)
++      {
++        char *p = arg + sizeof ("--port=") - 1;
++        int num;
++        
++        if (! safe_parse_maxint (&p, &num))
++          return 1;
++
++        port = (unsigned short) num;
++      }
++      else if (grub_memcmp (arg, "--word=", sizeof ("--word=") - 1) == 0)
++      {
++        char *p = arg + sizeof ("--word=") - 1;
++        int len;
++        
++        if (! safe_parse_maxint (&p, &len))
++          return 1;
++
++        switch (len)
++          {
++          case 5: word_len = UART_5BITS_WORD; break;
++          case 6: word_len = UART_6BITS_WORD; break;
++          case 7: word_len = UART_7BITS_WORD; break;
++          case 8: word_len = UART_8BITS_WORD; break;
++          default:
++            errnum = ERR_BAD_ARGUMENT;
++            return 1;
++          }
++      }
++      else if (grub_memcmp (arg, "--stop=", sizeof ("--stop=") - 1) == 0)
++      {
++        char *p = arg + sizeof ("--stop=") - 1;
++        int len;
++        
++        if (! safe_parse_maxint (&p, &len))
++          return 1;
++
++        switch (len)
++          {
++          case 1: stop_bit_len = UART_1_STOP_BIT; break;
++          case 2: stop_bit_len = UART_2_STOP_BITS; break;
++          default:
++            errnum = ERR_BAD_ARGUMENT;
++            return 1;
++          }
++      }
++      else if (grub_memcmp (arg, "--parity=", sizeof ("--parity=") - 1) == 0)
++      {
++        char *p = arg + sizeof ("--parity=") - 1;
++
++        if (grub_memcmp (p, "no", sizeof ("no") - 1) == 0)
++          parity = UART_NO_PARITY;
++        else if (grub_memcmp (p, "odd", sizeof ("odd") - 1) == 0)
++          parity = UART_ODD_PARITY;
++        else if (grub_memcmp (p, "even", sizeof ("even") - 1) == 0)
++          parity = UART_EVEN_PARITY;
++        else
++          {
++            errnum = ERR_BAD_ARGUMENT;
++            return 1;
++          }
++      }
++# ifdef GRUB_UTIL
++      /* In the grub shell, don't use any port number but open a tty
++       device instead.  */
++      else if (grub_memcmp (arg, "--device=", sizeof ("--device=") - 1) == 0)
++      {
++        char *p = arg + sizeof ("--device=") - 1;
++        char dev[256];        /* XXX */
++        char *q = dev;
++        
++        while (*p && ! grub_isspace (*p))
++          *q++ = *p++;
++        
++        *q = 0;
++        serial_set_device (dev);
++      }
++# endif /* GRUB_UTIL */
++      else
++      break;
++
++      arg = skip_to (0, arg);
++    }
++
++  /* Initialize the serial unit.  */
++  if (! serial_hw_init (port, speed, word_len, parity, stop_bit_len))
++    {
++      errnum = ERR_BAD_ARGUMENT;
++      return 1;
++    }
++  
++  return 0;
++}
++
++static struct builtin builtin_serial =
++{
++  "serial",
++  serial_func,
++  BUILTIN_MENU | BUILTIN_CMDLINE | BUILTIN_HELP_LIST,
++  "serial [--unit=UNIT] [--port=PORT] [--speed=SPEED] [--word=WORD] [--parity=PARITY] [--stop=STOP] [--device=DEV]",
++  "Initialize a serial device. UNIT is a digit that specifies which serial"
++  " device is used (e.g. 0 == COM1). If you need to specify the port number,"
++  " set it by --port. SPEED is the DTE-DTE speed. WORD is the word length,"
++  " PARITY is the type of parity, which is one of `no', `odd' and `even'."
++  " STOP is the length of stop bit(s). The option --device can be used only"
++  " in the grub shell, which specifies the file name of a tty device. The"
++  " default values are COM1, 9600, 8N1."
++};
++#endif /* SUPPORT_SERIAL */
++
++\f
++/* setkey */
++struct keysym
++{
++  char *unshifted_name;                       /* the name in unshifted state */
++  char *shifted_name;                 /* the name in shifted state */
++  unsigned char unshifted_ascii;      /* the ascii code in unshifted state */
++  unsigned char shifted_ascii;                /* the ascii code in shifted state */
++  unsigned char keycode;              /* keyboard scancode */
++};
++
++/* The table for key symbols. If the "shifted" member of an entry is
++   NULL, the entry does not have shifted state.  */
++static struct keysym keysym_table[] =
++{
++  {"escape",          0,              0x1b,   0,      0x01},
++  {"1",                       "exclam",       '1',    '!',    0x02},
++  {"2",                       "at",           '2',    '@',    0x03},
++  {"3",                       "numbersign",   '3',    '#',    0x04},
++  {"4",                       "dollar",       '4',    '$',    0x05},
++  {"5",                       "percent",      '5',    '%',    0x06},
++  {"6",                       "caret",        '6',    '^',    0x07},
++  {"7",                       "ampersand",    '7',    '&',    0x08},
++  {"8",                       "asterisk",     '8',    '*',    0x09},
++  {"9",                       "parenleft",    '9',    '(',    0x0a},
++  {"0",                       "parenright",   '0',    ')',    0x0b},
++  {"minus",           "underscore",   '-',    '_',    0x0c},
++  {"equal",           "plus",         '=',    '+',    0x0d},
++  {"backspace",               0,              '\b',   0,      0x0e},
++  {"tab",             0,              '\t',   0,      0x0f},
++  {"q",                       "Q",            'q',    'Q',    0x10},
++  {"w",                       "W",            'w',    'W',    0x11},
++  {"e",                       "E",            'e',    'E',    0x12},
++  {"r",                       "R",            'r',    'R',    0x13},
++  {"t",                       "T",            't',    'T',    0x14},
++  {"y",                       "Y",            'y',    'Y',    0x15},
++  {"u",                       "U",            'u',    'U',    0x16},
++  {"i",                       "I",            'i',    'I',    0x17},
++  {"o",                       "O",            'o',    'O',    0x18},
++  {"p",                       "P",            'p',    'P',    0x19},
++  {"bracketleft",     "braceleft",    '[',    '{',    0x1a},
++  {"bracketright",    "braceright",   ']',    '}',    0x1b},
++  {"enter",           0,              '\n',   0,      0x1c},
++  {"control",         0,              0,      0,      0x1d},
++  {"a",                       "A",            'a',    'A',    0x1e},
++  {"s",                       "S",            's',    'S',    0x1f},
++  {"d",                       "D",            'd',    'D',    0x20},
++  {"f",                       "F",            'f',    'F',    0x21},
++  {"g",                       "G",            'g',    'G',    0x22},
++  {"h",                       "H",            'h',    'H',    0x23},
++  {"j",                       "J",            'j',    'J',    0x24},
++  {"k",                       "K",            'k',    'K',    0x25},
++  {"l",                       "L",            'l',    'L',    0x26},
++  {"semicolon",               "colon",        ';',    ':',    0x27},
++  {"quote",           "doublequote",  '\'',   '"',    0x28},
++  {"backquote",               "tilde",        '`',    '~',    0x29},
++  {"shift",           0,              0,      0,      0x2a},
++  {"backslash",               "bar",          '\\',   '|',    0x2b},
++  {"z",                       "Z",            'z',    'Z',    0x2c},
++  {"x",                       "X",            'x',    'X',    0x2d},
++  {"c",                       "C",            'c',    'C',    0x2e},
++  {"v",                       "V",            'v',    'V',    0x2f},
++  {"b",                       "B",            'b',    'B',    0x30},
++  {"n",                       "N",            'n',    'N',    0x31},
++  {"m",                       "M",            'm',    'M',    0x32},
++  {"comma",           "less",         ',',    '<',    0x33},
++  {"period",          "greater",      '.',    '>',    0x34},
++  {"slash",           "question",     '/',    '?',    0x35},
++  {"alt",             0,              0,      0,      0x38},
++  {"space",           0,              ' ',    0,      0x39},
++  {"capslock",                0,              0,      0,      0x3a},
++  {"F1",              0,              0,      0,      0x3b},
++  {"F2",              0,              0,      0,      0x3c},
++  {"F3",              0,              0,      0,      0x3d},
++  {"F4",              0,              0,      0,      0x3e},
++  {"F5",              0,              0,      0,      0x3f},
++  {"F6",              0,              0,      0,      0x40},
++  {"F7",              0,              0,      0,      0x41},
++  {"F8",              0,              0,      0,      0x42},
++  {"F9",              0,              0,      0,      0x43},
++  {"F10",             0,              0,      0,      0x44},
++  /* Caution: do not add NumLock here! we cannot deal with it properly.  */
++  {"delete",          0,              0x7f,   0,      0x53}
++};
++
++static int
++setkey_func (char *arg, int flags)
++{
++  char *to_key, *from_key;
++  int to_code, from_code;
++  int map_in_interrupt = 0;
++  
++  auto int find_key_code (char *key);
++  auto int find_ascii_code (char *key);
++  
++  auto int find_key_code (char *key)
++    {
++      int i;
++
++      for (i = 0; i < sizeof (keysym_table) / sizeof (keysym_table[0]); i++)
++      {
++        if (keysym_table[i].unshifted_name &&
++            grub_strcmp (key, keysym_table[i].unshifted_name) == 0)
++          return keysym_table[i].keycode;
++        else if (keysym_table[i].shifted_name &&
++                 grub_strcmp (key, keysym_table[i].shifted_name) == 0)
++          return keysym_table[i].keycode;
++      }
++      
++      return 0;
++    }
++  
++  auto int find_ascii_code (char *key)
++    {
++      int i;
++      
++      for (i = 0; i < sizeof (keysym_table) / sizeof (keysym_table[0]); i++)
++      {
++        if (keysym_table[i].unshifted_name &&
++            grub_strcmp (key, keysym_table[i].unshifted_name) == 0)
++          return keysym_table[i].unshifted_ascii;
++        else if (keysym_table[i].shifted_name &&
++                 grub_strcmp (key, keysym_table[i].shifted_name) == 0)
++          return keysym_table[i].shifted_ascii;
++      }
++      
++      return 0;
++    }
++  
++  to_key = arg;
++  from_key = skip_to (0, to_key);
++
++  if (! *to_key)
++    {
++      /* If the user specifies no argument, reset the key mappings.  */
++      grub_memset (bios_key_map, 0, KEY_MAP_SIZE * sizeof (unsigned short));
++      grub_memset (ascii_key_map, 0, KEY_MAP_SIZE * sizeof (unsigned short));
++
++      return 0;
++    }
++  else if (! *from_key)
++    {
++      /* The user must specify two arguments or zero argument.  */
++      errnum = ERR_BAD_ARGUMENT;
++      return 1;
++    }
++  
++  nul_terminate (to_key);
++  nul_terminate (from_key);
++  
++  to_code = find_ascii_code (to_key);
++  from_code = find_ascii_code (from_key);
++  if (! to_code || ! from_code)
++    {
++      map_in_interrupt = 1;
++      to_code = find_key_code (to_key);
++      from_code = find_key_code (from_key);
++      if (! to_code || ! from_code)
++      {
++        errnum = ERR_BAD_ARGUMENT;
++        return 1;
++      }
++    }
++  
++  if (map_in_interrupt)
++    {
++      int i;
++      
++      /* Find an empty slot.  */
++      for (i = 0; i < KEY_MAP_SIZE; i++)
++      {
++        if ((bios_key_map[i] & 0xff) == from_code)
++          /* Perhaps the user wants to overwrite the map.  */
++          break;
++        
++        if (! bios_key_map[i])
++          break;
++      }
++      
++      if (i == KEY_MAP_SIZE)
++      {
++        errnum = ERR_WONT_FIT;
++        return 1;
++      }
++      
++      if (to_code == from_code)
++      /* If TO is equal to FROM, delete the entry.  */
++      grub_memmove ((char *) &bios_key_map[i],
++                    (char *) &bios_key_map[i + 1],
++                    sizeof (unsigned short) * (KEY_MAP_SIZE - i));
++      else
++      bios_key_map[i] = (to_code << 8) | from_code;
++      
++      /* Ugly but should work.  */
++      unset_int15_handler ();
++      set_int15_handler ();
++    }
++  else
++    {
++      int i;
++      
++      /* Find an empty slot.  */
++      for (i = 0; i < KEY_MAP_SIZE; i++)
++      {
++        if ((ascii_key_map[i] & 0xff) == from_code)
++          /* Perhaps the user wants to overwrite the map.  */
++          break;
++        
++        if (! ascii_key_map[i])
++          break;
++      }
++      
++      if (i == KEY_MAP_SIZE)
++      {
++        errnum = ERR_WONT_FIT;
++        return 1;
++      }
++      
++      if (to_code == from_code)
++      /* If TO is equal to FROM, delete the entry.  */
++      grub_memmove ((char *) &ascii_key_map[i],
++                    (char *) &ascii_key_map[i + 1],
++                    sizeof (unsigned short) * (KEY_MAP_SIZE - i));
++      else
++      ascii_key_map[i] = (to_code << 8) | from_code;
++    }
++      
++  return 0;
++}
++
++static struct builtin builtin_setkey =
++{
++  "setkey",
++  setkey_func,
++  BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST,
++  "setkey [TO_KEY FROM_KEY]",
++  "Change the keyboard map. The key FROM_KEY is mapped to the key TO_KEY."
++  " A key must be an alphabet, a digit, or one of these: escape, exclam,"
++  " at, numbersign, dollar, percent, caret, ampersand, asterisk, parenleft,"
++  " parenright, minus, underscore, equal, plus, backspace, tab, bracketleft,"
++  " braceleft, bracketright, braceright, enter, control, semicolon, colon,"
++  " quote, doublequote, backquote, tilde, shift, backslash, bar, comma,"
++  " less, period, greater, slash, question, alt, space, capslock, FX (X"
++  " is a digit), and delete. If no argument is specified, reset key"
++  " mappings."
++};
++
++\f
++/* setup */
++static int
++setup_func (char *arg, int flags)
++{
++  /* Point to the string of the installed drive/partition.  */
++  char *install_ptr;
++  /* Point to the string of the drive/parition where the GRUB images
++     reside.  */
++  char *image_ptr;
++  unsigned long installed_drive, installed_partition;
++  unsigned long image_drive, image_partition;
++  unsigned long tmp_drive, tmp_partition;
++  char stage1[64];
++  char stage2[64];
++  char config_filename[64];
++  char real_config_filename[64];
++  char cmd_arg[256];
++  char device[16];
++  char *buffer = (char *) RAW_ADDR (0x100000);
++  int is_force_lba = 0;
++  char *stage2_arg = 0;
++  char *prefix = 0;
++
++  auto int check_file (char *file);
++  auto void sprint_device (int drive, int partition);
++  auto int embed_stage1_5 (char * stage1_5, int drive, int partition);
++  
++  /* Check if the file FILE exists like Autoconf.  */
++  int check_file (char *file)
++    {
++      int ret;
++      
++      grub_printf (" Checking if \"%s\" exists... ", file);
++      ret = grub_open (file);
++      if (ret)
++      {
++        grub_close ();
++        grub_printf ("yes\n");
++      }
++      else
++      grub_printf ("no\n");
++
++      return ret;
++    }
++  
++  /* Construct a device name in DEVICE.  */
++  void sprint_device (int drive, int partition)
++    {
++      grub_sprintf (device, "(%cd%d",
++                  (drive & 0x80) ? 'h' : 'f',
++                  drive & ~0x80);
++      if ((partition & 0xFF0000) != 0xFF0000)
++      {
++        char tmp[16];
++        grub_sprintf (tmp, ",%d", (partition >> 16) & 0xFF);
++        grub_strncat (device, tmp, 256);
++      }
++      if ((partition & 0x00FF00) != 0x00FF00)
++      {
++        char tmp[16];
++        grub_sprintf (tmp, ",%c", 'a' + ((partition >> 8) & 0xFF));
++        grub_strncat (device, tmp, 256);
++      }
++      grub_strncat (device, ")", 256);
++    }
++  
++  int embed_stage1_5 (char *stage1_5, int drive, int partition)
++    {
++      /* We install GRUB into the MBR, so try to embed the
++       Stage 1.5 in the sectors right after the MBR.  */
++      sprint_device (drive, partition);
++      grub_sprintf (cmd_arg, "%s %s", stage1_5, device);
++            
++      /* Notify what will be run.  */
++      grub_printf (" Running \"embed %s\"... ", cmd_arg);
++      
++      embed_func (cmd_arg, flags);
++      if (! errnum)
++      {
++        /* Construct the blocklist representation.  */
++        grub_sprintf (buffer, "%s%s", device, embed_info);
++        grub_printf ("succeeded\n");
++        return 1;
++      }
++      else
++      {
++        grub_printf ("failed (this is not fatal)\n");
++        return 0;
++      }
++    }
++        
++  struct stage1_5_map {
++    char *fsys;
++    char *name;
++  };
++  struct stage1_5_map stage1_5_map[] =
++  {
++    {"ext2fs",   "/e2fs_stage1_5"},
++    {"fat",      "/fat_stage1_5"},
++    {"ufs2",     "/ufs2_stage1_5"},
++    {"ffs",      "/ffs_stage1_5"},
++    {"iso9660",  "/iso9660_stage1_5"},
++    {"jfs",      "/jfs_stage1_5"},
++    {"minix",    "/minix_stage1_5"},
++    {"reiserfs", "/reiserfs_stage1_5"},
++    {"vstafs",   "/vstafs_stage1_5"},
++    {"xfs",      "/xfs_stage1_5"}
++  };
++
++  tmp_drive = saved_drive;
++  tmp_partition = saved_partition;
++
++  /* Check if the user specifies --force-lba.  */
++  while (1)
++    {
++      if (grub_memcmp ("--force-lba", arg, sizeof ("--force-lba") - 1) == 0)
++      {
++        is_force_lba = 1;
++        arg = skip_to (0, arg);
++      }
++      else if (grub_memcmp ("--prefix=", arg, sizeof ("--prefix=") - 1) == 0)
++      {
++        prefix = arg + sizeof ("--prefix=") - 1;
++        arg = skip_to (0, arg);
++        nul_terminate (prefix);
++      }
++#ifdef GRUB_UTIL
++      else if (grub_memcmp ("--stage2=", arg, sizeof ("--stage2=") - 1) == 0)
++      {
++        stage2_arg = arg;
++        arg = skip_to (0, arg);
++        nul_terminate (stage2_arg);
++      }
++#endif /* GRUB_UTIL */
++      else
++      break;
++    }
++  
++  install_ptr = arg;
++  image_ptr = skip_to (0, install_ptr);
++
++  /* Make sure that INSTALL_PTR is valid.  */
++  set_device (install_ptr);
++  if (errnum)
++    return 1;
++
++  installed_drive = current_drive;
++  installed_partition = current_partition;
++  
++  /* Mount the drive pointed by IMAGE_PTR.  */
++  if (*image_ptr)
++    {
++      /* If the drive/partition where the images reside is specified,
++       get the drive and the partition.  */
++      set_device (image_ptr);
++      if (errnum)
++      return 1;
++    }
++  else
++    {
++      /* If omitted, use SAVED_PARTITION and SAVED_DRIVE.  */
++      current_drive = saved_drive;
++      current_partition = saved_partition;
++    }
++
++  image_drive = saved_drive = current_drive;
++  image_partition = saved_partition = current_partition;
++
++  /* Open it.  */
++  if (! open_device ())
++    goto fail;
++
++  /* Check if stage1 exists. If the user doesn't specify the option
++     `--prefix', attempt /boot/grub and /grub.  */
++  /* NOTE: It is dangerous to run this command without `--prefix' in the
++     grub shell, since that affects `--stage2'.  */
++  if (! prefix)
++    {
++      prefix = "/boot/grub";
++      grub_sprintf (stage1, "%s%s", prefix, "/stage1");
++      if (! check_file (stage1))
++      {
++        errnum = ERR_NONE;
++        prefix = "/grub";
++        grub_sprintf (stage1, "%s%s", prefix, "/stage1");
++        if (! check_file (stage1))
++          goto fail;
++      }
++    }
++  else
++    {
++      grub_sprintf (stage1, "%s%s", prefix, "/stage1");
++      if (! check_file (stage1))
++      goto fail;
++    }
++
++  /* The prefix was determined.  */
++  grub_sprintf (stage2, "%s%s", prefix, "/stage2");
++  grub_sprintf (config_filename, "%s%s", prefix, "/menu.lst");
++  *real_config_filename = 0;
++
++  /* Check if stage2 exists.  */
++  if (! check_file (stage2))
++    goto fail;
++
++  {
++    char *fsys = fsys_table[fsys_type].name;
++    int i;
++    int size = sizeof (stage1_5_map) / sizeof (stage1_5_map[0]);
++    
++    /* Iterate finding the same filesystem name as FSYS.  */
++    for (i = 0; i < size; i++)
++      if (grub_strcmp (fsys, stage1_5_map[i].fsys) == 0)
++      {
++        /* OK, check if the Stage 1.5 exists.  */
++        char stage1_5[64];
++        
++        grub_sprintf (stage1_5, "%s%s", prefix, stage1_5_map[i].name);
++        if (check_file (stage1_5))
++          {
++            if (embed_stage1_5 (stage1_5, 
++                                  installed_drive, installed_partition)
++                || embed_stage1_5 (stage1_5, 
++                                   image_drive, image_partition))
++              {
++                grub_strcpy (real_config_filename, config_filename);
++                sprint_device (image_drive, image_partition);
++                grub_sprintf (config_filename, "%s%s", device, stage2);
++                grub_strcpy (stage2, buffer);
++              }
++          }
++        errnum = 0;
++        break;
++      }
++  }
++
++  /* Construct a string that is used by the command "install" as its
++     arguments.  */
++  sprint_device (installed_drive, installed_partition);
++  
++#if 1
++  /* Don't embed a drive number unnecessarily.  */
++  grub_sprintf (cmd_arg, "%s%s%s%s %s%s %s p %s %s",
++              is_force_lba? "--force-lba " : "",
++              stage2_arg? stage2_arg : "",
++              stage2_arg? " " : "",
++              stage1,
++              (installed_drive != image_drive) ? "d " : "",
++              device,
++              stage2,
++              config_filename,
++              real_config_filename);
++#else /* NOT USED */
++  /* This code was used, because we belived some BIOSes had a problem
++     that they didn't pass a booting drive correctly. It turned out,
++     however, stage1 could trash a booting drive when checking LBA support,
++     because some BIOSes modified the register %dx in INT 13H, AH=48H.
++     So it becamed unclear whether GRUB should use a pre-defined booting
++     drive or not. If the problem still exists, it would be necessary to
++     switch back to this code.  */
++  grub_sprintf (cmd_arg, "%s%s%s%s d %s %s p %s %s",
++              is_force_lba? "--force-lba " : "",
++              stage2_arg? stage2_arg : "",
++              stage2_arg? " " : "",
++              stage1,
++              device,
++              stage2,
++              config_filename,
++              real_config_filename);
++#endif /* NOT USED */
++  
++  /* Notify what will be run.  */
++  grub_printf (" Running \"install %s\"... ", cmd_arg);
++
++  /* Make sure that SAVED_DRIVE and SAVED_PARTITION are identical
++     with IMAGE_DRIVE and IMAGE_PARTITION, respectively.  */
++  saved_drive = image_drive;
++  saved_partition = image_partition;
++  
++  /* Run the command.  */
++  if (! install_func (cmd_arg, flags))
++    grub_printf ("succeeded\nDone.\n");
++  else
++    grub_printf ("failed\n");
++
++ fail:
++  saved_drive = tmp_drive;
++  saved_partition = tmp_partition;
++  return errnum;
++}
++
++static struct builtin builtin_setup =
++{
++  "setup",
++  setup_func,
++  BUILTIN_CMDLINE | BUILTIN_HELP_LIST,
++  "setup [--prefix=DIR] [--stage2=STAGE2_FILE] [--force-lba] INSTALL_DEVICE [IMAGE_DEVICE]",
++  "Set up the installation of GRUB automatically. This command uses"
++  " the more flexible command \"install\" in the backend and installs"
++  " GRUB into the device INSTALL_DEVICE. If IMAGE_DEVICE is specified,"
++  " then find the GRUB images in the device IMAGE_DEVICE, otherwise"
++  " use the current \"root device\", which can be set by the command"
++  " \"root\". If you know that your BIOS should support LBA but GRUB"
++  " doesn't work in LBA mode, specify the option `--force-lba'."
++  " If you install GRUB under the grub shell and you cannot unmount the"
++  " partition where GRUB images reside, specify the option `--stage2'"
++  " to tell GRUB the file name under your OS."
++};
++
++\f
++#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES)
++/* terminal */
++static int
++terminal_func (char *arg, int flags)
++{
++  /* The index of the default terminal in TERM_TABLE.  */
++  int default_term = -1;
++  struct term_entry *prev_term = current_term;
++  int to = -1;
++  int lines = 0;
++  int no_message = 0;
++  unsigned long term_flags = 0;
++  /* XXX: Assume less than 32 terminals.  */
++  unsigned long term_bitmap = 0;
++
++  /* Get GNU-style long options.  */
++  while (1)
++    {
++      if (grub_memcmp (arg, "--dumb", sizeof ("--dumb") - 1) == 0)
++      term_flags |= TERM_DUMB;
++      else if (grub_memcmp (arg, "--no-echo", sizeof ("--no-echo") - 1) == 0)
++      /* ``--no-echo'' implies ``--no-edit''.  */
++      term_flags |= (TERM_NO_ECHO | TERM_NO_EDIT);
++      else if (grub_memcmp (arg, "--no-edit", sizeof ("--no-edit") - 1) == 0)
++      term_flags |= TERM_NO_EDIT;
++      else if (grub_memcmp (arg, "--timeout=", sizeof ("--timeout=") - 1) == 0)
++      {
++        char *val = arg + sizeof ("--timeout=") - 1;
++        
++        if (! safe_parse_maxint (&val, &to))
++          return 1;
++      }
++      else if (grub_memcmp (arg, "--lines=", sizeof ("--lines=") - 1) == 0)
++      {
++        char *val = arg + sizeof ("--lines=") - 1;
++
++        if (! safe_parse_maxint (&val, &lines))
++          return 1;
++
++        /* Probably less than four is meaningless....  */
++        if (lines < 4)
++          {
++            errnum = ERR_BAD_ARGUMENT;
++            return 1;
++          }
++      }
++      else if (grub_memcmp (arg, "--silent", sizeof ("--silent") - 1) == 0)
++      no_message = 1;
++      else
++      break;
++
++      arg = skip_to (0, arg);
++    }
++  
++  /* If no argument is specified, show current setting.  */
++  if (! *arg)
++    {
++      grub_printf ("%s%s%s%s\n",
++                 current_term->name,
++                 current_term->flags & TERM_DUMB ? " (dumb)" : "",
++                 current_term->flags & TERM_NO_EDIT ? " (no edit)" : "",
++                 current_term->flags & TERM_NO_ECHO ? " (no echo)" : "");
++      return 0;
++    }
++
++  while (*arg)
++    {
++      int i;
++      char *next = skip_to (0, arg);
++      
++      nul_terminate (arg);
++
++      for (i = 0; term_table[i].name; i++)
++      {
++        if (grub_strcmp (arg, term_table[i].name) == 0)
++          {
++            if (term_table[i].flags & TERM_NEED_INIT)
++              {
++                errnum = ERR_DEV_NEED_INIT;
++                return 1;
++              }
++            
++            if (default_term < 0)
++              default_term = i;
++
++            term_bitmap |= (1 << i);
++            break;
++          }
++      }
++
++      if (! term_table[i].name)
++      {
++        errnum = ERR_BAD_ARGUMENT;
++        return 1;
++      }
++
++      arg = next;
++    }
++
++  /* If multiple terminals are specified, wait until the user pushes any
++     key on one of the terminals.  */
++  if (term_bitmap & ~(1 << default_term))
++    {
++      int time1, time2 = -1;
++
++      /* XXX: Disable the pager.  */
++      count_lines = -1;
++      
++      /* Get current time.  */
++      while ((time1 = getrtsecs ()) == 0xFF)
++      ;
++
++      /* Wait for a key input.  */
++      while (to)
++      {
++        int i;
++
++        for (i = 0; term_table[i].name; i++)
++          {
++            if (term_bitmap & (1 << i))
++              {
++                if (term_table[i].checkkey () >= 0)
++                  {
++                    (void) term_table[i].getkey ();
++                    default_term = i;
++                    
++                    goto end;
++                  }
++              }
++          }
++        
++        /* Prompt the user, once per sec.  */
++        if ((time1 = getrtsecs ()) != time2 && time1 != 0xFF)
++          {
++            if (! no_message)
++              {
++                /* Need to set CURRENT_TERM to each of selected
++                   terminals.  */
++                for (i = 0; term_table[i].name; i++)
++                  if (term_bitmap & (1 << i))
++                    {
++                      current_term = term_table + i;
++                      grub_printf ("\rPress any key to continue.\n");
++                    }
++                
++                /* Restore CURRENT_TERM.  */
++                current_term = prev_term;
++              }
++            
++            time2 = time1;
++            if (to > 0)
++              to--;
++          }
++      }
++    }
++
++ end:
++  current_term = term_table + default_term;
++  current_term->flags = term_flags;
++  
++  if (lines)
++    max_lines = lines;
++  else
++    /* 24 would be a good default value.  */
++    max_lines = 24;
++  
++  /* If the interface is currently the command-line,
++     restart it to repaint the screen.  */
++  if (current_term != prev_term && (flags & BUILTIN_CMDLINE))
++    grub_longjmp (restart_cmdline_env, 0);
++  
++  return 0;
++}
++
++static struct builtin builtin_terminal =
++{
++  "terminal",
++  terminal_func,
++  BUILTIN_MENU | BUILTIN_CMDLINE | BUILTIN_HELP_LIST,
++  "terminal [--dumb] [--no-echo] [--no-edit] [--timeout=SECS] [--lines=LINES] [--silent] [console] [serial] [hercules]",
++  "Select a terminal. When multiple terminals are specified, wait until"
++  " you push any key to continue. If both console and serial are specified,"
++  " the terminal to which you input a key first will be selected. If no"
++  " argument is specified, print current setting. The option --dumb"
++  " specifies that your terminal is dumb, otherwise, vt100-compatibility"
++  " is assumed. If you specify --no-echo, input characters won't be echoed."
++  " If you specify --no-edit, the BASH-like editing feature will be disabled."
++  " If --timeout is present, this command will wait at most for SECS"
++  " seconds. The option --lines specifies the maximum number of lines."
++  " The option --silent is used to suppress messages."
++};
++#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES */
++
++\f
++#ifdef SUPPORT_SERIAL
++static int
++terminfo_func (char *arg, int flags)
++{
++  struct terminfo term;
++
++  if (*arg)
++    {
++      struct
++      {
++      const char *name;
++      char *var;
++      }
++      options[] =
++      {
++        {"--name=", term.name},
++        {"--cursor-address=", term.cursor_address},
++        {"--clear-screen=", term.clear_screen},
++        {"--enter-standout-mode=", term.enter_standout_mode},
++        {"--exit-standout-mode=", term.exit_standout_mode}
++      };
++
++      grub_memset (&term, 0, sizeof (term));
++      
++      while (*arg)
++      {
++        int i;
++        char *next = skip_to (0, arg);
++            
++        nul_terminate (arg);
++        
++        for (i = 0; i < sizeof (options) / sizeof (options[0]); i++)
++          {
++            const char *name = options[i].name;
++            int len = grub_strlen (name);
++            
++            if (! grub_memcmp (arg, name, len))
++              {
++                grub_strcpy (options[i].var, ti_unescape_string (arg + len));
++                break;
++              }
++          }
++
++        if (i == sizeof (options) / sizeof (options[0]))
++          {
++            errnum = ERR_BAD_ARGUMENT;
++            return errnum;
++          }
++
++        arg = next;
++      }
++
++      if (term.name[0] == 0 || term.cursor_address[0] == 0)
++      {
++        errnum = ERR_BAD_ARGUMENT;
++        return errnum;
++      }
++
++      ti_set_term (&term);
++    }
++  else
++    {
++      /* No option specifies printing out current settings.  */
++      ti_get_term (&term);
++
++      grub_printf ("name=%s\n",
++                 ti_escape_string (term.name));
++      grub_printf ("cursor_address=%s\n",
++                 ti_escape_string (term.cursor_address));
++      grub_printf ("clear_screen=%s\n",
++                 ti_escape_string (term.clear_screen));
++      grub_printf ("enter_standout_mode=%s\n",
++                 ti_escape_string (term.enter_standout_mode));
++      grub_printf ("exit_standout_mode=%s\n",
++                 ti_escape_string (term.exit_standout_mode));
++    }
++
++  return 0;
++}
++
++static struct builtin builtin_terminfo =
++{
++  "terminfo",
++  terminfo_func,
++  BUILTIN_MENU | BUILTIN_CMDLINE | BUILTIN_HELP_LIST,
++  "terminfo [--name=NAME --cursor-address=SEQ [--clear-screen=SEQ]"
++  " [--enter-standout-mode=SEQ] [--exit-standout-mode=SEQ]]",
++  
++  "Define the capabilities of your terminal. Use this command to"
++  " define escape sequences, if it is not vt100-compatible."
++  " You may use \\e for ESC and ^X for a control character."
++  " If no option is specified, the current settings are printed."
++};
++#endif /* SUPPORT_SERIAL */
++        
++\f
++/* testload */
++static int
++testload_func (char *arg, int flags)
++{
++  int i;
++
++  kernel_type = KERNEL_TYPE_NONE;
++
++  if (! grub_open (arg))
++    return 1;
++
++  disk_read_hook = disk_read_print_func;
++
++  /* Perform filesystem test on the specified file.  */
++  /* Read whole file first. */
++  grub_printf ("Whole file: ");
++
++  grub_read ((char *) RAW_ADDR (0x100000), -1);
++
++  /* Now compare two sections of the file read differently.  */
++
++  for (i = 0; i < 0x10ac0; i++)
++    {
++      *((unsigned char *) RAW_ADDR (0x200000 + i)) = 0;
++      *((unsigned char *) RAW_ADDR (0x300000 + i)) = 1;
++    }
++
++  /* First partial read.  */
++  grub_printf ("\nPartial read 1: ");
++
++  grub_seek (0);
++  grub_read ((char *) RAW_ADDR (0x200000), 0x7);
++  grub_read ((char *) RAW_ADDR (0x200007), 0x100);
++  grub_read ((char *) RAW_ADDR (0x200107), 0x10);
++  grub_read ((char *) RAW_ADDR (0x200117), 0x999);
++  grub_read ((char *) RAW_ADDR (0x200ab0), 0x10);
++  grub_read ((char *) RAW_ADDR (0x200ac0), 0x10000);
++
++  /* Second partial read.  */
++  grub_printf ("\nPartial read 2: ");
++
++  grub_seek (0);
++  grub_read ((char *) RAW_ADDR (0x300000), 0x10000);
++  grub_read ((char *) RAW_ADDR (0x310000), 0x10);
++  grub_read ((char *) RAW_ADDR (0x310010), 0x7);
++  grub_read ((char *) RAW_ADDR (0x310017), 0x10);
++  grub_read ((char *) RAW_ADDR (0x310027), 0x999);
++  grub_read ((char *) RAW_ADDR (0x3109c0), 0x100);
++
++  grub_printf ("\nHeader1 = 0x%x, next = 0x%x, next = 0x%x, next = 0x%x\n",
++             *((int *) RAW_ADDR (0x200000)),
++             *((int *) RAW_ADDR (0x200004)),
++             *((int *) RAW_ADDR (0x200008)),
++             *((int *) RAW_ADDR (0x20000c)));
++
++  grub_printf ("Header2 = 0x%x, next = 0x%x, next = 0x%x, next = 0x%x\n",
++             *((int *) RAW_ADDR (0x300000)),
++             *((int *) RAW_ADDR (0x300004)),
++             *((int *) RAW_ADDR (0x300008)),
++             *((int *) RAW_ADDR (0x30000c)));
++
++  for (i = 0; i < 0x10ac0; i++)
++    if (*((unsigned char *) RAW_ADDR (0x200000 + i))
++      != *((unsigned char *) RAW_ADDR (0x300000 + i)))
++      break;
++
++  grub_printf ("Max is 0x10ac0: i=0x%x, filepos=0x%x\n", i, filepos);
++  disk_read_hook = 0;
++  grub_close ();
++  return 0;
++}
++
++static struct builtin builtin_testload =
++{
++  "testload",
++  testload_func,
++  BUILTIN_CMDLINE,
++  "testload FILE",
++  "Read the entire contents of FILE in several different ways and"
++  " compares them, to test the filesystem code. The output is somewhat"
++  " cryptic, but if no errors are reported and the final `i=X,"
++  " filepos=Y' reading has X and Y equal, then it is definitely"
++  " consistent, and very likely works correctly subject to a"
++  " consistent offset error. If this test succeeds, then a good next"
++  " step is to try loading a kernel."
++};
++
++\f
++/* testvbe MODE */
++static int
++testvbe_func (char *arg, int flags)
++{
++  int mode_number;
++  struct vbe_controller controller;
++  struct vbe_mode mode;
++  
++  if (! *arg)
++    {
++      errnum = ERR_BAD_ARGUMENT;
++      return 1;
++    }
++
++  if (! safe_parse_maxint (&arg, &mode_number))
++    return 1;
++
++  /* Preset `VBE2'.  */
++  grub_memmove (controller.signature, "VBE2", 4);
++
++  /* Detect VBE BIOS.  */
++  if (get_vbe_controller_info (&controller) != 0x004F)
++    {
++      grub_printf (" VBE BIOS is not present.\n");
++      return 0;
++    }
++  
++  if (controller.version < 0x0200)
++    {
++      grub_printf (" VBE version %d.%d is not supported.\n",
++                 (int) (controller.version >> 8),
++                 (int) (controller.version & 0xFF));
++      return 0;
++    }
++
++  if (get_vbe_mode_info (mode_number, &mode) != 0x004F
++      || (mode.mode_attributes & 0x0091) != 0x0091)
++    {
++      grub_printf (" Mode 0x%x is not supported.\n", mode_number);
++      return 0;
++    }
++
++  /* Now trip to the graphics mode.  */
++  if (set_vbe_mode (mode_number | (1 << 14)) != 0x004F)
++    {
++      grub_printf (" Switching to Mode 0x%x failed.\n", mode_number);
++      return 0;
++    }
++
++  /* Draw something on the screen...  */
++  {
++    unsigned char *base_buf = (unsigned char *) mode.phys_base;
++    int scanline = controller.version >= 0x0300
++      ? mode.linear_bytes_per_scanline : mode.bytes_per_scanline;
++    /* FIXME: this assumes that any depth is a modulo of 8.  */
++    int bpp = mode.bits_per_pixel / 8;
++    int width = mode.x_resolution;
++    int height = mode.y_resolution;
++    int x, y;
++    unsigned color = 0;
++
++    /* Iterate drawing on the screen, until the user hits any key.  */
++    while (checkkey () == -1)
++      {
++      for (y = 0; y < height; y++)
++        {
++          unsigned char *line_buf = base_buf + scanline * y;
++          
++          for (x = 0; x < width; x++)
++            {
++              unsigned char *buf = line_buf + bpp * x;
++              int i;
++
++              for (i = 0; i < bpp; i++, buf++)
++                *buf = (color >> (i * 8)) & 0xff;
++            }
++
++          color++;
++        }
++      }
++
++    /* Discard the input.  */
++    getkey ();
++  }
++  
++  /* Back to the default text mode.  */
++  if (set_vbe_mode (0x03) != 0x004F)
++    {
++      /* Why?!  */
++      grub_reboot ();
++    }
++
++  return 0;
++}
++
++static struct builtin builtin_testvbe =
++{
++  "testvbe",
++  testvbe_func,
++  BUILTIN_CMDLINE | BUILTIN_HELP_LIST,
++  "testvbe MODE",
++  "Test the VBE mode MODE. Hit any key to return."
++};
++
++\f
++#ifdef SUPPORT_NETBOOT
++/* tftpserver */
++static int
++tftpserver_func (char *arg, int flags)
++{
++  if (! *arg || ! ifconfig (0, 0, 0, arg))
++    {
++      errnum = ERR_BAD_ARGUMENT;
++      return 1;
++    }
++
++  print_network_configuration ();
++  return 0;
++}
++
++static struct builtin builtin_tftpserver =
++{
++  "tftpserver",
++  tftpserver_func,
++  BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST,
++  "tftpserver IPADDR",
++  "Override the TFTP server address."
++};
++#endif /* SUPPORT_NETBOOT */
++
++\f
++/* timeout */
++static int
++timeout_func (char *arg, int flags)
++{
++  if (! safe_parse_maxint (&arg, &grub_timeout))
++    return 1;
++
++  return 0;
++}
++
++static struct builtin builtin_timeout =
++{
++  "timeout",
++  timeout_func,
++  BUILTIN_MENU,
++#if 0
++  "timeout SEC",
++  "Set a timeout, in SEC seconds, before automatically booting the"
++  " default entry (normally the first entry defined)."
++#endif
++};
++
++\f
++/* title */
++static int
++title_func (char *arg, int flags)
++{
++  /* This function is not actually used at least currently.  */
++  return 0;
++}
++
++static struct builtin builtin_title =
++{
++  "title",
++  title_func,
++  BUILTIN_TITLE,
++#if 0
++  "title [NAME ...]",
++  "Start a new boot entry, and set its name to the contents of the"
++  " rest of the line, starting with the first non-space character."
++#endif
++};
++
++\f
++/* unhide */
++static int
++unhide_func (char *arg, int flags)
++{
++  if (! set_device (arg))
++    return 1;
++
++  if (! set_partition_hidden_flag (0))
++    return 1;
++
++  return 0;
++}
++
++static struct builtin builtin_unhide =
++{
++  "unhide",
++  unhide_func,
++  BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST,
++  "unhide PARTITION",
++  "Unhide PARTITION by clearing the \"hidden\" bit in its"
++  " partition type code."
++};
++
++\f
++/* uppermem */
++static int
++uppermem_func (char *arg, int flags)
++{
++  if (! safe_parse_maxint (&arg, (int *) &mbi.mem_upper))
++    return 1;
++
++  mbi.flags &= ~MB_INFO_MEM_MAP;
++  return 0;
++}
++
++static struct builtin builtin_uppermem =
++{
++  "uppermem",
++  uppermem_func,
++  BUILTIN_CMDLINE | BUILTIN_HELP_LIST,
++  "uppermem KBYTES",
++  "Force GRUB to assume that only KBYTES kilobytes of upper memory are"
++  " installed.  Any system address range maps are discarded."
++};
++
++\f
++/* vbeprobe */
++static int
++vbeprobe_func (char *arg, int flags)
++{
++  struct vbe_controller controller;
++  unsigned short *mode_list;
++  int mode_number = -1;
++  
++  auto unsigned long vbe_far_ptr_to_linear (unsigned long);
++  
++  unsigned long vbe_far_ptr_to_linear (unsigned long ptr)
++    {
++      unsigned short seg = (ptr >> 16);
++      unsigned short off = (ptr & 0xFFFF);
++
++      return (seg << 4) + off;
++    }
++  
++  if (*arg)
++    {
++      if (! safe_parse_maxint (&arg, &mode_number))
++      return 1;
++    }
++  
++  /* Set the signature to `VBE2', to obtain VBE 3.0 information.  */
++  grub_memmove (controller.signature, "VBE2", 4);
++  
++  if (get_vbe_controller_info (&controller) != 0x004F)
++    {
++      grub_printf (" VBE BIOS is not present.\n");
++      return 0;
++    }
++
++  /* Check the version.  */
++  if (controller.version < 0x0200)
++    {
++      grub_printf (" VBE version %d.%d is not supported.\n",
++                 (int) (controller.version >> 8),
++                 (int) (controller.version & 0xFF));
++      return 0;
++    }
++
++  /* Print some information.  */
++  grub_printf (" VBE version %d.%d\n",
++             (int) (controller.version >> 8),
++             (int) (controller.version & 0xFF));
++
++  /* Iterate probing modes.  */
++  for (mode_list
++       = (unsigned short *) vbe_far_ptr_to_linear (controller.video_mode);
++       *mode_list != 0xFFFF;
++       mode_list++)
++    {
++      struct vbe_mode mode;
++      
++      if (get_vbe_mode_info (*mode_list, &mode) != 0x004F)
++      continue;
++
++      /* Skip this, if this is not supported or linear frame buffer
++       mode is not support.  */
++      if ((mode.mode_attributes & 0x0081) != 0x0081)
++      continue;
++
++      if (mode_number == -1 || mode_number == *mode_list)
++      {
++        char *model;
++        switch (mode.memory_model)
++          {
++          case 0x00: model = "Text"; break;
++          case 0x01: model = "CGA graphics"; break;
++          case 0x02: model = "Hercules graphics"; break;
++          case 0x03: model = "Planar"; break;
++          case 0x04: model = "Packed pixel"; break;
++          case 0x05: model = "Non-chain 4, 256 color"; break;
++          case 0x06: model = "Direct Color"; break;
++          case 0x07: model = "YUV"; break;
++          default: model = "Unknown"; break;
++          }
++        
++        grub_printf ("  0x%x: %s, %ux%ux%u\n",
++                     (unsigned) *mode_list,
++                     model,
++                     (unsigned) mode.x_resolution,
++                     (unsigned) mode.y_resolution,
++                     (unsigned) mode.bits_per_pixel);
++        
++        if (mode_number != -1)
++          break;
++      }
++    }
++
++  if (mode_number != -1 && mode_number != *mode_list)
++    grub_printf ("  Mode 0x%x is not found or supported.\n", mode_number);
++  
++  return 0;
++}
++
++static struct builtin builtin_vbeprobe =
++{
++  "vbeprobe",
++  vbeprobe_func,
++  BUILTIN_CMDLINE | BUILTIN_HELP_LIST,
++  "vbeprobe [MODE]",
++  "Probe VBE information. If the mode number MODE is specified, show only"
++  " the information about only the mode."
++};
++  
++\f
++/* The table of builtin commands. Sorted in dictionary order.  */
++struct builtin *builtin_table[] =
++{
++  &builtin_blocklist,
++  &builtin_boot,
++#ifdef SUPPORT_NETBOOT
++  &builtin_bootp,
++#endif /* SUPPORT_NETBOOT */
++  &builtin_cat,
++  &builtin_chainloader,
++  &builtin_cmp,
++  &builtin_color,
++  &builtin_configfile,
++  &builtin_debug,
++  &builtin_default,
++#ifdef GRUB_UTIL
++  &builtin_device,
++#endif /* GRUB_UTIL */
++#ifdef SUPPORT_NETBOOT
++  &builtin_dhcp,
++#endif /* SUPPORT_NETBOOT */
++  &builtin_displayapm,
++  &builtin_displaymem,
++#ifdef GRUB_UTIL
++  &builtin_dump,
++#endif /* GRUB_UTIL */
++  &builtin_embed,
++  &builtin_fallback,
++  &builtin_find,
++  &builtin_fstest,
++  &builtin_geometry,
++  &builtin_halt,
++  &builtin_help,
++  &builtin_hiddenmenu,
++  &builtin_hide,
++#ifdef SUPPORT_NETBOOT
++  &builtin_ifconfig,
++#endif /* SUPPORT_NETBOOT */
++  &builtin_impsprobe,
++  &builtin_initrd,
++  &builtin_install,
++  &builtin_ioprobe,
++  &builtin_kernel,
++  &builtin_lock,
++  &builtin_makeactive,
++  &builtin_map,
++#ifdef USE_MD5_PASSWORDS
++  &builtin_md5crypt,
++#endif /* USE_MD5_PASSWORDS */
++  &builtin_module,
++  &builtin_modulenounzip,
++  &builtin_pager,
++  &builtin_partnew,
++  &builtin_parttype,
++  &builtin_password,
++  &builtin_pause,
++#ifdef GRUB_UTIL
++  &builtin_quit,
++#endif /* GRUB_UTIL */
++#ifdef SUPPORT_NETBOOT
++  &builtin_rarp,
++#endif /* SUPPORT_NETBOOT */
++  &builtin_read,
++  &builtin_reboot,
++  &builtin_root,
++  &builtin_rootnoverify,
++  &builtin_savedefault,
++#ifdef SUPPORT_SERIAL
++  &builtin_serial,
++#endif /* SUPPORT_SERIAL */
++  &builtin_setkey,
++  &builtin_setup,
++#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES)
++  &builtin_terminal,
++#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES */
++#ifdef SUPPORT_SERIAL
++  &builtin_terminfo,
++#endif /* SUPPORT_SERIAL */
++  &builtin_testload,
++  &builtin_testvbe,
++#ifdef SUPPORT_NETBOOT
++  &builtin_tftpserver,
++#endif /* SUPPORT_NETBOOT */
++  &builtin_timeout,
++  &builtin_title,
++  &builtin_unhide,
++  &builtin_uppermem,
++  &builtin_vbeprobe,
++  0
++};
+diff -Nur grub-0.97/stage2/char_io.c grub-0.97-patched/stage2/char_io.c
+--- grub-0.97/stage2/char_io.c 2005-02-01 21:51:23.000000000 +0100
++++ grub-0.97-patched/stage2/char_io.c 2012-11-11 17:06:52.556085241 +0100
+@@ -35,6 +35,7 @@
+     {
+       "console",
+       0,
++      24,
+       console_putchar,
+       console_checkkey,
+       console_getkey,
+@@ -43,13 +44,16 @@
+       console_cls,
+       console_setcolorstate,
+       console_setcolor,
+-      console_setcursor
++      console_setcursor,
++      0, 
++      0
+     },
+ #ifdef SUPPORT_SERIAL
+     {
+       "serial",
+       /* A serial device must be initialized.  */
+       TERM_NEED_INIT,
++      24,
+       serial_putchar,
+       serial_checkkey,
+       serial_getkey,
+@@ -58,6 +62,8 @@
+       serial_cls,
+       serial_setcolorstate,
+       0,
++      0,
++      0, 
+       0
+     },
+ #endif /* SUPPORT_SERIAL */
+@@ -65,6 +71,7 @@
+     {
+       "hercules",
+       0,
++      24,
+       hercules_putchar,
+       console_checkkey,
+       console_getkey,
+@@ -73,9 +80,28 @@
+       hercules_cls,
+       hercules_setcolorstate,
+       hercules_setcolor,
+-      hercules_setcursor
++      hercules_setcursor,
++      0,
++      0
+     },      
+ #endif /* SUPPORT_HERCULES */
++#ifdef SUPPORT_GRAPHICS
++    { "graphics",
++      TERM_NEED_INIT, /* flags */
++      30, /* number of lines */
++      graphics_putchar, /* putchar */
++      console_checkkey, /* checkkey */
++      console_getkey, /* getkey */
++      graphics_getxy, /* getxy */
++      graphics_gotoxy, /* gotoxy */
++      graphics_cls, /* cls */
++      graphics_setcolorstate, /* setcolorstate */
++      graphics_setcolor, /* setcolor */
++      graphics_setcursor, /* nocursor */
++      graphics_init, /* initialize */
++      graphics_end /* shutdown */
++    },
++#endif /* SUPPORT_GRAPHICS */
+     /* This must be the last entry.  */
+     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+   };
+@@ -1046,13 +1072,15 @@
+                the following grub_printf call will print newlines.  */
+             count_lines = -1;
++            grub_printf("\n");
+             if (current_term->setcolorstate)
+               current_term->setcolorstate (COLOR_STATE_HIGHLIGHT);
+             
+-            grub_printf ("\n[Hit return to continue]");
++            grub_printf ("[Hit return to continue]");
+             if (current_term->setcolorstate)
+               current_term->setcolorstate (COLOR_STATE_NORMAL);
++              
+             
+             do
+               {
+@@ -1090,7 +1118,7 @@
+ cls (void)
+ {
+   /* If the terminal is dumb, there is no way to clean the terminal.  */
+-  if (current_term->flags & TERM_DUMB)
++  if (current_term->flags & TERM_DUMB) 
+     grub_putchar ('\n');
+   else
+     current_term->cls ();
+@@ -1174,37 +1202,62 @@
+ }
+ #endif /* ! STAGE1_5 */
++#ifdef GRUB_UTIL
++# ifdef __PIC__
++#  if defined(HAVE_START_SYMBOL) && defined(HAVE_END_SYMBOL)
++      extern char start[];
++      extern char end[];
++#  elif defined(HAVE_USCORE_START_SYMBOL) && defined (HAVE_USCORE_END_SYMBOL)
++      extern char _start[];
++      extern char _end[];
++#  endif
++# endif
++#endif
+ int
+-memcheck (int addr, int len)
++memcheck (unsigned long addr, unsigned long len)
+ {
+ #ifdef GRUB_UTIL
+-  auto int start_addr (void);
+-  auto int end_addr (void);
++# ifdef __PIC__
++#  if defined(HAVE_START_SYMBOL) && defined(HAVE_END_SYMBOL)
++  if (start <= addr && end > addr + len)
++    return ! errnum;
++#  elif defined(HAVE_USCORE_START_SYMBOL) && defined (HAVE_USCORE_END_SYMBOL)
++  if (_start <= addr && _end > addr + len)
++    return ! errnum;
++#  endif
++# else /* __PIC__ */
++  auto unsigned long start_addr (void);
++  auto unsigned long end_addr (void);
+   
+-  auto int start_addr (void)
++  auto unsigned long start_addr (void)
+     {
+-      int ret;
+-# if defined(HAVE_START_SYMBOL)
++      unsigned long ret;
++#  if defined(HAVE_START_SYMBOL)
+       asm volatile ("movl     $start, %0" : "=a" (ret));
+-# elif defined(HAVE_USCORE_START_SYMBOL)
++#  elif defined(HAVE_USCORE_START_SYMBOL)
+       asm volatile ("movl     $_start, %0" : "=a" (ret));
+-# endif
++#  else
++      erk! /* function would return undefined data in this case - barf */
++#  endif
+       return ret;
+     }
+-  auto int end_addr (void)
++  auto unsigned long end_addr (void)
+     {
+-      int ret;
+-# if defined(HAVE_END_SYMBOL)
++      unsigned long ret;
++#  if defined(HAVE_END_SYMBOL)
+       asm volatile ("movl     $end, %0" : "=a" (ret));
+-# elif defined(HAVE_USCORE_END_SYMBOL)
++#  elif defined(HAVE_USCORE_END_SYMBOL)
+       asm volatile ("movl     $_end, %0" : "=a" (ret));
+-# endif
++#  else
++      erk! /* function would return undefined data in this case - barf */
++#  endif
+       return ret;
+     }
+   if (start_addr () <= addr && end_addr () > addr + len)
+     return ! errnum;
++# endif /* __PIC__ */
+ #endif /* GRUB_UTIL */
+   if ((addr < RAW_ADDR (0x1000))
+@@ -1217,10 +1270,20 @@
+   return ! errnum;
+ }
++void
++grub_memcpy(void *dest, const void *src, int len)
++{
++  int i;
++  register char *d = (char*)dest, *s = (char*)src;
++
++  for (i = 0; i < len; i++)
++    d[i] = s[i];
++}
++
+ void *
+ grub_memmove (void *to, const void *from, int len)
+ {
+-   if (memcheck ((int) to, len))
++   if (memcheck ((unsigned long) to, len))
+      {
+        /* This assembly code is stolen from
+         linux-2.2.2/include/asm-i386/string.h. This is not very fast
+@@ -1258,7 +1321,7 @@
+ {
+   char *p = start;
+-  if (memcheck ((int) start, len))
++  if (memcheck ((unsigned long) start, len))
+     {
+       while (len -- > 0)
+       *p ++ = c;
+diff -Nur grub-0.97/stage2/char_io.c.orig grub-0.97-patched/stage2/char_io.c.orig
+--- grub-0.97/stage2/char_io.c.orig    1970-01-01 01:00:00.000000000 +0100
++++ grub-0.97-patched/stage2/char_io.c.orig    2005-02-01 21:51:23.000000000 +0100
+@@ -0,0 +1,1283 @@
++/* char_io.c - basic console input and output */
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 1999,2000,2001,2002,2004  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
++ *  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, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#include <shared.h>
++#include <term.h>
++
++#ifdef SUPPORT_HERCULES
++# include <hercules.h>
++#endif
++
++#ifdef SUPPORT_SERIAL
++# include <serial.h>
++#endif
++
++#ifndef STAGE1_5
++struct term_entry term_table[] =
++  {
++    {
++      "console",
++      0,
++      console_putchar,
++      console_checkkey,
++      console_getkey,
++      console_getxy,
++      console_gotoxy,
++      console_cls,
++      console_setcolorstate,
++      console_setcolor,
++      console_setcursor
++    },
++#ifdef SUPPORT_SERIAL
++    {
++      "serial",
++      /* A serial device must be initialized.  */
++      TERM_NEED_INIT,
++      serial_putchar,
++      serial_checkkey,
++      serial_getkey,
++      serial_getxy,
++      serial_gotoxy,
++      serial_cls,
++      serial_setcolorstate,
++      0,
++      0
++    },
++#endif /* SUPPORT_SERIAL */
++#ifdef SUPPORT_HERCULES
++    {
++      "hercules",
++      0,
++      hercules_putchar,
++      console_checkkey,
++      console_getkey,
++      hercules_getxy,
++      hercules_gotoxy,
++      hercules_cls,
++      hercules_setcolorstate,
++      hercules_setcolor,
++      hercules_setcursor
++    },      
++#endif /* SUPPORT_HERCULES */
++    /* This must be the last entry.  */
++    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
++  };
++
++/* This must be console.  */
++struct term_entry *current_term = term_table;
++
++int max_lines = 24;
++int count_lines = -1;
++int use_pager = 1;
++#endif
++
++void
++print_error (void)
++{
++  if (errnum > ERR_NONE && errnum < MAX_ERR_NUM)
++#ifndef STAGE1_5
++    /* printf("\7\n %s\n", err_list[errnum]); */
++    printf ("\nError %u: %s\n", errnum, err_list[errnum]);
++#else /* STAGE1_5 */
++    printf ("Error %u\n", errnum);
++#endif /* STAGE1_5 */
++}
++
++char *
++convert_to_ascii (char *buf, int c,...)
++{
++  unsigned long num = *((&c) + 1), mult = 10;
++  char *ptr = buf;
++
++#ifndef STAGE1_5
++  if (c == 'x' || c == 'X')
++    mult = 16;
++
++  if ((num & 0x80000000uL) && c == 'd')
++    {
++      num = (~num) + 1;
++      *(ptr++) = '-';
++      buf++;
++    }
++#endif
++
++  do
++    {
++      int dig = num % mult;
++      *(ptr++) = ((dig > 9) ? dig + 'a' - 10 : '0' + dig);
++    }
++  while (num /= mult);
++
++  /* reorder to correct direction!! */
++  {
++    char *ptr1 = ptr - 1;
++    char *ptr2 = buf;
++    while (ptr1 > ptr2)
++      {
++      int tmp = *ptr1;
++      *ptr1 = *ptr2;
++      *ptr2 = tmp;
++      ptr1--;
++      ptr2++;
++      }
++  }
++
++  return ptr;
++}
++
++void
++grub_putstr (const char *str)
++{
++  while (*str)
++    grub_putchar (*str++);
++}
++
++void
++grub_printf (const char *format,...)
++{
++  int *dataptr = (int *) &format;
++  char c, str[16];
++  
++  dataptr++;
++
++  while ((c = *(format++)) != 0)
++    {
++      if (c != '%')
++      grub_putchar (c);
++      else
++      switch (c = *(format++))
++        {
++#ifndef STAGE1_5
++        case 'd':
++        case 'x':
++        case 'X':
++#endif
++        case 'u':
++          *convert_to_ascii (str, c, *((unsigned long *) dataptr++)) = 0;
++          grub_putstr (str);
++          break;
++
++#ifndef STAGE1_5
++        case 'c':
++          grub_putchar ((*(dataptr++)) & 0xff);
++          break;
++
++        case 's':
++          grub_putstr ((char *) *(dataptr++));
++          break;
++#endif
++        }
++    }
++}
++
++#ifndef STAGE1_5
++int
++grub_sprintf (char *buffer, const char *format, ...)
++{
++  /* XXX hohmuth
++     ugly hack -- should unify with printf() */
++  int *dataptr = (int *) &format;
++  char c, *ptr, str[16];
++  char *bp = buffer;
++
++  dataptr++;
++
++  while ((c = *format++) != 0)
++    {
++      if (c != '%')
++      *bp++ = c; /* putchar(c); */
++      else
++      switch (c = *(format++))
++        {
++        case 'd': case 'u': case 'x':
++          *convert_to_ascii (str, c, *((unsigned long *) dataptr++)) = 0;
++
++          ptr = str;
++
++          while (*ptr)
++            *bp++ = *(ptr++); /* putchar(*(ptr++)); */
++          break;
++
++        case 'c': *bp++ = (*(dataptr++))&0xff;
++          /* putchar((*(dataptr++))&0xff); */
++          break;
++
++        case 's':
++          ptr = (char *) (*(dataptr++));
++
++          while ((c = *ptr++) != 0)
++            *bp++ = c; /* putchar(c); */
++          break;
++        }
++    }
++
++  *bp = 0;
++  return bp - buffer;
++}
++
++
++void
++init_page (void)
++{
++  cls ();
++
++  grub_printf ("\n    GNU GRUB  version %s  (%dK lower / %dK upper memory)\n\n",
++        version_string, mbi.mem_lower, mbi.mem_upper);
++}
++
++/* The number of the history entries.  */
++static int num_history = 0;
++
++/* Get the NOth history. If NO is less than zero or greater than or
++   equal to NUM_HISTORY, return NULL. Otherwise return a valid string.  */
++static char *
++get_history (int no)
++{
++  if (no < 0 || no >= num_history)
++    return 0;
++
++  return (char *) HISTORY_BUF + MAX_CMDLINE * no;
++}
++
++/* Add CMDLINE to the history buffer.  */
++static void
++add_history (const char *cmdline, int no)
++{
++  grub_memmove ((char *) HISTORY_BUF + MAX_CMDLINE * (no + 1),
++              (char *) HISTORY_BUF + MAX_CMDLINE * no,
++              MAX_CMDLINE * (num_history - no));
++  grub_strcpy ((char *) HISTORY_BUF + MAX_CMDLINE * no, cmdline);
++  if (num_history < HISTORY_SIZE)
++    num_history++;
++}
++
++static int
++real_get_cmdline (char *prompt, char *cmdline, int maxlen,
++                int echo_char, int readline)
++{
++  /* This is a rather complicated function. So explain the concept.
++     
++     A command-line consists of ``section''s. A section is a part of the
++     line which may be displayed on the screen, but a section is never
++     displayed with another section simultaneously.
++
++     Each section is basically 77 or less characters, but the exception
++     is the first section, which is 78 or less characters, because the
++     starting point is special. See below.
++
++     The first section contains a prompt and a command-line (or the
++     first part of a command-line when it is too long to be fit in the
++     screen). So, in the first section, the number of command-line
++     characters displayed is 78 minus the length of the prompt (or
++     less). If the command-line has more characters, `>' is put at the
++     position 78 (zero-origin), to inform the user of the hidden
++     characters.
++
++     Other sections always have `<' at the first position, since there
++     is absolutely a section before each section. If there is a section
++     after another section, this section consists of 77 characters and
++     `>' at the last position. The last section has 77 or less
++     characters and doesn't have `>'.
++
++     Each section other than the last shares some characters with the
++     previous section. This region is called ``margin''. If the cursor
++     is put at the magin which is shared by the first section and the
++     second, the first section is displayed. Otherwise, a displayed
++     section is switched to another section, only if the cursor is put
++     outside that section.  */
++
++  /* XXX: These should be defined in shared.h, but I leave these here,
++     until this code is freezed.  */
++#define CMDLINE_WIDTH 78
++#define CMDLINE_MARGIN        10
++  
++  int xpos, lpos, c, section;
++  /* The length of PROMPT.  */
++  int plen;
++  /* The length of the command-line.  */
++  int llen;
++  /* The index for the history.  */
++  int history = -1;
++  /* The working buffer for the command-line.  */
++  char *buf = (char *) CMDLINE_BUF;
++  /* The kill buffer.  */
++  char *kill_buf = (char *) KILL_BUF;
++  
++  /* Nested function definitions for code simplicity.  */
++
++  /* The forward declarations of nested functions are prefixed
++     with `auto'.  */
++  auto void cl_refresh (int full, int len);
++  auto void cl_backward (int count);
++  auto void cl_forward (int count);
++  auto void cl_insert (const char *str);
++  auto void cl_delete (int count);
++  auto void cl_init (void);
++  
++  /* Move the cursor backward.  */
++  void cl_backward (int count)
++    {
++      lpos -= count;
++      
++      /* If the cursor is in the first section, display the first section
++       instead of the second.  */
++      if (section == 1 && plen + lpos < CMDLINE_WIDTH)
++      cl_refresh (1, 0);
++      else if (xpos - count < 1)
++      cl_refresh (1, 0);
++      else
++      {
++        xpos -= count;
++
++        if (current_term->flags & TERM_DUMB)
++          {
++            int i;
++            
++            for (i = 0; i < count; i++)
++              grub_putchar ('\b');
++          }
++        else
++          gotoxy (xpos, getxy () & 0xFF);
++      }
++    }
++
++  /* Move the cursor forward.  */
++  void cl_forward (int count)
++    {
++      lpos += count;
++
++      /* If the cursor goes outside, scroll the screen to the right.  */
++      if (xpos + count >= CMDLINE_WIDTH)
++      cl_refresh (1, 0);
++      else
++      {
++        xpos += count;
++
++        if (current_term->flags & TERM_DUMB)
++          {
++            int i;
++            
++            for (i = lpos - count; i < lpos; i++)
++              {
++                if (! echo_char)
++                  grub_putchar (buf[i]);
++                else
++                  grub_putchar (echo_char);
++              }
++          }
++        else
++          gotoxy (xpos, getxy () & 0xFF);
++      }
++    }
++
++  /* Refresh the screen. If FULL is true, redraw the full line, otherwise,
++     only LEN characters from LPOS.  */
++  void cl_refresh (int full, int len)
++    {
++      int i;
++      int start;
++      int pos = xpos;
++      
++      if (full)
++      {
++        /* Recompute the section number.  */
++        if (lpos + plen < CMDLINE_WIDTH)
++          section = 0;
++        else
++          section = ((lpos + plen - CMDLINE_WIDTH)
++                     / (CMDLINE_WIDTH - 1 - CMDLINE_MARGIN) + 1);
++
++        /* From the start to the end.  */
++        len = CMDLINE_WIDTH;
++        pos = 0;
++        grub_putchar ('\r');
++
++        /* If SECTION is the first section, print the prompt, otherwise,
++           print `<'.  */
++        if (section == 0)
++          {
++            grub_printf ("%s", prompt);
++            len -= plen;
++            pos += plen;
++          }
++        else
++          {
++            grub_putchar ('<');
++            len--;
++            pos++;
++          }
++      }
++
++      /* Compute the index to start writing BUF and the resulting position
++       on the screen.  */
++      if (section == 0)
++      {
++        int offset = 0;
++        
++        if (! full)
++          offset = xpos - plen;
++        
++        start = 0;
++        xpos = lpos + plen;
++        start += offset;
++      }
++      else
++      {
++        int offset = 0;
++        
++        if (! full)
++          offset = xpos - 1;
++        
++        start = ((section - 1) * (CMDLINE_WIDTH - 1 - CMDLINE_MARGIN)
++                 + CMDLINE_WIDTH - plen - CMDLINE_MARGIN);
++        xpos = lpos + 1 - start;
++        start += offset;
++      }
++
++      /* Print BUF. If ECHO_CHAR is not zero, put it instead.  */
++      for (i = start; i < start + len && i < llen; i++)
++      {
++        if (! echo_char)
++          grub_putchar (buf[i]);
++        else
++          grub_putchar (echo_char);
++
++        pos++;
++      }
++      
++      /* Fill up the rest of the line with spaces.  */
++      for (; i < start + len; i++)
++      {
++        grub_putchar (' ');
++        pos++;
++      }
++      
++      /* If the cursor is at the last position, put `>' or a space,
++       depending on if there are more characters in BUF.  */
++      if (pos == CMDLINE_WIDTH)
++      {
++        if (start + len < llen)
++          grub_putchar ('>');
++        else
++          grub_putchar (' ');
++        
++        pos++;
++      }
++      
++      /* Back to XPOS.  */
++      if (current_term->flags & TERM_DUMB)
++      {
++        for (i = 0; i < pos - xpos; i++)
++          grub_putchar ('\b');
++      }
++      else
++      gotoxy (xpos, getxy () & 0xFF);
++    }
++
++  /* Initialize the command-line.  */
++  void cl_init (void)
++    {
++      /* Distinguish us from other lines and error messages!  */
++      grub_putchar ('\n');
++
++      /* Print full line and set position here.  */
++      cl_refresh (1, 0);
++    }
++
++  /* Insert STR to BUF.  */
++  void cl_insert (const char *str)
++    {
++      int l = grub_strlen (str);
++
++      if (llen + l < maxlen)
++      {
++        if (lpos == llen)
++          grub_memmove (buf + lpos, str, l + 1);
++        else
++          {
++            grub_memmove (buf + lpos + l, buf + lpos, llen - lpos + 1);
++            grub_memmove (buf + lpos, str, l);
++          }
++        
++        llen += l;
++        lpos += l;
++        if (xpos + l >= CMDLINE_WIDTH)
++          cl_refresh (1, 0);
++        else if (xpos + l + llen - lpos > CMDLINE_WIDTH)
++          cl_refresh (0, CMDLINE_WIDTH - xpos);
++        else
++          cl_refresh (0, l + llen - lpos);
++      }
++    }
++
++  /* Delete COUNT characters in BUF.  */
++  void cl_delete (int count)
++    {
++      grub_memmove (buf + lpos, buf + lpos + count, llen - count + 1);
++      llen -= count;
++      
++      if (xpos + llen + count - lpos > CMDLINE_WIDTH)
++      cl_refresh (0, CMDLINE_WIDTH - xpos);
++      else
++      cl_refresh (0, llen + count - lpos);
++    }
++
++  plen = grub_strlen (prompt);
++  llen = grub_strlen (cmdline);
++
++  if (maxlen > MAX_CMDLINE)
++    {
++      maxlen = MAX_CMDLINE;
++      if (llen >= MAX_CMDLINE)
++      {
++        llen = MAX_CMDLINE - 1;
++        cmdline[MAX_CMDLINE] = 0;
++      }
++    }
++  lpos = llen;
++  grub_strcpy (buf, cmdline);
++
++  cl_init ();
++
++  while ((c = ASCII_CHAR (getkey ())) != '\n' && c != '\r')
++    {
++      /* If READLINE is non-zero, handle readline-like key bindings.  */
++      if (readline)
++      {
++        switch (c)
++          {
++          case 9:             /* TAB lists completions */
++            {
++              int i;
++              /* POS points to the first space after a command.  */
++              int pos = 0;
++              int ret;
++              char *completion_buffer = (char *) COMPLETION_BUF;
++              int equal_pos = -1;
++              int is_filename;
++
++              /* Find the first word.  */
++              while (buf[pos] == ' ')
++                pos++;
++              while (buf[pos] && buf[pos] != '=' && buf[pos] != ' ')
++                pos++;
++
++              is_filename = (lpos > pos);
++
++              /* Find the position of the equal character after a
++                 command, and replace it with a space.  */
++              for (i = pos; buf[i] && buf[i] != ' '; i++)
++                if (buf[i] == '=')
++                  {
++                    equal_pos = i;
++                    buf[i] = ' ';
++                    break;
++                  }
++
++              /* Find the position of the first character in this
++                 word.  */
++              for (i = lpos; i > 0 && buf[i - 1] != ' '; i--)
++                ;
++
++              /* Invalidate the cache, because the user may exchange
++                 removable disks.  */
++              buf_drive = -1;
++
++              /* Copy this word to COMPLETION_BUFFER and do the
++                 completion.  */
++              grub_memmove (completion_buffer, buf + i, lpos - i);
++              completion_buffer[lpos - i] = 0;
++              ret = print_completions (is_filename, 1);
++              errnum = ERR_NONE;
++
++              if (ret >= 0)
++                {
++                  /* Found, so insert COMPLETION_BUFFER.  */
++                  cl_insert (completion_buffer + lpos - i);
++
++                  if (ret > 0)
++                    {
++                      /* There are more than one candidates, so print
++                         the list.  */
++                      grub_putchar ('\n');
++                      print_completions (is_filename, 0);
++                      errnum = ERR_NONE;
++                    }
++                }
++
++              /* Restore the command-line.  */
++              if (equal_pos >= 0)
++                buf[equal_pos] = '=';
++
++              if (ret)
++                cl_init ();
++            }
++            break;
++          case 1:             /* C-a go to beginning of line */
++            cl_backward (lpos);
++            break;
++          case 5:             /* C-e go to end of line */
++            cl_forward (llen - lpos);
++            break;
++          case 6:             /* C-f forward one character */
++            if (lpos < llen)
++              cl_forward (1);
++            break;
++          case 2:             /* C-b backward one character */
++            if (lpos > 0)
++              cl_backward (1);
++            break;
++          case 21:            /* C-u kill to beginning of line */
++            if (lpos == 0)
++              break;
++            /* Copy the string being deleted to KILL_BUF.  */
++            grub_memmove (kill_buf, buf, lpos);
++            kill_buf[lpos] = 0;
++            {
++              /* XXX: Not very clever.  */
++              
++              int count = lpos;
++              
++              cl_backward (lpos);
++              cl_delete (count);
++            }
++            break;
++          case 11:            /* C-k kill to end of line */
++            if (lpos == llen)
++              break;
++            /* Copy the string being deleted to KILL_BUF.  */
++            grub_memmove (kill_buf, buf + lpos, llen - lpos + 1);
++            cl_delete (llen - lpos);
++            break;
++          case 25:            /* C-y yank the kill buffer */
++            cl_insert (kill_buf);
++            break;
++          case 16:            /* C-p fetch the previous command */
++            {
++              char *p;
++
++              if (history < 0)
++                /* Save the working buffer.  */
++                grub_strcpy (cmdline, buf);
++              else if (grub_strcmp (get_history (history), buf) != 0)
++                /* If BUF is modified, add it into the history list.  */
++                add_history (buf, history);
++
++              history++;
++              p = get_history (history);
++              if (! p)
++                {
++                  history--;
++                  break;
++                }
++
++              grub_strcpy (buf, p);
++              llen = grub_strlen (buf);
++              lpos = llen;
++              cl_refresh (1, 0);
++            }
++            break;
++          case 14:            /* C-n fetch the next command */
++            {
++              char *p;
++
++              if (history < 0)
++                {
++                  break;
++                }
++              else if (grub_strcmp (get_history (history), buf) != 0)
++                /* If BUF is modified, add it into the history list.  */
++                add_history (buf, history);
++
++              history--;
++              p = get_history (history);
++              if (! p)
++                p = cmdline;
++
++              grub_strcpy (buf, p);
++              llen = grub_strlen (buf);
++              lpos = llen;
++              cl_refresh (1, 0);
++            }
++            break;
++          }
++      }
++
++      /* ESC, C-d and C-h are always handled. Actually C-d is not
++       functional if READLINE is zero, as the cursor cannot go
++       backward, but that's ok.  */
++      switch (c)
++      {
++      case 27:        /* ESC immediately return 1 */
++        return 1;
++      case 4:         /* C-d delete character under cursor */
++        if (lpos == llen)
++          break;
++        cl_delete (1);
++        break;
++      case 8:         /* C-h backspace */
++# ifdef GRUB_UTIL
++      case 127:       /* also backspace */
++# endif
++        if (lpos > 0)
++          {
++            cl_backward (1);
++            cl_delete (1);
++          }
++        break;
++      default:                /* insert printable character into line */
++        if (c >= ' ' && c <= '~')
++          {
++            char str[2];
++
++            str[0] = c;
++            str[1] = 0;
++            cl_insert (str);
++          }
++      }
++    }
++
++  grub_putchar ('\n');
++
++  /* If ECHO_CHAR is NUL, remove the leading spaces.  */
++  lpos = 0;
++  if (! echo_char)
++    while (buf[lpos] == ' ')
++      lpos++;
++
++  /* Copy the working buffer to CMDLINE.  */
++  grub_memmove (cmdline, buf + lpos, llen - lpos + 1);
++
++  /* If the readline-like feature is turned on and CMDLINE is not
++     empty, add it into the history list.  */
++  if (readline && lpos < llen)
++    add_history (cmdline, 0);
++
++  return 0;
++}
++
++/* Don't use this with a MAXLEN greater than 1600 or so!  The problem
++   is that GET_CMDLINE depends on the everything fitting on the screen
++   at once.  So, the whole screen is about 2000 characters, minus the
++   PROMPT, and space for error and status lines, etc.  MAXLEN must be
++   at least 1, and PROMPT and CMDLINE must be valid strings (not NULL
++   or zero-length).
++
++   If ECHO_CHAR is nonzero, echo it instead of the typed character. */
++int
++get_cmdline (char *prompt, char *cmdline, int maxlen,
++           int echo_char, int readline)
++{
++  int old_cursor;
++  int ret;
++
++  old_cursor = setcursor (1);
++  
++  /* Because it is hard to deal with different conditions simultaneously,
++     less functional cases are handled here. Assume that TERM_NO_ECHO
++     implies TERM_NO_EDIT.  */
++  if (current_term->flags & (TERM_NO_ECHO | TERM_NO_EDIT))
++    {
++      char *p = cmdline;
++      int c;
++      
++      /* Make sure that MAXLEN is not too large.  */
++      if (maxlen > MAX_CMDLINE)
++      maxlen = MAX_CMDLINE;
++
++      /* Print only the prompt. The contents of CMDLINE is simply discarded,
++       even if it is not empty.  */
++      grub_printf ("%s", prompt);
++
++      /* Gather characters until a newline is gotten.  */
++      while ((c = ASCII_CHAR (getkey ())) != '\n' && c != '\r')
++      {
++        /* Return immediately if ESC is pressed.  */
++        if (c == 27)
++          {
++            setcursor (old_cursor);
++            return 1;
++          }
++
++        /* Printable characters are added into CMDLINE.  */
++        if (c >= ' ' && c <= '~')
++          {
++            if (! (current_term->flags & TERM_NO_ECHO))
++              grub_putchar (c);
++
++            /* Preceding space characters must be ignored.  */
++            if (c != ' ' || p != cmdline)
++              *p++ = c;
++          }
++      }
++
++      *p = 0;
++
++      if (! (current_term->flags & TERM_NO_ECHO))
++      grub_putchar ('\n');
++
++      setcursor (old_cursor);
++      return 0;
++    }
++
++  /* Complicated features are left to real_get_cmdline.  */
++  ret = real_get_cmdline (prompt, cmdline, maxlen, echo_char, readline);
++  setcursor (old_cursor);
++  return ret;
++}
++
++int
++safe_parse_maxint (char **str_ptr, int *myint_ptr)
++{
++  char *ptr = *str_ptr;
++  int myint = 0;
++  int mult = 10, found = 0;
++
++  /*
++   *  Is this a hex number?
++   */
++  if (*ptr == '0' && tolower (*(ptr + 1)) == 'x')
++    {
++      ptr += 2;
++      mult = 16;
++    }
++
++  while (1)
++    {
++      /* A bit tricky. This below makes use of the equivalence:
++       (A >= B && A <= C) <=> ((A - B) <= (C - B))
++       when C > B and A is unsigned.  */
++      unsigned int digit;
++
++      digit = tolower (*ptr) - '0';
++      if (digit > 9)
++      {
++        digit -= 'a' - '0';
++        if (mult == 10 || digit > 5)
++          break;
++        digit += 10;
++      }
++
++      found = 1;
++      if (myint > ((MAXINT - digit) / mult))
++      {
++        errnum = ERR_NUMBER_OVERFLOW;
++        return 0;
++      }
++      myint = (myint * mult) + digit;
++      ptr++;
++    }
++
++  if (!found)
++    {
++      errnum = ERR_NUMBER_PARSING;
++      return 0;
++    }
++
++  *str_ptr = ptr;
++  *myint_ptr = myint;
++
++  return 1;
++}
++#endif /* STAGE1_5 */
++
++#if !defined(STAGE1_5) || defined(FSYS_FAT)
++int
++grub_tolower (int c)
++{
++  if (c >= 'A' && c <= 'Z')
++    return (c + ('a' - 'A'));
++
++  return c;
++}
++#endif /* ! STAGE1_5 || FSYS_FAT */
++
++int
++grub_isspace (int c)
++{
++  switch (c)
++    {
++    case ' ':
++    case '\t':
++    case '\r':
++    case '\n':
++      return 1;
++    default:
++      break;
++    }
++
++  return 0;
++}
++
++#if !defined(STAGE1_5) || defined(FSYS_ISO9660)
++int
++grub_memcmp (const char *s1, const char *s2, int n)
++{
++  while (n)
++    {
++      if (*s1 < *s2)
++      return -1;
++      else if (*s1 > *s2)
++      return 1;
++      s1++;
++      s2++;
++      n--;
++    }
++
++  return 0;
++}
++#endif /* ! STAGE1_5 || FSYS_ISO9660 */
++
++#ifndef STAGE1_5
++int
++grub_strncat (char *s1, const char *s2, int n)
++{
++  int i = -1;
++
++  while (++i < n && s1[i] != 0);
++
++  while (i < n && (s1[i++] = *(s2++)) != 0);
++
++  s1[n - 1] = 0;
++
++  if (i >= n)
++    return 0;
++
++  s1[i] = 0;
++
++  return 1;
++}
++#endif /* ! STAGE1_5 */
++
++/* XXX: This below is an evil hack. Certainly, we should change the
++   strategy to determine what should be defined and what shouldn't be
++   defined for each image. For example, it would be better to create
++   a static library supporting minimal standard C functions and link
++   each image with the library. Complicated things should be left to
++   computer, definitely. -okuji  */
++#if !defined(STAGE1_5) || defined(FSYS_VSTAFS)
++int
++grub_strcmp (const char *s1, const char *s2)
++{
++  while (*s1 || *s2)
++    {
++      if (*s1 < *s2)
++      return -1;
++      else if (*s1 > *s2)
++      return 1;
++      s1 ++;
++      s2 ++;
++    }
++
++  return 0;
++}
++#endif /* ! STAGE1_5 || FSYS_VSTAFS */
++
++#ifndef STAGE1_5
++/* Wait for a keypress and return its code.  */
++int
++getkey (void)
++{
++  return current_term->getkey ();
++}
++
++/* Check if a key code is available.  */
++int
++checkkey (void)
++{
++  return current_term->checkkey ();
++}
++#endif /* ! STAGE1_5 */
++
++/* Display an ASCII character.  */
++void
++grub_putchar (int c)
++{
++  if (c == '\n')
++    grub_putchar ('\r');
++#ifndef STAGE1_5
++  else if (c == '\t' && current_term->getxy)
++    {
++      int n;
++      
++      n = 8 - ((current_term->getxy () >> 8) & 3);
++      while (n--)
++      grub_putchar (' ');
++      
++      return;
++    }
++#endif /* ! STAGE1_5 */
++  
++#ifdef STAGE1_5
++  
++  /* In Stage 1.5, only the normal console is supported.  */
++  console_putchar (c);
++  
++#else /* ! STAGE1_5 */
++
++  if (c == '\n')
++    {
++      /* Internal `more'-like feature.  */
++      if (count_lines >= 0)
++      {
++        count_lines++;
++        if (count_lines >= max_lines - 2)
++          {
++            int tmp;
++            
++            /* It's important to disable the feature temporarily, because
++               the following grub_printf call will print newlines.  */
++            count_lines = -1;
++
++            if (current_term->setcolorstate)
++              current_term->setcolorstate (COLOR_STATE_HIGHLIGHT);
++            
++            grub_printf ("\n[Hit return to continue]");
++
++            if (current_term->setcolorstate)
++              current_term->setcolorstate (COLOR_STATE_NORMAL);
++            
++            do
++              {
++                tmp = ASCII_CHAR (getkey ());
++              }
++            while (tmp != '\n' && tmp != '\r');
++            grub_printf ("\r                        \r");
++            
++            /* Restart to count lines.  */
++            count_lines = 0;
++            return;
++          }
++      }
++    }
++
++  current_term->putchar (c);
++  
++#endif /* ! STAGE1_5 */
++}
++
++#ifndef STAGE1_5
++void
++gotoxy (int x, int y)
++{
++  current_term->gotoxy (x, y);
++}
++
++int
++getxy (void)
++{
++  return current_term->getxy ();
++}
++
++void
++cls (void)
++{
++  /* If the terminal is dumb, there is no way to clean the terminal.  */
++  if (current_term->flags & TERM_DUMB)
++    grub_putchar ('\n');
++  else
++    current_term->cls ();
++}
++
++int
++setcursor (int on)
++{
++  if (current_term->setcursor)
++    return current_term->setcursor (on);
++
++  return 1;
++}
++#endif /* ! STAGE1_5 */
++
++int
++substring (const char *s1, const char *s2)
++{
++  while (*s1 == *s2)
++    {
++      /* The strings match exactly. */
++      if (! *(s1++))
++      return 0;
++      s2 ++;
++    }
++
++  /* S1 is a substring of S2. */
++  if (*s1 == 0)
++    return -1;
++
++  /* S1 isn't a substring. */
++  return 1;
++}
++
++#ifndef STAGE1_5
++/* Terminate the string STR with NUL.  */
++int
++nul_terminate (char *str)
++{
++  int ch;
++  
++  while (*str && ! grub_isspace (*str))
++    str++;
++
++  ch = *str;
++  *str = 0;
++  return ch;
++}
++
++char *
++grub_strstr (const char *s1, const char *s2)
++{
++  while (*s1)
++    {
++      const char *ptr, *tmp;
++
++      ptr = s1;
++      tmp = s2;
++
++      while (*tmp && *ptr == *tmp)
++      ptr++, tmp++;
++      
++      if (tmp > s2 && ! *tmp)
++      return (char *) s1;
++
++      s1++;
++    }
++
++  return 0;
++}
++
++int
++grub_strlen (const char *str)
++{
++  int len = 0;
++
++  while (*str++)
++    len++;
++
++  return len;
++}
++#endif /* ! STAGE1_5 */
++
++int
++memcheck (int addr, int len)
++{
++#ifdef GRUB_UTIL
++  auto int start_addr (void);
++  auto int end_addr (void);
++  
++  auto int start_addr (void)
++    {
++      int ret;
++# if defined(HAVE_START_SYMBOL)
++      asm volatile ("movl     $start, %0" : "=a" (ret));
++# elif defined(HAVE_USCORE_START_SYMBOL)
++      asm volatile ("movl     $_start, %0" : "=a" (ret));
++# endif
++      return ret;
++    }
++
++  auto int end_addr (void)
++    {
++      int ret;
++# if defined(HAVE_END_SYMBOL)
++      asm volatile ("movl     $end, %0" : "=a" (ret));
++# elif defined(HAVE_USCORE_END_SYMBOL)
++      asm volatile ("movl     $_end, %0" : "=a" (ret));
++# endif
++      return ret;
++    }
++
++  if (start_addr () <= addr && end_addr () > addr + len)
++    return ! errnum;
++#endif /* GRUB_UTIL */
++
++  if ((addr < RAW_ADDR (0x1000))
++      || (addr < RAW_ADDR (0x100000)
++        && RAW_ADDR (mbi.mem_lower * 1024) < (addr + len))
++      || (addr >= RAW_ADDR (0x100000)
++        && RAW_ADDR (mbi.mem_upper * 1024) < ((addr - 0x100000) + len)))
++    errnum = ERR_WONT_FIT;
++
++  return ! errnum;
++}
++
++void *
++grub_memmove (void *to, const void *from, int len)
++{
++   if (memcheck ((int) to, len))
++     {
++       /* This assembly code is stolen from
++        linux-2.2.2/include/asm-i386/string.h. This is not very fast
++        but compact.  */
++       int d0, d1, d2;
++
++       if (to < from)
++       {
++         asm volatile ("cld\n\t"
++                       "rep\n\t"
++                       "movsb"
++                       : "=&c" (d0), "=&S" (d1), "=&D" (d2)
++                       : "0" (len),"1" (from),"2" (to)
++                       : "memory");
++       }
++       else
++       {
++         asm volatile ("std\n\t"
++                       "rep\n\t"
++                       "movsb\n\t"
++                       "cld"
++                       : "=&c" (d0), "=&S" (d1), "=&D" (d2)
++                       : "0" (len),
++                       "1" (len - 1 + (const char *) from),
++                       "2" (len - 1 + (char *) to)
++                       : "memory");
++       }
++     }
++
++   return errnum ? NULL : to;
++}
++
++void *
++grub_memset (void *start, int c, int len)
++{
++  char *p = start;
++
++  if (memcheck ((int) start, len))
++    {
++      while (len -- > 0)
++      *p ++ = c;
++    }
++
++  return errnum ? NULL : start;
++}
++
++#ifndef STAGE1_5
++char *
++grub_strcpy (char *dest, const char *src)
++{
++  grub_memmove (dest, src, grub_strlen (src) + 1);
++  return dest;
++}
++#endif /* ! STAGE1_5 */
++
++#ifndef GRUB_UTIL
++# undef memcpy
++/* GCC emits references to memcpy() for struct copies etc.  */
++void *memcpy (void *dest, const void *src, int n)  __attribute__ ((alias ("grub_memmove")));
++#endif
+diff -Nur grub-0.97/stage2/common.c grub-0.97-patched/stage2/common.c
+--- grub-0.97/stage2/common.c  2004-03-27 17:25:44.000000000 +0100
++++ grub-0.97-patched/stage2/common.c  2012-11-11 17:06:52.558085305 +0100
+@@ -142,7 +142,8 @@
+ init_bios_info (void)
+ {
+ #ifndef STAGE1_5
+-  unsigned long cont, memtmp, addr;
++  unsigned long memtmp, addr;
++  volatile unsigned long cont;
+   int drive;
+ #endif
+diff -Nur grub-0.97/stage2/disk_io.c grub-0.97-patched/stage2/disk_io.c
+--- grub-0.97/stage2/disk_io.c 2004-05-23 18:35:24.000000000 +0200
++++ grub-0.97-patched/stage2/disk_io.c 2012-11-11 17:07:12.740730013 +0100
+@@ -21,6 +21,7 @@
+ #include <shared.h>
+ #include <filesys.h>
++#include <gpt.h>
+ #ifdef SUPPORT_NETBOOT
+ # define GRUB 1
+@@ -137,7 +138,7 @@
+ }
+ int
+-rawread (int drive, int sector, int byte_offset, int byte_len, char *buf)
++rawread (int drive, unsigned int sector, int byte_offset, int byte_len, char *buf)
+ {
+   int slen, sectors_per_vtrack;
+   int sector_size_bits = log2 (buf_geom.sector_size);
+@@ -261,7 +262,7 @@
+        */
+       if (disk_read_func)
+       {
+-        int sector_num = sector;
++        unsigned int sector_num = sector;
+         int length = buf_geom.sector_size - byte_offset;
+         if (length > size)
+           length = size;
+@@ -291,7 +292,7 @@
+ int
+-devread (int sector, int byte_offset, int byte_len, char *buf)
++devread (unsigned int sector, int byte_offset, int byte_len, char *buf)
+ {
+   /*
+    *  Check partition boundaries
+@@ -330,7 +331,7 @@
+ #ifndef STAGE1_5
+ int
+-rawwrite (int drive, int sector, char *buf)
++rawwrite (int drive, unsigned int sector, char *buf)
+ {
+   if (sector == 0)
+     {
+@@ -363,7 +364,7 @@
+ }
+ int
+-devwrite (int sector, int sector_count, char *buf)
++devwrite (unsigned int sector, int sector_count, char *buf)
+ {
+ #if defined(GRUB_UTIL) && defined(__linux__)
+   if (current_partition != 0xFFFFFF
+@@ -502,8 +503,8 @@
+ set_partition_hidden_flag (int hidden)
+ {
+   unsigned long part = 0xFFFFFF;
+-  unsigned long start, len, offset, ext_offset;
+-  int entry, type;
++  unsigned long start, len, offset, ext_offset, gpt_offset;
++  int entry, type, gpt_count, gpt_size;
+   char mbr[512];
+   
+   /* The drive must be a hard disk.  */
+@@ -524,8 +525,15 @@
+   /* Look for the partition.  */
+   while (next_partition (current_drive, 0xFFFFFF, &part, &type,           
+                        &start, &len, &offset, &entry,
+-                       &ext_offset, mbr))
++                       &ext_offset, &gpt_offset, &gpt_count, &gpt_size, mbr))
+     {                                                                       
++        /* The partition may not be a GPT partition.  */
++        if (gpt_offset != 0)
++          {
++              errnum = ERR_BAD_ARGUMENT;
++              return 1;
++          }
++
+       if (part == current_partition)
+       {
+         /* Found.  */
+@@ -577,11 +585,14 @@
+               unsigned long *partition, int *type,
+               unsigned long *start, unsigned long *len,
+               unsigned long *offset, int *entry,
+-              unsigned long *ext_offset, char *buf)
++               unsigned long *ext_offset,
++               unsigned long *gpt_offset, int *gpt_count,
++               int *gpt_size, char *buf)
+ {
+   /* Forward declarations.  */
+   auto int next_bsd_partition (void);
+   auto int next_pc_slice (void);
++  auto int next_gpt_slice(void);
+   /* Get next BSD partition in current PC slice.  */
+   int next_bsd_partition (void)
+@@ -666,6 +677,40 @@
+         return 0;
+       }
++      /* If this is a GPT partition table, read it as such.  */
++      if (*entry == -1 && *offset == 0 && PC_SLICE_TYPE (buf, 0) == PC_SLICE_TYPE_GPT)
++       {
++         struct grub_gpt_header *hdr = (struct grub_gpt_header *) buf;
++
++         /* Read in the GPT Partition table header.  */
++         if (! rawread (drive, 1, 0, SECTOR_SIZE, buf))
++           return 0;
++
++         if (hdr->magic == GPT_HEADER_MAGIC && hdr->version == 0x10000)
++           {
++             /* Let gpt_offset point to the first entry in the GPT
++                partition table.  This can also be used by callers of
++                next_partition to determine if a entry comes from a
++                GPT partition table or not.  */
++             *gpt_offset = hdr->partitions;
++             *gpt_count = hdr->maxpart;
++             *gpt_size =  hdr->partentry_size;
++             
++             return next_gpt_slice();
++           }
++         else
++           {
++             /* This is not a valid header for a GPT partition table.
++                Re-read the MBR or the boot sector of the extended
++                partition.  */
++             if (! rawread (drive, *offset, 0, SECTOR_SIZE, buf))
++               return 0;
++           }
++       }
++
++      /* Not a GPT partition.  */
++      *gpt_offset = 0;
++
+       /* Increase the entry number.  */
+       (*entry)++;
+@@ -710,6 +755,43 @@
+       return 1;
+     }
++  /* Get the next GPT slice.  */
++  int next_gpt_slice (void)
++    {
++      struct grub_gpt_partentry *gptentry = (struct grub_gpt_partentry *) buf;
++      /* Make GPT partitions show up as PC slices.  */
++      int pc_slice_no = (*partition & 0xFF0000) >> 16;
++
++      /* If this is the first time...  */
++      if (pc_slice_no == 0xFF)
++       {
++         pc_slice_no = -1;
++         *entry = -1;
++       }
++
++      do {
++       (*entry)++;
++
++       if (*entry >= *gpt_count)
++         {
++           errnum = ERR_NO_PART;
++           return 0;
++         }
++       /* Read in the GPT Partition table entry.  */
++       if (! rawread (drive, (*gpt_offset) + GPT_ENTRY_SECTOR (*gpt_size, *entry), GPT_ENTRY_INDEX (*gpt_size, *entry), *gpt_size, buf))
++         return 0;
++      } while (! (gptentry->type1 && gptentry->type2));
++
++      pc_slice_no++;
++      *start = gptentry->start;
++      *len = gptentry->end - gptentry->start + 1;
++      *type = PC_SLICE_TYPE_EXT2FS;
++      *entry = pc_slice_no;
++      *partition = (*entry << 16) | 0xFFFF;
++
++      return 1;
++    }
++
+   /* Start the body of this function.  */
+   
+ #ifndef STAGE1_5
+@@ -717,6 +799,9 @@
+     return 0;
+ #endif
++  if (*partition != 0xFFFFFF && *gpt_offset != 0)
++    return next_gpt_slice ();
++
+   /* If previous partition is a BSD partition or a PC slice which
+      contains BSD partitions...  */
+   if ((*partition != 0xFFFFFF && IS_PC_SLICE_TYPE_BSD (*type & 0xff))
+@@ -746,6 +831,8 @@
+ #ifndef STAGE1_5
+ static unsigned long cur_part_offset;
+ static unsigned long cur_part_addr;
++static unsigned long cur_part_start;
++static int cur_part_entry;
+ #endif
+ /* Open a partition.  */
+@@ -755,6 +842,9 @@
+   unsigned long dest_partition = current_partition;
+   unsigned long part_offset;
+   unsigned long ext_offset;
++  unsigned long gpt_offset;
++  int gpt_count;
++  int gpt_size;
+   int entry;
+   char buf[SECTOR_SIZE];
+   int bsd_part, pc_slice;
+@@ -766,7 +856,8 @@
+       int ret = next_partition (current_drive, dest_partition,
+                               &current_partition, &current_slice,
+                               &part_start, &part_length,
+-                              &part_offset, &entry, &ext_offset, buf);
++                               &part_offset, &entry, &ext_offset,
++                               &gpt_offset, &gpt_count, &gpt_size, buf);
+       bsd_part = (current_partition >> 8) & 0xFF;
+       pc_slice = current_partition >> 16;
+       return ret;
+@@ -800,7 +891,12 @@
+   /* If this is the whole disk, return here.  */
+   if (! flags && current_partition == 0xFFFFFF)
+-    return 1;
++    {
++#ifndef STAGE1_5
++      cur_part_offset = 0;
++#endif /* ! STAGE1_5 */
++      return 1;
++    }
+   if (flags)
+     dest_partition = 0xFFFFFF;
+@@ -815,6 +911,8 @@
+       
+       cur_part_offset = part_offset;
+       cur_part_addr = BOOT_PART_TABLE + (entry << 4);
++      cur_part_start = part_start;
++      cur_part_entry = entry;
+ #endif /* ! STAGE1_5 */
+       /* If this is a valid partition...  */
+@@ -1142,6 +1240,7 @@
+         src = (char *) SCRATCHADDR + BOOTSEC_PART_OFFSET;
+         while (dst < (char *) BOOT_PART_TABLE + BOOTSEC_PART_LENGTH)
+           *dst++ = *src++;
++        PC_SLICE_START (BOOT_PART_TABLE - PC_SLICE_OFFSET, cur_part_entry) = cur_part_start;
+         
+         /* Set the active flag of the booted partition.  */
+         for (i = 0; i < 4; i++)
+diff -Nur grub-0.97/stage2/fsys_ext2fs.c grub-0.97-patched/stage2/fsys_ext2fs.c
+--- grub-0.97/stage2/fsys_ext2fs.c     2004-08-08 20:19:18.000000000 +0200
++++ grub-0.97-patched/stage2/fsys_ext2fs.c     2012-11-11 17:07:12.750730331 +0100
+@@ -41,6 +41,7 @@
+ typedef unsigned short __u16;
+ typedef __signed__ int __s32;
+ typedef unsigned int __u32;
++typedef unsigned long long __u64;
+ /*
+  * Constants relative to the data blocks, from ext2_fs.h
+@@ -61,9 +62,9 @@
+     __u32 s_free_inodes_count;        /* Free inodes count */
+     __u32 s_first_data_block; /* First Data Block */
+     __u32 s_log_block_size;   /* Block size */
+-    __s32 s_log_frag_size;    /* Fragment size */
++    __s32 s_obso_log_frag_size;       /* Obsoleted Fragment size */
+     __u32 s_blocks_per_group; /* # Blocks per group */
+-    __u32 s_frags_per_group;  /* # Fragments per group */
++    __u32 s_obso_frags_per_group;     /* Obsoleted Fragments per group */
+     __u32 s_inodes_per_group; /* # Inodes per group */
+     __u32 s_mtime;            /* Mount time */
+     __u32 s_wtime;            /* Write time */
+@@ -72,17 +73,62 @@
+     __u16 s_magic;            /* Magic signature */
+     __u16 s_state;            /* File system state */
+     __u16 s_errors;           /* Behaviour when detecting errors */
+-    __u16 s_pad;
++    __u16 s_minor_rev_level;  /* minor revision level */
+     __u32 s_lastcheck;                /* time of last check */
+     __u32 s_checkinterval;    /* max. time between checks */
+     __u32 s_creator_os;               /* OS */
+     __u32 s_rev_level;                /* Revision level */
+     __u16 s_def_resuid;               /* Default uid for reserved blocks */
+     __u16 s_def_resgid;               /* Default gid for reserved blocks */
+-    __u32 s_reserved[235];    /* Padding to the end of the block */
++    /*
++     * These fields are for EXT2_DYNAMIC_REV superblocks only.
++     *
++     * Note: the difference between the compatible feature set and
++     * the incompatible feature set is that if there is a bit set
++     * in the incompatible feature set that the kernel doesn't
++     * know about, it should refuse to mount the filesystem.
++     *
++     * e2fsck's requirements are more strict; if it doesn't know
++     * about a feature in either the compatible or incompatible
++     * feature set, it must abort and not try to meddle with
++     * things it doesn't understand...
++     */
++    __u32 s_first_ino;                /* First non-reserved inode */
++    __u16 s_inode_size;               /* size of inode structure */
++    __u16 s_block_group_nr;   /* block group # of this superblock */
++    __u32 s_feature_compat;   /* compatible feature set */
++    __u32 s_feature_incompat; /* incompatible feature set */
++    __u32 s_feature_ro_compat;        /* readonly-compatible feature set */
++    __u8  s_uuid[16];         /* 128-bit uuid for volume */
++    char  s_volume_name[16];  /* volume name */
++    char  s_last_mounted[64]; /* directory where last mounted */
++    __u32 s_algorithm_usage_bitmap; /* For compression */
++    /*
++     * Performance hints.  Directory preallocation should only
++     * happen if the EXT2_FEATURE_COMPAT_DIR_PREALLOC flag is on.
++     */
++    __u8  s_prealloc_blocks;  /* Nr of blocks to try to preallocate*/
++    __u8  s_prealloc_dir_blocks;      /* Nr to preallocate for dirs */
++    __u16 s_reserved_gdt_blocks;/* Per group table for online growth */
++    /*
++     * Journaling support valid if EXT2_FEATURE_COMPAT_HAS_JOURNAL set.
++     */
++    __u8 s_journal_uuid[16];  /* uuid of journal superblock */
++    __u32 s_journal_inum;     /* inode number of journal file */
++    __u32 s_journal_dev;      /* device number of journal file */
++    __u32 s_last_orphan;      /* start of list of inodes to delete */
++    __u32 s_hash_seed[4];     /* HTREE hash seed */
++    __u8  s_def_hash_version; /* Default hash version to use */
++    __u8  s_jnl_backup_type;  /* Default type of journal backup */
++    __u16 s_desc_size;                /* size of group descriptor */
++    __u32 s_default_mount_opts;
++    __u32 s_first_meta_bg;    /* First metablock group */
++    __u32 s_mkfs_time;                /* When the filesystem was created */
++    __u32 s_jnl_blocks[17];   /* Backup of the journal inode */
++    __u32 s_reserved[172];    /* Padding to the end of the block */
+   };
+-struct ext2_group_desc
++struct ext4_group_desc
+   {
+     __u32 bg_block_bitmap;    /* Blocks bitmap block */
+     __u32 bg_inode_bitmap;    /* Inodes bitmap block */
+@@ -90,8 +136,18 @@
+     __u16 bg_free_blocks_count;       /* Free blocks count */
+     __u16 bg_free_inodes_count;       /* Free inodes count */
+     __u16 bg_used_dirs_count; /* Directories count */
+-    __u16 bg_pad;
+-    __u32 bg_reserved[3];
++    __u16 bg_flags;           /* EXT4_BG_flags (INODE_UNINIT, etc) */
++    __u32 bg_reserved[2];             /* Likely block/inode bitmap checksum */
++    __u16 bg_itable_unused;   /* Unused inodes count */
++    __u16 bg_checksum;                /* crc16(sb_uuid+group+desc) */
++    __u32 bg_block_bitmap_hi; /* Blocks bitmap block MSB */
++    __u32 bg_inode_bitmap_hi; /* Inodes bitmap block MSB */
++    __u32 bg_inode_table_hi;  /* Inodes table block MSB */
++    __u16 bg_free_blocks_count_hi;/* Free blocks count MSB */
++    __u16 bg_free_inodes_count_hi;/* Free inodes count MSB */
++    __u16 bg_used_dirs_count_hi;      /* Directories count MSB */
++    __u16 bg_itable_unused_hi;        /* Unused inodes count MSB */
++    __u32 bg_reserved2[3];
+   };
+ struct ext2_inode
+@@ -129,22 +185,22 @@
+     __u32 i_block[EXT2_N_BLOCKS];     /* 40: Pointers to blocks */
+     __u32 i_version;          /* File version (for NFS) */
+     __u32 i_file_acl;         /* File ACL */
+-    __u32 i_dir_acl;          /* Directory ACL */
+-    __u32 i_faddr;            /* Fragment address */
++    __u32 i_size_high;
++    __u32 i_obso_faddr;               /* Obsoleted fragment address */
+     union
+       {
+       struct
+         {
+-          __u8 l_i_frag;      /* Fragment number */
+-          __u8 l_i_fsize;     /* Fragment size */
+-          __u16 i_pad1;
+-          __u32 l_i_reserved2[2];
++              __u16   l_i_blocks_high; /* were l_i_reserved1 */
++              __u16   l_i_file_acl_high;
++              __u16   l_i_uid_high;   /* these 2 fields */
++              __u16   l_i_gid_high;   /* were reserved2[0] */
++              __u32   l_i_reserved2;
+         }
+       linux2;
+       struct
+         {
+-          __u8 h_i_frag;      /* Fragment number */
+-          __u8 h_i_fsize;     /* Fragment size */
++              __u16   h_i_reserved1;  /* Obsoleted fragment number/size which are removed in ext4 */
+           __u16 h_i_mode_high;
+           __u16 h_i_uid_high;
+           __u16 h_i_gid_high;
+@@ -153,16 +209,36 @@
+       hurd2;
+       struct
+         {
+-          __u8 m_i_frag;      /* Fragment number */
+-          __u8 m_i_fsize;     /* Fragment size */
+-          __u16 m_pad1;
++              __u16   h_i_reserved1;  /* Obsoleted fragment number/size which are removed in ext4 */
++              __u16   m_i_file_acl_high;
+           __u32 m_i_reserved2[2];
+         }
+       masix2;
+       }
+     osd2;                     /* OS dependent 2 */
++      __u16   i_extra_isize;
++      __u16   i_pad1;
++      __u32  i_ctime_extra;  /* extra Change time      (nsec << 2 | epoch) */
++      __u32  i_mtime_extra;  /* extra Modification time(nsec << 2 | epoch) */
++      __u32  i_atime_extra;  /* extra Access time      (nsec << 2 | epoch) */
++      __u32  i_crtime;       /* File Creation time */
++      __u32  i_crtime_extra; /* extra FileCreationtime (nsec << 2 | epoch) */
++      __u32  i_version_hi;    /* high 32 bits for 64-bit version */
+   };
++#define EXT4_FEATURE_INCOMPAT_EXTENTS         0x0040 /* extents support */
++#define EXT4_FEATURE_INCOMPAT_64BIT                   0x0080 /* grub not supported*/
++#define EXT4_FEATURE_INCOMPAT_MMP           0x0100
++#define EXT4_FEATURE_INCOMPAT_FLEX_BG         0x0200
++
++#define EXT4_HAS_INCOMPAT_FEATURE(sb,mask)                    \
++      ( sb->s_feature_incompat & mask )
++
++#define EXT4_EXTENTS_FL               0x00080000 /* Inode uses extents */
++#define EXT4_HUGE_FILE_FL     0x00040000 /* Set to each huge file */
++
++#define EXT4_MIN_DESC_SIZE                    32
++
+ /* linux/limits.h */
+ #define NAME_MAX         255  /* # chars in a file name */
+@@ -180,6 +256,57 @@
+     char name[EXT2_NAME_LEN]; /* File name */
+   };
++/* linux/ext4_fs_extents.h */ 
++/* This is the extent on-disk structure.
++ * It's used at the bottom of the tree.
++ */
++struct ext4_extent 
++  {
++      __u32  ee_block;   /* first logical block extent covers */
++      __u16  ee_len;     /* number of blocks covered by extent */
++      __u16  ee_start_hi;    /* high 16 bits of physical block */
++      __u32  ee_start_lo;    /* low 32 bits of physical block */
++  };
++
++/*
++ * This is index on-disk structure.
++ * It's used at all the levels except the bottom.
++ */
++struct ext4_extent_idx 
++  {
++    __u32  ei_block;   /* index covers logical blocks from 'block' */
++    __u32  ei_leaf_lo; /* pointer to the physical block of the next *
++                           * level. leaf or next index could be there */
++    __u16  ei_leaf_hi; /* high 16 bits of physical block */
++    __u16  ei_unused;
++  };
++
++/*
++ * Each block (leaves and indexes), even inode-stored has header.
++ */
++struct ext4_extent_header 
++  {
++    __u16  eh_magic;   /* probably will support different formats */
++    __u16  eh_entries; /* number of valid entries */
++    __u16  eh_max;     /* capacity of store in entries */
++    __u16  eh_depth;   /* has tree real underlying blocks? */
++    __u32  eh_generation;  /* generation of the tree */
++  };
++
++#define EXT4_EXT_MAGIC      (0xf30a)
++#define EXT_FIRST_EXTENT(__hdr__) \
++    ((struct ext4_extent *) (((char *) (__hdr__)) +     \
++                 sizeof(struct ext4_extent_header)))
++#define EXT_FIRST_INDEX(__hdr__) \
++    ((struct ext4_extent_idx *) (((char *) (__hdr__)) + \
++                 sizeof(struct ext4_extent_header)))
++#define EXT_LAST_EXTENT(__hdr__) \
++    (EXT_FIRST_EXTENT((__hdr__)) + (__u16)((__hdr__)->eh_entries) - 1)
++#define EXT_LAST_INDEX(__hdr__) \
++    (EXT_FIRST_INDEX((__hdr__)) + (__u16)((__hdr__)->eh_entries) - 1)
++
++
++
+ /* linux/ext2fs.h */
+ /*
+  * EXT2_DIR_PAD defines the directory entries boundaries
+@@ -218,13 +345,30 @@
+ #define EXT2_ADDR_PER_BLOCK(s)          (EXT2_BLOCK_SIZE(s) / sizeof (__u32))
+ #define EXT2_ADDR_PER_BLOCK_BITS(s)           (log2(EXT2_ADDR_PER_BLOCK(s)))
++#define EXT2_GOOD_OLD_REV     0       /* The good old (original) format */
++#define EXT2_DYNAMIC_REV      1       /* V2 format w/ dynamic inode sizes */
++#define EXT2_GOOD_OLD_INODE_SIZE 128
++#define EXT2_INODE_SIZE(s)    (((s)->s_rev_level == EXT2_GOOD_OLD_REV) ? \
++                              EXT2_GOOD_OLD_INODE_SIZE : \
++                              (s)->s_inode_size)
++#define EXT2_INODES_PER_BLOCK(s)      (EXT2_BLOCK_SIZE(s)/EXT2_INODE_SIZE(s))
++
+ /* linux/ext2_fs.h */
+ #define EXT2_BLOCK_SIZE_BITS(s)        ((s)->s_log_block_size + 10)
+ /* kind of from ext2/super.c */
+ #define EXT2_BLOCK_SIZE(s)    (1 << EXT2_BLOCK_SIZE_BITS(s))
+ /* linux/ext2fs.h */
++/* sizeof(struct ext2_group_desc) is changed in ext4 
++ * in kernel code, ext2/3 uses sizeof(struct ext2_group_desc) to calculate 
++ * number of desc per block, while ext4 uses superblock->s_desc_size in stead
++ * superblock->s_desc_size is not available in ext2/3
++ * */
++#define EXT2_DESC_SIZE(s) \
++      (EXT4_HAS_INCOMPAT_FEATURE(s,EXT4_FEATURE_INCOMPAT_64BIT)? \
++      s->s_desc_size : EXT4_MIN_DESC_SIZE)
+ #define EXT2_DESC_PER_BLOCK(s) \
+-     (EXT2_BLOCK_SIZE(s) / sizeof (struct ext2_group_desc))
++      (EXT2_BLOCK_SIZE(s) / EXT2_DESC_SIZE(s))
++
+ /* linux/stat.h */
+ #define S_IFMT  00170000
+ #define S_IFLNK  0120000
+@@ -386,6 +530,122 @@
+     [logical_block & (EXT2_ADDR_PER_BLOCK (SUPERBLOCK) - 1)];
+ }
++/* extent binary search index
++ * find closest index in the current level extent tree
++ * kind of from ext4_ext_binsearch_idx in ext4/extents.c
++ */
++static struct ext4_extent_idx*
++ext4_ext_binsearch_idx(struct ext4_extent_header* eh, int logical_block)
++{
++  struct ext4_extent_idx *r, *l, *m;
++  l = EXT_FIRST_INDEX(eh) + 1;
++  r = EXT_LAST_INDEX(eh);
++  while (l <= r) 
++    {
++        m = l + (r - l) / 2;
++        if (logical_block < m->ei_block)
++                r = m - 1;
++        else
++                l = m + 1;
++      }
++  return (struct ext4_extent_idx*)(l - 1);
++}
++
++/* extent binary search 
++ * find closest extent in the leaf level 
++ * kind of from ext4_ext_binsearch in ext4/extents.c
++ */
++static struct ext4_extent*
++ext4_ext_binsearch(struct ext4_extent_header* eh, int logical_block)
++{
++  struct ext4_extent *r, *l, *m;
++  l = EXT_FIRST_EXTENT(eh) + 1;
++  r = EXT_LAST_EXTENT(eh);
++  while (l <= r) 
++    {
++        m = l + (r - l) / 2;
++        if (logical_block < m->ee_block)
++                r = m - 1;
++        else
++                l = m + 1;
++      }
++  return (struct ext4_extent*)(l - 1);
++}
++
++/* Maps extents enabled logical block into physical block via an inode. 
++ * EXT4_HUGE_FILE_FL should be checked before calling this.
++ */
++static int
++ext4fs_block_map (int logical_block)
++{
++  struct ext4_extent_header *eh;
++  struct ext4_extent *ex, *extent;
++  struct ext4_extent_idx *ei, *index;
++  int depth;
++  int i;
++
++#ifdef E2DEBUG
++  unsigned char *i;
++  for (i = (unsigned char *) INODE;
++       i < ((unsigned char *) INODE + sizeof (struct ext2_inode));
++       i++)
++    {
++      printf ("%c", "0123456789abcdef"[*i >> 4]);
++      printf ("%c", "0123456789abcdef"[*i % 16]);
++      if (!((i + 1 - (unsigned char *) INODE) % 16))
++      {
++        printf ("\n");
++      }
++      else
++      {
++        printf (" ");
++      }
++    }
++  printf ("logical block %d\n", logical_block);
++#endif /* E2DEBUG */
++  eh = (struct ext4_extent_header*)INODE->i_block;
++  if (eh->eh_magic != EXT4_EXT_MAGIC)
++  {
++          errnum = ERR_FSYS_CORRUPT;
++          return -1;
++  }
++  while((depth = eh->eh_depth) != 0)
++      { /* extent index */
++        if (eh->eh_magic != EXT4_EXT_MAGIC)
++        {
++                errnum = ERR_FSYS_CORRUPT;
++                return -1;
++        }
++        ei = ext4_ext_binsearch_idx(eh, logical_block);
++        if (ei->ei_leaf_hi)
++      {/* 64bit physical block number not supported */
++        errnum = ERR_FILELENGTH;
++        return -1;
++      }
++        if (!ext2_rdfsb(ei->ei_leaf_lo, DATABLOCK1))
++      {
++        errnum = ERR_FSYS_CORRUPT;
++        return -1;
++      }
++        eh = (struct ext4_extent_header*)DATABLOCK1;
++      }
++
++  /* depth==0, we come to the leaf */
++  ex = ext4_ext_binsearch(eh, logical_block);
++  if (ex->ee_start_hi) 
++      {/* 64bit physical block number not supported */
++        errnum = ERR_FILELENGTH;
++        return -1;
++      }
++  if ((ex->ee_block + ex->ee_len) < logical_block)
++      {
++        errnum = ERR_FSYS_CORRUPT;
++        return -1;
++      }
++  return ex->ee_start_lo + logical_block - ex->ee_block;
++
++}
++
+ /* preconditions: all preconds of ext2fs_block_map */
+ int
+ ext2fs_read (char *buf, int len)
+@@ -420,6 +680,11 @@
+       /* find the (logical) block component of our location */
+       logical_block = filepos >> EXT2_BLOCK_SIZE_BITS (SUPERBLOCK);
+       offset = filepos & (EXT2_BLOCK_SIZE (SUPERBLOCK) - 1);
++      /* map extents enabled logical block number to physical fs on-dick block number */
++      if (EXT4_HAS_INCOMPAT_FEATURE(SUPERBLOCK,EXT4_FEATURE_INCOMPAT_EXTENTS) 
++                    && INODE->i_flags & EXT4_EXTENTS_FL)
++          map = ext4fs_block_map (logical_block);
++      else
+       map = ext2fs_block_map (logical_block);
+ #ifdef E2DEBUG
+       printf ("map=%d\n", map);
+@@ -504,7 +769,7 @@
+   int desc;                   /* index within that group */
+   int ino_blk;                        /* fs pointer of the inode's information */
+   int str_chk = 0;            /* used to hold the results of a string compare */
+-  struct ext2_group_desc *gdp;
++  struct ext4_group_desc *ext4_gdp;
+   struct ext2_inode *raw_inode;       /* inode info corresponding to current_ino */
+   char linkbuf[PATH_MAX];     /* buffer for following symbolic links */
+@@ -550,10 +815,17 @@
+       {
+         return 0;
+       }
+-      gdp = GROUP_DESC;
+-      ino_blk = gdp[desc].bg_inode_table +
++        ext4_gdp = (struct ext4_group_desc *)( (__u8*)GROUP_DESC + 
++                                      desc * EXT2_DESC_SIZE(SUPERBLOCK));
++        if (EXT4_HAS_INCOMPAT_FEATURE(SUPERBLOCK, EXT4_FEATURE_INCOMPAT_64BIT)
++              && (! ext4_gdp->bg_inode_table_hi))
++      {/* 64bit itable not supported */
++        errnum = ERR_FILELENGTH;
++        return -1;
++      }
++      ino_blk = ext4_gdp->bg_inode_table + 
+       (((current_ino - 1) % (SUPERBLOCK->s_inodes_per_group))
+-       >> log2 (EXT2_BLOCK_SIZE (SUPERBLOCK) / sizeof (struct ext2_inode)));
++       >> log2 (EXT2_INODES_PER_BLOCK (SUPERBLOCK)));
+ #ifdef E2DEBUG
+       printf ("inode table fsblock=%d\n", ino_blk);
+ #endif /* E2DEBUG */
+@@ -565,13 +837,12 @@
+       /* reset indirect blocks! */
+       mapblock2 = mapblock1 = -1;
+-      raw_inode = INODE +
+-      ((current_ino - 1)
+-       & (EXT2_BLOCK_SIZE (SUPERBLOCK) / sizeof (struct ext2_inode) - 1));
++      raw_inode = (struct ext2_inode *)((char *)INODE +
++      ((current_ino - 1) & (EXT2_INODES_PER_BLOCK (SUPERBLOCK) - 1)) *
++      EXT2_INODE_SIZE (SUPERBLOCK));
+ #ifdef E2DEBUG
+       printf ("ipb=%d, sizeof(inode)=%d\n",
+-            (EXT2_BLOCK_SIZE (SUPERBLOCK) / sizeof (struct ext2_inode)),
+-            sizeof (struct ext2_inode));
++            EXT2_INODES_PER_BLOCK (SUPERBLOCK), EXT2_INODE_SIZE (SUPERBLOCK));
+       printf ("inode=%x, raw_inode=%x\n", INODE, raw_inode);
+       printf ("offset into inode table block=%d\n", (int) raw_inode - (int) INODE);
+       for (i = (unsigned char *) INODE; i <= (unsigned char *) raw_inode;
+@@ -629,7 +900,10 @@
+           }
+         linkbuf[filemax + len] = '\0';
+-        /* Read the symlink data. */
++        /* Read the symlink data. 
++         * Slow symlink is extents enabled
++         * But since grub_read invokes ext2fs_read, nothing to change here
++         * */
+         if (! ext2_is_fast_symlink ())
+           {
+             /* Read the necessary blocks, and reset the file pointer. */
+@@ -640,7 +914,9 @@
+           }
+         else
+           {
+-            /* Copy the data directly from the inode. */
++            /* Copy the data directly from the inode. 
++                 * Fast symlink is not extents enabled
++                 * */
+             len = filemax;
+             memmove (linkbuf, (char *) INODE->i_block, len);
+           }
+@@ -674,6 +950,13 @@
+             errnum = ERR_BAD_FILETYPE;
+             return 0;
+           }
++        /* if file is too large, just stop and report an error*/
++        if ( (INODE->i_flags & EXT4_HUGE_FILE_FL) && !(INODE->i_size_high))
++          {
++                /* file too large, stop reading */
++                errnum = ERR_FILELENGTH;
++                return 0;
++          }
+         filemax = (INODE->i_size);
+         return 1;
+@@ -728,17 +1011,28 @@
+           }
+         /* else, find the (logical) block component of our location */
++        /* ext4 logical block number the same as ext2/3 */
+         blk = loc >> EXT2_BLOCK_SIZE_BITS (SUPERBLOCK);
+         /* we know which logical block of the directory entry we are looking
+            for, now we have to translate that to the physical (fs) block on
+            the disk */
++        /* map extents enabled logical block number to physical fs on-dick block number */
++        if (EXT4_HAS_INCOMPAT_FEATURE(SUPERBLOCK,EXT4_FEATURE_INCOMPAT_EXTENTS) 
++                        && INODE->i_flags & EXT4_EXTENTS_FL)
++              map = ext4fs_block_map (blk);
++        else
+         map = ext2fs_block_map (blk);
+ #ifdef E2DEBUG
+         printf ("fs block=%d\n", map);
+ #endif /* E2DEBUG */
+         mapblock2 = -1;
+-        if ((map < 0) || !ext2_rdfsb (map, DATABLOCK2))
++        if (map < 0) 
++        {
++            *rest = ch;
++            return 0;
++        }
++          if (!ext2_rdfsb (map, DATABLOCK2))
+           {
+             errnum = ERR_FSYS_CORRUPT;
+             *rest = ch;
+diff -Nur grub-0.97/stage2/gpt.h grub-0.97-patched/stage2/gpt.h
+--- grub-0.97/stage2/gpt.h     1970-01-01 01:00:00.000000000 +0100
++++ grub-0.97-patched/stage2/gpt.h     2012-11-11 17:07:12.697728638 +0100
+@@ -0,0 +1,68 @@
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 2002,2005,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
++ *  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, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#ifndef _GPT_H
++#define _GPT_H
++
++typedef signed char grub_int8_t;
++typedef signed short grub_int16_t;
++typedef signed int grub_int32_t;
++typedef signed long long int grub_int64_t;
++typedef unsigned char grub_uint8_t;
++typedef unsigned short grub_uint16_t;
++typedef unsigned int grub_uint32_t;
++typedef unsigned long long int grub_uint64_t;
++
++struct grub_gpt_header
++{
++  grub_uint64_t magic;
++  grub_uint32_t version;
++  grub_uint32_t headersize;
++  grub_uint32_t crc32;
++  grub_uint32_t unused1;
++  grub_uint64_t primary;
++  grub_uint64_t backup;
++  grub_uint64_t start;
++  grub_uint64_t end;
++  grub_uint8_t guid[16];
++  grub_uint64_t partitions;
++  grub_uint32_t maxpart;
++  grub_uint32_t partentry_size;
++  grub_uint32_t partentry_crc32;
++} __attribute__ ((packed));
++
++struct grub_gpt_partentry
++{
++  grub_uint64_t type1;
++  grub_uint64_t type2;
++  grub_uint8_t guid[16];
++  grub_uint64_t start;
++  grub_uint64_t end;
++  grub_uint8_t attrib;
++  char name[72];
++} __attribute__ ((packed));
++
++#define GPT_HEADER_MAGIC       0x5452415020494645UL
++
++#define        GPT_ENTRY_SECTOR(size,entry)                                    \
++       ((((entry) * (size) + 1) & ~(SECTOR_SIZE - 1)) >> SECTOR_BITS)
++#define        GPT_ENTRY_INDEX(size,entry)                                     \
++       ((((entry) * (size) + 1) & (SECTOR_SIZE - 1)) - 1)
++
++#endif /* _GPT_H */
+diff -Nur grub-0.97/stage2/graphics.c grub-0.97-patched/stage2/graphics.c
+--- grub-0.97/stage2/graphics.c        1970-01-01 01:00:00.000000000 +0100
++++ grub-0.97-patched/stage2/graphics.c        2012-11-11 17:06:33.320470847 +0100
+@@ -0,0 +1,563 @@
++/* graphics.c - graphics mode support for GRUB */
++/* Implemented as a terminal type by Jeremy Katz <katzj@redhat.com> based
++ * on a patch by Paulo César Pereira de Andrade <pcpa@conectiva.com.br>
++ */
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 2001,2002  Red Hat, Inc.
++ *  Portions copyright (C) 2000  Conectiva, 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
++ *  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, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++
++
++#ifdef SUPPORT_GRAPHICS
++
++#include <term.h>
++#include <shared.h>
++#include <graphics.h>
++
++int saved_videomode;
++unsigned char *font8x16;
++
++int graphics_inited = 0;
++static char splashimage[64];
++
++#define VSHADOW VSHADOW1
++unsigned char VSHADOW1[38400];
++unsigned char VSHADOW2[38400];
++unsigned char VSHADOW4[38400];
++unsigned char VSHADOW8[38400];
++
++/* constants to define the viewable area */
++const int x0 = 0;
++const int x1 = 80;
++const int y0 = 0;
++const int y1 = 30;
++
++/* text buffer has to be kept around so that we can write things as we
++ * scroll and the like */
++unsigned short text[80 * 30];
++
++/* why do these have to be kept here? */
++int foreground = (63 << 16) | (63 << 8) | (63), background = 0, border = 0;
++
++/* current position */
++static int fontx = 0;
++static int fonty = 0;
++
++/* global state so that we don't try to recursively scroll or cursor */
++static int no_scroll = 0;
++
++/* color state */
++static int graphics_standard_color = A_NORMAL;
++static int graphics_normal_color = A_NORMAL;
++static int graphics_highlight_color = A_REVERSE;
++static int graphics_current_color = A_NORMAL;
++static color_state graphics_color_state = COLOR_STATE_STANDARD;
++
++
++/* graphics local functions */
++static void graphics_setxy(int col, int row);
++static void graphics_scroll();
++
++/* FIXME: where do these really belong? */
++static inline void outb(unsigned short port, unsigned char val)
++{
++    __asm __volatile ("outb %0,%1"::"a" (val), "d" (port));
++}
++
++static void MapMask(int value) {
++    outb(0x3c4, 2);
++    outb(0x3c5, value);
++}
++
++/* bit mask register */
++static void BitMask(int value) {
++    outb(0x3ce, 8);
++    outb(0x3cf, value);
++}
++
++
++
++/* Set the splash image */
++void graphics_set_splash(char *splashfile) {
++    grub_strcpy(splashimage, splashfile);
++}
++
++/* Get the current splash image */
++char *graphics_get_splash(void) {
++    return splashimage;
++}
++
++/* Initialize a vga16 graphics display with the palette based off of
++ * the image in splashimage.  If the image doesn't exist, leave graphics
++ * mode.  */
++int graphics_init()
++{
++    if(!grub_file_exists(splashimage)) {
++        return 0;
++    }
++
++    if (!graphics_inited) {
++        saved_videomode = set_videomode(0x12);
++    }
++
++    if (!read_image(splashimage)) {
++        set_videomode(saved_videomode);
++        grub_printf("failed to read image\n");
++        return 0;
++    }
++
++    font8x16 = (unsigned char*)graphics_get_font();
++
++    graphics_inited = 1;
++
++    /* make sure that the highlight color is set correctly */
++    graphics_highlight_color = ((graphics_normal_color >> 4) | 
++                              ((graphics_normal_color & 0xf) << 4));
++
++    return 1;
++}
++
++/* Leave graphics mode */
++void graphics_end(void)
++{
++    if (graphics_inited) {
++        set_videomode(saved_videomode);
++        graphics_inited = 0;
++    }
++}
++
++/* Print ch on the screen.  Handle any needed scrolling or the like */
++void graphics_putchar(int ch) {
++    ch &= 0xff;
++
++    graphics_cursor(0);
++
++    if (ch == '\n') {
++        if (fonty + 1 < y1)
++            graphics_setxy(fontx, fonty + 1);
++        else
++            graphics_scroll();
++        graphics_cursor(1);
++        return;
++    } else if (ch == '\r') {
++        graphics_setxy(x0, fonty);
++        graphics_cursor(1);
++        return;
++    }
++
++    graphics_cursor(0);
++
++    text[fonty * 80 + fontx] = ch;
++    text[fonty * 80 + fontx] &= 0x00ff;
++    if (graphics_current_color & 0xf0)
++        text[fonty * 80 + fontx] |= 0x100;
++
++    graphics_cursor(0);
++
++    if ((fontx + 1) >= x1) {
++        graphics_setxy(x0, fonty);
++        if (fonty + 1 < y1)
++            graphics_setxy(x0, fonty + 1);
++        else
++            graphics_scroll();
++    } else {
++        graphics_setxy(fontx + 1, fonty);
++    }
++
++    graphics_cursor(1);
++}
++
++/* get the current location of the cursor */
++int graphics_getxy(void) {
++    return (fontx << 8) | fonty;
++}
++
++void graphics_gotoxy(int x, int y) {
++    graphics_cursor(0);
++
++    graphics_setxy(x, y);
++
++    graphics_cursor(1);
++}
++
++void graphics_cls(void) {
++    int i;
++    unsigned char *mem, *s1, *s2, *s4, *s8;
++
++    graphics_cursor(0);
++    graphics_gotoxy(x0, y0);
++
++    mem = (unsigned char*)VIDEOMEM;
++    s1 = (unsigned char*)VSHADOW1;
++    s2 = (unsigned char*)VSHADOW2;
++    s4 = (unsigned char*)VSHADOW4;
++    s8 = (unsigned char*)VSHADOW8;
++
++    for (i = 0; i < 80 * 30; i++)
++        text[i] = ' ';
++    graphics_cursor(1);
++
++    BitMask(0xff);
++
++    /* plano 1 */
++    MapMask(1);
++    grub_memcpy(mem, s1, 38400);
++
++    /* plano 2 */
++    MapMask(2);
++    grub_memcpy(mem, s2, 38400);
++
++    /* plano 3 */
++    MapMask(4);
++    grub_memcpy(mem, s4, 38400);
++
++    /* plano 4 */
++    MapMask(8);
++    grub_memcpy(mem, s8, 38400);
++
++    MapMask(15);
++ 
++}
++
++void graphics_setcolorstate (color_state state) {
++    switch (state) {
++    case COLOR_STATE_STANDARD:
++        graphics_current_color = graphics_standard_color;
++        break;
++    case COLOR_STATE_NORMAL:
++        graphics_current_color = graphics_normal_color;
++        break;
++    case COLOR_STATE_HIGHLIGHT:
++        graphics_current_color = graphics_highlight_color;
++        break;
++    default:
++        graphics_current_color = graphics_standard_color;
++        break;
++    }
++
++    graphics_color_state = state;
++}
++
++void graphics_setcolor (int normal_color, int highlight_color) {
++    graphics_normal_color = normal_color;
++    graphics_highlight_color = highlight_color;
++
++    graphics_setcolorstate (graphics_color_state);
++}
++
++void graphics_setcursor (int on) {
++    /* FIXME: we don't have a cursor in graphics */
++    return;
++}
++
++/* Read in the splashscreen image and set the palette up appropriately.
++ * Format of splashscreen is an xpm (can be gzipped) with 16 colors and
++ * 640x480. */
++int read_image(char *s)
++{
++    char buf[32], pal[16];
++    unsigned char c, base, mask, *s1, *s2, *s4, *s8;
++    unsigned i, len, idx, colors, x, y, width, height;
++
++    if (!grub_open(s))
++        return 0;
++
++    /* read header */
++    if (!grub_read((char*)&buf, 10) || grub_memcmp(buf, "/* XPM */\n", 10)) {
++        grub_close();
++        return 0;
++    }
++    
++    /* parse info */
++    while (grub_read(&c, 1)) {
++        if (c == '"')
++            break;
++    }
++
++    while (grub_read(&c, 1) && (c == ' ' || c == '\t'))
++        ;
++
++    i = 0;
++    width = c - '0';
++    while (grub_read(&c, 1)) {
++        if (c >= '0' && c <= '9')
++            width = width * 10 + c - '0';
++        else
++            break;
++    }
++    while (grub_read(&c, 1) && (c == ' ' || c == '\t'))
++        ;
++
++    height = c - '0';
++    while (grub_read(&c, 1)) {
++        if (c >= '0' && c <= '9')
++            height = height * 10 + c - '0';
++        else
++            break;
++    }
++    while (grub_read(&c, 1) && (c == ' ' || c == '\t'))
++        ;
++
++    colors = c - '0';
++    while (grub_read(&c, 1)) {
++        if (c >= '0' && c <= '9')
++            colors = colors * 10 + c - '0';
++        else
++            break;
++    }
++
++    base = 0;
++    while (grub_read(&c, 1) && c != '"')
++        ;
++
++    /* palette */
++    for (i = 0, idx = 1; i < colors; i++) {
++        len = 0;
++
++        while (grub_read(&c, 1) && c != '"')
++            ;
++        grub_read(&c, 1);       /* char */
++        base = c;
++        grub_read(buf, 4);      /* \t c # */
++
++        while (grub_read(&c, 1) && c != '"') {
++            if (len < sizeof(buf))
++                buf[len++] = c;
++        }
++
++        if (len == 6 && idx < 15) {
++            int r = ((hex(buf[0]) << 4) | hex(buf[1])) >> 2;
++            int g = ((hex(buf[2]) << 4) | hex(buf[3])) >> 2;
++            int b = ((hex(buf[4]) << 4) | hex(buf[5])) >> 2;
++
++            pal[idx] = base;
++            graphics_set_palette(idx, r, g, b);
++            ++idx;
++        }
++    }
++
++    x = y = len = 0;
++
++    s1 = (unsigned char*)VSHADOW1;
++    s2 = (unsigned char*)VSHADOW2;
++    s4 = (unsigned char*)VSHADOW4;
++    s8 = (unsigned char*)VSHADOW8;
++
++    for (i = 0; i < 38400; i++)
++        s1[i] = s2[i] = s4[i] = s8[i] = 0;
++
++    /* parse xpm data */
++    while (y < height) {
++        while (1) {
++            if (!grub_read(&c, 1)) {
++                grub_close();
++                return 0;
++            }
++            if (c == '"')
++                break;
++        }
++
++        while (grub_read(&c, 1) && c != '"') {
++            for (i = 1; i < 15; i++)
++                if (pal[i] == c) {
++                    c = i;
++                    break;
++                }
++
++            mask = 0x80 >> (x & 7);
++            if (c & 1)
++                s1[len + (x >> 3)] |= mask;
++            if (c & 2)
++                s2[len + (x >> 3)] |= mask;
++            if (c & 4)
++                s4[len + (x >> 3)] |= mask;
++            if (c & 8)
++                s8[len + (x >> 3)] |= mask;
++
++            if (++x >= 640) {
++                x = 0;
++
++                if (y < 480)
++                    len += 80;
++                ++y;
++            }
++        }
++    }
++
++    grub_close();
++
++    graphics_set_palette(0, (background >> 16), (background >> 8) & 63, 
++                background & 63);
++    graphics_set_palette(15, (foreground >> 16), (foreground >> 8) & 63, 
++                foreground & 63);
++    graphics_set_palette(0x11, (border >> 16), (border >> 8) & 63, 
++                         border & 63);
++
++    return 1;
++}
++
++
++/* Convert a character which is a hex digit to the appropriate integer */
++int hex(int v)
++{
++    if (v >= 'A' && v <= 'F')
++        return (v - 'A' + 10);
++    if (v >= 'a' && v <= 'f')
++        return (v - 'a' + 10);
++    return (v - '0');
++}
++
++
++/* move the graphics cursor location to col, row */
++static void graphics_setxy(int col, int row) {
++    if (col >= x0 && col < x1) {
++        fontx = col;
++        cursorX = col << 3;
++    }
++    if (row >= y0 && row < y1) {
++        fonty = row;
++        cursorY = row << 4;
++    }
++}
++
++/* scroll the screen */
++static void graphics_scroll() {
++    int i, j;
++
++    /* we don't want to scroll recursively... that would be bad */
++    if (no_scroll)
++        return;
++    no_scroll = 1;
++
++    /* move everything up a line */
++    for (j = y0 + 1; j < y1; j++) {
++        graphics_gotoxy(x0, j - 1);
++        for (i = x0; i < x1; i++) {
++            graphics_putchar(text[j * 80 + i]);
++        }
++    }
++
++    /* last line should be blank */
++    graphics_gotoxy(x0, y1 - 1);
++    for (i = x0; i < x1; i++)
++        graphics_putchar(' ');
++    graphics_setxy(x0, y1 - 1);
++
++    no_scroll = 0;
++}
++
++
++void graphics_cursor(int set) {
++    unsigned char *pat, *mem, *ptr, chr[16 << 2];
++    int i, ch, invert, offset;
++
++    if (set && no_scroll)
++        return;
++
++    offset = cursorY * 80 + fontx;
++    ch = text[fonty * 80 + fontx] & 0xff;
++    invert = (text[fonty * 80 + fontx] & 0xff00) != 0;
++    pat = font8x16 + (ch << 4);
++
++    mem = (unsigned char*)VIDEOMEM + offset;
++
++    if (!set) {
++        for (i = 0; i < 16; i++) {
++            unsigned char mask = pat[i];
++
++            if (!invert) {
++                chr[i     ] = ((unsigned char*)VSHADOW1)[offset];
++                chr[16 + i] = ((unsigned char*)VSHADOW2)[offset];
++                chr[32 + i] = ((unsigned char*)VSHADOW4)[offset];
++                chr[48 + i] = ((unsigned char*)VSHADOW8)[offset];
++
++                /* FIXME: if (shade) */
++                if (1) {
++                    if (ch == DISP_VERT || ch == DISP_LL ||
++                        ch == DISP_UR || ch == DISP_LR) {
++                        unsigned char pmask = ~(pat[i] >> 1);
++
++                        chr[i     ] &= pmask;
++                        chr[16 + i] &= pmask;
++                        chr[32 + i] &= pmask;
++                        chr[48 + i] &= pmask;
++                    }
++                    if (i > 0 && ch != DISP_VERT) {
++                        unsigned char pmask = ~(pat[i - 1] >> 1);
++
++                        chr[i     ] &= pmask;
++                        chr[16 + i] &= pmask;
++                        chr[32 + i] &= pmask;
++                        chr[48 + i] &= pmask;
++                        if (ch == DISP_HORIZ || ch == DISP_UR || ch == DISP_LR) {
++                            pmask = ~pat[i - 1];
++
++                            chr[i     ] &= pmask;
++                            chr[16 + i] &= pmask;
++                            chr[32 + i] &= pmask;
++                            chr[48 + i] &= pmask;
++                        }
++                    }
++                }
++                chr[i     ] |= mask;
++                chr[16 + i] |= mask;
++                chr[32 + i] |= mask;
++                chr[48 + i] |= mask;
++
++                offset += 80;
++            }
++            else {
++                chr[i     ] = mask;
++                chr[16 + i] = mask;
++                chr[32 + i] = mask;
++                chr[48 + i] = mask;
++            }
++        }
++    }
++    else {
++        MapMask(15);
++        ptr = mem;
++        for (i = 0; i < 16; i++, ptr += 80) {
++            cursorBuf[i] = pat[i];
++            *ptr = ~pat[i];
++        }
++        return;
++    }
++
++    offset = 0;
++    for (i = 1; i < 16; i <<= 1, offset += 16) {
++        int j;
++
++        MapMask(i);
++        ptr = mem;
++        for (j = 0; j < 16; j++, ptr += 80)
++            *ptr = chr[j + offset];
++    }
++
++    MapMask(15);
++}
++
++int grub_file_exists(char *s) {
++    if (!grub_open(s))
++        return 0;
++    grub_close();
++    return 1;
++}
++
++#endif /* SUPPORT_GRAPHICS */
+diff -Nur grub-0.97/stage2/graphics.h grub-0.97-patched/stage2/graphics.h
+--- grub-0.97/stage2/graphics.h        1970-01-01 01:00:00.000000000 +0100
++++ grub-0.97-patched/stage2/graphics.h        2012-11-11 17:06:33.321470879 +0100
+@@ -0,0 +1,45 @@
++/* graphics.h - graphics console interface */
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 2002  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
++ *  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, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#ifndef GRAPHICS_H
++#define GRAPHICS_H
++
++/* magic constant */
++#define VIDEOMEM 0xA0000
++
++/* function prototypes */
++char *graphics_get_splash(void);
++
++int read_image(char *s);
++void graphics_cursor(int set);
++
++/* function prototypes for asm functions */
++void * graphics_get_font();
++void graphics_set_palette(int idx, int red, int green, int blue);
++void set_int1c_handler();
++void unset_int1c_handler();
++
++/* Only to check for safe opening before we start */
++int grub_file_exists(char *s);
++
++extern short cursorX, cursorY;
++extern char cursorBuf[16];
++
++#endif /* GRAPHICS_H */
+diff -Nur grub-0.97/stage2/iso9660.h grub-0.97-patched/stage2/iso9660.h
+--- grub-0.97/stage2/iso9660.h 2004-03-27 17:02:38.000000000 +0100
++++ grub-0.97-patched/stage2/iso9660.h 2012-11-11 17:07:12.740730013 +0100
+@@ -73,11 +73,11 @@
+ typedef       struct __iso_16bit {
+   u_int16_t l, b;
+-} iso_16bit_t __attribute__ ((packed));
++} iso_16bit_t;
+ typedef       struct __iso_32bit {
+   u_int32_t l, b;
+-} iso_32bit_t __attribute__ ((packed));
++} iso_32bit_t;
+ typedef u_int8_t              iso_date_t[7];
+diff -Nur grub-0.97/stage2/Makefile.am grub-0.97-patched/stage2/Makefile.am
+--- grub-0.97/stage2/Makefile.am       2005-02-02 21:37:35.000000000 +0100
++++ grub-0.97-patched/stage2/Makefile.am       2012-11-11 17:07:12.747730236 +0100
+@@ -7,7 +7,7 @@
+         fat.h filesys.h freebsd.h fs.h hercules.h i386-elf.h \
+       imgact_aout.h iso9660.h jfs.h mb_header.h mb_info.h md5.h \
+       nbi.h pc_slice.h serial.h shared.h smp-imps.h term.h \
+-      terminfo.h tparm.h nbi.h ufs2.h vstafs.h xfs.h
++      terminfo.h tparm.h nbi.h ufs2.h vstafs.h xfs.h graphics.h
+ EXTRA_DIST = setjmp.S apm.S $(noinst_SCRIPTS)
+ # For <stage1.h>.
+@@ -19,20 +19,20 @@
+       disk_io.c fsys_ext2fs.c fsys_fat.c fsys_ffs.c fsys_iso9660.c \
+       fsys_jfs.c fsys_minix.c fsys_reiserfs.c fsys_ufs2.c \
+       fsys_vstafs.c fsys_xfs.c gunzip.c md5.c serial.c stage2.c \
+-      terminfo.c tparm.c
+-libgrub_a_CFLAGS = $(GRUB_CFLAGS) -I$(top_srcdir)/lib \
++      terminfo.c tparm.c graphics.c
++libgrub_a_CFLAGS = $(GRUB_CFLAGS) -fno-stack-protector -I$(top_srcdir)/lib \
+       -DGRUB_UTIL=1 -DFSYS_EXT2FS=1 -DFSYS_FAT=1 -DFSYS_FFS=1 \
+       -DFSYS_ISO9660=1 -DFSYS_JFS=1 -DFSYS_MINIX=1 -DFSYS_REISERFS=1 \
+       -DFSYS_UFS2=1 -DFSYS_VSTAFS=1 -DFSYS_XFS=1 \
+       -DUSE_MD5_PASSWORDS=1 -DSUPPORT_SERIAL=1 -DSUPPORT_HERCULES=1
+ # Stage 2 and Stage 1.5's.
+-pkglibdir = $(libdir)/$(PACKAGE)/$(host_cpu)-$(host_vendor)
++stagedir = $(libdir)/$(PACKAGE)/$(host_cpu)-$(host_vendor)
+ EXTRA_PROGRAMS = nbloader.exec pxeloader.exec diskless.exec
+ if DISKLESS_SUPPORT
+-pkglib_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \
++stage_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \
+       ffs_stage1_5 iso9660_stage1_5 jfs_stage1_5 minix_stage1_5 \
+       reiserfs_stage1_5 ufs2_stage1_5 vstafs_stage1_5 xfs_stage1_5 \
+       nbgrub pxegrub
+@@ -43,7 +43,7 @@
+       reiserfs_stage1_5.exec ufs2_stage1_5.exec vstafs_stage1_5.exec \
+       xfs_stage1_5.exec nbloader.exec pxeloader.exec diskless.exec
+ else
+-pkglib_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \
++stage_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \
+       ffs_stage1_5 iso9660_stage1_5 jfs_stage1_5 minix_stage1_5 \
+       reiserfs_stage1_5 ufs2_stage1_5 vstafs_stage1_5 xfs_stage1_5
+ noinst_DATA = pre_stage2 start start_eltorito
+@@ -79,8 +79,14 @@
+ HERCULES_FLAGS =
+ endif
+-STAGE2_COMPILE = $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
+-      $(NETBOOT_FLAGS) $(SERIAL_FLAGS) $(HERCULES_FLAGS)
++if GRAPHICS_SUPPORT
++GRAPHICS_FLAGS = -DSUPPORT_GRAPHICS=1
++else
++GRAPHICS_FLAGS =
++endif
++
++STAGE2_COMPILE = $(STAGE2_CFLAGS) -fno-reorder-functions -fno-builtin -nostdinc \
++      $(NETBOOT_FLAGS) $(SERIAL_FLAGS) $(HERCULES_FLAGS) $(GRAPHICS_FLAGS)
+ STAGE1_5_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,2000
+ STAGE1_5_COMPILE = $(STAGE2_COMPILE) -DNO_DECOMPRESSION=1 -DSTAGE1_5=1
+@@ -90,7 +96,8 @@
+       cmdline.c common.c console.c disk_io.c fsys_ext2fs.c \
+       fsys_fat.c fsys_ffs.c fsys_iso9660.c fsys_jfs.c fsys_minix.c \
+       fsys_reiserfs.c fsys_ufs2.c fsys_vstafs.c fsys_xfs.c gunzip.c \
+-      hercules.c md5.c serial.c smp-imps.c stage2.c terminfo.c tparm.c
++      hercules.c md5.c serial.c smp-imps.c stage2.c terminfo.c tparm.c \
++      graphics.c
+ pre_stage2_exec_CFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS)
+ pre_stage2_exec_CCASFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS)
+ pre_stage2_exec_LDFLAGS = $(PRE_STAGE2_LINK)
+@@ -105,7 +112,7 @@
+ BUILT_SOURCES = stage2_size.h
+ endif
+-CLEANFILES = $(pkglib_DATA) $(noinst_DATA) $(BUILT_SOURCES)
++CLEANFILES = $(stage_DATA) $(noinst_DATA) $(BUILT_SOURCES)
+ stage2_size.h: pre_stage2
+       -rm -f stage2_size.h
+diff -Nur grub-0.97/stage2/Makefile.am.orig grub-0.97-patched/stage2/Makefile.am.orig
+--- grub-0.97/stage2/Makefile.am.orig  1970-01-01 01:00:00.000000000 +0100
++++ grub-0.97-patched/stage2/Makefile.am.orig  2005-02-02 21:37:35.000000000 +0100
+@@ -0,0 +1,272 @@
++# For test target.
++TESTS = size_test
++noinst_SCRIPTS = $(TESTS)
++
++# For dist target.
++noinst_HEADERS = apic.h defs.h dir.h disk_inode.h disk_inode_ffs.h \
++        fat.h filesys.h freebsd.h fs.h hercules.h i386-elf.h \
++      imgact_aout.h iso9660.h jfs.h mb_header.h mb_info.h md5.h \
++      nbi.h pc_slice.h serial.h shared.h smp-imps.h term.h \
++      terminfo.h tparm.h nbi.h ufs2.h vstafs.h xfs.h
++EXTRA_DIST = setjmp.S apm.S $(noinst_SCRIPTS)
++
++# For <stage1.h>.
++INCLUDES = -I$(top_srcdir)/stage1
++
++# The library for /sbin/grub.
++noinst_LIBRARIES = libgrub.a
++libgrub_a_SOURCES = boot.c builtins.c char_io.c cmdline.c common.c \
++      disk_io.c fsys_ext2fs.c fsys_fat.c fsys_ffs.c fsys_iso9660.c \
++      fsys_jfs.c fsys_minix.c fsys_reiserfs.c fsys_ufs2.c \
++      fsys_vstafs.c fsys_xfs.c gunzip.c md5.c serial.c stage2.c \
++      terminfo.c tparm.c
++libgrub_a_CFLAGS = $(GRUB_CFLAGS) -I$(top_srcdir)/lib \
++      -DGRUB_UTIL=1 -DFSYS_EXT2FS=1 -DFSYS_FAT=1 -DFSYS_FFS=1 \
++      -DFSYS_ISO9660=1 -DFSYS_JFS=1 -DFSYS_MINIX=1 -DFSYS_REISERFS=1 \
++      -DFSYS_UFS2=1 -DFSYS_VSTAFS=1 -DFSYS_XFS=1 \
++      -DUSE_MD5_PASSWORDS=1 -DSUPPORT_SERIAL=1 -DSUPPORT_HERCULES=1
++
++# Stage 2 and Stage 1.5's.
++pkglibdir = $(libdir)/$(PACKAGE)/$(host_cpu)-$(host_vendor)
++
++EXTRA_PROGRAMS = nbloader.exec pxeloader.exec diskless.exec
++
++if DISKLESS_SUPPORT
++pkglib_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \
++      ffs_stage1_5 iso9660_stage1_5 jfs_stage1_5 minix_stage1_5 \
++      reiserfs_stage1_5 ufs2_stage1_5 vstafs_stage1_5 xfs_stage1_5 \
++      nbgrub pxegrub
++noinst_DATA = pre_stage2 start start_eltorito nbloader pxeloader diskless
++noinst_PROGRAMS = pre_stage2.exec start.exec start_eltorito.exec \
++      e2fs_stage1_5.exec fat_stage1_5.exec ffs_stage1_5.exec \
++      iso9660_stage1_5.exec jfs_stage1_5.exec minix_stage1_5.exec \
++      reiserfs_stage1_5.exec ufs2_stage1_5.exec vstafs_stage1_5.exec \
++      xfs_stage1_5.exec nbloader.exec pxeloader.exec diskless.exec
++else
++pkglib_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \
++      ffs_stage1_5 iso9660_stage1_5 jfs_stage1_5 minix_stage1_5 \
++      reiserfs_stage1_5 ufs2_stage1_5 vstafs_stage1_5 xfs_stage1_5
++noinst_DATA = pre_stage2 start start_eltorito
++noinst_PROGRAMS = pre_stage2.exec start.exec start_eltorito.exec \
++      e2fs_stage1_5.exec fat_stage1_5.exec ffs_stage1_5.exec \
++      iso9660_stage1_5.exec jfs_stage1_5.exec minix_stage1_5.exec \
++      reiserfs_stage1_5.exec ufs2_stage1_5.exec vstafs_stage1_5.exec \
++      xfs_stage1_5.exec
++endif
++MOSTLYCLEANFILES = $(noinst_PROGRAMS)
++
++PRE_STAGE2_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,8200
++START_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,8000
++NBLOADER_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,0
++PXELOADER_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,7C00
++START_ELTORITO_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,7C00
++
++if NETBOOT_SUPPORT
++NETBOOT_FLAGS = -I$(top_srcdir)/netboot -DSUPPORT_NETBOOT=1
++else
++NETBOOT_FLAGS =
++endif
++
++if SERIAL_SUPPORT
++SERIAL_FLAGS = -DSUPPORT_SERIAL=1
++else
++SERIAL_FLAGS =
++endif
++
++if HERCULES_SUPPORT
++HERCULES_FLAGS = -DSUPPORT_HERCULES=1
++else
++HERCULES_FLAGS =
++endif
++
++STAGE2_COMPILE = $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
++      $(NETBOOT_FLAGS) $(SERIAL_FLAGS) $(HERCULES_FLAGS)
++
++STAGE1_5_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,2000
++STAGE1_5_COMPILE = $(STAGE2_COMPILE) -DNO_DECOMPRESSION=1 -DSTAGE1_5=1
++
++# For stage2 target.
++pre_stage2_exec_SOURCES = asm.S bios.c boot.c builtins.c char_io.c \
++      cmdline.c common.c console.c disk_io.c fsys_ext2fs.c \
++      fsys_fat.c fsys_ffs.c fsys_iso9660.c fsys_jfs.c fsys_minix.c \
++      fsys_reiserfs.c fsys_ufs2.c fsys_vstafs.c fsys_xfs.c gunzip.c \
++      hercules.c md5.c serial.c smp-imps.c stage2.c terminfo.c tparm.c
++pre_stage2_exec_CFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS)
++pre_stage2_exec_CCASFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS)
++pre_stage2_exec_LDFLAGS = $(PRE_STAGE2_LINK)
++
++if NETBOOT_SUPPORT
++pre_stage2_exec_LDADD = ../netboot/libdrivers.a
++endif
++
++if DISKLESS_SUPPORT
++BUILT_SOURCES = stage2_size.h diskless_size.h
++else
++BUILT_SOURCES = stage2_size.h
++endif
++
++CLEANFILES = $(pkglib_DATA) $(noinst_DATA) $(BUILT_SOURCES)
++
++stage2_size.h: pre_stage2
++      -rm -f stage2_size.h
++      set dummy `ls -l pre_stage2`; \
++      echo "#define STAGE2_SIZE $$6" > stage2_size.h
++
++start_exec_SOURCES = start.S
++start_exec_CCASFLAGS = $(STAGE2_COMPILE)
++start_exec_LDFLAGS = $(START_LINK)
++
++# XXX: automake doesn't provide a way to specify dependencies for object
++# files explicitly, so we must write this by a general Makefile scheme.
++# If automake change the naming scheme for per-executable objects, this
++# will be broken.
++start_exec-start.$(OBJEXT): stage2_size.h
++
++stage2: pre_stage2 start
++      -rm -f stage2
++      cat start pre_stage2 > stage2
++
++start_eltorito_exec_SOURCES = start_eltorito.S
++start_eltorito_exec_CCASFLAGS = $(STAGE2_COMPILE)
++start_eltorito_exec_LDFLAGS = $(START_ELTORITO_LINK)
++
++start_eltorito_exec-start.$(OBJEXT): stage2_size.h
++
++stage2_eltorito: pre_stage2 start_eltorito
++      -rm -f stage2_eltorito
++      cat start_eltorito pre_stage2 > stage2_eltorito
++
++# For e2fs_stage1_5 target.
++e2fs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c disk_io.c \
++      stage1_5.c fsys_ext2fs.c bios.c
++e2fs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_EXT2FS=1 \
++      -DNO_BLOCK_FILES=1
++e2fs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_EXT2FS=1 \
++      -DNO_BLOCK_FILES=1
++e2fs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
++
++# For fat_stage1_5 target.
++fat_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c disk_io.c \
++      stage1_5.c fsys_fat.c bios.c
++fat_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_FAT=1 \
++      -DNO_BLOCK_FILES=1
++fat_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_FAT=1 \
++      -DNO_BLOCK_FILES=1
++fat_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
++
++# For ffs_stage1_5 target.
++ffs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c disk_io.c \
++      stage1_5.c fsys_ffs.c bios.c
++ffs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_FFS=1 \
++      -DNO_BLOCK_FILES=1
++ffs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_FFS=1 \
++      -DNO_BLOCK_FILES=1
++ffs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
++
++# For ufs2_stage1_5 target.
++ufs2_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c disk_io.c \
++      stage1_5.c fsys_ufs2.c bios.c
++ufs2_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_UFS2=1 \
++      -DNO_BLOCK_FILES=1
++ufs2_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_UFS2=1 \
++      -DNO_BLOCK_FILES=1
++ufs2_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
++
++# For minix_stage1_5 target.
++minix_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c disk_io.c \
++      stage1_5.c fsys_minix.c bios.c
++minix_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_MINIX=1 \
++      -DNO_BLOCK_FILES=1
++minix_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_MINIX=1 \
++      -DNO_BLOCK_FILES=1
++minix_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
++
++# For reiserfs_stage1_5 target.
++reiserfs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c \
++      disk_io.c stage1_5.c fsys_reiserfs.c bios.c
++reiserfs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_REISERFS=1 \
++      -DNO_BLOCK_FILES=1
++reiserfs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_REISERFS=1 \
++      -DNO_BLOCK_FILES=1
++reiserfs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
++
++# For vstafs_stage1_5 target.
++vstafs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c \
++      disk_io.c stage1_5.c fsys_vstafs.c bios.c
++vstafs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_VSTAFS=1 \
++      -DNO_BLOCK_FILES=1
++vstafs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_VSTAFS=1 \
++      -DNO_BLOCK_FILES=1
++vstafs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
++
++# For jfs_stage1_5 target.
++jfs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c \
++      disk_io.c stage1_5.c fsys_jfs.c bios.c
++jfs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_JFS=1 \
++      -DNO_BLOCK_FILES=1
++jfs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_JFS=1 \
++      -DNO_BLOCK_FILES=1
++jfs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
++
++# For xfs_stage1_5 target.
++xfs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c \
++      disk_io.c stage1_5.c fsys_xfs.c bios.c
++xfs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_XFS=1 \
++      -DNO_BLOCK_FILES=1
++xfs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_XFS=1 \
++      -DNO_BLOCK_FILES=1
++xfs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
++
++# For iso9660_stage1_5 target.
++iso9660_stage1_5_exec_SOURCES = start_eltorito.S asm.S common.c char_io.c \
++      disk_io.c stage1_5.c fsys_iso9660.c bios.c
++iso9660_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_ISO9660=1 \
++      -DNO_BLOCK_FILES=1
++iso9660_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_ISO9660=1 \
++      -DNO_BLOCK_FILES=1
++iso9660_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
++
++# For diskless target.
++diskless_exec_SOURCES = $(pre_stage2_exec_SOURCES)
++diskless_exec_CFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS) \
++      -DSUPPORT_DISKLESS=1
++diskless_exec_CCASFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS) \
++      -DSUPPORT_DISKLESS=1
++diskless_exec_LDFLAGS = $(PRE_STAGE2_LINK)
++diskless_exec_LDADD = ../netboot/libdrivers.a
++
++diskless_size.h: diskless
++      -rm -f $@
++      set dummy `ls -l $^`; \
++      echo "#define DISKLESS_SIZE $$6" > $@
++
++# For nbloader target.
++nbloader_exec_SOURCES = nbloader.S
++nbloader_exec_CCASFLAGS = $(STAGE2_COMPILE)
++nbloader_exec_LDFLAGS = $(NBLOADER_LINK)
++
++# XXX: See the comment for start_exec-start.o.
++nbloader_exec-nbloader.$(OBJEXT): diskless_size.h
++
++# For nbgrub target.
++nbgrub: nbloader diskless
++      -rm -f $@
++      cat $^ > $@
++
++# For pxeloader target.
++pxeloader_exec_SOURCES = pxeloader.S
++pxeloader_exec_CCASFLAGS = $(STAGE2_COMPILE)
++pxeloader_exec_LDFLAGS = $(PXELOADER_LINK)
++
++# XXX: See the comment for start_exec-start.o.
++pxeloader_exec-pxeloader.$(OBJEXT): diskless_size.h
++
++# For pxegrub target.
++pxegrub: pxeloader diskless
++      -rm -f $@
++      cat $^ > $@
++
++# General rule for making a raw binary.
++SUFFIXES = .exec
++.exec:
++      $(OBJCOPY) -O binary $< $@
+diff -Nur grub-0.97/stage2/pc_slice.h grub-0.97-patched/stage2/pc_slice.h
+--- grub-0.97/stage2/pc_slice.h        2003-07-09 13:45:53.000000000 +0200
++++ grub-0.97-patched/stage2/pc_slice.h        2012-11-11 17:07:12.698728671 +0100
+@@ -115,6 +115,7 @@
+ #define PC_SLICE_TYPE_LINUX_EXTENDED  0x85
+ #define PC_SLICE_TYPE_VSTAFS          0x9e
+ #define PC_SLICE_TYPE_DELL_UTIL               0xde
++#define PC_SLICE_TYPE_GPT              0xee
+ #define PC_SLICE_TYPE_LINUX_RAID      0xfd
+diff -Nur grub-0.97/stage2/shared.h grub-0.97-patched/stage2/shared.h
+--- grub-0.97/stage2/shared.h  2004-06-19 18:40:09.000000000 +0200
++++ grub-0.97-patched/stage2/shared.h  2012-11-11 17:07:12.741730044 +0100
+@@ -36,8 +36,8 @@
+ /* Maybe redirect memory requests through grub_scratch_mem. */
+ #ifdef GRUB_UTIL
+-extern char *grub_scratch_mem;
+-# define RAW_ADDR(x) ((x) + (int) grub_scratch_mem)
++extern void *grub_scratch_mem;
++# define RAW_ADDR(x) ((x) + (unsigned long) grub_scratch_mem)
+ # define RAW_SEG(x) (RAW_ADDR ((x) << 4) >> 4)
+ #else
+ # define RAW_ADDR(x) (x)
+@@ -161,7 +161,9 @@
+ #define LINUX_CL_OFFSET                       0x9000
+ #define LINUX_CL_END_OFFSET           0x90FF
+-#define LINUX_SETUP_MOVE_SIZE         0x9100
++#define LINUX_CL_0202_PRM_OFFSET      0x9500
++#define LINUX_CL_0202_PRM_END_OFFSET  0x9FFF
++#define LINUX_SETUP_MOVE_SIZE         0xA000
+ #define LINUX_CL_MAGIC                        0xA33F
+ /*
+@@ -499,7 +501,11 @@
+   unsigned char linear_reserved_field_position;
+   unsigned long max_pixel_clock;
+-  unsigned char reserved3[189];
++  /* Reserved field to make structure to be 256 bytes long, VESA BIOS 
++     Extension 3.0 Specification says to reserve 189 bytes here but 
++     that doesn't make structure to be 256 bytes.  So additional one is 
++     added here.  */
++  unsigned char reserved3[189 + 1];
+ } __attribute__ ((packed));
+@@ -807,7 +813,7 @@
+ /* Low-level disk I/O */
+ int get_diskinfo (int drive, struct geometry *geometry);
+ int biosdisk (int subfunc, int drive, struct geometry *geometry,
+-            int sector, int nsec, int segment);
++            unsigned int sector, int nsec, int segment);
+ void stop_floppy (void);
+ /* Command-line interface functions. */
+@@ -871,6 +877,7 @@
+ int grub_tolower (int c);
+ int grub_isspace (int c);
+ int grub_strncat (char *s1, const char *s2, int n);
++void grub_memcpy(void *dest, const void *src, int len);
+ void *grub_memmove (void *to, const void *from, int len);
+ void *grub_memset (void *start, int c, int len);
+ int grub_strncat (char *s1, const char *s2, int n);
+@@ -911,7 +918,7 @@
+ int nul_terminate (char *str);
+ int get_based_digit (int c, int base);
+ int safe_parse_maxint (char **str_ptr, int *myint_ptr);
+-int memcheck (int start, int len);
++int memcheck (unsigned long start, unsigned long len);
+ void grub_putstr (const char *str);
+ #ifndef NO_DECOMPRESSION
+@@ -920,10 +927,10 @@
+ int gunzip_read (char *buf, int len);
+ #endif /* NO_DECOMPRESSION */
+-int rawread (int drive, int sector, int byte_offset, int byte_len, char *buf);
+-int devread (int sector, int byte_offset, int byte_len, char *buf);
+-int rawwrite (int drive, int sector, char *buf);
+-int devwrite (int sector, int sector_len, char *buf);
++int rawread (int drive, unsigned int sector, int byte_offset, int byte_len, char *buf);
++int devread (unsigned int sector, int byte_offset, int byte_len, char *buf);
++int rawwrite (int drive, unsigned int sector, char *buf);
++int devwrite (unsigned int sector, int sector_len, char *buf);
+ /* Parse a device string and initialize the global parameters. */
+ char *set_device (char *device);
+@@ -934,7 +941,9 @@
+                   unsigned long *partition, int *type,
+                   unsigned long *start, unsigned long *len,
+                   unsigned long *offset, int *entry,
+-                  unsigned long *ext_offset, char *buf);
++                   unsigned long *ext_offset,
++                   unsigned long *gpt_offset, int *gpt_count,
++                   int *gpt_size, char *buf);
+ /* Sets device to the one represented by the SAVED_* parameters. */
+ int make_saved_active (void);
+diff -Nur grub-0.97/stage2/size_test grub-0.97-patched/stage2/size_test
+--- grub-0.97/stage2/size_test 2004-05-14 21:30:52.000000000 +0200
++++ grub-0.97-patched/stage2/size_test 2012-11-11 17:06:52.554085177 +0100
+@@ -36,9 +36,9 @@
+ }
+ # The bootloader area of a FFS partition is 14 sectors.
+-check ffs_stage1_5 7168
+-
+-check ufs2_stage1_5 7168
++#check ffs_stage1_5 7168
++#
++#check ufs2_stage1_5 7168
+ # Stage 1.5 can be installed in the sectors immediately after MBR in the
+ # first cylinder, so the size is (63 - 1) sectors.
+diff -Nur grub-0.97/stage2/stage2.c grub-0.97-patched/stage2/stage2.c
+--- grub-0.97/stage2/stage2.c  2005-03-19 18:51:57.000000000 +0100
++++ grub-0.97-patched/stage2/stage2.c  2012-11-11 17:07:12.742730076 +0100
+@@ -233,6 +233,7 @@
+ {
+   int c, time1, time2 = -1, first_entry = 0;
+   char *cur_entry = 0;
++  struct term_entry *prev_term = NULL;
+   /*
+    *  Main loop for menu UI.
+@@ -651,7 +652,10 @@
+                 *(new_heap++) = 0;
+                 if (config_entries)
+-                  run_menu (heap, NULL, new_num_entries, new_heap, 0);
++                  {
++                    current_entryno = first_entry + entryno;
++                    run_menu (heap, NULL, new_num_entries, new_heap, 0);
++                  }
+                 else
+                   {
+                     cls ();
+@@ -714,6 +718,15 @@
+   
+   cls ();
+   setcursor (1);
++  /* if our terminal needed initialization, we should shut it down
++   * before booting the kernel, but we want to save what it was so
++   * we can come back if needed */
++  prev_term = current_term;
++  if (current_term->shutdown) 
++    {
++      (*current_term->shutdown)();
++      current_term = term_table; /* assumption: console is first */
++    }
+   
+   while (1)
+     {
+@@ -727,7 +740,8 @@
+       cur_entry = get_entry (config_entries, first_entry + entryno, 1);
+       /* Set CURRENT_ENTRYNO for the command "savedefault".  */
+-      current_entryno = first_entry + entryno;
++      if (config_entries)
++      current_entryno = first_entry + entryno;
+       
+       if (run_script (cur_entry, heap))
+       {
+@@ -748,6 +762,13 @@
+       break;
+     }
++  /* if we get back here, we should go back to what our term was before */
++  current_term = prev_term;
++  if (current_term->startup)
++      /* if our terminal fails to initialize, fall back to console since
++       * it should always work */
++      if ((*current_term->startup)() == 0)
++          current_term = term_table; /* we know that console is first */
+   show_menu = 1;
+   goto restart;
+ }
+@@ -1050,6 +1071,10 @@
+         while (is_preset);
+       }
++      /* go ahead and make sure the terminal is setup */
++      if (current_term->startup)
++        (*current_term->startup)();
++
+       if (! num_entries)
+       {
+         /* If no acceptable config file, goto command-line, starting
+diff -Nur grub-0.97/stage2/stage2.c.orig grub-0.97-patched/stage2/stage2.c.orig
+--- grub-0.97/stage2/stage2.c.orig     1970-01-01 01:00:00.000000000 +0100
++++ grub-0.97-patched/stage2/stage2.c.orig     2005-03-19 18:51:57.000000000 +0100
+@@ -0,0 +1,1067 @@
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 2000,2001,2002,2004,2005  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
++ *  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, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#include <shared.h>
++#include <term.h>
++
++grub_jmp_buf restart_env;
++
++#if defined(PRESET_MENU_STRING) || defined(SUPPORT_DISKLESS)
++
++# if defined(PRESET_MENU_STRING)
++static const char *preset_menu = PRESET_MENU_STRING;
++# elif defined(SUPPORT_DISKLESS)
++/* Execute the command "bootp" automatically.  */
++static const char *preset_menu = "bootp\n";
++# endif /* SUPPORT_DISKLESS */
++
++static int preset_menu_offset;
++
++static int
++open_preset_menu (void)
++{
++#ifdef GRUB_UTIL
++  /* Unless the user explicitly requests to use the preset menu,
++     always opening the preset menu fails in the grub shell.  */
++  if (! use_preset_menu)
++    return 0;
++#endif /* GRUB_UTIL */
++  
++  preset_menu_offset = 0;
++  return preset_menu != 0;
++}
++
++static int
++read_from_preset_menu (char *buf, int maxlen)
++{
++  int len = grub_strlen (preset_menu + preset_menu_offset);
++
++  if (len > maxlen)
++    len = maxlen;
++
++  grub_memmove (buf, preset_menu + preset_menu_offset, len);
++  preset_menu_offset += len;
++
++  return len;
++}
++
++static void
++close_preset_menu (void)
++{
++  /* Disable the preset menu.  */
++  preset_menu = 0;
++}
++
++#else /* ! PRESET_MENU_STRING && ! SUPPORT_DISKLESS */
++
++#define open_preset_menu()    0
++#define read_from_preset_menu(buf, maxlen)    0
++#define close_preset_menu()
++
++#endif /* ! PRESET_MENU_STRING && ! SUPPORT_DISKLESS */
++
++static char *
++get_entry (char *list, int num, int nested)
++{
++  int i;
++
++  for (i = 0; i < num; i++)
++    {
++      do
++      {
++        while (*(list++));
++      }
++      while (nested && *(list++));
++    }
++
++  return list;
++}
++
++/* Print an entry in a line of the menu box.  */
++static void
++print_entry (int y, int highlight, char *entry)
++{
++  int x;
++
++  if (current_term->setcolorstate)
++    current_term->setcolorstate (COLOR_STATE_NORMAL);
++  
++  if (highlight && current_term->setcolorstate)
++    current_term->setcolorstate (COLOR_STATE_HIGHLIGHT);
++
++  gotoxy (2, y);
++  grub_putchar (' ');
++  for (x = 3; x < 75; x++)
++    {
++      if (*entry && x <= 72)
++      {
++        if (x == 72)
++          grub_putchar (DISP_RIGHT);
++        else
++          grub_putchar (*entry++);
++      }
++      else
++      grub_putchar (' ');
++    }
++  gotoxy (74, y);
++
++  if (current_term->setcolorstate)
++    current_term->setcolorstate (COLOR_STATE_STANDARD);
++}
++
++/* Print entries in the menu box.  */
++static void
++print_entries (int y, int size, int first, int entryno, char *menu_entries)
++{
++  int i;
++  
++  gotoxy (77, y + 1);
++
++  if (first)
++    grub_putchar (DISP_UP);
++  else
++    grub_putchar (' ');
++
++  menu_entries = get_entry (menu_entries, first, 0);
++
++  for (i = 0; i < size; i++)
++    {
++      print_entry (y + i + 1, entryno == i, menu_entries);
++
++      while (*menu_entries)
++      menu_entries++;
++
++      if (*(menu_entries - 1))
++      menu_entries++;
++    }
++
++  gotoxy (77, y + size);
++
++  if (*menu_entries)
++    grub_putchar (DISP_DOWN);
++  else
++    grub_putchar (' ');
++
++  gotoxy (74, y + entryno + 1);
++}
++
++static void
++print_entries_raw (int size, int first, char *menu_entries)
++{
++  int i;
++
++#define LINE_LENGTH 67
++
++  for (i = 0; i < LINE_LENGTH; i++)
++    grub_putchar ('-');
++  grub_putchar ('\n');
++
++  for (i = first; i < size; i++)
++    {
++      /* grub's printf can't %02d so ... */
++      if (i < 10)
++      grub_putchar (' ');
++      grub_printf ("%d: %s\n", i, get_entry (menu_entries, i, 0));
++    }
++
++  for (i = 0; i < LINE_LENGTH; i++)
++    grub_putchar ('-');
++  grub_putchar ('\n');
++
++#undef LINE_LENGTH
++}
++
++
++static void
++print_border (int y, int size)
++{
++  int i;
++
++  if (current_term->setcolorstate)
++    current_term->setcolorstate (COLOR_STATE_NORMAL);
++  
++  gotoxy (1, y);
++
++  grub_putchar (DISP_UL);
++  for (i = 0; i < 73; i++)
++    grub_putchar (DISP_HORIZ);
++  grub_putchar (DISP_UR);
++
++  i = 1;
++  while (1)
++    {
++      gotoxy (1, y + i);
++
++      if (i > size)
++      break;
++      
++      grub_putchar (DISP_VERT);
++      gotoxy (75, y + i);
++      grub_putchar (DISP_VERT);
++
++      i++;
++    }
++
++  grub_putchar (DISP_LL);
++  for (i = 0; i < 73; i++)
++    grub_putchar (DISP_HORIZ);
++  grub_putchar (DISP_LR);
++
++  if (current_term->setcolorstate)
++    current_term->setcolorstate (COLOR_STATE_STANDARD);
++}
++
++static void
++run_menu (char *menu_entries, char *config_entries, int num_entries,
++        char *heap, int entryno)
++{
++  int c, time1, time2 = -1, first_entry = 0;
++  char *cur_entry = 0;
++
++  /*
++   *  Main loop for menu UI.
++   */
++
++restart:
++  /* Dumb terminal always use all entries for display 
++     invariant for TERM_DUMB: first_entry == 0  */
++  if (! (current_term->flags & TERM_DUMB))
++    {
++      while (entryno > 11)
++      {
++        first_entry++;
++        entryno--;
++      }
++    }
++
++  /* If the timeout was expired or wasn't set, force to show the menu
++     interface. */
++  if (grub_timeout < 0)
++    show_menu = 1;
++  
++  /* If SHOW_MENU is false, don't display the menu until ESC is pressed.  */
++  if (! show_menu)
++    {
++      /* Get current time.  */
++      while ((time1 = getrtsecs ()) == 0xFF)
++      ;
++
++      while (1)
++      {
++        /* Check if ESC is pressed.  */
++        if (checkkey () != -1 && ASCII_CHAR (getkey ()) == '\e')
++          {
++            grub_timeout = -1;
++            show_menu = 1;
++            break;
++          }
++
++        /* If GRUB_TIMEOUT is expired, boot the default entry.  */
++        if (grub_timeout >=0
++            && (time1 = getrtsecs ()) != time2
++            && time1 != 0xFF)
++          {
++            if (grub_timeout <= 0)
++              {
++                grub_timeout = -1;
++                goto boot_entry;
++              }
++            
++            time2 = time1;
++            grub_timeout--;
++            
++            /* Print a message.  */
++            grub_printf ("\rPress `ESC' to enter the menu... %d   ",
++                         grub_timeout);
++          }
++      }
++    }
++
++  /* Only display the menu if the user wants to see it. */
++  if (show_menu)
++    {
++      init_page ();
++      setcursor (0);
++
++      if (current_term->flags & TERM_DUMB)
++      print_entries_raw (num_entries, first_entry, menu_entries);
++      else
++      print_border (3, 12);
++
++      grub_printf ("\n\
++      Use the %c and %c keys to select which entry is highlighted.\n",
++                 DISP_UP, DISP_DOWN);
++      
++      if (! auth && password)
++      {
++        printf ("\
++      Press enter to boot the selected OS or \'p\' to enter a\n\
++      password to unlock the next set of features.");
++      }
++      else
++      {
++        if (config_entries)
++          printf ("\
++      Press enter to boot the selected OS, \'e\' to edit the\n\
++      commands before booting, or \'c\' for a command-line.");
++        else
++          printf ("\
++      Press \'b\' to boot, \'e\' to edit the selected command in the\n\
++      boot sequence, \'c\' for a command-line, \'o\' to open a new line\n\
++      after (\'O\' for before) the selected line, \'d\' to remove the\n\
++      selected line, or escape to go back to the main menu.");
++      }
++
++      if (current_term->flags & TERM_DUMB)
++      grub_printf ("\n\nThe selected entry is %d ", entryno);
++      else
++      print_entries (3, 12, first_entry, entryno, menu_entries);
++    }
++
++  /* XX using RT clock now, need to initialize value */
++  while ((time1 = getrtsecs()) == 0xFF);
++
++  while (1)
++    {
++      /* Initialize to NULL just in case...  */
++      cur_entry = NULL;
++
++      if (grub_timeout >= 0 && (time1 = getrtsecs()) != time2 && time1 != 0xFF)
++      {
++        if (grub_timeout <= 0)
++          {
++            grub_timeout = -1;
++            break;
++          }
++
++        /* else not booting yet! */
++        time2 = time1;
++
++        if (current_term->flags & TERM_DUMB)
++            grub_printf ("\r    Entry %d will be booted automatically in %d seconds.   ", 
++                         entryno, grub_timeout);
++        else
++          {
++            gotoxy (3, 22);
++            grub_printf ("The highlighted entry will be booted automatically in %d seconds.    ",
++                         grub_timeout);
++            gotoxy (74, 4 + entryno);
++        }
++        
++        grub_timeout--;
++      }
++
++      /* Check for a keypress, however if TIMEOUT has been expired
++       (GRUB_TIMEOUT == -1) relax in GETKEY even if no key has been
++       pressed.  
++       This avoids polling (relevant in the grub-shell and later on
++       in grub if interrupt driven I/O is done).  */
++      if (checkkey () >= 0 || grub_timeout < 0)
++      {
++        /* Key was pressed, show which entry is selected before GETKEY,
++           since we're comming in here also on GRUB_TIMEOUT == -1 and
++           hang in GETKEY */
++        if (current_term->flags & TERM_DUMB)
++          grub_printf ("\r    Highlighted entry is %d: ", entryno);
++
++        c = ASCII_CHAR (getkey ());
++
++        if (grub_timeout >= 0)
++          {
++            if (current_term->flags & TERM_DUMB)
++              grub_putchar ('\r');
++            else
++              gotoxy (3, 22);
++            printf ("                                                                    ");
++            grub_timeout = -1;
++            fallback_entryno = -1;
++            if (! (current_term->flags & TERM_DUMB))
++              gotoxy (74, 4 + entryno);
++          }
++
++        /* We told them above (at least in SUPPORT_SERIAL) to use
++           '^' or 'v' so accept these keys.  */
++        if (c == 16 || c == '^')
++          {
++            if (current_term->flags & TERM_DUMB)
++              {
++                if (entryno > 0)
++                  entryno--;
++              }
++            else
++              {
++                if (entryno > 0)
++                  {
++                    print_entry (4 + entryno, 0,
++                                 get_entry (menu_entries,
++                                            first_entry + entryno,
++                                            0));
++                    entryno--;
++                    print_entry (4 + entryno, 1,
++                                 get_entry (menu_entries,
++                                            first_entry + entryno,
++                                            0));
++                  }
++                else if (first_entry > 0)
++                  {
++                    first_entry--;
++                    print_entries (3, 12, first_entry, entryno,
++                                   menu_entries);
++                  }
++              }
++          }
++        else if ((c == 14 || c == 'v')
++                 && first_entry + entryno + 1 < num_entries)
++          {
++            if (current_term->flags & TERM_DUMB)
++              entryno++;
++            else
++              {
++                if (entryno < 11)
++                  {
++                    print_entry (4 + entryno, 0,
++                                 get_entry (menu_entries,
++                                            first_entry + entryno,
++                                            0));
++                    entryno++;
++                    print_entry (4 + entryno, 1,
++                                 get_entry (menu_entries,
++                                            first_entry + entryno,
++                                            0));
++                }
++              else if (num_entries > 12 + first_entry)
++                {
++                  first_entry++;
++                  print_entries (3, 12, first_entry, entryno, menu_entries);
++                }
++              }
++          }
++        else if (c == 7)
++          {
++            /* Page Up */
++            first_entry -= 12;
++            if (first_entry < 0)
++              {
++                entryno += first_entry;
++                first_entry = 0;
++                if (entryno < 0)
++                  entryno = 0;
++              }
++            print_entries (3, 12, first_entry, entryno, menu_entries);
++          }
++        else if (c == 3)
++          {
++            /* Page Down */
++            first_entry += 12;
++            if (first_entry + entryno + 1 >= num_entries)
++              {
++                first_entry = num_entries - 12;
++                if (first_entry < 0)
++                  first_entry = 0;
++                entryno = num_entries - first_entry - 1;
++              }
++            print_entries (3, 12, first_entry, entryno, menu_entries);
++          }
++
++        if (config_entries)
++          {
++            if ((c == '\n') || (c == '\r') || (c == 6))
++              break;
++          }
++        else
++          {
++            if ((c == 'd') || (c == 'o') || (c == 'O'))
++              {
++                if (! (current_term->flags & TERM_DUMB))
++                  print_entry (4 + entryno, 0,
++                               get_entry (menu_entries,
++                                          first_entry + entryno,
++                                          0));
++
++                /* insert after is almost exactly like insert before */
++                if (c == 'o')
++                  {
++                    /* But `o' differs from `O', since it may causes
++                       the menu screen to scroll up.  */
++                    if (entryno < 11 || (current_term->flags & TERM_DUMB))
++                      entryno++;
++                    else
++                      first_entry++;
++                    
++                    c = 'O';
++                  }
++
++                cur_entry = get_entry (menu_entries,
++                                       first_entry + entryno,
++                                       0);
++
++                if (c == 'O')
++                  {
++                    grub_memmove (cur_entry + 2, cur_entry,
++                                  ((int) heap) - ((int) cur_entry));
++
++                    cur_entry[0] = ' ';
++                    cur_entry[1] = 0;
++
++                    heap += 2;
++
++                    num_entries++;
++                  }
++                else if (num_entries > 0)
++                  {
++                    char *ptr = get_entry(menu_entries,
++                                          first_entry + entryno + 1,
++                                          0);
++
++                    grub_memmove (cur_entry, ptr,
++                                  ((int) heap) - ((int) ptr));
++                    heap -= (((int) ptr) - ((int) cur_entry));
++
++                    num_entries--;
++
++                    if (entryno >= num_entries)
++                      entryno--;
++                    if (first_entry && num_entries < 12 + first_entry)
++                      first_entry--;
++                  }
++
++                if (current_term->flags & TERM_DUMB)
++                  {
++                    grub_printf ("\n\n");
++                    print_entries_raw (num_entries, first_entry,
++                                       menu_entries);
++                    grub_printf ("\n");
++                  }
++                else
++                  print_entries (3, 12, first_entry, entryno, menu_entries);
++              }
++
++            cur_entry = menu_entries;
++            if (c == 27)
++              return;
++            if (c == 'b')
++              break;
++          }
++
++        if (! auth && password)
++          {
++            if (c == 'p')
++              {
++                /* Do password check here! */
++                char entered[32];
++                char *pptr = password;
++
++                if (current_term->flags & TERM_DUMB)
++                  grub_printf ("\r                                    ");
++                else
++                  gotoxy (1, 21);
++
++                /* Wipe out the previously entered password */
++                grub_memset (entered, 0, sizeof (entered));
++                get_cmdline (" Password: ", entered, 31, '*', 0);
++
++                while (! isspace (*pptr) && *pptr)
++                  pptr++;
++
++                /* Make sure that PASSWORD is NUL-terminated.  */
++                *pptr++ = 0;
++
++                if (! check_password (entered, password, password_type))
++                  {
++                    char *new_file = config_file;
++                    while (isspace (*pptr))
++                      pptr++;
++
++                    /* If *PPTR is NUL, then allow the user to use
++                       privileged instructions, otherwise, load
++                       another configuration file.  */
++                    if (*pptr != 0)
++                      {
++                        while ((*(new_file++) = *(pptr++)) != 0)
++                          ;
++
++                        /* Make sure that the user will not have
++                           authority in the next configuration.  */
++                        auth = 0;
++                        return;
++                      }
++                    else
++                      {
++                        /* Now the user is superhuman.  */
++                        auth = 1;
++                        goto restart;
++                      }
++                  }
++                else
++                  {
++                    grub_printf ("Failed!\n      Press any key to continue...");
++                    getkey ();
++                    goto restart;
++                  }
++              }
++          }
++        else
++          {
++            if (c == 'e')
++              {
++                int new_num_entries = 0, i = 0;
++                char *new_heap;
++
++                if (config_entries)
++                  {
++                    new_heap = heap;
++                    cur_entry = get_entry (config_entries,
++                                           first_entry + entryno,
++                                           1);
++                  }
++                else
++                  {
++                    /* safe area! */
++                    new_heap = heap + NEW_HEAPSIZE + 1;
++                    cur_entry = get_entry (menu_entries,
++                                           first_entry + entryno,
++                                           0);
++                  }
++
++                do
++                  {
++                    while ((*(new_heap++) = cur_entry[i++]) != 0);
++                    new_num_entries++;
++                  }
++                while (config_entries && cur_entry[i]);
++
++                /* this only needs to be done if config_entries is non-NULL,
++                   but it doesn't hurt to do it always */
++                *(new_heap++) = 0;
++
++                if (config_entries)
++                  run_menu (heap, NULL, new_num_entries, new_heap, 0);
++                else
++                  {
++                    cls ();
++                    print_cmdline_message (0);
++
++                    new_heap = heap + NEW_HEAPSIZE + 1;
++
++                    saved_drive = boot_drive;
++                    saved_partition = install_partition;
++                    current_drive = GRUB_INVALID_DRIVE;
++
++                    if (! get_cmdline (PACKAGE " edit> ", new_heap,
++                                       NEW_HEAPSIZE + 1, 0, 1))
++                      {
++                        int j = 0;
++
++                        /* get length of new command */
++                        while (new_heap[j++])
++                          ;
++
++                        if (j < 2)
++                          {
++                            j = 2;
++                            new_heap[0] = ' ';
++                            new_heap[1] = 0;
++                          }
++
++                        /* align rest of commands properly */
++                        grub_memmove (cur_entry + j, cur_entry + i,
++                                      (int) heap - ((int) cur_entry + i));
++
++                        /* copy command to correct area */
++                        grub_memmove (cur_entry, new_heap, j);
++
++                        heap += (j - i);
++                      }
++                  }
++
++                goto restart;
++              }
++            if (c == 'c')
++              {
++                enter_cmdline (heap, 0);
++                goto restart;
++              }
++#ifdef GRUB_UTIL
++            if (c == 'q')
++              {
++                /* The same as ``quit''.  */
++                stop ();
++              }
++#endif
++          }
++      }
++    }
++  
++  /* Attempt to boot an entry.  */
++  
++ boot_entry:
++  
++  cls ();
++  setcursor (1);
++  
++  while (1)
++    {
++      if (config_entries)
++      printf ("  Booting \'%s\'\n\n",
++              get_entry (menu_entries, first_entry + entryno, 0));
++      else
++      printf ("  Booting command-list\n\n");
++
++      if (! cur_entry)
++      cur_entry = get_entry (config_entries, first_entry + entryno, 1);
++
++      /* Set CURRENT_ENTRYNO for the command "savedefault".  */
++      current_entryno = first_entry + entryno;
++      
++      if (run_script (cur_entry, heap))
++      {
++        if (fallback_entryno >= 0)
++          {
++            cur_entry = NULL;
++            first_entry = 0;
++            entryno = fallback_entries[fallback_entryno];
++            fallback_entryno++;
++            if (fallback_entryno >= MAX_FALLBACK_ENTRIES
++                || fallback_entries[fallback_entryno] < 0)
++              fallback_entryno = -1;
++          }
++        else
++          break;
++      }
++      else
++      break;
++    }
++
++  show_menu = 1;
++  goto restart;
++}
++
++
++static int
++get_line_from_config (char *cmdline, int maxlen, int read_from_file)
++{
++  int pos = 0, literal = 0, comment = 0;
++  char c;  /* since we're loading it a byte at a time! */
++  
++  while (1)
++    {
++      if (read_from_file)
++      {
++        if (! grub_read (&c, 1))
++          break;
++      }
++      else
++      {
++        if (! read_from_preset_menu (&c, 1))
++          break;
++      }
++
++      /* Skip all carriage returns.  */
++      if (c == '\r')
++      continue;
++
++      /* Replace tabs with spaces.  */
++      if (c == '\t')
++      c = ' ';
++
++      /* The previous is a backslash, then...  */
++      if (literal)
++      {
++        /* If it is a newline, replace it with a space and continue.  */
++        if (c == '\n')
++          {
++            c = ' ';
++            
++            /* Go back to overwrite a backslash.  */
++            if (pos > 0)
++              pos--;
++          }
++          
++        literal = 0;
++      }
++        
++      /* translate characters first! */
++      if (c == '\\' && ! literal)
++      literal = 1;
++
++      if (comment)
++      {
++        if (c == '\n')
++          comment = 0;
++      }
++      else if (! pos)
++      {
++        if (c == '#')
++          comment = 1;
++        else if ((c != ' ') && (c != '\n'))
++          cmdline[pos++] = c;
++      }
++      else
++      {
++        if (c == '\n')
++          break;
++
++        if (pos < maxlen)
++          cmdline[pos++] = c;
++      }
++    }
++
++  cmdline[pos] = 0;
++
++  return pos;
++}
++
++
++/* This is the starting function in C.  */
++void
++cmain (void)
++{
++  int config_len, menu_len, num_entries;
++  char *config_entries, *menu_entries;
++  char *kill_buf = (char *) KILL_BUF;
++
++  auto void reset (void);
++  void reset (void)
++    {
++      count_lines = -1;
++      config_len = 0;
++      menu_len = 0;
++      num_entries = 0;
++      config_entries = (char *) mbi.drives_addr + mbi.drives_length;
++      menu_entries = (char *) MENU_BUF;
++      init_config ();
++    }
++  
++  /* Initialize the environment for restarting Stage 2.  */
++  grub_setjmp (restart_env);
++  
++  /* Initialize the kill buffer.  */
++  *kill_buf = 0;
++
++  /* Never return.  */
++  for (;;)
++    {
++      int is_opened, is_preset;
++
++      reset ();
++      
++      /* Here load the configuration file.  */
++      
++#ifdef GRUB_UTIL
++      if (use_config_file)
++#endif /* GRUB_UTIL */
++      {
++        char *default_file = (char *) DEFAULT_FILE_BUF;
++        int i;
++        
++        /* Get a saved default entry if possible.  */
++        saved_entryno = 0;
++        *default_file = 0;
++        grub_strncat (default_file, config_file, DEFAULT_FILE_BUFLEN);
++        for (i = grub_strlen(default_file); i >= 0; i--)
++          if (default_file[i] == '/')
++            {
++              i++;
++              break;
++            }
++        default_file[i] = 0;
++        grub_strncat (default_file + i, "default", DEFAULT_FILE_BUFLEN - i);
++        if (grub_open (default_file))
++          {
++            char buf[10]; /* This is good enough.  */
++            char *p = buf;
++            int len;
++            
++            len = grub_read (buf, sizeof (buf));
++            if (len > 0)
++              {
++                buf[sizeof (buf) - 1] = 0;
++                safe_parse_maxint (&p, &saved_entryno);
++              }
++
++            grub_close ();
++          }
++        errnum = ERR_NONE;
++        
++        do
++          {
++            /* STATE 0:  Before any title command.
++               STATE 1:  In a title command.
++               STATE >1: In a entry after a title command.  */
++            int state = 0, prev_config_len = 0, prev_menu_len = 0;
++            char *cmdline;
++
++            /* Try the preset menu first. This will succeed at most once,
++               because close_preset_menu disables the preset menu.  */
++            is_opened = is_preset = open_preset_menu ();
++            if (! is_opened)
++              {
++                is_opened = grub_open (config_file);
++                errnum = ERR_NONE;
++              }
++
++            if (! is_opened)
++              break;
++
++            /* This is necessary, because the menu must be overrided.  */
++            reset ();
++            
++            cmdline = (char *) CMDLINE_BUF;
++            while (get_line_from_config (cmdline, NEW_HEAPSIZE,
++                                         ! is_preset))
++              {
++                struct builtin *builtin;
++                
++                /* Get the pointer to the builtin structure.  */
++                builtin = find_command (cmdline);
++                errnum = 0;
++                if (! builtin)
++                  /* Unknown command. Just skip now.  */
++                  continue;
++                
++                if (builtin->flags & BUILTIN_TITLE)
++                  {
++                    char *ptr;
++                    
++                    /* the command "title" is specially treated.  */
++                    if (state > 1)
++                      {
++                        /* The next title is found.  */
++                        num_entries++;
++                        config_entries[config_len++] = 0;
++                        prev_menu_len = menu_len;
++                        prev_config_len = config_len;
++                      }
++                    else
++                      {
++                        /* The first title is found.  */
++                        menu_len = prev_menu_len;
++                        config_len = prev_config_len;
++                      }
++                    
++                    /* Reset the state.  */
++                    state = 1;
++                    
++                    /* Copy title into menu area.  */
++                    ptr = skip_to (1, cmdline);
++                    while ((menu_entries[menu_len++] = *(ptr++)) != 0)
++                      ;
++                  }
++                else if (! state)
++                  {
++                    /* Run a command found is possible.  */
++                    if (builtin->flags & BUILTIN_MENU)
++                      {
++                        char *arg = skip_to (1, cmdline);
++                        (builtin->func) (arg, BUILTIN_MENU);
++                        errnum = 0;
++                      }
++                    else
++                      /* Ignored.  */
++                      continue;
++                  }
++                else
++                  {
++                    char *ptr = cmdline;
++                    
++                    state++;
++                    /* Copy config file data to config area.  */
++                    while ((config_entries[config_len++] = *ptr++) != 0)
++                      ;
++                  }
++              }
++            
++            if (state > 1)
++              {
++                /* Finish the last entry.  */
++                num_entries++;
++                config_entries[config_len++] = 0;
++              }
++            else
++              {
++                menu_len = prev_menu_len;
++                config_len = prev_config_len;
++              }
++            
++            menu_entries[menu_len++] = 0;
++            config_entries[config_len++] = 0;
++            grub_memmove (config_entries + config_len, menu_entries,
++                          menu_len);
++            menu_entries = config_entries + config_len;
++
++            /* Make sure that all fallback entries are valid.  */
++            if (fallback_entryno >= 0)
++              {
++                for (i = 0; i < MAX_FALLBACK_ENTRIES; i++)
++                  {
++                    if (fallback_entries[i] < 0)
++                      break;
++                    if (fallback_entries[i] >= num_entries)
++                      {
++                        grub_memmove (fallback_entries + i,
++                                      fallback_entries + i + 1,
++                                      ((MAX_FALLBACK_ENTRIES - i - 1)
++                                       * sizeof (int)));
++                        i--;
++                      }
++                  }
++
++                if (fallback_entries[0] < 0)
++                  fallback_entryno = -1;
++              }
++            /* Check if the default entry is present. Otherwise reset
++               it to fallback if fallback is valid, or to DEFAULT_ENTRY 
++               if not.  */
++            if (default_entry >= num_entries)
++              {
++                if (fallback_entryno >= 0)
++                  {
++                    default_entry = fallback_entries[0];
++                    fallback_entryno++;
++                    if (fallback_entryno >= MAX_FALLBACK_ENTRIES
++                        || fallback_entries[fallback_entryno] < 0)
++                      fallback_entryno = -1;
++                  }
++                else
++                  default_entry = 0;
++              }
++            
++            if (is_preset)
++              close_preset_menu ();
++            else
++              grub_close ();
++          }
++        while (is_preset);
++      }
++
++      if (! num_entries)
++      {
++        /* If no acceptable config file, goto command-line, starting
++           heap from where the config entries would have been stored
++           if there were any.  */
++        enter_cmdline (config_entries, 1);
++      }
++      else
++      {
++        /* Run menu interface.  */
++        run_menu (menu_entries, config_entries, num_entries,
++                  menu_entries + menu_len, default_entry);
++      }
++    }
++}
+diff -Nur grub-0.97/stage2/term.h grub-0.97-patched/stage2/term.h
+--- grub-0.97/stage2/term.h    2003-07-09 13:45:53.000000000 +0200
++++ grub-0.97-patched/stage2/term.h    2012-11-11 17:06:33.311470556 +0100
+@@ -60,6 +60,8 @@
+   const char *name;
+   /* The feature flags defined above.  */
+   unsigned long flags;
++  /* Default for maximum number of lines if not specified */
++  unsigned short max_lines;
+   /* Put a character.  */
+   void (*putchar) (int c);
+   /* Check if any input character is available.  */
+@@ -79,6 +81,11 @@
+   void (*setcolor) (int normal_color, int highlight_color);
+   /* Turn on/off the cursor.  */
+   int (*setcursor) (int on);
++
++  /* function to start a terminal */
++  int (*startup) (void);
++  /* function to use to shutdown a terminal */
++  void (*shutdown) (void);
+ };
+ /* This lists up available terminals.  */
+@@ -124,4 +131,23 @@
+ int hercules_setcursor (int on);
+ #endif
++#ifdef SUPPORT_GRAPHICS
++extern int foreground, background, border, graphics_inited;
++
++void graphics_set_splash(char *splashfile);
++int set_videomode (int mode);
++void graphics_putchar (int c);
++int graphics_getxy(void);
++void graphics_gotoxy(int x, int y);
++void graphics_cls(void);
++void graphics_setcolorstate (color_state state);
++void graphics_setcolor (int normal_color, int highlight_color);
++void graphics_setcursor (int on);
++int graphics_init(void);
++void graphics_end(void);
++
++int hex(int v);
++void graphics_set_palette(int idx, int red, int green, int blue);
++#endif /* SUPPORT_GRAPHICS */
++
+ #endif /* ! GRUB_TERM_HEADER */
+diff -Nur grub-0.97/THANKS grub-0.97-patched/THANKS
+--- grub-0.97/THANKS   2005-05-08 04:17:43.000000000 +0200
++++ grub-0.97-patched/THANKS   2012-11-11 17:07:12.709729021 +0100
+@@ -121,3 +121,4 @@
+ Yedidyah Bar-David <didi@post.tau.ac.il>
+ Yury V. Umanets <umka@namesys.com>
+ Yuri Zaporogets <yuriz@ukr.net>
++Vitaly Fertman <vitaly@namesys.com>
+diff -Nur grub-0.97/util/grub-install.in grub-0.97-patched/util/grub-install.in
+--- grub-0.97/util/grub-install.in     2004-07-24 20:57:31.000000000 +0200
++++ grub-0.97-patched/util/grub-install.in     2012-11-11 17:07:12.748730268 +0100
+@@ -96,24 +96,27 @@
+     # Break the device name into the disk part and the partition part.
+     case "$host_os" in
+     linux*)
+-      tmp_disk=`echo "$1" | sed -e 's%\([sh]d[a-z]\)[0-9]*$%\1%' \
++      tmp_disk=`echo "$1" | sed -e 's%\([shv]d[a-z]\)[0-9]*$%\1%' \
+                                 -e 's%\(d[0-9]*\)p[0-9]*$%\1%' \
+                                 -e 's%\(fd[0-9]*\)$%\1%' \
+                                 -e 's%/part[0-9]*$%/disc%' \
+-                                -e 's%\(c[0-7]d[0-9]*\).*$%\1%'`
+-      tmp_part=`echo "$1" | sed -e 's%.*/[sh]d[a-z]\([0-9]*\)$%\1%' \
++                                -e 's%\(c[0-7]d[0-9]*\).*$%\1%' \
++                                -e 's%\(e[0-9]\.[0-9]*\).*$%\1%'`
++      tmp_part=`echo "$1" | sed -e 's%.*/[shv]d[a-z]\([0-9]*\)$%\1%' \
+                                 -e 's%.*d[0-9]*p%%' \
+                                 -e 's%.*/fd[0-9]*$%%' \
+                                 -e 's%.*/floppy/[0-9]*$%%' \
+                                 -e 's%.*/\(disc\|part\([0-9]*\)\)$%\2%' \
+-                                -e 's%.*c[0-7]d[0-9]*p%%'`
++                                -e 's%.*c[0-7]d[0-9]*p*%%' \
++                                -e 's%.*e[0-9]\.[0-9]*p%%' \
++                                -e 's%.*e[0-9]\.[0-9]*\$%%'`
+       ;;
+     gnu*)
+       tmp_disk=`echo "$1" | sed 's%\([sh]d[0-9]*\).*%\1%'`
+       tmp_part=`echo "$1" | sed "s%$tmp_disk%%"` ;;
+     freebsd* | kfreebsd*-gnu)
+-      tmp_disk=`echo "$1" | sed 's%r\{0,1\}\([saw]d[0-9]*\).*$%r\1%' \
+-                          | sed 's%r\{0,1\}\(da[0-9]*\).*$%r\1%'`
++      tmp_disk=`echo "$1" | sed 's%r\{0,1\}\([saw]d[0-9]*\).*$%\1%' \
++                          | sed 's%r\{0,1\}\(da[0-9]*\).*$%\1%'`
+       tmp_part=`echo "$1" \
+           | sed "s%.*/r\{0,1\}[saw]d[0-9]\(s[0-9]*[a-h]\)%\1%" \
+                   | sed "s%.*/r\{0,1\}da[0-9]\(s[0-9]*[a-h]\)%\1%"`
+@@ -131,7 +134,7 @@
+     # Get the drive name.
+     tmp_drive=`grep -v '^#' $device_map | grep "$tmp_disk *$" \
+-      | sed 's%.*\(([hf]d[0-9][a-g0-9,]*)\).*%\1%'`
++      | sed 's%.*\(([hf]d[0-9][a-z0-9,]*)\).*%\1%'`
+     # If not found, print an error message and exit.
+     if test "x$tmp_drive" = x; then
+@@ -148,13 +151,13 @@
+       gnu*)
+           if echo $tmp_part | grep "^s" >/dev/null; then
+               tmp_pc_slice=`echo $tmp_part \
+-                  | sed "s%s\([0-9]*\)[a-g]*$%\1%"`
++                  | sed "s%s\([0-9]*\)[a-z]*$%\1%"`
+               tmp_drive=`echo "$tmp_drive" \
+                   | sed "s%)%,\`expr "$tmp_pc_slice" - 1\`)%"`
+           fi
+-          if echo $tmp_part | grep "[a-g]$" >/dev/null; then
++          if echo $tmp_part | grep "[a-z]$" >/dev/null; then
+               tmp_bsd_partition=`echo "$tmp_part" \
+-                  | sed "s%[^a-g]*\([a-g]\)$%\1%"`
++                  | sed "s%[^a-z]*\([a-z]\)$%\1%"`
+               tmp_drive=`echo "$tmp_drive" \
+                   | sed "s%)%,$tmp_bsd_partition)%"`
+           fi
+@@ -336,6 +339,10 @@
+     # Create a safe temporary file.
+     test -n "$mklog" && log_file=`$mklog`
++    # Before all invocations of the grub shell, call sync to make sure
++    # the raw device is in sync with any bufferring in filesystems.
++    sync
++ 
+     $grub_shell --batch $no_floppy --device-map=$device_map <<EOF >$log_file
+ quit
+ EOF
+@@ -450,6 +457,10 @@
+ # Create a safe temporary file.
+ test -n "$mklog" && log_file=`$mklog`
++# Before all invocations of the grub shell, call sync to make sure
++# the raw device is in sync with any bufferring in filesystems.
++sync
++
+ # Now perform the installation.
+ $grub_shell --batch $no_floppy --device-map=$device_map <<EOF >$log_file
+ root $root_drive
+diff -Nur grub-0.97/util/grub-install.in.orig grub-0.97-patched/util/grub-install.in.orig
+--- grub-0.97/util/grub-install.in.orig        1970-01-01 01:00:00.000000000 +0100
++++ grub-0.97-patched/util/grub-install.in.orig        2004-07-24 20:57:31.000000000 +0200
+@@ -0,0 +1,477 @@
++#! /bin/sh
++
++# Install GRUB on your drive.
++#   Copyright (C) 1999,2000,2001,2002,2003,2004 Free Software Foundation, Inc.
++#
++# This file 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, write to the Free Software
++# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
++
++# Initialize some variables.
++prefix=@prefix@
++exec_prefix=@exec_prefix@
++sbindir=@sbindir@
++libdir=@libdir@
++PACKAGE=@PACKAGE@
++VERSION=@VERSION@
++host_cpu=@host_cpu@
++host_os=@host_os@
++host_vendor=@host_vendor@
++pkglibdir=${libdir}/${PACKAGE}/${host_cpu}-${host_vendor}
++
++grub_shell=${sbindir}/grub
++grub_set_default=${sbindir}/grub-set-default
++log_file=/tmp/grub-install.log.$$
++img_file=/tmp/grub-install.img.$$
++rootdir=
++grub_prefix=/boot/grub
++
++install_device=
++no_floppy=
++force_lba=
++recheck=no
++debug=no
++
++# look for secure tempfile creation wrappers on this platform
++if test -x /bin/tempfile; then
++    mklog="/bin/tempfile --prefix=grub"
++    mkimg="/bin/tempfile --prefix=grub"
++elif test -x /bin/mktemp; then
++    mklog="/bin/mktemp /tmp/grub-install.log.XXXXXX"
++    mkimg="/bin/mktemp /tmp/grub-install.img.XXXXXX"
++else
++    mklog=""
++    mkimg=""
++fi
++
++# Usage: usage
++# Print the usage.
++usage () {
++    cat <<EOF
++Usage: grub-install [OPTION] install_device
++Install GRUB on your drive.
++
++  -h, --help              print this message and exit
++  -v, --version           print the version information and exit
++  --root-directory=DIR    install GRUB images under the directory DIR
++                          instead of the root directory
++  --grub-shell=FILE       use FILE as the grub shell
++  --no-floppy             do not probe any floppy drive
++  --force-lba             force GRUB to use LBA mode even for a buggy
++                          BIOS
++  --recheck               probe a device map even if it already exists
++
++INSTALL_DEVICE can be a GRUB device name or a system device filename.
++
++grub-install copies GRUB images into the DIR/boot directory specfied by
++--root-directory, and uses the grub shell to install grub into the boot
++sector.
++
++Report bugs to <bug-grub@gnu.org>.
++EOF
++}
++
++# Usage: convert os_device
++# Convert an OS device to the corresponding GRUB drive.
++# This part is OS-specific.
++convert () {
++    # First, check if the device file exists.
++    if test -e "$1"; then
++      :
++    else
++      echo "$1: Not found or not a block device." 1>&2
++      exit 1
++    fi
++
++    # Break the device name into the disk part and the partition part.
++    case "$host_os" in
++    linux*)
++      tmp_disk=`echo "$1" | sed -e 's%\([sh]d[a-z]\)[0-9]*$%\1%' \
++                                -e 's%\(d[0-9]*\)p[0-9]*$%\1%' \
++                                -e 's%\(fd[0-9]*\)$%\1%' \
++                                -e 's%/part[0-9]*$%/disc%' \
++                                -e 's%\(c[0-7]d[0-9]*\).*$%\1%'`
++      tmp_part=`echo "$1" | sed -e 's%.*/[sh]d[a-z]\([0-9]*\)$%\1%' \
++                                -e 's%.*d[0-9]*p%%' \
++                                -e 's%.*/fd[0-9]*$%%' \
++                                -e 's%.*/floppy/[0-9]*$%%' \
++                                -e 's%.*/\(disc\|part\([0-9]*\)\)$%\2%' \
++                                -e 's%.*c[0-7]d[0-9]*p%%'`
++      ;;
++    gnu*)
++      tmp_disk=`echo "$1" | sed 's%\([sh]d[0-9]*\).*%\1%'`
++      tmp_part=`echo "$1" | sed "s%$tmp_disk%%"` ;;
++    freebsd* | kfreebsd*-gnu)
++      tmp_disk=`echo "$1" | sed 's%r\{0,1\}\([saw]d[0-9]*\).*$%r\1%' \
++                          | sed 's%r\{0,1\}\(da[0-9]*\).*$%r\1%'`
++      tmp_part=`echo "$1" \
++          | sed "s%.*/r\{0,1\}[saw]d[0-9]\(s[0-9]*[a-h]\)%\1%" \
++                  | sed "s%.*/r\{0,1\}da[0-9]\(s[0-9]*[a-h]\)%\1%"`
++      ;;
++    netbsd* | knetbsd*-gnu)
++      tmp_disk=`echo "$1" | sed 's%r\{0,1\}\([sw]d[0-9]*\).*$%r\1d%' \
++          | sed 's%r\{0,1\}\(fd[0-9]*\).*$%r\1a%'`
++      tmp_part=`echo "$1" \
++          | sed "s%.*/r\{0,1\}[sw]d[0-9]\([abe-p]\)%\1%"`
++      ;;
++    *)
++      echo "grub-install does not support your OS yet." 1>&2
++      exit 1 ;;
++    esac
++
++    # Get the drive name.
++    tmp_drive=`grep -v '^#' $device_map | grep "$tmp_disk *$" \
++      | sed 's%.*\(([hf]d[0-9][a-g0-9,]*)\).*%\1%'`
++
++    # If not found, print an error message and exit.
++    if test "x$tmp_drive" = x; then
++      echo "$1 does not have any corresponding BIOS drive." 1>&2
++      exit 1
++    fi
++
++    if test "x$tmp_part" != x; then
++      # If a partition is specified, we need to translate it into the
++      # GRUB's syntax.
++      case "$host_os" in
++      linux*)
++          echo "$tmp_drive" | sed "s%)$%,`expr $tmp_part - 1`)%" ;;
++      gnu*)
++          if echo $tmp_part | grep "^s" >/dev/null; then
++              tmp_pc_slice=`echo $tmp_part \
++                  | sed "s%s\([0-9]*\)[a-g]*$%\1%"`
++              tmp_drive=`echo "$tmp_drive" \
++                  | sed "s%)%,\`expr "$tmp_pc_slice" - 1\`)%"`
++          fi
++          if echo $tmp_part | grep "[a-g]$" >/dev/null; then
++              tmp_bsd_partition=`echo "$tmp_part" \
++                  | sed "s%[^a-g]*\([a-g]\)$%\1%"`
++              tmp_drive=`echo "$tmp_drive" \
++                  | sed "s%)%,$tmp_bsd_partition)%"`
++          fi
++          echo "$tmp_drive" ;;
++      freebsd* | kfreebsd*-gnu)
++          if echo $tmp_part | grep "^s" >/dev/null; then
++              tmp_pc_slice=`echo $tmp_part \
++                  | sed "s%s\([0-9]*\)[a-h]*$%\1%"`
++              tmp_drive=`echo "$tmp_drive" \
++                  | sed "s%)%,\`expr "$tmp_pc_slice" - 1\`)%"`
++          fi
++          if echo $tmp_part | grep "[a-h]$" >/dev/null; then
++              tmp_bsd_partition=`echo "$tmp_part" \
++                  | sed "s%s\{0,1\}[0-9]*\([a-h]\)$%\1%"`
++              tmp_drive=`echo "$tmp_drive" \
++                  | sed "s%)%,$tmp_bsd_partition)%"`
++          fi
++          echo "$tmp_drive" ;;
++      netbsd* | knetbsd*-gnu)
++          if echo $tmp_part | grep "^[abe-p]$" >/dev/null; then
++              tmp_bsd_partition=`echo "$tmp_part" \
++                  | sed "s%\([a-p]\)$%\1%"`
++              tmp_drive=`echo "$tmp_drive" \
++                  | sed "s%)%,$tmp_bsd_partition)%"`
++          fi
++          echo "$tmp_drive" ;;
++      esac
++    else
++      # If no partition is specified, just print the drive name.
++      echo "$tmp_drive"
++    fi
++}
++
++# Usage: resolve_symlink file
++# Find the real file/device that file points at
++resolve_symlink () {
++      tmp_fname=$1
++      # Resolve symlinks
++      while test -L $tmp_fname; do
++              tmp_new_fname=`ls -al $tmp_fname | sed -n 's%.*-> \(.*\)%\1%p'`
++              if test -z "$tmp_new_fname"; then
++                      echo "Unrecognized ls output" 2>&1
++                      exit 1
++              fi
++
++              # Convert relative symlinks
++              case $tmp_new_fname in
++                      /*) tmp_fname="$tmp_new_fname"
++                      ;;
++                      *) tmp_fname="`echo $tmp_fname | sed 's%/[^/]*$%%'`/$tmp_new_fname"
++                      ;;
++              esac
++      done
++      echo "$tmp_fname"
++}
++
++# Usage: find_device file
++# Find block device on which the file resides.
++find_device () {
++    # For now, this uses the program `df' to get the device name, but is
++    # this really portable?
++    tmp_fname=`df $1/ | sed -n 's%.*\(/dev/[^         ]*\).*%\1%p'`
++
++    if test -z "$tmp_fname"; then
++      echo "Could not find device for $1" 2>&1
++      exit 1
++    fi
++
++      tmp_fname=`resolve_symlink $tmp_fname`
++
++    echo "$tmp_fname"
++}
++
++# Check the arguments.
++for option in "$@"; do
++    case "$option" in
++    -h | --help)
++      usage
++      exit 0 ;;
++    -v | --version)
++      echo "grub-install (GNU GRUB ${VERSION})"
++      exit 0 ;;
++    --root-directory=*)
++      rootdir=`echo "$option" | sed 's/--root-directory=//'` ;;
++    --grub-shell=*)
++      grub_shell=`echo "$option" | sed 's/--grub-shell=//'` ;;
++    --no-floppy)
++      no_floppy="--no-floppy" ;;
++    --force-lba)
++      force_lba="--force-lba" ;;
++    --recheck)
++      recheck=yes ;;
++    # This is an undocumented feature...
++    --debug)
++      debug=yes ;;
++    -*)
++      echo "Unrecognized option \`$option'" 1>&2
++      usage
++      exit 1
++      ;;
++    *)
++      if test "x$install_device" != x; then
++          echo "More than one install_devices?" 1>&2
++          usage
++          exit 1
++      fi
++      install_device="${option}" ;;
++    esac
++done
++
++if test "x$install_device" = x; then
++    echo "install_device not specified." 1>&2
++    usage
++    exit 1
++fi
++
++# If the debugging feature is enabled, print commands.
++if test $debug = yes; then
++    set -x
++fi
++
++# Initialize these directories here, since ROOTDIR was initialized.
++case "$host_os" in
++netbsd* | openbsd*)
++    # Because /boot is used for the boot block in NetBSD and OpenBSD, use /grub
++    # instead of /boot/grub.
++    grub_prefix=/grub
++    bootdir=${rootdir}
++    ;;
++*)
++    # Use /boot/grub by default.
++    bootdir=${rootdir}/boot
++    ;;
++esac
++
++grubdir=${bootdir}/grub
++device_map=${grubdir}/device.map
++
++# Check if GRUB is installed.
++# This is necessary, because the user can specify "grub --read-only".
++set $grub_shell dummy
++if test -f "$1"; then
++    :
++else
++    echo "$1: Not found." 1>&2
++    exit 1
++fi
++
++if test -f "$pkglibdir/stage1"; then
++    :
++else
++    echo "${pkglibdir}/stage1: Not found." 1>&2
++    exit 1
++fi
++
++if test -f "$pkglibdir/stage2"; then
++    :
++else
++    echo "${pkglibdir}/stage2: Not found." 1>&2
++    exit 1
++fi
++
++# Don't check for *stage1_5, because it is not fatal even if any
++# Stage 1.5 does not exist.
++
++# Create the GRUB directory if it is not present.
++test -d "$bootdir" || mkdir "$bootdir" || exit 1
++test -d "$grubdir" || mkdir "$grubdir" || exit 1
++
++# If --recheck is specified, remove the device map, if present.
++if test $recheck = yes; then
++    rm -f $device_map
++fi
++
++# Create the device map file if it is not present.
++if test -f "$device_map"; then
++    :
++else
++    # Create a safe temporary file.
++    test -n "$mklog" && log_file=`$mklog`
++
++    $grub_shell --batch $no_floppy --device-map=$device_map <<EOF >$log_file
++quit
++EOF
++    if grep "Error [0-9]*: " $log_file >/dev/null; then
++      cat $log_file 1>&2
++      exit 1
++    fi
++
++    rm -f $log_file
++fi
++
++# Make sure that there is no duplicated entry.
++tmp=`sed -n '/^([fh]d[0-9]*)/s/\(^(.*)\).*/\1/p' $device_map \
++    | sort | uniq -d | sed -n 1p`
++if test -n "$tmp"; then
++    echo "The drive $tmp is defined multiple times in the device map $device_map" 1>&2
++    exit 1
++fi
++
++# Check for INSTALL_DEVICE.
++case "$install_device" in
++/dev/*)
++    install_device=`resolve_symlink "$install_device"`
++    install_drive=`convert "$install_device"`
++    # I don't know why, but some shells wouldn't die if exit is
++    # called in a function.
++    if test "x$install_drive" = x; then
++      exit 1
++    fi ;;
++\([hf]d[0-9]*\))
++    install_drive="$install_device" ;;
++[hf]d[0-9]*)
++    # The GRUB format with no parenthesis.
++    install_drive="($install_device)" ;;
++*)
++    echo "Format of install_device not recognized." 1>&2
++    usage
++    exit 1 ;;
++esac
++
++# Get the root drive.
++root_device=`find_device ${rootdir}`
++bootdir_device=`find_device ${bootdir}`
++
++# Check if the boot directory is in the same device as the root directory.
++if test "x$root_device" != "x$bootdir_device"; then
++    # Perhaps the user has a separate boot partition.
++    root_device=$bootdir_device
++    grub_prefix="/grub"
++fi
++
++# Convert the root device to a GRUB drive.
++root_drive=`convert "$root_device"`
++if test "x$root_drive" = x; then
++    exit 1
++fi
++
++# Check if the root directory exists in the same device as the grub
++# directory.
++grubdir_device=`find_device ${grubdir}`
++
++if test "x$grubdir_device" != "x$root_device"; then
++    # For now, cannot deal with this situation.
++    cat <<EOF 1>&2
++You must set the root directory by the option --root-directory, because
++$grubdir does not exist in the root device $root_device.
++EOF
++    exit 1
++fi
++
++# Copy the GRUB images to the GRUB directory.
++for file in ${grubdir}/stage1 ${grubdir}/stage2 ${grubdir}/*stage1_5; do
++    rm -f $file || exit 1
++done
++for file in \
++    ${pkglibdir}/stage1 ${pkglibdir}/stage2 ${pkglibdir}/*stage1_5; do
++    cp -f $file ${grubdir} || exit 1
++done
++
++# Make a default file.
++${grub_set_default} --root-directory=${rootdir} default
++
++# Make sure that GRUB reads the same images as the host OS.
++test -n "$mkimg" && img_file=`$mkimg`
++test -n "$mklog" && log_file=`$mklog`
++
++for file in ${grubdir}/stage1 ${grubdir}/stage2 ${grubdir}/*stage1_5; do
++    count=5
++    tmp=`echo $file | sed "s|^${grubdir}|${grub_prefix}|"`
++    while test $count -gt 0; do
++      $grub_shell --batch $no_floppy --device-map=$device_map <<EOF >$log_file
++dump ${root_drive}${tmp} ${img_file}
++quit
++EOF
++      if grep "Error [0-9]*: " $log_file >/dev/null; then
++          :
++      elif cmp $file $img_file >/dev/null; then
++          break
++      fi
++      sleep 1
++      count=`expr $count - 1`    
++    done
++    if test $count -eq 0; then
++      echo "The file $file not read correctly." 1>&2
++      exit 1
++    fi
++done
++
++rm -f $img_file
++rm -f $log_file
++
++# Create a safe temporary file.
++test -n "$mklog" && log_file=`$mklog`
++
++# Now perform the installation.
++$grub_shell --batch $no_floppy --device-map=$device_map <<EOF >$log_file
++root $root_drive
++setup $force_lba --stage2=$grubdir/stage2 --prefix=$grub_prefix $install_drive
++quit
++EOF
++
++if grep "Error [0-9]*: " $log_file >/dev/null || test $debug = yes; then
++    cat $log_file 1>&2
++    exit 1
++fi
++
++rm -f $log_file
++
++# Prompt the user to check if the device map is correct.
++echo "Installation finished. No error reported."
++echo "This is the contents of the device map $device_map."
++echo "Check if this is correct or not. If any of the lines is incorrect,"
++echo "fix it and re-run the script \`grub-install'."
++echo
++
++cat $device_map
++
++# Bye.
++exit 0
+diff -Nur grub-0.97/util/mkbimage grub-0.97-patched/util/mkbimage
+--- grub-0.97/util/mkbimage    2004-07-24 20:57:31.000000000 +0200
++++ grub-0.97-patched/util/mkbimage    2012-11-11 17:07:12.744730138 +0100
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+ # MaKe a Bootable IMAGE --- 1.44, 2.88 and El Torito no-emulation mode
+ # C) 2001,2002,2003 Thierry Laronde <tlaronde@polynum.org>
+-# C) 2001,2002,2003 Robert Millan <robertmh@gnu.org>
++# C) 2001,2002,2003 Robert Millan <rmh@aybabtu.com>
+ # This program is free software; you can redistribute it and/or modify
+@@ -94,15 +94,13 @@
+           display Version information and exit
+ Copyright (c) 2001,2002,2003 Thierry Laronde <tlaronde@polynum.org>. 
+-Copyright (c) 2001,2002 Robert Millan <zeratul2@wanadoo.es>.
+ GPLed."
+ version="mkbimage $version_number
+-Written by Thierry Laronde and Robert Millan.
++Written by Thierry Laronde.
+ Copyright (c) 2001,2002,2003 Thierry Laronde <tlaronde@polynum.org>.
+-Copyright (c) 2001,2002,2003 Robert Millan <zeratul2@wanadoo.es>.
+ This is free software under the GPL version 2 or later; see the source for 
+ copying conditions.  There is NO warranty, not even for MERCHANTABILITY or 
similarity index 60%
rename from src/patches/iptables-1.4.6-imq_test1.patch
rename to src/patches/iptables-1.4.12-IMQ-test4.diff
index 2b4fb79cb02922bb1bc20a9db7c7c22b97f7960c..5ce17e1b4569ef564444e9b9c89559abdc6bb611 100644 (file)
@@ -1,14 +1,7 @@
-diff -Naurw iptables-1.4.1/extensions/.IMQ-testx iptables-1.4.1.imq/extensions/.IMQ-testx
---- iptables-1.4.1/extensions/.IMQ-testx       1969-12-31 21:00:00.000000000 -0300
-+++ iptables-1.4.1.imq/extensions/.IMQ-testx   2008-06-24 22:20:06.000000000 -0300
-@@ -0,0 +1,3 @@
-+#!/bin/sh
-+# True if IMQ target patch is applied.
-+[ -f $KERNEL_DIR/include/linux/netfilter/xt_IMQ.h ] && echo IMQ
-diff -Naurw iptables-1.4.1/extensions/libxt_IMQ.c iptables-1.4.1.imq/extensions/libxt_IMQ.c
---- iptables-1.4.1/extensions/libxt_IMQ.c      1969-12-31 21:00:00.000000000 -0300
-+++ iptables-1.4.1.imq/extensions/libxt_IMQ.c  2008-06-24 22:31:02.000000000 -0300
-@@ -0,0 +1,103 @@
+diff -Naur iptables-1.4.12.1/extensions/libxt_IMQ.c iptables-1.4.12.1-imq/extensions/libxt_IMQ.c
+--- iptables-1.4.12.1/extensions/libxt_IMQ.c   1970-01-01 02:00:00.000000000 +0200
++++ iptables-1.4.12.1-imq/extensions/libxt_IMQ.c       2011-09-30 13:53:21.000000000 +0300
+@@ -0,0 +1,105 @@
 +/* Shared library add-on to iptables to add IMQ target support. */
 +#include <stdio.h>
 +#include <string.h>
@@ -50,11 +43,13 @@ diff -Naurw iptables-1.4.1/extensions/libxt_IMQ.c iptables-1.4.1.imq/extensions/
 +      
 +      switch(c) {
 +      case '1':
-+              if (xtables_check_inverse(optarg, &invert, NULL, 0, argv))
++/*            if (xtables_check_inverse(optarg, &invert, NULL, 0, argv))
 +                      xtables_error(PARAMETER_PROBLEM,
-+                                 "Unexpected `!' for --todev");
++                                 "Unexpected `!' after --todev");
++*/
 +              mr->todev=atoi(optarg);
 +              break;
++
 +      default:
 +              return 0;
 +      }
@@ -76,7 +71,7 @@ diff -Naurw iptables-1.4.1/extensions/libxt_IMQ.c iptables-1.4.1.imq/extensions/
 +{
 +      struct xt_imq_info *mr = (struct xt_imq_info*)target->data;
 +
-+      printf("--todev %u", mr->todev);
++      printf(" --todev %u", mr->todev);
 +}
 +
 +static struct xtables_target imq_target = {
@@ -112,8 +107,28 @@ diff -Naurw iptables-1.4.1/extensions/libxt_IMQ.c iptables-1.4.1.imq/extensions/
 +      xtables_register_target(&imq_target);
 +      xtables_register_target(&imq_target6);
 +}
---- iptables-1.4.1.1/include/linux/netfilter/xt_IMQ.h  1970-01-01 02:00:00.000000000 +0200
-+++ iptables-1.4.1.1.new/include/linux/netfilter/xt_IMQ.h      2008-08-05 00:41:28.000000000 +0300
+diff -Naur iptables-1.4.12.1/extensions/libxt_IMQ.man iptables-1.4.12.1-imq/extensions/libxt_IMQ.man
+--- iptables-1.4.12.1/extensions/libxt_IMQ.man 1970-01-01 02:00:00.000000000 +0200
++++ iptables-1.4.12.1-imq/extensions/libxt_IMQ.man     2011-09-30 13:53:21.000000000 +0300
+@@ -0,0 +1,15 @@
++This target is used to redirect the traffic to the IMQ driver and you can apply
++QoS rules like HTB or CBQ.
++For example you can select only traffic comming from a specific interface or
++is going out on a specific interface.
++Also it permits to capture the traffic BEFORE NAT in the case of outgoing traffic
++or AFTER NAT in the case of incomming traffic.
++.TP
++\fB\-\-to\-dev\fP \fIvalue\fP
++Set the IMQ interface where to send this traffic
++.TP
++Example:
++.TP
++Redirect incomming traffic from interface eth0 to imq0 and outgoing traffic to imq1:
++iptables \-t mangle \-A FORWARD \-i eth0 \-j IMQ \-\-to\-dev 0
++iptables \-t mangle \-A FORWARD \-o eth0 \-j IMQ \-\-to\-dev 1
+diff -Naur iptables-1.4.12.1/include/linux/netfilter/xt_IMQ.h iptables-1.4.12.1-imq/include/linux/netfilter/xt_IMQ.h
+--- iptables-1.4.12.1/include/linux/netfilter/xt_IMQ.h 1970-01-01 02:00:00.000000000 +0200
++++ iptables-1.4.12.1-imq/include/linux/netfilter/xt_IMQ.h     2011-09-30 13:53:21.000000000 +0300
 @@ -0,0 +1,9 @@
 +#ifndef _XT_IMQ_H
 +#define _XT_IMQ_H
similarity index 99%
rename from src/patches/iptables-1.4.6-ipp2p-0.8.2-pomng.patch
rename to src/patches/iptables-1.4.14-ipp2p-0.8.2-ipfire.patch
index 68e44b16b17e71be30ba08b22690c56e23964364..9a11eb50cc8f423f0c6cd56d16f82cee9fc01dcb 100644 (file)
@@ -414,8 +414,8 @@ diff -Naur iptables-1.4.6.org/extensions/libipt_ipp2p.c iptables-1.4.6/extension
 +    .next           = NULL,
 +    .name           = "ipp2p",
 +    .version        = XTABLES_VERSION,
-+    .size           = IPT_ALIGN(sizeof(struct ipt_p2p_info)),
-+    .userspacesize  = IPT_ALIGN(sizeof(struct ipt_p2p_info)),
++    .size           = XT_ALIGN(sizeof(struct ipt_p2p_info)),
++    .userspacesize  = XT_ALIGN(sizeof(struct ipt_p2p_info)),
 +    .help           = &help,
 +    .init           = &init,
 +    .parse          = &parse,
diff --git a/src/patches/iptables-1.4.6-errorno_includes.patch b/src/patches/iptables-1.4.6-errorno_includes.patch
deleted file mode 100644 (file)
index a25c5a3..0000000
+++ /dev/null
@@ -1,170 +0,0 @@
-diff -Naur include.org/asm/errno.h include/asm/errno.h
---- include.org/asm/errno.h    2010-02-12 18:21:40.000000000 +0100
-+++ include/asm/errno.h        2010-02-12 18:19:41.000000000 +0100
-@@ -5,4 +5,8 @@
-  #include <linux/errno.h>
- #endif
-+#ifndef _ASM_GENERIC_ERRNO_H
-+ #include <asm-generic/errno.h>
-+#endif
-+
- #endif
-diff -Naur include.org/asm-generic/errno-base.h include/asm-generic/errno-base.h
---- include.org/asm-generic/errno-base.h       1970-01-01 01:00:00.000000000 +0100
-+++ include/asm-generic/errno-base.h   2010-02-09 13:57:19.000000000 +0100
-@@ -0,0 +1,39 @@
-+#ifndef _ASM_GENERIC_ERRNO_BASE_H
-+#define _ASM_GENERIC_ERRNO_BASE_H
-+
-+#define       EPERM            1      /* Operation not permitted */
-+#define       ENOENT           2      /* No such file or directory */
-+#define       ESRCH            3      /* No such process */
-+#define       EINTR            4      /* Interrupted system call */
-+#define       EIO              5      /* I/O error */
-+#define       ENXIO            6      /* No such device or address */
-+#define       E2BIG            7      /* Argument list too long */
-+#define       ENOEXEC          8      /* Exec format error */
-+#define       EBADF            9      /* Bad file number */
-+#define       ECHILD          10      /* No child processes */
-+#define       EAGAIN          11      /* Try again */
-+#define       ENOMEM          12      /* Out of memory */
-+#define       EACCES          13      /* Permission denied */
-+#define       EFAULT          14      /* Bad address */
-+#define       ENOTBLK         15      /* Block device required */
-+#define       EBUSY           16      /* Device or resource busy */
-+#define       EEXIST          17      /* File exists */
-+#define       EXDEV           18      /* Cross-device link */
-+#define       ENODEV          19      /* No such device */
-+#define       ENOTDIR         20      /* Not a directory */
-+#define       EISDIR          21      /* Is a directory */
-+#define       EINVAL          22      /* Invalid argument */
-+#define       ENFILE          23      /* File table overflow */
-+#define       EMFILE          24      /* Too many open files */
-+#define       ENOTTY          25      /* Not a typewriter */
-+#define       ETXTBSY         26      /* Text file busy */
-+#define       EFBIG           27      /* File too large */
-+#define       ENOSPC          28      /* No space left on device */
-+#define       ESPIPE          29      /* Illegal seek */
-+#define       EROFS           30      /* Read-only file system */
-+#define       EMLINK          31      /* Too many links */
-+#define       EPIPE           32      /* Broken pipe */
-+#define       EDOM            33      /* Math argument out of domain of func */
-+#define       ERANGE          34      /* Math result not representable */
-+
-+#endif
-diff -Naur include.org/asm-generic/errno.h include/asm-generic/errno.h
---- include.org/asm-generic/errno.h    1970-01-01 01:00:00.000000000 +0100
-+++ include/asm-generic/errno.h        2010-02-09 13:57:19.000000000 +0100
-@@ -0,0 +1,111 @@
-+#ifndef _ASM_GENERIC_ERRNO_H
-+#define _ASM_GENERIC_ERRNO_H
-+
-+#include <asm-generic/errno-base.h>
-+
-+#define       EDEADLK         35      /* Resource deadlock would occur */
-+#define       ENAMETOOLONG    36      /* File name too long */
-+#define       ENOLCK          37      /* No record locks available */
-+#define       ENOSYS          38      /* Function not implemented */
-+#define       ENOTEMPTY       39      /* Directory not empty */
-+#define       ELOOP           40      /* Too many symbolic links encountered */
-+#define       EWOULDBLOCK     EAGAIN  /* Operation would block */
-+#define       ENOMSG          42      /* No message of desired type */
-+#define       EIDRM           43      /* Identifier removed */
-+#define       ECHRNG          44      /* Channel number out of range */
-+#define       EL2NSYNC        45      /* Level 2 not synchronized */
-+#define       EL3HLT          46      /* Level 3 halted */
-+#define       EL3RST          47      /* Level 3 reset */
-+#define       ELNRNG          48      /* Link number out of range */
-+#define       EUNATCH         49      /* Protocol driver not attached */
-+#define       ENOCSI          50      /* No CSI structure available */
-+#define       EL2HLT          51      /* Level 2 halted */
-+#define       EBADE           52      /* Invalid exchange */
-+#define       EBADR           53      /* Invalid request descriptor */
-+#define       EXFULL          54      /* Exchange full */
-+#define       ENOANO          55      /* No anode */
-+#define       EBADRQC         56      /* Invalid request code */
-+#define       EBADSLT         57      /* Invalid slot */
-+
-+#define       EDEADLOCK       EDEADLK
-+
-+#define       EBFONT          59      /* Bad font file format */
-+#define       ENOSTR          60      /* Device not a stream */
-+#define       ENODATA         61      /* No data available */
-+#define       ETIME           62      /* Timer expired */
-+#define       ENOSR           63      /* Out of streams resources */
-+#define       ENONET          64      /* Machine is not on the network */
-+#define       ENOPKG          65      /* Package not installed */
-+#define       EREMOTE         66      /* Object is remote */
-+#define       ENOLINK         67      /* Link has been severed */
-+#define       EADV            68      /* Advertise error */
-+#define       ESRMNT          69      /* Srmount error */
-+#define       ECOMM           70      /* Communication error on send */
-+#define       EPROTO          71      /* Protocol error */
-+#define       EMULTIHOP       72      /* Multihop attempted */
-+#define       EDOTDOT         73      /* RFS specific error */
-+#define       EBADMSG         74      /* Not a data message */
-+#define       EOVERFLOW       75      /* Value too large for defined data type */
-+#define       ENOTUNIQ        76      /* Name not unique on network */
-+#define       EBADFD          77      /* File descriptor in bad state */
-+#define       EREMCHG         78      /* Remote address changed */
-+#define       ELIBACC         79      /* Can not access a needed shared library */
-+#define       ELIBBAD         80      /* Accessing a corrupted shared library */
-+#define       ELIBSCN         81      /* .lib section in a.out corrupted */
-+#define       ELIBMAX         82      /* Attempting to link in too many shared libraries */
-+#define       ELIBEXEC        83      /* Cannot exec a shared library directly */
-+#define       EILSEQ          84      /* Illegal byte sequence */
-+#define       ERESTART        85      /* Interrupted system call should be restarted */
-+#define       ESTRPIPE        86      /* Streams pipe error */
-+#define       EUSERS          87      /* Too many users */
-+#define       ENOTSOCK        88      /* Socket operation on non-socket */
-+#define       EDESTADDRREQ    89      /* Destination address required */
-+#define       EMSGSIZE        90      /* Message too long */
-+#define       EPROTOTYPE      91      /* Protocol wrong type for socket */
-+#define       ENOPROTOOPT     92      /* Protocol not available */
-+#define       EPROTONOSUPPORT 93      /* Protocol not supported */
-+#define       ESOCKTNOSUPPORT 94      /* Socket type not supported */
-+#define       EOPNOTSUPP      95      /* Operation not supported on transport endpoint */
-+#define       EPFNOSUPPORT    96      /* Protocol family not supported */
-+#define       EAFNOSUPPORT    97      /* Address family not supported by protocol */
-+#define       EADDRINUSE      98      /* Address already in use */
-+#define       EADDRNOTAVAIL   99      /* Cannot assign requested address */
-+#define       ENETDOWN        100     /* Network is down */
-+#define       ENETUNREACH     101     /* Network is unreachable */
-+#define       ENETRESET       102     /* Network dropped connection because of reset */
-+#define       ECONNABORTED    103     /* Software caused connection abort */
-+#define       ECONNRESET      104     /* Connection reset by peer */
-+#define       ENOBUFS         105     /* No buffer space available */
-+#define       EISCONN         106     /* Transport endpoint is already connected */
-+#define       ENOTCONN        107     /* Transport endpoint is not connected */
-+#define       ESHUTDOWN       108     /* Cannot send after transport endpoint shutdown */
-+#define       ETOOMANYREFS    109     /* Too many references: cannot splice */
-+#define       ETIMEDOUT       110     /* Connection timed out */
-+#define       ECONNREFUSED    111     /* Connection refused */
-+#define       EHOSTDOWN       112     /* Host is down */
-+#define       EHOSTUNREACH    113     /* No route to host */
-+#define       EALREADY        114     /* Operation already in progress */
-+#define       EINPROGRESS     115     /* Operation now in progress */
-+#define       ESTALE          116     /* Stale NFS file handle */
-+#define       EUCLEAN         117     /* Structure needs cleaning */
-+#define       ENOTNAM         118     /* Not a XENIX named type file */
-+#define       ENAVAIL         119     /* No XENIX semaphores available */
-+#define       EISNAM          120     /* Is a named type file */
-+#define       EREMOTEIO       121     /* Remote I/O error */
-+#define       EDQUOT          122     /* Quota exceeded */
-+
-+#define       ENOMEDIUM       123     /* No medium found */
-+#define       EMEDIUMTYPE     124     /* Wrong medium type */
-+#define       ECANCELED       125     /* Operation Canceled */
-+#define       ENOKEY          126     /* Required key not available */
-+#define       EKEYEXPIRED     127     /* Key has expired */
-+#define       EKEYREVOKED     128     /* Key has been revoked */
-+#define       EKEYREJECTED    129     /* Key was rejected by service */
-+
-+/* for robust mutexes */
-+#define       EOWNERDEAD      130     /* Owner died */
-+#define       ENOTRECOVERABLE 131     /* State not recoverable */
-+
-+#define ERFKILL               132     /* Operation not possible due to RF-kill */
-+
-+#endif
diff --git a/src/patches/kudzu-link-lintl.diff b/src/patches/kudzu-link-lintl.diff
deleted file mode 100644 (file)
index ec3974c..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- tmp/kudzu-1.2.60/Makefile  2006-09-05 15:56:21.000000000 +0200
-+++ build/usr/src/kudzu-1.2.60/Makefile        2006-11-20 15:08:32.000000000 +0100
-@@ -63,7 +63,7 @@
-       $(RANLIB) libkudzu.a
- kudzu: libkudzu.a $(KUDOBJS) po
--      $(CC) $(CFLAGS) $(LDFLAGS) $(KUDOBJS) -o kudzu -L. -lkudzu -L. -lpci -Wl,-Bstatic -lpopt -Wl,-Bdynamic
-+      $(CC) $(CFLAGS) $(LDFLAGS) $(KUDOBJS) -o kudzu -L. -lkudzu -L. -lpci -L. -lintl -Wl,-Bstatic -lpopt -Wl,-Bdynamic
- module_upgrade: libkudzu.a module_upgrade.c
-       $(CC) $(CFLAGS) $(LDFLAGS) module_upgrade.c -o module_upgrade -L. -lkudzu -lpci
diff --git a/src/patches/kudzu-usbnet.patch b/src/patches/kudzu-usbnet.patch
deleted file mode 100644 (file)
index 185d1a7..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-diff -Naur kudzu-1.2.64.org/usb.c kudzu-1.2.64/usb.c
---- kudzu-1.2.64.org/usb.c     2006-11-28 17:58:58.000000000 +0100
-+++ kudzu-1.2.64/usb.c 2009-07-16 20:33:19.000000000 +0200
-@@ -261,13 +261,33 @@
-                               t->desc = strdup(t->usbprod);
-                       else
-                               asprintf(&t->desc,"Unknown USB device 0x%x:0x%x",t->vendorId,t->deviceId);
--                      if (t->driver && (!strcmp(t->driver, "pegasus") ||
-+                      if (t->driver && (!strcmp(t->driver, "asix") ||
-                           !strcmp(t->driver, "catc") ||
-+                          !strcmp(t->driver, "cdc_ether") ||
-+                          !strcmp(t->driver, "cdc_subset") ||
-+                          !strcmp(t->driver, "dm9601") ||
-+                          !strcmp(t->driver, "gl620a") ||
-                           !strcmp(t->driver, "kaweth") ||
-+                          !strcmp(t->driver, "mcs7830") || 
-+                          !strcmp(t->driver, "net1080") ||
-+                          !strcmp(t->driver, "pegasus") ||
-+                          !strcmp(t->driver, "plusb") ||
-+                          !strcmp(t->driver, "rndis_host") ||
-                           !strcmp(t->driver, "rtl8150") ||
--                          !strcmp(t->driver, "ax8817x") ||
-+                          !strcmp(t->driver, "zaurus") ||
-+                          !strcmp(t->driver, "rt2500usb") ||
-+                          !strcmp(t->driver, "rt2800usb") ||
-+                          !strcmp(t->driver, "rt2x00usb") ||
-+                          !strcmp(t->driver, "rt73usb") ||
-+                          !strcmp(t->driver, "ar9170usb") ||
-+                          !strcmp(t->driver, "libertas_tf_usb") ||
-+                          !strcmp(t->driver, "at76c50x-usb") ||
-+                          !strcmp(t->driver, "p54usb") ||
-+                          !strcmp(t->driver, "rndis_wlan") ||
-+                          !strcmp(t->driver, "rtl8187") ||
-+                          !strcmp(t->driver, "usb8xxx") ||
-                           !strcmp(t->driver, "zd1201") ||
--                          !strcmp(t->driver, "asix") ||
-+                          !strcmp(t->driver, "zd1211rw") ||
-                           !strcmp(t->driver, "usbnet"))) {
-                               if (t->type == CLASS_OTHER)
-                                       t->type = CLASS_NETWORK;
diff --git a/src/patches/kvm-kmod-2.6.38.6_remove_pvclock_scale_delta_redifinition.patch b/src/patches/kvm-kmod-2.6.38.6_remove_pvclock_scale_delta_redifinition.patch
deleted file mode 100644 (file)
index 331e8a1..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-diff -Naur kvm-kmod-2.6.38.6.org/x86/external-module-compat.h kvm-kmod-2.6.38.6/x86/external-module-compat.h
---- kvm-kmod-2.6.38.6.org/x86/external-module-compat.h 2011-05-15 09:34:48.000000000 +0200
-+++ kvm-kmod-2.6.38.6/x86/external-module-compat.h     2011-05-21 13:30:50.529469540 +0200
-@@ -1064,41 +1064,6 @@
- #endif /* >= 2.6.36 */
--#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,37)
--static inline u64 pvclock_scale_delta(u64 delta, u32 mul_frac, int shift)
--{
--      u64 product;
--#ifdef __i386__
--      u32 tmp1, tmp2;
--#endif
--
--      if (shift < 0)
--              delta >>= -shift;
--      else
--              delta <<= shift;
--
--#ifdef __i386__
--      __asm__ (
--              "mul  %5       ; "
--              "mov  %4,%%eax ; "
--              "mov  %%edx,%4 ; "
--              "mul  %5       ; "
--              "xor  %5,%5    ; "
--              "add  %4,%%eax ; "
--              "adc  %5,%%edx ; "
--              : "=A" (product), "=r" (tmp1), "=r" (tmp2)
--              : "a" ((u32)delta), "1" ((u32)(delta >> 32)), "2" (mul_frac) );
--#elif defined(__x86_64__)
--      __asm__ (
--              "mul %%rdx ; shrd $32,%%rdx,%%rax"
--              : "=a" (product) : "0" (delta), "d" ((u64)mul_frac) );
--#else
--#error implement me!
--#endif
--
--      return product;
--}
--#endif
- #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,34) && \
-     LINUX_VERSION_CODE != KERNEL_VERSION(2,6,32) && defined(CONFIG_X86_64)
diff --git a/src/patches/kvm-kmod-3.0b_remove_pvclock_scale_delta_redefinition.patch b/src/patches/kvm-kmod-3.0b_remove_pvclock_scale_delta_redefinition.patch
deleted file mode 100644 (file)
index 87effb3..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Naur kvm-kmod-3.0b.org/x86/external-module-compat.h kvm-kmod-3.0b/x86/external-module-compat.h
---- kvm-kmod-3.0b.org/x86/external-module-compat.h     2011-07-23 16:39:10.000000000 +0200
-+++ kvm-kmod-3.0b/x86/external-module-compat.h 2011-08-13 21:37:56.046677541 +0200
-@@ -1095,7 +1095,7 @@
- #endif /* >= 2.6.36 */
--#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,37) || \
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,37) && \
-     (LINUX_VERSION_CODE == KERNEL_VERSION(2,6,32) && KERNEL_EXTRAVERSION < 40)
- static inline u64 pvclock_scale_delta(u64 delta, u32 mul_frac, int shift)
- {
diff --git a/src/patches/libmad-0.15.1b-cflags-O2.patch b/src/patches/libmad-0.15.1b-cflags-O2.patch
new file mode 100644 (file)
index 0000000..61b4b13
--- /dev/null
@@ -0,0 +1,12 @@
+diff -Naur libmad-0.15.1b-orig/configure.ac libmad-0.15.1b/configure.ac
+--- libmad-0.15.1b-orig/configure.ac   2007-07-01 12:58:13.000000000 -0600
++++ libmad-0.15.1b/configure.ac        2007-07-01 12:59:13.000000000 -0600
+@@ -105,7 +105,7 @@
+           shift
+           ;;
+       -O2)
+-          optimize="-O"
++          optimize="-O2"
+           shift
+           ;;
+       -fomit-frame-pointer)
diff --git a/src/patches/libmad-0.15.1b-cflags.patch b/src/patches/libmad-0.15.1b-cflags.patch
new file mode 100644 (file)
index 0000000..2ec44e3
--- /dev/null
@@ -0,0 +1,146 @@
+diff -Naur libmad-0.15.1b-orig/configure.ac libmad-0.15.1b/configure.ac
+--- libmad-0.15.1b-orig/configure.ac   2007-06-30 20:22:31.000000000 -0600
++++ libmad-0.15.1b/configure.ac        2007-06-30 20:25:31.000000000 -0600
+@@ -122,74 +122,74 @@
+     esac
+ done
+-if test "$GCC" = yes
+-then
+-    if test -z "$arch"
+-    then
+-      case "$host" in
+-          i386-*)           ;;
+-          i?86-*)           arch="-march=i486" ;;
+-          arm*-empeg-*)     arch="-march=armv4 -mtune=strongarm1100" ;;
+-          armv4*-*)         arch="-march=armv4 -mtune=strongarm" ;;
+-          powerpc-*)        ;;
+-          mips*-agenda-*)   arch="-mcpu=vr4100" ;;
+-          mips*-luxsonor-*) arch="-mips1 -mcpu=r3000 -Wa,-m4010" ;;
+-      esac
+-    fi
+-
+-    case "$optimize" in
+-      -O|"-O "*)
+-          optimize="-O"
+-          optimize="$optimize -fforce-mem"
+-          optimize="$optimize -fforce-addr"
+-          : #x optimize="$optimize -finline-functions"
+-          : #- optimize="$optimize -fstrength-reduce"
+-          optimize="$optimize -fthread-jumps"
+-          optimize="$optimize -fcse-follow-jumps"
+-          optimize="$optimize -fcse-skip-blocks"
+-          : #x optimize="$optimize -frerun-cse-after-loop"
+-          : #x optimize="$optimize -frerun-loop-opt"
+-          : #x optimize="$optimize -fgcse"
+-          optimize="$optimize -fexpensive-optimizations"
+-          optimize="$optimize -fregmove"
+-          : #* optimize="$optimize -fdelayed-branch"
+-          : #x optimize="$optimize -fschedule-insns"
+-          optimize="$optimize -fschedule-insns2"
+-          : #? optimize="$optimize -ffunction-sections"
+-          : #? optimize="$optimize -fcaller-saves"
+-          : #> optimize="$optimize -funroll-loops"
+-          : #> optimize="$optimize -funroll-all-loops"
+-          : #x optimize="$optimize -fmove-all-movables"
+-          : #x optimize="$optimize -freduce-all-givs"
+-          : #? optimize="$optimize -fstrict-aliasing"
+-          : #* optimize="$optimize -fstructure-noalias"
+-
+-          case "$host" in
+-              arm*-*)
+-                  optimize="$optimize -fstrength-reduce"
+-                  ;;
+-              mips*-*)
+-                  optimize="$optimize -fstrength-reduce"
+-                  optimize="$optimize -finline-functions"
+-                  ;;
+-              i?86-*)
+-                  optimize="$optimize -fstrength-reduce"
+-                  ;;
+-              powerpc-apple-*)
+-                  # this triggers an internal compiler error with gcc2
+-                  : #optimize="$optimize -fstrength-reduce"
+-
+-                  # this is really only beneficial with gcc3
+-                  : #optimize="$optimize -finline-functions"
+-                  ;;
+-              *)
+-                  # this sometimes provokes bugs in gcc 2.95.2
+-                  : #optimize="$optimize -fstrength-reduce"
+-                  ;;
+-          esac
+-          ;;
+-    esac
+-fi
++#if test "$GCC" = yes
++#then
++#    if test -z "$arch"
++#    then
++#     case "$host" in
++#         i386-*)           ;;
++#         i?86-*)           arch="-march=i486" ;;
++#         arm*-empeg-*)     arch="-march=armv4 -mtune=strongarm1100" ;;
++#         armv4*-*)         arch="-march=armv4 -mtune=strongarm" ;;
++#         powerpc-*)        ;;
++#         mips*-agenda-*)   arch="-mcpu=vr4100" ;;
++#         mips*-luxsonor-*) arch="-mips1 -mcpu=r3000 -Wa,-m4010" ;;
++#     esac
++#    fi
++#
++#    case "$optimize" in
++#     -O|"-O "*)
++#         optimize="-O"
++#         optimize="$optimize -fforce-mem"
++#         optimize="$optimize -fforce-addr"
++#         : #x optimize="$optimize -finline-functions"
++#         : #- optimize="$optimize -fstrength-reduce"
++#         optimize="$optimize -fthread-jumps"
++#         optimize="$optimize -fcse-follow-jumps"
++#         optimize="$optimize -fcse-skip-blocks"
++#         : #x optimize="$optimize -frerun-cse-after-loop"
++#         : #x optimize="$optimize -frerun-loop-opt"
++#         : #x optimize="$optimize -fgcse"
++#         optimize="$optimize -fexpensive-optimizations"
++#         optimize="$optimize -fregmove"
++#         : #* optimize="$optimize -fdelayed-branch"
++#         : #x optimize="$optimize -fschedule-insns"
++#         optimize="$optimize -fschedule-insns2"
++#         : #? optimize="$optimize -ffunction-sections"
++#         : #? optimize="$optimize -fcaller-saves"
++#         : #> optimize="$optimize -funroll-loops"
++#         : #> optimize="$optimize -funroll-all-loops"
++#         : #x optimize="$optimize -fmove-all-movables"
++#         : #x optimize="$optimize -freduce-all-givs"
++#         : #? optimize="$optimize -fstrict-aliasing"
++#         : #* optimize="$optimize -fstructure-noalias"
++#
++#         case "$host" in
++#             arm*-*)
++#                 optimize="$optimize -fstrength-reduce"
++#                 ;;
++#             mips*-*)
++#                 optimize="$optimize -fstrength-reduce"
++#                 optimize="$optimize -finline-functions"
++#                 ;;
++#             i?86-*)
++#                 optimize="$optimize -fstrength-reduce"
++#                 ;;
++#             powerpc-apple-*)
++#                 # this triggers an internal compiler error with gcc2
++#                 : #optimize="$optimize -fstrength-reduce"
++#
++#                 # this is really only beneficial with gcc3
++#                 : #optimize="$optimize -finline-functions"
++#                 ;;
++#             *)
++#                 # this sometimes provokes bugs in gcc 2.95.2
++#                 : #optimize="$optimize -fstrength-reduce"
++#                 ;;
++#         esac
++#         ;;
++#    esac
++#fi
+ case "$host" in
+     mips*-agenda-*)
diff --git a/src/patches/libnl-1.1-ULONG_MAX.patch b/src/patches/libnl-1.1-ULONG_MAX.patch
new file mode 100644 (file)
index 0000000..ca3dd40
--- /dev/null
@@ -0,0 +1,11 @@
+--- libnl-1.1/include/netlink-local.h.orig     2008-06-08 19:09:20.000000000 +0200
++++ libnl-1.1/include/netlink-local.h  2008-06-08 19:09:33.000000000 +0200
+@@ -26,6 +26,7 @@
+ #include <sys/socket.h>
+ #include <inttypes.h>
+ #include <assert.h>
++#include <limits.h>
+ #include <arpa/inet.h>
+ #include <netdb.h>
+
diff --git a/src/patches/libsafe-alpha.diff b/src/patches/libsafe-alpha.diff
deleted file mode 100644 (file)
index dfeb9f2..0000000
+++ /dev/null
@@ -1,232 +0,0 @@
---- libsafe-2.0-16-orig/src/intercept.c        2003-03-15 16:02:12.000000000 +0100
-+++ libsafe-2.0-16/src/intercept.c     2003-03-15 16:12:22.000000000 +0100
-@@ -165,7 +165,8 @@
-  */
- char *strcpy(char *dest, const char *src)
- {
--    size_t max_size, len;
-+    uint max_size;
-+    size_t len;
-     if (!real_memcpy)
-       real_memcpy = (memcpy_t) getLibraryFunction("memcpy");
-@@ -196,7 +197,8 @@
- char *strncpy(char *dest, const char *src, size_t n)
- {
--    size_t max_size, len;
-+    uint max_size;
-+    size_t len;
-     if (!real_strncpy)
-       real_strncpy = (strncpy_t) getLibraryFunction("strncpy");
-@@ -219,7 +221,8 @@
- char *stpcpy(char *dest, const char *src)
- {
--    size_t max_size, len;
-+    uint max_size;
-+    size_t len;
-     if (!real_memcpy)
-       real_memcpy = (memcpy_t) getLibraryFunction("memcpy");
-@@ -251,7 +254,8 @@
- #ifndef MISSING_WCSNLEN
- wchar_t *wcscpy(wchar_t *dest, const wchar_t *src)
- {
--    size_t max_bytes, max_wchars, len;
-+    size_t max_wchars, len;
-+    uint max_bytes;
-     if (!real_wcscpy)
-       real_wcscpy = (wcscpy_t) getLibraryFunction("wcscpy");
-@@ -291,7 +295,8 @@
- wchar_t *wcpcpy(wchar_t *dest, const wchar_t *src)
- {
--    size_t max_bytes, max_wchars, len;
-+    size_t max_wchars, len;
-+    uint max_bytes;
-     if (!real_wcpcpy)
-       real_wcpcpy = (wcpcpy_t) getLibraryFunction("wcpcpy");
-@@ -333,9 +338,15 @@
- /*
-  * This is needed!  See the strcpy() for the reason. -ab.
-  */
--void *memcpy(void *dest, const void *src, size_t n)
-+void *memcpy(void *dest, const void *src, size_t hack)
- {
--    size_t max_size;
-+    /*
-+     * a size_t IS an unsigned long everywhere, though it sometimes
-+     * doesn't state so, making printf misinterpret it.
-+     */
-+    unsigned long n = hack;
-+    uint max_size;
-+
-     if (!real_memcpy)
-       real_memcpy = (memcpy_t) getLibraryFunction("memcpy");
-@@ -344,11 +355,11 @@
-       return real_memcpy(dest, src, n);
-     if ((max_size = _libsafe_stackVariableP(dest)) == 0) {
--      LOG(5, "memcpy(<heap var> , <src>, %d)\n", n);
-+      LOG(5, "memcpy(<heap var> , <src>, %ld)\n", n);
-       return real_memcpy(dest, src, n);
-     }
--    LOG(4, "memcpy(<stack var> , <src>, %d) stack limit=%d)\n", n, max_size);
-+    LOG(4, "memcpy(<stack var> , <src>, %ld) stack limit=%d)\n", n, max_size);
-     if (n > max_size)
-       _libsafe_die("Overflow caused by memcpy()");
-     return real_memcpy(dest, src, n);
-@@ -357,7 +368,7 @@
- char *strcat(char *dest, const char *src)
- {
--    size_t max_size;
-+    uint max_size;
-     uint dest_len, src_len;
-     if (!real_memcpy)
-@@ -388,7 +399,7 @@
- char *strncat(char *dest, const char *src, size_t n)
- {
--    size_t max_size;
-+    uint max_size;
-     uint dest_len, src_len;
-     if (!real_strncat)
-@@ -1008,12 +1019,31 @@
-           if (is_printf_convspec[(int)*p]) {
-               caddr_t addr;
-               c++;
-+#if 0 
-+              /*
-+               * cannot add va_list (ap here) with a number on alpha.
-+               * this is faster than the other method, and might be
-+               * a good idea to enable this on !alpha arch.
-+               */
-               if (pnum) {
-                   addr = *((caddr_t*)(ap + (atoi(pnum)-1)*sizeof(char*)));
-               }
-               else {
-                   addr = *((caddr_t*)(ap + c*sizeof(char*)));
-               }
-+#else
-+              {
-+                  va_list apc;
-+                  uint nb = c + 1;
-+
-+                  va_copy(apc, ap);
-+                  if (pnum)
-+                      nb = atoi(pnum);
-+                  addr = NULL;
-+                  while (nb--)
-+                      addr = va_arg(apc, caddr_t);
-+              }
-+#endif
-               if (*p == 'n') {
-                   if (_libsafe_raVariableP((void *)(addr))) {
-                       _libsafe_die("printf(\"%%n\")");
-@@ -1172,12 +1202,32 @@
-           if (is_printf_convspec[(int)*p]) {
-               caddr_t addr;
-               c++;
-+#if 0
-+              /*
-+               * cannot add va_list (ap here) with a number on alpha.
-+               * this is faster than the other method, and might be
-+               * a good idea to enable this on !alpha arch.
-+               */
-+
-               if (pnum) {
-                   addr = *((caddr_t*)(ap + (atoi(pnum)-1)*sizeof(char*)));
-               }
-               else {
-                   addr = *((caddr_t*)(ap + c*sizeof(char*)));
-               }
-+#else
-+              {
-+                  va_list apc;
-+                  uint nb = c + 1;
-+
-+                  va_copy(apc, ap);
-+                  if (pnum)
-+                      nb = atoi(pnum);
-+                  addr = NULL;
-+                  while (nb--)
-+                    addr = va_arg(apc, caddr_t);
-+              }
-+#endif
-               if (*p == 'n') {
-                   if (_libsafe_raVariableP((void *)(addr))) {
-                       _libsafe_die("printf(\"%%n\")");
-@@ -1194,7 +1244,7 @@
- int sprintf(char *str, const char *format, ...)
- {
--    size_t max_size;
-+    uint max_size;
-     va_list ap;
-     int res;
-@@ -1242,7 +1292,7 @@
- int snprintf(char *str, size_t size, const char *format, ...)
- {
--    size_t max_size;
-+    uint max_size;
-     va_list ap;
-     int res;
-@@ -1288,7 +1338,7 @@
- int vsprintf(char *str, const char *format, va_list ap)
- {
--    size_t max_size;
-+    uint max_size;
-     int res;
-     if (!real_vsprintf)
-@@ -1325,7 +1375,7 @@
- int vsnprintf(char *str, size_t size, const char *format, va_list ap)
- {
--    size_t max_size;
-+    uint max_size;
-     int res;
-     if (!real_vsnprintf)
-@@ -1360,7 +1410,7 @@
- char *getwd(char *buf)
- {
--    size_t max_size;
-+    uint max_size;
-     char *res;
-     if (!real_getwd)
-@@ -1384,7 +1434,8 @@
- char *gets(char *s)
- {
--    size_t max_size, len;
-+    uint max_size;
-+    size_t len;
-     if (!real_gets)
-       real_gets = (gets_t) getLibraryFunction("gets");
-@@ -1409,7 +1460,8 @@
- char *realpath(char *path, char resolved_path[])
- {
--    size_t max_size, len;
-+    uint max_size;
-+    size_t len;
-     char *res;
-     char buf[MAXPATHLEN + 1];
diff --git a/src/patches/libsafe-functioncaching.diff b/src/patches/libsafe-functioncaching.diff
deleted file mode 100644 (file)
index db003a4..0000000
+++ /dev/null
@@ -1,258 +0,0 @@
-From: Goswin Brederlow <goswin.brederlow@student.uni-tuebingen.de>
-Subject: Bug#129345: patch to prevent a loop between libdl and libsafe causing libdl to crash
-To: 129345@bugs.debian.org
-Date: 01 Sep 2002 23:54:35 +0200
-Reply-To: Goswin Brederlow <goswin.brederlow@student.uni-tuebingen.de>,
-       129345@bugs.debian.org
-Resent-From: Goswin Brederlow <goswin.brederlow@student.uni-tuebingen.de>
-
-
--------
-[D. Coe edited this patch slightly -- moved an unrelated change into the
-Makefile itself [it changed the debugging comments only], and corrected a 
-spelling error and reworded the comments.  The original patch is in the 
-bug tracking system, if you want to see it as submitted by Goswin.]
--------
--------
-D. Coe subsequently modified the patch further, because in some cases
-the initializations did not occur (e.g. when IO_vfscanf or memcpy was
-called from ps or top (likely one of the libraries they use).  maybe
-they do something that disables libsafe's library globals initialization?
-
-
-In any case, I've adopted both strategise in this new patch; the addresses
-are preloaded as Goswin had coded, but they are also individually checked
-each time needed (as was the case before Goswin's patch), and are initialized
-at that point if necessary.  Hopefully this will let ps and top work
-and also continue to work around the libdl problem.
--------
-
-Hi,
-
-if libsafe is invoked from inside libdl (or only inside dlerror()?)
-and a real_XXX function is not yet looked up it will reenter
-libdl. That causes memory corruption resulting in a read from 0x0 and
-thus segfault.
-
-The patch below makes libsafe cache all needed symbols once upon
-init. That not only causes less lookups than before but should prevent
-fatal loops. Failures of the initial lookups might not be reported
-correctly but terminate in some odd way if the functions needed to
-report are not yet looked up.
-
-MfG
-        Goswin
-
-----------------------------------------------------------------------
-diff -Nurd libsafe-2.0-16/src/intercept.c libsafe-2.0-16-mrvn/src/intercept.c
---- libsafe-2.0-16/src/intercept.c     2002-05-31 19:37:34.000000000 +0200
-+++ libsafe-2.0-16-mrvn/src/intercept.c        2002-09-01 23:44:55.000000000 +0200
-@@ -128,14 +128,29 @@
- }
--/* Starting with version 2.0, we keep a single global copy of the pointer to
-- * the real memcpy() function.  This allows us to call
-- * getLibraryFunction("memcpy") just once instead of multiple times, since
-- * memcpy() is needed in four different functions below.
-+/* Starting with Debian version 2.0-16-2, we keep a global copy of the pointer
-+ * to each real functions.  Otherwise a getLibraryFunction might
-+ * be triggered from inside dlsym() and cause memory corruption reulting in a
-+ * segfault.
-  */
--static memcpy_t real_memcpy = NULL;
--
--
-+static memcpy_t      real_memcpy = NULL;
-+static _IO_vfscanf_t real_IO_vfscanf = NULL;
-+static vfprintf_t    real_vfprintf = NULL;
-+static vsnprintf_t   real_vsnprintf = NULL;
-+static vsprintf_t    real_vsprintf = NULL;
-+static gets_t        real_gets = NULL;
-+static getwd_t       real_getwd = NULL;
-+static realpath_t    real_realpath = NULL;
-+static stpcpy_t      real_stpcpy = NULL;
-+static strcat_t      real_strcat = NULL;
-+static strcpy_t      real_strcpy = NULL;
-+static strncat_t     real_strncat = NULL;
-+static strncpy_t     real_strncpy = NULL;
-+static wcscpy_t      real_wcscpy = NULL;
-+static wcpcpy_t      real_wcpcpy = NULL;
-+#ifndef MISSING_WCSNLEN
-+static wcscat_t      real_wcscat = NULL;
-+#endif
- /*
-  * -------------- system library implementations -------------------
-  * Here is the story: if a C source file includes <string.h> and is
-@@ -150,7 +165,6 @@
-  */
- char *strcpy(char *dest, const char *src)
- {
--    static strcpy_t real_strcpy = NULL;
-     size_t max_size, len;
-     if (!real_memcpy)
-@@ -182,7 +196,6 @@
- char *strncpy(char *dest, const char *src, size_t n)
- {
--    static strncpy_t real_strncpy = NULL;
-     size_t max_size, len;
-     if (!real_strncpy)
-@@ -206,7 +219,6 @@
- char *stpcpy(char *dest, const char *src)
- {
--    static stpcpy_t real_stpcpy = NULL;
-     size_t max_size, len;
-     if (!real_memcpy)
-@@ -239,7 +251,6 @@
- #ifndef MISSING_WCSNLEN
- wchar_t *wcscpy(wchar_t *dest, const wchar_t *src)
- {
--    static wcscpy_t real_wcscpy = NULL;
-     size_t max_bytes, max_wchars, len;
-     if (!real_wcscpy)
-@@ -280,7 +291,6 @@
- wchar_t *wcpcpy(wchar_t *dest, const wchar_t *src)
- {
--    static wcpcpy_t real_wcpcpy = NULL;
-     size_t max_bytes, max_wchars, len;
-     if (!real_wcpcpy)
-@@ -347,7 +357,6 @@
- char *strcat(char *dest, const char *src)
- {
--    static strcat_t real_strcat = NULL;
-     size_t max_size;
-     uint dest_len, src_len;
-@@ -379,7 +388,6 @@
- char *strncat(char *dest, const char *src, size_t n)
- {
--    static strncat_t real_strncat = NULL;
-     size_t max_size;
-     uint dest_len, src_len;
-@@ -408,7 +416,6 @@
- #ifndef MISSING_WCSNLEN
- wchar_t *wcscat(wchar_t *dest, const wchar_t *src)
- {
--    static wcscat_t real_wcscat = NULL;
-     size_t max_bytes;
-     uint dest_len, src_len;
-@@ -861,7 +868,6 @@
-  */
- int vfprintf(FILE *fp, const char *format, va_list ap)
- {
--    static vfprintf_t real_vfprintf = NULL;
-     int res;
-     char *p, *pnum;
-     int c = -1;               /* Next var arg to be used */
-@@ -1026,7 +1032,6 @@
-  */
- int _IO_vfprintf(FILE *fp, const char *format, va_list ap)
- {
--    static vfprintf_t real_vfprintf = NULL;
-     int res;
-     char *p, *pnum;
-     int c = -1;               /* Next var arg to be used */
-@@ -1189,8 +1194,6 @@
- int sprintf(char *str, const char *format, ...)
- {
--    static vsprintf_t real_vsprintf = NULL;
--    static vsnprintf_t real_vsnprintf = NULL;
-     size_t max_size;
-     va_list ap;
-     int res;
-@@ -1239,7 +1242,6 @@
- int snprintf(char *str, size_t size, const char *format, ...)
- {
--    static vsnprintf_t real_vsnprintf = NULL;
-     size_t max_size;
-     va_list ap;
-     int res;
-@@ -1286,8 +1288,6 @@
- int vsprintf(char *str, const char *format, va_list ap)
- {
--    static vsprintf_t real_vsprintf = NULL;
--    static vsnprintf_t real_vsnprintf = NULL;
-     size_t max_size;
-     int res;
-@@ -1325,7 +1325,6 @@
- int vsnprintf(char *str, size_t size, const char *format, va_list ap)
- {
--    static vsnprintf_t real_vsnprintf = NULL;
-     size_t max_size;
-     int res;
-@@ -1361,7 +1360,6 @@
- char *getwd(char *buf)
- {
--    static getwd_t real_getwd = NULL;
-     size_t max_size;
-     char *res;
-@@ -1386,7 +1384,6 @@
- char *gets(char *s)
- {
--    static gets_t real_gets = NULL;
-     size_t max_size, len;
-     if (!real_gets)
-@@ -1412,7 +1409,6 @@
- char *realpath(char *path, char resolved_path[])
- {
--    static realpath_t real_realpath = NULL;
-     size_t max_size, len;
-     char *res;
-     char buf[MAXPATHLEN + 1];
-@@ -1445,7 +1441,6 @@
- int _IO_vfscanf (_IO_FILE *s, const char *format, _IO_va_list argptr, int *errp)
- {
--    static _IO_vfscanf_t real_IO_vfscanf = NULL;
-     int res, save_count;
-     caddr_t ra_array[MAXLEVELS], fp_array[MAXLEVELS];
-@@ -1529,6 +1524,25 @@
-       
-       fclose(fp);
-     }
-+
-+    real_memcpy = (memcpy_t) getLibraryFunction("memcpy");
-+    real_IO_vfscanf = (_IO_vfscanf_t) getLibraryFunction("_IO_vfscanf");
-+    real_vfprintf = (vfprintf_t) getLibraryFunction("vfprintf");
-+    real_vsnprintf = (vsnprintf_t) getLibraryFunction("vsnprintf");
-+    real_vsprintf = (vsprintf_t) getLibraryFunction("vsprintf");
-+    real_gets = (gets_t) getLibraryFunction("gets");
-+    real_getwd = (getwd_t) getLibraryFunction("getwd");
-+    real_realpath = (realpath_t) getLibraryFunction("realpath");
-+    real_stpcpy = (stpcpy_t) getLibraryFunction("stpcpy");
-+    real_strcat = (strcat_t) getLibraryFunction("strcat");
-+    real_strcpy = (strcpy_t) getLibraryFunction("strcpy");
-+    real_strncat = (strncat_t) getLibraryFunction("strncat");
-+    real_strncpy = (strncpy_t) getLibraryFunction("strncpy");
-+    real_wcscpy = (wcscpy_t) getLibraryFunction("wcscpy");
-+    real_wcpcpy = (wcpcpy_t) getLibraryFunction("wcpcpy");
-+#ifndef MISSING_WCSNLEN
-+    real_wcscat = (wcscat_t) getLibraryFunction("wcscat");
-+#endif
- }
diff --git a/src/patches/libsigc++-gcc43.patch b/src/patches/libsigc++-gcc43.patch
new file mode 100644 (file)
index 0000000..528f21e
--- /dev/null
@@ -0,0 +1,85 @@
+diff -urN libsigc++-2.0-2.0.17.old/sigc++/signal.h libsigc++-2.0-2.0.17/sigc++/signal.h
+--- libsigc++-2.0-2.0.17.old/sigc++/signal.h   2005-12-20 08:35:21.000000000 +0000
++++ libsigc++-2.0-2.0.17/sigc++/signal.h       2008-02-22 00:22:44.000000000 +0000
+@@ -1661,7 +1661,7 @@
+   typedef internal::signal_emit0<T_return, T_accumulator> emitter_type;
+   typedef typename emitter_type::result_type         result_type;
+   typedef slot<T_return>    slot_type;
+-  typedef slot_list<slot_type>                       slot_list_type;
++  typedef sigc::slot_list<slot_type>                       slot_list_type;
+   typedef typename slot_list_type::iterator               iterator;
+   typedef typename slot_list_type::const_iterator         const_iterator;
+   typedef typename slot_list_type::reverse_iterator       reverse_iterator;
+@@ -1770,7 +1770,7 @@
+   typedef internal::signal_emit1<T_return, T_arg1, T_accumulator> emitter_type;
+   typedef typename emitter_type::result_type         result_type;
+   typedef slot<T_return, T_arg1>    slot_type;
+-  typedef slot_list<slot_type>                       slot_list_type;
++  typedef sigc::slot_list<slot_type>                       slot_list_type;
+   typedef typename slot_list_type::iterator               iterator;
+   typedef typename slot_list_type::const_iterator         const_iterator;
+   typedef typename slot_list_type::reverse_iterator       reverse_iterator;
+@@ -1881,7 +1881,7 @@
+   typedef internal::signal_emit2<T_return, T_arg1,T_arg2, T_accumulator> emitter_type;
+   typedef typename emitter_type::result_type         result_type;
+   typedef slot<T_return, T_arg1,T_arg2>    slot_type;
+-  typedef slot_list<slot_type>                       slot_list_type;
++  typedef sigc::slot_list<slot_type>                       slot_list_type;
+   typedef typename slot_list_type::iterator               iterator;
+   typedef typename slot_list_type::const_iterator         const_iterator;
+   typedef typename slot_list_type::reverse_iterator       reverse_iterator;
+@@ -1994,7 +1994,7 @@
+   typedef internal::signal_emit3<T_return, T_arg1,T_arg2,T_arg3, T_accumulator> emitter_type;
+   typedef typename emitter_type::result_type         result_type;
+   typedef slot<T_return, T_arg1,T_arg2,T_arg3>    slot_type;
+-  typedef slot_list<slot_type>                       slot_list_type;
++  typedef sigc::slot_list<slot_type>                       slot_list_type;
+   typedef typename slot_list_type::iterator               iterator;
+   typedef typename slot_list_type::const_iterator         const_iterator;
+   typedef typename slot_list_type::reverse_iterator       reverse_iterator;
+@@ -2109,7 +2109,7 @@
+   typedef internal::signal_emit4<T_return, T_arg1,T_arg2,T_arg3,T_arg4, T_accumulator> emitter_type;
+   typedef typename emitter_type::result_type         result_type;
+   typedef slot<T_return, T_arg1,T_arg2,T_arg3,T_arg4>    slot_type;
+-  typedef slot_list<slot_type>                       slot_list_type;
++  typedef sigc::slot_list<slot_type>                       slot_list_type;
+   typedef typename slot_list_type::iterator               iterator;
+   typedef typename slot_list_type::const_iterator         const_iterator;
+   typedef typename slot_list_type::reverse_iterator       reverse_iterator;
+@@ -2226,7 +2226,7 @@
+   typedef internal::signal_emit5<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5, T_accumulator> emitter_type;
+   typedef typename emitter_type::result_type         result_type;
+   typedef slot<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5>    slot_type;
+-  typedef slot_list<slot_type>                       slot_list_type;
++  typedef sigc::slot_list<slot_type>                       slot_list_type;
+   typedef typename slot_list_type::iterator               iterator;
+   typedef typename slot_list_type::const_iterator         const_iterator;
+   typedef typename slot_list_type::reverse_iterator       reverse_iterator;
+@@ -2345,7 +2345,7 @@
+   typedef internal::signal_emit6<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6, T_accumulator> emitter_type;
+   typedef typename emitter_type::result_type         result_type;
+   typedef slot<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6>    slot_type;
+-  typedef slot_list<slot_type>                       slot_list_type;
++  typedef sigc::slot_list<slot_type>                       slot_list_type;
+   typedef typename slot_list_type::iterator               iterator;
+   typedef typename slot_list_type::const_iterator         const_iterator;
+   typedef typename slot_list_type::reverse_iterator       reverse_iterator;
+@@ -2466,7 +2466,7 @@
+   typedef internal::signal_emit7<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7, T_accumulator> emitter_type;
+   typedef typename emitter_type::result_type         result_type;
+   typedef slot<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7>    slot_type;
+-  typedef slot_list<slot_type>                       slot_list_type;
++  typedef sigc::slot_list<slot_type>                       slot_list_type;
+   typedef typename slot_list_type::iterator               iterator;
+   typedef typename slot_list_type::const_iterator         const_iterator;
+   typedef typename slot_list_type::reverse_iterator       reverse_iterator;
+diff -urN libsigc++-2.0-2.0.17.old/tests/test_copy_invalid_slot.cc libsigc++-2.0-2.0.17/tests/test_copy_invalid_slot.cc
+--- libsigc++-2.0-2.0.17.old/tests/test_copy_invalid_slot.cc   2005-05-01 02:00:47.000000000 +0000
++++ libsigc++-2.0-2.0.17/tests/test_copy_invalid_slot.cc       2008-02-22 00:24:08.000000000 +0000
+@@ -1,4 +1,6 @@
+ #include <iostream>
++#include <cstdlib>
++#include <cstring>
+ #include <sigc++/sigc++.h>
+ void Foo(sigc::trackable &t) {}
diff --git a/src/patches/linux-2.6-arm-asm-constraint.patch b/src/patches/linux-2.6-arm-asm-constraint.patch
new file mode 100644 (file)
index 0000000..ac0641e
--- /dev/null
@@ -0,0 +1,347 @@
+From 398aa66827155ef52bab58bebd24597d90968929 Mon Sep 17 00:00:00 2001
+From: Will Deacon <will.deacon@arm.com>
+Date: Thu, 8 Jul 2010 10:59:16 +0100
+Subject: [PATCH] ARM: 6212/1: atomic ops: add memory constraints to inline
+ asm
+
+Currently, the 32-bit and 64-bit atomic operations on ARM do not
+include memory constraints in the inline assembly blocks. In the
+case of barrier-less operations [for example, atomic_add], this
+means that the compiler may constant fold values which have actually
+been modified by a call to an atomic operation.
+
+This issue can be observed in the atomic64_test routine in
+<kernel root>/lib/atomic64_test.c:
+
+00000000 <test_atomic64>:
+   0:  e1a0c00d        mov     ip, sp
+   4:  e92dd830        push    {r4, r5, fp, ip, lr, pc}
+   8:  e24cb004        sub     fp, ip, #4
+   c:  e24dd008        sub     sp, sp, #8
+  10:  e24b3014        sub     r3, fp, #20
+  14:  e30d000d        movw    r0, #53261      ; 0xd00d
+  18:  e3011337        movw    r1, #4919       ; 0x1337
+  1c:  e34c0001        movt    r0, #49153      ; 0xc001
+  20:  e34a1aa3        movt    r1, #43683      ; 0xaaa3
+  24:  e16300f8        strd    r0, [r3, #-8]!
+  28:  e30c0afe        movw    r0, #51966      ; 0xcafe
+  2c:  e30b1eef        movw    r1, #48879      ; 0xbeef
+  30:  e34d0eaf        movt    r0, #57007      ; 0xdeaf
+  34:  e34d1ead        movt    r1, #57005      ; 0xdead
+  38:  e1b34f9f        ldrexd  r4, [r3]
+  3c:  e1a34f90        strexd  r4, r0, [r3]
+  40:  e3340000        teq     r4, #0
+  44:  1afffffb        bne     38 <test_atomic64+0x38>
+  48:  e59f0004        ldr     r0, [pc, #4]    ; 54 <test_atomic64+0x54>
+  4c:  e3a0101e        mov     r1, #30
+  50:  ebfffffe        bl      0 <__bug>
+  54:  00000000        .word   0x00000000
+
+The atomic64_set (0x38-0x44) writes to the atomic64_t, but the
+compiler doesn't see this, assumes the test condition is always
+false and generates an unconditional branch to __bug. The rest of the
+test is optimised away.
+
+This patch adds suitable memory constraints to the atomic operations on ARM
+to ensure that the compiler is informed of the correct data hazards. We have
+to use the "Qo" constraints to avoid hitting the GCC anomaly described at
+http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44492 , where the compiler
+makes assumptions about the writeback in the addressing mode used by the
+inline assembly. These constraints forbid the use of auto{inc,dec} addressing
+modes, so it doesn't matter if we don't use the operand exactly once.
+
+Cc: stable@kernel.org
+Reviewed-by: Nicolas Pitre <nicolas.pitre@linaro.org>
+Signed-off-by: Will Deacon <will.deacon@arm.com>
+Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
+---
+ arch/arm/include/asm/atomic.h |  132 ++++++++++++++++++++--------------------
+ 1 files changed, 66 insertions(+), 66 deletions(-)
+
+diff --git a/arch/arm/include/asm/atomic.h b/arch/arm/include/asm/atomic.h
+index e9e56c0..7e79503 100644
+--- a/arch/arm/include/asm/atomic.h
++++ b/arch/arm/include/asm/atomic.h
+@@ -40,12 +40,12 @@ static inline void atomic_add(int i, atomic_t *v)
+       int result;
+       __asm__ __volatile__("@ atomic_add\n"
+-"1:   ldrex   %0, [%2]\n"
+-"     add     %0, %0, %3\n"
+-"     strex   %1, %0, [%2]\n"
++"1:   ldrex   %0, [%3]\n"
++"     add     %0, %0, %4\n"
++"     strex   %1, %0, [%3]\n"
+ "     teq     %1, #0\n"
+ "     bne     1b"
+-      : "=&r" (result), "=&r" (tmp)
++      : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter)
+       : "r" (&v->counter), "Ir" (i)
+       : "cc");
+ }
+@@ -58,12 +58,12 @@ static inline int atomic_add_return(int i, atomic_t *v)
+       smp_mb();
+       __asm__ __volatile__("@ atomic_add_return\n"
+-"1:   ldrex   %0, [%2]\n"
+-"     add     %0, %0, %3\n"
+-"     strex   %1, %0, [%2]\n"
++"1:   ldrex   %0, [%3]\n"
++"     add     %0, %0, %4\n"
++"     strex   %1, %0, [%3]\n"
+ "     teq     %1, #0\n"
+ "     bne     1b"
+-      : "=&r" (result), "=&r" (tmp)
++      : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter)
+       : "r" (&v->counter), "Ir" (i)
+       : "cc");
+@@ -78,12 +78,12 @@ static inline void atomic_sub(int i, atomic_t *v)
+       int result;
+       __asm__ __volatile__("@ atomic_sub\n"
+-"1:   ldrex   %0, [%2]\n"
+-"     sub     %0, %0, %3\n"
+-"     strex   %1, %0, [%2]\n"
++"1:   ldrex   %0, [%3]\n"
++"     sub     %0, %0, %4\n"
++"     strex   %1, %0, [%3]\n"
+ "     teq     %1, #0\n"
+ "     bne     1b"
+-      : "=&r" (result), "=&r" (tmp)
++      : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter)
+       : "r" (&v->counter), "Ir" (i)
+       : "cc");
+ }
+@@ -96,12 +96,12 @@ static inline int atomic_sub_return(int i, atomic_t *v)
+       smp_mb();
+       __asm__ __volatile__("@ atomic_sub_return\n"
+-"1:   ldrex   %0, [%2]\n"
+-"     sub     %0, %0, %3\n"
+-"     strex   %1, %0, [%2]\n"
++"1:   ldrex   %0, [%3]\n"
++"     sub     %0, %0, %4\n"
++"     strex   %1, %0, [%3]\n"
+ "     teq     %1, #0\n"
+ "     bne     1b"
+-      : "=&r" (result), "=&r" (tmp)
++      : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter)
+       : "r" (&v->counter), "Ir" (i)
+       : "cc");
+@@ -118,11 +118,11 @@ static inline int atomic_cmpxchg(atomic_t *ptr, int old, int new)
+       do {
+               __asm__ __volatile__("@ atomic_cmpxchg\n"
+-              "ldrex  %1, [%2]\n"
++              "ldrex  %1, [%3]\n"
+               "mov    %0, #0\n"
+-              "teq    %1, %3\n"
+-              "strexeq %0, %4, [%2]\n"
+-                  : "=&r" (res), "=&r" (oldval)
++              "teq    %1, %4\n"
++              "strexeq %0, %5, [%3]\n"
++                  : "=&r" (res), "=&r" (oldval), "+Qo" (ptr->counter)
+                   : "r" (&ptr->counter), "Ir" (old), "r" (new)
+                   : "cc");
+       } while (res);
+@@ -137,12 +137,12 @@ static inline void atomic_clear_mask(unsigned long mask, unsigned long *addr)
+       unsigned long tmp, tmp2;
+       __asm__ __volatile__("@ atomic_clear_mask\n"
+-"1:   ldrex   %0, [%2]\n"
+-"     bic     %0, %0, %3\n"
+-"     strex   %1, %0, [%2]\n"
++"1:   ldrex   %0, [%3]\n"
++"     bic     %0, %0, %4\n"
++"     strex   %1, %0, [%3]\n"
+ "     teq     %1, #0\n"
+ "     bne     1b"
+-      : "=&r" (tmp), "=&r" (tmp2)
++      : "=&r" (tmp), "=&r" (tmp2), "+Qo" (*addr)
+       : "r" (addr), "Ir" (mask)
+       : "cc");
+ }
+@@ -249,7 +249,7 @@ static inline u64 atomic64_read(atomic64_t *v)
+       __asm__ __volatile__("@ atomic64_read\n"
+ "     ldrexd  %0, %H0, [%1]"
+       : "=&r" (result)
+-      : "r" (&v->counter)
++      : "r" (&v->counter), "Qo" (v->counter)
+       );
+       return result;
+@@ -260,11 +260,11 @@ static inline void atomic64_set(atomic64_t *v, u64 i)
+       u64 tmp;
+       __asm__ __volatile__("@ atomic64_set\n"
+-"1:   ldrexd  %0, %H0, [%1]\n"
+-"     strexd  %0, %2, %H2, [%1]\n"
++"1:   ldrexd  %0, %H0, [%2]\n"
++"     strexd  %0, %3, %H3, [%2]\n"
+ "     teq     %0, #0\n"
+ "     bne     1b"
+-      : "=&r" (tmp)
++      : "=&r" (tmp), "=Qo" (v->counter)
+       : "r" (&v->counter), "r" (i)
+       : "cc");
+ }
+@@ -275,13 +275,13 @@ static inline void atomic64_add(u64 i, atomic64_t *v)
+       unsigned long tmp;
+       __asm__ __volatile__("@ atomic64_add\n"
+-"1:   ldrexd  %0, %H0, [%2]\n"
+-"     adds    %0, %0, %3\n"
+-"     adc     %H0, %H0, %H3\n"
+-"     strexd  %1, %0, %H0, [%2]\n"
++"1:   ldrexd  %0, %H0, [%3]\n"
++"     adds    %0, %0, %4\n"
++"     adc     %H0, %H0, %H4\n"
++"     strexd  %1, %0, %H0, [%3]\n"
+ "     teq     %1, #0\n"
+ "     bne     1b"
+-      : "=&r" (result), "=&r" (tmp)
++      : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter)
+       : "r" (&v->counter), "r" (i)
+       : "cc");
+ }
+@@ -294,13 +294,13 @@ static inline u64 atomic64_add_return(u64 i, atomic64_t *v)
+       smp_mb();
+       __asm__ __volatile__("@ atomic64_add_return\n"
+-"1:   ldrexd  %0, %H0, [%2]\n"
+-"     adds    %0, %0, %3\n"
+-"     adc     %H0, %H0, %H3\n"
+-"     strexd  %1, %0, %H0, [%2]\n"
++"1:   ldrexd  %0, %H0, [%3]\n"
++"     adds    %0, %0, %4\n"
++"     adc     %H0, %H0, %H4\n"
++"     strexd  %1, %0, %H0, [%3]\n"
+ "     teq     %1, #0\n"
+ "     bne     1b"
+-      : "=&r" (result), "=&r" (tmp)
++      : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter)
+       : "r" (&v->counter), "r" (i)
+       : "cc");
+@@ -315,13 +315,13 @@ static inline void atomic64_sub(u64 i, atomic64_t *v)
+       unsigned long tmp;
+       __asm__ __volatile__("@ atomic64_sub\n"
+-"1:   ldrexd  %0, %H0, [%2]\n"
+-"     subs    %0, %0, %3\n"
+-"     sbc     %H0, %H0, %H3\n"
+-"     strexd  %1, %0, %H0, [%2]\n"
++"1:   ldrexd  %0, %H0, [%3]\n"
++"     subs    %0, %0, %4\n"
++"     sbc     %H0, %H0, %H4\n"
++"     strexd  %1, %0, %H0, [%3]\n"
+ "     teq     %1, #0\n"
+ "     bne     1b"
+-      : "=&r" (result), "=&r" (tmp)
++      : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter)
+       : "r" (&v->counter), "r" (i)
+       : "cc");
+ }
+@@ -334,13 +334,13 @@ static inline u64 atomic64_sub_return(u64 i, atomic64_t *v)
+       smp_mb();
+       __asm__ __volatile__("@ atomic64_sub_return\n"
+-"1:   ldrexd  %0, %H0, [%2]\n"
+-"     subs    %0, %0, %3\n"
+-"     sbc     %H0, %H0, %H3\n"
+-"     strexd  %1, %0, %H0, [%2]\n"
++"1:   ldrexd  %0, %H0, [%3]\n"
++"     subs    %0, %0, %4\n"
++"     sbc     %H0, %H0, %H4\n"
++"     strexd  %1, %0, %H0, [%3]\n"
+ "     teq     %1, #0\n"
+ "     bne     1b"
+-      : "=&r" (result), "=&r" (tmp)
++      : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter)
+       : "r" (&v->counter), "r" (i)
+       : "cc");
+@@ -358,12 +358,12 @@ static inline u64 atomic64_cmpxchg(atomic64_t *ptr, u64 old, u64 new)
+       do {
+               __asm__ __volatile__("@ atomic64_cmpxchg\n"
+-              "ldrexd         %1, %H1, [%2]\n"
++              "ldrexd         %1, %H1, [%3]\n"
+               "mov            %0, #0\n"
+-              "teq            %1, %3\n"
+-              "teqeq          %H1, %H3\n"
+-              "strexdeq       %0, %4, %H4, [%2]"
+-              : "=&r" (res), "=&r" (oldval)
++              "teq            %1, %4\n"
++              "teqeq          %H1, %H4\n"
++              "strexdeq       %0, %5, %H5, [%3]"
++              : "=&r" (res), "=&r" (oldval), "+Qo" (ptr->counter)
+               : "r" (&ptr->counter), "r" (old), "r" (new)
+               : "cc");
+       } while (res);
+@@ -381,11 +381,11 @@ static inline u64 atomic64_xchg(atomic64_t *ptr, u64 new)
+       smp_mb();
+       __asm__ __volatile__("@ atomic64_xchg\n"
+-"1:   ldrexd  %0, %H0, [%2]\n"
+-"     strexd  %1, %3, %H3, [%2]\n"
++"1:   ldrexd  %0, %H0, [%3]\n"
++"     strexd  %1, %4, %H4, [%3]\n"
+ "     teq     %1, #0\n"
+ "     bne     1b"
+-      : "=&r" (result), "=&r" (tmp)
++      : "=&r" (result), "=&r" (tmp), "+Qo" (ptr->counter)
+       : "r" (&ptr->counter), "r" (new)
+       : "cc");
+@@ -402,16 +402,16 @@ static inline u64 atomic64_dec_if_positive(atomic64_t *v)
+       smp_mb();
+       __asm__ __volatile__("@ atomic64_dec_if_positive\n"
+-"1:   ldrexd  %0, %H0, [%2]\n"
++"1:   ldrexd  %0, %H0, [%3]\n"
+ "     subs    %0, %0, #1\n"
+ "     sbc     %H0, %H0, #0\n"
+ "     teq     %H0, #0\n"
+ "     bmi     2f\n"
+-"     strexd  %1, %0, %H0, [%2]\n"
++"     strexd  %1, %0, %H0, [%3]\n"
+ "     teq     %1, #0\n"
+ "     bne     1b\n"
+ "2:"
+-      : "=&r" (result), "=&r" (tmp)
++      : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter)
+       : "r" (&v->counter)
+       : "cc");
+@@ -429,18 +429,18 @@ static inline int atomic64_add_unless(atomic64_t *v, u64 a, u64 u)
+       smp_mb();
+       __asm__ __volatile__("@ atomic64_add_unless\n"
+-"1:   ldrexd  %0, %H0, [%3]\n"
+-"     teq     %0, %4\n"
+-"     teqeq   %H0, %H4\n"
++"1:   ldrexd  %0, %H0, [%4]\n"
++"     teq     %0, %5\n"
++"     teqeq   %H0, %H5\n"
+ "     moveq   %1, #0\n"
+ "     beq     2f\n"
+-"     adds    %0, %0, %5\n"
+-"     adc     %H0, %H0, %H5\n"
+-"     strexd  %2, %0, %H0, [%3]\n"
++"     adds    %0, %0, %6\n"
++"     adc     %H0, %H0, %H6\n"
++"     strexd  %2, %0, %H0, [%4]\n"
+ "     teq     %2, #0\n"
+ "     bne     1b\n"
+ "2:"
+-      : "=&r" (val), "+r" (ret), "=&r" (tmp)
++      : "=&r" (val), "+r" (ret), "=&r" (tmp), "+Qo" (v->counter)
+       : "r" (&v->counter), "r" (u), "r" (a)
+       : "cc");
+-- 
+1.7.6.2
+
diff --git a/src/patches/linux-2.6.25.18-not_report_sysctl_1.23.patch b/src/patches/linux-2.6.25.18-not_report_sysctl_1.23.patch
deleted file mode 100644 (file)
index 7419c05..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -Naur linux-2.6.25.18.org/kernel/sysctl.c linux-2.6.25.18/kernel/sysctl.c
---- linux-2.6.25.18.org/kernel/sysctl.c        2008-10-09 04:58:32.000000000 +0200
-+++ linux-2.6.25.18/kernel/sysctl.c    2008-10-10 18:03:33.000000000 +0200
-@@ -2807,6 +2807,10 @@
-       if ((args->nlen == 2) && (name[0] == CTL_KERN) && (name[1] == KERN_VERSION))
-               return 0;
-+      /* Ignore kudzu syscall 1.23 */
-+      if ((args->nlen == 2) && (name[0] == 1) && (name[1] == 23))
-+              return 0;
-+
-       if (msg_count < 5) {
-               msg_count++;
-               printk(KERN_INFO
diff --git a/src/patches/linux-2.6.32-crypto-mv_cesa.patch b/src/patches/linux-2.6.32-crypto-mv_cesa.patch
new file mode 100644 (file)
index 0000000..cc85d52
--- /dev/null
@@ -0,0 +1,647 @@
+From 0328ac267564089d9cedfb568f936d30a6debd21 Mon Sep 17 00:00:00 2001
+From: Uri Simchoni <uri@jdland.co.il>
+Date: Thu, 8 Apr 2010 19:25:37 +0300
+Subject: [PATCH] crypto: mv_cesa - Invoke the user callback from a softirq
+ context
+
+Invoke the user callback from a softirq context
+
+Signed-off-by: Uri Simchoni <uri@jdland.co.il>
+Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
+---
+ drivers/crypto/mv_cesa.c |    2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+diff --git a/drivers/crypto/mv_cesa.c b/drivers/crypto/mv_cesa.c
+index b21ef63..3e60ba9 100644
+--- a/drivers/crypto/mv_cesa.c
++++ b/drivers/crypto/mv_cesa.c
+@@ -275,7 +275,9 @@ static void dequeue_complete_req(void)
+               sg_miter_stop(&cpg->p.dst_sg_it);
+               mv_crypto_algo_completion();
+               cpg->eng_st = ENGINE_IDLE;
++              local_bh_disable();
+               req->base.complete(&req->base, 0);
++              local_bh_enable();
+       }
+ }
+-- 
+1.7.6.5
+From 6bc6fcd609080461682c5cc0a1e3bf4345d6419d Mon Sep 17 00:00:00 2001
+From: Uri Simchoni <uri@jdland.co.il>
+Date: Thu, 8 Apr 2010 19:25:56 +0300
+Subject: [PATCH] crypto: mv_cesa - Remove compiler warning in mv_cesa driver
+
+Remove compiler warning
+
+Signed-off-by: Uri Simchoni <uri@jdland.co.il>
+Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
+---
+ drivers/crypto/mv_cesa.c |    1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+diff --git a/drivers/crypto/mv_cesa.c b/drivers/crypto/mv_cesa.c
+index 3e60ba9..37d9f06 100644
+--- a/drivers/crypto/mv_cesa.c
++++ b/drivers/crypto/mv_cesa.c
+@@ -178,6 +178,7 @@ static void mv_process_current_q(int first_block)
+               op.config = CFG_OP_CRYPT_ONLY | CFG_ENCM_AES | CFG_ENC_MODE_ECB;
+               break;
+       case COP_AES_CBC:
++      default:
+               op.config = CFG_OP_CRYPT_ONLY | CFG_ENCM_AES | CFG_ENC_MODE_CBC;
+               op.enc_iv = ENC_IV_POINT(SRAM_DATA_IV) |
+                       ENC_IV_BUF_POINT(SRAM_DATA_IV_BUF);
+-- 
+1.7.6.5
+X-Git-Url: http://git.kernelconcepts.de/?p=mv-sheeva.git;a=blobdiff_plain;f=drivers%2Fcrypto%2Fmv_cesa.c;h=018a95ce0c9b0d6e6a13bff1522630799bc445b3;hp=37d9f0688e7575a3e366f6bb9eda5adc5db807b5;hb=f565e67ec1b8f4a95d21550f9b879fe86b4132e0;hpb=6bc6fcd609080461682c5cc0a1e3bf4345d6419d
+
+diff --git a/drivers/crypto/mv_cesa.c b/drivers/crypto/mv_cesa.c
+index 37d9f06..018a95c 100644
+--- a/drivers/crypto/mv_cesa.c
++++ b/drivers/crypto/mv_cesa.c
+@@ -242,6 +242,8 @@ static void dequeue_complete_req(void)
+       struct ablkcipher_request *req = cpg->cur_req;
+       void *buf;
+       int ret;
++      int need_copy_len = cpg->p.crypt_len;
++      int sram_offset = 0;
+       cpg->p.total_req_bytes += cpg->p.crypt_len;
+       do {
+@@ -257,14 +259,16 @@ static void dequeue_complete_req(void)
+               buf = cpg->p.dst_sg_it.addr;
+               buf += cpg->p.dst_start;
+-              dst_copy = min(cpg->p.crypt_len, cpg->p.sg_dst_left);
+-
+-              memcpy(buf, cpg->sram + SRAM_DATA_OUT_START, dst_copy);
++              dst_copy = min(need_copy_len, cpg->p.sg_dst_left);
++              memcpy(buf,
++                     cpg->sram + SRAM_DATA_OUT_START + sram_offset,
++                     dst_copy);
++              sram_offset += dst_copy;
+               cpg->p.sg_dst_left -= dst_copy;
+-              cpg->p.crypt_len -= dst_copy;
++              need_copy_len -= dst_copy;
+               cpg->p.dst_start += dst_copy;
+-      } while (cpg->p.crypt_len > 0);
++      } while (need_copy_len > 0);
+       BUG_ON(cpg->eng_st != ENGINE_W_DEQUEUE);
+       if (cpg->p.total_req_bytes < req->nbytes) {
+From 15d4dd3594221f11a7730fcf2d5f9942b96cdd7e Mon Sep 17 00:00:00 2001
+From: Uri Simchoni <uri@jdland.co.il>
+Date: Thu, 8 Apr 2010 19:27:02 +0300
+Subject: [PATCH] crypto: mv_cesa - Fix situations where the src sglist spans
+ more data than the request asks for
+
+Fix for situations where the source scatterlist spans more data than the
+request nbytes
+
+Signed-off-by: Uri Simchoni <uri@jdland.co.il>
+Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
+---
+ drivers/crypto/mv_cesa.c |   66 ++++++++++++++++++++++++++++++---------------
+ 1 files changed, 44 insertions(+), 22 deletions(-)
+
+diff --git a/drivers/crypto/mv_cesa.c b/drivers/crypto/mv_cesa.c
+index 018a95c..096f9ff 100644
+--- a/drivers/crypto/mv_cesa.c
++++ b/drivers/crypto/mv_cesa.c
+@@ -143,27 +143,45 @@ static int mv_setkey_aes(struct crypto_ablkcipher *cipher, const u8 *key,
+       return 0;
+ }
+-static void setup_data_in(struct ablkcipher_request *req)
++static void copy_src_to_buf(struct req_progress *p, char *dbuf, int len)
+ {
+       int ret;
+-      void *buf;
+-
+-      if (!cpg->p.sg_src_left) {
+-              ret = sg_miter_next(&cpg->p.src_sg_it);
+-              BUG_ON(!ret);
+-              cpg->p.sg_src_left = cpg->p.src_sg_it.length;
+-              cpg->p.src_start = 0;
+-      }
++      void *sbuf;
++      int copied = 0;
+-      cpg->p.crypt_len = min(cpg->p.sg_src_left, cpg->max_req_size);
+-
+-      buf = cpg->p.src_sg_it.addr;
+-      buf += cpg->p.src_start;
++      while (1) {
++              if (!p->sg_src_left) {
++                      ret = sg_miter_next(&p->src_sg_it);
++                      BUG_ON(!ret);
++                      p->sg_src_left = p->src_sg_it.length;
++                      p->src_start = 0;
++              }
+-      memcpy(cpg->sram + SRAM_DATA_IN_START, buf, cpg->p.crypt_len);
++              sbuf = p->src_sg_it.addr + p->src_start;
++
++              if (p->sg_src_left <= len - copied) {
++                      memcpy(dbuf + copied, sbuf, p->sg_src_left);
++                      copied += p->sg_src_left;
++                      p->sg_src_left = 0;
++                      if (copied >= len)
++                              break;
++              } else {
++                      int copy_len = len - copied;
++                      memcpy(dbuf + copied, sbuf, copy_len);
++                      p->src_start += copy_len;
++                      p->sg_src_left -= copy_len;
++                      break;
++              }
++      }
++}
+-      cpg->p.sg_src_left -= cpg->p.crypt_len;
+-      cpg->p.src_start += cpg->p.crypt_len;
++static void setup_data_in(struct ablkcipher_request *req)
++{
++      struct req_progress *p = &cpg->p;
++      p->crypt_len =
++          min((int)req->nbytes - p->total_req_bytes, cpg->max_req_size);
++      copy_src_to_buf(p, cpg->sram + SRAM_DATA_IN_START,
++                      p->crypt_len);
+ }
+ static void mv_process_current_q(int first_block)
+@@ -289,12 +307,16 @@ static void dequeue_complete_req(void)
+ static int count_sgs(struct scatterlist *sl, unsigned int total_bytes)
+ {
+       int i = 0;
+-
+-      do {
+-              total_bytes -= sl[i].length;
+-              i++;
+-
+-      } while (total_bytes > 0);
++      size_t cur_len;
++
++      while (1) {
++              cur_len = sl[i].length;
++              ++i;
++              if (total_bytes > cur_len)
++                      total_bytes -= cur_len;
++              else
++                      break;
++      }
+       return i;
+ }
+-- 
+1.7.6.5
+From 3b61a90502481045f56c1c41a2af35ee48ca8b80 Mon Sep 17 00:00:00 2001
+From: Uri Simchoni <uri@jdland.co.il>
+Date: Thu, 8 Apr 2010 19:27:33 +0300
+Subject: [PATCH] crypto: mv_cesa - Enqueue generic async requests
+
+Enqueue generic async requests rather than ablkcipher requests
+in the driver's queue
+
+Signed-off-by: Uri Simchoni <uri@jdland.co.il>
+Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
+---
+ drivers/crypto/mv_cesa.c |   43 ++++++++++++++++++++++++-------------------
+ 1 files changed, 24 insertions(+), 19 deletions(-)
+
+diff --git a/drivers/crypto/mv_cesa.c b/drivers/crypto/mv_cesa.c
+index 096f9ff..8891e2e 100644
+--- a/drivers/crypto/mv_cesa.c
++++ b/drivers/crypto/mv_cesa.c
+@@ -39,6 +39,7 @@ enum engine_status {
+  * @sg_src_left:      bytes left in src to process (scatter list)
+  * @src_start:                offset to add to src start position (scatter list)
+  * @crypt_len:                length of current crypt process
++ * @hw_nbytes:                total bytes to process in hw for this request
+  * @sg_dst_left:      bytes left dst to process in this scatter list
+  * @dst_start:                offset to add to dst start position (scatter list)
+  * @total_req_bytes:  total number of bytes processed (request).
+@@ -55,6 +56,7 @@ struct req_progress {
+       int sg_src_left;
+       int src_start;
+       int crypt_len;
++      int hw_nbytes;
+       /* dst mostly */
+       int sg_dst_left;
+       int dst_start;
+@@ -71,7 +73,7 @@ struct crypto_priv {
+       spinlock_t lock;
+       struct crypto_queue queue;
+       enum engine_status eng_st;
+-      struct ablkcipher_request *cur_req;
++      struct crypto_async_request *cur_req;
+       struct req_progress p;
+       int max_req_size;
+       int sram_size;
+@@ -175,18 +177,18 @@ static void copy_src_to_buf(struct req_progress *p, char *dbuf, int len)
+       }
+ }
+-static void setup_data_in(struct ablkcipher_request *req)
++static void setup_data_in(void)
+ {
+       struct req_progress *p = &cpg->p;
+       p->crypt_len =
+-          min((int)req->nbytes - p->total_req_bytes, cpg->max_req_size);
++          min(p->hw_nbytes - p->total_req_bytes, cpg->max_req_size);
+       copy_src_to_buf(p, cpg->sram + SRAM_DATA_IN_START,
+                       p->crypt_len);
+ }
+ static void mv_process_current_q(int first_block)
+ {
+-      struct ablkcipher_request *req = cpg->cur_req;
++      struct ablkcipher_request *req = ablkcipher_request_cast(cpg->cur_req);
+       struct mv_ctx *ctx = crypto_tfm_ctx(req->base.tfm);
+       struct mv_req_ctx *req_ctx = ablkcipher_request_ctx(req);
+       struct sec_accel_config op;
+@@ -229,7 +231,7 @@ static void mv_process_current_q(int first_block)
+               ENC_P_DST(SRAM_DATA_OUT_START);
+       op.enc_key_p = SRAM_DATA_KEY_P;
+-      setup_data_in(req);
++      setup_data_in();
+       op.enc_len = cpg->p.crypt_len;
+       memcpy(cpg->sram + SRAM_CONFIG, &op,
+                       sizeof(struct sec_accel_config));
+@@ -246,7 +248,7 @@ static void mv_process_current_q(int first_block)
+ static void mv_crypto_algo_completion(void)
+ {
+-      struct ablkcipher_request *req = cpg->cur_req;
++      struct ablkcipher_request *req = ablkcipher_request_cast(cpg->cur_req);
+       struct mv_req_ctx *req_ctx = ablkcipher_request_ctx(req);
+       if (req_ctx->op != COP_AES_CBC)
+@@ -257,7 +259,7 @@ static void mv_crypto_algo_completion(void)
+ static void dequeue_complete_req(void)
+ {
+-      struct ablkcipher_request *req = cpg->cur_req;
++      struct crypto_async_request *req = cpg->cur_req;
+       void *buf;
+       int ret;
+       int need_copy_len = cpg->p.crypt_len;
+@@ -289,7 +291,7 @@ static void dequeue_complete_req(void)
+       } while (need_copy_len > 0);
+       BUG_ON(cpg->eng_st != ENGINE_W_DEQUEUE);
+-      if (cpg->p.total_req_bytes < req->nbytes) {
++      if (cpg->p.total_req_bytes < cpg->p.hw_nbytes) {
+               /* process next scatter list entry */
+               cpg->eng_st = ENGINE_BUSY;
+               mv_process_current_q(0);
+@@ -299,7 +301,7 @@ static void dequeue_complete_req(void)
+               mv_crypto_algo_completion();
+               cpg->eng_st = ENGINE_IDLE;
+               local_bh_disable();
+-              req->base.complete(&req->base, 0);
++              req->complete(req, 0);
+               local_bh_enable();
+       }
+ }
+@@ -323,16 +325,19 @@ static int count_sgs(struct scatterlist *sl, unsigned int total_bytes)
+ static void mv_enqueue_new_req(struct ablkcipher_request *req)
+ {
++      struct req_progress *p = &cpg->p;
+       int num_sgs;
+-      cpg->cur_req = req;
+-      memset(&cpg->p, 0, sizeof(struct req_progress));
++      cpg->cur_req = &req->base;
++      memset(p, 0, sizeof(struct req_progress));
++      p->hw_nbytes = req->nbytes;
+       num_sgs = count_sgs(req->src, req->nbytes);
+-      sg_miter_start(&cpg->p.src_sg_it, req->src, num_sgs, SG_MITER_FROM_SG);
++      sg_miter_start(&p->src_sg_it, req->src, num_sgs, SG_MITER_FROM_SG);
+       num_sgs = count_sgs(req->dst, req->nbytes);
+-      sg_miter_start(&cpg->p.dst_sg_it, req->dst, num_sgs, SG_MITER_TO_SG);
++      sg_miter_start(&p->dst_sg_it, req->dst, num_sgs, SG_MITER_TO_SG);
++
+       mv_process_current_q(1);
+ }
+@@ -378,13 +383,13 @@ static int queue_manag(void *data)
+       return 0;
+ }
+-static int mv_handle_req(struct ablkcipher_request *req)
++static int mv_handle_req(struct crypto_async_request *req)
+ {
+       unsigned long flags;
+       int ret;
+       spin_lock_irqsave(&cpg->lock, flags);
+-      ret = ablkcipher_enqueue_request(&cpg->queue, req);
++      ret = crypto_enqueue_request(&cpg->queue, req);
+       spin_unlock_irqrestore(&cpg->lock, flags);
+       wake_up_process(cpg->queue_th);
+       return ret;
+@@ -397,7 +402,7 @@ static int mv_enc_aes_ecb(struct ablkcipher_request *req)
+       req_ctx->op = COP_AES_ECB;
+       req_ctx->decrypt = 0;
+-      return mv_handle_req(req);
++      return mv_handle_req(&req->base);
+ }
+ static int mv_dec_aes_ecb(struct ablkcipher_request *req)
+@@ -409,7 +414,7 @@ static int mv_dec_aes_ecb(struct ablkcipher_request *req)
+       req_ctx->decrypt = 1;
+       compute_aes_dec_key(ctx);
+-      return mv_handle_req(req);
++      return mv_handle_req(&req->base);
+ }
+ static int mv_enc_aes_cbc(struct ablkcipher_request *req)
+@@ -419,7 +424,7 @@ static int mv_enc_aes_cbc(struct ablkcipher_request *req)
+       req_ctx->op = COP_AES_CBC;
+       req_ctx->decrypt = 0;
+-      return mv_handle_req(req);
++      return mv_handle_req(&req->base);
+ }
+ static int mv_dec_aes_cbc(struct ablkcipher_request *req)
+@@ -431,7 +436,7 @@ static int mv_dec_aes_cbc(struct ablkcipher_request *req)
+       req_ctx->decrypt = 1;
+       compute_aes_dec_key(ctx);
+-      return mv_handle_req(req);
++      return mv_handle_req(&req->base);
+ }
+ static int mv_cra_init(struct crypto_tfm *tfm)
+-- 
+1.7.6.5
+From 7a5f691ef03f4c01d2703b5ec4ddd4c17e645dec Mon Sep 17 00:00:00 2001
+From: Uri Simchoni <uri@jdland.co.il>
+Date: Thu, 8 Apr 2010 19:29:16 +0300
+Subject: [PATCH] crypto: mv_cesa - Rename a variable to a more suitable name
+
+Rename a variable to a more suitable name
+
+Signed-off-by: Uri Simchoni <uri@jdland.co.il>
+Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
+---
+ drivers/crypto/mv_cesa.c |   10 +++++-----
+ 1 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/drivers/crypto/mv_cesa.c b/drivers/crypto/mv_cesa.c
+index 8891e2e..4262932 100644
+--- a/drivers/crypto/mv_cesa.c
++++ b/drivers/crypto/mv_cesa.c
+@@ -42,7 +42,7 @@ enum engine_status {
+  * @hw_nbytes:                total bytes to process in hw for this request
+  * @sg_dst_left:      bytes left dst to process in this scatter list
+  * @dst_start:                offset to add to dst start position (scatter list)
+- * @total_req_bytes:  total number of bytes processed (request).
++ * @hw_processed_bytes:       number of bytes processed by hw (request).
+  *
+  * sg helper are used to iterate over the scatterlist. Since the size of the
+  * SRAM may be less than the scatter size, this struct struct is used to keep
+@@ -60,7 +60,7 @@ struct req_progress {
+       /* dst mostly */
+       int sg_dst_left;
+       int dst_start;
+-      int total_req_bytes;
++      int hw_processed_bytes;
+ };
+ struct crypto_priv {
+@@ -181,7 +181,7 @@ static void setup_data_in(void)
+ {
+       struct req_progress *p = &cpg->p;
+       p->crypt_len =
+-          min(p->hw_nbytes - p->total_req_bytes, cpg->max_req_size);
++          min(p->hw_nbytes - p->hw_processed_bytes, cpg->max_req_size);
+       copy_src_to_buf(p, cpg->sram + SRAM_DATA_IN_START,
+                       p->crypt_len);
+ }
+@@ -265,7 +265,7 @@ static void dequeue_complete_req(void)
+       int need_copy_len = cpg->p.crypt_len;
+       int sram_offset = 0;
+-      cpg->p.total_req_bytes += cpg->p.crypt_len;
++      cpg->p.hw_processed_bytes += cpg->p.crypt_len;
+       do {
+               int dst_copy;
+@@ -291,7 +291,7 @@ static void dequeue_complete_req(void)
+       } while (need_copy_len > 0);
+       BUG_ON(cpg->eng_st != ENGINE_W_DEQUEUE);
+-      if (cpg->p.total_req_bytes < cpg->p.hw_nbytes) {
++      if (cpg->p.hw_processed_bytes < cpg->p.hw_nbytes) {
+               /* process next scatter list entry */
+               cpg->eng_st = ENGINE_BUSY;
+               mv_process_current_q(0);
+-- 
+1.6.5.GIT
+From a58094ac5f95d6969e5c52ff096d2fd2864542af Mon Sep 17 00:00:00 2001
+From: Uri Simchoni <uri@jdland.co.il>
+Date: Thu, 8 Apr 2010 19:30:19 +0300
+Subject: [PATCH] crypto: mv_cesa - Execute some code via function pointers
+ rathr than direct calls
+
+Execute some code via function pointers rathr than direct calls
+(to allow customization in the hashing request)
+
+Signed-off-by: Uri Simchoni <uri@jdland.co.il>
+Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
+---
+ drivers/crypto/mv_cesa.c |   13 +++++++++----
+ 1 files changed, 9 insertions(+), 4 deletions(-)
+
+diff --git a/drivers/crypto/mv_cesa.c b/drivers/crypto/mv_cesa.c
+index 4262932..2b4f07a 100644
+--- a/drivers/crypto/mv_cesa.c
++++ b/drivers/crypto/mv_cesa.c
+@@ -51,6 +51,8 @@ enum engine_status {
+ struct req_progress {
+       struct sg_mapping_iter src_sg_it;
+       struct sg_mapping_iter dst_sg_it;
++      void (*complete) (void);
++      void (*process) (int is_first);
+       /* src mostly */
+       int sg_src_left;
+@@ -251,6 +253,9 @@ static void mv_crypto_algo_completion(void)
+       struct ablkcipher_request *req = ablkcipher_request_cast(cpg->cur_req);
+       struct mv_req_ctx *req_ctx = ablkcipher_request_ctx(req);
++      sg_miter_stop(&cpg->p.src_sg_it);
++      sg_miter_stop(&cpg->p.dst_sg_it);
++
+       if (req_ctx->op != COP_AES_CBC)
+               return ;
+@@ -294,11 +299,9 @@ static void dequeue_complete_req(void)
+       if (cpg->p.hw_processed_bytes < cpg->p.hw_nbytes) {
+               /* process next scatter list entry */
+               cpg->eng_st = ENGINE_BUSY;
+-              mv_process_current_q(0);
++              cpg->p.process(0);
+       } else {
+-              sg_miter_stop(&cpg->p.src_sg_it);
+-              sg_miter_stop(&cpg->p.dst_sg_it);
+-              mv_crypto_algo_completion();
++              cpg->p.complete();
+               cpg->eng_st = ENGINE_IDLE;
+               local_bh_disable();
+               req->complete(req, 0);
+@@ -331,6 +334,8 @@ static void mv_enqueue_new_req(struct ablkcipher_request *req)
+       cpg->cur_req = &req->base;
+       memset(p, 0, sizeof(struct req_progress));
+       p->hw_nbytes = req->nbytes;
++      p->complete = mv_crypto_algo_completion;
++      p->process = mv_process_current_q;
+       num_sgs = count_sgs(req->src, req->nbytes);
+       sg_miter_start(&p->src_sg_it, req->src, num_sgs, SG_MITER_FROM_SG);
+-- 
+1.7.6.5
+X-Git-Url: http://git.kernelconcepts.de/?p=mv-sheeva.git;a=blobdiff_plain;f=drivers%2Fcrypto%2Fmv_cesa.c;h=49a22060fb51a46afff004ddade3dacf378aecd8;hp=2b4f07aa89e8ba7422de65eea027e06daa5f7797;hb=f0d03deaad05d9cc99cd2ee0475c9ecd726c19ae;hpb=a58094ac5f95d6969e5c52ff096d2fd2864542af
+
+diff --git a/drivers/crypto/mv_cesa.c b/drivers/crypto/mv_cesa.c
+index 2b4f07a..49a2206 100644
+--- a/drivers/crypto/mv_cesa.c
++++ b/drivers/crypto/mv_cesa.c
+@@ -40,6 +40,7 @@ enum engine_status {
+  * @src_start:                offset to add to src start position (scatter list)
+  * @crypt_len:                length of current crypt process
+  * @hw_nbytes:                total bytes to process in hw for this request
++ * @copy_back:                whether to copy data back (crypt) or not (hash)
+  * @sg_dst_left:      bytes left dst to process in this scatter list
+  * @dst_start:                offset to add to dst start position (scatter list)
+  * @hw_processed_bytes:       number of bytes processed by hw (request).
+@@ -60,6 +61,7 @@ struct req_progress {
+       int crypt_len;
+       int hw_nbytes;
+       /* dst mostly */
++      int copy_back;
+       int sg_dst_left;
+       int dst_start;
+       int hw_processed_bytes;
+@@ -267,33 +269,35 @@ static void dequeue_complete_req(void)
+       struct crypto_async_request *req = cpg->cur_req;
+       void *buf;
+       int ret;
+-      int need_copy_len = cpg->p.crypt_len;
+-      int sram_offset = 0;
+-
+       cpg->p.hw_processed_bytes += cpg->p.crypt_len;
+-      do {
+-              int dst_copy;
++      if (cpg->p.copy_back) {
++              int need_copy_len = cpg->p.crypt_len;
++              int sram_offset = 0;
++              do {
++                      int dst_copy;
++
++                      if (!cpg->p.sg_dst_left) {
++                              ret = sg_miter_next(&cpg->p.dst_sg_it);
++                              BUG_ON(!ret);
++                              cpg->p.sg_dst_left = cpg->p.dst_sg_it.length;
++                              cpg->p.dst_start = 0;
++                      }
+-              if (!cpg->p.sg_dst_left) {
+-                      ret = sg_miter_next(&cpg->p.dst_sg_it);
+-                      BUG_ON(!ret);
+-                      cpg->p.sg_dst_left = cpg->p.dst_sg_it.length;
+-                      cpg->p.dst_start = 0;
+-              }
++                      buf = cpg->p.dst_sg_it.addr;
++                      buf += cpg->p.dst_start;
+-              buf = cpg->p.dst_sg_it.addr;
+-              buf += cpg->p.dst_start;
++                      dst_copy = min(need_copy_len, cpg->p.sg_dst_left);
+-              dst_copy = min(need_copy_len, cpg->p.sg_dst_left);
++                      memcpy(buf,
++                             cpg->sram + SRAM_DATA_OUT_START + sram_offset,
++                             dst_copy);
++                      sram_offset += dst_copy;
++                      cpg->p.sg_dst_left -= dst_copy;
++                      need_copy_len -= dst_copy;
++                      cpg->p.dst_start += dst_copy;
++              } while (need_copy_len > 0);
++      }
+-              memcpy(buf,
+-                     cpg->sram + SRAM_DATA_OUT_START + sram_offset,
+-                     dst_copy);
+-              sram_offset += dst_copy;
+-              cpg->p.sg_dst_left -= dst_copy;
+-              need_copy_len -= dst_copy;
+-              cpg->p.dst_start += dst_copy;
+-      } while (need_copy_len > 0);
+       BUG_ON(cpg->eng_st != ENGINE_W_DEQUEUE);
+       if (cpg->p.hw_processed_bytes < cpg->p.hw_nbytes) {
+@@ -336,6 +340,7 @@ static void mv_enqueue_new_req(struct ablkcipher_request *req)
+       p->hw_nbytes = req->nbytes;
+       p->complete = mv_crypto_algo_completion;
+       p->process = mv_process_current_q;
++      p->copy_back = 1;
+       num_sgs = count_sgs(req->src, req->nbytes);
+       sg_miter_start(&p->src_sg_it, req->src, num_sgs, SG_MITER_FROM_SG);
+From 0c5c6c4bae8fe9ae3d86b44c332eb1267df1ec99 Mon Sep 17 00:00:00 2001
+From: Uri Simchoni <uri@jdland.co.il>
+Date: Thu, 8 Apr 2010 19:33:26 +0300
+Subject: [PATCH] crypto: mv_cesa - Support processing of data from previous
+ requests
+
+Support processing of data from previous requests (as in hashing
+update/final requests).
+
+Signed-off-by: Uri Simchoni <uri@jdland.co.il>
+Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
+---
+ drivers/crypto/mv_cesa.c |    8 +++++---
+ 1 files changed, 5 insertions(+), 3 deletions(-)
+
+diff --git a/drivers/crypto/mv_cesa.c b/drivers/crypto/mv_cesa.c
+index 49a2206..d0fb10e 100644
+--- a/drivers/crypto/mv_cesa.c
++++ b/drivers/crypto/mv_cesa.c
+@@ -184,10 +184,11 @@ static void copy_src_to_buf(struct req_progress *p, char *dbuf, int len)
+ static void setup_data_in(void)
+ {
+       struct req_progress *p = &cpg->p;
+-      p->crypt_len =
++      int data_in_sram =
+           min(p->hw_nbytes - p->hw_processed_bytes, cpg->max_req_size);
+-      copy_src_to_buf(p, cpg->sram + SRAM_DATA_IN_START,
+-                      p->crypt_len);
++      copy_src_to_buf(p, cpg->sram + SRAM_DATA_IN_START + p->crypt_len,
++                      data_in_sram - p->crypt_len);
++      p->crypt_len = data_in_sram;
+ }
+ static void mv_process_current_q(int first_block)
+@@ -298,6 +299,7 @@ static void dequeue_complete_req(void)
+               } while (need_copy_len > 0);
+       }
++      cpg->p.crypt_len = 0;
+       BUG_ON(cpg->eng_st != ENGINE_W_DEQUEUE);
+       if (cpg->p.hw_processed_bytes < cpg->p.hw_nbytes) {
+-- 
+1.7.6.5
diff --git a/src/patches/linux-2.6.32.11-option_add_vodafone_usbids.patch b/src/patches/linux-2.6.32.11-option_add_vodafone_usbids.patch
deleted file mode 100644 (file)
index b102380..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-diff -Naur linux-2.6.32.11.org/drivers/usb/serial/option.c linux-2.6.32.11/drivers/usb/serial/option.c
---- linux-2.6.32.11.org/drivers/usb/serial/option.c    2010-04-02 00:59:14.000000000 +0200
-+++ linux-2.6.32.11/drivers/usb/serial/option.c        2010-04-21 21:56:56.000000000 +0200
-@@ -165,6 +165,10 @@
- #define HUAWEI_PRODUCT_E143D                  0x143D
- #define HUAWEI_PRODUCT_E143E                  0x143E
- #define HUAWEI_PRODUCT_E143F                  0x143F
-+/* Vodafone K4505-H */
-+#define HUAWEI_PRODUCT_E1464                  0x1464
-+/* Vodafone K3765-H */
-+#define HUAWEI_PRODUCT_E1465                  0x1465
- #define HUAWEI_PRODUCT_E14AC                  0x14AC
- #define QUANTA_VENDOR_ID                      0x0408
-@@ -443,6 +447,8 @@
-       { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E143D, 0xff, 0xff, 0xff) },
-       { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E143E, 0xff, 0xff, 0xff) },
-       { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E143F, 0xff, 0xff, 0xff) },
-+      { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1464, 0xff, 0xff, 0xff) },
-+      { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1465, 0xff, 0xff, 0xff) },
-       { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E14AC) },
-       { USB_DEVICE(AMOI_VENDOR_ID, AMOI_PRODUCT_9508) },
-       { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_V640) }, /* Novatel Merlin V640/XV620 */
diff --git a/src/patches/linux-2.6.32.45-arm_kirkwood_setups.patch b/src/patches/linux-2.6.32.45-arm_kirkwood_setups.patch
deleted file mode 100644 (file)
index 9db9c2e..0000000
+++ /dev/null
@@ -1,522 +0,0 @@
-diff -Naur linux-2.6.32.45.org/arch/arm/mach-kirkwood/dreamplug-setup.c linux-2.6.32.45/arch/arm/mach-kirkwood/dreamplug-setup.c
---- linux-2.6.32.45.org/arch/arm/mach-kirkwood/dreamplug-setup.c       1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.32.45/arch/arm/mach-kirkwood/dreamplug-setup.c   2011-10-11 15:35:37.000000000 +0200
-@@ -0,0 +1,140 @@
-+/*
-+ * arch/arm/mach-kirkwood/dreamplug-setup.c
-+ *
-+ * Marvell DreamPlug Reference Board Setup
-+ *
-+ * This file is licensed under the terms of the GNU General Public
-+ * License version 2.  This program is licensed "as is" without any
-+ * warranty of any kind, whether express or implied.
-+ */
-+
-+#include <linux/kernel.h>
-+#include <linux/init.h>
-+#include <linux/platform_device.h>
-+#include <linux/mtd/partitions.h>
-+#include <linux/ata_platform.h>
-+#include <linux/mv643xx_eth.h>
-+#include <linux/gpio.h>
-+#include <linux/leds.h>
-+#include <linux/spi/flash.h>
-+#include <linux/spi/spi.h>
-+#include <linux/spi/orion_spi.h>
-+#include <asm/mach-types.h>
-+#include <asm/mach/arch.h>
-+#include <mach/kirkwood.h>
-+#include <plat/mvsdio.h>
-+#include "common.h"
-+#include "mpp.h"
-+
-+static const struct flash_platform_data dreamplug_spi_slave_data = {
-+      .type           = "mx25l1606e",
-+};
-+
-+static struct spi_board_info __initdata dreamplug_spi_slave_info[] = {
-+      {
-+              .modalias       = "m25p80",
-+              .platform_data  = &dreamplug_spi_slave_data,
-+              .irq            = -1,
-+              .max_speed_hz   = 50000000,
-+              .bus_num        = 0,
-+              .chip_select    = 0,
-+      },
-+};
-+
-+static struct mv643xx_eth_platform_data dreamplug_ge00_data = {
-+      .phy_addr       = MV643XX_ETH_PHY_ADDR(0),
-+};
-+
-+static struct mv643xx_eth_platform_data dreamplug_ge01_data = {
-+      .phy_addr       = MV643XX_ETH_PHY_ADDR(1),
-+};
-+
-+static struct mv_sata_platform_data dreamplug_sata_data = {
-+      .n_ports        = 1,
-+};
-+
-+static struct mvsdio_platform_data dreamplug_mvsdio_data = {
-+      /* unfortunately the CD signal has not been connected */
-+};
-+
-+static struct gpio_led dreamplug_led_pins[] = {
-+      {
-+              .name                   = "dreamplug:blue:bluetooth",
-+              .gpio                   = 47,
-+              .active_low             = 1,
-+      },
-+      {
-+              .name                   = "dreamplug:green:wlan",
-+              .gpio                   = 48,
-+              .active_low             = 1,
-+      },
-+      {
-+              .name                   = "dreamplug:blue:wlanap",
-+              .gpio                   = 49,
-+              .active_low             = 1,
-+      },
-+};
-+
-+static struct gpio_led_platform_data dreamplug_led_data = {
-+      .leds           = dreamplug_led_pins,
-+      .num_leds       = ARRAY_SIZE(dreamplug_led_pins),
-+};
-+
-+static struct platform_device dreamplug_leds = {
-+      .name   = "leds-gpio",
-+      .id     = -1,
-+      .dev    = {
-+              .platform_data  = &dreamplug_led_data,
-+      }
-+};
-+
-+static unsigned int dreamplug_mpp_config[] __initdata = {
-+      MPP0_SPI_SCn,
-+      MPP1_SPI_MOSI,
-+      MPP2_SPI_SCK,
-+      MPP3_SPI_MISO,
-+      MPP4_GPIO,
-+      MPP5_GPO,
-+      MPP7_GPO,
-+      MPP18_GPO,
-+      MPP19_GPO,
-+      MPP47_GPIO,     /* B_BLED */
-+      MPP48_GPIO,     /* W_GLED */
-+      MPP49_GPIO,     /* W_BLED */
-+      0
-+};
-+
-+static void __init dreamplug_init(void)
-+{
-+      /*
-+       * Basic setup. Needs to be called early.
-+       */
-+      kirkwood_init();
-+      kirkwood_mpp_conf(dreamplug_mpp_config);
-+
-+      kirkwood_uart0_init();
-+
-+      spi_register_board_info(dreamplug_spi_slave_info,
-+                              ARRAY_SIZE(dreamplug_spi_slave_info));
-+
-+      kirkwood_spi_init();
-+      kirkwood_ehci_init();
-+
-+      kirkwood_ge00_init(&dreamplug_ge00_data);
-+      kirkwood_ge01_init(&dreamplug_ge01_data);
-+      kirkwood_sata_init(&dreamplug_sata_data);
-+      kirkwood_sdio_init(&dreamplug_mvsdio_data);
-+
-+      platform_device_register(&dreamplug_leds);
-+}
-+
-+MACHINE_START(DREAMPLUG, "Marvell DreamPlug Reference Board")
-+      /* Maintainer: Siddarth Gore <gores <at> marvell.com> */
-+      .phys_io        = KIRKWOOD_REGS_PHYS_BASE,
-+      .io_pg_offst    = ((KIRKWOOD_REGS_VIRT_BASE) >> 18) & 0xfffc,
-+      .boot_params    = 0x00000100,
-+      .init_machine   = dreamplug_init,
-+      .map_io         = kirkwood_map_io,
-+      .init_irq       = kirkwood_init_irq,
-+      .timer          = &kirkwood_timer,
-+MACHINE_END
-diff -Naur linux-2.6.32.45.org/arch/arm/mach-kirkwood/guruplug-setup.c linux-2.6.32.45/arch/arm/mach-kirkwood/guruplug-setup.c
---- linux-2.6.32.45.org/arch/arm/mach-kirkwood/guruplug-setup.c        1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.32.45/arch/arm/mach-kirkwood/guruplug-setup.c    2011-10-11 15:35:37.000000000 +0200
-@@ -0,0 +1,131 @@
-+/*
-+ * arch/arm/mach-kirkwood/guruplug-setup.c
-+ *
-+ * Marvell GuruPlug Reference Board Setup
-+ *
-+ * This file is licensed under the terms of the GNU General Public
-+ * License version 2.  This program is licensed "as is" without any
-+ * warranty of any kind, whether express or implied.
-+ */
-+
-+#include <linux/kernel.h>
-+#include <linux/init.h>
-+#include <linux/platform_device.h>
-+#include <linux/mtd/partitions.h>
-+#include <linux/ata_platform.h>
-+#include <linux/mv643xx_eth.h>
-+#include <linux/gpio.h>
-+#include <linux/leds.h>
-+#include <asm/mach-types.h>
-+#include <asm/mach/arch.h>
-+#include <mach/kirkwood.h>
-+#include <plat/mvsdio.h>
-+#include "common.h"
-+#include "mpp.h"
-+
-+static struct mtd_partition guruplug_nand_parts[] = {
-+      {
-+              .name = "u-boot",
-+              .offset = 0,
-+              .size = SZ_1M
-+      }, {
-+              .name = "uImage",
-+              .offset = MTDPART_OFS_NXTBLK,
-+              .size = SZ_4M
-+      }, {
-+              .name = "root",
-+              .offset = MTDPART_OFS_NXTBLK,
-+              .size = MTDPART_SIZ_FULL
-+      },
-+};
-+
-+static struct mv643xx_eth_platform_data guruplug_ge00_data = {
-+      .phy_addr       = MV643XX_ETH_PHY_ADDR(0),
-+};
-+
-+static struct mv643xx_eth_platform_data guruplug_ge01_data = {
-+      .phy_addr       = MV643XX_ETH_PHY_ADDR(1),
-+};
-+
-+static struct mv_sata_platform_data guruplug_sata_data = {
-+      .n_ports        = 1,
-+};
-+
-+static struct mvsdio_platform_data guruplug_mvsdio_data = {
-+      /* unfortunately the CD signal has not been connected */
-+};
-+
-+static struct gpio_led guruplug_led_pins[] = {
-+      {
-+              .name                   = "guruplug:red:health",
-+              .gpio                   = 46,
-+              .active_low             = 1,
-+      },
-+      {
-+              .name                   = "guruplug:green:health",
-+              .gpio                   = 47,
-+              .active_low             = 1,
-+      },
-+      {
-+              .name                   = "guruplug:red:wmode",
-+              .gpio                   = 48,
-+              .active_low             = 1,
-+      },
-+      {
-+              .name                   = "guruplug:green:wmode",
-+              .gpio                   = 49,
-+              .active_low             = 1,
-+      },
-+};
-+
-+static struct gpio_led_platform_data guruplug_led_data = {
-+      .leds           = guruplug_led_pins,
-+      .num_leds       = ARRAY_SIZE(guruplug_led_pins),
-+};
-+
-+static struct platform_device guruplug_leds = {
-+      .name   = "leds-gpio",
-+      .id     = -1,
-+      .dev    = {
-+              .platform_data  = &guruplug_led_data,
-+      }
-+};
-+
-+static unsigned int guruplug_mpp_config[] __initdata = {
-+      MPP46_GPIO,     /* M_RLED */
-+      MPP47_GPIO,     /* M_GLED */
-+      MPP48_GPIO,     /* B_RLED */
-+      MPP49_GPIO,     /* B_GLED */
-+      0
-+};
-+
-+static void __init guruplug_init(void)
-+{
-+      /*
-+       * Basic setup. Needs to be called early.
-+       */
-+      kirkwood_init();
-+      kirkwood_mpp_conf(guruplug_mpp_config);
-+
-+      kirkwood_uart0_init();
-+      kirkwood_nand_init(ARRAY_AND_SIZE(guruplug_nand_parts), 25);
-+
-+      kirkwood_ehci_init();
-+      kirkwood_ge00_init(&guruplug_ge00_data);
-+      kirkwood_ge01_init(&guruplug_ge01_data);
-+      kirkwood_sata_init(&guruplug_sata_data);
-+      kirkwood_sdio_init(&guruplug_mvsdio_data);
-+
-+      platform_device_register(&guruplug_leds);
-+}
-+
-+MACHINE_START(GURUPLUG, "Marvell GuruPlug Reference Board")
-+      /* Maintainer: Siddarth Gore <gores@marvell.com> */
-+      .phys_io        = KIRKWOOD_REGS_PHYS_BASE,
-+      .io_pg_offst    = ((KIRKWOOD_REGS_VIRT_BASE) >> 18) & 0xfffc,
-+      .boot_params    = 0x00000100,
-+      .init_machine   = guruplug_init,
-+      .map_io         = kirkwood_map_io,
-+      .init_irq       = kirkwood_init_irq,
-+      .timer          = &kirkwood_timer,
-+MACHINE_END
-diff -Naur linux-2.6.32.45.org/arch/arm/mach-kirkwood/Kconfig linux-2.6.32.45/arch/arm/mach-kirkwood/Kconfig
---- linux-2.6.32.45.org/arch/arm/mach-kirkwood/Kconfig 2011-08-16 03:57:37.000000000 +0200
-+++ linux-2.6.32.45/arch/arm/mach-kirkwood/Kconfig     2011-10-15 17:06:55.816070291 +0200
-@@ -32,6 +32,18 @@
-         Say 'Y' here if you want your kernel to support the
-         Marvell SheevaPlug Reference Board.
-+config MACH_DREAMPLUG
-+      bool "Marvell DreamPlug Reference Board"
-+      help
-+        Say 'Y' here if you want your kernel to support the
-+        Marvell DreamPlug Reference Board.
-+
-+config MACH_GURUPLUG
-+      bool "Marvell GuruPlug Reference Board"
-+      help
-+        Say 'Y' here if you want your kernel to support the
-+        Marvell GuruPlug Reference Board.
-+
- config MACH_TS219
-       bool "QNAP TS-119 and TS-219 Turbo NAS"
-       help
-@@ -44,6 +56,12 @@
-         Say 'Y' here if you want your kernel to support the
-         Marvell OpenRD Base Board.
-+config MACH_NAS6210
-+      bool "RaidSonic ICY BOX IB-NAS62x0"
-+      help
-+        Say 'Y' here if you want your kernel to support the
-+        RaidSonic ICY BOX IB-NAS62x0 device.
-+
- endmenu
- endif
-diff -Naur linux-2.6.32.45.org/arch/arm/mach-kirkwood/Makefile linux-2.6.32.45/arch/arm/mach-kirkwood/Makefile
---- linux-2.6.32.45.org/arch/arm/mach-kirkwood/Makefile        2011-08-16 03:57:37.000000000 +0200
-+++ linux-2.6.32.45/arch/arm/mach-kirkwood/Makefile    2011-10-15 17:07:16.346068829 +0200
-@@ -5,7 +5,10 @@
- obj-$(CONFIG_MACH_RD88F6281)          += rd88f6281-setup.o
- obj-$(CONFIG_MACH_MV88F6281GTW_GE)    += mv88f6281gtw_ge-setup.o
- obj-$(CONFIG_MACH_SHEEVAPLUG)         += sheevaplug-setup.o
-+obj-$(CONFIG_MACH_GURUPLUG)           += guruplug-setup.o
-+obj-$(CONFIG_MACH_DREAMPLUG)          += dreamplug-setup.o
- obj-$(CONFIG_MACH_TS219)              += ts219-setup.o
- obj-$(CONFIG_MACH_OPENRD_BASE)                += openrd_base-setup.o
-+obj-$(CONFIG_MACH_NAS6210)            += nas6210-setup.o
- obj-$(CONFIG_CPU_IDLE)                        += cpuidle.o
-diff -Naur linux-2.6.32.45.org/arch/arm/mach-kirkwood/nas6210-setup.c linux-2.6.32.45/arch/arm/mach-kirkwood/nas6210-setup.c
---- linux-2.6.32.45.org/arch/arm/mach-kirkwood/nas6210-setup.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.32.45/arch/arm/mach-kirkwood/nas6210-setup.c     2011-10-16 09:57:35.268409525 +0200
-@@ -0,0 +1,180 @@
-+/*
-+ * arch/arm/mach-kirkwood/nas6210-setup.c
-+ *
-+ * Raidsonic ICYBOX NAS6210 and 6220 Board Setup
-+ *
-+ * This file is licensed under the terms of the GNU General Public
-+ * License version 2.  This program is licensed "as is" without any
-+ * warranty of any kind, whether express or implied.
-+ */
-+
-+#include <linux/kernel.h>
-+#include <linux/init.h>
-+#include <linux/platform_device.h>
-+#include <linux/mtd/partitions.h>
-+#include <linux/ata_platform.h>
-+#include <linux/mv643xx_eth.h>
-+#include <linux/gpio.h>
-+#include <linux/gpio_keys.h>
-+#include <linux/input.h>
-+#include <linux/leds.h>
-+#include <asm/mach-types.h>
-+#include <asm/mach/arch.h>
-+#include <mach/kirkwood.h>
-+#include "common.h"
-+#include "mpp.h"
-+
-+#define NAS6210_GPIO_POWER_OFF 24
-+
-+static struct mtd_partition nas6210_nand_parts[] = {
-+      {
-+              .name = "u-boot",
-+              .offset = 0,
-+              .size = SZ_1M
-+      }, {
-+              .name = "uImage",
-+              .offset = MTDPART_OFS_NXTBLK,
-+              .size = (SZ_1M*6)
-+      }, {
-+              .name = "root",
-+              .offset = MTDPART_OFS_NXTBLK,
-+              .size = MTDPART_SIZ_FULL
-+      },
-+};
-+
-+static struct mv643xx_eth_platform_data nas6210_ge00_data = {
-+      .phy_addr       = MV643XX_ETH_PHY_ADDR(8),
-+};
-+
-+static struct mv_sata_platform_data nas6210_sata_data = {
-+      .n_ports        = 2,
-+};
-+
-+static struct gpio_led nas6210_led_pins[] = {
-+      {
-+              .name                   = "nas6210:green:power",
-+              .default_trigger        = "default-on",
-+              .gpio                   = 25,
-+              .active_low             = 0,
-+      },
-+      {
-+              .name                   = "nas6210:red:power",
-+              .default_trigger        = "none",
-+              .gpio                   = 22,
-+              .active_low             = 0,
-+      },
-+      {
-+              .name                   = "nas6210:red:usb_copy",
-+              .default_trigger        = "none",
-+              .gpio                   = 27,
-+              .active_low             = 0,
-+      },
-+};
-+
-+static struct gpio_led_platform_data nas6210_led_data = {
-+      .leds           = nas6210_led_pins,
-+      .num_leds       = ARRAY_SIZE(nas6210_led_pins),
-+};
-+
-+static struct platform_device nas6210_leds = {
-+      .name   = "leds-gpio",
-+      .id     = -1,
-+      .dev    = {
-+              .platform_data  = &nas6210_led_data,
-+      }
-+};
-+
-+static struct gpio_keys_button nas6210_buttons[] = {
-+      {
-+              .code           = KEY_COPY,
-+              .gpio           = 29,
-+              .desc           = "USB Copy",
-+              .active_low     = 1,
-+      },
-+      {
-+              .code           = KEY_RESTART,
-+              .gpio           = 28,
-+              .desc           = "Reset",
-+              .active_low     = 1,
-+      },
-+};
-+
-+static struct gpio_keys_platform_data nas6210_button_data = {
-+      .buttons        = nas6210_buttons,
-+      .nbuttons       = ARRAY_SIZE(nas6210_buttons),
-+};
-+
-+static struct platform_device nas6210_button_device = {
-+      .name           = "gpio-keys",
-+      .id             = -1,
-+      .num_resources  = 0,
-+      .dev            = {
-+              .platform_data  = &nas6210_button_data,
-+      }
-+};
-+
-+static unsigned int nas6210_mpp_config[] __initdata = {
-+      MPP0_NF_IO2,
-+      MPP1_NF_IO3,
-+      MPP2_NF_IO4,
-+      MPP3_NF_IO5,
-+      MPP4_NF_IO6,
-+      MPP5_NF_IO7,
-+      MPP18_NF_IO0,
-+      MPP19_NF_IO1,
-+      MPP22_GPIO,     /* Power LED red */
-+      MPP24_GPIO,     /* Power off */
-+      MPP25_GPIO,     /* Power LED green */
-+      MPP27_GPIO,    /* USB transfer LED */
-+      MPP28_GPIO,    /* Reset button */
-+      MPP29_GPIO,    /* USB Copy button */
-+      0
-+};
-+
-+void nas6210_power_off(void)
-+{
-+      gpio_set_value(NAS6210_GPIO_POWER_OFF, 1);
-+      while(1);
-+}
-+
-+static void __init nas6210_init(void)
-+{
-+      /*
-+       * Basic setup. Needs to be called early.
-+       */
-+      kirkwood_init();
-+      kirkwood_mpp_conf(nas6210_mpp_config);
-+
-+      kirkwood_nand_init(ARRAY_AND_SIZE(nas6210_nand_parts), 25);
-+      kirkwood_ehci_init();
-+      kirkwood_ge00_init(&nas6210_ge00_data);
-+      kirkwood_sata_init(&nas6210_sata_data);
-+      kirkwood_uart0_init();
-+      platform_device_register(&nas6210_leds);
-+      platform_device_register(&nas6210_button_device);
-+
-+      if (gpio_request(NAS6210_GPIO_POWER_OFF, "power-off") == 0 &&
-+              gpio_direction_output(NAS6210_GPIO_POWER_OFF, 0) == 0)
-+                      pm_power_off = nas6210_power_off;
-+
-+      else
-+              pr_err("nas6210: failed to configure power-off gpio pin");
-+}
-+
-+static int __init nas6210_pci_init(void)
-+{
-+      if (machine_is_nas6210()) {
-+              kirkwood_pcie_init();
-+      }
-+      return 0;
-+}
-+subsys_initcall(nas6210_pci_init);
-+
-+MACHINE_START(NAS6210, "RaidSonic ICY BOX IB-NAS62x0")
-+      /* Maintainer: Arne Fitzenreiter <arne_f@ipfire.org> */
-+      .boot_params    = 0x00000100,
-+      .init_machine   = nas6210_init,
-+      .map_io         = kirkwood_map_io,
-+      .init_irq       = kirkwood_init_irq,
-+      .timer          = &kirkwood_timer,
-+MACHINE_END
-diff -Naur linux-2.6.32.45.org/arch/arm/tools/mach-types linux-2.6.32.45/arch/arm/tools/mach-types
---- linux-2.6.32.45.org/arch/arm/tools/mach-types      2011-08-16 03:57:37.000000000 +0200
-+++ linux-2.6.32.45/arch/arm/tools/mach-types  2011-10-15 17:05:46.486069811 +0200
-@@ -2536,3 +2536,6 @@
- mxt_td60              MACH_MXT_TD60           MXT_TD60                2550
- esyx                  MACH_ESYX               ESYX                    2551
- bulldog                       MACH_BULLDOG            BULLDOG                 2553
-+guruplug              MACH_GURUPLUG           GURUPLUG                2601
-+dreamplug             MACH_DREAMPLUG          DREAMPLUG               2659
-+nas6210                       MACH_NAS6210            NAS6210                 3104
diff --git a/src/patches/linux-2.x-smsc95xx-add_mac_addr_param.patch b/src/patches/linux-2.x-smsc95xx-add_mac_addr_param.patch
new file mode 100644 (file)
index 0000000..2aea1d1
--- /dev/null
@@ -0,0 +1,149 @@
+Added smsc95xx.macaddr module parameter to allow the user to
+change the MAC address on boot if there was no MAC on the EEPROM.
+
+The parameter take the MAC address in 01:23:45:67:89:ab format and
+needs to be locally assigned. The MAC get assigned to the first
+smsc95xx device with no MAC on EEPROM (which resulted in a random
+MAC before). If there is more than one device without MAC on
+EEPROM and the user needs set the MAC to a specific device, it
+can be done by attaching the netdev name (e.g. eth0) to the
+smsc95xx.macaddr parameter seperated by a ';' as e.g. in
+'01:23:45:67:89:ab;eth0'
+
+This allows e.g. u-boot to pass on PandaBoard or BeagleBoard
+the by u-boot generated static MAC address to the kernel device
+to ensure the MAC stays the same during the whole boot process.
+
+Signed-off-by: Danny Kukawka <danny.kukawka@...>
+---
+ drivers/net/usb/smsc95xx.c |   85 ++++++++++++++++++++++++++++++++++++++++++--
+ 1 files changed, 82 insertions(+), 3 deletions(-)
+
+diff --git a/drivers/net/usb/smsc95xx.c b/drivers/net/usb/smsc95xx.c
+index d45520e..3198c7d 100644
+--- a/drivers/net/usb/smsc95xx.c
++++ b/drivers/net/usb/smsc95xx.c
+@@ -52,6 +52,8 @@ struct smsc95xx_priv {
+       u32 hash_hi;
+       u32 hash_lo;
+       spinlock_t mac_cr_lock;
++      bool mac_set_from_param;
++      bool mac_is_random;
+ };
+
+ struct usb_context {
+@@ -63,6 +65,11 @@ static bool turbo_mode = true;
+ module_param(turbo_mode, bool, 0644);
+ MODULE_PARM_DESC(turbo_mode, "Enable multiple frames per Rx transaction");
+
++static char *macaddr = ":";
++static bool set_macaddr = false;
++module_param(macaddr, charp, 0);
++MODULE_PARM_DESC(macaddr, " macaddr=macaddr;[tgt-netdevname] (Set MAC only if there is a device without MAC on EEPROM)");
++
+ static int smsc95xx_read_reg(struct usbnet *dev, u32 index, u32 *data)
+ {
+       u32 *buf = kmalloc(4, GFP_KERNEL);
+@@ -601,8 +608,71 @@ static int smsc95xx_ioctl(struct net_device *netdev, struct ifreq *rq, int cmd)
+       return generic_mii_ioctl(&dev->mii, if_mii(rq), cmd, NULL);
+ }
+
++/* set mac address from the macaddr module parameter */
++static int smsc95xx_init_mac_address_from_param(struct usbnet *dev)
++{
++      struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev->data[0]);
++      int i, parsed, ret;
++      u8 mtbl[ETH_ALEN];
++      char *input = NULL;
++      char *config_param = NULL;
++      char *netdev_name = NULL;       
++
++      parsed = 0;
++      ret = 0;
++
++      input = kstrdup(macaddr, GFP_KERNEL);
++
++      if (!input)
++              return -ENOMEM;
++
++      if (strlen(input) >= 17) {
++              while ((config_param = strsep(&input, ";"))) {
++                      if (parsed == 0) {
++                              if (!mac_pton(config_param, mtbl)) {
++                                      ret = 1;
++                                      goto parse_err;
++                              }
++                      } else {
++                              netdev_name = config_param;                             
++                      }
++                      parsed ++;
++              }
++
++              if (parsed && is_valid_ether_addr(mtbl)) {
++                      if (netdev_name && strlen(netdev_name)) {
++                              if (strcmp(netdev_name, dev->net->name) != 0) {
++                                      netif_dbg(dev, ifup, dev->net, "requested devname (%s) didn't match (%s)\n", netdev_name, dev->net->name);
++                                      ret = 1;
++                                      goto out;
++                              }
++                      }
++
++                      for (i = 0; i < ETH_ALEN; i++) {
++                              dev->net->dev_addr[i] = mtbl[i];
++                      }
++
++                      netif_dbg(dev, ifup, dev->net, "set valid MAC address from smsc95xx.macaddr\n");
++                      set_macaddr = true;
++                      pdata->mac_set_from_param = true;
++                      pdata->mac_is_random = false;
++                      goto out;
++              }
++      } 
++
++parse_err:
++      netif_dbg(dev, ifup, dev->net, "failed to parse (valid) MAC from smsc95xx.macaddr\n");
++      set_macaddr = true;
++out:
++      if (input)
++              kfree(input);
++      return ret;
++}
++
+ static void smsc95xx_init_mac_address(struct usbnet *dev)
+ {
++      struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev->data[0]);   
++
+       /* try reading mac address from EEPROM */
+       if (smsc95xx_read_eeprom(dev, EEPROM_MAC_OFFSET, ETH_ALEN,
+                       dev->net->dev_addr) == 0) {
+@@ -615,16 +685,25 @@ static void smsc95xx_init_mac_address(struct usbnet *dev)
+
+       /* no eeprom, or eeprom values are invalid. generate random MAC */
+       random_ether_addr(dev->net->dev_addr);
++      pdata->mac_is_random = true;
+       netif_dbg(dev, ifup, dev->net, "MAC address set to random_ether_addr\n");
+ }
+
+ static int smsc95xx_set_mac_address(struct usbnet *dev)
+ {
+-      u32 addr_lo = dev->net->dev_addr[0] | dev->net->dev_addr[1] << 8 |
+-              dev->net->dev_addr[2] << 16 | dev->net->dev_addr[3] << 24;
+-      u32 addr_hi = dev->net->dev_addr[4] | dev->net->dev_addr[5] << 8;
++      struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev->data[0]);
++      u32 addr_lo, addr_hi;
+       int ret;
+
++      if (pdata->mac_is_random && !pdata->mac_set_from_param && !set_macaddr) {
++              netif_dbg(dev, ifup, dev->net, "random MAC address, not yet set from smsc95xx.macaddr, try to set it ...\n");
++              smsc95xx_init_mac_address_from_param(dev);
++      }
++
++      addr_lo = dev->net->dev_addr[0] | dev->net->dev_addr[1] << 8 |
++              dev->net->dev_addr[2] << 16 | dev->net->dev_addr[3] << 24;
++      addr_hi = dev->net->dev_addr[4] | dev->net->dev_addr[5] << 8;
++
+       ret = smsc95xx_write_reg(dev, ADDRL, addr_lo);
+       if (ret < 0) {
+               netdev_warn(dev->net, "Failed to write ADDRL: %d\n", ret);
+--
+
diff --git a/src/patches/linux-3.0-ipp2p-0.8.2-ipfire.patch b/src/patches/linux-3.0-ipp2p-0.8.2-ipfire.patch
new file mode 100644 (file)
index 0000000..34cba84
--- /dev/null
@@ -0,0 +1,1039 @@
+diff -Naur linux-3.0.24.org/include/linux/netfilter_ipv4/ipt_ipp2p.h linux-3.0.24/include/linux/netfilter_ipv4/ipt_ipp2p.h
+--- linux-3.0.24.org/include/linux/netfilter_ipv4/ipt_ipp2p.h  1970-01-01 01:00:00.000000000 +0100
++++ linux-3.0.24/include/linux/netfilter_ipv4/ipt_ipp2p.h      2012-03-20 09:29:20.616541362 +0100
+@@ -0,0 +1,31 @@
++#ifndef __IPT_IPP2P_H
++#define __IPT_IPP2P_H
++#define IPP2P_VERSION "0.8.2-ipfire"
++
++struct ipt_p2p_info {
++    int cmd;
++    int debug;
++};
++
++#endif //__IPT_IPP2P_H
++
++#define SHORT_HAND_IPP2P      1 /* --ipp2p switch*/
++//#define SHORT_HAND_DATA             4 /* --ipp2p-data switch*/
++#define SHORT_HAND_NONE               5 /* no short hand*/
++
++#define IPP2P_EDK             (1 << 1)
++#define IPP2P_DATA_KAZAA      (1 << 2)
++#define IPP2P_DATA_EDK                (1 << 3)
++#define IPP2P_DATA_DC         (1 << 4)
++#define IPP2P_DC              (1 << 5)
++#define IPP2P_DATA_GNU                (1 << 6)
++#define IPP2P_GNU             (1 << 7)
++#define IPP2P_KAZAA           (1 << 8)
++#define IPP2P_BIT             (1 << 9)
++#define IPP2P_APPLE           (1 << 10)
++#define IPP2P_SOUL            (1 << 11)
++#define IPP2P_WINMX           (1 << 12)
++#define IPP2P_ARES            (1 << 13)
++#define IPP2P_MUTE            (1 << 14)
++#define IPP2P_WASTE           (1 << 15)
++#define IPP2P_XDCC            (1 << 16)
+diff -Naur linux-3.0.24.org/net/ipv4/netfilter/ipt_ipp2p.c linux-3.0.24/net/ipv4/netfilter/ipt_ipp2p.c
+--- linux-3.0.24.org/net/ipv4/netfilter/ipt_ipp2p.c    1970-01-01 01:00:00.000000000 +0100
++++ linux-3.0.24/net/ipv4/netfilter/ipt_ipp2p.c        2012-03-20 11:26:38.593101443 +0100
+@@ -0,0 +1,970 @@
++#if defined(MODVERSIONS)
++#include <linux/modversions.h>
++#endif
++#include <linux/module.h>
++#include <linux/version.h>
++#include <linux/netfilter_ipv4/ip_tables.h>
++#include <linux/netfilter_ipv4/ipt_ipp2p.h>
++#include <net/tcp.h>
++#include <net/udp.h>
++
++#define get_u8(X,O)  (*(__u8 *)(X + O))
++#define get_u16(X,O)  (*(__u16 *)(X + O))
++#define get_u32(X,O)  (*(__u32 *)(X + O))
++
++MODULE_AUTHOR("Eicke Friedrich/Klaus Degner <ipp2p@ipp2p.org>");
++MODULE_DESCRIPTION("An extension to iptables to identify P2P traffic.");
++MODULE_LICENSE("GPL");
++
++
++/*Search for UDP eDonkey/eMule/Kad commands*/
++int
++udp_search_edk (unsigned char *haystack, int packet_len)
++{
++    unsigned char *t = haystack;
++    t += 8;
++
++      switch (t[0]) {
++              case 0xe3: 
++              {       /*edonkey*/
++                      switch (t[1]) 
++                      {
++                              /* client -> server status request */
++                              case 0x96: 
++                                      if (packet_len == 14) return ((IPP2P_EDK * 100) + 50);
++                                      break;
++                              /* server -> client status request */
++                              case 0x97: if (packet_len == 42) return ((IPP2P_EDK * 100) + 51);
++                                      break;
++                                              /* server description request */
++                                              /* e3 2a ff f0 .. | size == 6 */
++                              case 0xa2: if ( (packet_len == 14) && ( get_u16(t,2) == __constant_htons(0xfff0) ) ) return ((IPP2P_EDK * 100) + 52);
++                                      break;
++                                              /* server description response */
++                                              /* e3 a3 ff f0 ..  | size > 40 && size < 200 */
++                              //case 0xa3: return ((IPP2P_EDK * 100) + 53);
++                              //      break;
++                              case 0x9a: if (packet_len==26) return ((IPP2P_EDK * 100) + 54);
++                                      break;
++
++                              case 0x92: if (packet_len==18) return ((IPP2P_EDK * 100) + 55);
++                                      break;
++                      }
++                      break;
++              }
++              case 0xe4: 
++              {
++                      switch (t[1]) 
++                      {
++                                              /* e4 20 .. | size == 43 */
++                              case 0x20: if ((packet_len == 43) && (t[2] != 0x00) && (t[34] != 0x00)) return ((IPP2P_EDK * 100) + 60);
++                                      break;
++                                              /* e4 00 .. 00 | size == 35 ? */
++                              case 0x00: if ((packet_len == 35) && (t[26] == 0x00)) return ((IPP2P_EDK * 100) + 61);
++                                      break;
++                                              /* e4 10 .. 00 | size == 35 ? */
++                              case 0x10: if ((packet_len == 35) && (t[26] == 0x00)) return ((IPP2P_EDK * 100) + 62);
++                                      break;
++                                              /* e4 18 .. 00 | size == 35 ? */
++                              case 0x18: if ((packet_len == 35) && (t[26] == 0x00)) return ((IPP2P_EDK * 100) + 63);
++                                      break;
++                                              /* e4 52 .. | size = 44 */
++                              case 0x52: if (packet_len == 44 ) return ((IPP2P_EDK * 100) + 64);
++                                      break;
++                                              /* e4 58 .. | size == 6 */
++                              case 0x58: if (packet_len == 14 ) return ((IPP2P_EDK * 100) + 65);
++                                      break;
++                                              /* e4 59 .. | size == 2 */
++                              case 0x59: if (packet_len == 10 )return ((IPP2P_EDK * 100) + 66);
++                                      break;
++                                      /* e4 28 .. | packet_len == 52,77,102,127... */
++                              case 0x28: if (((packet_len-52) % 25) == 0) return ((IPP2P_EDK * 100) + 67);
++                                      break;
++                                      /* e4 50 xx xx | size == 4 */
++                              case 0x50: if (packet_len == 12) return ((IPP2P_EDK * 100) + 68);
++                                      break;
++                                      /* e4 40 xx xx | size == 48 */
++                              case 0x40: if (packet_len == 56) return ((IPP2P_EDK * 100) + 69);
++                                      break;
++                      }
++                      break;
++              }
++      } /* end of switch (t[0]) */
++    return 0;
++}/*udp_search_edk*/
++
++
++/*Search for UDP Gnutella commands*/
++int
++udp_search_gnu (unsigned char *haystack, int packet_len)
++{
++    unsigned char *t = haystack;
++    t += 8;
++    
++    if (memcmp(t, "GND", 3) == 0) return ((IPP2P_GNU * 100) + 51);
++    if (memcmp(t, "GNUTELLA ", 9) == 0) return ((IPP2P_GNU * 100) + 52);
++    return 0;
++}/*udp_search_gnu*/
++
++
++/*Search for UDP KaZaA commands*/
++int
++udp_search_kazaa (unsigned char *haystack, int packet_len)
++{
++    unsigned char *t = haystack;
++    
++    if (t[packet_len-1] == 0x00){
++      t += (packet_len - 6);
++      if (memcmp(t, "KaZaA", 5) == 0) return (IPP2P_KAZAA * 100 +50);
++    }
++    
++    return 0;
++}/*udp_search_kazaa*/
++
++/*Search for UDP DirectConnect commands*/
++int
++udp_search_directconnect (unsigned char *haystack, int packet_len)
++{
++    unsigned char *t = haystack;
++    if ((*(t + 8) == 0x24) && (*(t + packet_len - 1) == 0x7c)) {
++      t+=8;
++      if (memcmp(t, "SR ", 3) == 0)                   return ((IPP2P_DC * 100) + 60);
++      if (memcmp(t, "Ping ", 5) == 0)                 return ((IPP2P_DC * 100) + 61);
++    }
++    return 0;
++}/*udp_search_directconnect*/
++
++
++
++/*Search for UDP BitTorrent commands*/
++int
++udp_search_bit (unsigned char *haystack, int packet_len)
++{
++      switch(packet_len)
++      {
++              case 24:
++                      /* ^ 00 00 04 17 27 10 19 80 */
++                      if ((ntohl(get_u32(haystack, 8)) == 0x00000417) && (ntohl(get_u32(haystack, 12)) == 0x27101980)) 
++                              return (IPP2P_BIT * 100 + 50);
++                      break;
++              case 44:
++                      if (get_u32(haystack, 16) == __constant_htonl(0x00000400) && get_u32(haystack, 36) == __constant_htonl(0x00000104)) 
++                              return (IPP2P_BIT * 100 + 51);
++                      if (get_u32(haystack, 16) == __constant_htonl(0x00000400))
++                              return (IPP2P_BIT * 100 + 61);
++                      break;
++              case 65:
++                      if (get_u32(haystack, 16) == __constant_htonl(0x00000404) && get_u32(haystack, 36) == __constant_htonl(0x00000104)) 
++                              return (IPP2P_BIT * 100 + 52);
++                      if (get_u32(haystack, 16) == __constant_htonl(0x00000404))
++                              return (IPP2P_BIT * 100 + 62);
++                      break;
++              case 67:
++                      if (get_u32(haystack, 16) == __constant_htonl(0x00000406) && get_u32(haystack, 36) == __constant_htonl(0x00000104)) 
++                              return (IPP2P_BIT * 100 + 53);
++                      if (get_u32(haystack, 16) == __constant_htonl(0x00000406))
++                              return (IPP2P_BIT * 100 + 63);
++                      break;
++              case 211:
++                      if (get_u32(haystack, 8) == __constant_htonl(0x00000405)) 
++                              return (IPP2P_BIT * 100 + 54);
++                      break;
++              case 29:
++                      if ((get_u32(haystack, 8) == __constant_htonl(0x00000401))) 
++                              return (IPP2P_BIT * 100 + 55);
++                      break;
++              case 52:
++                      if (get_u32(haystack,8)  == __constant_htonl(0x00000827) &&
++                      get_u32(haystack,12) == __constant_htonl(0x37502950))
++                              return (IPP2P_BIT * 100 + 80);
++                      break;
++              default:
++                      /* this packet does not have a constant size */
++                      if (packet_len >= 40 && get_u32(haystack, 16) == __constant_htonl(0x00000402) && get_u32(haystack, 36) == __constant_htonl(0x00000104)) 
++                              return (IPP2P_BIT * 100 + 56);
++                      break;
++      }
++    
++      /* some extra-bitcomet rules:
++      * "d1:" [a|r] "d2:id20:"
++      */
++      if (packet_len > 30 && get_u8(haystack, 8) == 'd' && get_u8(haystack, 9) == '1' && get_u8(haystack, 10) == ':' )
++      {
++              if (get_u8(haystack, 11) == 'a' || get_u8(haystack, 11) == 'r')
++              {
++                      if (memcmp(haystack+12,"d2:id20:",8)==0)
++                              return (IPP2P_BIT * 100 + 57);
++              }
++      }
++    
++#if 0
++      /* bitlord rules */
++      /* packetlen must be bigger than 40 */
++      /* first 4 bytes are zero */
++      if (packet_len > 40 && get_u32(haystack, 8) == 0x00000000)
++      {
++              /* first rule: 00 00 00 00 01 00 00 xx xx xx xx 00 00 00 00*/
++              if (get_u32(haystack, 12) == 0x00000000 && 
++                  get_u32(haystack, 16) == 0x00010000 &&
++                  get_u32(haystack, 24) == 0x00000000 )
++                      return (IPP2P_BIT * 100 + 71);
++                      
++              /* 00 01 00 00 0d 00 00 xx xx xx xx 00 00 00 00*/
++              if (get_u32(haystack, 12) == 0x00000001 && 
++                  get_u32(haystack, 16) == 0x000d0000 &&
++                  get_u32(haystack, 24) == 0x00000000 )
++                      return (IPP2P_BIT * 100 + 71);
++              
++                  
++      }
++#endif
++
++    return 0;
++}/*udp_search_bit*/
++
++
++
++/*Search for Ares commands*/
++//#define IPP2P_DEBUG_ARES
++int
++search_ares (const unsigned char *payload, const u16 plen)
++//int search_ares (unsigned char *haystack, int packet_len, int head_len)
++{
++//    const unsigned char *t = haystack + head_len;
++      
++      /* all ares packets start with  */
++      if (payload[1] == 0 && (plen - payload[0]) == 3)
++      {
++              switch (payload[2])
++              {
++                      case 0x5a:
++                              /* ares connect */
++                              if ( plen == 6 && payload[5] == 0x05 ) return ((IPP2P_ARES * 100) + 1);
++                              break;
++                      case 0x09:
++                              /* ares search, min 3 chars --> 14 bytes
++                               * lets define a search can be up to 30 chars --> max 34 bytes
++                               */
++                              if ( plen >= 14 && plen <= 34 ) return ((IPP2P_ARES * 100) + 1);
++                              break;
++#ifdef IPP2P_DEBUG_ARES
++                      default:
++                      printk(KERN_DEBUG "Unknown Ares command %x recognized, len: %u \n", (unsigned int) payload[2],plen);
++#endif /* IPP2P_DEBUG_ARES */
++              }
++      }
++
++#if 0         
++      /* found connect packet: 03 00 5a 04 03 05 */
++      /* new version ares 1.8: 03 00 5a xx xx 05 */
++    if ((plen) == 6){ /* possible connect command*/
++      if ((payload[0] == 0x03) && (payload[1] == 0x00) && (payload[2] == 0x5a) && (payload[5] == 0x05))
++          return ((IPP2P_ARES * 100) + 1);
++    }
++    if ((plen) == 60){        /* possible download command*/
++      if ((payload[59] == 0x0a) && (payload[58] == 0x0a)){
++          if (memcmp(t, "PUSH SHA1:", 10) == 0) /* found download command */
++              return ((IPP2P_ARES * 100) + 2);
++      }
++    }
++#endif
++
++    return 0;
++} /*search_ares*/
++
++/*Search for SoulSeek commands*/
++int
++search_soul (const unsigned char *payload, const u16 plen)
++{
++//#define IPP2P_DEBUG_SOUL
++    /* match: xx xx xx xx | xx = sizeof(payload) - 4 */
++    if (get_u32(payload, 0) == (plen - 4)){
++      const __u32 m=get_u32(payload, 4);
++      /* match 00 yy yy 00, yy can be everything */
++        if ( get_u8(payload, 4) == 0x00 && get_u8(payload, 7) == 0x00 )
++      {
++#ifdef IPP2P_DEBUG_SOUL
++      printk(KERN_DEBUG "0: Soulseek command 0x%x recognized\n",get_u32(payload, 4));
++#endif /* IPP2P_DEBUG_SOUL */
++              return ((IPP2P_SOUL * 100) + 1);
++      }
++      
++        /* next match: 01 yy 00 00 | yy can be everything */
++        if ( get_u8(payload, 4) == 0x01 && get_u16(payload, 6) == 0x0000 )
++      {
++#ifdef IPP2P_DEBUG_SOUL
++      printk(KERN_DEBUG "1: Soulseek command 0x%x recognized\n",get_u16(payload, 4));
++#endif /* IPP2P_DEBUG_SOUL */
++              return ((IPP2P_SOUL * 100) + 2);
++      }
++      
++      /* other soulseek commandos are: 1-5,7,9,13-18,22,23,26,28,35-37,40-46,50,51,60,62-69,91,92,1001 */
++      /* try to do this in an intelligent way */
++      /* get all small commandos */
++      switch(m)
++      {
++              case 7:
++              case 9:
++              case 22:
++              case 23:
++              case 26:
++              case 28:
++              case 50:
++              case 51:
++              case 60:
++              case 91:
++              case 92:
++              case 1001:
++#ifdef IPP2P_DEBUG_SOUL
++              printk(KERN_DEBUG "2: Soulseek command 0x%x recognized\n",get_u16(payload, 4));
++#endif /* IPP2P_DEBUG_SOUL */
++              return ((IPP2P_SOUL * 100) + 3);
++      }
++      
++      if (m > 0 && m < 6 ) 
++      {
++#ifdef IPP2P_DEBUG_SOUL
++              printk(KERN_DEBUG "3: Soulseek command 0x%x recognized\n",get_u16(payload, 4));
++#endif /* IPP2P_DEBUG_SOUL */
++              return ((IPP2P_SOUL * 100) + 4);
++      }
++      if (m > 12 && m < 19 )
++      {
++#ifdef IPP2P_DEBUG_SOUL
++              printk(KERN_DEBUG "4: Soulseek command 0x%x recognized\n",get_u16(payload, 4));
++#endif /* IPP2P_DEBUG_SOUL */
++              return ((IPP2P_SOUL * 100) + 5);
++      }
++
++      if (m > 34 && m < 38 )
++      {
++#ifdef IPP2P_DEBUG_SOUL
++              printk(KERN_DEBUG "5: Soulseek command 0x%x recognized\n",get_u16(payload, 4));
++#endif /* IPP2P_DEBUG_SOUL */
++              return ((IPP2P_SOUL * 100) + 6);
++      }
++
++      if (m > 39 && m < 47 )
++      {
++#ifdef IPP2P_DEBUG_SOUL
++              printk(KERN_DEBUG "6: Soulseek command 0x%x recognized\n",get_u16(payload, 4));
++#endif /* IPP2P_DEBUG_SOUL */
++              return ((IPP2P_SOUL * 100) + 7);
++      }
++
++      if (m > 61 && m < 70 ) 
++      {
++#ifdef IPP2P_DEBUG_SOUL
++              printk(KERN_DEBUG "7: Soulseek command 0x%x recognized\n",get_u16(payload, 4));
++#endif /* IPP2P_DEBUG_SOUL */
++              return ((IPP2P_SOUL * 100) + 8);
++      }
++
++#ifdef IPP2P_DEBUG_SOUL
++      printk(KERN_DEBUG "unknown SOULSEEK command: 0x%x, first 16 bit: 0x%x, first 8 bit: 0x%x ,soulseek ???\n",get_u32(payload, 4),get_u16(payload, 4) >> 16,get_u8(payload, 4) >> 24);
++#endif /* IPP2P_DEBUG_SOUL */
++    }
++      
++      /* match 14 00 00 00 01 yy 00 00 00 STRING(YY) 01 00 00 00 00 46|50 00 00 00 00 */
++      /* without size at the beginning !!! */
++      if ( get_u32(payload, 0) == 0x14 && get_u8(payload, 4) == 0x01 )
++      {
++              __u32 y=get_u32(payload, 5);
++              /* we need 19 chars + string */
++              if ( (y + 19) <= (plen) )
++              {
++                      const unsigned char *w=payload+9+y;
++                      if (get_u32(w, 0) == 0x01 && ( get_u16(w, 4) == 0x4600 || get_u16(w, 4) == 0x5000) && get_u32(w, 6) == 0x00);
++#ifdef IPP2P_DEBUG_SOUL
++                      printk(KERN_DEBUG "Soulssek special client command recognized\n");
++#endif /* IPP2P_DEBUG_SOUL */
++                      return ((IPP2P_SOUL * 100) + 9);
++              }
++      }
++    return 0;
++}
++
++
++/*Search for WinMX commands*/
++int
++search_winmx (const unsigned char *payload, const u16 plen)
++{
++//#define IPP2P_DEBUG_WINMX
++    if (((plen) == 4) && (memcmp(payload, "SEND", 4) == 0))  return ((IPP2P_WINMX * 100) + 1);
++    if (((plen) == 3) && (memcmp(payload, "GET", 3) == 0))  return ((IPP2P_WINMX * 100) + 2);
++    //if (packet_len < (head_len + 10)) return 0;
++    if (plen < 10) return 0;
++    
++    if ((memcmp(payload, "SEND", 4) == 0) || (memcmp(payload, "GET", 3) == 0)){
++        u16 c=4;
++        const u16 end=plen-2;
++        u8 count=0;
++        while (c < end)
++        {
++              if (payload[c]== 0x20 && payload[c+1] == 0x22)
++              {
++                      c++;
++                      count++;
++                      if (count>=2) return ((IPP2P_WINMX * 100) + 3);
++              }
++              c++;
++        }
++    }
++    
++    if ( plen == 149 && payload[0] == '8' )
++    {
++#ifdef IPP2P_DEBUG_WINMX
++      printk(KERN_INFO "maybe WinMX\n");
++#endif
++      if (get_u32(payload,17) == 0 && get_u32(payload,21) == 0 && get_u32(payload,25) == 0 &&
++//                get_u32(payload,33) == __constant_htonl(0x71182b1a) && get_u32(payload,37) == __constant_htonl(0x05050000) &&
++//                get_u32(payload,133) == __constant_htonl(0x31097edf) && get_u32(payload,145) == __constant_htonl(0xdcb8f792))
++          get_u16(payload,39) == 0 && get_u16(payload,135) == __constant_htons(0x7edf) && get_u16(payload,147) == __constant_htons(0xf792))
++          
++      {
++#ifdef IPP2P_DEBUG_WINMX
++              printk(KERN_INFO "got WinMX\n");
++#endif
++              return ((IPP2P_WINMX * 100) + 4);
++      }
++    }
++    return 0;
++} /*search_winmx*/
++
++
++/*Search for appleJuice commands*/
++int
++search_apple (const unsigned char *payload, const u16 plen)
++{
++    if ( (plen > 7) && (payload[6] == 0x0d) && (payload[7] == 0x0a) && (memcmp(payload, "ajprot", 6) == 0))  return (IPP2P_APPLE * 100);
++    
++    return 0;
++}
++
++
++/*Search for BitTorrent commands*/
++int
++search_bittorrent (const unsigned char *payload, const u16 plen)
++{
++    if (plen > 20)
++    {
++      /* test for match 0x13+"BitTorrent protocol" */
++      if (payload[0] == 0x13) 
++      {
++              if (memcmp(payload+1, "BitTorrent protocol", 19) == 0) return (IPP2P_BIT * 100);
++      }
++      
++      /* get tracker commandos, all starts with GET /
++      * then it can follow: scrape| announce
++      * and then ?hash_info=
++      */
++      if (memcmp(payload,"GET /",5) == 0)
++      {
++              /* message scrape */
++              if ( memcmp(payload+5,"scrape?info_hash=",17)==0 ) return (IPP2P_BIT * 100 + 1);
++              /* message announce */
++              if ( memcmp(payload+5,"announce?info_hash=",19)==0 ) return (IPP2P_BIT * 100 + 2);
++      }
++    } 
++    else 
++    {
++      /* bitcomet encryptes the first packet, so we have to detect another 
++       * one later in the flow */
++       /* first try failed, too many missdetections */
++      //if ( size == 5 && get_u32(t,0) == __constant_htonl(1) && t[4] < 3) return (IPP2P_BIT * 100 + 3);
++      
++      /* second try: block request packets */
++      if ( plen == 17 && get_u32(payload,0) == __constant_htonl(0x0d) && payload[4] == 0x06 && get_u32(payload,13) == __constant_htonl(0x4000) ) return (IPP2P_BIT * 100 + 3);
++    }
++
++    return 0;
++}
++
++
++
++/*check for Kazaa get command*/
++int
++search_kazaa (const unsigned char *payload, const u16 plen)
++
++{
++    if ((payload[plen-2] == 0x0d) && (payload[plen-1] == 0x0a) && memcmp(payload, "GET /.hash=", 11) == 0)
++      return (IPP2P_DATA_KAZAA * 100);
++
++    return 0;
++}
++
++
++/*check for gnutella get command*/
++int
++search_gnu (const unsigned char *payload, const u16 plen)
++{
++    if ((payload[plen-2] == 0x0d) && (payload[plen-1] == 0x0a))
++    {
++      if (memcmp(payload, "GET /get/", 9) == 0)       return ((IPP2P_DATA_GNU * 100) + 1);
++      if (memcmp(payload, "GET /uri-res/", 13) == 0) return ((IPP2P_DATA_GNU * 100) + 2); 
++    }
++    return 0;
++}
++
++
++/*check for gnutella get commands and other typical data*/
++int
++search_all_gnu (const unsigned char *payload, const u16 plen)
++{
++    
++    if ((payload[plen-2] == 0x0d) && (payload[plen-1] == 0x0a))
++    {
++      
++      if (memcmp(payload, "GNUTELLA CONNECT/", 17) == 0) return ((IPP2P_GNU * 100) + 1);
++      if (memcmp(payload, "GNUTELLA/", 9) == 0) return ((IPP2P_GNU * 100) + 2);    
++    
++    
++      if ((memcmp(payload, "GET /get/", 9) == 0) || (memcmp(payload, "GET /uri-res/", 13) == 0))
++      {        
++              u16 c=8;
++              const u16 end=plen-22;
++              while (c < end) {
++                      if ( payload[c] == 0x0a && payload[c+1] == 0x0d && ((memcmp(&payload[c+2], "X-Gnutella-", 11) == 0) || (memcmp(&payload[c+2], "X-Queue:", 8) == 0))) 
++                              return ((IPP2P_GNU * 100) + 3);
++                      c++;
++              }
++      }
++    }
++    return 0;
++}
++
++
++/*check for KaZaA download commands and other typical data*/
++int
++search_all_kazaa (const unsigned char *payload, const u16 plen)
++{
++    if ((payload[plen-2] == 0x0d) && (payload[plen-1] == 0x0a))
++    {
++
++      if (memcmp(payload, "GIVE ", 5) == 0) return ((IPP2P_KAZAA * 100) + 1);
++    
++      if (memcmp(payload, "GET /", 5) == 0) {
++              u16 c = 8;
++              const u16 end=plen-22;
++              while (c < end) {
++                      if ( payload[c] == 0x0a && payload[c+1] == 0x0d && ((memcmp(&payload[c+2], "X-Kazaa-Username: ", 18) == 0) || (memcmp(&payload[c+2], "User-Agent: PeerEnabler/", 24) == 0)))
++                              return ((IPP2P_KAZAA * 100) + 2);
++                      c++;
++              }
++      }
++    }
++    return 0;
++}
++
++/*fast check for edonkey file segment transfer command*/
++int
++search_edk (const unsigned char *payload, const u16 plen)
++{
++    if (payload[0] != 0xe3) 
++      return 0;
++    else {
++      if (payload[5] == 0x47) 
++          return (IPP2P_DATA_EDK * 100);
++      else    
++          return 0;
++    }
++}
++
++
++
++/*intensive but slower search for some edonkey packets including size-check*/
++int
++search_all_edk (const unsigned char *payload, const u16 plen)
++{
++    if (payload[0] != 0xe3) 
++      return 0;
++    else {
++      //t += head_len;        
++      const u16 cmd = get_u16(payload, 1);
++      if (cmd == (plen - 5)) {
++          switch (payload[5]) {
++              case 0x01: return ((IPP2P_EDK * 100) + 1);      /*Client: hello or Server:hello*/
++              case 0x4c: return ((IPP2P_EDK * 100) + 9);      /*Client: Hello-Answer*/
++          }
++      }
++      return 0;
++     }
++}
++
++
++/*fast check for Direct Connect send command*/
++int
++search_dc (const unsigned char *payload, const u16 plen)
++{
++
++    if (payload[0] != 0x24 ) 
++      return 0;
++    else {
++      if (memcmp(&payload[1], "Send|", 5) == 0)
++          return (IPP2P_DATA_DC * 100);
++      else
++          return 0;
++    } 
++
++}
++
++
++/*intensive but slower check for all direct connect packets*/
++int
++search_all_dc (const unsigned char *payload, const u16 plen)
++{
++//    unsigned char *t = haystack;
++
++    if (payload[0] == 0x24 && payload[plen-1] == 0x7c) 
++    {
++      const unsigned char *t=&payload[1];
++              /* Client-Hub-Protocol */
++      if (memcmp(t, "Lock ", 5) == 0)                 return ((IPP2P_DC * 100) + 1);
++      /* Client-Client-Protocol, some are already recognized by client-hub (like lock) */
++      if (memcmp(t, "MyNick ", 7) == 0)               return ((IPP2P_DC * 100) + 38); 
++    }
++    return 0;
++}
++
++/*check for mute*/
++int
++search_mute (const unsigned char *payload, const u16 plen)
++{
++      if ( plen == 209 || plen == 345 || plen == 473 || plen == 609 || plen == 1121 )
++      {
++              //printk(KERN_DEBUG "size hit: %u",size);
++              if (memcmp(payload,"PublicKey: ",11) == 0 )
++              { 
++                      return ((IPP2P_MUTE * 100) + 0);
++                      
++/*                    if (memcmp(t+size-14,"\x0aEndPublicKey\x0a",14) == 0)
++                      {
++                              printk(KERN_DEBUG "end pubic key hit: %u",size);
++                              
++                      }*/
++              }
++      }
++      return 0;
++}
++
++
++/* check for xdcc */
++int
++search_xdcc (const unsigned char *payload, const u16 plen)
++{
++      /* search in small packets only */
++      if (plen > 20 && plen < 200 && payload[plen-1] == 0x0a && payload[plen-2] == 0x0d && memcmp(payload,"PRIVMSG ",8) == 0)
++      {
++              
++              u16 x=10;
++              const u16 end=plen - 13;
++              
++              /* is seems to be a irc private massage, chedck for xdcc command */
++              while (x < end)
++              {
++                      if (payload[x] == ':')
++                      {
++                              if ( memcmp(&payload[x+1],"xdcc send #",11) == 0 )
++                                      return ((IPP2P_XDCC * 100) + 0);
++                      }
++                      x++;
++              }
++      }
++      return 0;
++}
++
++/* search for waste */
++int search_waste(const unsigned char *payload, const u16 plen)
++{
++      if ( plen >= 8 && memcmp(payload,"GET.sha1:",9) == 0)
++              return ((IPP2P_WASTE * 100) + 0);
++
++      return 0;
++}
++
++
++static struct {
++    int command;
++    __u8 short_hand;                  /*for fucntions included in short hands*/
++    int packet_len;
++    int (*function_name) (const unsigned char *, const u16);
++} matchlist[] = {
++    {IPP2P_EDK,SHORT_HAND_IPP2P,20, &search_all_edk},
++//    {IPP2P_DATA_KAZAA,SHORT_HAND_DATA,200, &search_kazaa},
++//    {IPP2P_DATA_EDK,SHORT_HAND_DATA,60, &search_edk},
++//    {IPP2P_DATA_DC,SHORT_HAND_DATA,26, &search_dc},
++    {IPP2P_DC,SHORT_HAND_IPP2P,5, search_all_dc},
++//    {IPP2P_DATA_GNU,SHORT_HAND_DATA,40, &search_gnu},
++    {IPP2P_GNU,SHORT_HAND_IPP2P,5, &search_all_gnu},
++    {IPP2P_KAZAA,SHORT_HAND_IPP2P,5, &search_all_kazaa},
++    {IPP2P_BIT,SHORT_HAND_IPP2P,20, &search_bittorrent},
++    {IPP2P_APPLE,SHORT_HAND_IPP2P,5, &search_apple},
++    {IPP2P_SOUL,SHORT_HAND_IPP2P,5, &search_soul},
++    {IPP2P_WINMX,SHORT_HAND_IPP2P,2, &search_winmx},
++    {IPP2P_ARES,SHORT_HAND_IPP2P,5, &search_ares},
++    {IPP2P_MUTE,SHORT_HAND_NONE,200, &search_mute},
++    {IPP2P_WASTE,SHORT_HAND_NONE,5, &search_waste},
++    {IPP2P_XDCC,SHORT_HAND_NONE,5, &search_xdcc},
++    {0,0,0,NULL}
++};
++
++
++static struct {
++    int command;
++    __u8 short_hand;                  /*for fucntions included in short hands*/
++    int packet_len;
++    int (*function_name) (unsigned char *, int);
++} udp_list[] = {
++    { IPP2P_KAZAA, SHORT_HAND_IPP2P, 14, &udp_search_kazaa},
++    { IPP2P_BIT,   SHORT_HAND_IPP2P, 23, &udp_search_bit},
++    { IPP2P_GNU,   SHORT_HAND_IPP2P, 11, &udp_search_gnu},
++    { IPP2P_EDK,   SHORT_HAND_IPP2P,  9, &udp_search_edk},
++    { IPP2P_DC,    SHORT_HAND_IPP2P, 12, &udp_search_directconnect},    
++    { 0, 0, 0, NULL }
++};
++
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
++static int
++match(const struct sk_buff *skb,
++      const struct net_device *in,
++      const struct net_device *out,
++      const void *matchinfo,
++      int offset,
++      const void *hdr,
++      u_int16_t datalen,
++      int *hotdrop) 
++#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,16)
++static int
++match(const struct sk_buff *skb,
++      const struct net_device *in,
++      const struct net_device *out,
++      const void *matchinfo,
++      int offset,
++      int *hotdrop) 
++#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,17)
++static int
++match(const struct sk_buff *skb,
++      const struct net_device *in,
++      const struct net_device *out,
++      const void *matchinfo,
++      int offset,
++      unsigned int protoff,
++      int *hotdrop)
++#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,23)
++static int
++match(const struct sk_buff *skb,
++      const struct net_device *in,
++      const struct net_device *out,
++      const struct xt_match *match,
++      const void *matchinfo,
++      int offset,
++      unsigned int protoff,
++      int *hotdrop)
++#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,28)
++static bool
++match(const struct sk_buff *skb,
++      const struct net_device *in,
++      const struct net_device *out,
++      const struct xt_match *match,
++      const void *matchinfo,
++      int offset, 
++      unsigned int protoff, 
++      bool *hotdrop)
++#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,35)
++static bool
++match(const struct sk_buff *skb,
++      const struct xt_match_param *par)
++#else /* LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35) */
++static int
++match(const struct sk_buff *skb,
++      struct xt_action_param *par)
++#endif
++{
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,28)
++      const struct ipt_p2p_info *info = matchinfo;
++#else
++      const struct ipt_p2p_info *info = par->matchinfo;
++      const int offset = par->fragoff;
++#endif
++    unsigned char  *haystack;
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)
++    struct iphdr *ip = ip_hdr(skb);
++#else
++    struct iphdr *ip = skb->nh.iph;
++#endif
++    int p2p_result = 0, i = 0;
++//    int head_len;
++    int hlen = ntohs(ip->tot_len)-(ip->ihl*4);        /*hlen = packet-data length*/
++
++    /*must not be a fragment*/
++    if (offset) {
++      if (info->debug) printk("IPP2P.match: offset found %i \n",offset);
++      return 0;
++    }
++    
++    /*make sure that skb is linear*/
++    if(skb_is_nonlinear(skb)){
++      if (info->debug) printk("IPP2P.match: nonlinear skb found\n");
++      return 0;
++    }
++
++
++    haystack=(char *)ip+(ip->ihl*4);          /*haystack = packet data*/
++
++    switch (ip->protocol){
++      case IPPROTO_TCP:               /*what to do with a TCP packet*/
++      {
++          struct tcphdr *tcph = (void *) ip + ip->ihl * 4;
++          
++          if (tcph->fin) return 0;  /*if FIN bit is set bail out*/
++          if (tcph->syn) return 0;  /*if SYN bit is set bail out*/
++          if (tcph->rst) return 0;  /*if RST bit is set bail out*/
++          
++          haystack += tcph->doff * 4; /*get TCP-Header-Size*/
++          hlen -= tcph->doff * 4;
++          while (matchlist[i].command) {
++              if ((((info->cmd & matchlist[i].command) == matchlist[i].command) ||
++                  ((info->cmd & matchlist[i].short_hand) == matchlist[i].short_hand)) &&
++                  (hlen > matchlist[i].packet_len)) {
++                          p2p_result = matchlist[i].function_name(haystack, hlen);
++                          if (p2p_result) 
++                          {
++                              if (info->debug) printk("IPP2P.debug:TCP-match: %i from: %pl4:%i to: %pl4:%i Length: %i\n", 
++                                  p2p_result, &ip->saddr,ntohs(tcph->source), &ip->daddr,ntohs(tcph->dest),hlen);
++                              return p2p_result;
++                          }
++              }
++          i++;
++          }
++          return p2p_result;
++      }
++      
++      case IPPROTO_UDP:               /*what to do with an UDP packet*/
++      {
++          struct udphdr *udph = (void *) ip + ip->ihl * 4;
++          
++          while (udp_list[i].command){
++              if ((((info->cmd & udp_list[i].command) == udp_list[i].command) ||
++                  ((info->cmd & udp_list[i].short_hand) == udp_list[i].short_hand)) &&
++                  (hlen > udp_list[i].packet_len)) {
++                          p2p_result = udp_list[i].function_name(haystack, hlen);
++                          if (p2p_result){
++                              if (info->debug) printk("IPP2P.debug:UDP-match: %i from: %pl4:%i to: %pl4:%i Length: %i\n", 
++                                  p2p_result, &ip->saddr,ntohs(udph->source), &ip->daddr,ntohs(udph->dest),hlen);
++                              return p2p_result;
++                          }
++              }
++          i++;
++          }                   
++          return p2p_result;
++      }
++    
++      default: return 0;
++    }
++}
++
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,16)
++static int
++checkentry(const char *tablename,
++         const struct ipt_ip *ip,
++         void *matchinfo,
++         unsigned int matchsize,
++         unsigned int hook_mask)
++#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,17)
++static int
++checkentry(const char *tablename,
++         const void *inf,
++         void *matchinfo,
++         unsigned int matchsize,
++         unsigned int hook_mask)
++#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19)
++static int
++checkentry(const char *tablename,
++         const void *inf,
++         const struct xt_match *match,
++         void *matchinfo,
++         unsigned int matchsize,
++         unsigned int hook_mask)
++#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,23)
++static int
++checkentry(const char *tablename,
++         const void *inf,
++         const struct xt_match *match,
++         void *matchinfo,
++         unsigned int hook_mask)
++#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,28)
++static bool
++checkentry(const char *tablename,
++         const void *inf,
++         const struct xt_match *match,
++         void *matchinfo,
++         unsigned int hook_mask)
++#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,35)
++static bool
++checkentry(const struct xt_mtchk_param *par)
++#else /* LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35) */
++static int
++checkentry(const struct xt_mtchk_param *par)
++#endif
++{
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,35)
++    return 1;
++#else
++    return 0;
++#endif
++}
++
++
++
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21)
++static struct xt_match ipp2p_match = {
++#else
++static struct ipt_match ipp2p_match = { 
++#endif
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
++      { NULL, NULL }, 
++      "ipp2p", 
++      &ipp2p_match, 
++      &ipp2p_checkentry, 
++      NULL, 
++      THIS_MODULE
++#endif
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
++      .name           = "ipp2p",
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21)
++      .family         = AF_INET,
++#endif
++      .match          = &match,
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,17)
++      .matchsize      = sizeof(struct ipt_p2p_info),
++#endif
++      .checkentry     = &checkentry,
++      .me             = THIS_MODULE,
++#endif
++};
++
++
++static int __init init(void)
++{
++    printk(KERN_INFO "IPP2P v%s loading\n", IPP2P_VERSION);
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21)
++    return xt_register_match(&ipp2p_match);
++#else
++    return ipt_register_match(&ipp2p_match);
++#endif
++}
++      
++static void __exit fini(void)
++{
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21)
++    xt_unregister_match(&ipp2p_match);
++#else
++    ipt_unregister_match(&ipp2p_match);
++#endif
++    printk(KERN_INFO "IPP2P v%s unloaded\n", IPP2P_VERSION);    
++}
++      
++module_init(init);
++module_exit(fini);
++
++
+diff -Naur linux-3.0.24.org/net/ipv4/netfilter/Kconfig linux-3.0.24/net/ipv4/netfilter/Kconfig
+--- linux-3.0.24.org/net/ipv4/netfilter/Kconfig        2012-03-12 18:58:19.000000000 +0100
++++ linux-3.0.24/net/ipv4/netfilter/Kconfig    2012-03-20 09:05:15.827477622 +0100
+@@ -379,5 +379,15 @@
+ endif # IP_NF_ARPTABLES
++config IP_NF_MATCH_IPP2P
++      tristate  'IPP2P match support'
++      depends on IP_NF_IPTABLES
++      help
++        This option makes possible to match some P2P packets
++        therefore helps controlling such traffic.
++      
++        If you want to compile it as a module, say M here and read
++        <file:Documentation/modules.txt>.  If unsure, say `N'.
++
+ endmenu
+diff -Naur linux-3.0.24.org/net/ipv4/netfilter/Makefile linux-3.0.24/net/ipv4/netfilter/Makefile
+--- linux-3.0.24.org/net/ipv4/netfilter/Makefile       2012-03-12 18:58:19.000000000 +0100
++++ linux-3.0.24/net/ipv4/netfilter/Makefile   2012-03-20 09:13:38.960288878 +0100
+@@ -50,6 +50,7 @@
+ # matches
+ obj-$(CONFIG_IP_NF_MATCH_AH) += ipt_ah.o
+ obj-$(CONFIG_IP_NF_MATCH_ECN) += ipt_ecn.o
++obj-$(CONFIG_IP_NF_MATCH_IPP2P) += ipt_ipp2p.o
+ # targets
+ obj-$(CONFIG_IP_NF_TARGET_CLUSTERIP) += ipt_CLUSTERIP.o
diff --git a/src/patches/linux-3.1-imq.patch b/src/patches/linux-3.1-imq.patch
new file mode 100644 (file)
index 0000000..6e97f1c
--- /dev/null
@@ -0,0 +1,1603 @@
+diff -uNr linux-3.1/drivers/net/imq.c linux-3.1-imq/drivers/net/imq.c
+--- linux-3.1/drivers/net/imq.c        1970-01-01 02:00:00.000000000 +0200
++++ linux-3.1-imq/drivers/net/imq.c    2011-11-04 12:16:10.454992642 +0200
+@@ -0,0 +1,850 @@
++/*
++ *             Pseudo-driver for the intermediate queue device.
++ *
++ *             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.
++ *
++ * Authors:    Patrick McHardy, <kaber@trash.net>
++ *
++ *            The first version was written by Martin Devera, <devik@cdi.cz>
++ *
++ * Credits:    Jan Rafaj <imq2t@cedric.vabo.cz>
++ *              - Update patch to 2.4.21
++ *             Sebastian Strollo <sstrollo@nortelnetworks.com>
++ *              - Fix "Dead-loop on netdevice imq"-issue
++ *             Marcel Sebek <sebek64@post.cz>
++ *              - Update to 2.6.2-rc1
++ *
++ *           After some time of inactivity there is a group taking care
++ *           of IMQ again: http://www.linuximq.net
++ *
++ *
++ *           2004/06/30 - New version of IMQ patch to kernels <=2.6.7
++ *             including the following changes:
++ *
++ *           - Correction of ipv6 support "+"s issue (Hasso Tepper)
++ *           - Correction of imq_init_devs() issue that resulted in
++ *           kernel OOPS unloading IMQ as module (Norbert Buchmuller)
++ *           - Addition of functionality to choose number of IMQ devices
++ *           during kernel config (Andre Correa)
++ *           - Addition of functionality to choose how IMQ hooks on
++ *           PRE and POSTROUTING (after or before NAT) (Andre Correa)
++ *           - Cosmetic corrections (Norbert Buchmuller) (Andre Correa)
++ *
++ *
++ *             2005/12/16 - IMQ versions between 2.6.7 and 2.6.13 were
++ *             released with almost no problems. 2.6.14-x was released
++ *             with some important changes: nfcache was removed; After
++ *             some weeks of trouble we figured out that some IMQ fields
++ *             in skb were missing in skbuff.c - skb_clone and copy_skb_header.
++ *             These functions are correctly patched by this new patch version.
++ *
++ *             Thanks for all who helped to figure out all the problems with
++ *             2.6.14.x: Patrick McHardy, Rune Kock, VeNoMouS, Max CtRiX,
++ *             Kevin Shanahan, Richard Lucassen, Valery Dachev (hopefully
++ *             I didn't forget anybody). I apologize again for my lack of time.
++ *
++ *
++ *             2008/06/17 - 2.6.25 - Changed imq.c to use qdisc_run() instead
++ *             of qdisc_restart() and moved qdisc_run() to tasklet to avoid
++ *             recursive locking. New initialization routines to fix 'rmmod' not
++ *             working anymore. Used code from ifb.c. (Jussi Kivilinna)
++ *
++ *             2008/08/06 - 2.6.26 - (JK)
++ *              - Replaced tasklet with 'netif_schedule()'.
++ *              - Cleaned up and added comments for imq_nf_queue().
++ *
++ *             2009/04/12
++ *              - Add skb_save_cb/skb_restore_cb helper functions for backuping
++ *                control buffer. This is needed because qdisc-layer on kernels
++ *                2.6.27 and newer overwrite control buffer. (Jussi Kivilinna)
++ *              - Add better locking for IMQ device. Hopefully this will solve
++ *                SMP issues. (Jussi Kivilinna)
++ *              - Port to 2.6.27
++ *              - Port to 2.6.28
++ *              - Port to 2.6.29 + fix rmmod not working
++ *
++ *             2009/04/20 - (Jussi Kivilinna)
++ *              - Use netdevice feature flags to avoid extra packet handling
++ *                by core networking layer and possibly increase performance.
++ *
++ *             2009/09/26 - (Jussi Kivilinna)
++ *              - Add imq_nf_reinject_lockless to fix deadlock with
++ *                imq_nf_queue/imq_nf_reinject.
++ *
++ *             2009/12/08 - (Jussi Kivilinna)
++ *              - Port to 2.6.32
++ *              - Add check for skb->nf_queue_entry==NULL in imq_dev_xmit()
++ *              - Also add better error checking for skb->nf_queue_entry usage
++ *
++ *             2010/02/25 - (Jussi Kivilinna)
++ *              - Port to 2.6.33
++ *
++ *             2010/08/15 - (Jussi Kivilinna)
++ *              - Port to 2.6.35
++ *              - Simplify hook registration by using nf_register_hooks.
++ *              - nf_reinject doesn't need spinlock around it, therefore remove
++ *                imq_nf_reinject function. Other nf_reinject users protect
++ *                their own data with spinlock. With IMQ however all data is
++ *                needed is stored per skbuff, so no locking is needed.
++ *              - Changed IMQ to use 'separate' NF_IMQ_QUEUE instead of
++ *                NF_QUEUE, this allows working coexistance of IMQ and other
++ *                NF_QUEUE users.
++ *              - Make IMQ multi-queue. Number of IMQ device queues can be
++ *                increased with 'numqueues' module parameters. Default number
++ *                of queues is 1, in other words by default IMQ works as
++ *                single-queue device. Multi-queue selection is based on
++ *                IFB multi-queue patch by Changli Gao <xiaosuo@gmail.com>.
++ *
++ *             2011/03/18 - (Jussi Kivilinna)
++ *              - Port to 2.6.38
++ *
++ *             2011/07/12 - (syoder89@gmail.com)
++ *              - Crash fix that happens when the receiving interface has more
++ *                than one queue (add missing skb_set_queue_mapping in
++ *                imq_select_queue).
++ *
++ *             2011/07/26 - (Jussi Kivilinna)
++ *              - Add queue mapping checks for packets exiting IMQ.
++ *              - Port to 3.0
++ *
++ *             2011/08/16 - (Jussi Kivilinna)
++ *              - Clear IFF_TX_SKB_SHARING flag that was added for linux 3.0.2
++ *
++ *             2011/11/03 - Germano Michel <germanomichel@gmail.com>
++ *              - Fix IMQ for net namespaces
++ *
++ *             2011/11/04 - Jussi Kivilinna <jussi.kivilinna@mbnet.fi>
++ *              - Port to 3.1
++ *              - Clean-up, move 'get imq device pointer by imqX name' to
++ *                separate function from imq_nf_queue().
++ *
++ *           Also, many thanks to pablo Sebastian Greco for making the initial
++ *           patch and to those who helped the testing.
++ *
++ *             More info at: http://www.linuximq.net/ (Andre Correa)
++ */
++
++#include <linux/module.h>
++#include <linux/kernel.h>
++#include <linux/moduleparam.h>
++#include <linux/list.h>
++#include <linux/skbuff.h>
++#include <linux/netdevice.h>
++#include <linux/etherdevice.h>
++#include <linux/rtnetlink.h>
++#include <linux/if_arp.h>
++#include <linux/netfilter.h>
++#include <linux/netfilter_ipv4.h>
++#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
++      #include <linux/netfilter_ipv6.h>
++#endif
++#include <linux/imq.h>
++#include <net/pkt_sched.h>
++#include <net/netfilter/nf_queue.h>
++#include <net/sock.h>
++#include <linux/ip.h>
++#include <linux/ipv6.h>
++#include <linux/if_vlan.h>
++#include <linux/if_pppox.h>
++#include <net/ip.h>
++#include <net/ipv6.h>
++
++static int imq_nf_queue(struct nf_queue_entry *entry, unsigned queue_num);
++
++static nf_hookfn imq_nf_hook;
++
++static struct nf_hook_ops imq_ops[] = {
++      {
++      /* imq_ingress_ipv4 */
++              .hook           = imq_nf_hook,
++              .owner          = THIS_MODULE,
++              .pf             = PF_INET,
++              .hooknum        = NF_INET_PRE_ROUTING,
++#if defined(CONFIG_IMQ_BEHAVIOR_BA) || defined(CONFIG_IMQ_BEHAVIOR_BB)
++              .priority       = NF_IP_PRI_MANGLE + 1,
++#else
++              .priority       = NF_IP_PRI_NAT_DST + 1,
++#endif
++      },
++      {
++      /* imq_egress_ipv4 */
++              .hook           = imq_nf_hook,
++              .owner          = THIS_MODULE,
++              .pf             = PF_INET,
++              .hooknum        = NF_INET_POST_ROUTING,
++#if defined(CONFIG_IMQ_BEHAVIOR_AA) || defined(CONFIG_IMQ_BEHAVIOR_BA)
++              .priority       = NF_IP_PRI_LAST,
++#else
++              .priority       = NF_IP_PRI_NAT_SRC - 1,
++#endif
++      },
++#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
++      {
++      /* imq_ingress_ipv6 */
++              .hook           = imq_nf_hook,
++              .owner          = THIS_MODULE,
++              .pf             = PF_INET6,
++              .hooknum        = NF_INET_PRE_ROUTING,
++#if defined(CONFIG_IMQ_BEHAVIOR_BA) || defined(CONFIG_IMQ_BEHAVIOR_BB)
++              .priority       = NF_IP6_PRI_MANGLE + 1,
++#else
++              .priority       = NF_IP6_PRI_NAT_DST + 1,
++#endif
++      },
++      {
++      /* imq_egress_ipv6 */
++              .hook           = imq_nf_hook,
++              .owner          = THIS_MODULE,
++              .pf             = PF_INET6,
++              .hooknum        = NF_INET_POST_ROUTING,
++#if defined(CONFIG_IMQ_BEHAVIOR_AA) || defined(CONFIG_IMQ_BEHAVIOR_BA)
++              .priority       = NF_IP6_PRI_LAST,
++#else
++              .priority       = NF_IP6_PRI_NAT_SRC - 1,
++#endif
++      },
++#endif
++};
++
++#if defined(CONFIG_IMQ_NUM_DEVS)
++static int numdevs = CONFIG_IMQ_NUM_DEVS;
++#else
++static int numdevs = IMQ_MAX_DEVS;
++#endif
++
++static struct net_device *imq_devs_cache[IMQ_MAX_DEVS];
++
++#define IMQ_MAX_QUEUES 32
++static int numqueues = 1;
++static u32 imq_hashrnd;
++
++static inline __be16 pppoe_proto(const struct sk_buff *skb)
++{
++      return *((__be16 *)(skb_mac_header(skb) + ETH_HLEN +
++                      sizeof(struct pppoe_hdr)));
++}
++
++static u16 imq_hash(struct net_device *dev, struct sk_buff *skb)
++{
++      unsigned int pull_len;
++      u16 protocol = skb->protocol;
++      u32 addr1, addr2;
++      u32 hash, ihl = 0;
++      union {
++              u16 in16[2];
++              u32 in32;
++      } ports;
++      u8 ip_proto;
++
++      pull_len = 0;
++
++recheck:
++      switch (protocol) {
++      case htons(ETH_P_8021Q): {
++              if (unlikely(skb_pull(skb, VLAN_HLEN) == NULL))
++                      goto other;
++
++              pull_len += VLAN_HLEN;
++              skb->network_header += VLAN_HLEN;
++
++              protocol = vlan_eth_hdr(skb)->h_vlan_encapsulated_proto;
++              goto recheck;
++      }
++
++      case htons(ETH_P_PPP_SES): {
++              if (unlikely(skb_pull(skb, PPPOE_SES_HLEN) == NULL))
++                      goto other;
++
++              pull_len += PPPOE_SES_HLEN;
++              skb->network_header += PPPOE_SES_HLEN;
++
++              protocol = pppoe_proto(skb);
++              goto recheck;
++      }
++
++      case htons(ETH_P_IP): {
++              const struct iphdr *iph = ip_hdr(skb);
++
++              if (unlikely(!pskb_may_pull(skb, sizeof(struct iphdr))))
++                      goto other;
++
++              addr1 = iph->daddr;
++              addr2 = iph->saddr;
++
++              ip_proto = !(ip_hdr(skb)->frag_off & htons(IP_MF | IP_OFFSET)) ?
++                               iph->protocol : 0;
++              ihl = ip_hdrlen(skb);
++
++              break;
++      }
++#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
++      case htons(ETH_P_IPV6): {
++              const struct ipv6hdr *iph = ipv6_hdr(skb);
++
++              if (unlikely(!pskb_may_pull(skb, sizeof(struct ipv6hdr))))
++                      goto other;
++
++              addr1 = iph->daddr.s6_addr32[3];
++              addr2 = iph->saddr.s6_addr32[3];
++              ihl = ipv6_skip_exthdr(skb, sizeof(struct ipv6hdr), &ip_proto);
++              if (unlikely(ihl < 0))
++                      goto other;
++
++              break;
++      }
++#endif
++      default:
++other:
++              if (pull_len != 0) {
++                      skb_push(skb, pull_len);
++                      skb->network_header -= pull_len;
++              }
++
++              return (u16)(ntohs(protocol) % dev->real_num_tx_queues);
++      }
++
++      if (addr1 > addr2)
++              swap(addr1, addr2);
++
++      switch (ip_proto) {
++      case IPPROTO_TCP:
++      case IPPROTO_UDP:
++      case IPPROTO_DCCP:
++      case IPPROTO_ESP:
++      case IPPROTO_AH:
++      case IPPROTO_SCTP:
++      case IPPROTO_UDPLITE: {
++              if (likely(skb_copy_bits(skb, ihl, &ports.in32, 4) >= 0)) {
++                      if (ports.in16[0] > ports.in16[1])
++                              swap(ports.in16[0], ports.in16[1]);
++                      break;
++              }
++              /* fall-through */
++      }
++      default:
++              ports.in32 = 0;
++              break;
++      }
++
++      if (pull_len != 0) {
++              skb_push(skb, pull_len);
++              skb->network_header -= pull_len;
++      }
++
++      hash = jhash_3words(addr1, addr2, ports.in32, imq_hashrnd ^ ip_proto);
++
++      return (u16)(((u64)hash * dev->real_num_tx_queues) >> 32);
++}
++
++static inline bool sk_tx_queue_recorded(struct sock *sk)
++{
++      return (sk_tx_queue_get(sk) >= 0);
++}
++
++static struct netdev_queue *imq_select_queue(struct net_device *dev,
++                                              struct sk_buff *skb)
++{
++      u16 queue_index = 0;
++      u32 hash;
++
++      if (likely(dev->real_num_tx_queues == 1))
++              goto out;
++
++      /* IMQ can be receiving ingress or engress packets. */
++
++      /* Check first for if rx_queue is set */
++      if (skb_rx_queue_recorded(skb)) {
++              queue_index = skb_get_rx_queue(skb);
++              goto out;
++      }
++
++      /* Check if socket has tx_queue set */
++      if (sk_tx_queue_recorded(skb->sk)) {
++              queue_index = sk_tx_queue_get(skb->sk);
++              goto out;
++      }
++
++      /* Try use socket hash */
++      if (skb->sk && skb->sk->sk_hash) {
++              hash = skb->sk->sk_hash;
++              queue_index =
++                      (u16)(((u64)hash * dev->real_num_tx_queues) >> 32);
++              goto out;
++      }
++
++      /* Generate hash from packet data */
++      queue_index = imq_hash(dev, skb);
++
++out:
++      if (unlikely(queue_index >= dev->real_num_tx_queues))
++              queue_index = (u16)((u32)queue_index % dev->real_num_tx_queues);
++
++      skb_set_queue_mapping(skb, queue_index);
++      return netdev_get_tx_queue(dev, queue_index);
++}
++
++static struct net_device_stats *imq_get_stats(struct net_device *dev)
++{
++      return &dev->stats;
++}
++
++/* called for packets kfree'd in qdiscs at places other than enqueue */
++static void imq_skb_destructor(struct sk_buff *skb)
++{
++      struct nf_queue_entry *entry = skb->nf_queue_entry;
++
++      skb->nf_queue_entry = NULL;
++
++      if (entry) {
++              nf_queue_entry_release_refs(entry);
++              kfree(entry);
++      }
++
++      skb_restore_cb(skb); /* kfree backup */
++}
++
++static void imq_done_check_queue_mapping(struct sk_buff *skb,
++                                       struct net_device *dev)
++{
++      unsigned int queue_index;
++
++      /* Don't let queue_mapping be left too large after exiting IMQ */
++      if (likely(skb->dev != dev && skb->dev != NULL)) {
++              queue_index = skb_get_queue_mapping(skb);
++              if (unlikely(queue_index >= skb->dev->real_num_tx_queues)) {
++                      queue_index = (u16)((u32)queue_index %
++                                              skb->dev->real_num_tx_queues);
++                      skb_set_queue_mapping(skb, queue_index);
++              }
++      } else {
++              /* skb->dev was IMQ device itself or NULL, be on safe side and
++               * just clear queue mapping.
++               */
++              skb_set_queue_mapping(skb, 0);
++      }
++}
++
++static netdev_tx_t imq_dev_xmit(struct sk_buff *skb, struct net_device *dev)
++{
++      struct nf_queue_entry *entry = skb->nf_queue_entry;
++
++      skb->nf_queue_entry = NULL;
++      dev->trans_start = jiffies;
++
++      dev->stats.tx_bytes += skb->len;
++      dev->stats.tx_packets++;
++
++      if (unlikely(entry == NULL)) {
++              /* We don't know what is going on here.. packet is queued for
++               * imq device, but (probably) not by us.
++               *
++               * If this packet was not send here by imq_nf_queue(), then
++               * skb_save_cb() was not used and skb_free() should not show:
++               *   WARNING: IMQ: kfree_skb: skb->cb_next:..
++               * and/or
++               *   WARNING: IMQ: kfree_skb: skb->nf_queue_entry...
++               *
++               * However if this message is shown, then IMQ is somehow broken
++               * and you should report this to linuximq.net.
++               */
++
++              /* imq_dev_xmit is black hole that eats all packets, report that
++               * we eat this packet happily and increase dropped counters.
++               */
++
++              dev->stats.tx_dropped++;
++              dev_kfree_skb(skb);
++
++              return NETDEV_TX_OK;
++      }
++
++      skb_restore_cb(skb); /* restore skb->cb */
++
++      skb->imq_flags = 0;
++      skb->destructor = NULL;
++
++      imq_done_check_queue_mapping(skb, dev);
++
++      nf_reinject(entry, NF_ACCEPT);
++
++      return NETDEV_TX_OK;
++}
++
++static struct net_device *get_imq_device_by_index(int index)
++{
++      struct net_device *dev = NULL;
++      struct net *net;
++      char buf[8];
++
++      /* get device by name and cache result */
++      snprintf(buf, sizeof(buf), "imq%d", index);
++
++      /* Search device from all namespaces. */
++      for_each_net(net) {
++              dev = dev_get_by_name(net, buf);
++              if (dev)
++                      break;
++      }
++
++      if (WARN_ON_ONCE(dev == NULL)) {
++              /* IMQ device not found. Exotic config? */
++              return ERR_PTR(-ENODEV);
++      }
++
++      imq_devs_cache[index] = dev;
++      dev_put(dev);
++
++      return dev;
++}
++
++static int imq_nf_queue(struct nf_queue_entry *entry, unsigned queue_num)
++{
++      struct net_device *dev;
++      struct sk_buff *skb_orig, *skb, *skb_shared;
++      struct Qdisc *q;
++      struct netdev_queue *txq;
++      spinlock_t *root_lock;
++      int users, index;
++      int retval = -EINVAL;
++      unsigned int orig_queue_index;
++
++      index = entry->skb->imq_flags & IMQ_F_IFMASK;
++      if (unlikely(index > numdevs - 1)) {
++              if (net_ratelimit())
++                      printk(KERN_WARNING
++                             "IMQ: invalid device specified, highest is %u\n",
++                             numdevs - 1);
++              retval = -EINVAL;
++              goto out;
++      }
++
++      /* check for imq device by index from cache */
++      dev = imq_devs_cache[index];
++      if (unlikely(!dev)) {
++              dev = get_imq_device_by_index(index);
++              if (IS_ERR(dev)) {
++                      retval = PTR_ERR(dev);
++                      goto out;
++              }
++      }
++
++      if (unlikely(!(dev->flags & IFF_UP))) {
++              entry->skb->imq_flags = 0;
++              nf_reinject(entry, NF_ACCEPT);
++              retval = 0;
++              goto out;
++      }
++      dev->last_rx = jiffies;
++
++      skb = entry->skb;
++      skb_orig = NULL;
++
++      /* skb has owner? => make clone */
++      if (unlikely(skb->destructor)) {
++              skb_orig = skb;
++              skb = skb_clone(skb, GFP_ATOMIC);
++              if (unlikely(!skb)) {
++                      retval = -ENOMEM;
++                      goto out;
++              }
++              entry->skb = skb;
++      }
++
++      skb->nf_queue_entry = entry;
++
++      dev->stats.rx_bytes += skb->len;
++      dev->stats.rx_packets++;
++
++      if (!skb->dev) {
++              /* skb->dev == NULL causes problems, try the find cause. */
++              if (net_ratelimit()) {
++                      dev_warn(&dev->dev,
++                               "received packet with skb->dev == NULL\n");
++                      dump_stack();
++              }
++
++              skb->dev = dev;
++      }
++
++      /* Disables softirqs for lock below */
++      rcu_read_lock_bh();
++
++      /* Multi-queue selection */
++      orig_queue_index = skb_get_queue_mapping(skb);
++      txq = imq_select_queue(dev, skb);
++
++      q = rcu_dereference(txq->qdisc);
++      if (unlikely(!q->enqueue))
++              goto packet_not_eaten_by_imq_dev;
++
++      root_lock = qdisc_lock(q);
++      spin_lock(root_lock);
++
++      users = atomic_read(&skb->users);
++
++      skb_shared = skb_get(skb); /* increase reference count by one */
++      skb_save_cb(skb_shared); /* backup skb->cb, as qdisc layer will
++                                      overwrite it */
++      qdisc_enqueue_root(skb_shared, q); /* might kfree_skb */
++
++      if (likely(atomic_read(&skb_shared->users) == users + 1)) {
++              kfree_skb(skb_shared); /* decrease reference count by one */
++
++              skb->destructor = &imq_skb_destructor;
++
++              /* cloned? */
++              if (unlikely(skb_orig))
++                      kfree_skb(skb_orig); /* free original */
++
++              spin_unlock(root_lock);
++              rcu_read_unlock_bh();
++
++              /* schedule qdisc dequeue */
++              __netif_schedule(q);
++
++              retval = 0;
++              goto out;
++      } else {
++              skb_restore_cb(skb_shared); /* restore skb->cb */
++              skb->nf_queue_entry = NULL;
++              /* qdisc dropped packet and decreased skb reference count of
++               * skb, so we don't really want to and try refree as that would
++               * actually destroy the skb. */
++              spin_unlock(root_lock);
++              goto packet_not_eaten_by_imq_dev;
++      }
++
++packet_not_eaten_by_imq_dev:
++      skb_set_queue_mapping(skb, orig_queue_index);
++      rcu_read_unlock_bh();
++
++      /* cloned? restore original */
++      if (unlikely(skb_orig)) {
++              kfree_skb(skb);
++              entry->skb = skb_orig;
++      }
++      retval = -1;
++out:
++      return retval;
++}
++
++static unsigned int imq_nf_hook(unsigned int hook, struct sk_buff *pskb,
++                              const struct net_device *indev,
++                              const struct net_device *outdev,
++                              int (*okfn)(struct sk_buff *))
++{
++      return (pskb->imq_flags & IMQ_F_ENQUEUE) ? NF_IMQ_QUEUE : NF_ACCEPT;
++}
++
++static int imq_close(struct net_device *dev)
++{
++      netif_stop_queue(dev);
++      return 0;
++}
++
++static int imq_open(struct net_device *dev)
++{
++      netif_start_queue(dev);
++      return 0;
++}
++
++static const struct net_device_ops imq_netdev_ops = {
++      .ndo_open               = imq_open,
++      .ndo_stop               = imq_close,
++      .ndo_start_xmit         = imq_dev_xmit,
++      .ndo_get_stats          = imq_get_stats,
++};
++
++static void imq_setup(struct net_device *dev)
++{
++      dev->netdev_ops         = &imq_netdev_ops;
++      dev->type               = ARPHRD_VOID;
++      dev->mtu                = 16000; /* too small? */
++      dev->tx_queue_len       = 11000; /* too big? */
++      dev->flags              = IFF_NOARP;
++      dev->features           = NETIF_F_SG | NETIF_F_FRAGLIST |
++                                NETIF_F_GSO | NETIF_F_HW_CSUM |
++                                NETIF_F_HIGHDMA;
++      dev->priv_flags         &= ~(IFF_XMIT_DST_RELEASE |
++                                   IFF_TX_SKB_SHARING);
++}
++
++static int imq_validate(struct nlattr *tb[], struct nlattr *data[])
++{
++      int ret = 0;
++
++      if (tb[IFLA_ADDRESS]) {
++              if (nla_len(tb[IFLA_ADDRESS]) != ETH_ALEN) {
++                      ret = -EINVAL;
++                      goto end;
++              }
++              if (!is_valid_ether_addr(nla_data(tb[IFLA_ADDRESS]))) {
++                      ret = -EADDRNOTAVAIL;
++                      goto end;
++              }
++      }
++      return 0;
++end:
++      printk(KERN_WARNING "IMQ: imq_validate failed (%d)\n", ret);
++      return ret;
++}
++
++static struct rtnl_link_ops imq_link_ops __read_mostly = {
++      .kind           = "imq",
++      .priv_size      = 0,
++      .setup          = imq_setup,
++      .validate       = imq_validate,
++};
++
++static const struct nf_queue_handler imq_nfqh = {
++      .name  = "imq",
++      .outfn = imq_nf_queue,
++};
++
++static int __init imq_init_hooks(void)
++{
++      int ret;
++
++      nf_register_queue_imq_handler(&imq_nfqh);
++
++      ret = nf_register_hooks(imq_ops, ARRAY_SIZE(imq_ops));
++      if (ret < 0)
++              nf_unregister_queue_imq_handler();
++
++      return ret;
++}
++
++static int __init imq_init_one(int index)
++{
++      struct net_device *dev;
++      int ret;
++
++      dev = alloc_netdev_mq(0, "imq%d", imq_setup, numqueues);
++      if (!dev)
++              return -ENOMEM;
++
++      ret = dev_alloc_name(dev, dev->name);
++      if (ret < 0)
++              goto fail;
++
++      dev->rtnl_link_ops = &imq_link_ops;
++      ret = register_netdevice(dev);
++      if (ret < 0)
++              goto fail;
++
++      return 0;
++fail:
++      free_netdev(dev);
++      return ret;
++}
++
++static int __init imq_init_devs(void)
++{
++      int err, i;
++
++      if (numdevs < 1 || numdevs > IMQ_MAX_DEVS) {
++              printk(KERN_ERR "IMQ: numdevs has to be betweed 1 and %u\n",
++                     IMQ_MAX_DEVS);
++              return -EINVAL;
++      }
++
++      if (numqueues < 1 || numqueues > IMQ_MAX_QUEUES) {
++              printk(KERN_ERR "IMQ: numqueues has to be betweed 1 and %u\n",
++                     IMQ_MAX_QUEUES);
++              return -EINVAL;
++      }
++
++      get_random_bytes(&imq_hashrnd, sizeof(imq_hashrnd));
++
++      rtnl_lock();
++      err = __rtnl_link_register(&imq_link_ops);
++
++      for (i = 0; i < numdevs && !err; i++)
++              err = imq_init_one(i);
++
++      if (err) {
++              __rtnl_link_unregister(&imq_link_ops);
++              memset(imq_devs_cache, 0, sizeof(imq_devs_cache));
++      }
++      rtnl_unlock();
++
++      return err;
++}
++
++static int __init imq_init_module(void)
++{
++      int err;
++
++#if defined(CONFIG_IMQ_NUM_DEVS)
++      BUILD_BUG_ON(CONFIG_IMQ_NUM_DEVS > 16);
++      BUILD_BUG_ON(CONFIG_IMQ_NUM_DEVS < 2);
++      BUILD_BUG_ON(CONFIG_IMQ_NUM_DEVS - 1 > IMQ_F_IFMASK);
++#endif
++
++      err = imq_init_devs();
++      if (err) {
++              printk(KERN_ERR "IMQ: Error trying imq_init_devs(net)\n");
++              return err;
++      }
++
++      err = imq_init_hooks();
++      if (err) {
++              printk(KERN_ERR "IMQ: Error trying imq_init_hooks()\n");
++              rtnl_link_unregister(&imq_link_ops);
++              memset(imq_devs_cache, 0, sizeof(imq_devs_cache));
++              return err;
++      }
++
++      printk(KERN_INFO "IMQ driver loaded successfully. "
++              "(numdevs = %d, numqueues = %d)\n", numdevs, numqueues);
++
++#if defined(CONFIG_IMQ_BEHAVIOR_BA) || defined(CONFIG_IMQ_BEHAVIOR_BB)
++      printk(KERN_INFO "\tHooking IMQ before NAT on PREROUTING.\n");
++#else
++      printk(KERN_INFO "\tHooking IMQ after NAT on PREROUTING.\n");
++#endif
++#if defined(CONFIG_IMQ_BEHAVIOR_AB) || defined(CONFIG_IMQ_BEHAVIOR_BB)
++      printk(KERN_INFO "\tHooking IMQ before NAT on POSTROUTING.\n");
++#else
++      printk(KERN_INFO "\tHooking IMQ after NAT on POSTROUTING.\n");
++#endif
++
++      return 0;
++}
++
++static void __exit imq_unhook(void)
++{
++      nf_unregister_hooks(imq_ops, ARRAY_SIZE(imq_ops));
++      nf_unregister_queue_imq_handler();
++}
++
++static void __exit imq_cleanup_devs(void)
++{
++      rtnl_link_unregister(&imq_link_ops);
++      memset(imq_devs_cache, 0, sizeof(imq_devs_cache));
++}
++
++static void __exit imq_exit_module(void)
++{
++      imq_unhook();
++      imq_cleanup_devs();
++      printk(KERN_INFO "IMQ driver unloaded successfully.\n");
++}
++
++module_init(imq_init_module);
++module_exit(imq_exit_module);
++
++module_param(numdevs, int, 0);
++module_param(numqueues, int, 0);
++MODULE_PARM_DESC(numdevs, "number of IMQ devices (how many imq* devices will "
++                      "be created)");
++MODULE_PARM_DESC(numqueues, "number of queues per IMQ device");
++MODULE_AUTHOR("http://www.linuximq.net");
++MODULE_DESCRIPTION("Pseudo-driver for the intermediate queue device. See "
++                      "http://www.linuximq.net/ for more information.");
++MODULE_LICENSE("GPL");
++MODULE_ALIAS_RTNL_LINK("imq");
++
+diff -uNr linux-3.1/drivers/net/Kconfig linux-3.1-imq/drivers/net/Kconfig
+--- linux-3.1/drivers/net/Kconfig      2011-10-24 10:10:05.000000000 +0300
++++ linux-3.1-imq/drivers/net/Kconfig  2011-11-04 11:12:52.106390309 +0200
+@@ -124,6 +124,125 @@
+         To compile this driver as a module, choose M here: the module
+         will be called eql.  If unsure, say N.
++config IMQ
++      tristate "IMQ (intermediate queueing device) support"
++      depends on NETDEVICES && NETFILTER
++      ---help---
++        The IMQ device(s) is used as placeholder for QoS queueing
++        disciplines. Every packet entering/leaving the IP stack can be
++        directed through the IMQ device where it's enqueued/dequeued to the
++        attached qdisc. This allows you to treat network devices as classes
++        and distribute bandwidth among them. Iptables is used to specify
++        through which IMQ device, if any, packets travel.
++
++        More information at: http://www.linuximq.net/
++
++        To compile this driver as a module, choose M here: the module
++        will be called imq.  If unsure, say N.
++
++choice
++      prompt "IMQ behavior (PRE/POSTROUTING)"
++      depends on IMQ
++      default IMQ_BEHAVIOR_AB
++      help
++        This setting defines how IMQ behaves in respect to its
++        hooking in PREROUTING and POSTROUTING.
++
++        IMQ can work in any of the following ways:
++
++            PREROUTING   |      POSTROUTING
++        -----------------|-------------------
++        #1  After NAT    |      After NAT
++        #2  After NAT    |      Before NAT
++        #3  Before NAT   |      After NAT
++        #4  Before NAT   |      Before NAT
++
++        The default behavior is to hook before NAT on PREROUTING
++        and after NAT on POSTROUTING (#3).
++
++        This settings are specially usefull when trying to use IMQ
++        to shape NATed clients.
++
++        More information can be found at: www.linuximq.net
++
++        If not sure leave the default settings alone.
++
++config IMQ_BEHAVIOR_AA
++      bool "IMQ AA"
++      help
++        This setting defines how IMQ behaves in respect to its
++        hooking in PREROUTING and POSTROUTING.
++
++        Choosing this option will make IMQ hook like this:
++
++        PREROUTING:   After NAT
++        POSTROUTING:  After NAT
++
++        More information can be found at: www.linuximq.net
++
++        If not sure leave the default settings alone.
++
++config IMQ_BEHAVIOR_AB
++      bool "IMQ AB"
++      help
++        This setting defines how IMQ behaves in respect to its
++        hooking in PREROUTING and POSTROUTING.
++
++        Choosing this option will make IMQ hook like this:
++
++        PREROUTING:   After NAT
++        POSTROUTING:  Before NAT
++
++        More information can be found at: www.linuximq.net
++
++        If not sure leave the default settings alone.
++
++config IMQ_BEHAVIOR_BA
++      bool "IMQ BA"
++      help
++        This setting defines how IMQ behaves in respect to its
++        hooking in PREROUTING and POSTROUTING.
++
++        Choosing this option will make IMQ hook like this:
++
++        PREROUTING:   Before NAT
++        POSTROUTING:  After NAT
++
++        More information can be found at: www.linuximq.net
++
++        If not sure leave the default settings alone.
++
++config IMQ_BEHAVIOR_BB
++      bool "IMQ BB"
++      help
++        This setting defines how IMQ behaves in respect to its
++        hooking in PREROUTING and POSTROUTING.
++
++        Choosing this option will make IMQ hook like this:
++
++        PREROUTING:   Before NAT
++        POSTROUTING:  Before NAT
++
++        More information can be found at: www.linuximq.net
++
++        If not sure leave the default settings alone.
++
++endchoice
++
++config IMQ_NUM_DEVS
++      int "Number of IMQ devices"
++      range 2 16
++      depends on IMQ
++      default "16"
++      help
++        This setting defines how many IMQ devices will be created.
++
++        The default value is 16.
++
++        More information can be found at: www.linuximq.net
++
++        If not sure leave the default settings alone.
++
+ config TUN
+       tristate "Universal TUN/TAP device driver support"
+       select CRC32
+diff -uNr linux-3.1/drivers/net/Makefile linux-3.1-imq/drivers/net/Makefile
+--- linux-3.1/drivers/net/Makefile     2011-10-24 10:10:05.000000000 +0300
++++ linux-3.1-imq/drivers/net/Makefile 2011-11-04 11:12:52.106390309 +0200
+@@ -175,6 +175,7 @@
+ obj-$(CONFIG_XEN_NETDEV_BACKEND) += xen-netback/
+ obj-$(CONFIG_DUMMY) += dummy.o
++obj-$(CONFIG_IMQ) += imq.o
+ obj-$(CONFIG_IFB) += ifb.o
+ obj-$(CONFIG_MACVLAN) += macvlan.o
+ obj-$(CONFIG_MACVTAP) += macvtap.o
+diff -uNr linux-3.1/include/linux/imq.h linux-3.1-imq/include/linux/imq.h
+--- linux-3.1/include/linux/imq.h      1970-01-01 02:00:00.000000000 +0200
++++ linux-3.1-imq/include/linux/imq.h  2011-11-04 11:12:52.109723710 +0200
+@@ -0,0 +1,13 @@
++#ifndef _IMQ_H
++#define _IMQ_H
++
++/* IFMASK (16 device indexes, 0 to 15) and flag(s) fit in 5 bits */
++#define IMQ_F_BITS    5
++
++#define IMQ_F_IFMASK  0x0f
++#define IMQ_F_ENQUEUE 0x10
++
++#define IMQ_MAX_DEVS  (IMQ_F_IFMASK + 1)
++
++#endif /* _IMQ_H */
++
+diff -uNr linux-3.1/include/linux/netfilter/xt_IMQ.h linux-3.1-imq/include/linux/netfilter/xt_IMQ.h
+--- linux-3.1/include/linux/netfilter/xt_IMQ.h 1970-01-01 02:00:00.000000000 +0200
++++ linux-3.1-imq/include/linux/netfilter/xt_IMQ.h     2011-11-04 11:12:52.109723710 +0200
+@@ -0,0 +1,9 @@
++#ifndef _XT_IMQ_H
++#define _XT_IMQ_H
++
++struct xt_imq_info {
++      unsigned int todev;     /* target imq device */
++};
++
++#endif /* _XT_IMQ_H */
++
+diff -uNr linux-3.1/include/linux/netfilter.h linux-3.1-imq/include/linux/netfilter.h
+--- linux-3.1/include/linux/netfilter.h        2011-10-24 10:10:05.000000000 +0300
++++ linux-3.1-imq/include/linux/netfilter.h    2011-11-04 11:12:52.109723710 +0200
+@@ -22,7 +22,8 @@
+ #define NF_QUEUE 3
+ #define NF_REPEAT 4
+ #define NF_STOP 5
+-#define NF_MAX_VERDICT NF_STOP
++#define NF_IMQ_QUEUE 6
++#define NF_MAX_VERDICT NF_IMQ_QUEUE
+ /* we overload the higher bits for encoding auxiliary data such as the queue
+  * number or errno values. Not nice, but better than additional function
+diff -uNr linux-3.1/include/linux/netfilter_ipv4/ipt_IMQ.h linux-3.1-imq/include/linux/netfilter_ipv4/ipt_IMQ.h
+--- linux-3.1/include/linux/netfilter_ipv4/ipt_IMQ.h   1970-01-01 02:00:00.000000000 +0200
++++ linux-3.1-imq/include/linux/netfilter_ipv4/ipt_IMQ.h       2011-11-04 11:12:52.109723710 +0200
+@@ -0,0 +1,10 @@
++#ifndef _IPT_IMQ_H
++#define _IPT_IMQ_H
++
++/* Backwards compatibility for old userspace */
++#include <linux/netfilter/xt_IMQ.h>
++
++#define ipt_imq_info xt_imq_info
++
++#endif /* _IPT_IMQ_H */
++
+diff -uNr linux-3.1/include/linux/netfilter_ipv6/ip6t_IMQ.h linux-3.1-imq/include/linux/netfilter_ipv6/ip6t_IMQ.h
+--- linux-3.1/include/linux/netfilter_ipv6/ip6t_IMQ.h  1970-01-01 02:00:00.000000000 +0200
++++ linux-3.1-imq/include/linux/netfilter_ipv6/ip6t_IMQ.h      2011-11-04 11:12:52.113057113 +0200
+@@ -0,0 +1,10 @@
++#ifndef _IP6T_IMQ_H
++#define _IP6T_IMQ_H
++
++/* Backwards compatibility for old userspace */
++#include <linux/netfilter/xt_IMQ.h>
++
++#define ip6t_imq_info xt_imq_info
++
++#endif /* _IP6T_IMQ_H */
++
+diff -uNr linux-3.1/include/linux/skbuff.h linux-3.1-imq/include/linux/skbuff.h
+--- linux-3.1/include/linux/skbuff.h   2011-10-24 10:10:05.000000000 +0300
++++ linux-3.1-imq/include/linux/skbuff.h       2011-11-04 11:12:52.116390515 +0200
+@@ -29,6 +29,9 @@
+ #include <linux/rcupdate.h>
+ #include <linux/dmaengine.h>
+ #include <linux/hrtimer.h>
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++#include <linux/imq.h>
++#endif
+ /* Don't change this without changing skb_csum_unnecessary! */
+ #define CHECKSUM_NONE 0
+@@ -356,6 +359,9 @@
+        * first. This is owned by whoever has the skb queued ATM.
+        */
+       char                    cb[48] __aligned(8);
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++      void                    *cb_next;
++#endif
+       unsigned long           _skb_refdst;
+ #ifdef CONFIG_XFRM
+@@ -394,6 +400,9 @@
+ #ifdef NET_SKBUFF_NF_DEFRAG_NEEDED
+       struct sk_buff          *nfct_reasm;
+ #endif
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++      struct nf_queue_entry   *nf_queue_entry;
++#endif
+ #ifdef CONFIG_BRIDGE_NETFILTER
+       struct nf_bridge_info   *nf_bridge;
+ #endif
+@@ -418,6 +427,10 @@
+       /* 0/13 bit hole */
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++      __u8                    imq_flags:IMQ_F_BITS;
++#endif
++
+ #ifdef CONFIG_NET_DMA
+       dma_cookie_t            dma_cookie;
+ #endif
+@@ -504,6 +517,12 @@
+       return (struct rtable *)skb_dst(skb);
+ }
++
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++extern int skb_save_cb(struct sk_buff *skb);
++extern int skb_restore_cb(struct sk_buff *skb);
++#endif
++
+ extern void kfree_skb(struct sk_buff *skb);
+ extern void consume_skb(struct sk_buff *skb);
+ extern void          __kfree_skb(struct sk_buff *skb);
+@@ -2157,6 +2176,10 @@
+       dst->nfct_reasm = src->nfct_reasm;
+       nf_conntrack_get_reasm(src->nfct_reasm);
+ #endif
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++      dst->imq_flags = src->imq_flags;
++      dst->nf_queue_entry = src->nf_queue_entry;
++#endif
+ #ifdef CONFIG_BRIDGE_NETFILTER
+       dst->nf_bridge  = src->nf_bridge;
+       nf_bridge_get(src->nf_bridge);
+diff -uNr linux-3.1/include/net/netfilter/nf_queue.h linux-3.1-imq/include/net/netfilter/nf_queue.h
+--- linux-3.1/include/net/netfilter/nf_queue.h 2011-10-24 10:10:05.000000000 +0300
++++ linux-3.1-imq/include/net/netfilter/nf_queue.h     2011-11-04 11:12:52.116390515 +0200
+@@ -30,5 +30,11 @@
+                                      const struct nf_queue_handler *qh);
+ extern void nf_unregister_queue_handlers(const struct nf_queue_handler *qh);
+ extern void nf_reinject(struct nf_queue_entry *entry, unsigned int verdict);
++extern void nf_queue_entry_release_refs(struct nf_queue_entry *entry);
++
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++extern void nf_register_queue_imq_handler(const struct nf_queue_handler *qh);
++extern void nf_unregister_queue_imq_handler(void);
++#endif
+ #endif /* _NF_QUEUE_H */
+diff -uNr linux-3.1/net/core/dev.c linux-3.1-imq/net/core/dev.c
+--- linux-3.1/net/core/dev.c   2011-10-24 10:10:05.000000000 +0300
++++ linux-3.1-imq/net/core/dev.c       2011-11-04 11:12:52.119723915 +0200
+@@ -98,6 +98,9 @@
+ #include <net/net_namespace.h>
+ #include <net/sock.h>
+ #include <linux/rtnetlink.h>
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++#include <linux/imq.h>
++#endif
+ #include <linux/proc_fs.h>
+ #include <linux/seq_file.h>
+ #include <linux/stat.h>
+@@ -2126,7 +2129,12 @@
+               if (dev->priv_flags & IFF_XMIT_DST_RELEASE)
+                       skb_dst_drop(skb);
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++              if (!list_empty(&ptype_all) &&
++                                      !(skb->imq_flags & IMQ_F_ENQUEUE))
++#else
+               if (!list_empty(&ptype_all))
++#endif
+                       dev_queue_xmit_nit(skb, dev);
+               skb_orphan_try(skb);
+diff -uNr linux-3.1/net/core/skbuff.c linux-3.1-imq/net/core/skbuff.c
+--- linux-3.1/net/core/skbuff.c        2011-10-24 10:10:05.000000000 +0300
++++ linux-3.1-imq/net/core/skbuff.c    2011-11-04 11:12:52.123057315 +0200
+@@ -73,6 +73,9 @@
+ static struct kmem_cache *skbuff_head_cache __read_mostly;
+ static struct kmem_cache *skbuff_fclone_cache __read_mostly;
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++static struct kmem_cache *skbuff_cb_store_cache __read_mostly;
++#endif
+ static void sock_pipe_buf_release(struct pipe_inode_info *pipe,
+                                 struct pipe_buffer *buf)
+@@ -92,6 +95,82 @@
+       return 1;
+ }
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++/* Control buffer save/restore for IMQ devices */
++struct skb_cb_table {
++      char                    cb[48] __aligned(8);
++      void                    *cb_next;
++      atomic_t                refcnt;
++};
++
++static DEFINE_SPINLOCK(skb_cb_store_lock);
++
++int skb_save_cb(struct sk_buff *skb)
++{
++      struct skb_cb_table *next;
++
++      next = kmem_cache_alloc(skbuff_cb_store_cache, GFP_ATOMIC);
++      if (!next)
++              return -ENOMEM;
++
++      BUILD_BUG_ON(sizeof(skb->cb) != sizeof(next->cb));
++
++      memcpy(next->cb, skb->cb, sizeof(skb->cb));
++      next->cb_next = skb->cb_next;
++
++      atomic_set(&next->refcnt, 1);
++
++      skb->cb_next = next;
++      return 0;
++}
++EXPORT_SYMBOL(skb_save_cb);
++
++int skb_restore_cb(struct sk_buff *skb)
++{
++      struct skb_cb_table *next;
++
++      if (!skb->cb_next)
++              return 0;
++
++      next = skb->cb_next;
++
++      BUILD_BUG_ON(sizeof(skb->cb) != sizeof(next->cb));
++
++      memcpy(skb->cb, next->cb, sizeof(skb->cb));
++      skb->cb_next = next->cb_next;
++
++      spin_lock(&skb_cb_store_lock);
++
++      if (atomic_dec_and_test(&next->refcnt))
++              kmem_cache_free(skbuff_cb_store_cache, next);
++
++      spin_unlock(&skb_cb_store_lock);
++
++      return 0;
++}
++EXPORT_SYMBOL(skb_restore_cb);
++
++static void skb_copy_stored_cb(struct sk_buff *new, const struct sk_buff *__old)
++{
++      struct skb_cb_table *next;
++      struct sk_buff *old;
++
++      if (!__old->cb_next) {
++              new->cb_next = NULL;
++              return;
++      }
++
++      spin_lock(&skb_cb_store_lock);
++
++      old = (struct sk_buff *)__old;
++
++      next = old->cb_next;
++      atomic_inc(&next->refcnt);
++      new->cb_next = next;
++
++      spin_unlock(&skb_cb_store_lock);
++}
++#endif
+ /* Pipe buffer operations for a socket. */
+ static const struct pipe_buf_operations sock_pipe_buf_ops = {
+@@ -392,6 +471,26 @@
+               WARN_ON(in_irq());
+               skb->destructor(skb);
+       }
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++      /* This should not happen. When it does, avoid memleak by restoring
++      the chain of cb-backups. */
++      while (skb->cb_next != NULL) {
++              if (net_ratelimit())
++                      printk(KERN_WARNING "IMQ: kfree_skb: skb->cb_next: "
++                              "%08x\n", (unsigned int)skb->cb_next);
++
++              skb_restore_cb(skb);
++      }
++      /* This should not happen either, nf_queue_entry is nullified in
++       * imq_dev_xmit(). If we have non-NULL nf_queue_entry then we are
++       * leaking entry pointers, maybe memory. We don't know if this is
++       * pointer to already freed memory, or should this be freed.
++       * If this happens we need to add refcounting, etc for nf_queue_entry.
++       */
++      if (skb->nf_queue_entry && net_ratelimit())
++              printk(KERN_WARNING
++                              "IMQ: kfree_skb: skb->nf_queue_entry != NULL");
++#endif
+ #if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE)
+       nf_conntrack_put(skb->nfct);
+ #endif
+@@ -533,6 +632,9 @@
+       new->sp                 = secpath_get(old->sp);
+ #endif
+       memcpy(new->cb, old->cb, sizeof(old->cb));
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++      skb_copy_stored_cb(new, old);
++#endif
+       new->csum               = old->csum;
+       new->local_df           = old->local_df;
+       new->pkt_type           = old->pkt_type;
+@@ -2888,6 +2990,13 @@
+                                               0,
+                                               SLAB_HWCACHE_ALIGN|SLAB_PANIC,
+                                               NULL);
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++      skbuff_cb_store_cache = kmem_cache_create("skbuff_cb_store_cache",
++                                                sizeof(struct skb_cb_table),
++                                                0,
++                                                SLAB_HWCACHE_ALIGN|SLAB_PANIC,
++                                                NULL);
++#endif
+ }
+ /**
+diff -uNr linux-3.1/net/ipv6/ip6_output.c linux-3.1-imq/net/ipv6/ip6_output.c
+--- linux-3.1/net/ipv6/ip6_output.c    2011-10-24 10:10:05.000000000 +0300
++++ linux-3.1-imq/net/ipv6/ip6_output.c        2011-11-04 11:12:52.123057315 +0200
+@@ -102,9 +102,6 @@
+       struct net_device *dev = dst->dev;
+       struct neighbour *neigh;
+-      skb->protocol = htons(ETH_P_IPV6);
+-      skb->dev = dev;
+-
+       if (ipv6_addr_is_multicast(&ipv6_hdr(skb)->daddr)) {
+               struct inet6_dev *idev = ip6_dst_idev(skb_dst(skb));
+@@ -170,6 +167,11 @@
+               return 0;
+       }
++      /* IMQ-patch: moved setting skb->dev and skb->protocol from
++       * ip6_finish_output2 to fix crashing at netif_skb_features(). */
++      skb->protocol = htons(ETH_P_IPV6);
++      skb->dev = dev;
++
+       return NF_HOOK_COND(NFPROTO_IPV6, NF_INET_POST_ROUTING, skb, NULL, dev,
+                           ip6_finish_output,
+                           !(IP6CB(skb)->flags & IP6SKB_REROUTED));
+diff -uNr linux-3.1/net/netfilter/core.c linux-3.1-imq/net/netfilter/core.c
+--- linux-3.1/net/netfilter/core.c     2011-10-24 10:10:05.000000000 +0300
++++ linux-3.1-imq/net/netfilter/core.c 2011-11-04 11:12:52.123057315 +0200
+@@ -179,9 +179,11 @@
+               ret = NF_DROP_GETERR(verdict);
+               if (ret == 0)
+                       ret = -EPERM;
+-      } else if ((verdict & NF_VERDICT_MASK) == NF_QUEUE) {
++      } else if ((verdict & NF_VERDICT_MASK) == NF_QUEUE ||
++                 (verdict & NF_VERDICT_MASK) == NF_IMQ_QUEUE) {
+               ret = nf_queue(skb, elem, pf, hook, indev, outdev, okfn,
+-                             verdict >> NF_VERDICT_QBITS);
++                             verdict >> NF_VERDICT_QBITS,
++                             verdict & NF_VERDICT_MASK);
+               if (ret < 0) {
+                       if (ret == -ECANCELED)
+                               goto next_hook;
+diff -uNr linux-3.1/net/netfilter/Kconfig linux-3.1-imq/net/netfilter/Kconfig
+--- linux-3.1/net/netfilter/Kconfig    2011-10-24 10:10:05.000000000 +0300
++++ linux-3.1-imq/net/netfilter/Kconfig        2011-11-04 11:12:52.123057315 +0200
+@@ -507,6 +507,18 @@
+         For more information on the LEDs available on your system, see
+         Documentation/leds-class.txt
++config NETFILTER_XT_TARGET_IMQ
++        tristate '"IMQ" target support'
++      depends on NETFILTER_XTABLES
++      depends on IP_NF_MANGLE || IP6_NF_MANGLE
++      select IMQ
++      default m if NETFILTER_ADVANCED=n
++        help
++          This option adds a `IMQ' target which is used to specify if and
++          to which imq device packets should get enqueued/dequeued.
++
++          To compile it as a module, choose M here.  If unsure, say N.
++
+ config NETFILTER_XT_TARGET_MARK
+       tristate '"MARK" target support'
+       depends on NETFILTER_ADVANCED
+diff -uNr linux-3.1/net/netfilter/Makefile linux-3.1-imq/net/netfilter/Makefile
+--- linux-3.1/net/netfilter/Makefile   2011-10-24 10:10:05.000000000 +0300
++++ linux-3.1-imq/net/netfilter/Makefile       2011-11-04 11:12:52.123057315 +0200
+@@ -56,6 +56,7 @@
+ obj-$(CONFIG_NETFILTER_XT_TARGET_CT) += xt_CT.o
+ obj-$(CONFIG_NETFILTER_XT_TARGET_DSCP) += xt_DSCP.o
+ obj-$(CONFIG_NETFILTER_XT_TARGET_HL) += xt_HL.o
++obj-$(CONFIG_NETFILTER_XT_TARGET_IMQ) += xt_IMQ.o
+ obj-$(CONFIG_NETFILTER_XT_TARGET_LED) += xt_LED.o
+ obj-$(CONFIG_NETFILTER_XT_TARGET_NFLOG) += xt_NFLOG.o
+ obj-$(CONFIG_NETFILTER_XT_TARGET_NFQUEUE) += xt_NFQUEUE.o
+diff -uNr linux-3.1/net/netfilter/nf_internals.h linux-3.1-imq/net/netfilter/nf_internals.h
+--- linux-3.1/net/netfilter/nf_internals.h     2011-10-24 10:10:05.000000000 +0300
++++ linux-3.1-imq/net/netfilter/nf_internals.h 2011-11-04 11:12:52.123057315 +0200
+@@ -29,7 +29,7 @@
+                   struct net_device *indev,
+                   struct net_device *outdev,
+                   int (*okfn)(struct sk_buff *),
+-                  unsigned int queuenum);
++                  unsigned int queuenum, unsigned int queuetype);
+ extern int __init netfilter_queue_init(void);
+ /* nf_log.c */
+diff -uNr linux-3.1/net/netfilter/nf_queue.c linux-3.1-imq/net/netfilter/nf_queue.c
+--- linux-3.1/net/netfilter/nf_queue.c 2011-10-24 10:10:05.000000000 +0300
++++ linux-3.1-imq/net/netfilter/nf_queue.c     2011-11-04 11:12:52.123057315 +0200
+@@ -22,6 +22,26 @@
+ static DEFINE_MUTEX(queue_handler_mutex);
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++static const struct nf_queue_handler *queue_imq_handler;
++
++void nf_register_queue_imq_handler(const struct nf_queue_handler *qh)
++{
++      mutex_lock(&queue_handler_mutex);
++      rcu_assign_pointer(queue_imq_handler, qh);
++      mutex_unlock(&queue_handler_mutex);
++}
++EXPORT_SYMBOL_GPL(nf_register_queue_imq_handler);
++
++void nf_unregister_queue_imq_handler(void)
++{
++      mutex_lock(&queue_handler_mutex);
++      rcu_assign_pointer(queue_imq_handler, NULL);
++      mutex_unlock(&queue_handler_mutex);
++}
++EXPORT_SYMBOL_GPL(nf_unregister_queue_imq_handler);
++#endif
++
+ /* return EBUSY when somebody else is registered, return EEXIST if the
+  * same handler is registered, return 0 in case of success. */
+ int nf_register_queue_handler(u_int8_t pf, const struct nf_queue_handler *qh)
+@@ -92,7 +112,7 @@
+ }
+ EXPORT_SYMBOL_GPL(nf_unregister_queue_handlers);
+-static void nf_queue_entry_release_refs(struct nf_queue_entry *entry)
++void nf_queue_entry_release_refs(struct nf_queue_entry *entry)
+ {
+       /* Release those devices we held, or Alexey will kill me. */
+       if (entry->indev)
+@@ -112,6 +132,7 @@
+       /* Drop reference to owner of hook which queued us. */
+       module_put(entry->elem->owner);
+ }
++EXPORT_SYMBOL_GPL(nf_queue_entry_release_refs);
+ /*
+  * Any packet that leaves via this function must come back
+@@ -123,7 +144,8 @@
+                     struct net_device *indev,
+                     struct net_device *outdev,
+                     int (*okfn)(struct sk_buff *),
+-                    unsigned int queuenum)
++                    unsigned int queuenum,
++                    unsigned int queuetype)
+ {
+       int status = -ENOENT;
+       struct nf_queue_entry *entry = NULL;
+@@ -137,7 +159,17 @@
+       /* QUEUE == DROP if no one is waiting, to be safe. */
+       rcu_read_lock();
+-      qh = rcu_dereference(queue_handler[pf]);
++      if (queuetype == NF_IMQ_QUEUE) {
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++              qh = rcu_dereference(queue_imq_handler);
++#else
++              BUG();
++              goto err_unlock;
++#endif
++      } else {
++              qh = rcu_dereference(queue_handler[pf]);
++      }
++
+       if (!qh) {
+               status = -ESRCH;
+               goto err_unlock;
+@@ -209,7 +241,8 @@
+            struct net_device *indev,
+            struct net_device *outdev,
+            int (*okfn)(struct sk_buff *),
+-           unsigned int queuenum)
++           unsigned int queuenum,
++           unsigned int queuetype)
+ {
+       struct sk_buff *segs;
+       int err;
+@@ -217,7 +250,7 @@
+       if (!skb_is_gso(skb))
+               return __nf_queue(skb, elem, pf, hook, indev, outdev, okfn,
+-                                queuenum);
++                                queuenum, queuetype);
+       switch (pf) {
+       case NFPROTO_IPV4:
+@@ -244,7 +277,7 @@
+               segs->next = NULL;
+               if (err == 0)
+                       err = __nf_queue(segs, elem, pf, hook, indev,
+-                                         outdev, okfn, queuenum);
++                                       outdev, okfn, queuenum, queuetype);
+               if (err == 0)
+                       queued++;
+               else
+@@ -299,9 +332,11 @@
+               local_bh_enable();
+               break;
+       case NF_QUEUE:
++      case NF_IMQ_QUEUE:
+               err = __nf_queue(skb, elem, entry->pf, entry->hook,
+                                entry->indev, entry->outdev, entry->okfn,
+-                               verdict >> NF_VERDICT_QBITS);
++                               verdict >> NF_VERDICT_QBITS,
++                               verdict & NF_VERDICT_MASK);
+               if (err < 0) {
+                       if (err == -ECANCELED)
+                               goto next_hook;
+diff -uNr linux-3.1/net/netfilter/xt_IMQ.c linux-3.1-imq/net/netfilter/xt_IMQ.c
+--- linux-3.1/net/netfilter/xt_IMQ.c   1970-01-01 02:00:00.000000000 +0200
++++ linux-3.1-imq/net/netfilter/xt_IMQ.c       2011-11-04 11:12:52.123057315 +0200
+@@ -0,0 +1,74 @@
++/*
++ * This target marks packets to be enqueued to an imq device
++ */
++#include <linux/module.h>
++#include <linux/skbuff.h>
++#include <linux/netfilter/x_tables.h>
++#include <linux/netfilter/xt_IMQ.h>
++#include <linux/imq.h>
++
++static unsigned int imq_target(struct sk_buff *pskb,
++                              const struct xt_action_param *par)
++{
++      const struct xt_imq_info *mr = par->targinfo;
++
++      pskb->imq_flags = (mr->todev & IMQ_F_IFMASK) | IMQ_F_ENQUEUE;
++
++      return XT_CONTINUE;
++}
++
++static int imq_checkentry(const struct xt_tgchk_param *par)
++{
++      struct xt_imq_info *mr = par->targinfo;
++
++      if (mr->todev > IMQ_MAX_DEVS - 1) {
++              printk(KERN_WARNING
++                     "IMQ: invalid device specified, highest is %u\n",
++                     IMQ_MAX_DEVS - 1);
++              return -EINVAL;
++      }
++
++      return 0;
++}
++
++static struct xt_target xt_imq_reg[] __read_mostly = {
++      {
++              .name           = "IMQ",
++              .family         = AF_INET,
++              .checkentry     = imq_checkentry,
++              .target         = imq_target,
++              .targetsize     = sizeof(struct xt_imq_info),
++              .table          = "mangle",
++              .me             = THIS_MODULE
++      },
++      {
++              .name           = "IMQ",
++              .family         = AF_INET6,
++              .checkentry     = imq_checkentry,
++              .target         = imq_target,
++              .targetsize     = sizeof(struct xt_imq_info),
++              .table          = "mangle",
++              .me             = THIS_MODULE
++      },
++};
++
++static int __init imq_init(void)
++{
++      return xt_register_targets(xt_imq_reg, ARRAY_SIZE(xt_imq_reg));
++}
++
++static void __exit imq_fini(void)
++{
++      xt_unregister_targets(xt_imq_reg, ARRAY_SIZE(xt_imq_reg));
++}
++
++module_init(imq_init);
++module_exit(imq_fini);
++
++MODULE_AUTHOR("http://www.linuximq.net");
++MODULE_DESCRIPTION("Pseudo-driver for the intermediate queue device. "
++                 "See http://www.linuximq.net/ for more information.");
++MODULE_LICENSE("GPL");
++MODULE_ALIAS("ipt_IMQ");
++MODULE_ALIAS("ip6t_IMQ");
++
diff --git a/src/patches/linux-3.2-0001-panda-wlan-fix.patch b/src/patches/linux-3.2-0001-panda-wlan-fix.patch
new file mode 100644 (file)
index 0000000..a2aaf20
--- /dev/null
@@ -0,0 +1,12 @@
+diff --git a/arch/arm/mach-omap2/twl-common.c b/arch/arm/mach-omap2/twl-common.c
+index daa056e..fe03b09 100644
+--- a/arch/arm/mach-omap2/twl-common.c
++++ b/arch/arm/mach-omap2/twl-common.c
+@@ -261,6 +261,7 @@ static struct regulator_init_data omap4_vusb_idata = {
+ static struct regulator_init_data omap4_clk32kg_idata = {
+       .constraints = {
+               .valid_ops_mask         = REGULATOR_CHANGE_STATUS,
++              .always_on              = true,
+       },
+ };
diff --git a/src/patches/linux-3.2-0002-panda-i2c.patch b/src/patches/linux-3.2-0002-panda-i2c.patch
new file mode 100644 (file)
index 0000000..fa3f6cc
--- /dev/null
@@ -0,0 +1,51 @@
+diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c
+index 7f47092..2a05d3d 100644
+--- a/arch/arm/mach-omap2/id.c
++++ b/arch/arm/mach-omap2/id.c
+@@ -389,8 +389,10 @@ static void __init omap4_check_revision(void)
+                       omap_revision = OMAP4430_REV_ES2_1;
+                       break;
+               case 4:
+-              default:
+                       omap_revision = OMAP4430_REV_ES2_2;
++              case 6:
++              default:
++                      omap_revision = OMAP4430_REV_ES2_3;
+               }
+               break;
+       case 0xb94e:
+@@ -403,7 +405,7 @@ static void __init omap4_check_revision(void)
+               break;
+       default:
+               /* Unknown default to latest silicon rev as default */
+-              omap_revision = OMAP4430_REV_ES2_2;
++              omap_revision = OMAP4430_REV_ES2_3;
+       }
+       pr_info("OMAP%04x ES%d.%d\n", omap_rev() >> 16,
+diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
+index 7695e5d..71d3e36 100644
+--- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
++++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
+@@ -2257,7 +2257,8 @@ static struct omap_hwmod_class omap44xx_i2c_hwmod_class = {
+ };
+ static struct omap_i2c_dev_attr i2c_dev_attr = {
+-      .flags  = OMAP_I2C_FLAG_BUS_SHIFT_NONE,
++      .flags  = OMAP_I2C_FLAG_BUS_SHIFT_NONE |
++                      OMAP_I2C_FLAG_RESET_REGS_POSTIDLE,
+ };
+ /* i2c1 */
+diff --git a/arch/arm/plat-omap/include/plat/cpu.h b/arch/arm/plat-omap/include/plat/cpu.h
+index 408a12f..e279395 100644
+--- a/arch/arm/plat-omap/include/plat/cpu.h
++++ b/arch/arm/plat-omap/include/plat/cpu.h
+@@ -391,6 +391,7 @@ IS_OMAP_TYPE(3517, 0x3517)
+ #define OMAP4430_REV_ES2_0    (OMAP443X_CLASS | (0x20 << 8))
+ #define OMAP4430_REV_ES2_1    (OMAP443X_CLASS | (0x21 << 8))
+ #define OMAP4430_REV_ES2_2    (OMAP443X_CLASS | (0x22 << 8))
++#define OMAP4430_REV_ES2_3    (OMAP443X_CLASS | (0x23 << 8))
+ #define OMAP446X_CLASS                0x44600044
+ #define OMAP4460_REV_ES1_0    (OMAP446X_CLASS | (0x10 << 8))
diff --git a/src/patches/linux-3.2-imq.patch b/src/patches/linux-3.2-imq.patch
new file mode 100644 (file)
index 0000000..8e8685d
--- /dev/null
@@ -0,0 +1,1603 @@
+diff -uNr linux-3.2/drivers/net/imq.c linux-3.2-imq/drivers/net/imq.c
+--- linux-3.2/drivers/net/imq.c        1970-01-01 02:00:00.000000000 +0200
++++ linux-3.2-imq/drivers/net/imq.c    2011-11-04 12:16:10.454992642 +0200
+@@ -0,0 +1,850 @@
++/*
++ *             Pseudo-driver for the intermediate queue device.
++ *
++ *             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.
++ *
++ * Authors:    Patrick McHardy, <kaber@trash.net>
++ *
++ *            The first version was written by Martin Devera, <devik@cdi.cz>
++ *
++ * Credits:    Jan Rafaj <imq2t@cedric.vabo.cz>
++ *              - Update patch to 2.4.21
++ *             Sebastian Strollo <sstrollo@nortelnetworks.com>
++ *              - Fix "Dead-loop on netdevice imq"-issue
++ *             Marcel Sebek <sebek64@post.cz>
++ *              - Update to 2.6.2-rc1
++ *
++ *           After some time of inactivity there is a group taking care
++ *           of IMQ again: http://www.linuximq.net
++ *
++ *
++ *           2004/06/30 - New version of IMQ patch to kernels <=2.6.7
++ *             including the following changes:
++ *
++ *           - Correction of ipv6 support "+"s issue (Hasso Tepper)
++ *           - Correction of imq_init_devs() issue that resulted in
++ *           kernel OOPS unloading IMQ as module (Norbert Buchmuller)
++ *           - Addition of functionality to choose number of IMQ devices
++ *           during kernel config (Andre Correa)
++ *           - Addition of functionality to choose how IMQ hooks on
++ *           PRE and POSTROUTING (after or before NAT) (Andre Correa)
++ *           - Cosmetic corrections (Norbert Buchmuller) (Andre Correa)
++ *
++ *
++ *             2005/12/16 - IMQ versions between 2.6.7 and 2.6.13 were
++ *             released with almost no problems. 2.6.14-x was released
++ *             with some important changes: nfcache was removed; After
++ *             some weeks of trouble we figured out that some IMQ fields
++ *             in skb were missing in skbuff.c - skb_clone and copy_skb_header.
++ *             These functions are correctly patched by this new patch version.
++ *
++ *             Thanks for all who helped to figure out all the problems with
++ *             2.6.14.x: Patrick McHardy, Rune Kock, VeNoMouS, Max CtRiX,
++ *             Kevin Shanahan, Richard Lucassen, Valery Dachev (hopefully
++ *             I didn't forget anybody). I apologize again for my lack of time.
++ *
++ *
++ *             2008/06/17 - 2.6.25 - Changed imq.c to use qdisc_run() instead
++ *             of qdisc_restart() and moved qdisc_run() to tasklet to avoid
++ *             recursive locking. New initialization routines to fix 'rmmod' not
++ *             working anymore. Used code from ifb.c. (Jussi Kivilinna)
++ *
++ *             2008/08/06 - 2.6.26 - (JK)
++ *              - Replaced tasklet with 'netif_schedule()'.
++ *              - Cleaned up and added comments for imq_nf_queue().
++ *
++ *             2009/04/12
++ *              - Add skb_save_cb/skb_restore_cb helper functions for backuping
++ *                control buffer. This is needed because qdisc-layer on kernels
++ *                2.6.27 and newer overwrite control buffer. (Jussi Kivilinna)
++ *              - Add better locking for IMQ device. Hopefully this will solve
++ *                SMP issues. (Jussi Kivilinna)
++ *              - Port to 2.6.27
++ *              - Port to 2.6.28
++ *              - Port to 2.6.29 + fix rmmod not working
++ *
++ *             2009/04/20 - (Jussi Kivilinna)
++ *              - Use netdevice feature flags to avoid extra packet handling
++ *                by core networking layer and possibly increase performance.
++ *
++ *             2009/09/26 - (Jussi Kivilinna)
++ *              - Add imq_nf_reinject_lockless to fix deadlock with
++ *                imq_nf_queue/imq_nf_reinject.
++ *
++ *             2009/12/08 - (Jussi Kivilinna)
++ *              - Port to 2.6.32
++ *              - Add check for skb->nf_queue_entry==NULL in imq_dev_xmit()
++ *              - Also add better error checking for skb->nf_queue_entry usage
++ *
++ *             2010/02/25 - (Jussi Kivilinna)
++ *              - Port to 2.6.33
++ *
++ *             2010/08/15 - (Jussi Kivilinna)
++ *              - Port to 2.6.35
++ *              - Simplify hook registration by using nf_register_hooks.
++ *              - nf_reinject doesn't need spinlock around it, therefore remove
++ *                imq_nf_reinject function. Other nf_reinject users protect
++ *                their own data with spinlock. With IMQ however all data is
++ *                needed is stored per skbuff, so no locking is needed.
++ *              - Changed IMQ to use 'separate' NF_IMQ_QUEUE instead of
++ *                NF_QUEUE, this allows working coexistance of IMQ and other
++ *                NF_QUEUE users.
++ *              - Make IMQ multi-queue. Number of IMQ device queues can be
++ *                increased with 'numqueues' module parameters. Default number
++ *                of queues is 1, in other words by default IMQ works as
++ *                single-queue device. Multi-queue selection is based on
++ *                IFB multi-queue patch by Changli Gao <xiaosuo@gmail.com>.
++ *
++ *             2011/03/18 - (Jussi Kivilinna)
++ *              - Port to 2.6.38
++ *
++ *             2011/07/12 - (syoder89@gmail.com)
++ *              - Crash fix that happens when the receiving interface has more
++ *                than one queue (add missing skb_set_queue_mapping in
++ *                imq_select_queue).
++ *
++ *             2011/07/26 - (Jussi Kivilinna)
++ *              - Add queue mapping checks for packets exiting IMQ.
++ *              - Port to 3.0
++ *
++ *             2011/08/16 - (Jussi Kivilinna)
++ *              - Clear IFF_TX_SKB_SHARING flag that was added for linux 3.0.2
++ *
++ *             2011/11/03 - Germano Michel <germanomichel@gmail.com>
++ *              - Fix IMQ for net namespaces
++ *
++ *             2011/11/04 - Jussi Kivilinna <jussi.kivilinna@mbnet.fi>
++ *              - Port to 3.1
++ *              - Clean-up, move 'get imq device pointer by imqX name' to
++ *                separate function from imq_nf_queue().
++ *
++ *           Also, many thanks to pablo Sebastian Greco for making the initial
++ *           patch and to those who helped the testing.
++ *
++ *             More info at: http://www.linuximq.net/ (Andre Correa)
++ */
++
++#include <linux/module.h>
++#include <linux/kernel.h>
++#include <linux/moduleparam.h>
++#include <linux/list.h>
++#include <linux/skbuff.h>
++#include <linux/netdevice.h>
++#include <linux/etherdevice.h>
++#include <linux/rtnetlink.h>
++#include <linux/if_arp.h>
++#include <linux/netfilter.h>
++#include <linux/netfilter_ipv4.h>
++#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
++      #include <linux/netfilter_ipv6.h>
++#endif
++#include <linux/imq.h>
++#include <net/pkt_sched.h>
++#include <net/netfilter/nf_queue.h>
++#include <net/sock.h>
++#include <linux/ip.h>
++#include <linux/ipv6.h>
++#include <linux/if_vlan.h>
++#include <linux/if_pppox.h>
++#include <net/ip.h>
++#include <net/ipv6.h>
++
++static int imq_nf_queue(struct nf_queue_entry *entry, unsigned queue_num);
++
++static nf_hookfn imq_nf_hook;
++
++static struct nf_hook_ops imq_ops[] = {
++      {
++      /* imq_ingress_ipv4 */
++              .hook           = imq_nf_hook,
++              .owner          = THIS_MODULE,
++              .pf             = PF_INET,
++              .hooknum        = NF_INET_PRE_ROUTING,
++#if defined(CONFIG_IMQ_BEHAVIOR_BA) || defined(CONFIG_IMQ_BEHAVIOR_BB)
++              .priority       = NF_IP_PRI_MANGLE + 1,
++#else
++              .priority       = NF_IP_PRI_NAT_DST + 1,
++#endif
++      },
++      {
++      /* imq_egress_ipv4 */
++              .hook           = imq_nf_hook,
++              .owner          = THIS_MODULE,
++              .pf             = PF_INET,
++              .hooknum        = NF_INET_POST_ROUTING,
++#if defined(CONFIG_IMQ_BEHAVIOR_AA) || defined(CONFIG_IMQ_BEHAVIOR_BA)
++              .priority       = NF_IP_PRI_LAST,
++#else
++              .priority       = NF_IP_PRI_NAT_SRC - 1,
++#endif
++      },
++#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
++      {
++      /* imq_ingress_ipv6 */
++              .hook           = imq_nf_hook,
++              .owner          = THIS_MODULE,
++              .pf             = PF_INET6,
++              .hooknum        = NF_INET_PRE_ROUTING,
++#if defined(CONFIG_IMQ_BEHAVIOR_BA) || defined(CONFIG_IMQ_BEHAVIOR_BB)
++              .priority       = NF_IP6_PRI_MANGLE + 1,
++#else
++              .priority       = NF_IP6_PRI_NAT_DST + 1,
++#endif
++      },
++      {
++      /* imq_egress_ipv6 */
++              .hook           = imq_nf_hook,
++              .owner          = THIS_MODULE,
++              .pf             = PF_INET6,
++              .hooknum        = NF_INET_POST_ROUTING,
++#if defined(CONFIG_IMQ_BEHAVIOR_AA) || defined(CONFIG_IMQ_BEHAVIOR_BA)
++              .priority       = NF_IP6_PRI_LAST,
++#else
++              .priority       = NF_IP6_PRI_NAT_SRC - 1,
++#endif
++      },
++#endif
++};
++
++#if defined(CONFIG_IMQ_NUM_DEVS)
++static int numdevs = CONFIG_IMQ_NUM_DEVS;
++#else
++static int numdevs = IMQ_MAX_DEVS;
++#endif
++
++static struct net_device *imq_devs_cache[IMQ_MAX_DEVS];
++
++#define IMQ_MAX_QUEUES 32
++static int numqueues = 1;
++static u32 imq_hashrnd;
++
++static inline __be16 pppoe_proto(const struct sk_buff *skb)
++{
++      return *((__be16 *)(skb_mac_header(skb) + ETH_HLEN +
++                      sizeof(struct pppoe_hdr)));
++}
++
++static u16 imq_hash(struct net_device *dev, struct sk_buff *skb)
++{
++      unsigned int pull_len;
++      u16 protocol = skb->protocol;
++      u32 addr1, addr2;
++      u32 hash, ihl = 0;
++      union {
++              u16 in16[2];
++              u32 in32;
++      } ports;
++      u8 ip_proto;
++
++      pull_len = 0;
++
++recheck:
++      switch (protocol) {
++      case htons(ETH_P_8021Q): {
++              if (unlikely(skb_pull(skb, VLAN_HLEN) == NULL))
++                      goto other;
++
++              pull_len += VLAN_HLEN;
++              skb->network_header += VLAN_HLEN;
++
++              protocol = vlan_eth_hdr(skb)->h_vlan_encapsulated_proto;
++              goto recheck;
++      }
++
++      case htons(ETH_P_PPP_SES): {
++              if (unlikely(skb_pull(skb, PPPOE_SES_HLEN) == NULL))
++                      goto other;
++
++              pull_len += PPPOE_SES_HLEN;
++              skb->network_header += PPPOE_SES_HLEN;
++
++              protocol = pppoe_proto(skb);
++              goto recheck;
++      }
++
++      case htons(ETH_P_IP): {
++              const struct iphdr *iph = ip_hdr(skb);
++
++              if (unlikely(!pskb_may_pull(skb, sizeof(struct iphdr))))
++                      goto other;
++
++              addr1 = iph->daddr;
++              addr2 = iph->saddr;
++
++              ip_proto = !(ip_hdr(skb)->frag_off & htons(IP_MF | IP_OFFSET)) ?
++                               iph->protocol : 0;
++              ihl = ip_hdrlen(skb);
++
++              break;
++      }
++#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
++      case htons(ETH_P_IPV6): {
++              const struct ipv6hdr *iph = ipv6_hdr(skb);
++
++              if (unlikely(!pskb_may_pull(skb, sizeof(struct ipv6hdr))))
++                      goto other;
++
++              addr1 = iph->daddr.s6_addr32[3];
++              addr2 = iph->saddr.s6_addr32[3];
++              ihl = ipv6_skip_exthdr(skb, sizeof(struct ipv6hdr), &ip_proto);
++              if (unlikely(ihl < 0))
++                      goto other;
++
++              break;
++      }
++#endif
++      default:
++other:
++              if (pull_len != 0) {
++                      skb_push(skb, pull_len);
++                      skb->network_header -= pull_len;
++              }
++
++              return (u16)(ntohs(protocol) % dev->real_num_tx_queues);
++      }
++
++      if (addr1 > addr2)
++              swap(addr1, addr2);
++
++      switch (ip_proto) {
++      case IPPROTO_TCP:
++      case IPPROTO_UDP:
++      case IPPROTO_DCCP:
++      case IPPROTO_ESP:
++      case IPPROTO_AH:
++      case IPPROTO_SCTP:
++      case IPPROTO_UDPLITE: {
++              if (likely(skb_copy_bits(skb, ihl, &ports.in32, 4) >= 0)) {
++                      if (ports.in16[0] > ports.in16[1])
++                              swap(ports.in16[0], ports.in16[1]);
++                      break;
++              }
++              /* fall-through */
++      }
++      default:
++              ports.in32 = 0;
++              break;
++      }
++
++      if (pull_len != 0) {
++              skb_push(skb, pull_len);
++              skb->network_header -= pull_len;
++      }
++
++      hash = jhash_3words(addr1, addr2, ports.in32, imq_hashrnd ^ ip_proto);
++
++      return (u16)(((u64)hash * dev->real_num_tx_queues) >> 32);
++}
++
++static inline bool sk_tx_queue_recorded(struct sock *sk)
++{
++      return (sk_tx_queue_get(sk) >= 0);
++}
++
++static struct netdev_queue *imq_select_queue(struct net_device *dev,
++                                              struct sk_buff *skb)
++{
++      u16 queue_index = 0;
++      u32 hash;
++
++      if (likely(dev->real_num_tx_queues == 1))
++              goto out;
++
++      /* IMQ can be receiving ingress or engress packets. */
++
++      /* Check first for if rx_queue is set */
++      if (skb_rx_queue_recorded(skb)) {
++              queue_index = skb_get_rx_queue(skb);
++              goto out;
++      }
++
++      /* Check if socket has tx_queue set */
++      if (sk_tx_queue_recorded(skb->sk)) {
++              queue_index = sk_tx_queue_get(skb->sk);
++              goto out;
++      }
++
++      /* Try use socket hash */
++      if (skb->sk && skb->sk->sk_hash) {
++              hash = skb->sk->sk_hash;
++              queue_index =
++                      (u16)(((u64)hash * dev->real_num_tx_queues) >> 32);
++              goto out;
++      }
++
++      /* Generate hash from packet data */
++      queue_index = imq_hash(dev, skb);
++
++out:
++      if (unlikely(queue_index >= dev->real_num_tx_queues))
++              queue_index = (u16)((u32)queue_index % dev->real_num_tx_queues);
++
++      skb_set_queue_mapping(skb, queue_index);
++      return netdev_get_tx_queue(dev, queue_index);
++}
++
++static struct net_device_stats *imq_get_stats(struct net_device *dev)
++{
++      return &dev->stats;
++}
++
++/* called for packets kfree'd in qdiscs at places other than enqueue */
++static void imq_skb_destructor(struct sk_buff *skb)
++{
++      struct nf_queue_entry *entry = skb->nf_queue_entry;
++
++      skb->nf_queue_entry = NULL;
++
++      if (entry) {
++              nf_queue_entry_release_refs(entry);
++              kfree(entry);
++      }
++
++      skb_restore_cb(skb); /* kfree backup */
++}
++
++static void imq_done_check_queue_mapping(struct sk_buff *skb,
++                                       struct net_device *dev)
++{
++      unsigned int queue_index;
++
++      /* Don't let queue_mapping be left too large after exiting IMQ */
++      if (likely(skb->dev != dev && skb->dev != NULL)) {
++              queue_index = skb_get_queue_mapping(skb);
++              if (unlikely(queue_index >= skb->dev->real_num_tx_queues)) {
++                      queue_index = (u16)((u32)queue_index %
++                                              skb->dev->real_num_tx_queues);
++                      skb_set_queue_mapping(skb, queue_index);
++              }
++      } else {
++              /* skb->dev was IMQ device itself or NULL, be on safe side and
++               * just clear queue mapping.
++               */
++              skb_set_queue_mapping(skb, 0);
++      }
++}
++
++static netdev_tx_t imq_dev_xmit(struct sk_buff *skb, struct net_device *dev)
++{
++      struct nf_queue_entry *entry = skb->nf_queue_entry;
++
++      skb->nf_queue_entry = NULL;
++      dev->trans_start = jiffies;
++
++      dev->stats.tx_bytes += skb->len;
++      dev->stats.tx_packets++;
++
++      if (unlikely(entry == NULL)) {
++              /* We don't know what is going on here.. packet is queued for
++               * imq device, but (probably) not by us.
++               *
++               * If this packet was not send here by imq_nf_queue(), then
++               * skb_save_cb() was not used and skb_free() should not show:
++               *   WARNING: IMQ: kfree_skb: skb->cb_next:..
++               * and/or
++               *   WARNING: IMQ: kfree_skb: skb->nf_queue_entry...
++               *
++               * However if this message is shown, then IMQ is somehow broken
++               * and you should report this to linuximq.net.
++               */
++
++              /* imq_dev_xmit is black hole that eats all packets, report that
++               * we eat this packet happily and increase dropped counters.
++               */
++
++              dev->stats.tx_dropped++;
++              dev_kfree_skb(skb);
++
++              return NETDEV_TX_OK;
++      }
++
++      skb_restore_cb(skb); /* restore skb->cb */
++
++      skb->imq_flags = 0;
++      skb->destructor = NULL;
++
++      imq_done_check_queue_mapping(skb, dev);
++
++      nf_reinject(entry, NF_ACCEPT);
++
++      return NETDEV_TX_OK;
++}
++
++static struct net_device *get_imq_device_by_index(int index)
++{
++      struct net_device *dev = NULL;
++      struct net *net;
++      char buf[8];
++
++      /* get device by name and cache result */
++      snprintf(buf, sizeof(buf), "imq%d", index);
++
++      /* Search device from all namespaces. */
++      for_each_net(net) {
++              dev = dev_get_by_name(net, buf);
++              if (dev)
++                      break;
++      }
++
++      if (WARN_ON_ONCE(dev == NULL)) {
++              /* IMQ device not found. Exotic config? */
++              return ERR_PTR(-ENODEV);
++      }
++
++      imq_devs_cache[index] = dev;
++      dev_put(dev);
++
++      return dev;
++}
++
++static int imq_nf_queue(struct nf_queue_entry *entry, unsigned queue_num)
++{
++      struct net_device *dev;
++      struct sk_buff *skb_orig, *skb, *skb_shared;
++      struct Qdisc *q;
++      struct netdev_queue *txq;
++      spinlock_t *root_lock;
++      int users, index;
++      int retval = -EINVAL;
++      unsigned int orig_queue_index;
++
++      index = entry->skb->imq_flags & IMQ_F_IFMASK;
++      if (unlikely(index > numdevs - 1)) {
++              if (net_ratelimit())
++                      printk(KERN_WARNING
++                             "IMQ: invalid device specified, highest is %u\n",
++                             numdevs - 1);
++              retval = -EINVAL;
++              goto out;
++      }
++
++      /* check for imq device by index from cache */
++      dev = imq_devs_cache[index];
++      if (unlikely(!dev)) {
++              dev = get_imq_device_by_index(index);
++              if (IS_ERR(dev)) {
++                      retval = PTR_ERR(dev);
++                      goto out;
++              }
++      }
++
++      if (unlikely(!(dev->flags & IFF_UP))) {
++              entry->skb->imq_flags = 0;
++              nf_reinject(entry, NF_ACCEPT);
++              retval = 0;
++              goto out;
++      }
++      dev->last_rx = jiffies;
++
++      skb = entry->skb;
++      skb_orig = NULL;
++
++      /* skb has owner? => make clone */
++      if (unlikely(skb->destructor)) {
++              skb_orig = skb;
++              skb = skb_clone(skb, GFP_ATOMIC);
++              if (unlikely(!skb)) {
++                      retval = -ENOMEM;
++                      goto out;
++              }
++              entry->skb = skb;
++      }
++
++      skb->nf_queue_entry = entry;
++
++      dev->stats.rx_bytes += skb->len;
++      dev->stats.rx_packets++;
++
++      if (!skb->dev) {
++              /* skb->dev == NULL causes problems, try the find cause. */
++              if (net_ratelimit()) {
++                      dev_warn(&dev->dev,
++                               "received packet with skb->dev == NULL\n");
++                      dump_stack();
++              }
++
++              skb->dev = dev;
++      }
++
++      /* Disables softirqs for lock below */
++      rcu_read_lock_bh();
++
++      /* Multi-queue selection */
++      orig_queue_index = skb_get_queue_mapping(skb);
++      txq = imq_select_queue(dev, skb);
++
++      q = rcu_dereference(txq->qdisc);
++      if (unlikely(!q->enqueue))
++              goto packet_not_eaten_by_imq_dev;
++
++      root_lock = qdisc_lock(q);
++      spin_lock(root_lock);
++
++      users = atomic_read(&skb->users);
++
++      skb_shared = skb_get(skb); /* increase reference count by one */
++      skb_save_cb(skb_shared); /* backup skb->cb, as qdisc layer will
++                                      overwrite it */
++      qdisc_enqueue_root(skb_shared, q); /* might kfree_skb */
++
++      if (likely(atomic_read(&skb_shared->users) == users + 1)) {
++              kfree_skb(skb_shared); /* decrease reference count by one */
++
++              skb->destructor = &imq_skb_destructor;
++
++              /* cloned? */
++              if (unlikely(skb_orig))
++                      kfree_skb(skb_orig); /* free original */
++
++              spin_unlock(root_lock);
++              rcu_read_unlock_bh();
++
++              /* schedule qdisc dequeue */
++              __netif_schedule(q);
++
++              retval = 0;
++              goto out;
++      } else {
++              skb_restore_cb(skb_shared); /* restore skb->cb */
++              skb->nf_queue_entry = NULL;
++              /* qdisc dropped packet and decreased skb reference count of
++               * skb, so we don't really want to and try refree as that would
++               * actually destroy the skb. */
++              spin_unlock(root_lock);
++              goto packet_not_eaten_by_imq_dev;
++      }
++
++packet_not_eaten_by_imq_dev:
++      skb_set_queue_mapping(skb, orig_queue_index);
++      rcu_read_unlock_bh();
++
++      /* cloned? restore original */
++      if (unlikely(skb_orig)) {
++              kfree_skb(skb);
++              entry->skb = skb_orig;
++      }
++      retval = -1;
++out:
++      return retval;
++}
++
++static unsigned int imq_nf_hook(unsigned int hook, struct sk_buff *pskb,
++                              const struct net_device *indev,
++                              const struct net_device *outdev,
++                              int (*okfn)(struct sk_buff *))
++{
++      return (pskb->imq_flags & IMQ_F_ENQUEUE) ? NF_IMQ_QUEUE : NF_ACCEPT;
++}
++
++static int imq_close(struct net_device *dev)
++{
++      netif_stop_queue(dev);
++      return 0;
++}
++
++static int imq_open(struct net_device *dev)
++{
++      netif_start_queue(dev);
++      return 0;
++}
++
++static const struct net_device_ops imq_netdev_ops = {
++      .ndo_open               = imq_open,
++      .ndo_stop               = imq_close,
++      .ndo_start_xmit         = imq_dev_xmit,
++      .ndo_get_stats          = imq_get_stats,
++};
++
++static void imq_setup(struct net_device *dev)
++{
++      dev->netdev_ops         = &imq_netdev_ops;
++      dev->type               = ARPHRD_VOID;
++      dev->mtu                = 16000; /* too small? */
++      dev->tx_queue_len       = 11000; /* too big? */
++      dev->flags              = IFF_NOARP;
++      dev->features           = NETIF_F_SG | NETIF_F_FRAGLIST |
++                                NETIF_F_GSO | NETIF_F_HW_CSUM |
++                                NETIF_F_HIGHDMA;
++      dev->priv_flags         &= ~(IFF_XMIT_DST_RELEASE |
++                                   IFF_TX_SKB_SHARING);
++}
++
++static int imq_validate(struct nlattr *tb[], struct nlattr *data[])
++{
++      int ret = 0;
++
++      if (tb[IFLA_ADDRESS]) {
++              if (nla_len(tb[IFLA_ADDRESS]) != ETH_ALEN) {
++                      ret = -EINVAL;
++                      goto end;
++              }
++              if (!is_valid_ether_addr(nla_data(tb[IFLA_ADDRESS]))) {
++                      ret = -EADDRNOTAVAIL;
++                      goto end;
++              }
++      }
++      return 0;
++end:
++      printk(KERN_WARNING "IMQ: imq_validate failed (%d)\n", ret);
++      return ret;
++}
++
++static struct rtnl_link_ops imq_link_ops __read_mostly = {
++      .kind           = "imq",
++      .priv_size      = 0,
++      .setup          = imq_setup,
++      .validate       = imq_validate,
++};
++
++static const struct nf_queue_handler imq_nfqh = {
++      .name  = "imq",
++      .outfn = imq_nf_queue,
++};
++
++static int __init imq_init_hooks(void)
++{
++      int ret;
++
++      nf_register_queue_imq_handler(&imq_nfqh);
++
++      ret = nf_register_hooks(imq_ops, ARRAY_SIZE(imq_ops));
++      if (ret < 0)
++              nf_unregister_queue_imq_handler();
++
++      return ret;
++}
++
++static int __init imq_init_one(int index)
++{
++      struct net_device *dev;
++      int ret;
++
++      dev = alloc_netdev_mq(0, "imq%d", imq_setup, numqueues);
++      if (!dev)
++              return -ENOMEM;
++
++      ret = dev_alloc_name(dev, dev->name);
++      if (ret < 0)
++              goto fail;
++
++      dev->rtnl_link_ops = &imq_link_ops;
++      ret = register_netdevice(dev);
++      if (ret < 0)
++              goto fail;
++
++      return 0;
++fail:
++      free_netdev(dev);
++      return ret;
++}
++
++static int __init imq_init_devs(void)
++{
++      int err, i;
++
++      if (numdevs < 1 || numdevs > IMQ_MAX_DEVS) {
++              printk(KERN_ERR "IMQ: numdevs has to be betweed 1 and %u\n",
++                     IMQ_MAX_DEVS);
++              return -EINVAL;
++      }
++
++      if (numqueues < 1 || numqueues > IMQ_MAX_QUEUES) {
++              printk(KERN_ERR "IMQ: numqueues has to be betweed 1 and %u\n",
++                     IMQ_MAX_QUEUES);
++              return -EINVAL;
++      }
++
++      get_random_bytes(&imq_hashrnd, sizeof(imq_hashrnd));
++
++      rtnl_lock();
++      err = __rtnl_link_register(&imq_link_ops);
++
++      for (i = 0; i < numdevs && !err; i++)
++              err = imq_init_one(i);
++
++      if (err) {
++              __rtnl_link_unregister(&imq_link_ops);
++              memset(imq_devs_cache, 0, sizeof(imq_devs_cache));
++      }
++      rtnl_unlock();
++
++      return err;
++}
++
++static int __init imq_init_module(void)
++{
++      int err;
++
++#if defined(CONFIG_IMQ_NUM_DEVS)
++      BUILD_BUG_ON(CONFIG_IMQ_NUM_DEVS > 16);
++      BUILD_BUG_ON(CONFIG_IMQ_NUM_DEVS < 2);
++      BUILD_BUG_ON(CONFIG_IMQ_NUM_DEVS - 1 > IMQ_F_IFMASK);
++#endif
++
++      err = imq_init_devs();
++      if (err) {
++              printk(KERN_ERR "IMQ: Error trying imq_init_devs(net)\n");
++              return err;
++      }
++
++      err = imq_init_hooks();
++      if (err) {
++              printk(KERN_ERR "IMQ: Error trying imq_init_hooks()\n");
++              rtnl_link_unregister(&imq_link_ops);
++              memset(imq_devs_cache, 0, sizeof(imq_devs_cache));
++              return err;
++      }
++
++      printk(KERN_INFO "IMQ driver loaded successfully. "
++              "(numdevs = %d, numqueues = %d)\n", numdevs, numqueues);
++
++#if defined(CONFIG_IMQ_BEHAVIOR_BA) || defined(CONFIG_IMQ_BEHAVIOR_BB)
++      printk(KERN_INFO "\tHooking IMQ before NAT on PREROUTING.\n");
++#else
++      printk(KERN_INFO "\tHooking IMQ after NAT on PREROUTING.\n");
++#endif
++#if defined(CONFIG_IMQ_BEHAVIOR_AB) || defined(CONFIG_IMQ_BEHAVIOR_BB)
++      printk(KERN_INFO "\tHooking IMQ before NAT on POSTROUTING.\n");
++#else
++      printk(KERN_INFO "\tHooking IMQ after NAT on POSTROUTING.\n");
++#endif
++
++      return 0;
++}
++
++static void __exit imq_unhook(void)
++{
++      nf_unregister_hooks(imq_ops, ARRAY_SIZE(imq_ops));
++      nf_unregister_queue_imq_handler();
++}
++
++static void __exit imq_cleanup_devs(void)
++{
++      rtnl_link_unregister(&imq_link_ops);
++      memset(imq_devs_cache, 0, sizeof(imq_devs_cache));
++}
++
++static void __exit imq_exit_module(void)
++{
++      imq_unhook();
++      imq_cleanup_devs();
++      printk(KERN_INFO "IMQ driver unloaded successfully.\n");
++}
++
++module_init(imq_init_module);
++module_exit(imq_exit_module);
++
++module_param(numdevs, int, 0);
++module_param(numqueues, int, 0);
++MODULE_PARM_DESC(numdevs, "number of IMQ devices (how many imq* devices will "
++                      "be created)");
++MODULE_PARM_DESC(numqueues, "number of queues per IMQ device");
++MODULE_AUTHOR("http://www.linuximq.net");
++MODULE_DESCRIPTION("Pseudo-driver for the intermediate queue device. See "
++                      "http://www.linuximq.net/ for more information.");
++MODULE_LICENSE("GPL");
++MODULE_ALIAS_RTNL_LINK("imq");
++
+diff -uNr linux-3.2/drivers/net/Kconfig linux-3.2-imq/drivers/net/Kconfig
+--- linux-3.2/drivers/net/Kconfig      2011-10-24 10:10:05.000000000 +0300
++++ linux-3.2-imq/drivers/net/Kconfig  2011-11-04 11:12:52.106390309 +0200
+@@ -90,6 +90,125 @@
+         To compile this driver as a module, choose M here: the module
+         will be called eql.  If unsure, say N.
++config IMQ
++      tristate "IMQ (intermediate queueing device) support"
++      depends on NETDEVICES && NETFILTER
++      ---help---
++        The IMQ device(s) is used as placeholder for QoS queueing
++        disciplines. Every packet entering/leaving the IP stack can be
++        directed through the IMQ device where it's enqueued/dequeued to the
++        attached qdisc. This allows you to treat network devices as classes
++        and distribute bandwidth among them. Iptables is used to specify
++        through which IMQ device, if any, packets travel.
++
++        More information at: http://www.linuximq.net/
++
++        To compile this driver as a module, choose M here: the module
++        will be called imq.  If unsure, say N.
++
++choice
++      prompt "IMQ behavior (PRE/POSTROUTING)"
++      depends on IMQ
++      default IMQ_BEHAVIOR_AB
++      help
++        This setting defines how IMQ behaves in respect to its
++        hooking in PREROUTING and POSTROUTING.
++
++        IMQ can work in any of the following ways:
++
++            PREROUTING   |      POSTROUTING
++        -----------------|-------------------
++        #1  After NAT    |      After NAT
++        #2  After NAT    |      Before NAT
++        #3  Before NAT   |      After NAT
++        #4  Before NAT   |      Before NAT
++
++        The default behavior is to hook before NAT on PREROUTING
++        and after NAT on POSTROUTING (#3).
++
++        This settings are specially usefull when trying to use IMQ
++        to shape NATed clients.
++
++        More information can be found at: www.linuximq.net
++
++        If not sure leave the default settings alone.
++
++config IMQ_BEHAVIOR_AA
++      bool "IMQ AA"
++      help
++        This setting defines how IMQ behaves in respect to its
++        hooking in PREROUTING and POSTROUTING.
++
++        Choosing this option will make IMQ hook like this:
++
++        PREROUTING:   After NAT
++        POSTROUTING:  After NAT
++
++        More information can be found at: www.linuximq.net
++
++        If not sure leave the default settings alone.
++
++config IMQ_BEHAVIOR_AB
++      bool "IMQ AB"
++      help
++        This setting defines how IMQ behaves in respect to its
++        hooking in PREROUTING and POSTROUTING.
++
++        Choosing this option will make IMQ hook like this:
++
++        PREROUTING:   After NAT
++        POSTROUTING:  Before NAT
++
++        More information can be found at: www.linuximq.net
++
++        If not sure leave the default settings alone.
++
++config IMQ_BEHAVIOR_BA
++      bool "IMQ BA"
++      help
++        This setting defines how IMQ behaves in respect to its
++        hooking in PREROUTING and POSTROUTING.
++
++        Choosing this option will make IMQ hook like this:
++
++        PREROUTING:   Before NAT
++        POSTROUTING:  After NAT
++
++        More information can be found at: www.linuximq.net
++
++        If not sure leave the default settings alone.
++
++config IMQ_BEHAVIOR_BB
++      bool "IMQ BB"
++      help
++        This setting defines how IMQ behaves in respect to its
++        hooking in PREROUTING and POSTROUTING.
++
++        Choosing this option will make IMQ hook like this:
++
++        PREROUTING:   Before NAT
++        POSTROUTING:  Before NAT
++
++        More information can be found at: www.linuximq.net
++
++        If not sure leave the default settings alone.
++
++endchoice
++
++config IMQ_NUM_DEVS
++      int "Number of IMQ devices"
++      range 2 16
++      depends on IMQ
++      default "16"
++      help
++        This setting defines how many IMQ devices will be created.
++
++        The default value is 16.
++
++        More information can be found at: www.linuximq.net
++
++        If not sure leave the default settings alone.
++
+ config NET_FC
+       bool "Fibre Channel driver support"
+       depends on SCSI && PCI
+diff -uNr linux-3.2/drivers/net/Makefile linux-3.2-imq/drivers/net/Makefile
+--- linux-3.2/drivers/net/Makefile     2011-10-24 10:10:05.000000000 +0300
++++ linux-3.2-imq/drivers/net/Makefile 2011-11-04 11:12:52.106390309 +0200
+@@ -8,6 +8,7 @@ 
+ obj-$(CONFIG_BONDING) += bonding/
+ obj-$(CONFIG_DUMMY) += dummy.o
+ obj-$(CONFIG_EQUALIZER) += eql.o
++obj-$(CONFIG_IMQ) += imq.o
+ obj-$(CONFIG_IFB) += ifb.o
+ obj-$(CONFIG_MACVLAN) += macvlan.o
+ obj-$(CONFIG_MACVTAP) += macvtap.o
+diff -uNr linux-3.2/include/linux/imq.h linux-3.2-imq/include/linux/imq.h
+--- linux-3.2/include/linux/imq.h      1970-01-01 02:00:00.000000000 +0200
++++ linux-3.2-imq/include/linux/imq.h  2011-11-04 11:12:52.109723710 +0200
+@@ -0,0 +1,13 @@
++#ifndef _IMQ_H
++#define _IMQ_H
++
++/* IFMASK (16 device indexes, 0 to 15) and flag(s) fit in 5 bits */
++#define IMQ_F_BITS    5
++
++#define IMQ_F_IFMASK  0x0f
++#define IMQ_F_ENQUEUE 0x10
++
++#define IMQ_MAX_DEVS  (IMQ_F_IFMASK + 1)
++
++#endif /* _IMQ_H */
++
+diff -uNr linux-3.2/include/linux/netfilter/xt_IMQ.h linux-3.2-imq/include/linux/netfilter/xt_IMQ.h
+--- linux-3.2/include/linux/netfilter/xt_IMQ.h 1970-01-01 02:00:00.000000000 +0200
++++ linux-3.2-imq/include/linux/netfilter/xt_IMQ.h     2011-11-04 11:12:52.109723710 +0200
+@@ -0,0 +1,9 @@
++#ifndef _XT_IMQ_H
++#define _XT_IMQ_H
++
++struct xt_imq_info {
++      unsigned int todev;     /* target imq device */
++};
++
++#endif /* _XT_IMQ_H */
++
+diff -uNr linux-3.2/include/linux/netfilter.h linux-3.2-imq/include/linux/netfilter.h
+--- linux-3.2/include/linux/netfilter.h        2011-10-24 10:10:05.000000000 +0300
++++ linux-3.2-imq/include/linux/netfilter.h    2011-11-04 11:12:52.109723710 +0200
+@@ -22,7 +22,8 @@
+ #define NF_QUEUE 3
+ #define NF_REPEAT 4
+ #define NF_STOP 5
+-#define NF_MAX_VERDICT NF_STOP
++#define NF_IMQ_QUEUE 6
++#define NF_MAX_VERDICT NF_IMQ_QUEUE
+ /* we overload the higher bits for encoding auxiliary data such as the queue
+  * number or errno values. Not nice, but better than additional function
+diff -uNr linux-3.2/include/linux/netfilter_ipv4/ipt_IMQ.h linux-3.2-imq/include/linux/netfilter_ipv4/ipt_IMQ.h
+--- linux-3.2/include/linux/netfilter_ipv4/ipt_IMQ.h   1970-01-01 02:00:00.000000000 +0200
++++ linux-3.2-imq/include/linux/netfilter_ipv4/ipt_IMQ.h       2011-11-04 11:12:52.109723710 +0200
+@@ -0,0 +1,10 @@
++#ifndef _IPT_IMQ_H
++#define _IPT_IMQ_H
++
++/* Backwards compatibility for old userspace */
++#include <linux/netfilter/xt_IMQ.h>
++
++#define ipt_imq_info xt_imq_info
++
++#endif /* _IPT_IMQ_H */
++
+diff -uNr linux-3.2/include/linux/netfilter_ipv6/ip6t_IMQ.h linux-3.2-imq/include/linux/netfilter_ipv6/ip6t_IMQ.h
+--- linux-3.2/include/linux/netfilter_ipv6/ip6t_IMQ.h  1970-01-01 02:00:00.000000000 +0200
++++ linux-3.2-imq/include/linux/netfilter_ipv6/ip6t_IMQ.h      2011-11-04 11:12:52.113057113 +0200
+@@ -0,0 +1,10 @@
++#ifndef _IP6T_IMQ_H
++#define _IP6T_IMQ_H
++
++/* Backwards compatibility for old userspace */
++#include <linux/netfilter/xt_IMQ.h>
++
++#define ip6t_imq_info xt_imq_info
++
++#endif /* _IP6T_IMQ_H */
++
+diff -uNr linux-3.2/include/linux/skbuff.h linux-3.2-imq/include/linux/skbuff.h
+--- linux-3.2/include/linux/skbuff.h   2011-10-24 10:10:05.000000000 +0300
++++ linux-3.2-imq/include/linux/skbuff.h       2011-11-04 11:12:52.116390515 +0200
+@@ -30,6 +30,9 @@
+ #include <linux/dmaengine.h>
+ #include <linux/hrtimer.h>
+ #include <linux/dma-mapping.h>
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++#include <linux/imq.h>
++#endif
+ /* Don't change this without changing skb_csum_unnecessary! */
+ #define CHECKSUM_NONE 0
+@@ -386,6 +389,9 @@
+        * first. This is owned by whoever has the skb queued ATM.
+        */
+       char                    cb[48] __aligned(8);
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++      void                    *cb_next;
++#endif
+       unsigned long           _skb_refdst;
+ #ifdef CONFIG_XFRM
+@@ -424,6 +430,9 @@
+ #ifdef NET_SKBUFF_NF_DEFRAG_NEEDED
+       struct sk_buff          *nfct_reasm;
+ #endif
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++      struct nf_queue_entry   *nf_queue_entry;
++#endif
+ #ifdef CONFIG_BRIDGE_NETFILTER
+       struct nf_bridge_info   *nf_bridge;
+ #endif
+@@ -449,6 +458,10 @@
+       /* 0/13 bit hole */
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++      __u8                    imq_flags:IMQ_F_BITS;
++#endif
++
+ #ifdef CONFIG_NET_DMA
+       dma_cookie_t            dma_cookie;
+ #endif
+@@ -535,6 +548,12 @@
+       return (struct rtable *)skb_dst(skb);
+ }
++
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++extern int skb_save_cb(struct sk_buff *skb);
++extern int skb_restore_cb(struct sk_buff *skb);
++#endif
++
+ extern void kfree_skb(struct sk_buff *skb);
+ extern void consume_skb(struct sk_buff *skb);
+ extern void          __kfree_skb(struct sk_buff *skb);
+@@ -2368,6 +2387,10 @@
+       dst->nfct_reasm = src->nfct_reasm;
+       nf_conntrack_get_reasm(src->nfct_reasm);
+ #endif
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++      dst->imq_flags = src->imq_flags;
++      dst->nf_queue_entry = src->nf_queue_entry;
++#endif
+ #ifdef CONFIG_BRIDGE_NETFILTER
+       dst->nf_bridge  = src->nf_bridge;
+       nf_bridge_get(src->nf_bridge);
+diff -uNr linux-3.2/include/net/netfilter/nf_queue.h linux-3.2-imq/include/net/netfilter/nf_queue.h
+--- linux-3.2/include/net/netfilter/nf_queue.h 2011-10-24 10:10:05.000000000 +0300
++++ linux-3.2-imq/include/net/netfilter/nf_queue.h     2011-11-04 11:12:52.116390515 +0200
+@@ -30,5 +30,11 @@
+                                      const struct nf_queue_handler *qh);
+ extern void nf_unregister_queue_handlers(const struct nf_queue_handler *qh);
+ extern void nf_reinject(struct nf_queue_entry *entry, unsigned int verdict);
++extern void nf_queue_entry_release_refs(struct nf_queue_entry *entry);
++
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++extern void nf_register_queue_imq_handler(const struct nf_queue_handler *qh);
++extern void nf_unregister_queue_imq_handler(void);
++#endif
+ #endif /* _NF_QUEUE_H */
+diff -uNr linux-3.2/net/core/dev.c linux-3.2-imq/net/core/dev.c
+--- linux-3.2/net/core/dev.c   2011-10-24 10:10:05.000000000 +0300
++++ linux-3.2-imq/net/core/dev.c       2011-11-04 11:12:52.119723915 +0200
+@@ -98,6 +98,9 @@
+ #include <net/net_namespace.h>
+ #include <net/sock.h>
+ #include <linux/rtnetlink.h>
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++#include <linux/imq.h>
++#endif
+ #include <linux/proc_fs.h>
+ #include <linux/seq_file.h>
+ #include <linux/stat.h>
+@@ -2185,7 +2188,12 @@
+               if (dev->priv_flags & IFF_XMIT_DST_RELEASE)
+                       skb_dst_drop(skb);
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++              if (!list_empty(&ptype_all) &&
++                                      !(skb->imq_flags & IMQ_F_ENQUEUE))
++#else
+               if (!list_empty(&ptype_all))
++#endif
+                       dev_queue_xmit_nit(skb, dev);
+               skb_orphan_try(skb);
+diff -uNr linux-3.2/net/core/skbuff.c linux-3.2-imq/net/core/skbuff.c
+--- linux-3.2/net/core/skbuff.c        2011-10-24 10:10:05.000000000 +0300
++++ linux-3.2-imq/net/core/skbuff.c    2011-11-04 11:12:52.123057315 +0200
+@@ -73,6 +73,9 @@
+ static struct kmem_cache *skbuff_head_cache __read_mostly;
+ static struct kmem_cache *skbuff_fclone_cache __read_mostly;
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++static struct kmem_cache *skbuff_cb_store_cache __read_mostly;
++#endif
+ static void sock_pipe_buf_release(struct pipe_inode_info *pipe,
+                                 struct pipe_buffer *buf)
+@@ -92,6 +95,82 @@
+       return 1;
+ }
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++/* Control buffer save/restore for IMQ devices */
++struct skb_cb_table {
++      char                    cb[48] __aligned(8);
++      void                    *cb_next;
++      atomic_t                refcnt;
++};
++
++static DEFINE_SPINLOCK(skb_cb_store_lock);
++
++int skb_save_cb(struct sk_buff *skb)
++{
++      struct skb_cb_table *next;
++
++      next = kmem_cache_alloc(skbuff_cb_store_cache, GFP_ATOMIC);
++      if (!next)
++              return -ENOMEM;
++
++      BUILD_BUG_ON(sizeof(skb->cb) != sizeof(next->cb));
++
++      memcpy(next->cb, skb->cb, sizeof(skb->cb));
++      next->cb_next = skb->cb_next;
++
++      atomic_set(&next->refcnt, 1);
++
++      skb->cb_next = next;
++      return 0;
++}
++EXPORT_SYMBOL(skb_save_cb);
++
++int skb_restore_cb(struct sk_buff *skb)
++{
++      struct skb_cb_table *next;
++
++      if (!skb->cb_next)
++              return 0;
++
++      next = skb->cb_next;
++
++      BUILD_BUG_ON(sizeof(skb->cb) != sizeof(next->cb));
++
++      memcpy(skb->cb, next->cb, sizeof(skb->cb));
++      skb->cb_next = next->cb_next;
++
++      spin_lock(&skb_cb_store_lock);
++
++      if (atomic_dec_and_test(&next->refcnt))
++              kmem_cache_free(skbuff_cb_store_cache, next);
++
++      spin_unlock(&skb_cb_store_lock);
++
++      return 0;
++}
++EXPORT_SYMBOL(skb_restore_cb);
++
++static void skb_copy_stored_cb(struct sk_buff *new, const struct sk_buff *__old)
++{
++      struct skb_cb_table *next;
++      struct sk_buff *old;
++
++      if (!__old->cb_next) {
++              new->cb_next = NULL;
++              return;
++      }
++
++      spin_lock(&skb_cb_store_lock);
++
++      old = (struct sk_buff *)__old;
++
++      next = old->cb_next;
++      atomic_inc(&next->refcnt);
++      new->cb_next = next;
++
++      spin_unlock(&skb_cb_store_lock);
++}
++#endif
+ /* Pipe buffer operations for a socket. */
+ static const struct pipe_buf_operations sock_pipe_buf_ops = {
+@@ -403,6 +482,26 @@
+               WARN_ON(in_irq());
+               skb->destructor(skb);
+       }
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++      /* This should not happen. When it does, avoid memleak by restoring
++      the chain of cb-backups. */
++      while (skb->cb_next != NULL) {
++              if (net_ratelimit())
++                      printk(KERN_WARNING "IMQ: kfree_skb: skb->cb_next: "
++                              "%08x\n", (unsigned int)skb->cb_next);
++
++              skb_restore_cb(skb);
++      }
++      /* This should not happen either, nf_queue_entry is nullified in
++       * imq_dev_xmit(). If we have non-NULL nf_queue_entry then we are
++       * leaking entry pointers, maybe memory. We don't know if this is
++       * pointer to already freed memory, or should this be freed.
++       * If this happens we need to add refcounting, etc for nf_queue_entry.
++       */
++      if (skb->nf_queue_entry && net_ratelimit())
++              printk(KERN_WARNING
++                              "IMQ: kfree_skb: skb->nf_queue_entry != NULL");
++#endif
+ #if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE)
+       nf_conntrack_put(skb->nfct);
+ #endif
+@@ -547,6 +646,9 @@
+       new->sp                 = secpath_get(old->sp);
+ #endif
+       memcpy(new->cb, old->cb, sizeof(old->cb));
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++      skb_copy_stored_cb(new, old);
++#endif
+       new->csum               = old->csum;
+       new->local_df           = old->local_df;
+       new->pkt_type           = old->pkt_type;
+@@ -2907,6 +3009,13 @@
+                                               0,
+                                               SLAB_HWCACHE_ALIGN|SLAB_PANIC,
+                                               NULL);
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++      skbuff_cb_store_cache = kmem_cache_create("skbuff_cb_store_cache",
++                                                sizeof(struct skb_cb_table),
++                                                0,
++                                                SLAB_HWCACHE_ALIGN|SLAB_PANIC,
++                                                NULL);
++#endif
+ }
+ /**
+diff -uNr linux-3.2/net/ipv6/ip6_output.c linux-3.2-imq/net/ipv6/ip6_output.c
+--- linux-3.2/net/ipv6/ip6_output.c    2011-10-24 10:10:05.000000000 +0300
++++ linux-3.2-imq/net/ipv6/ip6_output.c        2011-11-04 11:12:52.123057315 +0200
+@@ -102,9 +102,6 @@
+       struct net_device *dev = dst->dev;
+       struct neighbour *neigh;
+-      skb->protocol = htons(ETH_P_IPV6);
+-      skb->dev = dev;
+-
+       if (ipv6_addr_is_multicast(&ipv6_hdr(skb)->daddr)) {
+               struct inet6_dev *idev = ip6_dst_idev(skb_dst(skb));
+@@ -170,6 +167,11 @@
+               return 0;
+       }
++      /* IMQ-patch: moved setting skb->dev and skb->protocol from
++       * ip6_finish_output2 to fix crashing at netif_skb_features(). */
++      skb->protocol = htons(ETH_P_IPV6);
++      skb->dev = dev;
++
+       return NF_HOOK_COND(NFPROTO_IPV6, NF_INET_POST_ROUTING, skb, NULL, dev,
+                           ip6_finish_output,
+                           !(IP6CB(skb)->flags & IP6SKB_REROUTED));
+diff -uNr linux-3.2/net/netfilter/core.c linux-3.2-imq/net/netfilter/core.c
+--- linux-3.2/net/netfilter/core.c     2011-10-24 10:10:05.000000000 +0300
++++ linux-3.2-imq/net/netfilter/core.c 2011-11-04 11:12:52.123057315 +0200
+@@ -179,9 +179,11 @@
+               ret = NF_DROP_GETERR(verdict);
+               if (ret == 0)
+                       ret = -EPERM;
+-      } else if ((verdict & NF_VERDICT_MASK) == NF_QUEUE) {
++      } else if ((verdict & NF_VERDICT_MASK) == NF_QUEUE ||
++                 (verdict & NF_VERDICT_MASK) == NF_IMQ_QUEUE) {
+               int err = nf_queue(skb, elem, pf, hook, indev, outdev, okfn,
+-                                              verdict >> NF_VERDICT_QBITS);
++                                              verdict >> NF_VERDICT_QBITS,
++                                              verdict & NF_VERDICT_MASK);
+               if (err < 0) {
+                       if (err == -ECANCELED)
+                               goto next_hook;
+diff -uNr linux-3.2/net/netfilter/Kconfig linux-3.2-imq/net/netfilter/Kconfig
+--- linux-3.2/net/netfilter/Kconfig    2011-10-24 10:10:05.000000000 +0300
++++ linux-3.2-imq/net/netfilter/Kconfig        2011-11-04 11:12:52.123057315 +0200
+@@ -506,6 +506,18 @@
+         For more information on the LEDs available on your system, see
+         Documentation/leds/leds-class.txt
++config NETFILTER_XT_TARGET_IMQ
++        tristate '"IMQ" target support'
++      depends on NETFILTER_XTABLES
++      depends on IP_NF_MANGLE || IP6_NF_MANGLE
++      select IMQ
++      default m if NETFILTER_ADVANCED=n
++        help
++          This option adds a `IMQ' target which is used to specify if and
++          to which imq device packets should get enqueued/dequeued.
++
++          To compile it as a module, choose M here.  If unsure, say N.
++
+ config NETFILTER_XT_TARGET_MARK
+       tristate '"MARK" target support'
+       depends on NETFILTER_ADVANCED
+diff -uNr linux-3.2/net/netfilter/Makefile linux-3.2-imq/net/netfilter/Makefile
+--- linux-3.2/net/netfilter/Makefile   2011-10-24 10:10:05.000000000 +0300
++++ linux-3.2-imq/net/netfilter/Makefile       2011-11-04 11:12:52.123057315 +0200
+@@ -56,6 +56,7 @@
+ obj-$(CONFIG_NETFILTER_XT_TARGET_CT) += xt_CT.o
+ obj-$(CONFIG_NETFILTER_XT_TARGET_DSCP) += xt_DSCP.o
+ obj-$(CONFIG_NETFILTER_XT_TARGET_HL) += xt_HL.o
++obj-$(CONFIG_NETFILTER_XT_TARGET_IMQ) += xt_IMQ.o
+ obj-$(CONFIG_NETFILTER_XT_TARGET_LED) += xt_LED.o
+ obj-$(CONFIG_NETFILTER_XT_TARGET_NFLOG) += xt_NFLOG.o
+ obj-$(CONFIG_NETFILTER_XT_TARGET_NFQUEUE) += xt_NFQUEUE.o
+diff -uNr linux-3.2/net/netfilter/nf_internals.h linux-3.2-imq/net/netfilter/nf_internals.h
+--- linux-3.2/net/netfilter/nf_internals.h     2011-10-24 10:10:05.000000000 +0300
++++ linux-3.2-imq/net/netfilter/nf_internals.h 2011-11-04 11:12:52.123057315 +0200
+@@ -29,7 +29,7 @@
+                   struct net_device *indev,
+                   struct net_device *outdev,
+                   int (*okfn)(struct sk_buff *),
+-                  unsigned int queuenum);
++                  unsigned int queuenum, unsigned int queuetype);
+ extern int __init netfilter_queue_init(void);
+ /* nf_log.c */
+diff -uNr linux-3.2/net/netfilter/nf_queue.c linux-3.2-imq/net/netfilter/nf_queue.c
+--- linux-3.2/net/netfilter/nf_queue.c 2011-10-24 10:10:05.000000000 +0300
++++ linux-3.2-imq/net/netfilter/nf_queue.c     2011-11-04 11:12:52.123057315 +0200
+@@ -22,6 +22,26 @@
+ static DEFINE_MUTEX(queue_handler_mutex);
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++static const struct nf_queue_handler *queue_imq_handler;
++
++void nf_register_queue_imq_handler(const struct nf_queue_handler *qh)
++{
++      mutex_lock(&queue_handler_mutex);
++      rcu_assign_pointer(queue_imq_handler, qh);
++      mutex_unlock(&queue_handler_mutex);
++}
++EXPORT_SYMBOL_GPL(nf_register_queue_imq_handler);
++
++void nf_unregister_queue_imq_handler(void)
++{
++      mutex_lock(&queue_handler_mutex);
++      rcu_assign_pointer(queue_imq_handler, NULL);
++      mutex_unlock(&queue_handler_mutex);
++}
++EXPORT_SYMBOL_GPL(nf_unregister_queue_imq_handler);
++#endif
++
+ /* return EBUSY when somebody else is registered, return EEXIST if the
+  * same handler is registered, return 0 in case of success. */
+ int nf_register_queue_handler(u_int8_t pf, const struct nf_queue_handler *qh)
+@@ -92,7 +112,7 @@
+ }
+ EXPORT_SYMBOL_GPL(nf_unregister_queue_handlers);
+-static void nf_queue_entry_release_refs(struct nf_queue_entry *entry)
++void nf_queue_entry_release_refs(struct nf_queue_entry *entry)
+ {
+       /* Release those devices we held, or Alexey will kill me. */
+       if (entry->indev)
+@@ -112,6 +132,7 @@
+       /* Drop reference to owner of hook which queued us. */
+       module_put(entry->elem->owner);
+ }
++EXPORT_SYMBOL_GPL(nf_queue_entry_release_refs);
+ /*
+  * Any packet that leaves via this function must come back
+@@ -123,7 +144,8 @@
+                     struct net_device *indev,
+                     struct net_device *outdev,
+                     int (*okfn)(struct sk_buff *),
+-                    unsigned int queuenum)
++                    unsigned int queuenum,
++                    unsigned int queuetype)
+ {
+       int status = -ENOENT;
+       struct nf_queue_entry *entry = NULL;
+@@ -137,7 +159,17 @@
+       /* QUEUE == DROP if no one is waiting, to be safe. */
+       rcu_read_lock();
+-      qh = rcu_dereference(queue_handler[pf]);
++      if (queuetype == NF_IMQ_QUEUE) {
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++              qh = rcu_dereference(queue_imq_handler);
++#else
++              BUG();
++              goto err_unlock;
++#endif
++      } else {
++              qh = rcu_dereference(queue_handler[pf]);
++      }
++
+       if (!qh) {
+               status = -ESRCH;
+               goto err_unlock;
+@@ -209,7 +241,8 @@
+            struct net_device *indev,
+            struct net_device *outdev,
+            int (*okfn)(struct sk_buff *),
+-           unsigned int queuenum)
++           unsigned int queuenum,
++           unsigned int queuetype)
+ {
+       struct sk_buff *segs;
+       int err;
+@@ -217,7 +250,7 @@
+       if (!skb_is_gso(skb))
+               return __nf_queue(skb, elem, pf, hook, indev, outdev, okfn,
+-                                queuenum);
++                                queuenum, queuetype);
+       switch (pf) {
+       case NFPROTO_IPV4:
+@@ -244,7 +277,7 @@
+               segs->next = NULL;
+               if (err == 0)
+                       err = __nf_queue(segs, elem, pf, hook, indev,
+-                                         outdev, okfn, queuenum);
++                                       outdev, okfn, queuenum, queuetype);
+               if (err == 0)
+                       queued++;
+               else
+@@ -299,9 +332,11 @@
+               local_bh_enable();
+               break;
+       case NF_QUEUE:
++      case NF_IMQ_QUEUE:
+               err = __nf_queue(skb, elem, entry->pf, entry->hook,
+                                entry->indev, entry->outdev, entry->okfn,
+-                               verdict >> NF_VERDICT_QBITS);
++                               verdict >> NF_VERDICT_QBITS,
++                               verdict & NF_VERDICT_MASK);
+               if (err < 0) {
+                       if (err == -ECANCELED)
+                               goto next_hook;
+diff -uNr linux-3.2/net/netfilter/xt_IMQ.c linux-3.2-imq/net/netfilter/xt_IMQ.c
+--- linux-3.2/net/netfilter/xt_IMQ.c   1970-01-01 02:00:00.000000000 +0200
++++ linux-3.2-imq/net/netfilter/xt_IMQ.c       2011-11-04 11:12:52.123057315 +0200
+@@ -0,0 +1,74 @@
++/*
++ * This target marks packets to be enqueued to an imq device
++ */
++#include <linux/module.h>
++#include <linux/skbuff.h>
++#include <linux/netfilter/x_tables.h>
++#include <linux/netfilter/xt_IMQ.h>
++#include <linux/imq.h>
++
++static unsigned int imq_target(struct sk_buff *pskb,
++                              const struct xt_action_param *par)
++{
++      const struct xt_imq_info *mr = par->targinfo;
++
++      pskb->imq_flags = (mr->todev & IMQ_F_IFMASK) | IMQ_F_ENQUEUE;
++
++      return XT_CONTINUE;
++}
++
++static int imq_checkentry(const struct xt_tgchk_param *par)
++{
++      struct xt_imq_info *mr = par->targinfo;
++
++      if (mr->todev > IMQ_MAX_DEVS - 1) {
++              printk(KERN_WARNING
++                     "IMQ: invalid device specified, highest is %u\n",
++                     IMQ_MAX_DEVS - 1);
++              return -EINVAL;
++      }
++
++      return 0;
++}
++
++static struct xt_target xt_imq_reg[] __read_mostly = {
++      {
++              .name           = "IMQ",
++              .family         = AF_INET,
++              .checkentry     = imq_checkentry,
++              .target         = imq_target,
++              .targetsize     = sizeof(struct xt_imq_info),
++              .table          = "mangle",
++              .me             = THIS_MODULE
++      },
++      {
++              .name           = "IMQ",
++              .family         = AF_INET6,
++              .checkentry     = imq_checkentry,
++              .target         = imq_target,
++              .targetsize     = sizeof(struct xt_imq_info),
++              .table          = "mangle",
++              .me             = THIS_MODULE
++      },
++};
++
++static int __init imq_init(void)
++{
++      return xt_register_targets(xt_imq_reg, ARRAY_SIZE(xt_imq_reg));
++}
++
++static void __exit imq_fini(void)
++{
++      xt_unregister_targets(xt_imq_reg, ARRAY_SIZE(xt_imq_reg));
++}
++
++module_init(imq_init);
++module_exit(imq_fini);
++
++MODULE_AUTHOR("http://www.linuximq.net");
++MODULE_DESCRIPTION("Pseudo-driver for the intermediate queue device. "
++                 "See http://www.linuximq.net/ for more information.");
++MODULE_LICENSE("GPL");
++MODULE_ALIAS("ipt_IMQ");
++MODULE_ALIAS("ip6t_IMQ");
++
diff --git a/src/patches/linux-3.2-panda-reboot.patch b/src/patches/linux-3.2-panda-reboot.patch
new file mode 100644 (file)
index 0000000..8e37837
--- /dev/null
@@ -0,0 +1,29 @@
+With commit 3d3f78d752bf, reboot seems to broken on ARM
+machines. CPU dies while doing flush_pmd_entry() as part of
+setup_mm_for_reboot()
+
+I know this is not the fix but intention is to report the
+issue and also provide temporary fix till it get fixed correctly
+
+Signed-off-by: Santosh Shilimkar <santosh.shilimkar@xxxxxx>
+Reported-by: Anand Gadiyar <gadiyar@xxxxxx>
+---
+Tested with OMAP4 device.
+
+ arch/arm/kernel/process.c |    1 -
+ 1 files changed, 0 insertions(+), 1 deletions(-)
+
+diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c
+index e76fcaa..ac370b2 100644
+--- a/arch/arm/kernel/process.c
++++ b/arch/arm/kernel/process.c
+@@ -247,7 +247,6 @@ void machine_power_off(void)
+ void machine_restart(char *cmd)
+ {
+-      machine_shutdown();
+       arm_pm_restart(reboot_mode, cmd);
+ }
+-- 
+1.6.0.4
diff --git a/src/patches/linux-3.2.25-arm_kirkwood_setups.patch b/src/patches/linux-3.2.25-arm_kirkwood_setups.patch
new file mode 100644 (file)
index 0000000..94bbb4b
--- /dev/null
@@ -0,0 +1,692 @@
+diff -Naur linux-3.2.25.org/arch/arm/Kconfig linux-3.2.25/arch/arm/Kconfig
+--- linux-3.2.25.org/arch/arm/Kconfig  2012-08-02 09:38:04.000000000 -0400
++++ linux-3.2.25/arch/arm/Kconfig      2012-08-11 04:42:20.985949735 -0400
+@@ -197,7 +197,7 @@
+ config ARM_PATCH_PHYS_VIRT
+       bool "Patch physical to virtual translations at runtime" if EMBEDDED
+-      default y
++      default n
+       depends on !XIP_KERNEL && MMU
+       depends on !ARCH_REALVIEW || !SPARSEMEM
+       help
+diff -Naur linux-3.2.25.org/arch/arm/mach-kirkwood/dreamplug-setup.c linux-3.2.25/arch/arm/mach-kirkwood/dreamplug-setup.c
+--- linux-3.2.25.org/arch/arm/mach-kirkwood/dreamplug-setup.c  1969-12-31 19:00:00.000000000 -0500
++++ linux-3.2.25/arch/arm/mach-kirkwood/dreamplug-setup.c      2012-08-11 10:22:53.242276474 -0400
+@@ -0,0 +1,148 @@
++/*
++ * arch/arm/mach-kirkwood/dreamplug-setup.c
++ *
++ * Marvell DreamPlug Reference Board Setup
++ *
++ * This file is licensed under the terms of the GNU General Public
++ * License version 2.  This program is licensed "as is" without any
++ * warranty of any kind, whether express or implied.
++ */
++
++#include <linux/kernel.h>
++#include <linux/init.h>
++#include <linux/platform_device.h>
++#include <linux/mtd/partitions.h>
++#include <linux/ata_platform.h>
++#include <linux/mv643xx_eth.h>
++#include <linux/gpio.h>
++#include <linux/leds.h>
++#include <linux/spi/flash.h>
++#include <linux/spi/spi.h>
++#include <linux/spi/orion_spi.h>
++#include <asm/mach-types.h>
++#include <asm/mach/arch.h>
++#include <mach/kirkwood.h>
++#include <plat/mvsdio.h>
++#include "common.h"
++#include "mpp.h"
++
++static const struct flash_platform_data dreamplug_spi_slave_data = {
++      .type           = "mx25l1606e",
++};
++
++static struct spi_board_info __initdata dreamplug_spi_slave_info[] = {
++      {
++              .modalias       = "m25p80",
++              .platform_data  = &dreamplug_spi_slave_data,
++              .irq            = -1,
++              .max_speed_hz   = 50000000,
++              .bus_num        = 0,
++              .chip_select    = 0,
++      },
++};
++
++static struct mv643xx_eth_platform_data dreamplug_ge00_data = {
++      .phy_addr       = MV643XX_ETH_PHY_ADDR(0),
++};
++
++static struct mv643xx_eth_platform_data dreamplug_ge01_data = {
++      .phy_addr       = MV643XX_ETH_PHY_ADDR(1),
++};
++
++static struct mv_sata_platform_data dreamplug_sata_data = {
++      .n_ports        = 1,
++};
++
++static struct mvsdio_platform_data dreamplug_mvsdio_data = {
++      /* unfortunately the CD signal has not been connected */
++};
++
++static struct gpio_led dreamplug_led_pins[] = {
++      {
++              .name                   = "dreamplug:blue:bluetooth",
++              .gpio                   = 47,
++              .active_low             = 1,
++      },
++      {
++              .name                   = "dreamplug:green:wlan",
++              .gpio                   = 48,
++              .active_low             = 1,
++      },
++      {
++              .name                   = "dreamplug:blue:wlanap",
++              .gpio                   = 49,
++              .active_low             = 1,
++      },
++};
++
++static struct gpio_led_platform_data dreamplug_led_data = {
++      .leds           = dreamplug_led_pins,
++      .num_leds       = ARRAY_SIZE(dreamplug_led_pins),
++};
++
++static struct platform_device dreamplug_leds = {
++      .name   = "leds-gpio",
++      .id     = -1,
++      .dev    = {
++              .platform_data  = &dreamplug_led_data,
++      }
++};
++
++static unsigned int dreamplug_mpp_config[] __initdata = {
++      MPP0_SPI_SCn,
++      MPP1_SPI_MOSI,
++      MPP2_SPI_SCK,
++      MPP3_SPI_MISO,
++      MPP4_GPIO,
++      MPP5_GPO,
++      MPP7_GPO,
++      MPP18_GPO,
++      MPP19_GPO,
++      MPP47_GPIO,     /* B_BLED */
++      MPP48_GPIO,     /* W_GLED */
++      MPP49_GPIO,     /* W_BLED */
++      0
++};
++
++static void __init dreamplug_init(void)
++{
++      /*
++       * Basic setup. Needs to be called early.
++       */
++      kirkwood_init();
++      kirkwood_mpp_conf(dreamplug_mpp_config);
++
++      kirkwood_uart0_init();
++
++      spi_register_board_info(dreamplug_spi_slave_info,
++                              ARRAY_SIZE(dreamplug_spi_slave_info));
++
++      kirkwood_spi_init();
++      kirkwood_ehci_init();
++
++      kirkwood_ge00_init(&dreamplug_ge00_data);
++      kirkwood_ge01_init(&dreamplug_ge01_data);
++      kirkwood_sata_init(&dreamplug_sata_data);
++      kirkwood_sdio_init(&dreamplug_mvsdio_data);
++
++      platform_device_register(&dreamplug_leds);
++}
++
++MACHINE_START(DREAMPLUG, "Marvell DreamPlug Reference Board")
++      /* Maintainer: Siddarth Gore <gores <at> marvell.com> */
++      .atag_offset    = 0x100,
++      .init_machine   = dreamplug_init,
++      .map_io         = kirkwood_map_io,
++      .init_early     = kirkwood_init_early,
++      .init_irq       = kirkwood_init_irq,
++      .timer          = &kirkwood_timer,
++MACHINE_END
++
++MACHINE_START(DREAMPLUG1, "Marvell DreamPlug Reference Board")
++      .atag_offset    = 0x100,
++      .init_machine   = dreamplug_init,
++      .map_io         = kirkwood_map_io,
++      .init_early     = kirkwood_init_early,
++      .init_irq       = kirkwood_init_irq,
++      .timer          = &kirkwood_timer,
++MACHINE_END
+diff -Naur linux-3.2.25.org/arch/arm/mach-kirkwood/guruplug-setup.c linux-3.2.25/arch/arm/mach-kirkwood/guruplug-setup.c
+--- linux-3.2.25.org/arch/arm/mach-kirkwood/guruplug-setup.c   2012-08-02 09:38:04.000000000 -0400
++++ linux-3.2.25/arch/arm/mach-kirkwood/guruplug-setup.c       2012-08-05 13:05:22.000000000 -0400
+@@ -11,6 +11,7 @@
+ #include <linux/kernel.h>
+ #include <linux/init.h>
+ #include <linux/platform_device.h>
++#include <linux/mtd/mtd.h>
+ #include <linux/mtd/partitions.h>
+ #include <linux/ata_platform.h>
+ #include <linux/mv643xx_eth.h>
+@@ -27,15 +28,16 @@
+       {
+               .name = "u-boot",
+               .offset = 0,
+-              .size = SZ_1M
++              .size = SZ_1M,
++              .mask_flags = MTD_WRITEABLE, /* read only */
+       }, {
+               .name = "uImage",
+               .offset = MTDPART_OFS_NXTBLK,
+-              .size = SZ_4M
++              .size = SZ_4M,
+       }, {
+               .name = "root",
+               .offset = MTDPART_OFS_NXTBLK,
+-              .size = MTDPART_SIZ_FULL
++              .size = MTDPART_SIZ_FULL,
+       },
+ };
+diff -Naur linux-3.2.25.org/arch/arm/mach-kirkwood/iconnect-setup.c linux-3.2.25/arch/arm/mach-kirkwood/iconnect-setup.c
+--- linux-3.2.25.org/arch/arm/mach-kirkwood/iconnect-setup.c   1969-12-31 19:00:00.000000000 -0500
++++ linux-3.2.25/arch/arm/mach-kirkwood/iconnect-setup.c       2012-08-11 04:58:00.565660184 -0400
+@@ -0,0 +1,212 @@
++/*
++ * arch/arm/mach-kirkwood/iconnect-setup.c
++ *
++ * Iomega iConnect Wireless Data Station Board Setup
++ *
++ * This file is licensed under the terms of the GNU General Public
++ * License version 2.  This program is licensed "as is" without any
++ * warranty of any kind, whether express or implied.
++ */
++
++#include <linux/kernel.h>
++#include <linux/init.h>
++#include <linux/platform_device.h>
++#include <linux/mtd/mtd.h>
++#include <linux/mtd/partitions.h>
++#include <linux/ata_platform.h>
++#include <linux/mv643xx_eth.h>
++#include <linux/gpio.h>
++#include <linux/gpio_keys.h>
++#include <linux/i2c.h>
++#include <linux/input.h>
++#include <linux/leds.h>
++#include <asm/mach-types.h>
++#include <asm/mach/arch.h>
++#include <mach/kirkwood.h>
++#include "common.h"
++#include "mpp.h"
++
++static struct mtd_partition iconnect_nand_parts[] = {
++      {
++              .name = "u-boot",
++              .offset = 0,
++              .size = SZ_1M,
++              .mask_flags = MTD_WRITEABLE, /* read only */
++      }, {
++              .name = "uImage",
++              .offset = MTDPART_OFS_NXTBLK,
++              .size = 0x440000,
++      }, {
++              .name = "uInit",
++              .offset = MTDPART_OFS_NXTBLK,
++              .size = 0x440000,
++      }, {
++              .name = "root",
++              .offset = MTDPART_OFS_NXTBLK,
++              .size = MTDPART_SIZ_FULL,
++      },
++};
++
++static struct mv643xx_eth_platform_data iconnect_ge00_data = {
++      .phy_addr       = MV643XX_ETH_PHY_ADDR(0xB),
++};
++
++static struct gpio_led iconnect_led_pins[] = {
++      {
++              .name                   = "iconnect:led_level",
++              .default_trigger        = "default-on",
++              .gpio                   = 41,
++              .active_low             = 0,
++      },
++
++      {
++              .name                   = "iconnect:blue:power",
++              .default_trigger        = "default-on",
++              .gpio                   = 42,
++              .active_low             = 0,
++      },
++      {
++              .name                   = "iconnect:red:power",
++              .default_trigger        = "none",
++              .gpio                   = 43,
++              .active_low             = 0,
++      },
++      {
++              .name                   = "iconnect:blue:usb_1",
++              .default_trigger        = "none",
++              .gpio                   = 44,
++              .active_low             = 0,
++      },
++      {
++              .name                   = "iconnect:blue:usb_2",
++              .default_trigger        = "none",
++              .gpio                   = 45,
++              .active_low             = 0,
++      },
++      {
++              .name                   = "iconnect:blue:usb_3",
++              .default_trigger        = "none",
++              .gpio                   = 46,
++              .active_low             = 0,
++      },
++      {
++              .name                   = "iconnect:blue:usb_4",
++              .default_trigger        = "none",
++              .gpio                   = 47,
++              .active_low             = 0,
++      },
++      {
++              .name                   = "iconnect:blue:otb",
++              .default_trigger        = "none",
++              .gpio                   = 48,
++              .active_low             = 0,
++      },
++};
++
++static struct gpio_led_platform_data iconnect_led_data = {
++      .leds           = iconnect_led_pins,
++      .num_leds       = ARRAY_SIZE(iconnect_led_pins),
++};
++
++static struct platform_device iconnect_leds = {
++      .name   = "leds-gpio",
++      .id     = -1,
++      .dev    = {
++              .platform_data  = &iconnect_led_data,
++      }
++};
++
++static struct gpio_keys_button iconnect_buttons[] = {
++      {
++              .code           = KEY_COPY,
++              .gpio           = 35,
++              .desc           = "OTB Button",
++              .active_low     = 1,
++      },
++      {
++              .code           = KEY_RESTART,
++              .gpio           = 12,
++              .desc           = "Reset",
++              .active_low     = 1,
++      },
++};
++
++static struct gpio_keys_platform_data iconnect_button_data = {
++      .buttons        = iconnect_buttons,
++      .nbuttons       = ARRAY_SIZE(iconnect_buttons),
++};
++
++static struct platform_device iconnect_button_device = {
++      .name           = "gpio-keys",
++      .id             = -1,
++      .num_resources  = 0,
++      .dev            = {
++              .platform_data  = &iconnect_button_data,
++      }
++};
++
++static unsigned int iconnect_mpp_config[] __initdata = {
++      MPP0_NF_IO2,
++      MPP1_NF_IO3,
++      MPP2_NF_IO4,
++      MPP3_NF_IO5,
++      MPP4_NF_IO6,
++      MPP5_NF_IO7,
++      MPP18_NF_IO0,
++      MPP19_NF_IO1,
++      MPP12_GPIO,     /* Reset Button */
++      MPP35_GPIO,     /* OTB Button */
++
++      MPP41_GPIO,     /* LED Level */
++      MPP42_GPIO,     /* Power LED blue */
++      MPP43_GPIO,     /* Power LED red */
++      MPP44_GPIO,     /* USB LED 1 */
++      MPP45_GPIO,     /* USB LED 2 */
++      MPP46_GPIO,     /* USB LED 3 */
++      MPP47_GPIO,     /* USB LED 4 */
++      MPP48_GPIO,     /* OTB LED */
++      0
++};
++
++static struct i2c_board_info __initdata iconnect_i2c = {
++      I2C_BOARD_INFO("lm63", 0x4c),
++};
++
++static void __init iconnect_init(void)
++{
++      /*
++       * Basic setup. Needs to be called early.
++       */
++      kirkwood_init();
++      kirkwood_mpp_conf(iconnect_mpp_config);
++
++      kirkwood_nand_init(ARRAY_AND_SIZE(iconnect_nand_parts), 25);
++      kirkwood_ehci_init();
++      kirkwood_ge00_init(&iconnect_ge00_data);
++
++      kirkwood_uart0_init();
++      platform_device_register(&iconnect_leds);
++      platform_device_register(&iconnect_button_device);
++
++      kirkwood_i2c_init();
++      i2c_register_board_info(0, &iconnect_i2c,1);
++}
++
++static int __init iconnect_pci_init(void)
++{
++      if (machine_is_iconnect()) {
++              kirkwood_pcie_init(KW_PCIE0);
++      }
++      return 0;
++}
++subsys_initcall(iconnect_pci_init);
++
++MACHINE_START(ICONNECT, "Iomega iConnect Wireless Data Station")
++      /* Maintainer: Arne Fitzenreiter <arne_f@ipfire.org> */
++      .atag_offset    = 0x100,
++      .init_machine   = iconnect_init,
++      .map_io         = kirkwood_map_io,
++      .init_early     = kirkwood_init_early,
++      .init_irq       = kirkwood_init_irq,
++      .timer          = &kirkwood_timer,
++MACHINE_END
+diff -Naur linux-3.2.25.org/arch/arm/mach-kirkwood/Kconfig linux-3.2.25/arch/arm/mach-kirkwood/Kconfig
+--- linux-3.2.25.org/arch/arm/mach-kirkwood/Kconfig    2012-08-02 09:38:04.000000000 -0400
++++ linux-3.2.25/arch/arm/mach-kirkwood/Kconfig        2012-08-05 12:45:22.015253501 -0400
+@@ -44,6 +44,12 @@
+         Say 'Y' here if you want your kernel to support the
+         Marvell GuruPlug Reference Board.
++config MACH_DREAMPLUG
++      bool "Marvell DreamPlug Reference Board"
++      help
++        Say 'Y' here if you want your kernel to support the
++        Marvell DreamPlug Reference Board.
++
+ config MACH_TS219
+       bool "QNAP TS-110, TS-119, TS-119P+, TS-210, TS-219, TS-219P and TS-219P+ Turbo NAS"
+       help
+@@ -130,6 +136,18 @@
+         Say 'Y' here if you want your kernel to support the
+         HP t5325 Thin Client.
++config MACH_ICONNECT
++      bool "Iomega iConnect Wireless Data Station"
++      help
++        Say 'Y' here if you want your kernel to support the
++        Iomega iConnect Wireless Data Station.
++
++config MACH_NAS6210
++      bool "Raidsonic ICY BOX IB-62x0"
++      help
++        Say 'Y' here if you want your kernel to support the
++        Raidsonic ICY BOX IB-62x0.
++
+ endmenu
+ endif
+diff -Naur linux-3.2.25.org/arch/arm/mach-kirkwood/Makefile linux-3.2.25/arch/arm/mach-kirkwood/Makefile
+--- linux-3.2.25.org/arch/arm/mach-kirkwood/Makefile   2012-08-02 09:38:04.000000000 -0400
++++ linux-3.2.25/arch/arm/mach-kirkwood/Makefile       2012-08-05 12:46:49.015253501 -0400
+@@ -7,6 +7,7 @@
+ obj-$(CONFIG_MACH_SHEEVAPLUG)         += sheevaplug-setup.o
+ obj-$(CONFIG_MACH_ESATA_SHEEVAPLUG)   += sheevaplug-setup.o
+ obj-$(CONFIG_MACH_GURUPLUG)           += guruplug-setup.o
++obj-$(CONFIG_MACH_DREAMPLUG)          += dreamplug-setup.o
+ obj-$(CONFIG_MACH_DOCKSTAR)           += dockstar-setup.o
+ obj-$(CONFIG_MACH_TS219)              += ts219-setup.o tsx1x-common.o
+ obj-$(CONFIG_MACH_TS41X)              += ts41x-setup.o tsx1x-common.o
+@@ -18,5 +19,7 @@
+ obj-$(CONFIG_MACH_NET2BIG_V2)         += netxbig_v2-setup.o lacie_v2-common.o
+ obj-$(CONFIG_MACH_NET5BIG_V2)         += netxbig_v2-setup.o lacie_v2-common.o
+ obj-$(CONFIG_MACH_T5325)              += t5325-setup.o
++obj-$(CONFIG_MACH_ICONNECT)           += iconnect-setup.o
++obj-$(CONFIG_MACH_NAS6210)            += nas6210-setup.o
+ obj-$(CONFIG_CPU_IDLE)                        += cpuidle.o
+diff -Naur linux-3.2.25.org/arch/arm/mach-kirkwood/mpp.h linux-3.2.25/arch/arm/mach-kirkwood/mpp.h
+--- linux-3.2.25.org/arch/arm/mach-kirkwood/mpp.h      2012-08-02 09:38:04.000000000 -0400
++++ linux-3.2.25/arch/arm/mach-kirkwood/mpp.h  2012-08-05 13:08:23.835566001 -0400
+@@ -102,6 +102,7 @@
+ #define MPP11_SATA0_ACTn      MPP( 11, 0x5, 0, 0, 0,   1,   1,   1,   1 )
+ #define MPP12_GPO             MPP( 12, 0x0, 0, 1, 1,   1,   1,   1,   1 )
++#define MPP12_GPIO            MPP( 12, 0x0, 1, 1, 1,   1,   1,   1,   1 )
+ #define MPP12_SD_CLK          MPP( 12, 0x1, 0, 0, 1,   1,   1,   1,   1 )
+ #define MPP12_AU_SPDIF0               MPP( 12, 0xa, 0, 0, 0,   0,   0,   0,   1 )
+ #define MPP12_SPI_MOSI                MPP( 12, 0xb, 0, 0, 0,   0,   0,   0,   1 )
+diff -Naur linux-3.2.25.org/arch/arm/mach-kirkwood/nas6210-setup.c linux-3.2.25/arch/arm/mach-kirkwood/nas6210-setup.c
+--- linux-3.2.25.org/arch/arm/mach-kirkwood/nas6210-setup.c    1969-12-31 19:00:00.000000000 -0500
++++ linux-3.2.25/arch/arm/mach-kirkwood/nas6210-setup.c        2012-08-11 04:58:35.223186956 -0400
+@@ -0,0 +1,184 @@
++/*
++ * arch/arm/mach-kirkwood/nas6210-setup.c
++ *
++ * Raidsonic ICYBOX NAS6210 and 6220 Board Setup
++ *
++ * This file is licensed under the terms of the GNU General Public
++ * License version 2.  This program is licensed "as is" without any
++ * warranty of any kind, whether express or implied.
++ */
++
++#include <linux/kernel.h>
++#include <linux/init.h>
++#include <linux/platform_device.h>
++#include <linux/mtd/mtd.h>
++#include <linux/mtd/partitions.h>
++#include <linux/ata_platform.h>
++#include <linux/mv643xx_eth.h>
++#include <linux/gpio.h>
++#include <linux/gpio_keys.h>
++#include <linux/i2c.h>
++#include <linux/input.h>
++#include <linux/leds.h>
++#include <asm/mach-types.h>
++#include <asm/mach/arch.h>
++#include <mach/kirkwood.h>
++#include "common.h"
++#include "mpp.h"
++
++#define NAS6210_GPIO_POWER_OFF 24
++
++static struct mtd_partition nas6210_nand_parts[] = {
++      {
++              .name = "u-boot",
++              .offset = 0,
++              .size = SZ_1M,
++              .mask_flags = MTD_WRITEABLE, /* read only */
++      }, {
++              .name = "uImage",
++              .offset = MTDPART_OFS_NXTBLK,
++              .size = (SZ_1M*6),
++      }, {
++              .name = "root",
++              .offset = MTDPART_OFS_NXTBLK,
++              .size = MTDPART_SIZ_FULL,
++      },
++};
++
++static struct mv643xx_eth_platform_data nas6210_ge00_data = {
++      .phy_addr       = MV643XX_ETH_PHY_ADDR(8),
++};
++
++static struct mv_sata_platform_data nas6210_sata_data = {
++      .n_ports        = 2,
++};
++
++static struct gpio_led nas6210_led_pins[] = {
++      {
++              .name                   = "nas6210:green:power",
++              .default_trigger        = "default-on",
++              .gpio                   = 25,
++              .active_low             = 0,
++      },
++      {
++              .name                   = "nas6210:red:power",
++              .default_trigger        = "none",
++              .gpio                   = 22,
++              .active_low             = 0,
++      },
++      {
++              .name                   = "nas6210:red:usb_copy",
++              .default_trigger        = "none",
++              .gpio                   = 27,
++              .active_low             = 0,
++      },
++};
++
++static struct gpio_led_platform_data nas6210_led_data = {
++      .leds           = nas6210_led_pins,
++      .num_leds       = ARRAY_SIZE(nas6210_led_pins),
++};
++
++static struct platform_device nas6210_leds = {
++      .name   = "leds-gpio",
++      .id     = -1,
++      .dev    = {
++              .platform_data  = &nas6210_led_data,
++      }
++};
++
++static struct gpio_keys_button nas6210_buttons[] = {
++      {
++              .code           = KEY_COPY,
++              .gpio           = 29,
++              .desc           = "USB Copy",
++              .active_low     = 1,
++      },
++      {
++              .code           = KEY_RESTART,
++              .gpio           = 28,
++              .desc           = "Reset",
++              .active_low     = 1,
++      },
++};
++
++static struct gpio_keys_platform_data nas6210_button_data = {
++      .buttons        = nas6210_buttons,
++      .nbuttons       = ARRAY_SIZE(nas6210_buttons),
++};
++
++static struct platform_device nas6210_button_device = {
++      .name           = "gpio-keys",
++      .id             = -1,
++      .num_resources  = 0,
++      .dev            = {
++              .platform_data  = &nas6210_button_data,
++      }
++};
++
++static unsigned int nas6210_mpp_config[] __initdata = {
++      MPP0_NF_IO2,
++      MPP1_NF_IO3,
++      MPP2_NF_IO4,
++      MPP3_NF_IO5,
++      MPP4_NF_IO6,
++      MPP5_NF_IO7,
++      MPP18_NF_IO0,
++      MPP19_NF_IO1,
++      MPP22_GPIO,     /* Power LED red */
++      MPP24_GPIO,     /* Power off */
++      MPP25_GPIO,     /* Power LED green */
++      MPP27_GPIO,    /* USB transfer LED */
++      MPP28_GPIO,    /* Reset button */
++      MPP29_GPIO,    /* USB Copy button */
++      0
++};
++
++void nas6210_power_off(void)
++{
++      gpio_set_value(NAS6210_GPIO_POWER_OFF, 1);
++      while(1);
++}
++
++static void __init nas6210_init(void)
++{
++      /*
++       * Basic setup. Needs to be called early.
++       */
++      kirkwood_init();
++      kirkwood_mpp_conf(nas6210_mpp_config);
++
++      kirkwood_nand_init(ARRAY_AND_SIZE(nas6210_nand_parts), 25);
++      kirkwood_ehci_init();
++      kirkwood_ge00_init(&nas6210_ge00_data);
++      kirkwood_sata_init(&nas6210_sata_data);
++      kirkwood_uart0_init();
++      platform_device_register(&nas6210_leds);
++      platform_device_register(&nas6210_button_device);
++
++      if (gpio_request(NAS6210_GPIO_POWER_OFF, "power-off") == 0 &&
++              gpio_direction_output(NAS6210_GPIO_POWER_OFF, 0) == 0)
++                      pm_power_off = nas6210_power_off;
++
++      else
++              pr_err("nas6210: failed to configure power-off gpio pin");
++}
++
++static int __init nas6210_pci_init(void)
++{
++      if (machine_is_nas6210()) {
++              kirkwood_pcie_init(KW_PCIE0);
++      }
++      return 0;
++}
++subsys_initcall(nas6210_pci_init);
++
++MACHINE_START(NAS6210, "RaidSonic ICY BOX IB-NAS62x0")
++      /* Maintainer: Arne Fitzenreiter <arne_f@ipfire.org> */
++      .atag_offset    = 0x00000100,
++      .init_machine   = nas6210_init,
++      .map_io         = kirkwood_map_io,
++      .init_early     = kirkwood_init_early,
++      .init_irq       = kirkwood_init_irq,
++      .timer          = &kirkwood_timer,
++MACHINE_END
+diff -Naur linux-3.2.25.org/arch/arm/tools/mach-types linux-3.2.25/arch/arm/tools/mach-types
+--- linux-3.2.25.org/arch/arm/tools/mach-types 2012-08-02 09:38:04.000000000 -0400
++++ linux-3.2.25/arch/arm/tools/mach-types     2012-08-11 10:18:52.849620229 -0400
+@@ -448,6 +448,7 @@
+ riot_bei2             MACH_RIOT_BEI2          RIOT_BEI2               2576
+ riot_x37              MACH_RIOT_X37           RIOT_X37                2578
+ pca101                        MACH_PCA101             PCA101                  2595
++guruplug              MACH_GURUPLUG           GURUPLUG                2601
+ capc7117              MACH_CAPC7117           CAPC7117                2612
+ icontrol              MACH_ICONTROL           ICONTROL                2624
+ gplugd                        MACH_GPLUGD             GPLUGD                  2625
+@@ -455,7 +456,7 @@
+ mx23evk                       MACH_MX23EVK            MX23EVK                 2629
+ ap4evb                        MACH_AP4EVB             AP4EVB                  2630
+ mityomapl138          MACH_MITYOMAPL138       MITYOMAPL138            2650
+-guruplug              MACH_GURUPLUG           GURUPLUG                2659
++dreamplug1            MACH_DREAMPLUG1         DREAMPLUG1              2659
+ spear310              MACH_SPEAR310           SPEAR310                2660
+ spear320              MACH_SPEAR320           SPEAR320                2661
+ aquila                        MACH_AQUILA             AQUILA                  2676
+@@ -1123,6 +1124,7 @@
+ thales_adc            MACH_THALES_ADC         THALES_ADC              3492
+ ubisys_p9d_evp                MACH_UBISYS_P9D_EVP     UBISYS_P9D_EVP          3493
+ atdgp318              MACH_ATDGP318           ATDGP318                3494
++dreamplug             MACH_DREAMPLUG          DREAMPLUG               3550
+ m28evk                        MACH_M28EVK             M28EVK                  3613
+ smdk4212              MACH_SMDK4212           SMDK4212                3638
+ smdk4412              MACH_SMDK4412           SMDK4412                3765
diff --git a/src/patches/linux-3.2.27-rpi_fix_dwc_common_build.patch b/src/patches/linux-3.2.27-rpi_fix_dwc_common_build.patch
new file mode 100644 (file)
index 0000000..f46c57c
--- /dev/null
@@ -0,0 +1,38 @@
+diff -Naur linux-3.2.27.org/drivers/usb/host/dwc_common_port/Makefile linux-3.2.27/drivers/usb/host/dwc_common_port/Makefile
+--- linux-3.2.27.org/drivers/usb/host/dwc_common_port/Makefile 2012-08-21 05:05:46.000000000 -0400
++++ linux-3.2.27/drivers/usb/host/dwc_common_port/Makefile     2012-08-21 06:32:23.501695852 -0400
+@@ -30,15 +30,6 @@
+ else
+-ifeq ($(KDIR),)
+-$(error Must give "KDIR=/path/to/kernel/source" on command line or in environment)
+-endif
+-
+-ifeq ($(ARCH),)
+-$(error Must give "ARCH=<arch>" on command line or in environment. Also, if \
+- cross-compiling, must give "CROSS_COMPILE=/path/to/compiler/plus/tool-prefix-")
+-endif
+-
+ ifeq ($(DOXYGEN),)
+ DOXYGEN               := doxygen
+ endif
+diff -Naur linux-3.2.27.org/drivers/usb/host/dwc_common_port/Makefile.linux linux-3.2.27/drivers/usb/host/dwc_common_port/Makefile.linux
+--- linux-3.2.27.org/drivers/usb/host/dwc_common_port/Makefile.linux   2012-08-21 05:05:46.000000000 -0400
++++ linux-3.2.27/drivers/usb/host/dwc_common_port/Makefile.linux       2012-08-21 05:22:35.964969680 -0400
+@@ -21,15 +21,6 @@
+ else
+-ifeq ($(KDIR),)
+-$(error Must give "KDIR=/path/to/kernel/source" on command line or in environment)
+-endif
+-
+-ifeq ($(ARCH),)
+-$(error Must give "ARCH=<arch>" on command line or in environment. Also, if \
+- cross-compiling, must give "CROSS_COMPILE=/path/to/compiler/plus/tool-prefix-")
+-endif
+-
+ ifeq ($(DOXYGEN),)
+ DOXYGEN               := doxygen
+ endif
diff --git a/src/patches/linux-3.2.33-ledtrig-netdev-1.patch b/src/patches/linux-3.2.33-ledtrig-netdev-1.patch
new file mode 100644 (file)
index 0000000..f42ca73
--- /dev/null
@@ -0,0 +1,479 @@
+diff -Naur linux-3.2.33.org/drivers/leds/Kconfig linux-3.2.33/drivers/leds/Kconfig
+--- linux-3.2.33.org/drivers/leds/Kconfig      2012-10-31 00:27:11.000000000 +0100
++++ linux-3.2.33/drivers/leds/Kconfig  2012-11-04 12:47:10.661589825 +0100
+@@ -457,4 +457,11 @@
+ comment "iptables trigger is under Netfilter config (LED target)"
+       depends on LEDS_TRIGGERS
++config LEDS_TRIGGER_NETDEV
++      tristate "LED Netdev Trigger"
++      depends on LEDS_TRIGGERS
++      help
++        This allows LEDs to be controlled by network device activity.
++        If unsure, say Y.
++
+ endif # NEW_LEDS
+diff -Naur linux-3.2.33.org/drivers/leds/ledtrig-netdev.c linux-3.2.33/drivers/leds/ledtrig-netdev.c
+--- linux-3.2.33.org/drivers/leds/ledtrig-netdev.c     1970-01-01 01:00:00.000000000 +0100
++++ linux-3.2.33/drivers/leds/ledtrig-netdev.c 2012-11-04 13:43:51.414865799 +0100
+@@ -0,0 +1,452 @@
++/*
++ * LED Kernel Netdev Trigger
++ *
++ * Toggles the LED to reflect the link and traffic state of a named net device
++ *
++ * Copyright 2007 Oliver Jowett <oliver@opencloud.com>
++ *
++ * Derived from ledtrig-timer.c which is:
++ *  Copyright 2005-2006 Openedhand Ltd.
++ *  Author: Richard Purdie <rpurdie@openedhand.com>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ *
++ */
++
++#include <linux/module.h>
++#include <linux/jiffies.h>
++#include <linux/kernel.h>
++#include <linux/init.h>
++#include <linux/list.h>
++#include <linux/spinlock.h>
++#include <linux/device.h>
++#include <linux/sysdev.h>
++#include <linux/netdevice.h>
++#include <linux/timer.h>
++#include <linux/ctype.h>
++#include <linux/leds.h>
++#include <linux/version.h>
++
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26)
++#include <net/net_namespace.h>
++#endif
++
++#include "leds.h"
++
++/*
++ * Configurable sysfs attributes:
++ *
++ * device_name - network device name to monitor
++ *
++ * interval - duration of LED blink, in milliseconds
++ *
++ * mode - either "none" (LED is off) or a space separated list of one or more of:
++ *   link: LED's normal state reflects whether the link is up (has carrier) or not
++ *   tx:   LED blinks on transmitted data
++ *   rx:   LED blinks on receive data
++ *
++ * Some suggestions:
++ *
++ *  Simple link status LED:
++ *  $ echo netdev >someled/trigger
++ *  $ echo eth0 >someled/device_name
++ *  $ echo link >someled/mode
++ *
++ *  Ethernet-style link/activity LED:
++ *  $ echo netdev >someled/trigger
++ *  $ echo eth0 >someled/device_name
++ *  $ echo "link tx rx" >someled/mode
++ *
++ *  Modem-style tx/rx LEDs:
++ *  $ echo netdev >led1/trigger
++ *  $ echo ppp0 >led1/device_name
++ *  $ echo tx >led1/mode
++ *  $ echo netdev >led2/trigger
++ *  $ echo ppp0 >led2/device_name
++ *  $ echo rx >led2/mode
++ *
++ */
++
++#define MODE_LINK 1
++#define MODE_TX   2
++#define MODE_RX   4
++
++struct led_netdev_data {
++      rwlock_t lock;
++
++      struct timer_list timer;
++      struct notifier_block notifier;
++
++      struct led_classdev *led_cdev;
++      struct net_device *net_dev;
++
++      char device_name[IFNAMSIZ];
++      unsigned interval;
++      unsigned mode;
++      unsigned link_up;
++      unsigned last_activity;
++};
++
++static void set_baseline_state(struct led_netdev_data *trigger_data)
++{
++      if ((trigger_data->mode & MODE_LINK) != 0 && trigger_data->link_up)
++              led_set_brightness(trigger_data->led_cdev, LED_FULL);
++      else
++              led_set_brightness(trigger_data->led_cdev, LED_OFF);
++
++      if ((trigger_data->mode & (MODE_TX | MODE_RX)) != 0 && trigger_data->link_up)
++              mod_timer(&trigger_data->timer, jiffies + trigger_data->interval);
++      else
++              del_timer(&trigger_data->timer);
++}
++
++static ssize_t led_device_name_show(struct device *dev,
++                                  struct device_attribute *attr, char *buf)
++{
++      struct led_classdev *led_cdev = dev_get_drvdata(dev);
++      struct led_netdev_data *trigger_data = led_cdev->trigger_data;
++
++      read_lock(&trigger_data->lock);
++      sprintf(buf, "%s\n", trigger_data->device_name);
++      read_unlock(&trigger_data->lock);
++
++      return strlen(buf) + 1;
++}
++
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21)
++extern struct net init_net;
++#endif
++
++static ssize_t led_device_name_store(struct device *dev,
++                                   struct device_attribute *attr, const char *buf, size_t size)
++{
++      struct led_classdev *led_cdev = dev_get_drvdata(dev);
++      struct led_netdev_data *trigger_data = led_cdev->trigger_data;
++
++      if (size < 0 || size >= IFNAMSIZ)
++              return -EINVAL;
++
++      write_lock(&trigger_data->lock);
++
++      strcpy(trigger_data->device_name, buf);
++      if (size > 0 && trigger_data->device_name[size-1] == '\n')
++              trigger_data->device_name[size-1] = 0;
++
++      if (trigger_data->device_name[0] != 0) {
++              /* check for existing device to update from */
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26)
++              trigger_data->net_dev = dev_get_by_name(&init_net, trigger_data->device_name);
++#else
++              trigger_data->net_dev = dev_get_by_name(trigger_data->device_name);
++#endif
++              if (trigger_data->net_dev != NULL)
++                      trigger_data->link_up = (dev_get_flags(trigger_data->net_dev) & IFF_LOWER_UP) != 0;
++              set_baseline_state(trigger_data); /* updates LEDs, may start timers */
++      }
++
++      write_unlock(&trigger_data->lock);
++      return size;
++}
++
++static DEVICE_ATTR(device_name, 0644, led_device_name_show, led_device_name_store);
++
++static ssize_t led_mode_show(struct device *dev,
++                           struct device_attribute *attr, char *buf)
++{
++      struct led_classdev *led_cdev = dev_get_drvdata(dev);
++      struct led_netdev_data *trigger_data = led_cdev->trigger_data;
++
++      read_lock(&trigger_data->lock);
++
++      if (trigger_data->mode == 0) {
++              strcpy(buf, "none\n");
++      } else {
++              if (trigger_data->mode & MODE_LINK)
++                      strcat(buf, "link ");
++              if (trigger_data->mode & MODE_TX)
++                      strcat(buf, "tx ");
++              if (trigger_data->mode & MODE_RX)
++                      strcat(buf, "rx ");
++              strcat(buf, "\n");
++      }
++
++      read_unlock(&trigger_data->lock);
++
++      return strlen(buf)+1;
++}
++
++static ssize_t led_mode_store(struct device *dev,
++                            struct device_attribute *attr, const char *buf, size_t size)
++{
++      struct led_classdev *led_cdev = dev_get_drvdata(dev);
++      struct led_netdev_data *trigger_data = led_cdev->trigger_data;
++      char copybuf[1024];
++      int new_mode = -1;
++      char *p, *token;
++
++      /* take a copy since we don't want to trash the inbound buffer when using strsep */
++      strncpy(copybuf, buf, sizeof(copybuf));
++      copybuf[1023] = 0;
++      p = copybuf;
++
++      while ((token = strsep(&p, " \t\n")) != NULL) {
++              if (!*token)
++                      continue;
++
++              if (new_mode == -1)
++                      new_mode = 0;
++
++              if (!strcmp(token, "none"))
++                      new_mode = 0;
++              else if (!strcmp(token, "tx"))
++                      new_mode |= MODE_TX;
++              else if (!strcmp(token, "rx"))
++                      new_mode |= MODE_RX;
++              else if (!strcmp(token, "link"))
++                      new_mode |= MODE_LINK;
++              else
++                      return -EINVAL;
++      }
++
++      if (new_mode == -1)
++              return -EINVAL;
++
++      write_lock(&trigger_data->lock);
++      trigger_data->mode = new_mode;
++      set_baseline_state(trigger_data);
++      write_unlock(&trigger_data->lock);
++
++      return size;
++}
++
++static DEVICE_ATTR(mode, 0644, led_mode_show, led_mode_store);
++
++static ssize_t led_interval_show(struct device *dev,
++                               struct device_attribute *attr, char *buf)
++{
++      struct led_classdev *led_cdev = dev_get_drvdata(dev);
++      struct led_netdev_data *trigger_data = led_cdev->trigger_data;
++
++      read_lock(&trigger_data->lock);
++      sprintf(buf, "%u\n", jiffies_to_msecs(trigger_data->interval));
++      read_unlock(&trigger_data->lock);
++
++      return strlen(buf) + 1;
++}
++
++static ssize_t led_interval_store(struct device *dev,
++                                struct device_attribute *attr, const char *buf, size_t size)
++{
++      struct led_classdev *led_cdev = dev_get_drvdata(dev);
++      struct led_netdev_data *trigger_data = led_cdev->trigger_data;
++      int ret = -EINVAL;
++      char *after;
++      unsigned long value = simple_strtoul(buf, &after, 10);
++      size_t count = after - buf;
++
++      if (*after && isspace(*after))
++              count++;
++
++      /* impose some basic bounds on the timer interval */
++      if (count == size && value >= 5 && value <= 10000) {
++              write_lock(&trigger_data->lock);
++              trigger_data->interval = msecs_to_jiffies(value);
++              set_baseline_state(trigger_data); // resets timer
++              write_unlock(&trigger_data->lock);
++              ret = count;
++      }
++
++      return ret;
++}
++
++static DEVICE_ATTR(interval, 0644, led_interval_show, led_interval_store);
++
++static int netdev_trig_notify(struct notifier_block *nb,
++                            unsigned long evt,
++                            void *dv)
++{
++      struct net_device *dev = dv;
++      struct led_netdev_data *trigger_data = container_of(nb, struct led_netdev_data, notifier);
++
++      if (evt != NETDEV_UP && evt != NETDEV_DOWN && evt != NETDEV_CHANGE && evt != NETDEV_REGISTER && evt != NETDEV_UNREGISTER)
++              return NOTIFY_DONE;
++
++      write_lock(&trigger_data->lock);
++
++      if (strcmp(dev->name, trigger_data->device_name))
++              goto done;
++
++      if (evt == NETDEV_REGISTER) {
++              if (trigger_data->net_dev != NULL)
++                      dev_put(trigger_data->net_dev);
++              dev_hold(dev);
++              trigger_data->net_dev = dev;
++              trigger_data->link_up = 0;
++              goto done;
++      }
++
++      if (evt == NETDEV_UNREGISTER && trigger_data->net_dev != NULL) {
++              dev_put(trigger_data->net_dev);
++              trigger_data->net_dev = NULL;
++              goto done;
++      }
++
++      /* UP / DOWN / CHANGE */
++
++      trigger_data->link_up = (evt != NETDEV_DOWN && netif_carrier_ok(dev));
++      set_baseline_state(trigger_data);
++
++done:
++      write_unlock(&trigger_data->lock);
++      return NOTIFY_DONE;
++}
++
++/* here's the real work! */
++static void netdev_trig_timer(unsigned long arg)
++{
++      struct led_netdev_data *trigger_data = (struct led_netdev_data *)arg;
++      struct rtnl_link_stats64 *dev_stats;
++      unsigned new_activity;
++        struct rtnl_link_stats64 temp;
++      
++      write_lock(&trigger_data->lock);
++
++      if (!trigger_data->link_up || !trigger_data->net_dev || (trigger_data->mode & (MODE_TX | MODE_RX)) == 0) {
++              /* we don't need to do timer work, just reflect link state. */
++              led_set_brightness(trigger_data->led_cdev, ((trigger_data->mode & MODE_LINK) != 0 && trigger_data->link_up) ? LED_FULL : LED_OFF);
++              goto no_restart;
++      }
++
++      dev_stats = dev_get_stats(trigger_data->net_dev, &temp);
++      new_activity =
++              ((trigger_data->mode & MODE_TX) ? dev_stats->tx_packets : 0) +
++              ((trigger_data->mode & MODE_RX) ? dev_stats->rx_packets : 0);
++
++      if (trigger_data->mode & MODE_LINK) {
++              /* base state is ON (link present) */
++              /* if there's no link, we don't get this far and the LED is off */
++
++              /* OFF -> ON always */
++              /* ON -> OFF on activity */
++              if (trigger_data->led_cdev->brightness == LED_OFF) {
++                      led_set_brightness(trigger_data->led_cdev, LED_FULL);
++              } else if (trigger_data->last_activity != new_activity) {
++                      led_set_brightness(trigger_data->led_cdev, LED_OFF);
++              }
++      } else {
++              /* base state is OFF */
++              /* ON -> OFF always */
++              /* OFF -> ON on activity */
++              if (trigger_data->led_cdev->brightness == LED_FULL) {
++                      led_set_brightness(trigger_data->led_cdev, LED_OFF);
++              } else if (trigger_data->last_activity != new_activity) {
++                      led_set_brightness(trigger_data->led_cdev, LED_FULL);
++              }
++      }
++
++      trigger_data->last_activity = new_activity;
++      mod_timer(&trigger_data->timer, jiffies + trigger_data->interval);
++
++no_restart:
++      write_unlock(&trigger_data->lock);
++}
++
++static void netdev_trig_activate(struct led_classdev *led_cdev)
++{
++      struct led_netdev_data *trigger_data;
++      int rc;
++
++      trigger_data = kzalloc(sizeof(struct led_netdev_data), GFP_KERNEL);
++      if (!trigger_data)
++              return;
++
++      rwlock_init(&trigger_data->lock);
++
++      trigger_data->notifier.notifier_call = netdev_trig_notify;
++      trigger_data->notifier.priority = 10;
++
++      setup_timer(&trigger_data->timer, netdev_trig_timer, (unsigned long) trigger_data);
++
++      trigger_data->led_cdev = led_cdev;
++      trigger_data->net_dev = NULL;
++      trigger_data->device_name[0] = 0;
++
++      trigger_data->mode = 0;
++      trigger_data->interval = msecs_to_jiffies(50);
++      trigger_data->link_up = 0;
++      trigger_data->last_activity = 0;
++
++      led_cdev->trigger_data = trigger_data;
++
++      rc = device_create_file(led_cdev->dev, &dev_attr_device_name);
++      if (rc)
++              goto err_out;
++      rc = device_create_file(led_cdev->dev, &dev_attr_mode);
++      if (rc)
++              goto err_out_device_name;
++      rc = device_create_file(led_cdev->dev, &dev_attr_interval);
++      if (rc)
++              goto err_out_mode;
++
++      register_netdevice_notifier(&trigger_data->notifier);
++      return;
++
++err_out_mode:
++      device_remove_file(led_cdev->dev, &dev_attr_mode);
++err_out_device_name:
++      device_remove_file(led_cdev->dev, &dev_attr_device_name);
++err_out:
++      led_cdev->trigger_data = NULL;
++      kfree(trigger_data);
++}
++
++static void netdev_trig_deactivate(struct led_classdev *led_cdev)
++{
++      struct led_netdev_data *trigger_data = led_cdev->trigger_data;
++
++      if (trigger_data) {
++              unregister_netdevice_notifier(&trigger_data->notifier);
++
++              device_remove_file(led_cdev->dev, &dev_attr_device_name);
++              device_remove_file(led_cdev->dev, &dev_attr_mode);
++              device_remove_file(led_cdev->dev, &dev_attr_interval);
++
++              write_lock(&trigger_data->lock);
++
++              if (trigger_data->net_dev) {
++                      dev_put(trigger_data->net_dev);
++                      trigger_data->net_dev = NULL;
++              }
++
++              write_unlock(&trigger_data->lock);
++
++              del_timer_sync(&trigger_data->timer);
++
++              kfree(trigger_data);
++      }
++}
++
++static struct led_trigger netdev_led_trigger = {
++      .name     = "netdev",
++      .activate = netdev_trig_activate,
++      .deactivate = netdev_trig_deactivate,
++};
++
++static int __init netdev_trig_init(void)
++{
++      return led_trigger_register(&netdev_led_trigger);
++}
++
++static void __exit netdev_trig_exit(void)
++{
++      led_trigger_unregister(&netdev_led_trigger);
++}
++
++module_init(netdev_trig_init);
++module_exit(netdev_trig_exit);
++
++MODULE_AUTHOR("Oliver Jowett <oliver@opencloud.com>");
++MODULE_DESCRIPTION("Netdev LED trigger");
++MODULE_LICENSE("GPL");
+diff -Naur linux-3.2.33.org/drivers/leds/Makefile linux-3.2.33/drivers/leds/Makefile
+--- linux-3.2.33.org/drivers/leds/Makefile     2012-10-31 00:27:11.000000000 +0100
++++ linux-3.2.33/drivers/leds/Makefile 2012-11-04 12:47:10.661589825 +0100
+@@ -54,3 +54,4 @@
+ obj-$(CONFIG_LEDS_TRIGGER_BACKLIGHT)  += ledtrig-backlight.o
+ obj-$(CONFIG_LEDS_TRIGGER_GPIO)               += ledtrig-gpio.o
+ obj-$(CONFIG_LEDS_TRIGGER_DEFAULT_ON) += ledtrig-default-on.o
++obj-$(CONFIG_LEDS_TRIGGER_NETDEV)      += ledtrig-netdev.o
diff --git a/src/patches/linux-3.2.33_ipg-fix-driver-name.patch b/src/patches/linux-3.2.33_ipg-fix-driver-name.patch
new file mode 100644 (file)
index 0000000..95e6107
--- /dev/null
@@ -0,0 +1,15 @@
+Patch by Arne Fitzenreiter <arne_f@ipfire.org>
+Fix PHYSDEVDRIVER from "Sundance IPG ..." to the modulname (ipg)
+
+diff -Naur linux-3.2.33.org/drivers/net/ethernet/icplus/ipg.c linux-3.2.33/drivers/net/ethernet/icplus/ipg.c
+--- linux-3.2.33.org/drivers/net/ethernet/icplus/ipg.c 2012-10-31 00:27:11.000000000 +0100
++++ linux-3.2.33/drivers/net/ethernet/icplus/ipg.c     2012-11-05 20:02:36.529101528 +0100
+@@ -2304,7 +2304,7 @@
+ }
+ static struct pci_driver ipg_pci_driver = {
+-      .name           = IPG_DRIVER_NAME,
++      .name           = DRV_NAME,
+       .id_table       = ipg_pci_tbl,
+       .probe          = ipg_probe,
+       .remove         = __devexit_p(ipg_remove),
diff --git a/src/patches/linux-libc-headers-2.6.12.0-inotify-3.patch b/src/patches/linux-libc-headers-2.6.12.0-inotify-3.patch
deleted file mode 100644 (file)
index 4acfd8f..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
-Submitted By: Dan Nicholson <dnicholson at linuxfromscratch dot org>
-Date: 2006-08-01
-Initial Package Version: 2.6.12.0
-Origin: linux-2.6.16 series, syscalls diffed by Alexander Patrakov
-Upstream Status: Project is dead
-Description: Adds userspace headers and syscalls for inotify
-Testcase: dovecot-1.0rc2, ./configure --with-notify=inotify
-
-diff -pNur linux-libc-headers-2.6.12.0.orig/include/asm-i386/unistd.h linux-libc-headers-2.6.12.0/include/asm-i386/unistd.h
---- linux-libc-headers-2.6.12.0.orig/include/asm-i386/unistd.h 2005-07-06 00:17:47.000000000 +0000
-+++ linux-libc-headers-2.6.12.0/include/asm-i386/unistd.h      2006-08-01 05:56:42.000000000 +0000
-@@ -294,8 +294,13 @@
- #define __NR_add_key          286
- #define __NR_request_key      287
- #define __NR_keyctl           288
-+/* #define __NR_ioprio_set    289 */
-+/* #define __NR_ioprio_get    290 */
-+#define __NR_inotify_init     291
-+#define __NR_inotify_add_watch        292
-+#define __NR_inotify_rm_watch 293
--#define NR_syscalls 289
-+#define NR_syscalls 294
- /*
-  * user-visible error numbers are in the range -1 - -128: see
-diff -pNur linux-libc-headers-2.6.12.0.orig/include/asm-ppc/unistd.h linux-libc-headers-2.6.12.0/include/asm-ppc/unistd.h
---- linux-libc-headers-2.6.12.0.orig/include/asm-ppc/unistd.h  2005-07-06 00:17:23.000000000 +0000
-+++ linux-libc-headers-2.6.12.0/include/asm-ppc/unistd.h       2006-08-01 05:56:42.000000000 +0000
-@@ -277,8 +277,13 @@
- #define __NR_request_key      270
- #define __NR_keyctl           271
- #define __NR_waitid           272
-+/* #define __NR_ioprio_set         273 */
-+/* #define __NR_ioprio_get         274 */
-+#define __NR_inotify_init      275
-+#define __NR_inotify_add_watch 276
-+#define __NR_inotify_rm_watch  277
--#define __NR_syscalls         273
-+#define __NR_syscalls         278
- #define __NR(n)       #n
-diff -pNur linux-libc-headers-2.6.12.0.orig/include/linux/inotify.h linux-libc-headers-2.6.12.0/include/linux/inotify.h
---- linux-libc-headers-2.6.12.0.orig/include/linux/inotify.h   1970-01-01 00:00:00.000000000 +0000
-+++ linux-libc-headers-2.6.12.0/include/linux/inotify.h        2006-08-01 05:56:42.000000000 +0000
-@@ -0,0 +1,67 @@
-+/*
-+ * Inode based directory notification for Linux
-+ *
-+ * Copyright (C) 2005 John McCutchan
-+ */
-+
-+#ifndef _LINUX_INOTIFY_H
-+#define _LINUX_INOTIFY_H
-+
-+#include <linux/types.h>
-+
-+/*
-+ * struct inotify_event - structure read from the inotify device for each event
-+ *
-+ * When you are watching a directory, you will receive the filename for events
-+ * such as IN_CREATE, IN_DELETE, IN_OPEN, IN_CLOSE, ..., relative to the wd.
-+ */
-+struct inotify_event {
-+      __s32           wd;             /* watch descriptor */
-+      __u32           mask;           /* watch mask */
-+      __u32           cookie;         /* cookie to synchronize two events */
-+      __u32           len;            /* length (including nulls) of name */
-+      char            name[0];        /* stub for possible name */
-+};
-+
-+/* the following are legal, implemented events that user-space can watch for */
-+#define IN_ACCESS             0x00000001      /* File was accessed */
-+#define IN_MODIFY             0x00000002      /* File was modified */
-+#define IN_ATTRIB             0x00000004      /* Metadata changed */
-+#define IN_CLOSE_WRITE                0x00000008      /* Writtable file was closed */
-+#define IN_CLOSE_NOWRITE      0x00000010      /* Unwrittable file closed */
-+#define IN_OPEN                       0x00000020      /* File was opened */
-+#define IN_MOVED_FROM         0x00000040      /* File was moved from X */
-+#define IN_MOVED_TO           0x00000080      /* File was moved to Y */
-+#define IN_CREATE             0x00000100      /* Subfile was created */
-+#define IN_DELETE             0x00000200      /* Subfile was deleted */
-+#define IN_DELETE_SELF                0x00000400      /* Self was deleted */
-+#define IN_MOVE_SELF          0x00000800      /* Self was moved */
-+
-+/* the following are legal events.  they are sent as needed to any watch */
-+#define IN_UNMOUNT            0x00002000      /* Backing fs was unmounted */
-+#define IN_Q_OVERFLOW         0x00004000      /* Event queued overflowed */
-+#define IN_IGNORED            0x00008000      /* File was ignored */
-+
-+/* helper events */
-+#define IN_CLOSE              (IN_CLOSE_WRITE | IN_CLOSE_NOWRITE) /* close */
-+#define IN_MOVE                       (IN_MOVED_FROM | IN_MOVED_TO) /* moves */
-+
-+/* special flags */
-+#define IN_ONLYDIR            0x01000000      /* only watch the path if it is a directory */
-+#define IN_DONT_FOLLOW                0x02000000      /* don't follow a sym link */
-+#define IN_MASK_ADD           0x20000000      /* add to the mask of an already existing watch */
-+#define IN_ISDIR              0x40000000      /* event occurred against dir */
-+#define IN_ONESHOT            0x80000000      /* only send event once */
-+
-+/*
-+ * All of the events - we build the list by hand so that we can add flags in
-+ * the future and not break backward compatibility.  Apps will get only the
-+ * events that they originally wanted.  Be sure to add new events here!
-+ */
-+#define IN_ALL_EVENTS (IN_ACCESS | IN_MODIFY | IN_ATTRIB | IN_CLOSE_WRITE | \
-+                       IN_CLOSE_NOWRITE | IN_OPEN | IN_MOVED_FROM | \
-+                       IN_MOVED_TO | IN_DELETE | IN_CREATE | IN_DELETE_SELF | \
-+                       IN_MOVE_SELF)
-+
-+
-+#endif        /* _LINUX_INOTIFY_H */
index d544b1fcf7014a10453e9f93fac30085ec50474a..724b1f2c0dff5082e9819bc37535959f0d294d8b 100644 (file)
@@ -1,7 +1,16 @@
 diff -Naur mISDN.org/drivers/isdn/hardware/mISDN/hfcpci.c mISDN/drivers/isdn/hardware/mISDN/hfcpci.c
---- mISDN.org/drivers/isdn/hardware/mISDN/hfcpci.c     2010-05-25 10:41:29.000000000 +0200
-+++ mISDN/drivers/isdn/hardware/mISDN/hfcpci.c 2010-10-31 11:19:05.000000000 +0100
-@@ -88,6 +88,7 @@
+--- mISDN.org/drivers/isdn/hardware/mISDN/hfcpci.c     2012-10-08 14:48:40.000000000 +0200
++++ mISDN/drivers/isdn/hardware/mISDN/hfcpci.c 2012-10-08 17:09:29.527792226 +0200
+@@ -53,6 +53,8 @@
+ #include "hfc_pci.h"
++#define       PCI_VENDOR_ID_0x1AE7    0x1AE7
++
+ static const char *hfcpci_revision = "2.0";
+ static int HFC_cnt;
+@@ -90,6 +92,7 @@
        HFC_DIGI_DF_M_A,
        HFC_ABOCOM_2BD1,
        HFC_SITECOM_DC105V2,
@@ -9,20 +18,20 @@ diff -Naur mISDN.org/drivers/isdn/hardware/mISDN/hfcpci.c mISDN/drivers/isdn/har
  };
  
  struct hfcPCI_hw {
-@@ -2182,6 +2183,7 @@
+@@ -2161,6 +2164,7 @@
        {HFC_DIGI_DF_M_A, 0,
-           "Digi International DataFire Micro V (North America)"},
+        "Digi International DataFire Micro V (North America)"},
        {HFC_SITECOM_DC105V2, 0, "Sitecom Connectivity DC-105 ISDN TA"},
 +      {HFC_NONAME_1AE7_0520, 0, "NoName HFC-S (1AE7:0520) ISDN TA"},
        {},
  };
  
-@@ -2233,6 +2235,8 @@
-               PCI_ANY_ID, PCI_ANY_ID, 0, 0, (unsigned long) &hfc_map[21]},
-       {PCI_VENDOR_ID_SITECOM, PCI_DEVICE_ID_SITECOM_DC105V2,
-               PCI_ANY_ID, PCI_ANY_ID, 0, 0, (unsigned long) &hfc_map[22]},
-+      {0x1ae7, 0x0520,
-+              PCI_ANY_ID, PCI_ANY_ID, 0, 0, (unsigned long) &hfc_map[23]},
+@@ -2212,6 +2216,8 @@
+         (unsigned long) &hfc_map[21] },
+       { PCI_VDEVICE(SITECOM, PCI_DEVICE_ID_SITECOM_DC105V2),
+         (unsigned long) &hfc_map[22] },
++      { PCI_VDEVICE(0x1AE7, 0x0520),
++        (unsigned long) &hfc_map[23] },
        {},
  };
  
diff --git a/src/patches/miniupnpd-iptcrdr.patch b/src/patches/miniupnpd-iptcrdr.patch
deleted file mode 100644 (file)
index 677043b..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
---- netfilter/iptcrdr.c.old    2010-02-24 14:22:23.000000000 +0100
-+++ netfilter/iptcrdr.c        2010-02-24 14:48:00.000000000 +0100
-@@ -20,6 +20,13 @@
- #if IPTABLES_143
- /* IPTABLES API version >= 1.4.3 */
-+
-+#define BUILD_BUG_ON_ZERO(e) (sizeof(struct { int:-!!(e); }))
-+#define __must_be_array(a) \
-+      BUILD_BUG_ON_ZERO(__builtin_types_compatible_p(typeof(a), typeof(&a[0])))
-+#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr))
-+#define LIST_POISON2  ((void *) 0x00200200 )
-+
- #include <net/netfilter/nf_nat.h>
- #define ip_nat_multi_range    nf_nat_multi_range
- #define ip_nat_range          nf_nat_range
diff --git a/src/patches/ncurses-5.5-fixes-1.patch b/src/patches/ncurses-5.5-fixes-1.patch
deleted file mode 100644 (file)
index 73e084d..0000000
+++ /dev/null
@@ -1,225 +0,0 @@
-Submitted by: Alexander E. Patrakov
-Date: 2005-12-07
-Initial Package Version: 5.5
-Upstream Status: Backport
-Origin: Cherry-picked from ftp://invisible-island.net/ncurses/5.5/*.gz
-Description: Fixes the following bugs:
-
-* memory leak in keyname()
-* mishandling of overlapped wide characters, http://bugs.debian.org/316663
-* problems with line-drawing characters on cygwin, http://bugs.debian.org/338234
-* mishandling of EINTR in tcgetattr/tcsetattr, http://bugs.debian.org/339518
-* mishandling of single-column multibyte characters, http://bugs.debian.org/341661
-
---- ncurses-5.5-20051015+/ncurses/base/MKkeyname.awk   2005-04-30 19:26:25.000000000 +0000
-+++ ncurses-5.5-20051022/ncurses/base/MKkeyname.awk    2005-10-22 19:01:23.000000000 +0000
-@@ -97,6 +97,7 @@
-       print "                                         break;"
-       print "                                 }"
-       print "                         }"
-+      print "                         free(bound);"
-       print "                         if (result != 0)"
-       print "                                 break;"
-       print "                 }"
---- ncurses-5.5-20051022+/ncurses/base/lib_addch.c     2005-03-27 16:52:16.000000000 +0000
-+++ ncurses-5.5-20051029/ncurses/base/lib_addch.c      2005-10-30 00:51:36.000000000 +0000
-@@ -315,7 +315,7 @@
-            * setup though.
-            */
-           for (i = 0; i < len; ++i) {
--              if (isWidecBase(win->_line[y].text[i])) {
-+              if (isWidecBase(win->_line[y].text[x + i])) {
-                   break;
-               } else if (isWidecExt(win->_line[y].text[x + i])) {
-                   for (j = i; x + j <= win->_maxx; ++j) {
-@@ -334,7 +334,9 @@
-           for (i = 0; i < len; ++i) {
-               NCURSES_CH_T value = ch;
-               SetWidecExt(value, i);
--              TR(TRACE_VIRTPUT, ("multicolumn %d:%d", i + 1, len));
-+              TR(TRACE_VIRTPUT, ("multicolumn %d:%d (%d,%d)",
-+                                 i + 1, len,
-+                                 win->_begy + y, win->_begx + x));
-               line->text[x] = value;
-               CHANGED_CELL(line, x);
-               ++x;
---- ncurses-5.5-20051022+/ncurses/base/lib_bkgd.c      2005-04-16 18:03:48.000000000 +0000
-+++ ncurses-5.5-20051029/ncurses/base/lib_bkgd.c       2005-10-30 00:41:09.000000000 +0000
-@@ -131,11 +131,11 @@
-       for (y = 0; y <= win->_maxy; y++) {
-           for (x = 0; x <= win->_maxx; x++) {
--              if (CharEq(win->_line[y].text[x], old_bkgrnd))
-+              if (CharEq(win->_line[y].text[x], old_bkgrnd)) {
-                   win->_line[y].text[x] = win->_nc_bkgd;
--              else {
-+              } else {
-                   NCURSES_CH_T wch = win->_line[y].text[x];
--                  RemAttr(wch, (~A_ALTCHARSET));
-+                  RemAttr(wch, (~(A_ALTCHARSET | A_CHARTEXT)));
-                   win->_line[y].text[x] = _nc_render(win, wch);
-               }
-           }
---- ncurses-5.5-20051022+/ncurses/base/lib_erase.c     2001-12-19 01:06:13.000000000 +0000
-+++ ncurses-5.5-20051029/ncurses/base/lib_erase.c      2005-10-30 00:36:36.000000000 +0000
-@@ -58,6 +59,24 @@
-           start = win->_line[y].text;
-           end = &start[win->_maxx];
-+          /*
-+           * If this is a derived window, we have to handle the case where
-+           * a multicolumn character extends into the window that we are
-+           * erasing.
-+           */
-+          if_WIDEC({
-+              if (isWidecExt(start[0])) {
-+                  int x = (win->_parent != 0) ? (win->_begx) : 0;
-+                  while (x-- > 0) {
-+                      if (isWidecBase(start[-1])) {
-+                          --start;
-+                          break;
-+                      }
-+                      --start;
-+                  }
-+              }
-+          });
-+
-           for (sp = start; sp <= end; sp++)
-               *sp = blank;
---- ncurses-5.5-20051029+/misc/terminfo.src    2005-10-26 23:21:06.000000000 +0000
-+++ ncurses-5.5-20051112/misc/terminfo.src     2005-11-12 23:01:03.000000000 +0000
-@@ -4731,32 +4731,35 @@
- #   civis [make cursor invisible] causes everything to stackdump? \E[?25l\E[?1c
- #   ech   [erase characters param] broken \E[%p1%dX
- #   kcbt  [back-tab key] not implemented in cygwin?  \E[Z
-+#
-+# 2005/11/12 -TD
-+#     Remove cbt since it does not work in current cygwin
-+#     Add 'mir' and 'in' flags based on tack
- cygwin|ansi emulation for Cygwin, 
--      am, hs, in, msgr, xon, 
-+      am, hs, mir, msgr, xon, 
-       colors#8, it#8, pairs#64, 
-       acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376, 
--      bel=^G, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J, cr=^M, 
--      cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B, 
--      cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, 
--      cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, 
--      dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K, fsl=^G, 
--      home=\E[H, hpa=\E[%i%p1%dG, ht=^I, ich=\E[%p1%d@, 
--      ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J, invis=\E[8m, 
--      kb2=\E[G, kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, 
--      kcuu1=\E[A, kdch1=\E[3~, kend=\E[4~, kf1=\E[[A, 
--      kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, 
--      kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, 
--      kf18=\E[32~, kf19=\E[33~, kf2=\E[[B, kf20=\E[34~, 
--      kf3=\E[[C, kf4=\E[[D, kf5=\E[[E, kf6=\E[17~, kf7=\E[18~, 
--      kf8=\E[19~, kf9=\E[20~, khome=\E[1~, kich1=\E[2~, 
--      knp=\E[6~, kpp=\E[5~, kspd=^Z, nel=^M^J, op=\E[39;49m, 
--      rc=\E8, rev=\E[7m, ri=\EM, rmacs=\E[10m, 
--      rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, rmpch=\E[10m, 
--      rmso=\E[27m, rmul=\E[24m, rs1=\Ec\E]R, sc=\E7, 
--      setab=\E[4%p1%dm, setaf=\E[3%p1%dm, 
-+      bel=^G, bold=\E[1m, clear=\E[H\E[J, cr=^M, cub=\E[%p1%dD, 
-+      cub1=^H, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, 
-+      cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, 
-+      cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, 
-+      dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K, fsl=^G, home=\E[H, 
-+      hpa=\E[%i%p1%dG, ht=^I, ich=\E[%p1%d@, ich1=\E[@, 
-+      il=\E[%p1%dL, il1=\E[L, ind=^J, invis=\E[8m, kb2=\E[G, 
-+      kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, 
-+      kdch1=\E[3~, kend=\E[4~, kf1=\E[[A, kf10=\E[21~, 
-+      kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, 
-+      kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, 
-+      kf19=\E[33~, kf2=\E[[B, kf20=\E[34~, kf3=\E[[C, kf4=\E[[D, 
-+      kf5=\E[[E, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, 
-+      khome=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, kspd=^Z, 
-+      nel=^M^J, op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM, 
-+      rmacs=\E[10m, rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, 
-+      rmpch=\E[10m, rmso=\E[27m, rmul=\E[24m, rs1=\Ec\E]R, 
-+      sc=\E7, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, 
-       sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m, 
--      sgr0=\E[0;10m, smacs=\E11m, smcup=\E7\E[?47h, smir=\E[4h, 
--      smpch=\E[11m, smso=\E[7m, smul=\E[4m, tsl=\E];, 
-+      sgr0=\E[0;10m, smacs=\E[11m, smcup=\E7\E[?47h, 
-+      smir=\E[4h, smpch=\E[11m, smso=\E[7m, smul=\E[4m, tsl=\E];, 
-       u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?6c, u9=\E[c, 
-       vpa=\E[%i%p1%dd, 
---- ncurses-5.5-20051112+/ncurses/tinfo/lib_ttyflags.c 2003-05-17 23:50:37.000000000 +0000
-+++ ncurses-5.5-20051119/ncurses/tinfo/lib_ttyflags.c  2005-11-19 20:36:23.000000000 +0000
-@@ -59,28 +59,51 @@
- NCURSES_EXPORT(int)
- _nc_get_tty_mode(TTY * buf)
- {
--    if (cur_term == 0
--      || GET_TTY(cur_term->Filedes, buf) != 0) {
--      memset(buf, 0, sizeof(*buf));
--      return (ERR);
-+    int result = OK;
-+
-+    if (cur_term == 0) {
-+      result = ERR;
-+    } else {
-+      for (;;) {
-+          if (GET_TTY(cur_term->Filedes, buf) != 0) {
-+              if (errno == EINTR)
-+                  continue;
-+              result = ERR;
-+          }
-+          break;
-+      }
-     }
-+
-+    if (result == ERR)
-+      memset(buf, 0, sizeof(*buf));
-+
-     TR(TRACE_BITS, ("_nc_get_tty_mode(%d): %s",
-                   cur_term->Filedes, _nc_trace_ttymode(buf)));
--    return (OK);
-+    return (result);
- }
- NCURSES_EXPORT(int)
- _nc_set_tty_mode(TTY * buf)
- {
--    if (cur_term == 0
--      || SET_TTY(cur_term->Filedes, buf) != 0) {
--      if ((errno == ENOTTY) && (SP != 0))
--          SP->_notty = TRUE;
--      return (ERR);
-+    int result = OK;
-+
-+    if (cur_term == 0) {
-+      result = ERR;
-+    } else {
-+      for (;;) {
-+          if (SET_TTY(cur_term->Filedes, buf) != 0) {
-+              if (errno == EINTR)
-+                  continue;
-+              if ((errno == ENOTTY) && (SP != 0))
-+                  SP->_notty = TRUE;
-+              result = ERR;
-+          }
-+          break;
-+      }
-     }
-     TR(TRACE_BITS, ("_nc_set_tty_mode(%d): %s",
-                   cur_term->Filedes, _nc_trace_ttymode(buf)));
--    return (OK);
-+    return (result);
- }
- NCURSES_EXPORT(int)
---- ncurses-5.5-20051126+/ncurses/widechar/lib_ins_wch.c       2005-09-17 19:25:13.000000000 +0000
-+++ ncurses-5.5-20051203/ncurses/widechar/lib_ins_wch.c        2005-12-03 20:24:19.000000000 +0000
-@@ -117,7 +117,7 @@
-           for (cp = wstr; *cp && ((cp - wstr) < n); cp++) {
-               int len = wcwidth(*cp);
--              if (len != 1) {
-+              if (len != 1 || !is8bits(*cp)) {
-                   cchar_t tmp_cchar;
-                   wchar_t tmp_wchar = *cp;
-                   memset(&tmp_cchar, 0, sizeof(tmp_cchar));
diff --git a/src/patches/netfilter_layer7_2.22_kernel3.0.patch b/src/patches/netfilter_layer7_2.22_kernel3.0.patch
new file mode 100644 (file)
index 0000000..82d8509
--- /dev/null
@@ -0,0 +1,2160 @@
+diff -Naur linux-3.0.24.org/include/linux/netfilter/xt_layer7.h linux-3.0.24/include/linux/netfilter/xt_layer7.h
+--- linux-3.0.24.org/include/linux/netfilter/xt_layer7.h       1970-01-01 01:00:00.000000000 +0100
++++ linux-3.0.24/include/linux/netfilter/xt_layer7.h   2012-03-15 20:08:48.976050501 +0100
+@@ -0,0 +1,13 @@
++#ifndef _XT_LAYER7_H
++#define _XT_LAYER7_H
++
++#define MAX_PATTERN_LEN 8192
++#define MAX_PROTOCOL_LEN 256
++
++struct xt_layer7_info {
++    char protocol[MAX_PROTOCOL_LEN];
++    char pattern[MAX_PATTERN_LEN];
++    u_int8_t invert;
++};
++
++#endif /* _XT_LAYER7_H */
+diff -Naur linux-3.0.24.org/include/net/netfilter/nf_conntrack.h linux-3.0.24/include/net/netfilter/nf_conntrack.h
+--- linux-3.0.24.org/include/net/netfilter/nf_conntrack.h      2012-03-12 18:58:19.000000000 +0100
++++ linux-3.0.24/include/net/netfilter/nf_conntrack.h  2012-03-15 20:11:43.806042495 +0100
+@@ -134,6 +134,22 @@
+       struct net *ct_net;
+ #endif
++#if defined(CONFIG_NETFILTER_XT_MATCH_LAYER7) || \
++ defined(CONFIG_NETFILTER_XT_MATCH_LAYER7_MODULE)
++      struct {
++              /*
++               * e.g. "http". NULL before decision. "unknown" after decision
++               * if no match.
++               */
++              char *app_proto;
++              /*
++               * application layer data so far. NULL after match decision.
++               */
++              char *app_data;
++              unsigned int app_data_len;
++      } layer7;
++#endif
++
+       /* Storage reserved for other modules, must be the last member */
+       union nf_conntrack_proto proto;
+ };
+diff -Naur linux-3.0.24.org/net/netfilter/Kconfig linux-3.0.24/net/netfilter/Kconfig
+--- linux-3.0.24.org/net/netfilter/Kconfig     2012-03-12 18:58:19.000000000 +0100
++++ linux-3.0.24/net/netfilter/Kconfig 2012-03-15 20:46:12.046043918 +0100
+@@ -1020,6 +1020,26 @@
+         To compile it as a module, choose M here.  If unsure, say N.
++config NETFILTER_XT_MATCH_LAYER7
++      tristate '"layer7" match support'
++      depends on NETFILTER_XTABLES
++      depends on EXPERIMENTAL && (IP_NF_CONNTRACK || NF_CONNTRACK)
++      help
++        Say Y if you want to be able to classify connections (and their
++        packets) based on regular expression matching of their application
++        layer data.   This is one way to classify applications such as
++        peer-to-peer filesharing systems that do not always use the same
++        port.
++
++        To compile it as a module, choose M here.  If unsure, say N.
++
++config NETFILTER_XT_MATCH_LAYER7_DEBUG
++        bool 'Layer 7 debugging output'
++        depends on NETFILTER_XT_MATCH_LAYER7
++        help
++          Say Y to get lots of debugging output.
++
++
+ config NETFILTER_XT_MATCH_STATISTIC
+       tristate '"statistic" match support'
+       depends on NETFILTER_ADVANCED
+diff -Naur linux-3.0.24.org/net/netfilter/Makefile linux-3.0.24/net/netfilter/Makefile
+--- linux-3.0.24.org/net/netfilter/Makefile    2012-03-12 18:58:19.000000000 +0100
++++ linux-3.0.24/net/netfilter/Makefile        2012-03-15 20:08:49.016044445 +0100
+@@ -102,6 +102,7 @@
+ obj-$(CONFIG_NETFILTER_XT_MATCH_SCTP) += xt_sctp.o
+ obj-$(CONFIG_NETFILTER_XT_MATCH_SOCKET) += xt_socket.o
+ obj-$(CONFIG_NETFILTER_XT_MATCH_STATE) += xt_state.o
++obj-$(CONFIG_NETFILTER_XT_MATCH_LAYER7) += xt_layer7.o
+ obj-$(CONFIG_NETFILTER_XT_MATCH_STATISTIC) += xt_statistic.o
+ obj-$(CONFIG_NETFILTER_XT_MATCH_STRING) += xt_string.o
+ obj-$(CONFIG_NETFILTER_XT_MATCH_TCPMSS) += xt_tcpmss.o
+diff -Naur linux-3.0.24.org/net/netfilter/nf_conntrack_core.c linux-3.0.24/net/netfilter/nf_conntrack_core.c
+--- linux-3.0.24.org/net/netfilter/nf_conntrack_core.c 2012-03-12 18:58:19.000000000 +0100
++++ linux-3.0.24/net/netfilter/nf_conntrack_core.c     2012-03-15 20:08:49.026044761 +0100
+@@ -213,6 +213,14 @@
+        * too. */
+       nf_ct_remove_expectations(ct);
++      #if defined(CONFIG_NETFILTER_XT_MATCH_LAYER7) || defined(CONFIG_NETFILTER_XT_MATCH_LAYER7_MODULE)
++      if(ct->layer7.app_proto)
++              kfree(ct->layer7.app_proto);
++      if(ct->layer7.app_data)
++      kfree(ct->layer7.app_data);
++      #endif
++
++
+       /* We overload first tuple to link into unconfirmed list. */
+       if (!nf_ct_is_confirmed(ct)) {
+               BUG_ON(hlist_nulls_unhashed(&ct->tuplehash[IP_CT_DIR_ORIGINAL].hnnode));
+diff -Naur linux-3.0.24.org/net/netfilter/nf_conntrack_standalone.c linux-3.0.24/net/netfilter/nf_conntrack_standalone.c
+--- linux-3.0.24.org/net/netfilter/nf_conntrack_standalone.c   2012-03-12 18:58:19.000000000 +0100
++++ linux-3.0.24/net/netfilter/nf_conntrack_standalone.c       2012-03-15 20:08:49.036047262 +0100
+@@ -239,6 +239,12 @@
+       if (ct_show_delta_time(s, ct))
+               goto release;
++#if defined(CONFIG_NETFILTER_XT_MATCH_LAYER7) || defined(CONFIG_NETFILTER_XT_MATCH_LAYER7_MODULE)
++      if(ct->layer7.app_proto &&
++           seq_printf(s, "l7proto=%s ", ct->layer7.app_proto))
++              return -ENOSPC;
++#endif
++
+       if (seq_printf(s, "use=%u\n", atomic_read(&ct->ct_general.use)))
+               goto release;
+diff -Naur linux-3.0.24.org/net/netfilter/regexp/regexp.c linux-3.0.24/net/netfilter/regexp/regexp.c
+--- linux-3.0.24.org/net/netfilter/regexp/regexp.c     1970-01-01 01:00:00.000000000 +0100
++++ linux-3.0.24/net/netfilter/regexp/regexp.c 2012-03-15 20:08:49.066043520 +0100
+@@ -0,0 +1,1197 @@
++/*
++ * regcomp and regexec -- regsub and regerror are elsewhere
++ * @(#)regexp.c       1.3 of 18 April 87
++ *
++ *    Copyright (c) 1986 by University of Toronto.
++ *    Written by Henry Spencer.  Not derived from licensed software.
++ *
++ *    Permission is granted to anyone to use this software for any
++ *    purpose on any computer system, and to redistribute it freely,
++ *    subject to the following restrictions:
++ *
++ *    1. The author is not responsible for the consequences of use of
++ *            this software, no matter how awful, even if they arise
++ *            from defects in it.
++ *
++ *    2. The origin of this software must not be misrepresented, either
++ *            by explicit claim or by omission.
++ *
++ *    3. Altered versions must be plainly marked as such, and must not
++ *            be misrepresented as being the original software.
++ *
++ * Beware that some of this code is subtly aware of the way operator
++ * precedence is structured in regular expressions.  Serious changes in
++ * regular-expression syntax might require a total rethink.
++ *
++ * This code was modified by Ethan Sommer to work within the kernel
++ * (it now uses kmalloc etc..)
++ *
++ * Modified slightly by Matthew Strait to use more modern C.
++ */
++
++#include "regexp.h"
++#include "regmagic.h"
++
++/* added by ethan and matt.  Lets it work in both kernel and user space.
++(So iptables can use it, for instance.)  Yea, it goes both ways... */
++#if __KERNEL__
++  #define malloc(foo) kmalloc(foo,GFP_ATOMIC)
++#else
++  #define printk(format,args...) printf(format,##args)
++#endif
++
++void regerror(char * s)
++{
++        printk("<3>Regexp: %s\n", s);
++        /* NOTREACHED */
++}
++
++/*
++ * The "internal use only" fields in regexp.h are present to pass info from
++ * compile to execute that permits the execute phase to run lots faster on
++ * simple cases.  They are:
++ *
++ * regstart   char that must begin a match; '\0' if none obvious
++ * reganch    is the match anchored (at beginning-of-line only)?
++ * regmust    string (pointer into program) that match must include, or NULL
++ * regmlen    length of regmust string
++ *
++ * Regstart and reganch permit very fast decisions on suitable starting points
++ * for a match, cutting down the work a lot.  Regmust permits fast rejection
++ * of lines that cannot possibly match.  The regmust tests are costly enough
++ * that regcomp() supplies a regmust only if the r.e. contains something
++ * potentially expensive (at present, the only such thing detected is * or +
++ * at the start of the r.e., which can involve a lot of backup).  Regmlen is
++ * supplied because the test in regexec() needs it and regcomp() is computing
++ * it anyway.
++ */
++
++/*
++ * Structure for regexp "program".  This is essentially a linear encoding
++ * of a nondeterministic finite-state machine (aka syntax charts or
++ * "railroad normal form" in parsing technology).  Each node is an opcode
++ * plus a "next" pointer, possibly plus an operand.  "Next" pointers of
++ * all nodes except BRANCH implement concatenation; a "next" pointer with
++ * a BRANCH on both ends of it is connecting two alternatives.  (Here we
++ * have one of the subtle syntax dependencies:  an individual BRANCH (as
++ * opposed to a collection of them) is never concatenated with anything
++ * because of operator precedence.)  The operand of some types of node is
++ * a literal string; for others, it is a node leading into a sub-FSM.  In
++ * particular, the operand of a BRANCH node is the first node of the branch.
++ * (NB this is *not* a tree structure:  the tail of the branch connects
++ * to the thing following the set of BRANCHes.)  The opcodes are:
++ */
++
++/* definition number  opnd?   meaning */
++#define       END     0       /* no   End of program. */
++#define       BOL     1       /* no   Match "" at beginning of line. */
++#define       EOL     2       /* no   Match "" at end of line. */
++#define       ANY     3       /* no   Match any one character. */
++#define       ANYOF   4       /* str  Match any character in this string. */
++#define       ANYBUT  5       /* str  Match any character not in this string. */
++#define       BRANCH  6       /* node Match this alternative, or the next... */
++#define       BACK    7       /* no   Match "", "next" ptr points backward. */
++#define       EXACTLY 8       /* str  Match this string. */
++#define       NOTHING 9       /* no   Match empty string. */
++#define       STAR    10      /* node Match this (simple) thing 0 or more times. */
++#define       PLUS    11      /* node Match this (simple) thing 1 or more times. */
++#define       OPEN    20      /* no   Mark this point in input as start of #n. */
++                      /*      OPEN+1 is number 1, etc. */
++#define       CLOSE   30      /* no   Analogous to OPEN. */
++
++/*
++ * Opcode notes:
++ *
++ * BRANCH     The set of branches constituting a single choice are hooked
++ *            together with their "next" pointers, since precedence prevents
++ *            anything being concatenated to any individual branch.  The
++ *            "next" pointer of the last BRANCH in a choice points to the
++ *            thing following the whole choice.  This is also where the
++ *            final "next" pointer of each individual branch points; each
++ *            branch starts with the operand node of a BRANCH node.
++ *
++ * BACK               Normal "next" pointers all implicitly point forward; BACK
++ *            exists to make loop structures possible.
++ *
++ * STAR,PLUS  '?', and complex '*' and '+', are implemented as circular
++ *            BRANCH structures using BACK.  Simple cases (one character
++ *            per match) are implemented with STAR and PLUS for speed
++ *            and to minimize recursive plunges.
++ *
++ * OPEN,CLOSE ...are numbered at compile time.
++ */
++
++/*
++ * A node is one char of opcode followed by two chars of "next" pointer.
++ * "Next" pointers are stored as two 8-bit pieces, high order first.  The
++ * value is a positive offset from the opcode of the node containing it.
++ * An operand, if any, simply follows the node.  (Note that much of the
++ * code generation knows about this implicit relationship.)
++ *
++ * Using two bytes for the "next" pointer is vast overkill for most things,
++ * but allows patterns to get big without disasters.
++ */
++#define       OP(p)   (*(p))
++#define       NEXT(p) (((*((p)+1)&0377)<<8) + (*((p)+2)&0377))
++#define       OPERAND(p)      ((p) + 3)
++
++/*
++ * See regmagic.h for one further detail of program structure.
++ */
++
++
++/*
++ * Utility definitions.
++ */
++#ifndef CHARBITS
++#define       UCHARAT(p)      ((int)*(unsigned char *)(p))
++#else
++#define       UCHARAT(p)      ((int)*(p)&CHARBITS)
++#endif
++
++#define       FAIL(m) { regerror(m); return(NULL); }
++#define       ISMULT(c)       ((c) == '*' || (c) == '+' || (c) == '?')
++#define       META    "^$.[()|?+*\\"
++
++/*
++ * Flags to be passed up and down.
++ */
++#define       HASWIDTH        01      /* Known never to match null string. */
++#define       SIMPLE          02      /* Simple enough to be STAR/PLUS operand. */
++#define       SPSTART         04      /* Starts with * or +. */
++#define       WORST           0       /* Worst case. */
++
++/*
++ * Global work variables for regcomp().
++ */
++struct match_globals {
++char *reginput;               /* String-input pointer. */
++char *regbol;         /* Beginning of input, for ^ check. */
++char **regstartp;     /* Pointer to startp array. */
++char **regendp;               /* Ditto for endp. */
++char *regparse;               /* Input-scan pointer. */
++int regnpar;          /* () count. */
++char regdummy;
++char *regcode;                /* Code-emit pointer; &regdummy = don't. */
++long regsize;         /* Code size. */
++};
++
++/*
++ * Forward declarations for regcomp()'s friends.
++ */
++#ifndef STATIC
++#define       STATIC  static
++#endif
++STATIC char *reg(struct match_globals *g, int paren,int *flagp);
++STATIC char *regbranch(struct match_globals *g, int *flagp);
++STATIC char *regpiece(struct match_globals *g, int *flagp);
++STATIC char *regatom(struct match_globals *g, int *flagp);
++STATIC char *regnode(struct match_globals *g, char op);
++STATIC char *regnext(struct match_globals *g, char *p);
++STATIC void regc(struct match_globals *g, char b);
++STATIC void reginsert(struct match_globals *g, char op, char *opnd);
++STATIC void regtail(struct match_globals *g, char *p, char *val);
++STATIC void regoptail(struct match_globals *g, char *p, char *val);
++
++
++__kernel_size_t my_strcspn(const char *s1,const char *s2)
++{
++        char *scan1;
++        char *scan2;
++        int count;
++
++        count = 0;
++        for (scan1 = (char *)s1; *scan1 != '\0'; scan1++) {
++                for (scan2 = (char *)s2; *scan2 != '\0';)       /* ++ moved down. */
++                        if (*scan1 == *scan2++)
++                                return(count);
++                count++;
++        }
++        return(count);
++}
++
++/*
++ - regcomp - compile a regular expression into internal code
++ *
++ * We can't allocate space until we know how big the compiled form will be,
++ * but we can't compile it (and thus know how big it is) until we've got a
++ * place to put the code.  So we cheat:  we compile it twice, once with code
++ * generation turned off and size counting turned on, and once "for real".
++ * This also means that we don't allocate space until we are sure that the
++ * thing really will compile successfully, and we never have to move the
++ * code and thus invalidate pointers into it.  (Note that it has to be in
++ * one piece because free() must be able to free it all.)
++ *
++ * Beware that the optimization-preparation code in here knows about some
++ * of the structure of the compiled regexp.
++ */
++regexp *
++regcomp(char *exp,int *patternsize)
++{
++      register regexp *r;
++      register char *scan;
++      register char *longest;
++      register int len;
++      int flags;
++      struct match_globals g;
++      
++      /* commented out by ethan
++         extern char *malloc();
++      */
++
++      if (exp == NULL)
++              FAIL("NULL argument");
++
++      /* First pass: determine size, legality. */
++      g.regparse = exp;
++      g.regnpar = 1;
++      g.regsize = 0L;
++      g.regcode = &g.regdummy;
++      regc(&g, MAGIC);
++      if (reg(&g, 0, &flags) == NULL)
++              return(NULL);
++
++      /* Small enough for pointer-storage convention? */
++      if (g.regsize >= 32767L)                /* Probably could be 65535L. */
++              FAIL("regexp too big");
++
++      /* Allocate space. */
++      *patternsize=sizeof(regexp) + (unsigned)g.regsize;
++      r = (regexp *)malloc(sizeof(regexp) + (unsigned)g.regsize);
++      if (r == NULL)
++              FAIL("out of space");
++
++      /* Second pass: emit code. */
++      g.regparse = exp;
++      g.regnpar = 1;
++      g.regcode = r->program;
++      regc(&g, MAGIC);
++      if (reg(&g, 0, &flags) == NULL)
++              return(NULL);
++
++      /* Dig out information for optimizations. */
++      r->regstart = '\0';     /* Worst-case defaults. */
++      r->reganch = 0;
++      r->regmust = NULL;
++      r->regmlen = 0;
++      scan = r->program+1;                    /* First BRANCH. */
++      if (OP(regnext(&g, scan)) == END) {             /* Only one top-level choice. */
++              scan = OPERAND(scan);
++
++              /* Starting-point info. */
++              if (OP(scan) == EXACTLY)
++                      r->regstart = *OPERAND(scan);
++              else if (OP(scan) == BOL)
++                      r->reganch++;
++
++              /*
++               * If there's something expensive in the r.e., find the
++               * longest literal string that must appear and make it the
++               * regmust.  Resolve ties in favor of later strings, since
++               * the regstart check works with the beginning of the r.e.
++               * and avoiding duplication strengthens checking.  Not a
++               * strong reason, but sufficient in the absence of others.
++               */
++              if (flags&SPSTART) {
++                      longest = NULL;
++                      len = 0;
++                      for (; scan != NULL; scan = regnext(&g, scan))
++                              if (OP(scan) == EXACTLY && strlen(OPERAND(scan)) >= len) {
++                                      longest = OPERAND(scan);
++                                      len = strlen(OPERAND(scan));
++                              }
++                      r->regmust = longest;
++                      r->regmlen = len;
++              }
++      }
++
++      return(r);
++}
++
++/*
++ - reg - regular expression, i.e. main body or parenthesized thing
++ *
++ * Caller must absorb opening parenthesis.
++ *
++ * Combining parenthesis handling with the base level of regular expression
++ * is a trifle forced, but the need to tie the tails of the branches to what
++ * follows makes it hard to avoid.
++ */
++static char *
++reg(struct match_globals *g, int paren, int *flagp /* Parenthesized? */ )
++{
++      register char *ret;
++      register char *br;
++      register char *ender;
++      register int parno = 0; /* 0 makes gcc happy */
++      int flags;
++
++      *flagp = HASWIDTH;      /* Tentatively. */
++
++      /* Make an OPEN node, if parenthesized. */
++      if (paren) {
++              if (g->regnpar >= NSUBEXP)
++                      FAIL("too many ()");
++              parno = g->regnpar;
++              g->regnpar++;
++              ret = regnode(g, OPEN+parno);
++      } else
++              ret = NULL;
++
++      /* Pick up the branches, linking them together. */
++      br = regbranch(g, &flags);
++      if (br == NULL)
++              return(NULL);
++      if (ret != NULL)
++              regtail(g, ret, br);    /* OPEN -> first. */
++      else
++              ret = br;
++      if (!(flags&HASWIDTH))
++              *flagp &= ~HASWIDTH;
++      *flagp |= flags&SPSTART;
++      while (*g->regparse == '|') {
++              g->regparse++;
++              br = regbranch(g, &flags);
++              if (br == NULL)
++                      return(NULL);
++              regtail(g, ret, br);    /* BRANCH -> BRANCH. */
++              if (!(flags&HASWIDTH))
++                      *flagp &= ~HASWIDTH;
++              *flagp |= flags&SPSTART;
++      }
++
++      /* Make a closing node, and hook it on the end. */
++      ender = regnode(g, (paren) ? CLOSE+parno : END);        
++      regtail(g, ret, ender);
++
++      /* Hook the tails of the branches to the closing node. */
++      for (br = ret; br != NULL; br = regnext(g, br))
++              regoptail(g, br, ender);
++
++      /* Check for proper termination. */
++      if (paren && *g->regparse++ != ')') {
++              FAIL("unmatched ()");
++      } else if (!paren && *g->regparse != '\0') {
++              if (*g->regparse == ')') {
++                      FAIL("unmatched ()");
++              } else
++                      FAIL("junk on end");    /* "Can't happen". */
++              /* NOTREACHED */
++      }
++
++      return(ret);
++}
++
++/*
++ - regbranch - one alternative of an | operator
++ *
++ * Implements the concatenation operator.
++ */
++static char *
++regbranch(struct match_globals *g, int *flagp)
++{
++      register char *ret;
++      register char *chain;
++      register char *latest;
++      int flags;
++
++      *flagp = WORST;         /* Tentatively. */
++
++      ret = regnode(g, BRANCH);
++      chain = NULL;
++      while (*g->regparse != '\0' && *g->regparse != '|' && *g->regparse != ')') {
++              latest = regpiece(g, &flags);
++              if (latest == NULL)
++                      return(NULL);
++              *flagp |= flags&HASWIDTH;
++              if (chain == NULL)      /* First piece. */
++                      *flagp |= flags&SPSTART;
++              else
++                      regtail(g, chain, latest);
++              chain = latest;
++      }
++      if (chain == NULL)      /* Loop ran zero times. */
++              (void) regnode(g, NOTHING);
++
++      return(ret);
++}
++
++/*
++ - regpiece - something followed by possible [*+?]
++ *
++ * Note that the branching code sequences used for ? and the general cases
++ * of * and + are somewhat optimized:  they use the same NOTHING node as
++ * both the endmarker for their branch list and the body of the last branch.
++ * It might seem that this node could be dispensed with entirely, but the
++ * endmarker role is not redundant.
++ */
++static char *
++regpiece(struct match_globals *g, int *flagp)
++{
++      register char *ret;
++      register char op;
++      register char *next;
++      int flags;
++
++      ret = regatom(g, &flags);
++      if (ret == NULL)
++              return(NULL);
++
++      op = *g->regparse;
++      if (!ISMULT(op)) {
++              *flagp = flags;
++              return(ret);
++      }
++
++      if (!(flags&HASWIDTH) && op != '?')
++              FAIL("*+ operand could be empty");
++      *flagp = (op != '+') ? (WORST|SPSTART) : (WORST|HASWIDTH);
++
++      if (op == '*' && (flags&SIMPLE))
++              reginsert(g, STAR, ret);
++      else if (op == '*') {
++              /* Emit x* as (x&|), where & means "self". */
++              reginsert(g, BRANCH, ret);                      /* Either x */
++              regoptail(g, ret, regnode(g, BACK));            /* and loop */
++              regoptail(g, ret, ret);                 /* back */
++              regtail(g, ret, regnode(g, BRANCH));            /* or */
++              regtail(g, ret, regnode(g, NOTHING));           /* null. */
++      } else if (op == '+' && (flags&SIMPLE))
++              reginsert(g, PLUS, ret);
++      else if (op == '+') {
++              /* Emit x+ as x(&|), where & means "self". */
++              next = regnode(g, BRANCH);                      /* Either */
++              regtail(g, ret, next);
++              regtail(g, regnode(g, BACK), ret);              /* loop back */
++              regtail(g, next, regnode(g, BRANCH));           /* or */
++              regtail(g, ret, regnode(g, NOTHING));           /* null. */
++      } else if (op == '?') {
++              /* Emit x? as (x|) */
++              reginsert(g, BRANCH, ret);                      /* Either x */
++              regtail(g, ret, regnode(g, BRANCH));            /* or */
++              next = regnode(g, NOTHING);             /* null. */
++              regtail(g, ret, next);
++              regoptail(g, ret, next);
++      }
++      g->regparse++;
++      if (ISMULT(*g->regparse))
++              FAIL("nested *?+");
++
++      return(ret);
++}
++
++/*
++ - regatom - the lowest level
++ *
++ * Optimization:  gobbles an entire sequence of ordinary characters so that
++ * it can turn them into a single node, which is smaller to store and
++ * faster to run.  Backslashed characters are exceptions, each becoming a
++ * separate node; the code is simpler that way and it's not worth fixing.
++ */
++static char *
++regatom(struct match_globals *g, int *flagp)
++{
++      register char *ret;
++      int flags;
++
++      *flagp = WORST;         /* Tentatively. */
++
++      switch (*g->regparse++) {
++      case '^':
++              ret = regnode(g, BOL);
++              break;
++      case '$':
++              ret = regnode(g, EOL);
++              break;
++      case '.':
++              ret = regnode(g, ANY);
++              *flagp |= HASWIDTH|SIMPLE;
++              break;
++      case '[': {
++                      register int class;
++                      register int classend;
++
++                      if (*g->regparse == '^') {      /* Complement of range. */
++                              ret = regnode(g, ANYBUT);
++                              g->regparse++;
++                      } else
++                              ret = regnode(g, ANYOF);
++                      if (*g->regparse == ']' || *g->regparse == '-')
++                              regc(g, *g->regparse++);
++                      while (*g->regparse != '\0' && *g->regparse != ']') {
++                              if (*g->regparse == '-') {
++                                      g->regparse++;
++                                      if (*g->regparse == ']' || *g->regparse == '\0')
++                                              regc(g, '-');
++                                      else {
++                                              class = UCHARAT(g->regparse-2)+1;
++                                              classend = UCHARAT(g->regparse);
++                                              if (class > classend+1)
++                                                      FAIL("invalid [] range");
++                                              for (; class <= classend; class++)
++                                                      regc(g, class);
++                                              g->regparse++;
++                                      }
++                              } else
++                                      regc(g, *g->regparse++);
++                      }
++                      regc(g, '\0');
++                      if (*g->regparse != ']')
++                              FAIL("unmatched []");
++                      g->regparse++;
++                      *flagp |= HASWIDTH|SIMPLE;
++              }
++              break;
++      case '(':
++              ret = reg(g, 1, &flags);
++              if (ret == NULL)
++                      return(NULL);
++              *flagp |= flags&(HASWIDTH|SPSTART);
++              break;
++      case '\0':
++      case '|':
++      case ')':
++              FAIL("internal urp");   /* Supposed to be caught earlier. */
++              break;
++      case '?':
++      case '+':
++      case '*':
++              FAIL("?+* follows nothing");
++              break;
++      case '\\':
++              if (*g->regparse == '\0')
++                      FAIL("trailing \\");
++              ret = regnode(g, EXACTLY);
++              regc(g, *g->regparse++);
++              regc(g, '\0');
++              *flagp |= HASWIDTH|SIMPLE;
++              break;
++      default: {
++                      register int len;
++                      register char ender;
++
++                      g->regparse--;
++                      len = my_strcspn((const char *)g->regparse, (const char *)META);
++                      if (len <= 0)
++                              FAIL("internal disaster");
++                      ender = *(g->regparse+len);
++                      if (len > 1 && ISMULT(ender))
++                              len--;          /* Back off clear of ?+* operand. */
++                      *flagp |= HASWIDTH;
++                      if (len == 1)
++                              *flagp |= SIMPLE;
++                      ret = regnode(g, EXACTLY);
++                      while (len > 0) {
++                              regc(g, *g->regparse++);
++                              len--;
++                      }
++                      regc(g, '\0');
++              }
++              break;
++      }
++
++      return(ret);
++}
++
++/*
++ - regnode - emit a node
++ */
++static char *                 /* Location. */
++regnode(struct match_globals *g, char op)
++{
++      register char *ret;
++      register char *ptr;
++
++      ret = g->regcode;
++      if (ret == &g->regdummy) {
++              g->regsize += 3;
++              return(ret);
++      }
++
++      ptr = ret;
++      *ptr++ = op;
++      *ptr++ = '\0';          /* Null "next" pointer. */
++      *ptr++ = '\0';
++      g->regcode = ptr;
++
++      return(ret);
++}
++
++/*
++ - regc - emit (if appropriate) a byte of code
++ */
++static void
++regc(struct match_globals *g, char b)
++{
++      if (g->regcode != &g->regdummy)
++              *g->regcode++ = b;
++      else
++              g->regsize++;
++}
++
++/*
++ - reginsert - insert an operator in front of already-emitted operand
++ *
++ * Means relocating the operand.
++ */
++static void
++reginsert(struct match_globals *g, char op, char* opnd)
++{
++      register char *src;
++      register char *dst;
++      register char *place;
++
++      if (g->regcode == &g->regdummy) {
++              g->regsize += 3;
++              return;
++      }
++
++      src = g->regcode;
++      g->regcode += 3;
++      dst = g->regcode;
++      while (src > opnd)
++              *--dst = *--src;
++
++      place = opnd;           /* Op node, where operand used to be. */
++      *place++ = op;
++      *place++ = '\0';
++      *place++ = '\0';
++}
++
++/*
++ - regtail - set the next-pointer at the end of a node chain
++ */
++static void
++regtail(struct match_globals *g, char *p, char *val)
++{
++      register char *scan;
++      register char *temp;
++      register int offset;
++
++      if (p == &g->regdummy)
++              return;
++
++      /* Find last node. */
++      scan = p;
++      for (;;) {
++              temp = regnext(g, scan);
++              if (temp == NULL)
++                      break;
++              scan = temp;
++      }
++
++      if (OP(scan) == BACK)
++              offset = scan - val;
++      else
++              offset = val - scan;
++      *(scan+1) = (offset>>8)&0377;
++      *(scan+2) = offset&0377;
++}
++
++/*
++ - regoptail - regtail on operand of first argument; nop if operandless
++ */
++static void
++regoptail(struct match_globals *g, char *p, char *val)
++{
++      /* "Operandless" and "op != BRANCH" are synonymous in practice. */
++      if (p == NULL || p == &g->regdummy || OP(p) != BRANCH)
++              return;
++      regtail(g, OPERAND(p), val);
++}
++
++/*
++ * regexec and friends
++ */
++
++
++/*
++ * Forwards.
++ */
++STATIC int regtry(struct match_globals *g, regexp *prog, char *string);
++STATIC int regmatch(struct match_globals *g, char *prog);
++STATIC int regrepeat(struct match_globals *g, char *p);
++
++#ifdef DEBUG
++int regnarrate = 0;
++void regdump();
++STATIC char *regprop(char *op);
++#endif
++
++/*
++ - regexec - match a regexp against a string
++ */
++int
++regexec(regexp *prog, char *string)
++{
++      register char *s;
++      struct match_globals g;
++
++      /* Be paranoid... */
++      if (prog == NULL || string == NULL) {
++              printk("<3>Regexp: NULL parameter\n");
++              return(0);
++      }
++
++      /* Check validity of program. */
++      if (UCHARAT(prog->program) != MAGIC) {
++              printk("<3>Regexp: corrupted program\n");
++              return(0);
++      }
++
++      /* If there is a "must appear" string, look for it. */
++      if (prog->regmust != NULL) {
++              s = string;
++              while ((s = strchr(s, prog->regmust[0])) != NULL) {
++                      if (strncmp(s, prog->regmust, prog->regmlen) == 0)
++                              break;  /* Found it. */
++                      s++;
++              }
++              if (s == NULL)  /* Not present. */
++                      return(0);
++      }
++
++      /* Mark beginning of line for ^ . */
++      g.regbol = string;
++
++      /* Simplest case:  anchored match need be tried only once. */
++      if (prog->reganch)
++              return(regtry(&g, prog, string));
++
++      /* Messy cases:  unanchored match. */
++      s = string;
++      if (prog->regstart != '\0')
++              /* We know what char it must start with. */
++              while ((s = strchr(s, prog->regstart)) != NULL) {
++                      if (regtry(&g, prog, s))
++                              return(1);
++                      s++;
++              }
++      else
++              /* We don't -- general case. */
++              do {
++                      if (regtry(&g, prog, s))
++                              return(1);
++              } while (*s++ != '\0');
++
++      /* Failure. */
++      return(0);
++}
++
++/*
++ - regtry - try match at specific point
++ */
++static int                    /* 0 failure, 1 success */
++regtry(struct match_globals *g, regexp *prog, char *string)
++{
++      register int i;
++      register char **sp;
++      register char **ep;
++
++      g->reginput = string;
++      g->regstartp = prog->startp;
++      g->regendp = prog->endp;
++
++      sp = prog->startp;
++      ep = prog->endp;
++      for (i = NSUBEXP; i > 0; i--) {
++              *sp++ = NULL;
++              *ep++ = NULL;
++      }
++      if (regmatch(g, prog->program + 1)) {
++              prog->startp[0] = string;
++              prog->endp[0] = g->reginput;
++              return(1);
++      } else
++              return(0);
++}
++
++/*
++ - regmatch - main matching routine
++ *
++ * Conceptually the strategy is simple:  check to see whether the current
++ * node matches, call self recursively to see whether the rest matches,
++ * and then act accordingly.  In practice we make some effort to avoid
++ * recursion, in particular by going through "ordinary" nodes (that don't
++ * need to know whether the rest of the match failed) by a loop instead of
++ * by recursion.
++ */
++static int                    /* 0 failure, 1 success */
++regmatch(struct match_globals *g, char *prog)
++{
++      register char *scan = prog; /* Current node. */
++      char *next;                 /* Next node. */
++
++#ifdef DEBUG
++      if (scan != NULL && regnarrate)
++              fprintf(stderr, "%s(\n", regprop(scan));
++#endif
++      while (scan != NULL) {
++#ifdef DEBUG
++              if (regnarrate)
++                      fprintf(stderr, "%s...\n", regprop(scan));
++#endif
++              next = regnext(g, scan);
++
++              switch (OP(scan)) {
++              case BOL:
++                      if (g->reginput != g->regbol)
++                              return(0);
++                      break;
++              case EOL:
++                      if (*g->reginput != '\0')
++                              return(0);
++                      break;
++              case ANY:
++                      if (*g->reginput == '\0')
++                              return(0);
++                      g->reginput++;
++                      break;
++              case EXACTLY: {
++                              register int len;
++                              register char *opnd;
++
++                              opnd = OPERAND(scan);
++                              /* Inline the first character, for speed. */
++                              if (*opnd != *g->reginput)
++                                      return(0);
++                              len = strlen(opnd);
++                              if (len > 1 && strncmp(opnd, g->reginput, len) != 0)
++                                      return(0);
++                              g->reginput += len;
++                      }
++                      break;
++              case ANYOF:
++                      if (*g->reginput == '\0' || strchr(OPERAND(scan), *g->reginput) == NULL)
++                              return(0);
++                      g->reginput++;
++                      break;
++              case ANYBUT:
++                      if (*g->reginput == '\0' || strchr(OPERAND(scan), *g->reginput) != NULL)
++                              return(0);
++                      g->reginput++;
++                      break;
++              case NOTHING:
++              case BACK:
++                      break;
++              case OPEN+1:
++              case OPEN+2:
++              case OPEN+3:
++              case OPEN+4:
++              case OPEN+5:
++              case OPEN+6:
++              case OPEN+7:
++              case OPEN+8:
++              case OPEN+9: {
++                              register int no;
++                              register char *save;
++
++                              no = OP(scan) - OPEN;
++                              save = g->reginput;
++
++                              if (regmatch(g, next)) {
++                                      /*
++                                       * Don't set startp if some later
++                                       * invocation of the same parentheses
++                                       * already has.
++                                       */
++                                      if (g->regstartp[no] == NULL)
++                                              g->regstartp[no] = save;
++                                      return(1);
++                              } else
++                                      return(0);
++                      }
++                      break;
++              case CLOSE+1:
++              case CLOSE+2:
++              case CLOSE+3:
++              case CLOSE+4:
++              case CLOSE+5:
++              case CLOSE+6:
++              case CLOSE+7:
++              case CLOSE+8:
++              case CLOSE+9:
++                      {
++                              register int no;
++                              register char *save;
++
++                              no = OP(scan) - CLOSE;
++                              save = g->reginput;
++
++                              if (regmatch(g, next)) {
++                                      /*
++                                       * Don't set endp if some later
++                                       * invocation of the same parentheses
++                                       * already has.
++                                       */
++                                      if (g->regendp[no] == NULL)
++                                              g->regendp[no] = save;
++                                      return(1);
++                              } else
++                                      return(0);
++                      }
++                      break;
++              case BRANCH: {
++                              register char *save;
++
++                              if (OP(next) != BRANCH)         /* No choice. */
++                                      next = OPERAND(scan);   /* Avoid recursion. */
++                              else {
++                                      do {
++                                              save = g->reginput;
++                                              if (regmatch(g, OPERAND(scan)))
++                                                      return(1);
++                                              g->reginput = save;
++                                              scan = regnext(g, scan);
++                                      } while (scan != NULL && OP(scan) == BRANCH);
++                                      return(0);
++                                      /* NOTREACHED */
++                              }
++                      }
++                      break;
++              case STAR:
++              case PLUS: {
++                              register char nextch;
++                              register int no;
++                              register char *save;
++                              register int min;
++
++                              /*
++                               * Lookahead to avoid useless match attempts
++                               * when we know what character comes next.
++                               */
++                              nextch = '\0';
++                              if (OP(next) == EXACTLY)
++                                      nextch = *OPERAND(next);
++                              min = (OP(scan) == STAR) ? 0 : 1;
++                              save = g->reginput;
++                              no = regrepeat(g, OPERAND(scan));
++                              while (no >= min) {
++                                      /* If it could work, try it. */
++                                      if (nextch == '\0' || *g->reginput == nextch)
++                                              if (regmatch(g, next))
++                                                      return(1);
++                                      /* Couldn't or didn't -- back up. */
++                                      no--;
++                                      g->reginput = save + no;
++                              }
++                              return(0);
++                      }
++                      break;
++              case END:
++                      return(1);      /* Success! */
++                      break;
++              default:
++                      printk("<3>Regexp: memory corruption\n");
++                      return(0);
++                      break;
++              }
++
++              scan = next;
++      }
++
++      /*
++       * We get here only if there's trouble -- normally "case END" is
++       * the terminating point.
++       */
++      printk("<3>Regexp: corrupted pointers\n");
++      return(0);
++}
++
++/*
++ - regrepeat - repeatedly match something simple, report how many
++ */
++static int
++regrepeat(struct match_globals *g, char *p)
++{
++      register int count = 0;
++      register char *scan;
++      register char *opnd;
++
++      scan = g->reginput;
++      opnd = OPERAND(p);
++      switch (OP(p)) {
++      case ANY:
++              count = strlen(scan);
++              scan += count;
++              break;
++      case EXACTLY:
++              while (*opnd == *scan) {
++                      count++;
++                      scan++;
++              }
++              break;
++      case ANYOF:
++              while (*scan != '\0' && strchr(opnd, *scan) != NULL) {
++                      count++;
++                      scan++;
++              }
++              break;
++      case ANYBUT:
++              while (*scan != '\0' && strchr(opnd, *scan) == NULL) {
++                      count++;
++                      scan++;
++              }
++              break;
++      default:                /* Oh dear.  Called inappropriately. */
++              printk("<3>Regexp: internal foulup\n");
++              count = 0;      /* Best compromise. */
++              break;
++      }
++      g->reginput = scan;
++
++      return(count);
++}
++
++/*
++ - regnext - dig the "next" pointer out of a node
++ */
++static char*
++regnext(struct match_globals *g, char *p)
++{
++      register int offset;
++
++      if (p == &g->regdummy)
++              return(NULL);
++
++      offset = NEXT(p);
++      if (offset == 0)
++              return(NULL);
++
++      if (OP(p) == BACK)
++              return(p-offset);
++      else
++              return(p+offset);
++}
++
++#ifdef DEBUG
++
++STATIC char *regprop();
++
++/*
++ - regdump - dump a regexp onto stdout in vaguely comprehensible form
++ */
++void
++regdump(regexp *r)
++{
++      register char *s;
++      register char op = EXACTLY;     /* Arbitrary non-END op. */
++      register char *next;
++      /* extern char *strchr(); */
++
++
++      s = r->program + 1;
++      while (op != END) {     /* While that wasn't END last time... */
++              op = OP(s);
++              printf("%2d%s", s-r->program, regprop(s));      /* Where, what. */
++              next = regnext(s);
++              if (next == NULL)               /* Next ptr. */
++                      printf("(0)");
++              else
++                      printf("(%d)", (s-r->program)+(next-s));
++              s += 3;
++              if (op == ANYOF || op == ANYBUT || op == EXACTLY) {
++                      /* Literal string, where present. */
++                      while (*s != '\0') {
++                              putchar(*s);
++                              s++;
++                      }
++                      s++;
++              }
++              putchar('\n');
++      }
++
++      /* Header fields of interest. */
++      if (r->regstart != '\0')
++              printf("start `%c' ", r->regstart);
++      if (r->reganch)
++              printf("anchored ");
++      if (r->regmust != NULL)
++              printf("must have \"%s\"", r->regmust);
++      printf("\n");
++}
++
++/*
++ - regprop - printable representation of opcode
++ */
++static char *
++regprop(char *op)
++{
++#define BUFLEN 50
++      register char *p;
++      static char buf[BUFLEN];
++
++      strcpy(buf, ":");
++
++      switch (OP(op)) {
++      case BOL:
++              p = "BOL";
++              break;
++      case EOL:
++              p = "EOL";
++              break;
++      case ANY:
++              p = "ANY";
++              break;
++      case ANYOF:
++              p = "ANYOF";
++              break;
++      case ANYBUT:
++              p = "ANYBUT";
++              break;
++      case BRANCH:
++              p = "BRANCH";
++              break;
++      case EXACTLY:
++              p = "EXACTLY";
++              break;
++      case NOTHING:
++              p = "NOTHING";
++              break;
++      case BACK:
++              p = "BACK";
++              break;
++      case END:
++              p = "END";
++              break;
++      case OPEN+1:
++      case OPEN+2:
++      case OPEN+3:
++      case OPEN+4:
++      case OPEN+5:
++      case OPEN+6:
++      case OPEN+7:
++      case OPEN+8:
++      case OPEN+9:
++              snprintf(buf+strlen(buf),BUFLEN-strlen(buf), "OPEN%d", OP(op)-OPEN);
++              p = NULL;
++              break;
++      case CLOSE+1:
++      case CLOSE+2:
++      case CLOSE+3:
++      case CLOSE+4:
++      case CLOSE+5:
++      case CLOSE+6:
++      case CLOSE+7:
++      case CLOSE+8:
++      case CLOSE+9:
++              snprintf(buf+strlen(buf),BUFLEN-strlen(buf), "CLOSE%d", OP(op)-CLOSE);
++              p = NULL;
++              break;
++      case STAR:
++              p = "STAR";
++              break;
++      case PLUS:
++              p = "PLUS";
++              break;
++      default:
++              printk("<3>Regexp: corrupted opcode\n");
++              break;
++      }
++      if (p != NULL)
++              strncat(buf, p, BUFLEN-strlen(buf));
++      return(buf);
++}
++#endif
++
++
+diff -Naur linux-3.0.24.org/net/netfilter/regexp/regexp.h linux-3.0.24/net/netfilter/regexp/regexp.h
+--- linux-3.0.24.org/net/netfilter/regexp/regexp.h     1970-01-01 01:00:00.000000000 +0100
++++ linux-3.0.24/net/netfilter/regexp/regexp.h 2012-03-15 20:08:49.066043520 +0100
+@@ -0,0 +1,41 @@
++/*
++ * Definitions etc. for regexp(3) routines.
++ *
++ * Caveat:  this is V8 regexp(3) [actually, a reimplementation thereof],
++ * not the System V one.
++ */
++
++#ifndef REGEXP_H
++#define REGEXP_H
++
++
++/*
++http://www.opensource.apple.com/darwinsource/10.3/expect-1/expect/expect.h ,
++which contains a version of this library, says:
++
++ *
++ * NSUBEXP must be at least 10, and no greater than 117 or the parser
++ * will not work properly.
++ *
++
++However, it looks rather like this library is limited to 10.  If you think
++otherwise, let us know.
++*/
++
++#define NSUBEXP  10
++typedef struct regexp {
++      char *startp[NSUBEXP];
++      char *endp[NSUBEXP];
++      char regstart;          /* Internal use only. */
++      char reganch;           /* Internal use only. */
++      char *regmust;          /* Internal use only. */
++      int regmlen;            /* Internal use only. */
++      char program[1];        /* Unwarranted chumminess with compiler. */
++} regexp;
++
++regexp * regcomp(char *exp, int *patternsize);
++int regexec(regexp *prog, char *string);
++void regsub(regexp *prog, char *source, char *dest);
++void regerror(char *s);
++
++#endif
+diff -Naur linux-3.0.24.org/net/netfilter/regexp/regmagic.h linux-3.0.24/net/netfilter/regexp/regmagic.h
+--- linux-3.0.24.org/net/netfilter/regexp/regmagic.h   1970-01-01 01:00:00.000000000 +0100
++++ linux-3.0.24/net/netfilter/regexp/regmagic.h       2012-03-15 20:08:49.066043520 +0100
+@@ -0,0 +1,5 @@
++/*
++ * The first byte of the regexp internal "program" is actually this magic
++ * number; the start node begins in the second byte.
++ */
++#define       MAGIC   0234
+diff -Naur linux-3.0.24.org/net/netfilter/regexp/regsub.c linux-3.0.24/net/netfilter/regexp/regsub.c
+--- linux-3.0.24.org/net/netfilter/regexp/regsub.c     1970-01-01 01:00:00.000000000 +0100
++++ linux-3.0.24/net/netfilter/regexp/regsub.c 2012-03-15 20:08:49.076047746 +0100
+@@ -0,0 +1,95 @@
++/*
++ * regsub
++ * @(#)regsub.c       1.3 of 2 April 86
++ *
++ *    Copyright (c) 1986 by University of Toronto.
++ *    Written by Henry Spencer.  Not derived from licensed software.
++ *
++ *    Permission is granted to anyone to use this software for any
++ *    purpose on any computer system, and to redistribute it freely,
++ *    subject to the following restrictions:
++ *
++ *    1. The author is not responsible for the consequences of use of
++ *            this software, no matter how awful, even if they arise
++ *            from defects in it.
++ *
++ *    2. The origin of this software must not be misrepresented, either
++ *            by explicit claim or by omission.
++ *
++ *    3. Altered versions must be plainly marked as such, and must not
++ *            be misrepresented as being the original software.
++ *
++ *
++ * This code was modified by Ethan Sommer to work within the kernel
++ * (it now uses kmalloc etc..)
++ *
++ */
++#include "regexp.h"
++#include "regmagic.h"
++#include <linux/string.h>
++
++
++#ifndef CHARBITS
++#define       UCHARAT(p)      ((int)*(unsigned char *)(p))
++#else
++#define       UCHARAT(p)      ((int)*(p)&CHARBITS)
++#endif
++
++#if 0
++//void regerror(char * s)
++//{
++//        printk("regexp(3): %s", s);
++//        /* NOTREACHED */
++//}
++#endif
++
++/*
++ - regsub - perform substitutions after a regexp match
++ */
++void
++regsub(regexp * prog, char * source, char * dest)
++{
++      register char *src;
++      register char *dst;
++      register char c;
++      register int no;
++      register int len;
++      
++      /* Not necessary and gcc doesn't like it -MLS */
++      /*extern char *strncpy();*/
++
++      if (prog == NULL || source == NULL || dest == NULL) {
++              regerror("NULL parm to regsub");
++              return;
++      }
++      if (UCHARAT(prog->program) != MAGIC) {
++              regerror("damaged regexp fed to regsub");
++              return;
++      }
++
++      src = source;
++      dst = dest;
++      while ((c = *src++) != '\0') {
++              if (c == '&')
++                      no = 0;
++              else if (c == '\\' && '0' <= *src && *src <= '9')
++                      no = *src++ - '0';
++              else
++                      no = -1;
++
++              if (no < 0) {   /* Ordinary character. */
++                      if (c == '\\' && (*src == '\\' || *src == '&'))
++                              c = *src++;
++                      *dst++ = c;
++              } else if (prog->startp[no] != NULL && prog->endp[no] != NULL) {
++                      len = prog->endp[no] - prog->startp[no];
++                      (void) strncpy(dst, prog->startp[no], len);
++                      dst += len;
++                      if (len != 0 && *(dst-1) == '\0') {     /* strncpy hit NUL. */
++                              regerror("damaged match string");
++                              return;
++                      }
++              }
++      }
++      *dst++ = '\0';
++}
+diff -Naur linux-3.0.24.org/net/netfilter/xt_layer7.c linux-3.0.24/net/netfilter/xt_layer7.c
+--- linux-3.0.24.org/net/netfilter/xt_layer7.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-3.0.24/net/netfilter/xt_layer7.c     2012-03-20 01:44:50.907527097 +0100
+@@ -0,0 +1,684 @@
++/*
++  Kernel module to match application layer (OSI layer 7) data in connections.
++
++  http://l7-filter.sf.net
++
++  (C) 2003-2009 Matthew Strait and Ethan Sommer.
++
++  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.
++  http://www.gnu.org/licenses/gpl.txt
++
++  Based on ipt_string.c (C) 2000 Emmanuel Roger <winfield@freegates.be>,
++  xt_helper.c (C) 2002 Harald Welte and cls_layer7.c (C) 2003 Matthew Strait,
++  Ethan Sommer, Justin Levandoski.
++*/
++
++#include <linux/spinlock.h>
++#include <linux/version.h>
++#include <net/ip.h>
++#include <net/tcp.h>
++#include <linux/module.h>
++#include <linux/skbuff.h>
++#include <linux/netfilter.h>
++#include <net/netfilter/nf_conntrack.h>
++#include <net/netfilter/nf_conntrack_core.h>
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27)
++#include <net/netfilter/nf_conntrack_extend.h>
++#include <net/netfilter/nf_conntrack_acct.h>
++#endif
++#include <linux/netfilter/x_tables.h>
++#include <linux/netfilter/xt_layer7.h>
++#include <linux/ctype.h>
++#include <linux/proc_fs.h>
++
++#include "regexp/regexp.c"
++
++MODULE_LICENSE("GPL");
++MODULE_AUTHOR("Matthew Strait <quadong@users.sf.net>, Ethan Sommer <sommere@users.sf.net>");
++MODULE_DESCRIPTION("iptables application layer match module");
++MODULE_ALIAS("ipt_layer7");
++MODULE_VERSION("2.22ipfire");
++
++static int maxdatalen = 2048; // this is the default
++module_param(maxdatalen, int, 0444);
++MODULE_PARM_DESC(maxdatalen, "maximum bytes of data looked at by l7-filter");
++#ifdef CONFIG_NETFILTER_XT_MATCH_LAYER7_DEBUG
++      #define DPRINTK(format,args...) printk(format,##args)
++#else
++      #define DPRINTK(format,args...)
++#endif
++
++/* Number of packets whose data we look at.
++This can be modified through /proc/net/layer7_numpackets */
++static int num_packets = 10;
++
++static struct pattern_cache {
++      char * regex_string;
++      regexp * pattern;
++      struct pattern_cache * next;
++} * first_pattern_cache = NULL;
++
++DEFINE_SPINLOCK(l7_lock);
++
++static int total_acct_packets(struct nf_conn *ct)
++{
++#if LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 26)
++      BUG_ON(ct == NULL);
++      return (ct->counters[IP_CT_DIR_ORIGINAL].packets + ct->counters[IP_CT_DIR_REPLY].packets);
++#else
++      struct nf_conn_counter *acct;
++
++      BUG_ON(ct == NULL);
++      acct = nf_conn_acct_find(ct);
++      if (!acct)
++              return 0;
++      return (acct[IP_CT_DIR_ORIGINAL].packets + acct[IP_CT_DIR_REPLY].packets);
++#endif
++}
++
++#ifdef CONFIG_IP_NF_MATCH_LAYER7_DEBUG
++/* Converts an unfriendly string into a friendly one by
++replacing unprintables with periods and all whitespace with " ". */
++static char * friendly_print(unsigned char * s)
++{
++      char * f = kmalloc(strlen(s) + 1, GFP_ATOMIC);
++      int i;
++
++      if(!f) {
++              if (net_ratelimit())
++                      printk(KERN_ERR "layer7: out of memory in "
++                                      "friendly_print, bailing.\n");
++              return NULL;
++      }
++
++      for(i = 0; i < strlen(s); i++){
++              if(isprint(s[i]) && s[i] < 128) f[i] = s[i];
++              else if(isspace(s[i]))          f[i] = ' ';
++              else                            f[i] = '.';
++      }
++      f[i] = '\0';
++      return f;
++}
++
++static char dec2hex(int i)
++{
++      switch (i) {
++              case 0 ... 9:
++                      return (i + '0');
++                      break;
++              case 10 ... 15:
++                      return (i - 10 + 'a');
++                      break;
++              default:
++                      if (net_ratelimit())
++                              printk("layer7: Problem in dec2hex\n");
++                      return '\0';
++      }
++}
++
++static char * hex_print(unsigned char * s)
++{
++      char * g = kmalloc(strlen(s)*3 + 1, GFP_ATOMIC);
++      int i;
++
++      if(!g) {
++             if (net_ratelimit())
++                      printk(KERN_ERR "layer7: out of memory in hex_print, "
++                                      "bailing.\n");
++             return NULL;
++      }
++
++      for(i = 0; i < strlen(s); i++) {
++              g[i*3    ] = dec2hex(s[i]/16);
++              g[i*3 + 1] = dec2hex(s[i]%16);
++              g[i*3 + 2] = ' ';
++      }
++      g[i*3] = '\0';
++
++      return g;
++}
++#endif // DEBUG
++
++/* Use instead of regcomp.  As we expect to be seeing the same regexps over and
++over again, it make sense to cache the results. */
++static regexp * compile_and_cache(const char * regex_string, 
++                                  const char * protocol)
++{
++      struct pattern_cache * node               = first_pattern_cache;
++      struct pattern_cache * last_pattern_cache = first_pattern_cache;
++      struct pattern_cache * tmp;
++      unsigned int len;
++
++      while (node != NULL) {
++              if (!strcmp(node->regex_string, regex_string))
++              return node->pattern;
++
++              last_pattern_cache = node;/* points at the last non-NULL node */
++              node = node->next;
++      }
++
++      /* If we reach the end of the list, then we have not yet cached
++         the pattern for this regex. Let's do that now.
++         Be paranoid about running out of memory to avoid list corruption. */
++      tmp = kmalloc(sizeof(struct pattern_cache), GFP_ATOMIC);
++
++      if(!tmp) {
++              if (net_ratelimit())
++                      printk(KERN_ERR "layer7: out of memory in "
++                                      "compile_and_cache, bailing.\n");
++              return NULL;
++      }
++
++      tmp->regex_string  = kmalloc(strlen(regex_string) + 1, GFP_ATOMIC);
++      tmp->pattern       = kmalloc(sizeof(struct regexp),    GFP_ATOMIC);
++      tmp->next = NULL;
++
++      if(!tmp->regex_string || !tmp->pattern) {
++              if (net_ratelimit())
++                      printk(KERN_ERR "layer7: out of memory in "
++                                      "compile_and_cache, bailing.\n");
++              kfree(tmp->regex_string);
++              kfree(tmp->pattern);
++              kfree(tmp);
++              return NULL;
++      }
++
++      /* Ok.  The new node is all ready now. */
++      node = tmp;
++
++      if(first_pattern_cache == NULL) /* list is empty */
++              first_pattern_cache = node; /* make node the beginning */
++      else
++              last_pattern_cache->next = node; /* attach node to the end */
++
++      /* copy the string and compile the regex */
++      len = strlen(regex_string);
++      DPRINTK("layer7: about to compile this: \"%s\"\n", regex_string);
++      node->pattern = regcomp((char *)regex_string, &len);
++      if ( !node->pattern ) {
++              if (net_ratelimit())
++                      printk(KERN_ERR "layer7: Error compiling regexp "
++                                      "\"%s\" (%s)\n", 
++                                      regex_string, protocol);
++              /* pattern is now cached as NULL, so we won't try again. */
++      }
++
++      strcpy(node->regex_string, regex_string);
++      return node->pattern;
++}
++
++static int can_handle(const struct sk_buff *skb)
++{
++      if(!ip_hdr(skb)) /* not IP */
++              return 0;
++      if(ip_hdr(skb)->protocol != IPPROTO_TCP &&
++         ip_hdr(skb)->protocol != IPPROTO_UDP &&
++         ip_hdr(skb)->protocol != IPPROTO_ICMP)
++              return 0;
++      return 1;
++}
++
++/* Returns offset the into the skb->data that the application data starts */
++static int app_data_offset(const struct sk_buff *skb)
++{
++      /* In case we are ported somewhere (ebtables?) where ip_hdr(skb)
++      isn't set, this can be gotten from 4*(skb->data[0] & 0x0f) as well. */
++      int ip_hl = 4*ip_hdr(skb)->ihl;
++
++      if( ip_hdr(skb)->protocol == IPPROTO_TCP ) {
++              /* 12 == offset into TCP header for the header length field.
++              Can't get this with skb->h.th->doff because the tcphdr
++              struct doesn't get set when routing (this is confirmed to be
++              true in Netfilter as well as QoS.) */
++              int tcp_hl = 4*(skb->data[ip_hl + 12] >> 4);
++
++              return ip_hl + tcp_hl;
++      } else if( ip_hdr(skb)->protocol == IPPROTO_UDP  ) {
++              return ip_hl + 8; /* UDP header is always 8 bytes */
++      } else if( ip_hdr(skb)->protocol == IPPROTO_ICMP ) {
++              return ip_hl + 8; /* ICMP header is 8 bytes */
++      } else {
++              if (net_ratelimit())
++                      printk(KERN_ERR "layer7: tried to handle unknown "
++                                      "protocol!\n");
++              return ip_hl + 8; /* something reasonable */
++      }
++}
++
++/* handles whether there's a match when we aren't appending data anymore */
++static int match_no_append(struct nf_conn * conntrack, 
++                           struct nf_conn * master_conntrack, 
++                           enum ip_conntrack_info ctinfo,
++                           enum ip_conntrack_info master_ctinfo,
++                           const struct xt_layer7_info * info)
++{
++      /* If we're in here, throw the app data away */
++      if(master_conntrack->layer7.app_data != NULL) {
++
++      #ifdef CONFIG_IP_NF_MATCH_LAYER7_DEBUG
++              if(!master_conntrack->layer7.app_proto) {
++                      char * f = 
++                        friendly_print(master_conntrack->layer7.app_data);
++                      char * g = 
++                        hex_print(master_conntrack->layer7.app_data);
++                      DPRINTK("\nl7-filter gave up after %d bytes "
++                              "(%d packets):\n%s\n",
++                              strlen(f), total_acct_packets(master_conntrack), f);
++                      kfree(f);
++                      DPRINTK("In hex: %s\n", g);
++                      kfree(g);
++              }
++      #endif
++
++              kfree(master_conntrack->layer7.app_data);
++              master_conntrack->layer7.app_data = NULL; /* don't free again */
++      }
++
++      if(master_conntrack->layer7.app_proto){
++              /* Here child connections set their .app_proto (for /proc) */
++              if(!conntrack->layer7.app_proto) {
++                      conntrack->layer7.app_proto = 
++                        kmalloc(strlen(master_conntrack->layer7.app_proto)+1, 
++                          GFP_ATOMIC);
++                      if(!conntrack->layer7.app_proto){
++                              if (net_ratelimit())
++                                      printk(KERN_ERR "layer7: out of memory "
++                                                      "in match_no_append, "
++                                                      "bailing.\n");
++                              return 1;
++                      }
++                      strcpy(conntrack->layer7.app_proto, 
++                              master_conntrack->layer7.app_proto);
++              }
++
++              return (!strcmp(master_conntrack->layer7.app_proto, 
++                              info->protocol));
++      }
++      else {
++              /* If not classified, set to "unknown" to distinguish from
++              connections that are still being tested. */
++              master_conntrack->layer7.app_proto = 
++                      kmalloc(strlen("unknown")+1, GFP_ATOMIC);
++              if(!master_conntrack->layer7.app_proto){
++                      if (net_ratelimit())
++                              printk(KERN_ERR "layer7: out of memory in "
++                                              "match_no_append, bailing.\n");
++                      return 1;
++              }
++              strcpy(master_conntrack->layer7.app_proto, "unknown");
++              return 0;
++      }
++}
++
++/* add the new app data to the conntrack.  Return number of bytes added. */
++static int add_data(struct nf_conn * master_conntrack,
++                    char * app_data, int appdatalen)
++{
++      int length = 0, i;
++      int oldlength = master_conntrack->layer7.app_data_len;
++
++      /* This is a fix for a race condition by Deti Fliegl. However, I'm not 
++         clear on whether the race condition exists or whether this really 
++         fixes it.  I might just be being dense... Anyway, if it's not really 
++         a fix, all it does is waste a very small amount of time. */
++      if(!master_conntrack->layer7.app_data) return 0;
++
++      /* Strip nulls. Make everything lower case (our regex lib doesn't
++      do case insensitivity).  Add it to the end of the current data. */
++      for(i = 0; i < maxdatalen-oldlength-1 &&
++                 i < appdatalen; i++) {
++              if(app_data[i] != '\0') {
++                      /* the kernel version of tolower mungs 'upper ascii' */
++                      master_conntrack->layer7.app_data[length+oldlength] =
++                              isascii(app_data[i])? 
++                                      tolower(app_data[i]) : app_data[i];
++                      length++;
++              }
++      }
++
++      master_conntrack->layer7.app_data[length+oldlength] = '\0';
++      master_conntrack->layer7.app_data_len = length + oldlength;
++
++      return length;
++}
++
++/* taken from drivers/video/modedb.c */
++static int my_atoi(const char *s)
++{
++      int val = 0;
++
++      for (;; s++) {
++              switch (*s) {
++                      case '0'...'9':
++                      val = 10*val+(*s-'0');
++                      break;
++              default:
++                      return val;
++              }
++      }
++}
++
++/* write out num_packets to userland. */
++static int layer7_read_proc(char* page, char ** start, off_t off, int count,
++                            int* eof, void * data)
++{
++      if(num_packets > 99 && net_ratelimit())
++              printk(KERN_ERR "layer7: NOT REACHED. num_packets too big\n");
++
++      page[0] = num_packets/10 + '0';
++      page[1] = num_packets%10 + '0';
++      page[2] = '\n';
++      page[3] = '\0';
++
++      *eof=1;
++
++      return 3;
++}
++
++/* Read in num_packets from userland */
++static int layer7_write_proc(struct file* file, const char* buffer,
++                             unsigned long count, void *data)
++{
++      char * foo = kmalloc(count, GFP_ATOMIC);
++
++      if(!foo){
++              if (net_ratelimit())
++                      printk(KERN_ERR "layer7: out of memory, bailing. "
++                                      "num_packets unchanged.\n");
++              return count;
++      }
++
++      if(copy_from_user(foo, buffer, count)) {
++              return -EFAULT;
++      }
++
++
++      num_packets = my_atoi(foo);
++      kfree (foo);
++
++      /* This has an arbitrary limit to make the math easier. I'm lazy.
++      But anyway, 99 is a LOT! If you want more, you're doing it wrong! */
++      if(num_packets > 99) {
++              printk(KERN_WARNING "layer7: num_packets can't be > 99.\n");
++              num_packets = 99;
++      } else if(num_packets < 1) {
++              printk(KERN_WARNING "layer7: num_packets can't be < 1.\n");
++              num_packets = 1;
++      }
++
++      return count;
++}
++
++static bool
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 35)
++match(const struct sk_buff *skbin, struct xt_action_param *par)
++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 28)
++match(const struct sk_buff *skbin, const struct xt_match_param *par)
++#else
++match(const struct sk_buff *skbin,
++      const struct net_device *in,
++      const struct net_device *out,
++      const struct xt_match *match,
++      const void *matchinfo,
++      int offset,
++      unsigned int protoff,
++      bool *hotdrop)
++#endif
++{
++      /* sidestep const without getting a compiler warning... */
++      struct sk_buff * skb = (struct sk_buff *)skbin; 
++
++      const struct xt_layer7_info * info = 
++      #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 28)
++              par->matchinfo;
++      #else
++              matchinfo;
++      #endif
++
++      enum ip_conntrack_info master_ctinfo, ctinfo;
++      struct nf_conn *master_conntrack, *conntrack;
++      unsigned char * app_data;
++      unsigned int pattern_result, appdatalen;
++      regexp * comppattern;
++
++      /* Be paranoid/incompetent - lock the entire match function. */
++      spin_lock_bh(&l7_lock);
++
++      if(!can_handle(skb)){
++              DPRINTK("layer7: This is some protocol I can't handle.\n");
++              spin_unlock_bh(&l7_lock);
++              return info->invert;
++      }
++
++      /* Treat parent & all its children together as one connection, except
++      for the purpose of setting conntrack->layer7.app_proto in the actual
++      connection. This makes /proc/net/ip_conntrack more satisfying. */
++      if(!(conntrack = nf_ct_get(skb, &ctinfo)) ||
++         !(master_conntrack=nf_ct_get(skb,&master_ctinfo))){
++              DPRINTK("layer7: couldn't get conntrack.\n");
++              spin_unlock_bh(&l7_lock);
++              return info->invert;
++      }
++
++      /* Try to get a master conntrack (and its master etc) for FTP, etc. */
++      while (master_ct(master_conntrack) != NULL)
++              master_conntrack = master_ct(master_conntrack);
++
++      /* if we've classified it or seen too many packets */
++      if(total_acct_packets(master_conntrack) > num_packets ||
++         master_conntrack->layer7.app_proto) {
++
++              pattern_result = match_no_append(conntrack, master_conntrack, 
++                                               ctinfo, master_ctinfo, info);
++
++              /* skb->cb[0] == seen. Don't do things twice if there are 
++              multiple l7 rules. I'm not sure that using cb for this purpose 
++              is correct, even though it says "put your private variables 
++              there". But it doesn't look like it is being used for anything
++              else in the skbs that make it here. */
++              skb->cb[0] = 1; /* marking it seen here's probably irrelevant */
++
++              spin_unlock_bh(&l7_lock);
++              return (pattern_result ^ info->invert);
++      }
++
++      if(skb_is_nonlinear(skb)){
++              if(skb_linearize(skb) != 0){
++                      if (net_ratelimit())
++                              printk(KERN_ERR "layer7: failed to linearize "
++                                              "packet, bailing.\n");
++                      spin_unlock_bh(&l7_lock);
++                      return info->invert;
++              }
++      }
++
++      /* now that the skb is linearized, it's safe to set these. */
++      app_data = skb->data + app_data_offset(skb);
++      appdatalen = skb_tail_pointer(skb) - app_data;
++
++      /* the return value gets checked later, when we're ready to use it */
++      comppattern = compile_and_cache(info->pattern, info->protocol);
++
++      /* On the first packet of a connection, allocate space for app data */
++      if(total_acct_packets(master_conntrack) == 1 && !skb->cb[0] && 
++         !master_conntrack->layer7.app_data){
++              master_conntrack->layer7.app_data = 
++                      kmalloc(maxdatalen, GFP_ATOMIC);
++              if(!master_conntrack->layer7.app_data){
++                      if (net_ratelimit())
++                              printk(KERN_ERR "layer7: out of memory in "
++                                              "match, bailing.\n");
++                      spin_unlock_bh(&l7_lock);
++                      return info->invert;
++              }
++
++              master_conntrack->layer7.app_data[0] = '\0';
++      }
++
++      /* Can be here, but unallocated, if numpackets is increased near
++      the beginning of a connection */
++      if(master_conntrack->layer7.app_data == NULL){
++              spin_unlock_bh(&l7_lock);
++              return info->invert; /* unmatched */
++      }
++
++      if(!skb->cb[0]){
++              int newbytes;
++              newbytes = add_data(master_conntrack, app_data, appdatalen);
++
++              if(newbytes == 0) { /* didn't add any data */
++                      skb->cb[0] = 1;
++                      /* Didn't match before, not going to match now */
++                      spin_unlock_bh(&l7_lock);
++                      return info->invert;
++              }
++      }
++
++      /* If looking for "unknown", then never match.  "Unknown" means that
++      we've given up; we're still trying with these packets. */
++      if(!strcmp(info->protocol, "unknown")) {
++              pattern_result = 0;
++      /* If looking for "unset", then always match. "Unset" means that we
++      haven't yet classified the connection. */
++      } else if(!strcmp(info->protocol, "unset")) {
++              pattern_result = 2;
++              DPRINTK("layer7: matched unset: not yet classified "
++                      "(%d/%d packets)\n",
++                        total_acct_packets(master_conntrack), num_packets);
++      /* If the regexp failed to compile, don't bother running it */
++      } else if(comppattern && 
++                regexec(comppattern, master_conntrack->layer7.app_data)){
++              DPRINTK("layer7: matched %s\n", info->protocol);
++              pattern_result = 1;
++      } else pattern_result = 0;
++
++      if(pattern_result == 1) {
++              master_conntrack->layer7.app_proto = 
++                      kmalloc(strlen(info->protocol)+1, GFP_ATOMIC);
++              if(!master_conntrack->layer7.app_proto){
++                      if (net_ratelimit())
++                              printk(KERN_ERR "layer7: out of memory in "
++                                              "match, bailing.\n");
++                      spin_unlock_bh(&l7_lock);
++                      return (pattern_result ^ info->invert);
++              }
++              strcpy(master_conntrack->layer7.app_proto, info->protocol);
++      } else if(pattern_result > 1) { /* cleanup from "unset" */
++              pattern_result = 1;
++      }
++
++      /* mark the packet seen */
++      skb->cb[0] = 1;
++
++      spin_unlock_bh(&l7_lock);
++      return (pattern_result ^ info->invert);
++}
++
++// load nf_conntrack_ipv4
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 35)
++static int
++#else
++static bool
++#endif
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 28)
++check(const struct xt_mtchk_param *par)
++{
++        if (nf_ct_l3proto_try_module_get(par->match->family) < 0) {
++                printk(KERN_WARNING "can't load conntrack support for "
++                                    "proto=%d\n", par->match->family);
++#else
++check(const char *tablename, const void *inf,
++               const struct xt_match *match, void *matchinfo,
++               unsigned int hook_mask)
++{
++        if (nf_ct_l3proto_try_module_get(match->family) < 0) {
++                printk(KERN_WARNING "can't load conntrack support for "
++                                    "proto=%d\n", match->family);
++#endif
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 35)
++              return -EINVAL;
++      }
++      return 0;
++#else
++                return 0;
++        }
++      return 1;
++#endif
++}
++
++
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 28)
++      static void destroy(const struct xt_mtdtor_param *par)
++      {
++              nf_ct_l3proto_module_put(par->match->family);
++      }
++#else
++      static void destroy(const struct xt_match *match, void *matchinfo)
++      {
++              nf_ct_l3proto_module_put(match->family);
++      }
++#endif
++
++static struct xt_match xt_layer7_match[] __read_mostly = {
++{
++      .name           = "layer7",
++      .family         = AF_INET,
++      .checkentry     = check,
++      .match          = match,
++      .destroy        = destroy,
++      .matchsize      = sizeof(struct xt_layer7_info),
++      .me             = THIS_MODULE
++}
++};
++
++static void layer7_cleanup_proc(void)
++{
++      remove_proc_entry("layer7_numpackets", init_net.proc_net);
++}
++
++/* register the proc file */
++static void layer7_init_proc(void)
++{
++      struct proc_dir_entry* entry;
++      entry = create_proc_entry("layer7_numpackets", 0644, init_net.proc_net);
++      entry->read_proc = layer7_read_proc;
++      entry->write_proc = layer7_write_proc;
++}
++
++static int __init xt_layer7_init(void)
++{
++      need_conntrack();
++
++      if (init_net.ct.sysctl_acct == 0) {
++              printk(KERN_WARNING "layer7: enabling nf_conntrack_acct\n");
++              init_net.ct.sysctl_acct = 1;
++      }
++
++      layer7_init_proc();
++      if(maxdatalen < 1) {
++              printk(KERN_WARNING "layer7: maxdatalen can't be < 1, "
++                      "using 1\n");
++              maxdatalen = 1;
++      }
++      /* This is not a hard limit.  It's just here to prevent people from
++      bringing their slow machines to a grinding halt. */
++      else if(maxdatalen > 65536) {
++              printk(KERN_WARNING "layer7: maxdatalen can't be > 65536, "
++                      "using 65536\n");
++              maxdatalen = 65536;
++      }
++      return xt_register_matches(xt_layer7_match,
++                                 ARRAY_SIZE(xt_layer7_match));
++}
++
++static void __exit xt_layer7_fini(void)
++{
++      layer7_cleanup_proc();
++      xt_unregister_matches(xt_layer7_match, ARRAY_SIZE(xt_layer7_match));
++}
++
++module_init(xt_layer7_init);
++module_exit(xt_layer7_fini);
diff --git a/src/patches/netpbm-10.26.46-getline.patch b/src/patches/netpbm-10.26.46-getline.patch
new file mode 100644 (file)
index 0000000..c5a961b
--- /dev/null
@@ -0,0 +1,202 @@
+The getline function used in a couple of places in netpbm-free is also
+defined by POSIX:2008, and so netpbm-free fails to build with newer
+versions of (e)glibc. Here's a patch to rename it.
+
+  * Rename getline functions to get_line to avoid conflict with POSIX:2008.
+
+--- netpbm-free-10.0.orig/ppm/xvminitoppm.c
++++ netpbm-free-10.0/ppm/xvminitoppm.c
+@@ -14,7 +14,7 @@
+ #include "ppm.h"
+ #define BUFSIZE 256
+-static void getline ARGS((FILE *fp, char *buf));
++static void get_line ARGS((FILE *fp, char *buf));
+ int 
+ main(argc, argv)
+@@ -48,18 +48,18 @@
+                 i++;
+             }
+     
+-    getline(ifp, buf);
++    get_line(ifp, buf);
+     if( strncmp(buf, "P7 332", 6) != 0 )
+         pm_error("bad magic number - not a XV thumbnail picture");
+     while(1) {
+-        getline(ifp, buf);
++        get_line(ifp, buf);
+         if( strncmp(buf, "#END_OF_COMMENTS", 16)==0 )
+             break;
+         if( strncmp(buf, "#BUILTIN", 8)==0 )
+             pm_error("cannot convert builtin XV thumbnail pictures");
+     }
+-    getline(ifp, buf);
++    get_line(ifp, buf);
+     if( sscanf(buf, "%d %d %d", &cols, &rows, &maxval) != 3 ) 
+         pm_error("error parsing dimension info");
+     if( maxval != 255 )
+@@ -85,7 +85,7 @@
+ static void
+-getline(fp, buf)
++get_line(fp, buf)
+     FILE *fp;
+     char *buf;
+ {
+--- netpbm-free-10.0.orig/ppm/xpmtoppm.c
++++ netpbm-free-10.0/ppm/xpmtoppm.c
+@@ -114,7 +114,7 @@
+ static void
+-getline(char * const line, int const size, FILE * const stream) {
++get_line(char * const line, int const size, FILE * const stream) {
+ /*----------------------------------------------------------------------------
+    Read the next line from the input file 'stream', through the one-line
+    buffer lastInputLine[].
+@@ -130,7 +130,7 @@
+    Exit program if the line doesn't fit in the buffer.
+ -----------------------------------------------------------------------------*/
+     if (size > MAX_LINE+1)
+-        pm_error("INTERNAL ERROR: getline() received 'size' parameter "
++        pm_error("INTERNAL ERROR: get_line() received 'size' parameter "
+                  "which is out of bounds");
+     if (backup) {
+@@ -346,7 +346,7 @@
+                int * const transparentP) {
+ /*----------------------------------------------------------------------------
+   Read the header of the XPM file on stream 'stream'.  Assume the
+-  getline() stream is presently positioned to the beginning of the
++  get_line() stream is presently positioned to the beginning of the
+   file and it is a Version 3 XPM file.  Leave the stream positioned
+   after the header.
+@@ -377,25 +377,25 @@
+     *widthP = *heightP = *ncolorsP = *chars_per_pixelP = -1;
+     /* Read the XPM signature comment */
+-    getline(line, sizeof(line), stream);
++    get_line(line, sizeof(line), stream);
+     if (strncmp(line, xpm3_signature, strlen(xpm3_signature)) != 0) 
+         pm_error("Apparent XPM 3 file does not start with '/* XPM */'.  "
+                  "First line is '%s'", xpm3_signature);
+     /* Read the assignment line */
+-    getline(line, sizeof(line), stream);
++    get_line(line, sizeof(line), stream);
+     if (strncmp(line, "static char", 11) != 0)
+         pm_error("Cannot find data structure declaration.  Expected a "
+                  "line starting with 'static char', but found the line "
+                  "'%s'.", line);
+       /* Read the hints line */
+-    getline(line, sizeof(line), stream);
++    get_line(line, sizeof(line), stream);
+     /* skip the comment line if any */
+     if (!strncmp(line, "/*", 2)) {
+         while (!strstr(line, "*/"))
+-            getline(line, sizeof(line), stream);
+-        getline(line, sizeof(line), stream);
++            get_line(line, sizeof(line), stream);
++        get_line(line, sizeof(line), stream);
+     }
+     if (sscanf(line, "\"%d %d %d %d\",", widthP, heightP,
+                ncolorsP, chars_per_pixelP) != 4)
+@@ -427,10 +427,10 @@
+         *transparentP = -1;  /* initial value */
+         for (seqNum = 0; seqNum < *ncolorsP; seqNum++) {
+-            getline(line, sizeof(line), stream);
++            get_line(line, sizeof(line), stream);
+             /* skip the comment line if any */
+             if (!strncmp(line, "/*", 2))
+-                getline(line, sizeof(line), stream);
++                get_line(line, sizeof(line), stream);
+             
+             interpretXpm3ColorTableLine(line, seqNum, *chars_per_pixelP, 
+                                         *colorsP, *ptabP, transparentP);
+@@ -445,7 +445,7 @@
+                pixel ** const colorsP, int ** const ptabP) {
+ /*----------------------------------------------------------------------------
+   Read the header of the XPM file on stream 'stream'.  Assume the
+-  getline() stream is presently positioned to the beginning of the
++  get_line() stream is presently positioned to the beginning of the
+   file and it is a Version 1 XPM file.  Leave the stream positioned
+   after the header.
+   
+@@ -464,7 +464,7 @@
+     /* Read the initial defines. */
+     processedStaticChar = FALSE;
+     while (!processedStaticChar) {
+-        getline(line, sizeof(line), stream);
++        get_line(line, sizeof(line), stream);
+         if (sscanf(line, "#define %s %d", str1, &v) == 2) {
+             char *t1;
+@@ -512,7 +512,7 @@
+     /* If there's a monochrome color table, skip it. */
+     if (!strncmp(t1, "mono", 4)) {
+         for (;;) {
+-            getline(line, sizeof(line), stream);
++            get_line(line, sizeof(line), stream);
+             if (!strncmp(line, "static char", 11))
+                 break;
+         }
+@@ -533,7 +533,7 @@
+     /* Read color table. */
+     for (i = 0; i < *ncolorsP; ++i) {
+-        getline(line, sizeof(line), stream);
++        get_line(line, sizeof(line), stream);
+         if ((t1 = strchr(line, '"')) == NULL)
+             pm_error("D error scanning color table");
+@@ -569,7 +569,7 @@
+        "static char ...").
+     */
+     for (;;) {
+-        getline(line, sizeof(line), stream);
++        get_line(line, sizeof(line), stream);
+         if (strncmp(line, "static char", 11) == 0)
+             break;
+     }
+@@ -660,7 +660,7 @@
+     backup = FALSE;
+     /* Read the header line */
+-    getline(line, sizeof(line), stream);
++    get_line(line, sizeof(line), stream);
+     backup = TRUE;  /* back up so next read reads this line again */
+     
+     rc = sscanf(line, "/* %s */", str1);
+@@ -681,7 +681,7 @@
+         pm_error("Could not get %d bytes of memory for image", totalpixels);
+     cursor = *dataP;
+     maxcursor = *dataP + totalpixels - 1;
+-      getline(line, sizeof(line), stream); 
++      get_line(line, sizeof(line), stream); 
+         /* read next line (first line may not always start with comment) */
+     while (cursor <= maxcursor) {
+         if (strncmp(line, "/*", 2) == 0) {
+@@ -691,7 +691,7 @@
+                              ncolors, ptab, &cursor, maxcursor);
+         }
+         if (cursor <= maxcursor)
+-            getline(line, sizeof(line), stream);
++            get_line(line, sizeof(line), stream);
+     }
+     if (ptab) free(ptab);
+ }
+
+Thanks,
+
+-- 
+Colin Watson                                       [cjwatson@ubuntu.com]
+
+
+
+
diff --git a/src/patches/openldap-gcc44-fixes.patch b/src/patches/openldap-gcc44-fixes.patch
new file mode 100644 (file)
index 0000000..53b8ea0
--- /dev/null
@@ -0,0 +1,31 @@
+--- include/ldap_pvt_thread.h~ 2008-11-12 07:37:16.000000000 +0000
++++ include/ldap_pvt_thread.h  2008-11-12 08:01:45.000000000 +0000
+@@ -59,12 +59,12 @@
+ #ifndef LDAP_PVT_THREAD_H_DONE
+ #define       LDAP_PVT_THREAD_SET_STACK_SIZE
+-#ifndef LDAP_PVT_THREAD_STACK_SIZE
+-      /* LARGE stack. Will be twice as large on 64 bit machine. */
+-#define LDAP_PVT_THREAD_STACK_SIZE    ( 1 * 1024 * 1024 * sizeof(void *) )
+ /* May be explicitly defined to zero to disable it */
+-#elif LDAP_PVT_THREAD_STACK_SIZE == 0
++#if LDAP_PVT_THREAD_STACK_SIZE == 0
+ #undef LDAP_PVT_THREAD_SET_STACK_SIZE
++#elif !defined(LDAP_PVT_THREAD_STACK_SIZE)
++      /* LARGE stack. Will be twice as large on 64 bit machine. */
++#define LDAP_PVT_THREAD_STACK_SIZE    ( 1 * 1024 * 1024 * sizeof(void *) )
+ #endif
+ #endif /* !LDAP_PVT_THREAD_H_DONE */
+--- libraries/libldap/os-ip.c~ 2008-11-12 07:33:10.000000000 +0000
++++ libraries/libldap/os-ip.c  2008-11-12 07:33:31.000000000 +0000
+@@ -690,7 +690,7 @@
+               char *herr;
+ #ifdef NI_MAXHOST
+               char hbuf[NI_MAXHOST];
+-#elif defined( MAXHOSTNAMELEN
++#elif defined( MAXHOSTNAMELEN )
+               char hbuf[MAXHOSTNAMELEN];
+ #else
+               char hbuf[256];
+
diff --git a/src/patches/pakfire3-changes-for-ipfire2.diff b/src/patches/pakfire3-changes-for-ipfire2.diff
new file mode 100644 (file)
index 0000000..e0f476a
--- /dev/null
@@ -0,0 +1,35 @@
+diff --git a/Makefile b/Makefile
+index 0361af6..0bcb1bf 100644
+--- a/Makefile
++++ b/Makefile
+@@ -1,7 +1,7 @@
+ include Makeconfig
+-SUBDIRS = po python tools tools/fake-environ
++SUBDIRS = python tools tools/fake-environ
+ all: build
+diff --git a/tools/Makefile b/tools/Makefile
+index d7cbf70..499beb4 100644
+--- a/tools/Makefile
++++ b/tools/Makefile
+@@ -12,7 +12,7 @@ LIBS_POPT = -lpopt
+ SCRIPTS = $(SCRIPTS_BIN) $(SCRIPTS_SHELL)
+ SCRIPTS_BIN   = \
+-      debugedit
++      #debugedit
+ SCRIPTS_SHELL = \
+       chroot-shell \
+@@ -50,7 +50,7 @@ install: $(SCRIPTS)
+       # Create script aliases.
+       -mkdir -pv $(DESTDIR)/usr/bin
+-      ln -svf ../..$(SCRIPT_DIR)/pakfire-multicall.py $(DESTDIR)/usr/bin/pakfire
++      ln -svf ../..$(SCRIPT_DIR)/pakfire-multicall.py $(DESTDIR)/usr/bin/pakfire3
+       ln -svf ../..$(SCRIPT_DIR)/pakfire-multicall.py $(DESTDIR)/usr/bin/pakfire-builder
+       ln -svf ../..$(SCRIPT_DIR)/pakfire-multicall.py $(DESTDIR)/usr/bin/pakfire-client
+       ln -svf ../..$(SCRIPT_DIR)/pakfire-multicall.py $(DESTDIR)/usr/bin/pakfire-daemon
diff --git a/src/patches/pptp-1.7.2-compat.patch b/src/patches/pptp-1.7.2-compat.patch
new file mode 100644 (file)
index 0000000..0ea1551
--- /dev/null
@@ -0,0 +1,71 @@
+Index: pptp_compat.c
+===================================================================
+RCS file: /cvsroot/pptpclient/pptp-linux/pptp_compat.c,v
+retrieving revision 1.1
+retrieving revision 1.3
+diff -u -r1.1 -r1.3
+--- pptp_compat.c      19 Feb 2008 21:43:28 -0000      1.1
++++ pptp_compat.c      25 Jul 2008 00:13:56 -0000      1.3
+@@ -7,14 +7,15 @@
+ #include <fcntl.h>
+ #include <sys/types.h>
+ #include <unistd.h>
+-#include <stropts.h>
+ #include <stdlib.h>
++#if defined (__SVR4) && defined (__sun) /* Solaris */
++#include <stropts.h>
++#endif
+ #include <strings.h>
+ #include "pptp_compat.h"
+ #include <stdio.h>
+ #include "util.h"
+-
+ #if defined (__SVR4) && defined (__sun) /* Solaris */
+ /*
+  * daemon implementation from uClibc
+Index: pptp.c
+===================================================================
+RCS file: /cvsroot/pptpclient/pptp-linux/pptp.c,v
+retrieving revision 1.49
+retrieving revision 1.51
+diff -u -r1.49 -r1.51
+--- pptp.c     14 May 2008 06:32:52 -0000      1.49
++++ pptp.c     24 Jul 2008 05:53:05 -0000      1.51
+@@ -61,9 +61,8 @@
+ #include "version.h"
+ #if defined(__linux__)
+ #include <sys/prctl.h>
+-#else
+-#include "inststr.h"
+ #endif
++#include "inststr.h"
+ #include "util.h"
+ #include "pptp_quirks.h"
+ #include "pqueue.h"
+@@ -129,7 +128,7 @@
+ }
+ #if defined (__SVR4) && defined (__sun)
+-struct in_addr localbind = { INADDR_ANY };
++struct in_addr localbind = { .s_addr = INADDR_ANY };
+ #else
+ struct in_addr localbind = { INADDR_NONE };
+ #endif
+@@ -183,6 +182,7 @@
+     struct in_addr inetaddr;
+     volatile int callmgr_sock = -1;
+     char ttydev[PATH_MAX];
++    char *tty_name;
+     int pty_fd, tty_fd, gre_fd, rc;
+     volatile pid_t parent_pid, child_pid;
+     u_int16_t call_id, peer_call_id;
+@@ -391,7 +391,7 @@
+         file2fd("/dev/null", "wb", STDERR_FILENO);
+     }
+-    char *tty_name = ttyname(tty_fd);
++    tty_name = ttyname(tty_fd);
+     snprintf(buf, sizeof(buf), "pptp: GRE-to-PPP gateway on %s",
+               tty_name ? tty_name : "(null)");
+ #ifdef PR_SET_NAME
diff --git a/src/patches/python-pycurl-fix-do_curl_reset-refcount.patch b/src/patches/python-pycurl-fix-do_curl_reset-refcount.patch
new file mode 100644 (file)
index 0000000..7e20b15
--- /dev/null
@@ -0,0 +1,24 @@
+--- a/src/pycurl.c     
++++ a/src/pycurl.c     
+@@ -1452,6 +1452,7 @@ do_curl_reset(CurlObject *self)
+         }
+     }
++    Py_INCREF(Py_None);
+     return Py_None;
+ }
+--- a/tests/test_internals.py  
++++ a/tests/test_internals.py  
+@@ -245,6 +245,11 @@ if 1 and gc:
+     if opts.verbose >= 1:
+         print "Tracked objects:", len(gc.get_objects())
++if 1:
++    # Ensure that the refcounting error in "reset" is fixed:
++    for i in xrange(100000):
++        c = Curl()
++        c.reset()
+ # /***********************************************************************
+ # // done
diff --git a/src/patches/python-pycurl-no-static-libs.patch b/src/patches/python-pycurl-no-static-libs.patch
new file mode 100644 (file)
index 0000000..c1410dc
--- /dev/null
@@ -0,0 +1,12 @@
+--- setup.py~  2008-04-22 17:00:45.000000000 +0300
++++ setup.py   2008-07-03 21:53:36.000000000 +0300
+@@ -97,8 +97,7 @@
+         else:
+             extra_compile_args.append(e)
+     libs = split_quoted(
+-        os.popen("'%s' --libs" % CURL_CONFIG).read()+\
+-        os.popen("'%s' --static-libs" % CURL_CONFIG).read())
++        os.popen("'%s' --libs" % CURL_CONFIG).read())
+     for e in libs:
+         if e[:2] == "-l":
+             libraries.append(e[2:])
diff --git a/src/patches/qemu-kqemu_change-default-kqemu-bios.patch b/src/patches/qemu-kqemu_change-default-kqemu-bios.patch
deleted file mode 100644 (file)
index a36c54e..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Naur qemu-0.11.1.org/hw/pc.c qemu-0.11.1/hw/pc.c
---- qemu-0.11.1.org/hw/pc.c    2009-12-02 21:27:02.000000000 +0100
-+++ qemu-0.11.1/hw/pc.c        2010-12-27 12:09:41.845206649 +0100
-@@ -43,7 +43,7 @@
- /* Show multiboot debug output */
- //#define DEBUG_MULTIBOOT
--#define BIOS_FILENAME "bios.bin"
-+#define BIOS_FILENAME "bios-kqemu.bin"
- #define VGABIOS_FILENAME "vgabios.bin"
- #define VGABIOS_CIRRUS_FILENAME "vgabios-cirrus.bin"
index dab3af0d208fa7f919a1a7d9d2c5ec00cecc0868..86916f648838c9c04e5428d68c9236643e57873c 100644 (file)
@@ -1,12 +1,14 @@
-diff -Naur r8169-6.011.00.org/src/r8169_n.c r8169-6.011.00/src/r8169_n.c
---- r8169-6.011.00.org/src/r8169_n.c   2009-07-14 08:39:25.000000000 +0200
-+++ r8169-6.011.00/src/r8169_n.c       2009-10-22 19:18:42.000000000 +0200
-@@ -114,6 +114,11 @@
+diff -Naur r8169-6.017.00.org/src/r8169_n.c r8169-6.017.00/src/r8169_n.c
+--- r8169-6.017.00.org/src/r8169_n.c   2012-05-03 14:23:12.000000000 +0200
++++ r8169-6.017.00/src/r8169_n.c       2012-10-14 12:43:52.478555777 +0200
+@@ -115,7 +115,12 @@
  static struct pci_device_id rtl8169_pci_tbl[] = {
        { PCI_DEVICE(PCI_VENDOR_ID_REALTEK,     0x8167), 0, 0, RTL_CFG_0 },
        { PCI_DEVICE(PCI_VENDOR_ID_REALTEK,     0x8169), 0, 0, RTL_CFG_0 },
+-      { PCI_VENDOR_ID_DLINK, 0x4300, PCI_VENDOR_ID_DLINK, 0x4c00, 0, 0, RTL_CFG_0 },
 +      { PCI_DEVICE(PCI_VENDOR_ID_REALTEK,     0x8129), 0, 0, RTL_CFG_0 },
 +      { PCI_DEVICE(PCI_VENDOR_ID_DLINK,       0x4300), 0, 0, RTL_CFG_0 },
++      { PCI_DEVICE(PCI_VENDOR_ID_DLINK,       0x4302), 0, 0, RTL_CFG_0 },
 +      { PCI_DEVICE(PCI_VENDOR_ID_AT,          0xC107), 0, 0, RTL_CFG_0 },
 +      { PCI_DEVICE(0x16EC,                    0x0116), 0, 0, RTL_CFG_0 },
 +      { PCI_VENDOR_ID_LINKSYS, 0x1032, PCI_ANY_ID, 0x0024, 0, 0, RTL_CFG_0 },
diff --git a/src/patches/readline-5.1-fixes-3.patch b/src/patches/readline-5.1-fixes-3.patch
deleted file mode 100644 (file)
index e0fb875..0000000
+++ /dev/null
@@ -1,128 +0,0 @@
-Submitted By: Matthew Burgess (matthew at linuxfromscratch dot org)
-Date: 2006-03-17
-Initial Package Version: 5.1
-Origin: http://ftp.gnu.org/gnu/readline/readline-5.1-patches/
-Upstream Status: From Upstream 
-Description: Contains Patch 001-004 from Upstream
-
-diff -Naur readline-5.1.orig/display.c readline-5.1/display.c
---- readline-5.1.orig/display.c        2005-11-30 19:05:02.000000000 +0000
-+++ readline-5.1/display.c     2006-03-17 16:03:09.000000000 +0000
-@@ -1983,11 +1983,15 @@
-      int pchar;
- {
-   int len;
--  char *pmt;
-+  char *pmt, *p;
-   rl_save_prompt ();
--  if (saved_local_prompt == 0)
-+  /* We've saved the prompt, and can do anything with the various prompt
-+     strings we need before they're restored.  We want the unexpanded
-+     portion of the prompt string after any final newline. */
-+  p = rl_prompt ? strrchr (rl_prompt, '\n') : 0;
-+  if (p == 0)
-     {
-       len = (rl_prompt && *rl_prompt) ? strlen (rl_prompt) : 0;
-       pmt = (char *)xmalloc (len + 2);
-@@ -1998,19 +2002,17 @@
-     }
-   else
-     {
--      len = *saved_local_prompt ? strlen (saved_local_prompt) : 0;
-+      p++;
-+      len = strlen (p);
-       pmt = (char *)xmalloc (len + 2);
-       if (len)
--      strcpy (pmt, saved_local_prompt);
-+      strcpy (pmt, p);
-       pmt[len] = pchar;
-       pmt[len+1] = '\0';
--      local_prompt = savestring (pmt);
--      prompt_last_invisible = saved_last_invisible;
--      prompt_visible_length = saved_visible_length + 1;
--    }
-+    }  
-+  /* will be overwritten by expand_prompt, called from rl_message */
-   prompt_physical_chars = saved_physical_chars + 1;
--
-   return pmt;
- }
-diff -Naur readline-5.1.orig/readline.c readline-5.1/readline.c
---- readline-5.1.orig/readline.c       2005-07-05 02:29:35.000000000 +0000
-+++ readline-5.1/readline.c    2006-03-17 16:03:05.000000000 +0000
-@@ -282,6 +282,7 @@
- {
-   FREE (rl_prompt);
-   rl_prompt = prompt ? savestring (prompt) : (char *)NULL;
-+  rl_display_prompt = rl_prompt ? rl_prompt : "";
-   rl_visible_prompt_length = rl_expand_prompt (rl_prompt);
-   return 0;
-@@ -714,7 +715,7 @@
-         rl_dispatching = 1;
-         RL_SETSTATE(RL_STATE_DISPATCHING);
--        r = (*map[key].function)(rl_numeric_arg * rl_arg_sign, key);
-+        (*map[key].function)(rl_numeric_arg * rl_arg_sign, key);
-         RL_UNSETSTATE(RL_STATE_DISPATCHING);
-         rl_dispatching = 0;
-diff -Naur readline-5.1.orig/terminal.c readline-5.1/terminal.c
---- readline-5.1.orig/terminal.c       2005-11-13 01:46:54.000000000 +0000
-+++ readline-5.1/terminal.c    2006-03-17 16:03:02.000000000 +0000
-@@ -122,7 +122,7 @@
- static char *_rl_visible_bell;
- /* Non-zero means the terminal can auto-wrap lines. */
--int _rl_term_autowrap;
-+int _rl_term_autowrap = -1;
- /* Non-zero means that this terminal has a meta key. */
- static int term_has_meta;
-@@ -274,6 +274,9 @@
- _rl_set_screen_size (rows, cols)
-      int rows, cols;
- {
-+  if (_rl_term_autowrap == -1)
-+    _rl_init_terminal_io (rl_terminal_name);
-+
-   if (rows > 0)
-     _rl_screenheight = rows;
-   if (cols > 0)
-diff -Naur readline-5.1.orig/text.c readline-5.1/text.c
---- readline-5.1.orig/text.c   2005-09-24 23:06:07.000000000 +0000
-+++ readline-5.1/text.c        2006-03-17 16:02:58.000000000 +0000
-@@ -1071,8 +1071,6 @@
- rl_delete (count, key)
-      int count, key;
- {
--  int r;
--
-   if (count < 0)
-     return (_rl_rubout_char (-count, key));
-@@ -1090,17 +1088,17 @@
-       else
-       rl_forward_byte (count, key);
--      r = rl_kill_text (orig_point, rl_point);
-+      rl_kill_text (orig_point, rl_point);
-       rl_point = orig_point;
--      return r;
-     }
-   else
-     {
-       int new_point;
-       new_point = MB_NEXTCHAR (rl_line_buffer, rl_point, 1, MB_FIND_NONZERO);
--      return (rl_delete_text (rl_point, new_point));
-+      rl_delete_text (rl_point, new_point);
-     }
-+  return 0;
- }
- /* Delete the character under the cursor, unless the insertion
diff --git a/src/patches/readline/readline52-001 b/src/patches/readline/readline52-001
new file mode 100644 (file)
index 0000000..0bec9a2
--- /dev/null
@@ -0,0 +1,30 @@
+                          READLINE PATCH REPORT
+                          =====================
+
+Readline-Release: 5.2
+Patch-ID: readline52-001
+
+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:
+
+*** ../readline-5.2/display.c  Thu Sep 14 14:20:12 2006
+--- 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));
diff --git a/src/patches/readline/readline52-002 b/src/patches/readline/readline52-002
new file mode 100644 (file)
index 0000000..b0d8c92
--- /dev/null
@@ -0,0 +1,49 @@
+                          READLINE PATCH REPORT
+                          =====================
+
+Readline-Release: 5.2
+Patch-ID: readline52-002
+
+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:
+
+*** ../readline-5.2-patched/display.c  Thu Sep 14 14:20:12 2006
+--- 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() \
diff --git a/src/patches/readline/readline52-003 b/src/patches/readline/readline52-003
new file mode 100644 (file)
index 0000000..06916b3
--- /dev/null
@@ -0,0 +1,37 @@
+                          READLINE PATCH REPORT
+                          =====================
+
+Readline-Release: 5.2
+Patch-ID: readline52-003
+
+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:
+
+*** ../readline-5.2.2/display.c        Fri Jan 19 13:34:50 2007
+--- 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;
diff --git a/src/patches/readline/readline52-004 b/src/patches/readline/readline52-004
new file mode 100644 (file)
index 0000000..b165ad9
--- /dev/null
@@ -0,0 +1,70 @@
+                          READLINE PATCH REPORT
+                          =====================
+
+Readline-Release: 5.2
+Patch-ID: readline52-004
+
+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:
+
+*** ../readline-5.2.3/display.c        Fri Apr 20 13:30:16 2007
+--- 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);
diff --git a/src/patches/readline/readline52-005 b/src/patches/readline/readline52-005
new file mode 100644 (file)
index 0000000..d192ac1
--- /dev/null
@@ -0,0 +1,328 @@
+                          READLINE PATCH REPORT
+                          =====================
+
+Readline-Release: 5.2
+Patch-ID: readline52-005
+
+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 readline'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:
+
+*** ../readline-5.2/complete.c Fri Jul 28 11:35:49 2006
+--- 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))
+*** ../readline-5.2/input.c    Wed Aug 16 15:15:16 2006
+--- 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;
+*** ../readline-5.2/isearch.c  Mon Dec 26 17:18:53 2005
+--- 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)
+      {
+*** ../readline-5.2/misc.c     Mon Dec 26 17:20:46 2005
+--- 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));
+       }
+*** ../readline-5.2/readline.c Wed Aug 16 15:00:36 2006
+--- 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;
+*** ../readline-5.2/text.c     Fri Jul 28 11:55:27 2006
+--- 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));
+*** ../readline-5.2/vi_mode.c  Sat Jul 29 16:42:28 2006
+--- 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 ();
diff --git a/src/patches/readline/readline52-006 b/src/patches/readline/readline52-006
new file mode 100644 (file)
index 0000000..d739143
--- /dev/null
@@ -0,0 +1,62 @@
+                          READLINE PATCH REPORT
+                          =====================
+
+Readline-Release: 5.2
+Patch-ID: readline52-006
+
+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:
+
+*** ../readline-5.2/display.c  Thu Apr 26 11:38:22 2007
+--- 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
diff --git a/src/patches/readline/readline52-007 b/src/patches/readline/readline52-007
new file mode 100644 (file)
index 0000000..f75f53f
--- /dev/null
@@ -0,0 +1,65 @@
+                          READLINE PATCH REPORT
+                          =====================
+
+Readline-Release: 5.2
+Patch-ID: readline52-007
+
+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:
+
+*** ../readline-5.2/input.c    Wed Aug 16 15:15:16 2006
+--- 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;
+  
diff --git a/src/patches/readline/readline52-008 b/src/patches/readline/readline52-008
new file mode 100644 (file)
index 0000000..1d7f327
--- /dev/null
@@ -0,0 +1,70 @@
+                          READLINE PATCH REPORT
+                          =====================
+
+Readline-Release: 5.2
+Patch-ID: readline52-008
+
+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:
+
+*** ../readline-5.2-patched/display.c  Mon Aug  6 14:26:29 2007
+--- 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
diff --git a/src/patches/readline/readline52-009 b/src/patches/readline/readline52-009
new file mode 100644 (file)
index 0000000..af9e381
--- /dev/null
@@ -0,0 +1,45 @@
+                          READLINE PATCH REPORT
+                          =====================
+
+Readline-Release: 5.2
+Patch-ID: readline52-009
+
+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:
+
+*** ../readline-5.2-patched/display.c  2007-08-25 13:47:08.000000000 -0400
+--- 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;
diff --git a/src/patches/readline/readline52-010 b/src/patches/readline/readline52-010
new file mode 100644 (file)
index 0000000..ee5c026
--- /dev/null
@@ -0,0 +1,47 @@
+                          READLINE PATCH REPORT
+                          =====================
+
+Readline-Release: 5.2
+Patch-ID: readline52-010
+
+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:
+
+*** ../readline-5.2-patched/display.c  2007-08-25 13:47:08.000000000 -0400
+--- 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;
+           }
diff --git a/src/patches/readline/readline52-011 b/src/patches/readline/readline52-011
new file mode 100644 (file)
index 0000000..a1197ed
--- /dev/null
@@ -0,0 +1,32 @@
+                          READLINE PATCH REPORT
+                          =====================
+
+Readline-Release: 5.2
+Patch-ID: readline52-011
+
+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:
+
+*** ../readline-5.2-patched/input.c    2007-08-25 13:47:10.000000000 -0400
+--- 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);
diff --git a/src/patches/readline/readline52-012 b/src/patches/readline/readline52-012
new file mode 100644 (file)
index 0000000..7b37024
--- /dev/null
@@ -0,0 +1,150 @@
+                          READLINE PATCH REPORT
+                          =====================
+
+Readline-Release: 5.2
+Patch-ID: readline52-012
+
+Bug-Reported-by:       Chet Ramey <chet.ramey@case.edu>
+Bug-Reference-ID:
+Bug-Reference-URL:
+
+Bug-Description:
+
+This updates the options required to create shared libraries on several
+systems, including Mac OS X 10.5 (darwin9.x), FreeBSD, NetBSD, OpenBSD,
+AIX, and HP/UX.
+
+Patch:
+
+*** ../readline-5.2-patched/support/shobj-conf 2006-04-11 09:15:43.000000000 -0400
+--- support/shobj-conf 2007-12-06 23:46:41.000000000 -0500
+***************
+*** 11,15 ****
+  # chet@po.cwru.edu
+  
+! # Copyright (C) 1996-2002 Free Software Foundation, Inc.
+  #
+  # This program is free software; you can redistribute it and/or modify
+--- 11,15 ----
+  # chet@po.cwru.edu
+  
+! # Copyright (C) 1996-2007 Free Software Foundation, Inc.
+  #
+  # This program is free software; you can redistribute it and/or modify
+***************
+*** 115,119 ****
+       ;;
+  
+! freebsd2* | netbsd*)
+       SHOBJ_CFLAGS=-fpic
+       SHOBJ_LD=ld
+--- 115,119 ----
+       ;;
+  
+! freebsd2*)
+       SHOBJ_CFLAGS=-fpic
+       SHOBJ_LD=ld
+***************
+*** 126,130 ****
+  # FreeBSD-3.x ELF
+  freebsd[3-9]*|freebsdelf[3-9]*|freebsdaout[3-9]*|dragonfly*)
+!      SHOBJ_CFLAGS=-fpic
+       SHOBJ_LD='${CC}'
+  
+--- 126,130 ----
+  # FreeBSD-3.x ELF
+  freebsd[3-9]*|freebsdelf[3-9]*|freebsdaout[3-9]*|dragonfly*)
+!      SHOBJ_CFLAGS=-fPIC
+       SHOBJ_LD='${CC}'
+  
+***************
+*** 143,147 ****
+  
+  # Darwin/MacOS X
+! darwin8*)
+       SHOBJ_STATUS=supported
+       SHLIB_STATUS=supported
+--- 143,147 ----
+  
+  # Darwin/MacOS X
+! darwin[89]*)
+       SHOBJ_STATUS=supported
+       SHLIB_STATUS=supported
+***************
+*** 154,158 ****
+       SHLIB_LIBSUFF='dylib'
+  
+!      SHOBJ_LDFLAGS='-undefined dynamic_lookup'
+       SHLIB_XLDFLAGS='-dynamiclib -arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v'
+  
+--- 154,158 ----
+       SHLIB_LIBSUFF='dylib'
+  
+!      SHOBJ_LDFLAGS='-dynamiclib -dynamic -undefined dynamic_lookup -arch_only `/usr/bin/arch`'
+       SHLIB_XLDFLAGS='-dynamiclib -arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v'
+  
+***************
+*** 172,176 ****
+  
+       case "${host_os}" in
+!      darwin[78]*)    SHOBJ_LDFLAGS=''
+                       SHLIB_XLDFLAGS='-dynamiclib -arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v'
+                       ;;
+--- 172,176 ----
+  
+       case "${host_os}" in
+!      darwin[789]*)   SHOBJ_LDFLAGS=''
+                       SHLIB_XLDFLAGS='-dynamiclib -arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v'
+                       ;;
+***************
+*** 183,187 ****
+       ;;
+  
+! openbsd*)
+       SHOBJ_CFLAGS=-fPIC
+       SHOBJ_LD='${CC}'
+--- 183,187 ----
+       ;;
+  
+! openbsd*|netbsd*)
+       SHOBJ_CFLAGS=-fPIC
+       SHOBJ_LD='${CC}'
+***************
+*** 248,252 ****
+       ;;
+  
+! aix4.[2-9]*-*gcc*)           # lightly tested by jik@cisco.com
+       SHOBJ_CFLAGS=-fpic
+       SHOBJ_LD='ld'
+--- 248,252 ----
+       ;;
+  
+! aix4.[2-9]*-*gcc*|aix[5-9].*-*gcc*)          # lightly tested by jik@cisco.com
+       SHOBJ_CFLAGS=-fpic
+       SHOBJ_LD='ld'
+***************
+*** 259,263 ****
+       ;;
+  
+! aix4.[2-9]*)
+       SHOBJ_CFLAGS=-K
+       SHOBJ_LD='ld'
+--- 259,263 ----
+       ;;
+  
+! aix4.[2-9]*|aix[5-9].*)
+       SHOBJ_CFLAGS=-K
+       SHOBJ_LD='ld'
+***************
+*** 330,334 ****
+       # if you have problems linking here, moving the `-Wl,+h,$@' from
+       # SHLIB_XLDFLAGS to SHOBJ_LDFLAGS has been reported to work
+!      SHOBJ_LDFLAGS='-shared -Wl,-b -Wl,+s'
+  
+       SHLIB_XLDFLAGS='-Wl,+h,$@ -Wl,+b,$(libdir)'
+--- 330,334 ----
+       # if you have problems linking here, moving the `-Wl,+h,$@' from
+       # SHLIB_XLDFLAGS to SHOBJ_LDFLAGS has been reported to work
+!      SHOBJ_LDFLAGS='-shared -fpic -Wl,-b -Wl,+s'
+  
+       SHLIB_XLDFLAGS='-Wl,+h,$@ -Wl,+b,$(libdir)'
diff --git a/src/patches/readline/readline52-013 b/src/patches/readline/readline52-013
new file mode 100644 (file)
index 0000000..82a1897
--- /dev/null
@@ -0,0 +1,135 @@
+                          READLINE PATCH REPORT
+                          =====================
+
+Readline-Release: 5.2
+Patch-ID: readline52-013
+
+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:
+
+*** ../readline-5.2-patched/display.c  2007-12-14 21:12:40.000000000 -0500
+--- 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;
diff --git a/src/patches/readline/readline52-014 b/src/patches/readline/readline52-014
new file mode 100644 (file)
index 0000000..8dfaae4
--- /dev/null
@@ -0,0 +1,49 @@
+                          READLINE PATCH REPORT
+                          =====================
+
+Readline-Release: 5.2
+Patch-ID: readline52-014
+
+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:
+
+*** ../readline-5.2-patched/mbutil.c   2009-05-29 23:09:26.000000000 -0400
+--- 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))
+       {
diff --git a/src/patches/readline/readline62-001 b/src/patches/readline/readline62-001
new file mode 100644 (file)
index 0000000..d4563c3
--- /dev/null
@@ -0,0 +1,46 @@
+                          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
new file mode 100644 (file)
index 0000000..3dc2604
--- /dev/null
@@ -0,0 +1,57 @@
+                          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
new file mode 100644 (file)
index 0000000..0462242
--- /dev/null
@@ -0,0 +1,76 @@
+                          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
new file mode 100644 (file)
index 0000000..5f3ba9b
--- /dev/null
@@ -0,0 +1,108 @@
+                          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/screen-4.0.3-stropts.patch b/src/patches/screen-4.0.3-stropts.patch
new file mode 100644 (file)
index 0000000..d6cbed7
--- /dev/null
@@ -0,0 +1,48 @@
+diff -up screen-4.0.3/tty.sh.stropts screen-4.0.3/tty.sh
+--- screen-4.0.3/tty.sh.stropts        2003-09-08 16:24:25.000000000 +0200
++++ screen-4.0.3/tty.sh        2008-04-07 11:28:34.000000000 +0200
+@@ -76,7 +76,7 @@ exit 0
+ #endif
+ #include "config.h"
+-#ifdef SVR4
++#if 0
+ #include <sys/stropts.h>      /* for I_POP */
+ #endif
+diff -up screen-4.0.3/screen.c.stropts screen-4.0.3/screen.c
+--- screen-4.0.3/screen.c.stropts      2008-04-07 11:25:21.000000000 +0200
++++ screen-4.0.3/screen.c      2008-04-07 11:29:14.000000000 +0200
+@@ -50,7 +50,7 @@
+ #include "config.h"
+-#ifdef SVR4
++#if 0
+ # include <sys/stropts.h>
+ #endif
+diff -up screen-4.0.3/process.c.stropts screen-4.0.3/process.c
+--- screen-4.0.3/process.c.stropts     2003-09-18 14:53:54.000000000 +0200
++++ screen-4.0.3/process.c     2008-04-07 11:29:47.000000000 +0200
+@@ -37,7 +37,7 @@
+ #include "config.h"
+ /* for solaris 2.1, Unixware (SVR4.2) and possibly others: */
+-#ifdef SVR4
++#if 0 
+ # include <sys/stropts.h>
+ #endif
+diff -up screen-4.0.3/pty.c.stropts screen-4.0.3/pty.c
+--- screen-4.0.3/pty.c.stropts 2003-09-08 16:26:18.000000000 +0200
++++ screen-4.0.3/pty.c 2008-04-07 11:30:07.000000000 +0200
+@@ -34,7 +34,7 @@
+ #endif
+ /* for solaris 2.1, Unixware (SVR4.2) and possibly others */
+-#ifdef HAVE_SVR4_PTYS
++#if 0 
+ # include <sys/stropts.h>
+ #endif
diff --git a/src/patches/slang-1.4.9-uclibc.patch b/src/patches/slang-1.4.9-uclibc.patch
deleted file mode 100644 (file)
index 7847147..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -ru slang-1.4.9.orig/src/slmisc.c slang-1.4.9/src/slmisc.c
---- slang-1.4.9.orig/src/slmisc.c      2003-03-23 07:06:40.000000000 +0000
-+++ slang-1.4.9/src/slmisc.c   2004-05-05 14:27:24.000000000 +0000
-@@ -565,7 +565,7 @@
-    return (int) SLatol (s);
- }
--#if !defined(HAVE_ISSETUGID) && defined(__GLIBC__) && (__GLIBC__ >= 2)
-+#if 0
- extern int __libc_enable_secure;
- # define HAVE___LIBC_ENABLE_SECURE 1
- #endif
diff --git a/src/patches/texinfo-4.8-multibyte-1.patch b/src/patches/texinfo-4.8-multibyte-1.patch
deleted file mode 100644 (file)
index 4676a79..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-Submitted By: Alexander E. Patrakov
-Date: 2005-07-12
-Initial Package Version: 4.8
-Upstream Status: Hack, won't submit
-Origin: Alexander E. Patrakov
-Description: Info assumes that a string width in character cells is the
-same as its length in bytes. This patch avoids cases when this assumption
-is not true.
-
-diff -ur texinfo-4.8/info/info.c texinfo-4.8.hacked/info/info.c
---- texinfo-4.8/info/info.c    2004-04-11 23:56:45.000000000 +0600
-+++ texinfo-4.8.hacked/info/info.c     2005-07-12 12:11:34.852485776 +0600
-@@ -154,6 +154,10 @@
- #ifdef HAVE_SETLOCALE
-   /* Set locale via LC_ALL.  */
-   setlocale (LC_ALL, "");
-+  /* But don't use translated messages in the case when
-+     string width and length can differ */
-+  if (MB_CUR_MAX > 1)
-+    setlocale(LC_MESSAGES, "C");
- #endif
- #ifdef ENABLE_NLS
-diff -ur texinfo-4.8/info/man.c texinfo-4.8.hacked/info/man.c
---- texinfo-4.8/info/man.c     2004-04-11 23:56:46.000000000 +0600
-+++ texinfo-4.8.hacked/info/man.c      2005-07-12 12:08:40.267026800 +0600
-@@ -325,6 +325,17 @@
-       freopen (NULL_DEVICE, "r", stdin);
-       dup2 (pipes[1], fileno (stdout));
-+      if (MB_CUR_MAX > 1)
-+        {
-+          /* Info has trouble wrapping man output if it contains
-+             multibyte characters */
-+          setenv("LANGUAGE", "C", 1);
-+          setenv("LANG", "C", 1);
-+          setenv("LC_MESSAGES", "C", 1);
-+          setenv("LC_CTYPE", "C", 1);
-+          setenv("LC_ALL", "C", 1);
-+        }
-+
-       execv (formatter_args[0], formatter_args);
-       /* If we get here, we couldn't exec, so close out the pipe and
diff --git a/src/patches/texinfo-4.8-tempfile_fix-2.patch b/src/patches/texinfo-4.8-tempfile_fix-2.patch
deleted file mode 100644 (file)
index 0d0b594..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-Updated By: Bruce Dubbs (bdubbs -aT- linuxfromscratch -DoT- org)
-Date: 2005-12-12
-Submitted By: Archaic (archaic -aT- linuxfromscratch -DoT- org)
-Date: 2005-10-08
-Initial Package Version: 4.8
-Origin: http://gentoo.kems.net/gentoo-portage/sys-apps/texinfo/files/texinfo-4.8-tempfile.patch
-Upstream Status: A few patches are floating around in Debian BZ #328365 of which
-                 upstream hasn't made a full commitment on yet.
-Description: (CAN-2005-3011) texindex in texinfo 4.8 and earlier allows local
-             users to overwrite arbitrary files via a symlink attack on
-             temporary files.
-Update: Changed to not pass a constant string to mktemp().
-
-diff -Naur texinfo-4.8.orig/util/texindex.c texinfo-4.8/util/texindex.c
---- texinfo-4.8.orig/util/texindex.c   2005-12-11 23:29:08.000000000 -0600
-+++ texinfo-4.8/util/texindex.c        2005-12-11 23:33:31.000000000 -0600
-@@ -99,6 +99,9 @@
- /* Directory to use for temporary files.  On Unix, it ends with a slash.  */
- char *tempdir;
-+/* Basename for temp files inside of tempdir.  */
-+char *tempbase;
-+
- /* Number of last temporary file.  */
- int tempcount;
-@@ -153,6 +156,7 @@
- main (int argc, char **argv)
- {
-   int i;
-+  char template[]="txidxXXXXXX";
-   tempcount = 0;
-   last_deleted_tempcount = 0;
-@@ -190,6 +194,11 @@
-   decode_command (argc, argv);
-+  /* XXX mkstemp not appropriate, as we need to have somewhat predictable
-+   * names. But race condition was fixed, see maketempname. 
-+   */
-+  tempbase = mktemp (template);
-+
-   /* Process input files completely, one by one.  */
-   for (i = 0; i < num_infiles; i++)
-@@ -389,21 +398,21 @@
- static char *
- maketempname (int count)
- {
--  static char *tempbase = NULL;
-   char tempsuffix[10];
--
--  if (!tempbase)
--    {
--      int fd;
--      tempbase = concat (tempdir, "txidxXXXXXX");
--
--      fd = mkstemp (tempbase);
--      if (fd == -1)
--        pfatal_with_name (tempbase);
--    }
-+  char *name, *tmp_name;
-+  int fd;
-   sprintf (tempsuffix, ".%d", count);
--  return concat (tempbase, tempsuffix);
-+  tmp_name = concat (tempdir, tempbase);
-+  name = concat (tmp_name, tempsuffix);
-+  free(tmp_name);
-+
-+  fd = open (name, O_CREAT|O_EXCL|O_WRONLY, 0600);
-+  if (fd == -1)
-+    pfatal_with_name (name);
-+
-+  close(fd);
-+  return name;
- }
-
diff --git a/src/patches/uClibc-gcc4-genwctype.patch b/src/patches/uClibc-gcc4-genwctype.patch
deleted file mode 100644 (file)
index 568e5bd..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- uClibc-0.9.28/extra/locale/gen_wctype.c.orig       2005-08-18 00:49:41.000000000 +0200
-+++ uClibc-0.9.28/extra/locale/gen_wctype.c    2005-12-09 16:29:53.000000000 +0100
-@@ -796,6 +796,7 @@
-               ti[i] = ut + j;
-               j += blocksize;
-       }
-+      memset(uniqblock, 0, sizeof(uniqblock));
-       /* sort */
-       nu_val = blocksize;
-
diff --git a/src/patches/udev-125-ext4_wo_journal.patch b/src/patches/udev-125-ext4_wo_journal.patch
new file mode 100644 (file)
index 0000000..77072ce
--- /dev/null
@@ -0,0 +1,50 @@
+diff -Naur udev-125.org/extras/volume_id/lib/ext.c udev-125/extras/volume_id/lib/ext.c
+--- udev-125.org/extras/volume_id/lib/ext.c    2008-07-18 16:26:55.000000000 +0200
++++ udev-125/extras/volume_id/lib/ext.c        2012-06-25 00:52:40.976563010 +0200
+@@ -160,32 +160,31 @@
+               goto found;
+       }
+-      /* has journal */
+-      if ((feature_compat & EXT3_FEATURE_COMPAT_HAS_JOURNAL) != 0) {
+-              /* "use on development code" is ext4dev */
+-              if ((flags & EXT2_FLAGS_TEST_FILESYS) != 0) {
+-                      id->type = "ext4dev";
+-                      goto found;
+-              }
++      /* "use on development code" is ext4dev */
++      if ((flags & EXT2_FLAGS_TEST_FILESYS) != 0) {
++              id->type = "ext4dev";
++              goto found;
++      }
+-              /* incompatible ext3 features is ext4 */
+-              if ((feature_ro_compat & EXT3_FEATURE_RO_COMPAT_UNSUPPORTED) != 0 ||
+-                  (feature_incompat & EXT3_FEATURE_INCOMPAT_UNSUPPORTED) != 0) {
+-                      id->type = "ext4";
+-                      goto found;
+-              }
++      /* incompatible ext3 features is ext4 */
++      if ((feature_ro_compat & EXT3_FEATURE_RO_COMPAT_UNSUPPORTED) != 0 ||
++          (feature_incompat & EXT3_FEATURE_INCOMPAT_UNSUPPORTED) != 0) {
++              id->type = "ext4";
++              goto found;
++      }
++      /* has journal */
++      if ((feature_compat & EXT3_FEATURE_COMPAT_HAS_JOURNAL) != 0) {
+               id->type = "ext3";
+               goto found;
+       } else {
+-              /* no incompatible ext2 feature is ext2 */
++      /* no incompatible ext2 feature is ext2 */
+               if ((feature_ro_compat & EXT2_FEATURE_RO_COMPAT_UNSUPPORTED) == 0 &&
+                   (feature_incompat & EXT2_FEATURE_INCOMPAT_UNSUPPORTED) == 0) {
+                       id->type = "ext2";
+                       goto found;
+               }
+       }
+-
+       return -1;
+ found:
diff --git a/src/patches/udev-125-netif_rename.patch b/src/patches/udev-125-netif_rename.patch
deleted file mode 100644 (file)
index c80b05a..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-diff -Nur udev-125.vanilla/udev_device.c udev-125/udev_device.c
---- udev-125.vanilla/udev_device.c     2008-07-18 16:26:55.000000000 +0200
-+++ udev-125/udev_device.c     2010-07-25 18:15:12.289242450 +0200
-@@ -123,42 +123,7 @@
-       if (retval == 0)
-               kernel_log(ifr);
-       else {
--              int loop;
--
--              /* see if the destination interface name already exists */
--              if (errno != EEXIST) {
--                      err("error changing netif name %s to %s: %s\n", ifr.ifr_name, ifr.ifr_newname, strerror(errno));
--                      goto exit;
--              }
--
--              /* free our own name, another process may wait for us */
--              strlcpy(ifr.ifr_newname, udev->dev->kernel, IFNAMSIZ);
--              strlcat(ifr.ifr_newname, "_rename", IFNAMSIZ);
--              retval = ioctl(sk, SIOCSIFNAME, &ifr);
--              if (retval != 0) {
--                      err("error changing netif name %s to %s: %s\n", ifr.ifr_name, ifr.ifr_newname, strerror(errno));
--                      goto exit;
--              }
--
--              /* wait 30 seconds for our target to become available */
--              strlcpy(ifr.ifr_name, ifr.ifr_newname, IFNAMSIZ);
--              strlcpy(ifr.ifr_newname, udev->name, IFNAMSIZ);
--              loop = 30 * 20;
--              while (loop--) {
--                      retval = ioctl(sk, SIOCSIFNAME, &ifr);
--                      if (retval == 0) {
--                              kernel_log(ifr);
--                              break;
--                      }
--
--                      if (errno != EEXIST) {
--                              err("error changing net interface name %s to %s: %s\n",
--                                  ifr.ifr_name, ifr.ifr_newname, strerror(errno));
--                              break;
--                      }
--                      dbg("wait for netif '%s' to become free, loop=%i\n", udev->name, (30 * 20) - loop);
--                      usleep(1000 * 1000 / 20);
--              }
-+              err("error changing netif name %s to %s: %s\n", ifr.ifr_name, ifr.ifr_newname, strerror(errno));
-       }
- exit:
diff --git a/src/patches/udev-141_no_netif_rename.patch b/src/patches/udev-141_no_netif_rename.patch
new file mode 100644 (file)
index 0000000..fcc5009
--- /dev/null
@@ -0,0 +1,50 @@
+diff -Naur udev-141.org/udev/udev-event.c udev-141/udev/udev-event.c
+--- udev-141.org/udev/udev-event.c     2009-02-24 15:08:35.000000000 +0100
++++ udev-141/udev/udev-event.c 2012-10-30 12:27:00.262833136 +0100
+@@ -486,45 +486,8 @@
+       if (err == 0)
+               rename_netif_kernel_log(ifr);
+       else {
+-              int loop;
+-
+-              /* see if the destination interface name already exists */
+-              if (errno != EEXIST) {
+-                      err(event->udev, "error changing netif name %s to %s: %m\n",
+-                          ifr.ifr_name, ifr.ifr_newname);
+-                      goto exit;
+-              }
+-
+-              /* free our own name, another process may wait for us */
+-              util_strlcpy(ifr.ifr_newname, udev_device_get_sysname(dev), IFNAMSIZ);
+-              util_strlcat(ifr.ifr_newname, "_rename", IFNAMSIZ);
+-              err = ioctl(sk, SIOCSIFNAME, &ifr);
+-              if (err != 0) {
+-                      err(event->udev, "error changing netif name %s to %s: %m\n",
++              err(event->udev, "error changing netif name %s to %s: %m\n",
+                           ifr.ifr_name, ifr.ifr_newname);
+-                      goto exit;
+-              }
+-
+-              /* wait 90 seconds for our target to become available */
+-              util_strlcpy(ifr.ifr_name, ifr.ifr_newname, IFNAMSIZ);
+-              util_strlcpy(ifr.ifr_newname, event->name, IFNAMSIZ);
+-              loop = 90 * 20;
+-              while (loop--) {
+-                      err = ioctl(sk, SIOCSIFNAME, &ifr);
+-                      if (err == 0) {
+-                              rename_netif_kernel_log(ifr);
+-                              break;
+-                      }
+-
+-                      if (errno != EEXIST) {
+-                              err(event->udev, "error changing net interface name %s to %s: %m\n",
+-                                  ifr.ifr_name, ifr.ifr_newname);
+-                              break;
+-                      }
+-                      dbg(event->udev, "wait for netif '%s' to become free, loop=%i\n",
+-                          event->name, (90 * 20) - loop);
+-                      usleep(1000 * 1000 / 20);
+-              }
+       }
+ exit:
+       close(sk);
diff --git a/src/patches/udev-config-6.2_persistent-storage-fix.patch b/src/patches/udev-config-6.2_persistent-storage-fix.patch
deleted file mode 100644 (file)
index 172091a..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Naur udev-config-6.2.org/60-persistent-storage.rules udev-config-6.2/60-persistent-storage.rules
---- udev-config-6.2.org/60-persistent-storage.rules    2006-05-13 01:03:13.000000000 +0200
-+++ udev-config-6.2/60-persistent-storage.rules        2010-08-14 11:08:35.000000000 +0200
-@@ -9,7 +9,7 @@
- # never access removable ide devices, the drivers are causing event loops on open()
- KERNEL=="hd*[!0-9]", SYSFS{removable}=="1", DRIVER=="ide-cs|ide-floppy", GOTO="persistent_storage_end"
--KERNEL=="hd*[0-9]", SYSFS{../removable}=="1", GOTO="persistent_storage_end"
-+KERNEL=="hd*[0-9]", SYSFS{removable}=="1", GOTO="persistent_storage_end"
- # for partitions import parent information
- KERNEL=="*[0-9]", IMPORT{parent}=="ID_*"
diff --git a/src/patches/udev-config-6.2_remove-lfs-usb-rule.patch b/src/patches/udev-config-6.2_remove-lfs-usb-rule.patch
deleted file mode 100644 (file)
index ef02bf7..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -Naur udev-config-6.2.org/25-lfs.rules udev-config-6.2/25-lfs.rules
---- udev-config-6.2.org/25-lfs.rules   2006-07-14 23:29:28.000000000 +0200
-+++ udev-config-6.2/25-lfs.rules       2010-12-21 18:55:40.375602794 +0100
-@@ -84,7 +84,6 @@
- # USB devices go in their own subdirectory
--SUBSYSTEM=="usb_device", PROGRAM="/bin/sh -c 'X=%k; X=$${X#usbdev}; B=$${X%%%%.*} D=$${X#*.}; echo bus/usb/$$B/$$D'", NAME="%c"
- KERNEL=="hiddev*",          NAME="usb/%k"
- KERNEL=="auer*",            NAME="usb/%k"
- KERNEL=="legousbtower*",    NAME="usb/%k"
diff --git a/src/patches/v4l-dvb_bestunar_us638x.patch b/src/patches/v4l-dvb_bestunar_us638x.patch
new file mode 100644 (file)
index 0000000..e3ac8d2
--- /dev/null
@@ -0,0 +1,2810 @@
+diff -Naur v4l-dvb-20120916.ORG/linux/drivers/media/dvb-frontends/Kconfig v4l-dvb-20120916/linux/drivers/media/dvb-frontends/Kconfig
+--- v4l-dvb-20120916.ORG/linux/drivers/media/dvb-frontends/Kconfig     2012-08-22 05:45:23.000000000 +0200
++++ v4l-dvb-20120916/linux/drivers/media/dvb-frontends/Kconfig 2012-11-24 13:35:19.220030262 +0100
+@@ -200,6 +200,13 @@
+       help
+         A DVB-S/S2 tuner module. Say Y when you want to support this frontend.
++config DVB_M88DS3103
++      tristate "Montage DS3103 based"
++      depends on DVB_CORE && I2C
++      default m if DVB_FE_CUSTOMISE
++      help
++        A DVB-S/S2 tuner module. Say Y when you want to support this frontend.
++
+ config DVB_SI21XX
+       tristate "Silicon Labs SI21XX based"
+       depends on DVB_CORE && I2C
+diff -Naur v4l-dvb-20120916.ORG/linux/drivers/media/dvb-frontends/m88ds3103.c v4l-dvb-20120916/linux/drivers/media/dvb-frontends/m88ds3103.c
+--- v4l-dvb-20120916.ORG/linux/drivers/media/dvb-frontends/m88ds3103.c 1970-01-01 01:00:00.000000000 +0100
++++ v4l-dvb-20120916/linux/drivers/media/dvb-frontends/m88ds3103.c     2012-11-24 13:34:43.713346302 +0100
+@@ -0,0 +1,1710 @@
++/*
++    Montage Technology M88DS3103/M88TS2022 - DVBS/S2 Satellite demod/tuner driver
++
++    Copyright (C) 2011 Max nibble<nibble.max@gmail.com>
++    Copyright (C) 2010 Montage Technology<www.montage-tech.com>
++    Copyright (C) 2009 Konstantin Dimitrov.
++
++    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, write to the Free Software
++    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#include <linux/slab.h>
++#include <linux/kernel.h>
++#include <linux/module.h>
++#include <linux/moduleparam.h>
++#include <linux/init.h>
++#include <linux/firmware.h>
++
++#include "dvb_frontend.h"
++#include "m88ds3103.h"
++#include "m88ds3103_priv.h"
++
++static int debug;
++module_param(debug, int, 0644);
++MODULE_PARM_DESC(debug, "Activates frontend debugging (default:0)");
++
++#define dprintk(args...) \
++      do { \
++              if (debug) \
++                      printk(KERN_INFO "m88ds3103: " args); \
++      } while (0)
++
++/*demod register operations.*/
++static int m88ds3103_writereg(struct m88ds3103_state *state, int reg, int data)
++{
++      u8 buf[] = { reg, data };
++      struct i2c_msg msg = { .addr = state->config->demod_address,
++              .flags = 0, .buf = buf, .len = 2 };
++      int err;
++
++      if (debug > 1)
++              printk("m88ds3103: %s: write reg 0x%02x, value 0x%02x\n",
++                      __func__, reg, data);
++
++      err = i2c_transfer(state->i2c, &msg, 1);
++      if (err != 1) {
++              printk(KERN_ERR "%s: writereg error(err == %i, reg == 0x%02x,"
++                       " value == 0x%02x)\n", __func__, err, reg, data);
++              return -EREMOTEIO;
++      }
++      return 0;
++}
++
++static int m88ds3103_readreg(struct m88ds3103_state *state, u8 reg)
++{
++      int ret;
++      u8 b0[] = { reg };
++      u8 b1[] = { 0 };
++      struct i2c_msg msg[] = {
++              { .addr = state->config->demod_address, .flags = 0,
++                      .buf = b0, .len = 1 },
++              { .addr = state->config->demod_address, .flags = I2C_M_RD,
++                      .buf = b1, .len = 1 }
++      };
++      ret = i2c_transfer(state->i2c, msg, 2);
++
++      if (ret != 2) {
++              printk(KERN_ERR "%s: reg=0x%x (error=%d)\n",
++                      __func__, reg, ret);
++              return ret;
++      }
++
++      if (debug > 1)
++              printk(KERN_INFO "m88ds3103: read reg 0x%02x, value 0x%02x\n",
++                      reg, b1[0]);
++
++      return b1[0];
++}
++
++/*tuner register operations.*/
++static int m88ds3103_tuner_writereg(struct m88ds3103_state *state, int reg, int data)
++{
++      u8 buf[] = { reg, data };
++      struct i2c_msg msg = { .addr = 0x60,
++              .flags = 0, .buf = buf, .len = 2 };
++      int err;
++
++      m88ds3103_writereg(state, 0x03, 0x11);
++      err = i2c_transfer(state->i2c, &msg, 1);
++      
++      if (err != 1) {
++              printk("%s: writereg error(err == %i, reg == 0x%02x,"
++                       " value == 0x%02x)\n", __func__, err, reg, data);
++              return -EREMOTEIO;
++      }
++
++      return 0;
++}
++
++static int m88ds3103_tuner_readreg(struct m88ds3103_state *state, u8 reg)
++{
++      int ret;
++      u8 b0[] = { reg };
++      u8 b1[] = { 0 };
++      struct i2c_msg msg[] = {
++              { .addr = 0x60, .flags = 0,
++                      .buf = b0, .len = 1 },
++              { .addr = 0x60, .flags = I2C_M_RD,
++                      .buf = b1, .len = 1 }
++      };
++
++      m88ds3103_writereg(state, 0x03, 0x11);  
++      ret = i2c_transfer(state->i2c, msg, 2);
++
++      if (ret != 2) {
++              printk(KERN_ERR "%s: reg=0x%x(error=%d)\n", __func__, reg, ret);
++              return ret;
++      }
++
++      return b1[0];
++}
++
++/* Bulk demod I2C write, for firmware download. */
++static int m88ds3103_writeregN(struct m88ds3103_state *state, int reg,
++                              const u8 *data, u16 len)
++{
++      int ret = -EREMOTEIO;
++      struct i2c_msg msg;
++      u8 *buf;
++
++      buf = kmalloc(len + 1, GFP_KERNEL);
++      if (buf == NULL) {
++              printk("Unable to kmalloc\n");
++              ret = -ENOMEM;
++              goto error;
++      }
++
++      *(buf) = reg;
++      memcpy(buf + 1, data, len);
++
++      msg.addr = state->config->demod_address;
++      msg.flags = 0;
++      msg.buf = buf;
++      msg.len = len + 1;
++
++      if (debug > 1)
++              printk(KERN_INFO "m88ds3103: %s:  write regN 0x%02x, len = %d\n",
++                      __func__, reg, len);
++
++      ret = i2c_transfer(state->i2c, &msg, 1);
++      if (ret != 1) {
++              printk(KERN_ERR "%s: writereg error(err == %i, reg == 0x%02x\n",
++                       __func__, ret, reg);
++              ret = -EREMOTEIO;
++      }
++      
++error:
++      kfree(buf);
++
++      return ret;
++}
++
++static int m88ds3103_load_firmware(struct dvb_frontend *fe)
++{
++      struct m88ds3103_state *state = fe->demodulator_priv;
++      const struct firmware *fw;
++      int i, ret = 0;
++
++      dprintk("%s()\n", __func__);
++              
++      if (state->skip_fw_load)
++              return 0;
++      /* Load firmware */
++      /* request the firmware, this will block until someone uploads it */    
++      if(state->demod_id == DS3000_ID){
++              printk(KERN_INFO "%s: Waiting for firmware upload (%s)...\n", __func__,
++                              DS3000_DEFAULT_FIRMWARE);               
++              ret = request_firmware(&fw, DS3000_DEFAULT_FIRMWARE,
++                                      state->i2c->dev.parent);
++      }else if(state->demod_id == DS3103_ID){
++              printk(KERN_INFO "%s: Waiting for firmware upload (%s)...\n", __func__,
++                              DS3103_DEFAULT_FIRMWARE);
++              ret = request_firmware(&fw, DS3103_DEFAULT_FIRMWARE,
++                                      state->i2c->dev.parent);
++      }
++      
++      printk(KERN_INFO "%s: Waiting for firmware upload(2)...\n", __func__);
++      if (ret) {
++              printk(KERN_ERR "%s: No firmware uploaded (timeout or file not "
++                              "found?)\n", __func__);
++              return ret;
++      }
++
++      /* Make sure we don't recurse back through here during loading */
++      state->skip_fw_load = 1;
++
++      dprintk("Firmware is %zu bytes (%02x %02x .. %02x %02x)\n",
++                      fw->size,
++                      fw->data[0],
++                      fw->data[1],
++                      fw->data[fw->size - 2],
++                      fw->data[fw->size - 1]);
++                      
++      /* stop internal mcu. */
++      m88ds3103_writereg(state, 0xb2, 0x01);
++      /* split firmware to download.*/
++      for(i = 0; i < FW_DOWN_LOOP; i++){
++              ret = m88ds3103_writeregN(state, 0xb0, &(fw->data[FW_DOWN_SIZE*i]), FW_DOWN_SIZE);
++              if(ret != 1) break;             
++      }
++      /* start internal mcu. */
++      if(ret == 1)
++              m88ds3103_writereg(state, 0xb2, 0x00);
++              
++      release_firmware(fw);
++
++      dprintk("%s: Firmware upload %s\n", __func__,
++                      ret == 1 ? "complete" : "failed");
++
++      if(ret == 1) ret = 0;
++      
++      /* Ensure firmware is always loaded if required */
++      state->skip_fw_load = 0;
++
++      return ret;
++}
++
++
++static int m88ds3103_set_voltage(struct dvb_frontend *fe, fe_sec_voltage_t voltage)
++{
++      struct m88ds3103_state *state = fe->demodulator_priv;
++      u8 data;
++
++      dprintk("%s(%d)\n", __func__, voltage);
++
++      dprintk("m88ds3103:pin_ctrl = (%02x)\n", state->config->pin_ctrl);
++      
++      if(state->config->set_voltage)
++              state->config->set_voltage(fe, voltage);
++      
++      data = m88ds3103_readreg(state, 0xa2);
++      
++        if(state->config->pin_ctrl & 0x80){ /*If control pin is assigned.*/
++              data &= ~0x03; /* bit0 V/H, bit1 off/on */
++              if(state->config->pin_ctrl & 0x02)
++                   data |= 0x02;
++
++              switch (voltage) {
++              case SEC_VOLTAGE_18:
++                   if((state->config->pin_ctrl & 0x01) == 0)
++                        data |= 0x01;
++                   break;
++              case SEC_VOLTAGE_13:
++                   if(state->config->pin_ctrl & 0x01)
++                        data |= 0x01;
++                   break;
++              case SEC_VOLTAGE_OFF:
++                   if(state->config->pin_ctrl & 0x02)
++                         data &= ~0x02;                       
++                   else
++                         data |= 0x02;
++                   break;
++               }
++        }
++
++      m88ds3103_writereg(state, 0xa2, data);
++
++      return 0;
++}
++
++static int m88ds3103_read_status(struct dvb_frontend *fe, fe_status_t* status)
++{
++      struct m88ds3103_state *state = fe->demodulator_priv;
++      int lock = 0;
++      
++      *status = 0;
++      
++      switch (state->delivery_system){
++      case SYS_DVBS:
++              lock = m88ds3103_readreg(state, 0xd1);
++              dprintk("%s: SYS_DVBS status=%x.\n", __func__, lock);
++              
++              if ((lock & 0x07) == 0x07){
++                      /*if((m88ds3103_readreg(state, 0x0d) & 0x07) == 0x07)*/
++                              *status = FE_HAS_SIGNAL | FE_HAS_CARRIER 
++                                      | FE_HAS_VITERBI | FE_HAS_SYNC | FE_HAS_LOCK;
++                      
++              }
++              break;
++      case SYS_DVBS2:
++              lock = m88ds3103_readreg(state, 0x0d);
++              dprintk("%s: SYS_DVBS2 status=%x.\n", __func__, lock);
++
++              if ((lock & 0x8f) == 0x8f)
++                      *status = FE_HAS_SIGNAL | FE_HAS_CARRIER 
++                              | FE_HAS_VITERBI | FE_HAS_SYNC | FE_HAS_LOCK;
++                      
++              break;
++      default:
++              break;
++      }
++
++      return 0;
++}
++
++static int m88ds3103_read_ber(struct dvb_frontend *fe, u32* ber)
++{
++      struct m88ds3103_state *state = fe->demodulator_priv;
++      u8 tmp1, tmp2, tmp3;
++      u32 ldpc_frame_cnt, pre_err_packags, code_rate_fac = 0;
++
++      dprintk("%s()\n", __func__);
++
++      switch (state->delivery_system) {
++      case SYS_DVBS:
++              m88ds3103_writereg(state, 0xf9, 0x04);
++              tmp3 = m88ds3103_readreg(state, 0xf8);
++              if ((tmp3&0x10) == 0){
++                      tmp1 = m88ds3103_readreg(state, 0xf7);
++                      tmp2 = m88ds3103_readreg(state, 0xf6);
++                      tmp3 |= 0x10;
++                      m88ds3103_writereg(state, 0xf8, tmp3);
++                      state->preBer = (tmp1<<8) | tmp2;
++              }
++              break;
++      case SYS_DVBS2:
++              tmp1 = m88ds3103_readreg(state, 0x7e) & 0x0f;
++              switch(tmp1){
++              case 0: code_rate_fac = 16008 - 80; break;
++              case 1: code_rate_fac = 21408 - 80; break;
++              case 2: code_rate_fac = 25728 - 80; break;
++              case 3: code_rate_fac = 32208 - 80; break;
++              case 4: code_rate_fac = 38688 - 80; break;
++              case 5: code_rate_fac = 43040 - 80; break;
++              case 6: code_rate_fac = 48408 - 80; break;
++              case 7: code_rate_fac = 51648 - 80; break;
++              case 8: code_rate_fac = 53840 - 80; break;
++              case 9: code_rate_fac = 57472 - 80; break;
++              case 10: code_rate_fac = 58192 - 80; break;
++              }
++              
++              tmp1 = m88ds3103_readreg(state, 0xd7) & 0xff;
++              tmp2 = m88ds3103_readreg(state, 0xd6) & 0xff;
++              tmp3 = m88ds3103_readreg(state, 0xd5) & 0xff;           
++              ldpc_frame_cnt = (tmp1 << 16) | (tmp2 << 8) | tmp3;
++
++              tmp1 = m88ds3103_readreg(state, 0xf8) & 0xff;
++              tmp2 = m88ds3103_readreg(state, 0xf7) & 0xff;
++              pre_err_packags = tmp1<<8 | tmp2;
++              
++              if (ldpc_frame_cnt > 1000){
++                      m88ds3103_writereg(state, 0xd1, 0x01);
++                      m88ds3103_writereg(state, 0xf9, 0x01);
++                      m88ds3103_writereg(state, 0xf9, 0x00);
++                      m88ds3103_writereg(state, 0xd1, 0x00);
++                      state->preBer = pre_err_packags;
++              }                               
++              break;
++      default:
++              break;
++      }
++      *ber = state->preBer;
++      
++      return 0;
++}
++
++static int m88ds3103_read_signal_strength(struct dvb_frontend *fe,
++                                              u16 *signal_strength)
++{
++      struct m88ds3103_state *state = fe->demodulator_priv;
++      u16 gain;
++      u8 gain1, gain2, gain3 = 0;
++
++      dprintk("%s()\n", __func__);
++
++      gain1 = m88ds3103_tuner_readreg(state, 0x3d) & 0x1f;
++      dprintk("%s: gain1 = 0x%02x \n", __func__, gain1);
++      
++      if (gain1 > 15) gain1 = 15;
++      gain2 = m88ds3103_tuner_readreg(state, 0x21) & 0x1f;
++      dprintk("%s: gain2 = 0x%02x \n", __func__, gain2);
++      
++      if(state->tuner_id == TS2022_ID){
++              gain3 = (m88ds3103_tuner_readreg(state, 0x66)>>3) & 0x07;
++              dprintk("%s: gain3 = 0x%02x \n", __func__, gain3);
++              
++              if (gain2 > 16) gain2 = 16;
++              if (gain2 < 2) gain2 = 2;                       
++              if (gain3 > 6) gain3 = 6;
++      }else{
++              if (gain2 > 13) gain2 = 13;
++              gain3 = 0;
++      }
++
++      gain = gain1*23 + gain2*35 + gain3*29;
++      *signal_strength = 60000 - gain*55;
++
++      return 0;
++}
++
++
++static int m88ds3103_read_snr(struct dvb_frontend *fe, u16 *p_snr)
++{
++      struct m88ds3103_state *state = fe->demodulator_priv;
++      u8 val, npow1, npow2, spow1, cnt;
++      u16 tmp, snr;
++      u32 npow, spow, snr_total;      
++      static const u16 mes_log10[] ={
++              0,      3010,   4771,   6021,   6990,   7781,   8451,   9031,   9542,   10000,
++              10414,  10792,  11139,  11461,  11761,  12041,  12304,  12553,  12788,  13010,
++              13222,  13424,  13617,  13802,  13979,  14150,  14314,  14472,  14624,  14771,
++              14914,  15052,  15185,  15315,  15441,  15563,  15682,  15798,  15911,  16021,
++              16128,  16232,  16335,  16435,  16532,  16628,  16721,  16812,  16902,  16990,
++              17076,  17160,  17243,  17324,  17404,  17482,  17559,  17634,  17709,  17782,
++              17853,  17924,  17993,  18062,  18129,  18195,  18261,  18325,  18388,  18451,
++              18513,  18573,  18633,  18692,  18751,  18808,  18865,  18921,  18976,  19031
++      };
++      static const u16 mes_loge[] ={
++              0,      6931,   10986,  13863,  16094,  17918,  19459,  20794,  21972,  23026,
++              23979,  24849,  25649,  26391,  27081,  27726,  28332,  28904,  29444,  29957,
++              30445,  30910,  31355,  31781,  32189,  32581,  32958,  33322,  33673,  34012,
++              34340,  34657,
++      };
++
++      dprintk("%s()\n", __func__);
++
++      snr = 0;
++      
++      switch (state->delivery_system){
++      case SYS_DVBS:
++              cnt = 10; snr_total = 0;
++              while(cnt > 0){
++                      val = m88ds3103_readreg(state, 0xff);
++                      snr_total += val;
++                      cnt--;
++              }
++              tmp = (u16)(snr_total/80);
++              if(tmp > 0){
++                      if (tmp > 32) tmp = 32;
++                      snr = (mes_loge[tmp - 1] * 100) / 45;
++              }else{
++                      snr = 0;
++              }
++              break;
++      case SYS_DVBS2:
++              cnt  = 10; npow = 0; spow = 0;
++              while(cnt >0){
++                      npow1 = m88ds3103_readreg(state, 0x8c) & 0xff;
++                      npow2 = m88ds3103_readreg(state, 0x8d) & 0xff;
++                      npow += (((npow1 & 0x3f) + (u16)(npow2 << 6)) >> 2);
++
++                      spow1 = m88ds3103_readreg(state, 0x8e) & 0xff;
++                      spow += ((spow1 * spow1) >> 1);
++                      cnt--;
++              }
++              npow /= 10; spow /= 10;
++              if(spow == 0){
++                      snr = 0;
++              }else if(npow == 0){
++                      snr = 19;
++              }else{
++                      if(spow > npow){
++                              tmp = (u16)(spow / npow);
++                              if (tmp > 80) tmp = 80;
++                              snr = mes_log10[tmp - 1]*3;
++                      }else{
++                              tmp = (u16)(npow / spow);
++                              if (tmp > 80) tmp = 80;
++                              snr = -(mes_log10[tmp - 1] / 1000);
++                      }
++              }                       
++              break;
++      default:
++              break;
++      }
++      *p_snr = snr;
++
++      return 0;
++}
++
++
++static int m88ds3103_read_ucblocks(struct dvb_frontend *fe, u32 *ucblocks)
++{
++      struct m88ds3103_state *state = fe->demodulator_priv;
++      u8 tmp1, tmp2, tmp3, data;
++
++      dprintk("%s()\n", __func__);
++
++      switch (state->delivery_system) {
++      case SYS_DVBS:
++              data = m88ds3103_readreg(state, 0xf8);
++              data |= 0x40;
++              m88ds3103_writereg(state, 0xf8, data);          
++              tmp1 = m88ds3103_readreg(state, 0xf5);
++              tmp2 = m88ds3103_readreg(state, 0xf4);
++              *ucblocks = (tmp1 <<8) | tmp2;          
++              data &= ~0x20;
++              m88ds3103_writereg(state, 0xf8, data);
++              data |= 0x20;
++              m88ds3103_writereg(state, 0xf8, data);
++              data &= ~0x40;
++              m88ds3103_writereg(state, 0xf8, data);
++              break;
++      case SYS_DVBS2:
++              tmp1 = m88ds3103_readreg(state, 0xda);
++              tmp2 = m88ds3103_readreg(state, 0xd9);
++              tmp3 = m88ds3103_readreg(state, 0xd8);
++              *ucblocks = (tmp1 <<16)|(tmp2 <<8)|tmp3;
++              data = m88ds3103_readreg(state, 0xd1);
++              data |= 0x01;
++              m88ds3103_writereg(state, 0xd1, data);
++              data &= ~0x01;
++              m88ds3103_writereg(state, 0xd1, data);
++              break;
++      default:
++              break;
++      }
++      return 0;
++}
++
++static int m88ds3103_set_tone(struct dvb_frontend *fe, fe_sec_tone_mode_t tone)
++{
++      struct m88ds3103_state *state = fe->demodulator_priv;
++      u8 data_a1, data_a2;
++
++      dprintk("%s(%d)\n", __func__, tone);
++      if ((tone != SEC_TONE_ON) && (tone != SEC_TONE_OFF)) {
++              printk(KERN_ERR "%s: Invalid, tone=%d\n", __func__, tone);
++              return -EINVAL;
++      }
++
++      data_a1 = m88ds3103_readreg(state, 0xa1);
++      data_a2 = m88ds3103_readreg(state, 0xa2);
++      if(state->demod_id == DS3103_ID)
++              data_a2 &= 0xdf; /* Normal mode */
++      switch (tone) {
++      case SEC_TONE_ON:
++              dprintk("%s: SEC_TONE_ON\n", __func__);
++              data_a1 |= 0x04;
++              data_a1 &= ~0x03;
++              data_a1 &= ~0x40;
++              data_a2 &= ~0xc0;
++              break;
++      case SEC_TONE_OFF:
++              dprintk("%s: SEC_TONE_OFF\n", __func__);
++              data_a2 &= ~0xc0;
++              data_a2 |= 0x80;
++              break;
++      }
++      m88ds3103_writereg(state, 0xa2, data_a2);
++      m88ds3103_writereg(state, 0xa1, data_a1);
++      return 0;
++}
++
++static int m88ds3103_send_diseqc_msg(struct dvb_frontend *fe,
++                              struct dvb_diseqc_master_cmd *d)
++{
++      struct m88ds3103_state *state = fe->demodulator_priv;
++      int i, ret = 0;
++      u8 tmp, time_out;
++
++      /* Dump DiSEqC message */
++      if (debug) {
++              printk(KERN_INFO "m88ds3103: %s(", __func__);
++              for (i = 0 ; i < d->msg_len ;) {
++                      printk(KERN_INFO "0x%02x", d->msg[i]);
++                      if (++i < d->msg_len)
++                              printk(KERN_INFO ", ");
++              }
++      }
++
++      tmp = m88ds3103_readreg(state, 0xa2);
++      tmp &= ~0xc0;
++      if(state->demod_id == DS3103_ID)
++              tmp &= ~0x20;
++      m88ds3103_writereg(state, 0xa2, tmp);
++      
++      for (i = 0; i < d->msg_len; i ++)
++              m88ds3103_writereg(state, (0xa3+i), d->msg[i]);
++
++      tmp = m88ds3103_readreg(state, 0xa1);   
++      tmp &= ~0x38;
++      tmp &= ~0x40;
++      tmp |= ((d->msg_len-1) << 3) | 0x07;
++      tmp &= ~0x80;
++      m88ds3103_writereg(state, 0xa1, tmp);
++      /*      1.5 * 9 * 8     = 108ms */
++      time_out = 150;
++      while (time_out > 0){
++              msleep(10);
++              time_out -= 10;
++              tmp = m88ds3103_readreg(state, 0xa1);           
++              if ((tmp & 0x40) == 0)
++                      break;
++      }
++      if (time_out == 0){
++              tmp = m88ds3103_readreg(state, 0xa1);
++              tmp &= ~0x80;
++              tmp |= 0x40;
++              m88ds3103_writereg(state, 0xa1, tmp);
++              ret = 1;
++      }
++      tmp = m88ds3103_readreg(state, 0xa2);
++      tmp &= ~0xc0;
++      tmp |= 0x80;
++      m88ds3103_writereg(state, 0xa2, tmp);   
++      return ret;
++}
++
++
++static int m88ds3103_diseqc_send_burst(struct dvb_frontend *fe,
++                                      fe_sec_mini_cmd_t burst)
++{
++      struct m88ds3103_state *state = fe->demodulator_priv;
++      u8      val, time_out;
++      
++      dprintk("%s()\n", __func__);
++
++      val = m88ds3103_readreg(state, 0xa2);
++      val &= ~0xc0;
++      if(state->demod_id == DS3103_ID)
++              val &= 0xdf; /* Normal mode */
++      m88ds3103_writereg(state, 0xa2, val);
++      /* DiSEqC burst */
++      if (burst == SEC_MINI_B)
++              m88ds3103_writereg(state, 0xa1, 0x01);
++      else
++              m88ds3103_writereg(state, 0xa1, 0x02);
++
++      msleep(13);
++
++      time_out = 5;
++      do{
++              val = m88ds3103_readreg(state, 0xa1);
++              if ((val & 0x40) == 0)
++                      break;
++              msleep(1);
++              time_out --;
++      } while (time_out > 0);
++
++      val = m88ds3103_readreg(state, 0xa2);
++      val &= ~0xc0;
++      val |= 0x80;
++      m88ds3103_writereg(state, 0xa2, val);
++      
++      return 0;
++}
++
++static void m88ds3103_release(struct dvb_frontend *fe)
++{
++      struct m88ds3103_state *state = fe->demodulator_priv;
++
++      dprintk("%s\n", __func__);
++      kfree(state);
++}
++
++static int m88ds3103_check_id(struct m88ds3103_state *state)
++{
++      int val_00, val_01;
++      
++      /*check demod id*/
++      val_01 = m88ds3103_readreg(state, 0x01);
++      printk(KERN_INFO "DS3000 chip version: %x attached.\n", val_01);
++                      
++      if(val_01 == 0xD0)
++              state->demod_id = DS3103_ID;
++      else if(val_01 == 0xC0)
++              state->demod_id = DS3000_ID;
++      else
++              state->demod_id = UNKNOW_ID;
++              
++      /*check tuner id*/
++      val_00 = m88ds3103_tuner_readreg(state, 0x00);
++      printk(KERN_INFO "TS202x chip version[1]: %x attached.\n", val_00);
++      val_00 &= 0x03;
++      if(val_00 == 0)
++      {
++              m88ds3103_tuner_writereg(state, 0x00, 0x01);
++              msleep(3);              
++      }
++      m88ds3103_tuner_writereg(state, 0x00, 0x03);
++      msleep(5);
++      
++      val_00 = m88ds3103_tuner_readreg(state, 0x00);
++      printk(KERN_INFO "TS202x chip version[2]: %x attached.\n", val_00);
++      val_00 &= 0xff;
++      if((val_00 == 0x01) || (val_00 == 0x41) || (val_00 == 0x81))
++              state->tuner_id = TS2020_ID;
++      else if(((val_00 & 0xc0)== 0xc0) || (val_00 == 0x83))
++              state->tuner_id = TS2022_ID;
++      else
++              state->tuner_id = UNKNOW_ID;
++                      
++      return state->demod_id; 
++}
++
++static struct dvb_frontend_ops m88ds3103_ops;
++static int m88ds3103_initilaze(struct dvb_frontend *fe);
++
++struct dvb_frontend *m88ds3103_attach(const struct m88ds3103_config *config,
++                                  struct i2c_adapter *i2c)
++{
++      struct m88ds3103_state *state = NULL;
++
++      dprintk("%s\n", __func__);
++
++      /* allocate memory for the internal state */
++      state = kzalloc(sizeof(struct m88ds3103_state), GFP_KERNEL);
++      if (state == NULL) {
++              printk(KERN_ERR "Unable to kmalloc\n");
++              goto error2;
++      }
++
++      state->config = config;
++      state->i2c = i2c;
++      state->preBer = 0xffff;
++      state->delivery_system = SYS_DVBS; /*Default to DVB-S.*/
++      
++      /* check demod id */
++      if(m88ds3103_check_id(state) == UNKNOW_ID){
++              printk(KERN_ERR "Unable to find Montage chip\n");
++              goto error3;
++      }
++
++      memcpy(&state->frontend.ops, &m88ds3103_ops,
++                      sizeof(struct dvb_frontend_ops));
++      state->frontend.demodulator_priv = state;
++      
++      m88ds3103_initilaze(&state->frontend);
++      
++      return &state->frontend;
++
++error3:
++      kfree(state);
++error2:
++      return NULL;
++}
++EXPORT_SYMBOL(m88ds3103_attach);
++
++static int m88ds3103_set_carrier_offset(struct dvb_frontend *fe,
++                                      s32 carrier_offset_khz)
++{
++      struct m88ds3103_state *state = fe->demodulator_priv;
++      s32 tmp;
++
++      tmp = carrier_offset_khz;
++      tmp *= 65536;
++      
++      tmp = (2*tmp + MT_FE_MCLK_KHZ) / (2*MT_FE_MCLK_KHZ);
++
++      if (tmp < 0)
++              tmp += 65536;
++
++      m88ds3103_writereg(state, 0x5f, tmp >> 8);
++      m88ds3103_writereg(state, 0x5e, tmp & 0xff);
++
++      return 0;
++}
++
++static int m88ds3103_set_symrate(struct dvb_frontend *fe)
++{
++      struct m88ds3103_state *state = fe->demodulator_priv;
++      struct dtv_frontend_properties *c = &fe->dtv_property_cache;
++      u16 value;
++      
++      value = (((c->symbol_rate / 1000) << 15) + (MT_FE_MCLK_KHZ / 4)) / (MT_FE_MCLK_KHZ / 2);
++      m88ds3103_writereg(state, 0x61, value & 0x00ff);
++      m88ds3103_writereg(state, 0x62, (value & 0xff00) >> 8);
++
++      return 0;
++}
++
++static int m88ds3103_set_CCI(struct dvb_frontend *fe)
++{
++      struct m88ds3103_state *state = fe->demodulator_priv;
++      u8 tmp;
++
++      tmp = m88ds3103_readreg(state, 0x56);
++      tmp &= ~0x01;
++      m88ds3103_writereg(state, 0x56, tmp);
++
++      tmp = m88ds3103_readreg(state, 0x76);
++      tmp &= ~0x80;
++      m88ds3103_writereg(state, 0x76, tmp);
++
++      return 0;
++}
++
++static int m88ds3103_init_reg(struct m88ds3103_state *state, const u8 *p_reg_tab, u32 size)
++{
++      u32 i;
++      
++      for(i = 0; i < size; i+=2)
++              m88ds3103_writereg(state, p_reg_tab[i], p_reg_tab[i+1]);
++              
++      return 0;
++}
++
++static int m88ds3103_get_locked_sym_rate(struct m88ds3103_state *state, u32 *sym_rate_KSs)
++{
++      u16     tmp;
++      u32     sym_rate_tmp;
++      u8      val_0x6d, val_0x6e;
++
++      val_0x6d = m88ds3103_readreg(state, 0x6d);
++      val_0x6e = m88ds3103_readreg(state, 0x6e);
++
++      tmp = (u16)((val_0x6e<<8) | val_0x6d);
++
++      sym_rate_tmp = (u32)(tmp * MT_FE_MCLK_KHZ);
++      sym_rate_tmp = (u32)(sym_rate_tmp / (1<<16));
++      *sym_rate_KSs = sym_rate_tmp;
++
++      return 0;
++}
++
++static int m88ds3103_get_channel_info(struct m88ds3103_state *state, u8 *p_mode, u8 *p_coderate)
++{
++      u8      tmp, val_0x7E;
++
++      if(state->delivery_system == SYS_DVBS2){
++              val_0x7E = m88ds3103_readreg(state, 0x7e);
++              tmp = (u8)((val_0x7E&0xC0) >> 6);
++              *p_mode = tmp;
++              tmp = (u8)(val_0x7E & 0x0f);
++              *p_coderate = tmp;
++      } else {
++              *p_mode = 0;
++              tmp = m88ds3103_readreg(state, 0xe6);           
++              tmp = (u8)(tmp >> 5);
++              *p_coderate = tmp;
++      }
++      
++      return 0;
++}
++
++static int m88ds3103_set_clock_ratio(struct m88ds3103_state *state)
++{
++      u8      val, mod_fac, tmp1, tmp2;
++      u32     input_datarate, locked_sym_rate_KSs;
++      u32 MClk_KHz = 96000;
++      u8 mod_mode, code_rate, divid_ratio = 0;
++
++      locked_sym_rate_KSs = 0;
++      m88ds3103_get_locked_sym_rate(state, &locked_sym_rate_KSs);
++      if(locked_sym_rate_KSs == 0)
++              return 0;
++
++      m88ds3103_get_channel_info(state, &mod_mode, &code_rate);
++
++      if (state->delivery_system == SYS_DVBS2)
++      {
++              switch(mod_mode) {
++                      case 1: mod_fac = 3; break;
++                      case 2: mod_fac = 4; break;
++                      case 3: mod_fac = 5; break;
++                      default: mod_fac = 2; break;
++              }
++
++              switch(code_rate) {
++                      case 0: input_datarate = locked_sym_rate_KSs*mod_fac/8/4; break;
++                      case 1: input_datarate = locked_sym_rate_KSs*mod_fac/8/3;       break;
++                      case 2: input_datarate = locked_sym_rate_KSs*mod_fac*2/8/5;     break;
++                      case 3: input_datarate = locked_sym_rate_KSs*mod_fac/8/2;       break;
++                      case 4: input_datarate = locked_sym_rate_KSs*mod_fac*3/8/5;     break;
++                      case 5: input_datarate = locked_sym_rate_KSs*mod_fac*2/8/3;     break;
++                      case 6: input_datarate = locked_sym_rate_KSs*mod_fac*3/8/4;     break;
++                      case 7: input_datarate = locked_sym_rate_KSs*mod_fac*4/8/5;     break;
++                      case 8: input_datarate = locked_sym_rate_KSs*mod_fac*5/8/6;     break;
++                      case 9: input_datarate = locked_sym_rate_KSs*mod_fac*8/8/9;     break;
++                      case 10: input_datarate = locked_sym_rate_KSs*mod_fac*9/8/10; break;
++                      default: input_datarate = locked_sym_rate_KSs*mod_fac*2/8/3; break;
++              }
++
++              if(state->demod_id == DS3000_ID)
++                      input_datarate = input_datarate * 115 / 100;
++
++              if(input_datarate < 4800)  {tmp1 = 15;tmp2 = 15;} //4.8MHz         TS clock
++              else if(input_datarate < 4966)  {tmp1 = 14;tmp2 = 15;} //4.966MHz  TS clock
++              else if(input_datarate < 5143)  {tmp1 = 14;tmp2 = 14;} //5.143MHz  TS clock
++              else if(input_datarate < 5333)  {tmp1 = 13;tmp2 = 14;} //5.333MHz  TS clock
++              else if(input_datarate < 5538)  {tmp1 = 13;tmp2 = 13;} //5.538MHz  TS clock
++              else if(input_datarate < 5760)  {tmp1 = 12;tmp2 = 13;} //5.76MHz   TS clock       allan 0809
++              else if(input_datarate < 6000)  {tmp1 = 12;tmp2 = 12;} //6MHz      TS clock
++              else if(input_datarate < 6260)  {tmp1 = 11;tmp2 = 12;} //6.26MHz   TS clock
++              else if(input_datarate < 6545)  {tmp1 = 11;tmp2 = 11;} //6.545MHz  TS clock
++              else if(input_datarate < 6857)  {tmp1 = 10;tmp2 = 11;} //6.857MHz  TS clock
++              else if(input_datarate < 7200)  {tmp1 = 10;tmp2 = 10;} //7.2MHz    TS clock
++              else if(input_datarate < 7578)  {tmp1 = 9;tmp2 = 10;}  //7.578MHz  TS clock
++              else if(input_datarate < 8000)  {tmp1 = 9;tmp2 = 9;}   //8MHz      TS clock
++              else if(input_datarate < 8470)  {tmp1 = 8;tmp2 = 9;}   //8.47MHz   TS clock
++              else if(input_datarate < 9000)  {tmp1 = 8;tmp2 = 8;}   //9MHz      TS clock
++              else if(input_datarate < 9600)  {tmp1 = 7;tmp2 = 8;}   //9.6MHz    TS clock
++              else if(input_datarate < 10285) {tmp1 = 7;tmp2 = 7;}   //10.285MHz TS clock
++              else if(input_datarate < 12000) {tmp1 = 6;tmp2 = 6;}   //12MHz     TS clock
++              else if(input_datarate < 14400) {tmp1 = 5;tmp2 = 5;}   //14.4MHz   TS clock
++              else if(input_datarate < 18000) {tmp1 = 4;tmp2 = 4;}   //18MHz     TS clock
++              else                                                    {tmp1 = 3;tmp2 = 3;}   //24MHz     TS clock
++
++              if(state->demod_id == DS3000_ID) {
++                      val = (u8)((tmp1<<4) + tmp2);
++                      m88ds3103_writereg(state, 0xfe, val);
++              } else {
++                      tmp1 = m88ds3103_readreg(state, 0x22);
++                      tmp2 = m88ds3103_readreg(state, 0x24);
++
++                      tmp1 >>= 6;
++                      tmp1 &= 0x03;
++                      tmp2 >>= 6;
++                      tmp2 &= 0x03;
++
++                      if((tmp1 == 0x00) && (tmp2 == 0x01))
++                              MClk_KHz = 144000;
++                      else if((tmp1 == 0x00) && (tmp2 == 0x03))
++                              MClk_KHz = 72000;
++                      else if((tmp1 == 0x01) && (tmp2 == 0x01))
++                              MClk_KHz = 115200;
++                      else if((tmp1 == 0x02) && (tmp2 == 0x01))
++                              MClk_KHz = 96000;
++                      else if((tmp1 == 0x03) && (tmp2 == 0x00))
++                              MClk_KHz = 192000;
++                      else
++                              return 0;
++
++                      if(input_datarate < 5200) /*Max. 2011-12-23 11:55*/
++                              input_datarate = 5200;
++                              
++                      if(input_datarate != 0)
++                              divid_ratio = (u8)(MClk_KHz / input_datarate);
++                      else
++                              divid_ratio = 0xFF;
++
++                      if(divid_ratio > 128)
++                              divid_ratio = 128;
++
++                      if(divid_ratio < 2)
++                              divid_ratio = 2;
++
++                      tmp1 = (u8)(divid_ratio / 2);
++                      tmp2 = (u8)(divid_ratio / 2);
++
++                      if((divid_ratio % 2) != 0)
++                              tmp2 += 1;
++
++                      tmp1 -= 1;
++                      tmp2 -= 1;
++
++                      tmp1 &= 0x3f;
++                      tmp2 &= 0x3f;
++
++                      val = m88ds3103_readreg(state, 0xfe);
++                      val &= 0xF0;
++                      val |= (tmp2 >> 2) & 0x0f;
++                      m88ds3103_writereg(state, 0xfe, val);
++
++                      val = (u8)((tmp2 & 0x03) << 6); 
++                      val |= tmp1;
++                      m88ds3103_writereg(state, 0xea, val);
++              }
++      } else {
++              mod_fac = 2;
++
++              switch(code_rate) {
++                      case 4: input_datarate = locked_sym_rate_KSs*mod_fac/2/8;       break;
++                      case 3: input_datarate = locked_sym_rate_KSs*mod_fac*2/3/8;     break;
++                      case 2: input_datarate = locked_sym_rate_KSs*mod_fac*3/4/8;     break;
++                      case 1: input_datarate = locked_sym_rate_KSs*mod_fac*5/6/8;     break;
++                      case 0: input_datarate = locked_sym_rate_KSs*mod_fac*7/8/8;     break;
++                      default: input_datarate = locked_sym_rate_KSs*mod_fac*3/4/8;    break;
++              }
++
++              if(state->demod_id == DS3000_ID)
++                      input_datarate = input_datarate * 115 / 100;
++
++              if(input_datarate < 6857)               {tmp1 = 7;tmp2 = 7;} //6.857MHz     TS clock
++              else if(input_datarate < 7384)  {tmp1 = 6;tmp2 = 7;} //7.384MHz     TS clock
++              else if(input_datarate < 8000)  {tmp1 = 6;tmp2 = 6;} //8MHz             TS clock
++              else if(input_datarate < 8727)  {tmp1 = 5;tmp2 = 6;} //8.727MHz         TS clock
++              else if(input_datarate < 9600)  {tmp1 = 5;tmp2 = 5;} //9.6MHz           TS clock
++              else if(input_datarate < 10666) {tmp1 = 4;tmp2 = 5;} //10.666MHz        TS clock
++              else if(input_datarate < 12000) {tmp1 = 4;tmp2 = 4;} //12MHz            TS clock
++              else if(input_datarate < 13714) {tmp1 = 3;tmp2 = 4;} //13.714MHz        TS clock
++              else if(input_datarate < 16000) {tmp1 = 3;tmp2 = 3;} //16MHz            TS clock
++              else if(input_datarate < 19200) {tmp1 = 2;tmp2 = 3;} //19.2MHz          TS clock
++              else                                                    {tmp1 = 2;tmp2 = 2;} //24MHz            TS clock
++
++              if(state->demod_id == DS3000_ID) {
++                      val = m88ds3103_readreg(state, 0xfe);
++                      val &= 0xc0;
++                      val |= ((u8)((tmp1<<3) + tmp2));
++                      m88ds3103_writereg(state, 0xfe, val);
++              } else {
++                      if(input_datarate < 5200) /*Max. 2011-12-23 11:55*/
++                              input_datarate = 5200;
++                      
++                      if(input_datarate != 0)
++                              divid_ratio = (u8)(MClk_KHz / input_datarate);
++                      else
++                              divid_ratio = 0xFF;
++
++                      if(divid_ratio > 128)
++                              divid_ratio = 128;
++
++                      if(divid_ratio < 2)
++                              divid_ratio = 2;
++
++                      tmp1 = (u8)(divid_ratio / 2);
++                      tmp2 = (u8)(divid_ratio / 2);
++
++                      if((divid_ratio % 2) != 0)
++                              tmp2 += 1;
++
++                      tmp1 -= 1;
++                      tmp2 -= 1;
++
++                      tmp1 &= 0x3f;
++                      tmp2 &= 0x3f;
++
++                      val = m88ds3103_readreg(state, 0xfe);
++                      val &= 0xF0;
++                      val |= (tmp2 >> 2) & 0x0f;
++                      m88ds3103_writereg(state, 0xfe, val);
++                      
++                      val = (u8)((tmp2 & 0x03) << 6);
++                      val |= tmp1;
++                      m88ds3103_writereg(state, 0xea, val);
++              }
++      }
++      return 0;
++}
++
++static int m88ds3103_demod_connect(struct dvb_frontend *fe, s32 carrier_offset_khz) 
++{
++      struct m88ds3103_state *state = fe->demodulator_priv;
++      struct dtv_frontend_properties *c = &fe->dtv_property_cache;
++      u16 value;
++      u8 val1,val2,data;
++      
++      dprintk("connect delivery system = %d\n", state->delivery_system);
++      
++      /* ds3000 global reset */
++      m88ds3103_writereg(state, 0x07, 0x80);
++      m88ds3103_writereg(state, 0x07, 0x00);
++      /* ds3000 build-in uC reset */
++      m88ds3103_writereg(state, 0xb2, 0x01);
++      /* ds3000 software reset */
++      m88ds3103_writereg(state, 0x00, 0x01);
++
++      switch (state->delivery_system) {
++      case SYS_DVBS:
++              /* initialise the demod in DVB-S mode */
++              if(state->demod_id == DS3000_ID){
++                      m88ds3103_init_reg(state, ds3000_dvbs_init_tab, sizeof(ds3000_dvbs_init_tab));
++                      
++                      value = m88ds3103_readreg(state, 0xfe);
++                      value &= 0xc0;
++                      value |= 0x1b;
++                      m88ds3103_writereg(state, 0xfe, value);
++                      
++                      if(state->config->ci_mode)
++                              val1 = 0x80;
++                      else if(state->config->ts_mode)
++                              val1 = 0x60;
++                      else
++                              val1 = 0x20;
++                      m88ds3103_writereg(state, 0xfd, val1);
++                      
++              }else if(state->demod_id == DS3103_ID){
++                      m88ds3103_init_reg(state, ds3103_dvbs_init_tab, sizeof(ds3103_dvbs_init_tab));
++                      
++                      /* set ts clock */
++                      if(state->config->ci_mode == 2){
++                              val1 = 6; val2 = 6;
++                      }else if(state->config->ts_mode == 0)   {
++                              val1 = 3; val2 = 3;
++                      }else{
++                              val1 = 0; val2 = 0;
++                      }
++                      val1 -= 1; val2 -= 1;
++                      val1 &= 0x3f; val2 &= 0x3f;
++                      data = m88ds3103_readreg(state, 0xfe);
++                      data &= 0xf0;
++                      data |= (val2 >> 2) & 0x0f;
++                      m88ds3103_writereg(state, 0xfe, data);
++                      data = (val2 & 0x03) << 6;
++                      data |= val1;
++                      m88ds3103_writereg(state, 0xea, data);
++                      
++                      m88ds3103_writereg(state, 0x4d, 0xfd & m88ds3103_readreg(state, 0x4d));
++                      m88ds3103_writereg(state, 0x30, 0xef & m88ds3103_readreg(state, 0x30));
++                      
++                      /* set master clock */
++                      val1 = m88ds3103_readreg(state, 0x22);
++                      val2 = m88ds3103_readreg(state, 0x24);
++                      
++                      val1 &= 0x3f;
++                      val2 &= 0x3f;
++                      val1 |= 0x80;
++                      val2 |= 0x40;
++
++                      m88ds3103_writereg(state, 0x22, val1);
++                      m88ds3103_writereg(state, 0x24, val2);  
++                      
++                      if(state->config->ci_mode)
++                              val1 = 0x03;
++                      else if(state->config->ts_mode)
++                              val1 = 0x06;
++                      else
++                              val1 = 0x42;
++                      m88ds3103_writereg(state, 0xfd, val1);          
++              }
++              break;
++      case SYS_DVBS2:
++              /* initialise the demod in DVB-S2 mode */
++              if(state->demod_id == DS3000_ID){
++                      m88ds3103_init_reg(state, ds3000_dvbs2_init_tab, sizeof(ds3000_dvbs2_init_tab));
++              
++                      if (c->symbol_rate >= 30000000)
++                              m88ds3103_writereg(state, 0xfe, 0x54);
++                      else
++                              m88ds3103_writereg(state, 0xfe, 0x98);
++                                                              
++              }else if(state->demod_id == DS3103_ID){
++                      m88ds3103_init_reg(state, ds3103_dvbs2_init_tab, sizeof(ds3103_dvbs2_init_tab));
++
++                      /* set ts clock */
++                      if(state->config->ci_mode == 2){
++                              val1 = 6; val2 = 6;
++                      }else if(state->config->ts_mode == 0){
++                              val1 = 5; val2 = 4;
++                      }else{
++                              val1 = 0; val2 = 0;
++                      }
++                      val1 -= 1; val2 -= 1;
++                      val1 &= 0x3f; val2 &= 0x3f;
++                      data = m88ds3103_readreg(state, 0xfe);
++                      data &= 0xf0;
++                      data |= (val2 >> 2) & 0x0f;
++                      m88ds3103_writereg(state, 0xfe, data);
++                      data = (val2 & 0x03) << 6;
++                      data |= val1;
++                      m88ds3103_writereg(state, 0xea, data);
++                      
++                      m88ds3103_writereg(state, 0x4d, 0xfd & m88ds3103_readreg(state, 0x4d));
++                      m88ds3103_writereg(state, 0x30, 0xef & m88ds3103_readreg(state, 0x30));
++                      
++                      /* set master clock */
++                      val1 = m88ds3103_readreg(state, 0x22);
++                      val2 = m88ds3103_readreg(state, 0x24);
++                      
++                      val1 &= 0x3f;
++                      val2 &= 0x3f;
++                      if((state->config->ci_mode == 2) || (state->config->ts_mode == 1)){
++                              val1 |= 0x80;
++                              val2 |= 0x40;
++                      }else{
++                              if (c->symbol_rate >= 28000000){
++                                      val1 |= 0xc0;
++                              }else if (c->symbol_rate >= 18000000){
++                                      val2 |= 0x40;
++                              }else{
++                                      val1 |= 0x80;
++                                      val2 |= 0x40;
++                              }                               
++                      }
++                      m88ds3103_writereg(state, 0x22, val1);
++                      m88ds3103_writereg(state, 0x24, val2);                                  
++              }
++              
++              if(state->config->ci_mode)
++                      val1 = 0x03;
++              else if(state->config->ts_mode)
++                      val1 = 0x06;
++              else
++                      val1 = 0x42;
++              m88ds3103_writereg(state, 0xfd, val1);
++              
++              break;
++      default:
++              return 1;
++      }
++      /* disable 27MHz clock output */
++      m88ds3103_writereg(state, 0x29, 0x80);
++      /* enable ac coupling */
++      m88ds3103_writereg(state, 0x25, 0x8a);
++
++      if ((c->symbol_rate / 1000) <= 3000){
++              m88ds3103_writereg(state, 0xc3, 0x08); /* 8 * 32 * 100 / 64 = 400*/
++              m88ds3103_writereg(state, 0xc8, 0x20);
++              m88ds3103_writereg(state, 0xc4, 0x08); /* 8 * 0 * 100 / 128 = 0*/
++              m88ds3103_writereg(state, 0xc7, 0x00);
++      }else if((c->symbol_rate / 1000) <= 10000){
++              m88ds3103_writereg(state, 0xc3, 0x08); /* 8 * 16 * 100 / 64 = 200*/
++              m88ds3103_writereg(state, 0xc8, 0x10);
++              m88ds3103_writereg(state, 0xc4, 0x08); /* 8 * 0 * 100 / 128 = 0*/
++              m88ds3103_writereg(state, 0xc7, 0x00);
++      }else{
++              m88ds3103_writereg(state, 0xc3, 0x08); /* 8 * 6 * 100 / 64 = 75*/
++              m88ds3103_writereg(state, 0xc8, 0x06);
++              m88ds3103_writereg(state, 0xc4, 0x08); /* 8 * 0 * 100 / 128 = 0*/
++              m88ds3103_writereg(state, 0xc7, 0x00);
++      }
++
++      m88ds3103_set_symrate(fe);
++      
++      m88ds3103_set_CCI(fe);
++
++      m88ds3103_set_carrier_offset(fe, carrier_offset_khz);
++              
++      /* ds3000 out of software reset */
++      m88ds3103_writereg(state, 0x00, 0x00);
++      /* start ds3000 build-in uC */
++      m88ds3103_writereg(state, 0xb2, 0x00);  
++      
++      return 0;
++}
++
++static int m88ds3103_set_frontend(struct dvb_frontend *fe)
++{
++      struct m88ds3103_state *state = fe->demodulator_priv;
++      struct dtv_frontend_properties *c = &fe->dtv_property_cache;
++
++      int i;
++      fe_status_t status;
++      u8 lpf_mxdiv, mlpf_max, mlpf_min, nlpf, div4, capCode, changePLL;
++      s32 offset_khz, lpf_offset_KHz;
++      u16 value, ndiv, lpf_coeff;
++      u32 f3db, gdiv28, realFreq;
++      u8 RFgain;
++
++      dprintk("%s() ", __func__);
++      dprintk("c frequency = %d\n", c->frequency);
++      dprintk("symbol rate = %d\n", c->symbol_rate);
++      dprintk("delivery system = %d\n", c->delivery_system);
++      
++      realFreq = c->frequency;
++      lpf_offset_KHz = 0;
++      if(c->symbol_rate < 5000000){
++              lpf_offset_KHz = FREQ_OFFSET_AT_SMALL_SYM_RATE_KHz;
++              realFreq += FREQ_OFFSET_AT_SMALL_SYM_RATE_KHz;
++      }
++      
++      if (state->config->set_ts_params)
++              state->config->set_ts_params(fe, 0);
++
++      div4 = 0;
++      RFgain = 0;
++      if(state->tuner_id == TS2022_ID){
++              m88ds3103_tuner_writereg(state, 0x10, 0x0a);
++              m88ds3103_tuner_writereg(state, 0x11, 0x40);
++              if (realFreq < 1103000) {
++                      m88ds3103_tuner_writereg(state, 0x10, 0x1b);
++                      div4 = 1;
++                      ndiv = (realFreq * (6 + 8) * 4)/MT_FE_CRYSTAL_KHZ;                              
++              }else {
++                      ndiv = (realFreq * (6 + 8) * 2)/MT_FE_CRYSTAL_KHZ;
++              }
++              ndiv = ndiv + ndiv%2;
++              if(ndiv < 4095)
++                      ndiv = ndiv - 1024;
++              else if (ndiv < 6143)
++                      ndiv = ndiv + 1024;
++              else
++                      ndiv = ndiv + 3072;     
++              
++              m88ds3103_tuner_writereg(state, 0x01, (ndiv & 0x3f00) >> 8);                                                                                    
++      }else{
++              m88ds3103_tuner_writereg(state, 0x10, 0x00);                    
++              if (realFreq < 1146000){
++                      m88ds3103_tuner_writereg(state, 0x10, 0x11);
++                      div4 = 1;
++                      ndiv = (realFreq * (6 + 8) * 4) / MT_FE_CRYSTAL_KHZ;
++              }else{
++                      m88ds3103_tuner_writereg(state, 0x10, 0x01);
++                      ndiv = (realFreq * (6 + 8) * 2) / MT_FE_CRYSTAL_KHZ;
++              }
++              ndiv = ndiv + ndiv%2;
++              ndiv = ndiv - 1024;
++              m88ds3103_tuner_writereg(state, 0x01, (ndiv>>8)&0x0f);
++      }
++      /* set pll */
++      m88ds3103_tuner_writereg(state, 0x02, ndiv & 0x00ff);
++      m88ds3103_tuner_writereg(state, 0x03, 0x06);
++      m88ds3103_tuner_writereg(state, 0x51, 0x0f);
++      m88ds3103_tuner_writereg(state, 0x51, 0x1f);
++      m88ds3103_tuner_writereg(state, 0x50, 0x10);
++      m88ds3103_tuner_writereg(state, 0x50, 0x00);    
++
++      if(state->tuner_id == TS2022_ID){
++              if(( realFreq >= 1650000 ) && (realFreq <= 1850000)){
++                      msleep(5);
++                      value = m88ds3103_tuner_readreg(state, 0x14);
++                      value &= 0x7f;
++                      if(value < 64){
++                              m88ds3103_tuner_writereg(state, 0x10, 0x82);
++                              m88ds3103_tuner_writereg(state, 0x11, 0x6f);
++
++                              m88ds3103_tuner_writereg(state, 0x51, 0x0f);
++                              m88ds3103_tuner_writereg(state, 0x51, 0x1f);
++                              m88ds3103_tuner_writereg(state, 0x50, 0x10);
++                              m88ds3103_tuner_writereg(state, 0x50, 0x00);
++                      }
++              }
++              msleep(5);
++              value = m88ds3103_tuner_readreg(state, 0x14);
++              value &= 0x1f;
++
++              if(value > 19){
++                      value = m88ds3103_tuner_readreg(state, 0x10);
++                      value &= 0x1d;
++                      m88ds3103_tuner_writereg(state, 0x10, value);
++              }                               
++      }else{
++              msleep(5);
++              value = m88ds3103_tuner_readreg(state, 0x66);
++              changePLL = (((value & 0x80) >> 7) != div4);
++
++              if(changePLL){
++                      m88ds3103_tuner_writereg(state, 0x10, 0x11);
++                      div4 = 1;
++                      ndiv = (realFreq * (6 + 8) * 4)/MT_FE_CRYSTAL_KHZ;
++                      ndiv = ndiv + ndiv%2;
++                      ndiv = ndiv - 1024;
++                                      
++                      m88ds3103_tuner_writereg(state, 0x01, (ndiv>>8) & 0x0f);
++                      m88ds3103_tuner_writereg(state, 0x02, ndiv & 0xff);
++                      
++                      m88ds3103_tuner_writereg(state, 0x51, 0x0f);
++                      m88ds3103_tuner_writereg(state, 0x51, 0x1f);
++                      m88ds3103_tuner_writereg(state, 0x50, 0x10);
++                      m88ds3103_tuner_writereg(state, 0x50, 0x00);
++              }               
++      }
++      /*set the RF gain*/
++      if(state->tuner_id == TS2020_ID)
++              m88ds3103_tuner_writereg(state, 0x60, 0x79);
++                      
++      m88ds3103_tuner_writereg(state, 0x51, 0x17);
++      m88ds3103_tuner_writereg(state, 0x51, 0x1f);
++      m88ds3103_tuner_writereg(state, 0x50, 0x08);
++      m88ds3103_tuner_writereg(state, 0x50, 0x00);
++      msleep(5);
++
++      if(state->tuner_id == TS2020_ID){
++              RFgain = m88ds3103_tuner_readreg(state, 0x3d);
++              RFgain &= 0x0f;
++              if(RFgain < 15){
++                      if(RFgain < 4) 
++                              RFgain = 0;
++                      else
++                              RFgain = RFgain -3;
++                      value = ((RFgain << 3) | 0x01) & 0x79;
++                      m88ds3103_tuner_writereg(state, 0x60, value);
++                      m88ds3103_tuner_writereg(state, 0x51, 0x17);
++                      m88ds3103_tuner_writereg(state, 0x51, 0x1f);
++                      m88ds3103_tuner_writereg(state, 0x50, 0x08);
++                      m88ds3103_tuner_writereg(state, 0x50, 0x00);
++              }
++      }
++      
++      /* set the LPF */
++      if(state->tuner_id == TS2022_ID){
++              m88ds3103_tuner_writereg(state, 0x25, 0x00);
++              m88ds3103_tuner_writereg(state, 0x27, 0x70);
++              m88ds3103_tuner_writereg(state, 0x41, 0x09);
++              m88ds3103_tuner_writereg(state, 0x08, 0x0b);
++      }
++
++      f3db = ((c->symbol_rate / 1000) *135) / 200 + 2000;
++      f3db += lpf_offset_KHz;
++      if (f3db < 7000)
++              f3db = 7000;
++      if (f3db > 40000)
++              f3db = 40000;
++                      
++      gdiv28 = (MT_FE_CRYSTAL_KHZ / 1000 * 1694 + 500) / 1000;
++      m88ds3103_tuner_writereg(state, 0x04, gdiv28 & 0xff);
++      m88ds3103_tuner_writereg(state, 0x51, 0x1b);
++      m88ds3103_tuner_writereg(state, 0x51, 0x1f);
++      m88ds3103_tuner_writereg(state, 0x50, 0x04);
++      m88ds3103_tuner_writereg(state, 0x50, 0x00);
++      msleep(5);
++
++      value = m88ds3103_tuner_readreg(state, 0x26);
++      capCode = value & 0x3f;
++      if(state->tuner_id == TS2022_ID){
++              m88ds3103_tuner_writereg(state, 0x41, 0x0d);
++
++              m88ds3103_tuner_writereg(state, 0x51, 0x1b);
++              m88ds3103_tuner_writereg(state, 0x51, 0x1f);
++              m88ds3103_tuner_writereg(state, 0x50, 0x04);
++              m88ds3103_tuner_writereg(state, 0x50, 0x00);
++
++              msleep(2);
++
++              value = m88ds3103_tuner_readreg(state, 0x26);
++              value &= 0x3f;
++              value = (capCode + value) / 2;          
++      }
++      else
++              value = capCode;
++              
++      gdiv28 = gdiv28 * 207 / (value * 2 + 151);      
++      mlpf_max = gdiv28 * 135 / 100;
++      mlpf_min = gdiv28 * 78 / 100;
++      if (mlpf_max > 63)
++              mlpf_max = 63;
++
++      if(state->tuner_id == TS2022_ID)
++              lpf_coeff = 3200;
++      else
++              lpf_coeff = 2766;
++              
++      nlpf = (f3db * gdiv28 * 2 / lpf_coeff / (MT_FE_CRYSTAL_KHZ / 1000)  + 1) / 2 ;  
++      if (nlpf > 23) nlpf = 23;
++      if (nlpf < 1) nlpf = 1;
++
++      lpf_mxdiv = (nlpf * (MT_FE_CRYSTAL_KHZ / 1000) * lpf_coeff * 2 / f3db + 1) / 2;
++
++      if (lpf_mxdiv < mlpf_min){
++              nlpf++;
++              lpf_mxdiv = (nlpf * (MT_FE_CRYSTAL_KHZ / 1000) * lpf_coeff * 2  / f3db + 1) / 2;
++      }
++
++      if (lpf_mxdiv > mlpf_max)
++              lpf_mxdiv = mlpf_max;
++
++      m88ds3103_tuner_writereg(state, 0x04, lpf_mxdiv);
++      m88ds3103_tuner_writereg(state, 0x06, nlpf);
++      m88ds3103_tuner_writereg(state, 0x51, 0x1b);
++      m88ds3103_tuner_writereg(state, 0x51, 0x1f);
++      m88ds3103_tuner_writereg(state, 0x50, 0x04);
++      m88ds3103_tuner_writereg(state, 0x50, 0x00);
++      msleep(5);
++      
++      if(state->tuner_id == TS2022_ID){
++              msleep(2);
++              value = m88ds3103_tuner_readreg(state, 0x26);
++              capCode = value & 0x3f;
++
++              m88ds3103_tuner_writereg(state, 0x41, 0x09);
++
++              m88ds3103_tuner_writereg(state, 0x51, 0x1b);
++              m88ds3103_tuner_writereg(state, 0x51, 0x1f);
++              m88ds3103_tuner_writereg(state, 0x50, 0x04);
++              m88ds3103_tuner_writereg(state, 0x50, 0x00);
++
++              msleep(2);
++              value = m88ds3103_tuner_readreg(state, 0x26);
++              value &= 0x3f;
++              value = (capCode + value) / 2;
++
++              value = value | 0x80;
++              m88ds3103_tuner_writereg(state, 0x25, value);
++              m88ds3103_tuner_writereg(state, 0x27, 0x30);
++
++              m88ds3103_tuner_writereg(state, 0x08, 0x09);            
++      }
++
++      /* Set the BB gain */
++      m88ds3103_tuner_writereg(state, 0x51, 0x1e);
++      m88ds3103_tuner_writereg(state, 0x51, 0x1f);
++      m88ds3103_tuner_writereg(state, 0x50, 0x01);
++      m88ds3103_tuner_writereg(state, 0x50, 0x00);
++      if(state->tuner_id == TS2020_ID){
++              if(RFgain == 15){
++                      msleep(40);
++                      value = m88ds3103_tuner_readreg(state, 0x21);
++                      value &= 0x0f;
++                      if(value < 3){
++                              m88ds3103_tuner_writereg(state, 0x60, 0x61);
++                              m88ds3103_tuner_writereg(state, 0x51, 0x17);
++                              m88ds3103_tuner_writereg(state, 0x51, 0x1f);
++                              m88ds3103_tuner_writereg(state, 0x50, 0x08);
++                              m88ds3103_tuner_writereg(state, 0x50, 0x00);
++                      }                       
++              }
++      }
++      msleep(60);
++      
++      offset_khz = (ndiv - ndiv % 2 + 1024) * MT_FE_CRYSTAL_KHZ
++              / (6 + 8) / (div4 + 1) / 2 - realFreq;
++
++      m88ds3103_demod_connect(fe, offset_khz+lpf_offset_KHz);
++
++      for (i = 0; i < 30 ; i++) {
++              m88ds3103_read_status(fe, &status);
++              if (status & FE_HAS_LOCK){
++                      break;
++                }
++              msleep(20);
++      }
++      
++      if((status & FE_HAS_LOCK) == 0){
++              state->delivery_system = (state->delivery_system == SYS_DVBS) ? SYS_DVBS2 : SYS_DVBS;
++              m88ds3103_demod_connect(fe, offset_khz);
++      
++              for (i = 0; i < 30 ; i++) {
++                      m88ds3103_read_status(fe, &status);
++                      if (status & FE_HAS_LOCK){
++                              break;
++                      }
++                      msleep(20);
++              }
++      }
++      
++      if (status & FE_HAS_LOCK){
++              if(state->config->ci_mode == 2)
++                      m88ds3103_set_clock_ratio(state);
++              if(state->config->start_ctrl){
++                      if(state->first_lock == 0){
++                              state->config->start_ctrl(fe);
++                              state->first_lock = 1;  
++                      }
++              }               
++      }
++              
++      return 0;
++}
++
++static int m88ds3103_tune(struct dvb_frontend *fe,
++                      bool re_tune,
++                      unsigned int mode_flags,
++                      unsigned int *delay,
++                      fe_status_t *status)
++{     
++      *delay = HZ / 5;
++      
++      dprintk("%s() ", __func__);
++      dprintk("re_tune = %d\n", re_tune);
++      
++      if (re_tune) {
++              int ret = m88ds3103_set_frontend(fe);
++              if (ret)
++                      return ret;
++      }
++      
++      return m88ds3103_read_status(fe, status);
++}
++
++static enum dvbfe_algo m88ds3103_get_algo(struct dvb_frontend *fe)
++{
++      return DVBFE_ALGO_HW;
++}
++ 
++ /*
++ * Power config will reset and load initial firmware if required
++ */
++static int m88ds3103_initilaze(struct dvb_frontend *fe)
++{
++      struct m88ds3103_state *state = fe->demodulator_priv;
++      int ret;
++
++      dprintk("%s()\n", __func__);
++      /* hard reset */
++      m88ds3103_writereg(state, 0x07, 0x80);
++      m88ds3103_writereg(state, 0x07, 0x00);
++      msleep(1);
++      
++      m88ds3103_writereg(state, 0x08, 0x01 | m88ds3103_readreg(state, 0x08));
++      msleep(1);
++
++      if(state->tuner_id == TS2020_ID){
++              /* TS2020 init */
++              m88ds3103_tuner_writereg(state, 0x42, 0x73);
++              msleep(2);
++              m88ds3103_tuner_writereg(state, 0x05, 0x01);
++              m88ds3103_tuner_writereg(state, 0x62, 0xb5);
++              m88ds3103_tuner_writereg(state, 0x07, 0x02);
++              m88ds3103_tuner_writereg(state, 0x08, 0x01);
++      }
++      else if(state->tuner_id == TS2022_ID){
++              /* TS2022 init */
++              m88ds3103_tuner_writereg(state, 0x62, 0x6c);
++              msleep(2);
++              m88ds3103_tuner_writereg(state, 0x42, 0x6c);
++              msleep(2);
++              m88ds3103_tuner_writereg(state, 0x7d, 0x9d);
++              m88ds3103_tuner_writereg(state, 0x7c, 0x9a);
++              m88ds3103_tuner_writereg(state, 0x7a, 0x76);
++
++              m88ds3103_tuner_writereg(state, 0x3b, 0x01);
++              m88ds3103_tuner_writereg(state, 0x63, 0x88);
++
++              m88ds3103_tuner_writereg(state, 0x61, 0x85);
++              m88ds3103_tuner_writereg(state, 0x22, 0x30);
++              m88ds3103_tuner_writereg(state, 0x30, 0x40);
++              m88ds3103_tuner_writereg(state, 0x20, 0x23);
++              m88ds3103_tuner_writereg(state, 0x24, 0x02);
++              m88ds3103_tuner_writereg(state, 0x12, 0xa0);    
++      }
++              
++      if(state->demod_id == DS3103_ID){
++              m88ds3103_writereg(state, 0x07, 0xe0);
++              m88ds3103_writereg(state, 0x07, 0x00);
++              msleep(1);              
++      }
++      m88ds3103_writereg(state, 0xb2, 0x01);
++      
++      /* Load the firmware if required */
++      ret = m88ds3103_load_firmware(fe);
++      if (ret != 0){
++              printk(KERN_ERR "%s: Unable initialize firmware\n", __func__);
++              return ret;
++      }
++      if(state->demod_id == DS3103_ID){
++              m88ds3103_writereg(state, 0x4d, 0xfd & m88ds3103_readreg(state, 0x4d));
++              m88ds3103_writereg(state, 0x30, 0xef & m88ds3103_readreg(state, 0x30));         
++      }
++
++      return 0;
++}
++
++/*
++ * Initialise or wake up device
++ */
++static int m88ds3103_initfe(struct dvb_frontend *fe)
++{
++      struct m88ds3103_state *state = fe->demodulator_priv;
++      u8 val;
++
++      dprintk("%s()\n", __func__);
++
++      /* 1st step to wake up demod */
++      m88ds3103_writereg(state, 0x08, 0x01 | m88ds3103_readreg(state, 0x08));
++      m88ds3103_writereg(state, 0x04, 0xfe & m88ds3103_readreg(state, 0x04));
++      m88ds3103_writereg(state, 0x23, 0xef & m88ds3103_readreg(state, 0x23));
++      
++      /* 2nd step to wake up tuner */
++      val = m88ds3103_tuner_readreg(state, 0x00) & 0xff;
++      if((val & 0x01) == 0){
++              m88ds3103_tuner_writereg(state, 0x00, 0x01);
++              msleep(50);
++      }
++      m88ds3103_tuner_writereg(state, 0x00, 0x03);
++      msleep(50);
++      
++      return 0;       
++}
++
++/* Put device to sleep */
++static int m88ds3103_sleep(struct dvb_frontend *fe)
++{
++      struct m88ds3103_state *state = fe->demodulator_priv;
++
++      dprintk("%s()\n", __func__);
++      
++      /* 1st step to sleep tuner */
++      m88ds3103_tuner_writereg(state, 0x00, 0x00);
++      
++      /* 2nd step to sleep demod */
++      m88ds3103_writereg(state, 0x08, 0xfe & m88ds3103_readreg(state, 0x08));
++      m88ds3103_writereg(state, 0x04, 0x01 | m88ds3103_readreg(state, 0x04));
++      m88ds3103_writereg(state, 0x23, 0x10 | m88ds3103_readreg(state, 0x23));
++      
++
++      return 0;
++}
++
++static struct dvb_frontend_ops m88ds3103_ops = {
++      .delsys = { SYS_DVBS, SYS_DVBS2},
++      .info = {
++              .name = "Montage DS3103/TS2022",
++              .type = FE_QPSK,
++              .frequency_min = 950000,
++              .frequency_max = 2150000,
++              .frequency_stepsize = 1011, /* kHz for QPSK frontends */
++              .frequency_tolerance = 5000,
++              .symbol_rate_min = 1000000,
++              .symbol_rate_max = 45000000,
++              .caps = FE_CAN_INVERSION_AUTO |
++                      FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 |
++                      FE_CAN_FEC_4_5 | FE_CAN_FEC_5_6 | FE_CAN_FEC_6_7 |
++                      FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO |
++                      FE_CAN_2G_MODULATION |
++                      FE_CAN_QPSK | FE_CAN_RECOVER
++      },
++
++      .release = m88ds3103_release,
++
++      .init = m88ds3103_initfe,
++      .sleep = m88ds3103_sleep,
++      .read_status = m88ds3103_read_status,
++      .read_ber = m88ds3103_read_ber,
++      .read_signal_strength = m88ds3103_read_signal_strength,
++      .read_snr = m88ds3103_read_snr,
++      .read_ucblocks = m88ds3103_read_ucblocks,
++      .set_tone = m88ds3103_set_tone,
++      .set_voltage = m88ds3103_set_voltage,
++      .diseqc_send_master_cmd = m88ds3103_send_diseqc_msg,
++      .diseqc_send_burst = m88ds3103_diseqc_send_burst,
++      .get_frontend_algo = m88ds3103_get_algo,
++      .tune = m88ds3103_tune,
++      .set_frontend = m88ds3103_set_frontend,
++};
++
++MODULE_DESCRIPTION("DVB Frontend module for Montage DS3103/TS2022 hardware");
++MODULE_AUTHOR("Max nibble");
++MODULE_LICENSE("GPL");
+diff -Naur v4l-dvb-20120916.ORG/linux/drivers/media/dvb-frontends/m88ds3103.h v4l-dvb-20120916/linux/drivers/media/dvb-frontends/m88ds3103.h
+--- v4l-dvb-20120916.ORG/linux/drivers/media/dvb-frontends/m88ds3103.h 1970-01-01 01:00:00.000000000 +0100
++++ v4l-dvb-20120916/linux/drivers/media/dvb-frontends/m88ds3103.h     2012-11-24 13:34:43.716679774 +0100
+@@ -0,0 +1,53 @@
++/*
++    Montage Technology M88DS3103/M88TS2022 - DVBS/S2 Satellite demod/tuner driver
++
++    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, write to the Free Software
++    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#ifndef M88DS3103_H
++#define M88DS3103_H
++
++#include <linux/dvb/frontend.h>
++
++struct m88ds3103_config {
++      /* the demodulator's i2c address */
++      u8 demod_address;
++      u8 ci_mode;
++      u8 pin_ctrl;
++      u8 ts_mode; /* 0: Parallel, 1: Serial */
++
++      /* Set device param to start dma */
++      int (*set_ts_params)(struct dvb_frontend *fe, int is_punctured);
++    /* Start to transfer data */
++    int (*start_ctrl)(struct dvb_frontend *fe);
++    /* Set LNB voltage */
++    int (*set_voltage)(struct dvb_frontend* fe, fe_sec_voltage_t voltage);
++};
++
++#if defined(CONFIG_DVB_M88DS3103) || \
++      (defined(CONFIG_DVB_M88DS3103_MODULE) && defined(MODULE))
++extern struct dvb_frontend *m88ds3103_attach(
++       const struct m88ds3103_config *config,
++       struct i2c_adapter *i2c);
++#else
++static inline struct dvb_frontend *m88ds3103_attach(
++       const struct m88ds3103_config *config,
++       struct i2c_adapter *i2c)
++{
++      printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
++      return NULL;
++}
++#endif /* CONFIG_DVB_M88DS3103 */
++#endif /* M88DS3103_H */
+diff -Naur v4l-dvb-20120916.ORG/linux/drivers/media/dvb-frontends/m88ds3103_priv.h v4l-dvb-20120916/linux/drivers/media/dvb-frontends/m88ds3103_priv.h
+--- v4l-dvb-20120916.ORG/linux/drivers/media/dvb-frontends/m88ds3103_priv.h    1970-01-01 01:00:00.000000000 +0100
++++ v4l-dvb-20120916/linux/drivers/media/dvb-frontends/m88ds3103_priv.h        2012-11-24 13:34:43.716679774 +0100
+@@ -0,0 +1,403 @@
++/*
++    Montage Technology M88DS3103/M88TS2022 - DVBS/S2 Satellite demod/tuner driver
++
++    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, write to the Free Software
++    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#ifndef M88DS3103_PRIV_H
++#define M88DS3103_PRIV_H
++
++#define FW_DOWN_SIZE 32
++#define FW_DOWN_LOOP (8192/FW_DOWN_SIZE)
++#define DS3103_DEFAULT_FIRMWARE "dvb-fe-ds3103.fw"
++#define DS3000_DEFAULT_FIRMWARE "dvb-fe-ds300x.fw"
++#define MT_FE_MCLK_KHZ 96000 /* in kHz */
++#define MT_FE_CRYSTAL_KHZ   27000 /* in kHz */
++#define FREQ_OFFSET_AT_SMALL_SYM_RATE_KHz 3000
++#define DS3000_ID     0x3000
++#define DS3103_ID     0x3103
++#define TS2020_ID     0x2020
++#define TS2022_ID     0x2022
++#define UNKNOW_ID     0x0000
++
++struct m88ds3103_state {
++      struct i2c_adapter *i2c;
++      const struct m88ds3103_config *config;
++      
++      struct dvb_frontend frontend;
++      
++      u32 preBer;
++      u8 skip_fw_load;        
++      u8 first_lock; /* The first time of signal lock */
++      u16 demod_id; /* demod chip type */
++      u16 tuner_id; /* tuner chip type */
++      fe_delivery_system_t delivery_system;
++};
++
++/* For M88DS3103 demod dvbs mode.*/
++static u8 ds3103_dvbs_init_tab[] = {
++      0x23, 0x07,
++      0x08, 0x03,
++      0x0c, 0x02,
++      0x21, 0x54,
++      0x25, 0x82,
++      0x27, 0x31,
++      0x30, 0x08,
++      0x31, 0x40,
++      0x32, 0x32,
++      0x33, 0x35,
++      0x35, 0xff,
++      0x3a, 0x00,
++      0x37, 0x10,
++      0x38, 0x10,
++      0x39, 0x02,
++      0x42, 0x60,
++      0x4a, 0x80,
++      0x4b, 0x04,
++      0x4d, 0x91,
++      0x5d, 0xc8,
++      0x50, 0x36,
++      0x51, 0x36,
++      0x52, 0x36,
++      0x53, 0x36,
++      0x63, 0x0f,
++      0x64, 0x30,
++      0x65, 0x40,
++      0x68, 0x26,
++      0x69, 0x4c,
++      0x70, 0x20,
++      0x71, 0x70,
++      0x72, 0x04,
++      0x73, 0x00,
++      0x70, 0x40,
++      0x71, 0x70,
++      0x72, 0x04,
++      0x73, 0x00,
++      0x70, 0x60,
++      0x71, 0x70,
++      0x72, 0x04,
++      0x73, 0x00,
++      0x70, 0x80,
++      0x71, 0x70,
++      0x72, 0x04,
++      0x73, 0x00,
++      0x70, 0xa0,
++      0x71, 0x70,
++      0x72, 0x04,
++      0x73, 0x00,
++      0x70, 0x1f,
++      0x76, 0x38,
++      0x77, 0xa6,
++      0x78, 0x0c,
++      0x79, 0x80,
++      0x7f, 0x14,
++      0x7c, 0x00,
++      0xae, 0x82,
++      0x80, 0x64,
++      0x81, 0x66,
++      0x82, 0x44,
++      0x85, 0x04,
++      0xcd, 0xf4,
++      0x90, 0x33,
++      0xa0, 0x44,
++      0xc0, 0x08,
++      0xc3, 0x10,
++      0xc4, 0x08,
++      0xc5, 0xf0,
++      0xc6, 0xff,
++      0xc7, 0x00,
++      0xc8, 0x1a,
++      0xc9, 0x80,
++      0xe0, 0xf8,
++      0xe6, 0x8b,
++      0xd0, 0x40,
++      0xf8, 0x20,
++      0xfa, 0x0f,
++      0x00, 0x00,
++      0xbd, 0x01,
++      0xb8, 0x00,
++};
++/* For M88DS3103 demod dvbs2 mode.*/
++static u8 ds3103_dvbs2_init_tab[] = {
++      0x23, 0x07,
++      0x08, 0x07,
++      0x0c, 0x02,
++      0x21, 0x54,
++      0x25, 0x82,
++      0x27, 0x31,
++      0x30, 0x08,
++      0x32, 0x32,
++      0x33, 0x35,
++      0x35, 0xff,
++      0x3a, 0x00,
++      0x37, 0x10,
++      0x38, 0x10,
++      0x39, 0x02,
++      0x42, 0x60,
++      0x4a, 0x80,
++      0x4b, 0x04,
++      0x4d, 0x91,
++      0x5d, 0xc8,
++      0x50, 0x36,
++      0x51, 0x36,
++      0x52, 0x36,
++      0x53, 0x36,
++      0x63, 0x0f,
++      0x64, 0x10,
++      0x65, 0x20,
++      0x68, 0x46,
++      0x69, 0xcd,
++      0x70, 0x20,
++      0x71, 0x70,
++      0x72, 0x04,
++      0x73, 0x00,
++      0x70, 0x40,
++      0x71, 0x70,
++      0x72, 0x04,
++      0x73, 0x00,
++      0x70, 0x60,
++      0x71, 0x70,
++      0x72, 0x04,
++      0x73, 0x00,
++      0x70, 0x80,
++      0x71, 0x70,
++      0x72, 0x04,
++      0x73, 0x00,
++      0x70, 0xa0,
++      0x71, 0x70,
++      0x72, 0x04,
++      0x73, 0x00,
++      0x70, 0x1f,
++      0x76, 0x38,
++      0x77, 0xa6,
++      0x78, 0x0c,
++      0x79, 0x80,
++      0x7f, 0x14,
++      0x85, 0x08,
++      0xcd, 0xf4,
++      0x90, 0x33,
++      0x86, 0x00,
++      0x87, 0x0f,
++      0x89, 0x00,
++      0x8b, 0x44,
++      0x8c, 0x66,
++      0x9d, 0xc1,
++      0x8a, 0x10,
++      0xad, 0x40,
++      0xa0, 0x44,
++      0xc0, 0x08,
++      0xc1, 0x10,
++      0xc2, 0x08,
++      0xc3, 0x10,
++      0xc4, 0x08,
++      0xc5, 0xf0,
++      0xc6, 0xff,
++      0xc7, 0x00,
++      0xc8, 0x1a,
++      0xc9, 0x80,
++      0xca, 0x23,
++      0xcb, 0x24,
++      0xcc, 0xf4,
++      0xce, 0x74,
++      0x00, 0x00,
++      0xbd, 0x01,
++      0xb8, 0x00,
++};
++
++/* For M88DS3000 demod dvbs mode.*/
++static u8 ds3000_dvbs_init_tab[] = {
++      0x23, 0x05,
++      0x08, 0x03,
++      0x0c, 0x02,
++      0x21, 0x54,
++      0x25, 0x82,
++      0x27, 0x31,
++      0x30, 0x08,
++      0x31, 0x40,
++      0x32, 0x32,
++      0x33, 0x35,
++      0x35, 0xff,
++      0x3a, 0x00,
++      0x37, 0x10,
++      0x38, 0x10,
++      0x39, 0x02,
++      0x42, 0x60,
++      0x4a, 0x40,
++      0x4b, 0x04,
++      0x4d, 0x91,
++      0x5d, 0xc8,
++      0x50, 0x77,
++      0x51, 0x77,
++      0x52, 0x36,
++      0x53, 0x36,
++      0x56, 0x01,
++      0x63, 0x47,
++      0x64, 0x30,
++      0x65, 0x40,
++      0x68, 0x26,
++      0x69, 0x4c,
++      0x70, 0x20,
++      0x71, 0x70,
++      0x72, 0x04,
++      0x73, 0x00,
++      0x70, 0x40,
++      0x71, 0x70,
++      0x72, 0x04,
++      0x73, 0x00,
++      0x70, 0x60,
++      0x71, 0x70,
++      0x72, 0x04,
++      0x73, 0x00,
++      0x70, 0x80,
++      0x71, 0x70,
++      0x72, 0x04,
++      0x73, 0x00,
++      0x70, 0xa0,
++      0x71, 0x70,
++      0x72, 0x04,
++      0x73, 0x00,
++      0x70, 0x1f,
++      0x76, 0x00,
++      0x77, 0xd1,
++      0x78, 0x0c,
++      0x79, 0x80,
++      0x7f, 0x04,
++      0x7c, 0x00,
++      0x80, 0x86,
++      0x81, 0xa6,
++      0x85, 0x04,
++      0xcd, 0xf4,
++      0x90, 0x33,
++      0xa0, 0x44,
++      0xc0, 0x18,
++      0xc3, 0x10,
++      0xc4, 0x08,
++      0xc5, 0x80,
++      0xc6, 0x80,
++      0xc7, 0x0a,
++      0xc8, 0x1a,
++      0xc9, 0x80,
++      0xfe, 0xb6,
++      0xe0, 0xf8,
++      0xe6, 0x8b,
++      0xd0, 0x40,
++      0xf8, 0x20,
++      0xfa, 0x0f,
++      0xad, 0x20,
++      0xae, 0x07,
++      0xb8, 0x00,
++};
++
++/* For M88DS3000 demod dvbs2 mode.*/
++static u8 ds3000_dvbs2_init_tab[] = {
++      0x23, 0x0f,
++      0x08, 0x07,
++      0x0c, 0x02,
++      0x21, 0x54,
++      0x25, 0x82,
++      0x27, 0x31,
++      0x30, 0x08,
++      0x31, 0x32,
++      0x32, 0x32,
++      0x33, 0x35,
++      0x35, 0xff,
++      0x3a, 0x00,
++      0x37, 0x10,
++      0x38, 0x10,
++      0x39, 0x02,
++      0x42, 0x60,
++      0x4a, 0x80,
++      0x4b, 0x04,
++      0x4d, 0x91,
++      0x5d, 0x88,
++      0x50, 0x36,
++      0x51, 0x36,
++      0x52, 0x36,
++      0x53, 0x36,
++      0x63, 0x60,
++      0x64, 0x10,
++      0x65, 0x10,
++      0x68, 0x04,
++      0x69, 0x29,
++      0x70, 0x20,
++      0x71, 0x70,
++      0x72, 0x04,
++      0x73, 0x00,
++      0x70, 0x40,
++      0x71, 0x70,
++      0x72, 0x04,
++      0x73, 0x00,
++      0x70, 0x60,
++      0x71, 0x70,
++      0x72, 0x04,
++      0x73, 0x00,
++      0x70, 0x80,
++      0x71, 0x70,
++      0x72, 0x04,
++      0x73, 0x00,
++      0x70, 0xa0,
++      0x71, 0x70,
++      0x72, 0x04,
++      0x73, 0x00,
++      0x70, 0x1f,
++      0xa0, 0x44,
++      0xc0, 0x08,
++      0xc1, 0x10,
++      0xc2, 0x08,
++      0xc3, 0x10,
++      0xc4, 0x08,
++      0xc5, 0xf0,
++      0xc6, 0xf0,
++      0xc7, 0x0a,
++      0xc8, 0x1a,
++      0xc9, 0x80,
++      0xca, 0x23,
++      0xcb, 0x24,
++      0xce, 0x74,
++      0x56, 0x01,
++      0x90, 0x03,
++      0x76, 0x80,
++      0x77, 0x42,
++      0x78, 0x0a,
++      0x79, 0x80,
++      0xad, 0x40,
++      0xae, 0x07,
++      0x7f, 0xd4,
++      0x7c, 0x00,
++      0x80, 0xa8,
++      0x81, 0xda,
++      0x7c, 0x01,
++      0x80, 0xda,
++      0x81, 0xec,
++      0x7c, 0x02,
++      0x80, 0xca,
++      0x81, 0xeb,
++      0x7c, 0x03,
++      0x80, 0xba,
++      0x81, 0xdb,
++      0x85, 0x08,
++      0x86, 0x00,
++      0x87, 0x02,
++      0x89, 0x80,
++      0x8b, 0x44,
++      0x8c, 0xaa,
++      0x8a, 0x10,
++      0xba, 0x00,
++      0xf5, 0x04,
++      0xd2, 0x32,
++      0xb8, 0x00,
++};
++
++#endif /* M88DS3103_PRIV_H */
+diff -Naur v4l-dvb-20120916.ORG/linux/drivers/media/dvb-frontends/Makefile v4l-dvb-20120916/linux/drivers/media/dvb-frontends/Makefile
+--- v4l-dvb-20120916.ORG/linux/drivers/media/dvb-frontends/Makefile    2012-08-17 05:45:27.000000000 +0200
++++ v4l-dvb-20120916/linux/drivers/media/dvb-frontends/Makefile        2012-11-24 13:34:43.716679774 +0100
+@@ -102,4 +102,7 @@
+ obj-$(CONFIG_DVB_RTL2832) += rtl2832.o
+ obj-$(CONFIG_DVB_M88RS2000) += m88rs2000.o
+ obj-$(CONFIG_DVB_AF9033) += af9033.o
++obj-$(CONFIG_DVB_M88DS3103) += m88ds3103.o
++
++
+diff -Naur v4l-dvb-20120916.ORG/linux/drivers/media/rc/keymaps/Makefile v4l-dvb-20120916/linux/drivers/media/rc/keymaps/Makefile
+--- v4l-dvb-20120916.ORG/linux/drivers/media/rc/keymaps/Makefile       2012-05-21 05:45:41.000000000 +0200
++++ v4l-dvb-20120916/linux/drivers/media/rc/keymaps/Makefile   2012-11-24 13:34:43.716679774 +0100
+@@ -27,6 +27,7 @@
+                       rc-dm1105-nec.o \
+                       rc-dntv-live-dvb-t.o \
+                       rc-dntv-live-dvbt-pro.o \
++                      rc-dvbsky.o \
+                       rc-em-terratec.o \
+                       rc-encore-enltv2.o \
+                       rc-encore-enltv.o \
+diff -Naur v4l-dvb-20120916.ORG/linux/drivers/media/rc/keymaps/rc-dvbsky.c v4l-dvb-20120916/linux/drivers/media/rc/keymaps/rc-dvbsky.c
+--- v4l-dvb-20120916.ORG/linux/drivers/media/rc/keymaps/rc-dvbsky.c    1970-01-01 01:00:00.000000000 +0100
++++ v4l-dvb-20120916/linux/drivers/media/rc/keymaps/rc-dvbsky.c        2012-11-24 13:34:43.716679774 +0100
+@@ -0,0 +1,78 @@
++/* rc-dvbsky.c - Keytable for Dvbsky Remote Controllers
++ *
++ * keymap imported from ir-keymaps.c
++ *
++ *
++ * Copyright (c) 2010-2011 by Mauro Carvalho Chehab <mchehab@redhat.com>
++ *
++ * 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.
++ */
++
++#include <media/rc-map.h>
++#include <linux/module.h>
++/*
++ * This table contains the complete RC5 code, instead of just the data part
++ */
++
++static struct rc_map_table rc5_dvbsky[] = {
++      { 0x0000, KEY_0 },
++      { 0x0001, KEY_1 },
++      { 0x0002, KEY_2 },
++      { 0x0003, KEY_3 },
++      { 0x0004, KEY_4 },
++      { 0x0005, KEY_5 },
++      { 0x0006, KEY_6 },
++      { 0x0007, KEY_7 },
++      { 0x0008, KEY_8 },
++      { 0x0009, KEY_9 },      
++      { 0x000a, KEY_MUTE },
++      { 0x000d, KEY_OK },
++      { 0x000b, KEY_STOP },
++      { 0x000c, KEY_EXIT },   
++      { 0x000e, KEY_CAMERA }, /*Snap shot*/
++      { 0x000f, KEY_SUBTITLE }, /*PIP*/
++      { 0x0010, KEY_VOLUMEUP },
++      { 0x0011, KEY_VOLUMEDOWN },
++      { 0x0012, KEY_FAVORITES },
++      { 0x0013, KEY_LIST }, /*Info*/
++      { 0x0016, KEY_PAUSE },
++      { 0x0017, KEY_PLAY },
++      { 0x001f, KEY_RECORD },
++      { 0x0020, KEY_CHANNELDOWN },
++      { 0x0021, KEY_CHANNELUP },
++      { 0x0025, KEY_POWER2 },
++      { 0x0026, KEY_REWIND },
++      { 0x0027, KEY_FASTFORWARD },
++      { 0x0029, KEY_LAST },
++      { 0x002b, KEY_MENU },   
++      { 0x002c, KEY_EPG },
++      { 0x002d, KEY_ZOOM },   
++};
++
++static struct rc_map_list rc5_dvbsky_map = {
++      .map = {
++              .scan    = rc5_dvbsky,
++              .size    = ARRAY_SIZE(rc5_dvbsky),
++              .rc_type = RC_TYPE_RC5,
++              .name    = RC_MAP_DVBSKY,
++      }
++};
++
++static int __init init_rc_map_rc5_dvbsky(void)
++{
++      return rc_map_register(&rc5_dvbsky_map);
++}
++
++static void __exit exit_rc_map_rc5_dvbsky(void)
++{
++      rc_map_unregister(&rc5_dvbsky_map);
++}
++
++module_init(init_rc_map_rc5_dvbsky)
++module_exit(exit_rc_map_rc5_dvbsky)
++
++MODULE_LICENSE("GPL");
++MODULE_AUTHOR("Mauro Carvalho Chehab <mchehab@redhat.com>");
+diff -Naur v4l-dvb-20120916.ORG/linux/drivers/media/usb/dvb-usb/dw2102.c v4l-dvb-20120916/linux/drivers/media/usb/dvb-usb/dw2102.c
+--- v4l-dvb-20120916.ORG/linux/drivers/media/usb/dvb-usb/dw2102.c      2012-08-14 05:45:22.000000000 +0200
++++ v4l-dvb-20120916/linux/drivers/media/usb/dvb-usb/dw2102.c  2012-11-24 15:44:13.269971182 +0100
+@@ -3,6 +3,7 @@
+  *    TeVii S600, S630, S650, S660, S480,
+  *    Prof 1100, 7500,
+  *    Geniatech SU3000 Cards
++ *    Bestunar US683x HD, DVBsky S860, S960 USB
+  * Copyright (C) 2008-2011 Igor M. Liplianin (liplianin@me.by)
+  *
+  *    This program is free software; you can redistribute it and/or modify it
+@@ -19,6 +20,7 @@
+ #include "stb6000.h"
+ #include "eds1547.h"
+ #include "cx24116.h"
++#include "m88ds3103.h"
+ #include "tda1002x.h"
+ #include "mt312.h"
+ #include "zl10039.h"
+@@ -786,7 +788,7 @@
+       struct su3000_state *state = (struct su3000_state *)d->priv;
+       u8 obuf[] = {0xde, 0};
+-      info("%s: %d, initialized %d\n", __func__, i, state->initialized);
++      info("%s: %d, initialized %d", __func__, i, state->initialized);
+       if (i && !state->initialized) {
+               state->initialized = 1;
+@@ -824,7 +826,40 @@
+               else
+                       mac[i] = ibuf[0];
+-              debug_dump(mac, 6, printk);
++              debug_dump(mac, 6, deb_xfer);
++      }
++
++      return 0;
++}
++
++static int dvbsky_read_mac_address(struct dvb_usb_device *d, u8 mac[6])
++{
++      int i;
++      u8 obuf[] = { 0x1e, 0x00 };
++      u8 ibuf[] = { 0 };
++      struct i2c_msg msg[] = {
++              {
++                      .addr = 0x51,
++                      .flags = 0,
++                      .buf = obuf,
++                      .len = 2,
++              }, {
++                      .addr = 0x51,
++                      .flags = I2C_M_RD,
++                      .buf = ibuf,
++                      .len = 1,
++
++              }
++      };
++
++      for (i = 0; i < 6; i++) {
++              obuf[1] = i;
++              if (i2c_transfer(&d->i2c_adap, msg, 2) != 2)
++                      break;
++              else
++                      mac[i] = ibuf[0];
++
++              debug_dump(mac, 6, deb_xfer);
+       }
+       return 0;
+@@ -835,7 +870,7 @@
+                                struct dvb_usb_device_description **desc,
+                                int *cold)
+ {
+-      info("%s\n", __func__);
++      info("%s", __func__);
+       *cold = 0;
+       return 0;
+@@ -878,6 +913,43 @@
+       return 0;
+ }
++static int bstusb_set_voltage(struct dvb_frontend *fe, fe_sec_voltage_t voltage)
++{
++
++      struct dvb_usb_adapter *udev_adap =
++              (struct dvb_usb_adapter *)(fe->dvb->priv);
++
++      u8 obuf[3] = { 0xe, 0x80, 0 };
++      u8 ibuf[] = { 0 };
++
++      //info("US6830: %s!", __func__);
++
++      if (voltage == SEC_VOLTAGE_OFF)
++              obuf[2] = 0;
++      else
++              obuf[2] = 1;
++
++      if (dvb_usb_generic_rw(udev_adap->dev, obuf, 3, ibuf, 1, 0) < 0)
++              err("command 0x0e transfer failed.");
++
++      return 0;
++}
++
++static int bstusb_restart(struct dvb_frontend *fe)
++{
++
++      struct dvb_usb_adapter *udev_adap =
++              (struct dvb_usb_adapter *)(fe->dvb->priv);
++
++      u8 obuf[3] = { 0x36, 3, 0 };
++      u8 ibuf[] = { 0 };
++
++      if (dvb_usb_generic_rw(udev_adap->dev, obuf, 3, ibuf, 0, 0) < 0)
++              err("command 0x36 transfer failed.");
++
++      return 0;
++}
++
+ static void dw210x_led_ctrl(struct dvb_frontend *fe, int offon)
+ {
+       static u8 led_off[] = { 0 };
+@@ -983,6 +1055,24 @@
+       .ci_mode = 1,
+ };
++static struct m88ds3103_config US6830_ds3103_config = {
++      .demod_address = 0x68,
++      .ci_mode = 1,
++      .pin_ctrl = 0x83,
++      .ts_mode = 0,
++      .start_ctrl = bstusb_restart,
++      .set_voltage = bstusb_set_voltage,
++};
++
++static struct m88ds3103_config US6832_ds3103_config = {
++      .demod_address = 0x68,
++      .ci_mode = 1,
++      .pin_ctrl = 0x80,
++      .ts_mode = 0,
++      .start_ctrl = bstusb_restart,
++      .set_voltage = bstusb_set_voltage,
++};
++
+ static int dw2104_frontend_attach(struct dvb_usb_adapter *d)
+ {
+       struct dvb_tuner_ops *tuner_ops = NULL;
+@@ -1000,7 +1090,7 @@
+                               tuner_ops->set_bandwidth = stb6100_set_bandw;
+                               tuner_ops->get_bandwidth = stb6100_get_bandw;
+                               d->fe_adap[0].fe->ops.set_voltage = dw210x_set_voltage;
+-                              info("Attached STV0900+STB6100!\n");
++                              info("Attached STV0900+STB6100!");
+                               return 0;
+                       }
+               }
+@@ -1014,7 +1104,7 @@
+                                       &dw2104_stv6110_config,
+                                       &d->dev->i2c_adap)) {
+                               d->fe_adap[0].fe->ops.set_voltage = dw210x_set_voltage;
+-                              info("Attached STV0900+STV6110A!\n");
++                              info("Attached STV0900+STV6110A!");
+                               return 0;
+                       }
+               }
+@@ -1025,7 +1115,7 @@
+                               &d->dev->i2c_adap);
+               if (d->fe_adap[0].fe != NULL) {
+                       d->fe_adap[0].fe->ops.set_voltage = dw210x_set_voltage;
+-                      info("Attached cx24116!\n");
++                      info("Attached cx24116!");
+                       return 0;
+               }
+       }
+@@ -1034,7 +1124,7 @@
+                       &d->dev->i2c_adap);
+       if (d->fe_adap[0].fe != NULL) {
+               d->fe_adap[0].fe->ops.set_voltage = dw210x_set_voltage;
+-              info("Attached DS3000!\n");
++              info("Attached DS3000!");
+               return 0;
+       }
+@@ -1053,7 +1143,7 @@
+                                       &d->dev->i2c_adap);
+               if (d->fe_adap[0].fe != NULL) {
+                       d->fe_adap[0].fe->ops.set_voltage = dw210x_set_voltage;
+-                      info("Attached si21xx!\n");
++                      info("Attached si21xx!");
+                       return 0;
+               }
+       }
+@@ -1065,7 +1155,7 @@
+                       if (dvb_attach(stb6000_attach, d->fe_adap[0].fe, 0x61,
+                                       &d->dev->i2c_adap)) {
+                               d->fe_adap[0].fe->ops.set_voltage = dw210x_set_voltage;
+-                              info("Attached stv0288!\n");
++                              info("Attached stv0288!");
+                               return 0;
+                       }
+               }
+@@ -1077,7 +1167,7 @@
+                                       &d->dev->i2c_adap);
+               if (d->fe_adap[0].fe != NULL) {
+                       d->fe_adap[0].fe->ops.set_voltage = dw210x_set_voltage;
+-                      info("Attached stv0299!\n");
++                      info("Attached stv0299!");
+                       return 0;
+               }
+       }
+@@ -1089,7 +1179,7 @@
+       d->fe_adap[0].fe = dvb_attach(tda10023_attach, &dw3101_tda10023_config,
+                               &d->dev->i2c_adap, 0x48);
+       if (d->fe_adap[0].fe != NULL) {
+-              info("Attached tda10023!\n");
++              info("Attached tda10023!");
+               return 0;
+       }
+       return -EIO;
+@@ -1103,7 +1193,7 @@
+               if (dvb_attach(zl10039_attach, d->fe_adap[0].fe, 0x60,
+                               &d->dev->i2c_adap)) {
+                       d->fe_adap[0].fe->ops.set_voltage = dw210x_set_voltage;
+-                      info("Attached zl100313+zl10039!\n");
++                      info("Attached zl100313+zl10039!");
+                       return 0;
+               }
+       }
+@@ -1128,7 +1218,7 @@
+       dw210x_op_rw(d->dev->udev, 0x8a, 0, 0, obuf, 2, DW210X_WRITE_MSG);
+-      info("Attached stv0288+stb6000!\n");
++      info("Attached stv0288+stb6000!");
+       return 0;
+@@ -1150,7 +1240,7 @@
+       dw210x_op_rw(d->dev->udev, 0x8a, 0, 0, obuf, 2, DW210X_WRITE_MSG);
+-      info("Attached ds3000+ds2020!\n");
++      info("Attached ds3000+ds2020!");
+       return 0;
+ }
+@@ -1168,7 +1258,7 @@
+       dw210x_op_rw(d->dev->udev, 0x8a, 0, 0, obuf, 2, DW210X_WRITE_MSG);
+-      info("Attached STV0900+STB6100A!\n");
++      info("Attached STV0900+STB6100A!");
+       return 0;
+ }
+@@ -1205,7 +1295,88 @@
+       if (d->fe_adap[0].fe == NULL)
+               return -EIO;
+-      info("Attached DS3000!\n");
++      info("Attached DS3000!");
++
++      return 0;
++}
++
++static int US6830_frontend_attach(struct dvb_usb_adapter *d)
++{
++      u8 obuf[3] = { 0xe, 0x04, 1 };
++      u8 ibuf[] = { 0 };
++
++      info("US6830: %s!\n", __func__);
++
++      if (dvb_usb_generic_rw(d->dev, obuf, 3, ibuf, 1, 0) < 0)
++              err("command 0x0e transfer failed.");
++
++      obuf[0] = 0xe;
++      obuf[1] = 0x83;
++      obuf[2] = 0;
++      
++      if (dvb_usb_generic_rw(d->dev, obuf, 3, ibuf, 1, 0) < 0)
++              err("command 0x0e transfer failed.");
++
++      msleep(20);
++
++      obuf[0] = 0xe;
++      obuf[1] = 0x83;
++      obuf[2] = 1;
++
++      if (dvb_usb_generic_rw(d->dev, obuf, 3, ibuf, 1, 0) < 0)
++              err("command 0x0e transfer failed.");
++
++      obuf[0] = 0x51;
++
++      if (dvb_usb_generic_rw(d->dev, obuf, 1, ibuf, 1, 0) < 0)
++              err("command 0x51 transfer failed.");
++
++      d->fe_adap[0].fe = dvb_attach(m88ds3103_attach, &US6830_ds3103_config,
++                                      &d->dev->i2c_adap);
++      if (d->fe_adap[0].fe == NULL)
++              return -EIO;
++
++      info("Attached M88DS3103!");
++
++      return 0;
++}
++
++static int US6832_frontend_attach(struct dvb_usb_adapter *d)
++{
++      u8 obuf[3] = { 0xe, 0x04, 1 };
++      u8 ibuf[] = { 0 };
++
++      info("US6832: %s!", __func__);
++
++      if (dvb_usb_generic_rw(d->dev, obuf, 3, ibuf, 1, 0) < 0)
++              err("command 0x0e transfer failed.");
++
++      obuf[0] = 0xe;
++      obuf[1] = 0x83;
++      obuf[2] = 0;
++      
++      if (dvb_usb_generic_rw(d->dev, obuf, 3, ibuf, 1, 0) < 0)
++              err("command 0x0e transfer failed.");
++
++      msleep(20);
++      obuf[0] = 0xe;
++      obuf[1] = 0x83;
++      obuf[2] = 1;
++
++      if (dvb_usb_generic_rw(d->dev, obuf, 3, ibuf, 1, 0) < 0)
++              err("command 0x0e transfer failed.");
++
++      obuf[0] = 0x51;
++
++      if (dvb_usb_generic_rw(d->dev, obuf, 1, ibuf, 1, 0) < 0)
++              err("command 0x51 transfer failed.");
++
++      d->fe_adap[0].fe = dvb_attach(m88ds3103_attach, &US6832_ds3103_config,
++                                      &d->dev->i2c_adap);
++      if (d->fe_adap[0].fe == NULL)
++              return -EIO;
++
++      info("Attached M88DS3103!");
+       return 0;
+ }
+@@ -1447,6 +1618,9 @@
+       TEVII_S480_1,
+       TEVII_S480_2,
+       X3M_SPC1400HD,
++      BST_US6830HD,
++      BST_US6831HD,
++      BST_US6832HD,
+ };
+ static struct usb_device_id dw2102_table[] = {
+@@ -1465,6 +1639,9 @@
+       [TEVII_S480_1] = {USB_DEVICE(0x9022, USB_PID_TEVII_S480_1)},
+       [TEVII_S480_2] = {USB_DEVICE(0x9022, USB_PID_TEVII_S480_2)},
+       [X3M_SPC1400HD] = {USB_DEVICE(0x1f4d, 0x3100)},
++      [BST_US6830HD] = {USB_DEVICE(0x0572, 0x6830)},
++      [BST_US6831HD] = {USB_DEVICE(0x0572, 0x6831)},
++      [BST_US6832HD] = {USB_DEVICE(0x0572, 0x6832)},
+       { }
+ };
+@@ -1870,6 +2047,106 @@
+       }
+ };
++static struct dvb_usb_device_properties US6830_properties = {
++      .caps = DVB_USB_IS_AN_I2C_ADAPTER,
++      .usb_ctrl = DEVICE_SPECIFIC,
++      .size_of_priv = sizeof(struct su3000_state),
++      .power_ctrl = su3000_power_ctrl,
++      .num_adapters = 1,
++      .identify_state = su3000_identify_state,
++      .i2c_algo = &su3000_i2c_algo,
++
++      .rc.legacy = {
++              .rc_map_table = rc_map_su3000_table,
++              .rc_map_size = ARRAY_SIZE(rc_map_su3000_table),
++              .rc_interval = 150,
++              .rc_query = dw2102_rc_query,
++      },
++
++      .read_mac_address = dvbsky_read_mac_address,
++
++      .generic_bulk_ctrl_endpoint = 0x01,
++      
++      .adapter = {
++              {
++              .num_frontends = 1,
++              .fe = {{
++                      .streaming_ctrl   = su3000_streaming_ctrl,
++                      .frontend_attach  = US6830_frontend_attach,
++                      .stream = {
++                              .type = USB_BULK,
++                              .count = 8,
++                              .endpoint = 0x82,
++                              .u = {
++                                      .bulk = {
++                                              .buffersize = 4096,
++                                      }
++                              }
++                      }
++              }},
++              }
++      },
++      .num_device_descs = 2,
++      .devices = {
++              { "Bestunar US6830 HD",
++                      { &dw2102_table[BST_US6830HD], NULL },
++                      { NULL },
++              },
++              { "Bestunar US6831 HD",
++                      { &dw2102_table[BST_US6831HD], NULL },
++                      { NULL },
++              },                              
++      }
++};
++
++static struct dvb_usb_device_properties US6832_properties = {
++      .caps = DVB_USB_IS_AN_I2C_ADAPTER,
++      .usb_ctrl = DEVICE_SPECIFIC,
++      .size_of_priv = sizeof(struct su3000_state),
++      .power_ctrl = su3000_power_ctrl,
++      .num_adapters = 1,
++      .identify_state = su3000_identify_state,
++      .i2c_algo = &su3000_i2c_algo,
++
++      .rc.legacy = {
++              .rc_map_table = rc_map_su3000_table,
++              .rc_map_size = ARRAY_SIZE(rc_map_su3000_table),
++              .rc_interval = 150,
++              .rc_query = dw2102_rc_query,
++      },
++
++      .read_mac_address = dvbsky_read_mac_address,
++
++      .generic_bulk_ctrl_endpoint = 0x01,
++
++      .adapter = {
++              {
++              .num_frontends = 1,
++              .fe = {{
++                      .streaming_ctrl   = su3000_streaming_ctrl,
++                      .frontend_attach  = US6832_frontend_attach,
++                      .stream = {
++                              .type = USB_BULK,
++                              .count = 8,
++                              .endpoint = 0x82,
++                              .u = {
++                                      .bulk = {
++                                              .buffersize = 4096,
++                                      }
++                              }
++                      }
++              }},
++              }
++      },
++      .num_device_descs = 1,
++      .devices = {
++              { "Bestunar US6832 HD",
++                      { &dw2102_table[BST_US6832HD], NULL },
++                      { NULL },
++              },
++      }
++};
++
+ static int dw2102_probe(struct usb_interface *intf,
+               const struct usb_device_id *id)
+ {
+@@ -1926,6 +2203,10 @@
+           0 == dvb_usb_device_init(intf, p7500,
+                       THIS_MODULE, NULL, adapter_nr) ||
+           0 == dvb_usb_device_init(intf, &su3000_properties,
++                      THIS_MODULE, NULL, adapter_nr) ||
++          0 == dvb_usb_device_init(intf, &US6830_properties,
++                      THIS_MODULE, NULL, adapter_nr) ||
++          0 == dvb_usb_device_init(intf, &US6832_properties,
+                                    THIS_MODULE, NULL, adapter_nr))
+               return 0;
+diff -Naur v4l-dvb-20120916.ORG/linux/drivers/media/usb/dvb-usb/Kconfig v4l-dvb-20120916/linux/drivers/media/usb/dvb-usb/Kconfig
+--- v4l-dvb-20120916.ORG/linux/drivers/media/usb/dvb-usb/Kconfig       2012-08-22 05:45:23.000000000 +0200
++++ v4l-dvb-20120916/linux/drivers/media/usb/dvb-usb/Kconfig   2012-11-24 13:34:43.716679774 +0100
+@@ -1,3 +1,4 @@
+++     select DVB_M88DS3103 if !DVB_FE_CUSTOMISE
+ config DVB_USB
+       tristate "Support for various USB DVB devices"
+       depends on DVB_CORE && USB && I2C && RC_CORE
+@@ -261,6 +262,7 @@
+       select DVB_STV0299 if MEDIA_SUBDRV_AUTOSELECT
+       select DVB_STV0288 if MEDIA_SUBDRV_AUTOSELECT
+       select DVB_STB6000 if MEDIA_SUBDRV_AUTOSELECT
++      select DVB_M88DS3103 if MEDIA_SUBDRV_AUTOSELECT
+       select DVB_CX24116 if MEDIA_SUBDRV_AUTOSELECT
+       select DVB_SI21XX if MEDIA_SUBDRV_AUTOSELECT
+       select DVB_TDA10023 if MEDIA_SUBDRV_AUTOSELECT
+diff -Naur v4l-dvb-20120916.ORG/linux/include/media/rc-map.h v4l-dvb-20120916/linux/include/media/rc-map.h
+--- v4l-dvb-20120916.ORG/linux/include/media/rc-map.h  2012-05-21 05:45:41.000000000 +0200
++++ v4l-dvb-20120916/linux/include/media/rc-map.h      2012-11-24 13:34:43.716679774 +0100
+@@ -86,6 +86,7 @@
+ #define RC_MAP_DM1105_NEC                "rc-dm1105-nec"
+ #define RC_MAP_DNTV_LIVE_DVBT_PRO        "rc-dntv-live-dvbt-pro"
+ #define RC_MAP_DNTV_LIVE_DVB_T           "rc-dntv-live-dvb-t"
++#define RC_MAP_DVBSKY                    "rc-dvbsky"
+ #define RC_MAP_EMPTY                     "rc-empty"
+ #define RC_MAP_EM_TERRATEC               "rc-em-terratec"
+ #define RC_MAP_ENCORE_ENLTV2             "rc-encore-enltv2"
diff --git a/src/patches/v4l-dvb_fix_tua6034_pll.patch b/src/patches/v4l-dvb_fix_tua6034_pll.patch
new file mode 100644 (file)
index 0000000..a430983
--- /dev/null
@@ -0,0 +1,12 @@
+diff -Naur v4l-dvb-20120916.org/linux/drivers/media/dvb-frontends/dvb-pll.c v4l-dvb-20120916/linux/drivers/media/dvb-frontends/dvb-pll.c
+--- v4l-dvb-20120916.org/linux/drivers/media/dvb-frontends/dvb-pll.c   2012-08-14 05:45:22.000000000 +0200
++++ v4l-dvb-20120916/linux/drivers/media/dvb-frontends/dvb-pll.c       2012-10-25 14:06:42.123360189 +0200
+@@ -247,7 +247,7 @@
+ static void tua6034_bw(struct dvb_frontend *fe, u8 *buf)
+ {
+       u32 bw = fe->dtv_property_cache.bandwidth_hz;
+-      if (bw == 7000000)
++      if (bw != 7000000)
+               buf[3] |= 0x08;
+ }
diff --git a/src/patches/v4l-dvb_rtl28xx_add_usb_ids.patch b/src/patches/v4l-dvb_rtl28xx_add_usb_ids.patch
new file mode 100644 (file)
index 0000000..1dd649a
--- /dev/null
@@ -0,0 +1,14 @@
+diff -Naur v4l-dvb-20120916.org/linux/drivers/media/usb/dvb-usb-v2/rtl28xxu.c v4l-dvb-20120916/linux/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
+--- v4l-dvb-20120916.org/linux/drivers/media/usb/dvb-usb-v2/rtl28xxu.c 2012-09-16 05:46:03.000000000 +0200
++++ v4l-dvb-20120916/linux/drivers/media/usb/dvb-usb-v2/rtl28xxu.c     2012-09-19 20:03:04.538168193 +0200
+@@ -1228,6 +1228,10 @@
+               &rtl2832u_props, "G-Tek Electronics Group Lifeview LV5TDLX DVB-T", NULL) },
+       { DVB_USB_DEVICE(USB_VID_TERRATEC, USB_PID_NOXON_DAB_STICK,
+               &rtl2832u_props, "NOXON DAB/DAB+ USB dongle", NULL) },
++      { DVB_USB_DEVICE(0x1d19, 0x1101,
++              &rtl2832u_props, "DK DVB-T USB dongle", NULL) },
++      { DVB_USB_DEVICE(0x1f4d, 0xc803,
++              &rtl2832u_props, "Trekstor DVB-T DAB FM USB dongle", NULL) },
+       { }
+ };
+ MODULE_DEVICE_TABLE(usb, rtl28xxu_id_table);
diff --git a/src/patches/v4l-dvb_rtl28xx_commented_usb_clear_halt.patch b/src/patches/v4l-dvb_rtl28xx_commented_usb_clear_halt.patch
new file mode 100644 (file)
index 0000000..8fb8bc4
--- /dev/null
@@ -0,0 +1,12 @@
+diff -Naur v4l-dvb-20120916.org/linux/drivers/media/usb/dvb-usb-v2/rtl28xxu.c v4l-dvb-20120916/linux/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
+--- v4l-dvb-20120916.org/linux/drivers/media/usb/dvb-usb-v2/rtl28xxu.c 2012-09-16 05:46:03.000000000 +0200
++++ v4l-dvb-20120916/linux/drivers/media/usb/dvb-usb-v2/rtl28xxu.c     2012-10-24 13:48:13.113373414 +0200
+@@ -836,7 +836,7 @@
+       if (onoff) {
+               buf[0] = 0x00;
+               buf[1] = 0x00;
+-              usb_clear_halt(d->udev, usb_rcvbulkpipe(d->udev, 0x81));
++//            usb_clear_halt(d->udev, usb_rcvbulkpipe(d->udev, 0x81));
+       } else {
+               buf[0] = 0x10; /* stall EPA */
+               buf[1] = 0x02; /* reset EPA */
diff --git a/src/patches/v4l-dvb_usbv2_dont_report_pidfilter_fail.patch b/src/patches/v4l-dvb_usbv2_dont_report_pidfilter_fail.patch
new file mode 100644 (file)
index 0000000..4b16125
--- /dev/null
@@ -0,0 +1,16 @@
+diff -Naur v4l-dvb-20120916.org/linux/drivers/media/usb/dvb-usb-v2/dvb_usb_core.c v4l-dvb-20120916/linux/drivers/media/usb/dvb-usb-v2/dvb_usb_core.c
+--- v4l-dvb-20120916.org/linux/drivers/media/usb/dvb-usb-v2/dvb_usb_core.c     2012-08-16 05:45:24.000000000 +0200
++++ v4l-dvb-20120916/linux/drivers/media/usb/dvb-usb-v2/dvb_usb_core.c 2012-10-24 13:53:35.636726448 +0200
+@@ -287,9 +287,9 @@
+               ret = adap->props->pid_filter(adap, dvbdmxfeed->index,
+                               dvbdmxfeed->pid, (count == 1) ? 1 : 0);
+                       if (ret < 0)
+-                              dev_err(&d->udev->dev, "%s: pid_filter() " \
+-                                              "failed=%d\n", KBUILD_MODNAME,
+-                                              ret);
++//                            dev_err(&d->udev->dev, "%s: pid_filter() " \
++//                                            "failed=%d\n", KBUILD_MODNAME,
++//                                            ret);
+       /* start feeding if it is first pid */
+       if (adap->feed_count == 1 && count == 1) {
diff --git a/src/patches/vdr-1.6.0-gcc44-fixes.patch b/src/patches/vdr-1.6.0-gcc44-fixes.patch
new file mode 100644 (file)
index 0000000..d8841d8
--- /dev/null
@@ -0,0 +1,62 @@
+Index: vdr-1.6.0/recording.c
+===================================================================
+--- vdr-1.6.0.orig/recording.c
++++ vdr-1.6.0/recording.c
+@@ -509,8 +509,8 @@ cRecording::cRecording(cTimer *Timer, co
+      Utf8Strn0Cpy(SubtitleBuffer, Subtitle, MAX_SUBTITLE_LENGTH);
+      Subtitle = SubtitleBuffer;
+      }
+-  char *macroTITLE   = strstr(Timer->File(), TIMERMACRO_TITLE);
+-  char *macroEPISODE = strstr(Timer->File(), TIMERMACRO_EPISODE);
++  const char *macroTITLE   = strstr(Timer->File(), TIMERMACRO_TITLE);
++  const char *macroEPISODE = strstr(Timer->File(), TIMERMACRO_EPISODE);
+   if (macroTITLE || macroEPISODE) {
+      name = strdup(Timer->File());
+      name = strreplace(name, TIMERMACRO_TITLE, Title);
+@@ -551,7 +551,7 @@ cRecording::cRecording(const char *FileN
+   sortBuffer = NULL;
+   fileName = strdup(FileName);
+   FileName += strlen(VideoDirectory) + 1;
+-  char *p = strrchr(FileName, '/');
++  const char *p = strrchr(FileName, '/');
+   name = NULL;
+   info = new cRecordingInfo;
+@@ -1022,7 +1022,8 @@ void cRecordings::DelByName(const char *
+   if (recording) {
+      cThreadLock DeletedRecordingsLock(&DeletedRecordings);
+      Del(recording, false);
+-     char *ext = strrchr(recording->FileName(), '.');
++     // wtf?
++     char *ext = strrchr(const_cast<char*>(recording->FileName()), '.');
+      if (ext) {
+         strncpy(ext, DELEXT, strlen(ext));
+         recording->fileSizeMB = DirSizeMB(recording->FileName());
+Index: vdr-1.6.0/svdrp.c
+===================================================================
+--- vdr-1.6.0.orig/svdrp.c
++++ vdr-1.6.0/svdrp.c
+@@ -736,7 +736,7 @@ void cSVDRP::CmdGRAB(const char *Option)
+      char *strtok_next;
+      FileName = strtok_r(p, delim, &strtok_next);
+      // image type:
+-     char *Extension = strrchr(FileName, '.');
++     const char *Extension = strrchr(FileName, '.');
+      if (Extension) {
+         if (strcasecmp(Extension, ".jpg") == 0 || strcasecmp(Extension, ".jpeg") == 0)
+            Jpeg = true;
+@@ -796,12 +796,12 @@ void cSVDRP::CmdGRAB(const char *Option)
+      if (FileName) {
+         if (grabImageDir) {
+            cString s;
+-           char *slash = strrchr(FileName, '/');
++           char *slash = strrchr(const_cast<char*>(FileName), '/');
+            if (!slash) {
+               s = AddDirectory(grabImageDir, FileName);
+               FileName = s;
+               }
+-           slash = strrchr(FileName, '/'); // there definitely is one
++           slash = strrchr(const_cast<char*>(FileName), '/'); // there definitely is one
+            *slash = 0;
+            char *r = realpath(FileName, RealFileName);
+            *slash = '/';
diff --git a/src/patches/vdr-plugin-epgsearch-gcc44.patch b/src/patches/vdr-plugin-epgsearch-gcc44.patch
new file mode 100644 (file)
index 0000000..2a92a3b
--- /dev/null
@@ -0,0 +1,78 @@
+diff -urNad vdr-plugin-epgsearch-0.9.24~/epgsearchsvdrp.c vdr-plugin-epgsearch-0.9.24/epgsearchsvdrp.c
+--- vdr-plugin-epgsearch-0.9.24~/epgsearchsvdrp.c      2008-04-13 20:53:44.000000000 +0200
++++ vdr-plugin-epgsearch-0.9.24/epgsearchsvdrp.c       2009-10-26 20:27:07.000000000 +0100
+@@ -742,12 +742,13 @@
+    {
+       if (*Option) 
+       {
+-         char* pipePos = strchr(Option, '|');
++         const char* pipePos = strchr(Option, '|');
+          if (pipePos)
+          {
+-            *pipePos = 0;
+-            const char* oldName = Option;
+-            const char* newName = pipePos+1;
++            int index = pipePos - Option;
++            char* oldName = strdup(Option);
++            *(oldName + index) = 0;
++            const char* newName = oldName + index + 1;
+             if (strlen(oldName) > 0 && strlen(newName) > 0)
+             {
+                cChannelGroup *changrp = ChannelGroups.GetGroupByName(Option);
+@@ -769,15 +770,18 @@
+                   }
+                   ChannelGroups.Save();
+                   SearchExts.Save();
++                  free(oldName);
+                   return cString::sprintf("renamed channel group '%s' to '%s'", oldName, newName);
+                }                  
+                else
+                {
++                  free(oldName);
+                   ReplyCode = 901;
+                   return cString::sprintf("channel group '%s' not defined", Option);
+                }
+             }
++            free(oldName);
+          }
+          ReplyCode = 901;
+          return cString("Error in channel group parameters"); 
+diff -urNad vdr-plugin-epgsearch-0.9.24~/epgsearchtools.c vdr-plugin-epgsearch-0.9.24/epgsearchtools.c
+--- vdr-plugin-epgsearch-0.9.24~/epgsearchtools.c      2008-04-13 20:53:42.000000000 +0200
++++ vdr-plugin-epgsearch-0.9.24/epgsearchtools.c       2009-10-26 20:27:07.000000000 +0100
+@@ -743,7 +743,7 @@
+    while(tmp)
+    {
+       // extract a single line
+-      char* lf = strchr(tmp, '\n');
++      const char* lf = strchr(tmp, '\n');
+       char* line = NULL;
+       if (lf)
+       line = strndup(tmp, lf-tmp);
+diff -urNad vdr-plugin-epgsearch-0.9.24~/menu_dirselect.c vdr-plugin-epgsearch-0.9.24/menu_dirselect.c
+--- vdr-plugin-epgsearch-0.9.24~/menu_dirselect.c      2008-04-13 20:53:44.000000000 +0200
++++ vdr-plugin-epgsearch-0.9.24/menu_dirselect.c       2009-10-26 20:27:07.000000000 +0100
+@@ -83,7 +83,7 @@
+       return 1;
+     do
+     {
+-      char* pos = strchr(szDir, '~');
++      const char* pos = strchr(szDir, '~');
+       if (pos)
+       {
+           iLevel++;
+diff -urNad vdr-plugin-epgsearch-0.9.24~/searchtimer_thread.c vdr-plugin-epgsearch-0.9.24/searchtimer_thread.c
+--- vdr-plugin-epgsearch-0.9.24~/searchtimer_thread.c  2008-04-28 18:22:31.000000000 +0200
++++ vdr-plugin-epgsearch-0.9.24/searchtimer_thread.c   2009-10-26 20:27:28.000000000 +0100
+@@ -565,8 +565,8 @@
+    if (!isempty(aux))
+    {
+       tmpaux = strdup(aux);
+-      char* begin = strstr(aux, "<epgsearch>");
+-      char* end = strstr(aux, "</epgsearch>");
++      const char* begin = strstr(aux, "<epgsearch>");
++      const char* end = strstr(aux, "</epgsearch>");
+       if (begin && end)
+       {
+          if (begin == aux) strcpy(tmpaux, ""); else strn0cpy(tmpaux, aux, begin-aux+1); 
diff --git a/src/patches/w_scan-ipfire.patch b/src/patches/w_scan-ipfire.patch
deleted file mode 100644 (file)
index 69ad359..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-diff -Naur w_scan_start.sh w_scan_start.sh
---- w_scan_start.sh    2008-01-05 19:58:44.000000000 +0100
-+++ w_scan_start.sh    2008-05-14 18:29:21.000000000 +0200
-@@ -6,11 +6,11 @@
- # - 20060812: first version
- # - 20060822: many improvements
- # cu@vdr-portal
--#
-+# - 20080514: patches for ipfire by arne_f@ipfire.org
- #######################################################
- umask 022
--export PATH="$(pwd):/bin:/usr/bin:/sbin:/usr/sbin"
-+export PATH="$(pwd):/bin:/usr/bin:/sbin:/usr/sbin:/opt/vdr/bin"
- DATE="$(date +%Y)$(date +%m)$(date +%d)" # $DATE == "YYYYMMDD", i.e. 20060710
- W_SCAN=$(which w_scan 2>/dev/null)
- UDEVSTART=$(which udevstart)
-@@ -224,7 +224,7 @@
-               echo "Checking for ct-vdr style startscript.."
-               if [ -e /etc/init.d/vdr ]; then                 # c't-vdr
-                       echo_yes
--                      $(/etc/init.d/vdr stop)
-+                      /etc/init.d/vdr stop
-                       stopped=true
-               else
-                       echo_no
-@@ -375,7 +375,7 @@
-       # which generic dvb modules should be always loaded?
-       MODULES_TO_LOAD="videodev v4l1_compat \
--                      v4l2_common video_buf dvb_core ves1820 \
-+                      v4l2_common dvb_core ves1820 \
-                       dvb_ttpci \
-                       budget_ci budget_av budget_ci budget "
-@@ -661,9 +661,11 @@
-       echo -e -n $NORMAL
-       echo -e -n "\\033[1;34m"
-       if [ ${WHAT_TO_SCAN:0:2} != 0 ]; then
-+              echo ":->W_SCAN $DATE DVB-T" >> channels.conf-$DATE
-               $W_SCAN >> channels.conf-$DATE
-       fi
--      if [ ${WHAT_TO_SCAN:3:2} != 0 ]; then 
-+      if [ ${WHAT_TO_SCAN:3:2} != 0 ]; then
-+              echo ":->W_SCAN $DATE DVB-C" >> channels.conf-$DATE 
-               $W_SCAN -fc >> channels.conf-$DATE
-       fi 
-       echo -e -n $NORMAL
-@@ -671,55 +673,34 @@
- function CopyConf ()
- {
--      if [ -s channels.conf-$DATE ]; then
--              clear
--              echo -e -n $SUCCESS
--              echo "****************************************************************"
--              echo "*                                                              *"
--              echo "* w_scan is done.                                              *"
--              echo -e "* The output file is called "$FAILURE"channels.conf-$DATE"$SUCCESS".            *"
--              echo "* Should I copy this to default location for you? [y/n]        *"
--              echo "*                                                              *"
--              echo "****************************************************************"
--              echo -e -n $NORMAL && tput sgr0
--              read RESPONSE
--              echo -e -n $NORMAL
--              if [ "$RESPONSE" != "y" ]; then
--                      echo "Copying channels.conf skipped - okay."
--                      echo "The channels.conf generated can be found at"
--                      echo -n -e "\\033[1;34m"
--                      echo "$(pwd)/channels.conf-$DATE"
--                      echo ""
--                      echo -e -n $NORMAL
--              else
--                      if [ -d /etc/vdr ]; then
--                              mv /etc/vdr/channels.conf /etc/vdr/channels.conf-backup$DATE
--                              cp channels.conf-$DATE /etc/vdr/channels.conf
--                      fi
--                      if [ -d /var/lib/vdr ]; then
--                              mv /var/lib/vdr/channels.conf /var/lib/vdr/channels.conf-backup$DATE
--                              cp channels.conf-$DATE /var/lib/vdr/channels.conf
--                      fi                      
--              fi
--        else
--              clear
--              echo -e -n $FAILURE
--              echo "****************************************************************"
--              echo "*                                                              *"
--              echo "* Something went wrong. The channels.conf generated is *EMPTY*!*"
--              echo "* To analyze your problem I recommend the command              *"
--              echo "*    './w_scan 2>&1 | tee w_scan.log-dvbt &&                   *"
--              echo "*     ./w_scan -fc 2>&1 | tee w_scan.log-dvbc'                 *"
--              echo "*                                                              *"
--              echo "* w_scan will report the problem into the logfiles             *"
--              echo "* w_scan.log-dvbt and w_scan.log-dvbc.                         *"
--              echo "*                                                              *"
--              echo "* PRESS ANY KEY TO CONTINUE                                    *"
--              echo "****************************************************************"
-+      echo -e -n $SUCCESS
-+      echo "****************************************************************"
-+      echo "*                                                              *"
-+      echo "* w_scan is done.                                              *"
-+      echo -e "* The output file is called "$FAILURE"channels.conf-$DATE"$SUCCESS".            *"
-+      echo "* Should I copy this to default location for you? [y/n]        *"
-+      echo "*                                                              *"
-+      echo "****************************************************************"
-+      echo -e -n $NORMAL && tput sgr0
-+      read RESPONSE
-+      echo -e -n $NORMAL
-+      if [ "$RESPONSE" != "y" ]; then
-+              echo "Copying channels.conf skipped - okay."
-+              echo "The channels.conf generated can be found at"
-+              echo -n -e "\\033[1;34m"
-+              echo "$(pwd)/channels.conf-$DATE"
-+              echo ""
-               echo -e -n $NORMAL
--              read
-+      else
-+              if [ -d /opt/vdr/etc ]; then
-+                      mv /opt/vdr/etc/channels.conf /opt/vdr/etc/channels.conf-backup$DATE
-+                      cp channels.conf-$DATE /opt/vdr/etc/channels.conf
-+              fi
-+              if [ -d /var/lib/vdr ]; then
-+                      mv /var/lib/vdr/channels.conf /var/lib/vdr/channels.conf-backup$DATE
-+                      cp channels.conf-$DATE /var/lib/vdr/channels.conf
-+              fi                      
-       fi
--
- }
- # the program itself.
index 8c187d51d1bdb7a3a6d282d754ea63a9a62ba35c..cc063a7a2b2ddc3a11af741d6bec4a3042c68957 100644 (file)
@@ -9,7 +9,7 @@
 
 # shell variables must consist of alphanumeric characters and underscores,
 # and begin with an alphabetic character or underscore.
-VARNAME='[A-Za-z_][A-zA-z0-9_]*'
+VARNAME='[A-Za-z_][A-Za-z0-9_]*'
 
 # For the assigned value we only accept a limited number of characters - none
 # of which are shell metachars
index f46a630735aaf6f4ad3768794fa77db771b387dd..b208bbb1d1ab5f145774fbd638faeebf7d92e607 100644 (file)
@@ -11,7 +11,7 @@ case "$1" in
                done
                ;;
        partitions)
-               cat /proc/partitions | awk '{print $4 " " $3 }' | grep -v name | grep -v "^[:space:]*$" | \
+               cat /proc/partitions | awk '{print $4 " " $3 }' | grep -v name | grep -v "^[[:space:]]*$" | \
                        while read device size; do
                                [ -z "${device}" ] && continue
                                echo "${device};${size};$(blkid -c /dev/null -s UUID -o value /dev/${device});"
diff --git a/src/scripts/vpn-watch b/src/scripts/vpn-watch
deleted file mode 100755 (executable)
index 7eae873..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-#!/usr/bin/perl 
-##################################################
-#####     VPN-Watch.pl     Version 0.7       #####
-##################################################
-#                                                #
-#   VPN-Watch is part of the IPFire Firewall     #
-#                                                #
-##################################################
-
-use strict;
-
-require '/var/ipfire/general-functions.pl';
-my @vpnsettings;
-my $i = 0;
-my $file = "/var/run/vpn-watch.pid";
-my $debug = 0;
-
-if ( -e $file ){
-  logger("There my be another vpn-watch runnning because $file exists, vpn-watch will try kill the process.");
-  open(FILE, "<$file");
-    my $PID = <FILE>;
-    close(FILE);
-    system("kill -9 $PID");
-  }
-
-system("echo $$ > $file");
-my $round=0;
-while ( $i == 0){
-  if ($debug){logger("We will wait 60 seconds before next action.");}
-    sleep(60);
-
-  $round++;
-
-   # Reset roundcounter after 10 min. To do established check.
-  if ($round > 9) { $round=0; }
-
-  if (open(FILE, "<${General::swroot}/vpn/config")) {    @vpnsettings = <FILE>;
-    close(FILE);
-    unless(@vpnsettings) {exit 1;}
-  }
-
-my $status = `ipsec status`;
-foreach (@vpnsettings){
- my @settings = split(/,/,$_);
-  
-  chomp($settings[30]);
-  if ($settings[27] ne 'RED'){next;}
-  if ($settings[4] ne 'net'){next;}  
-  if ($settings[1] ne 'on'){next;}chomp($settings[29]);
-  if ($settings[29] ne 'on'){next;}
-  my $remotehostname = $settings[11];
-  
-  if ($debug){logger("Checking connection to $remotehostname.");}
-  
-  my $remoteip = `/usr/bin/ping -c 1 $remotehostname 2>/dev/null | head -n1 | awk '{print \$3}' | tr -d '()' | tr -d ':'`;chomp($remoteip);
-  if ($remoteip eq ""){next;if ($debug){logger("Unable to resolve $remotehostname.");}}
-  my $ipmatch= `echo "$status" | grep '$remoteip' | grep '$settings[2]'`;
-  my $established= `echo "$status" | grep '$settings[2]' | grep -e 'erouted;' -e 'INSTALLED'`;
-  my $known= `echo "$status" | grep '$settings[2]'`;
-
-  if ( $ipmatch eq '' && $known ne '' ){
-    logger("Remote IP for host $remotehostname($remoteip) has changed, restarting ipsec.");
-    system("/usr/local/bin/ipsecctrl S $settings[0]");
-    $round=0;
-  }
-
-  if ($debug){logger("Round=".$round." and established=".$established);}
-
-  if ( ($round == 0) && ($established eq '')) {
-    logger("Connection to $remotehostname($remoteip) not erouted, restarting ipsec.");
-    system("/usr/local/bin/ipsecctrl S $settings[0]");
-    $round=0;
-
-  }
- }
- if ($debug){logger("All connections may be fine nothing was done.");}
-}
-
-sub logger {
-        my $log = shift;
-        system("logger -t vpnwatch \"$log\"");
-}
diff --git a/src/stripper b/src/stripper
new file mode 100755 (executable)
index 0000000..2b4feaf
--- /dev/null
@@ -0,0 +1,57 @@
+#!/tools/bin/bash
+
+dirs=""
+excludes="/dev /proc /sys /run"
+
+while [ $# -gt 0 ]; do
+       case "${1}" in
+               --exclude=*)
+                       excludes="${excludes} ${1#*=}"
+                       ;;
+               *)
+                       dirs="${dirs} ${1}"
+                       ;;
+       esac
+       shift
+done
+
+function _strip() {
+       local file=${1}
+       local cmd="${STRIP-strip}"
+
+       local exclude l
+       for exclude in ${excludes}; do
+               l=${#exclude}
+               if [ "${file:0:${l}}" = "${exclude}" ]; then
+                       return 0
+               fi
+       done
+
+       case "$(file -bi ${file})" in
+               application/x-sharedlib*|application/x-archive*)
+                       cmd="${cmd} --strip-debug --remove-section=.comment --remove-section=.note"
+                       ;;
+               *)
+                       cmd="${cmd} --strip-unneeded"
+                       ;;
+       esac
+
+       echo "Stripping ${file}..."
+       ${cmd} ${file}
+}
+
+for dir in ${dirs}; do
+       # Strip shared objects.
+       find ${dir} -type f \( -perm -0100 -or -perm -0010 -or -perm -0001 \) \
+               | file -N -f - | sed -n -e 's/^\(.*\):[   ]*.*ELF.*, not stripped/\1/p' |
+               while read file; do
+                       _strip ${file}
+               done
+
+       # Strip static archives.
+       find ${dir} -name \*.a -a -exec file {} \; \
+               | grep 'current ar archive' | sed -n -e 's/^\(.*\):[    ]*current ar archive/\1/p' |
+               while read file; do
+                       _strip ${file}
+               done
+done
index 783b46e141b5ba02a1626a5c5794554abe77bd91..5af0b4b8472d474d4dde7688207a9f49808ac0e8 100644 (file)
@@ -220,15 +220,17 @@ get_pkg_ver()
 if [ 'x86_64' = $MACHINE -o 'i686' = $MACHINE -o 'i586' = $MACHINE ]; then
        echo "`date -u '+%b %e %T'`: Machine is iX86 (or equivalent)" >> $LOGFILE
        MACHINE=i586
+       CROSSTARGET=${MACHINE}-cross-linux-gnu
        BUILDTARGET=i586-pc-linux-gnu
        CFLAGS="-O2 -march=i586 -pipe -fomit-frame-pointer"
        CXXFLAGS="-O2 -march=i586 -pipe -fomit-frame-pointer"
        C2FLAGS="-O2 -march=i586 -mtune=i586 -pipe -fomit-frame-pointer"
        CXX2FLAGS="-O2 -march=i586 -mtune=i586 -pipe -fomit-frame-pointer"
-elif [ 'armv5tejl' = $MACHINE -o 'armv5tel' = $MACHINE -o 'armv7l' = $MACHINE ]; then
+elif [ 'armv5tejl' = $MACHINE -o 'armv5tel' = $MACHINE -o 'armv6l' = $MACHINE -o 'armv7l' = $MACHINE ]; then
        echo "`date -u '+%b %e %T'`: Machine is ARM (or equivalent)" >> $LOGFILE
        MACHINE=armv5tel
        MACHINE_TYPE=arm
+       CROSSTARGET=${MACHINE}-cross-linux-gnueabi
        BUILDTARGET=${MACHINE}-unknown-linux-gnueabi
        CFLAGS="-O2 -march=armv5te -mfloat-abi=soft -fomit-frame-pointer -pipe"
        CXXFLAGS="$CFLAGS"
@@ -291,16 +293,17 @@ entershell() {
        fi
 
        echo "Entering to a shell inside LFS chroot, go out with exit"
-       $linux32 chroot $LFS /tools/bin/env -i HOME=/root TERM=$TERM PS1='\u:\w\$ ' \
-               PATH=/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \
+       chroot $LFS /tools/bin/env -i HOME=/root TERM=$TERM PS1='\u:\w\$ ' \
+               PATH=/tools/ccache/bin:/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \
                VERSION=$VERSION CONFIG_ROOT=$CONFIG_ROOT \
                NAME="$NAME" SNAME="$SNAME" SLOGAN="$SLOGAN" \
                CFLAGS="$CF2LAGS" CXXFLAGS="$CXX2FLAGS" \
                CCACHE_DIR=/usr/src/ccache \
                CCACHE_COMPRESS=1 \
-               CCACHE_HASHDIR=1 \
+               CCACHE_COMPILERCHECK="none" \
                KVER=$KVER \
                BUILDTARGET="$BUILDTARGET" \
+               CROSSTARGET="${CROSSTARGET}" \
                MACHINE="$MACHINE" \
                MACHINE_TYPE="$MACHINE_TYPE" \
                KGCC="ccache /usr/bin/gcc" \
@@ -382,13 +385,13 @@ lfsmake1() {
        local PKG_TIME_START=`date +%s`
 
        cd $BASEDIR/lfs && make -f $*   BUILDTARGET=$BUILDTARGET \
+                                               CROSSTARGET="${CROSSTARGET}" \
                                                MACHINE=$MACHINE \
                                                MACHINE_TYPE=$MACHINE_TYPE \
                                                LFS_BASEDIR=$BASEDIR \
                                                ROOT=$LFS \
                                                KVER=$KVER \
                                                MAKETUNING=$MAKETUNING \
-                                               $(fake_environ) \
                                                install >> $LOGFILE 2>&1
        local COMPILE_SUCCESS=$?
        local PKG_TIME_END=`date +%s`
@@ -408,16 +411,19 @@ lfsmake2() {
        [ $? == 1 ] && return 0
 
        local PKG_TIME_START=`date +%s`
-       $linux32 chroot $LFS /tools/bin/env -i  HOME=/root \
+       chroot $LFS /tools/bin/env -i   HOME=/root \
                                                TERM=$TERM PS1='\u:\w\$ ' \
-                                               PATH=/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \
+                                               PATH=/tools/ccache/bin:/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \
                                                VERSION=$VERSION \
                                                CONFIG_ROOT=$CONFIG_ROOT \
                                                NAME="$NAME" SNAME="$SNAME" SLOGAN="$SLOGAN" \
                                                CFLAGS="$C2FLAGS" CXXFLAGS="$CXX2FLAGS" \
-                                               CCACHE_DIR=/usr/src/ccache CCACHE_COMPRESS=1 CCACHE_HASHDIR=1 \
+                                               CCACHE_DIR=/usr/src/ccache CCACHE_COMPRESS=1 \
+                                               CCACHE_COMPILERCHECK="none" \
                                                KVER=$KVER MAKETUNING=$MAKETUNING \
-                                               BUILDTARGET="$BUILDTARGET" MACHINE="$MACHINE" \
+                                               BUILDTARGET="$BUILDTARGET" \
+                                               CROSSTARGET="${CROSSTARGET}" \
+                                               MACHINE="$MACHINE" \
                                                MACHINE_TYPE="$MACHINE_TYPE" \
                                                $(fake_environ) \
                                                /tools/bin/bash -x -c "cd /usr/src/lfs && \
@@ -440,17 +446,20 @@ ipfiremake() {
        [ $? == 1 ] && return 0
 
        local PKG_TIME_START=`date +%s`
-       $linux32 chroot $LFS /tools/bin/env -i  HOME=/root \
+       chroot $LFS /tools/bin/env -i   HOME=/root \
                                                TERM=$TERM PS1='\u:\w\$ ' \
-                                               PATH=/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin \
+                                               PATH=/tools/ccache/bin:/bin:/usr/bin:/sbin:/usr/sbin \
                                                VERSION=$VERSION \
                                                CORE=$CORE \
                                                CONFIG_ROOT=$CONFIG_ROOT \
                                                NAME="$NAME" SNAME="$SNAME" SLOGAN="$SLOGAN" \
                                                CFLAGS="$C2FLAGS" CXXFLAGS="$CXX2FLAGS" \
-                                               CCACHE_DIR=/usr/src/ccache CCACHE_COMPRESS=1 CCACHE_HASHDIR=1 \
+                                               CCACHE_DIR=/usr/src/ccache CCACHE_COMPRESS=1 \
+                                               CCACHE_COMPILERCHECK="none" \
                                                KVER=$KVER MAKETUNING=$MAKETUNING \
-                                               BUILDTARGET="$BUILDTARGET" MACHINE="$MACHINE" \
+                                               BUILDTARGET="$BUILDTARGET" \
+                                               CROSSTARGET="${CROSSTARGET}" \
+                                               MACHINE="$MACHINE" \
                                                MACHINE_TYPE="$MACHINE_TYPE" \
                                                $(fake_environ) \
                                                /bin/bash -x -c "cd /usr/src/lfs && \
@@ -475,14 +484,17 @@ ipfiredist() {
        local PKG_TIME_START=`date +%s`
        chroot $LFS /tools/bin/env -i   HOME=/root \
                                        TERM=$TERM PS1='\u:\w\$ ' \
-                                       PATH=/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin \
+                                       PATH=/tools/ccache/bin:/bin:/usr/bin:/sbin:/usr/sbin \
                                        VERSION=$VERSION \
                                        CONFIG_ROOT=$CONFIG_ROOT \
                                        NAME="$NAME" SNAME="$SNAME" SLOGAN="$SLOGAN" \
                                        CFLAGS="$C2FLAGS" CXXFLAGS="$CXX2FLAGS" \
-                                       CCACHE_DIR=/usr/src/ccache CCACHE_COMPRESS=1 CCACHE_HASHDIR=1 \
+                                       CCACHE_DIR=/usr/src/ccache CCACHE_COMPRESS=1 \
+                                       CCACHE_COMPILERCHECK="none" \
                                        KVER=$KVER \
-                                       BUILDTARGET="$BUILDTARGET" MACHINE="$MACHINE" \
+                                       BUILDTARGET="$BUILDTARGET" \
+                                       CROSSTARGET="${CROSSTARGET}" \
+                                       MACHINE="$MACHINE" \
                                        MACHINE_TYPE="$MACHINE_TYPE" \
                                        $(fake_environ) \
                                        /bin/bash -x -c "cd /usr/src/lfs && \
@@ -505,20 +517,22 @@ installmake() {
        [ $? == 1 ] && return 0
 
        local PKG_TIME_START=`date +%s`
-       $linux32 chroot $LFS /tools/bin/env -i  HOME=/root \
+       chroot $LFS /tools/bin/env -i   HOME=/root \
                                                TERM=$TERM PS1='\u:\w\$ ' \
-                                               PATH=/opt/i586-uClibc/i586-linux-uclibc/bin:/opt/i586-uClibc/bin:/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin \
+                                               PATH=/tools/ccache/bin:/bin:/usr/bin:/sbin:/usr/sbin \
                                                VERSION=$VERSION \
                                                CONFIG_ROOT=$CONFIG_ROOT \
-                                               LFS_PASS="install" \
                                                NAME="$NAME" SNAME="$SNAME" SLOGAN="$SLOGAN" \
                                                CFLAGS="-Os" CXXFLAGS="-Os" \
                                                CCACHE_DIR=/usr/src/ccache CCACHE_COMPRESS=1 CCACHE_HASHDIR=1 \
                                                KVER=$KVER \
-                                               BUILDTARGET="$BUILDTARGET" MACHINE="$MACHINE" \
+                                               BUILDTARGET="$BUILDTARGET" \
+                                               CROSSTARGET="${CROSSTARGET}" \
+                                               MACHINE="$MACHINE" \
                                                MACHINE_TYPE="$MACHINE_TYPE" \
-                   /bin/bash -x -c "cd /usr/src/lfs && \
-                   make -f $* LFS_BASEDIR=/usr/src install" >>$LOGFILE 2>&1
+                                               LD_LIBRARY_PATH=/tools/lib \
+                   /tools/bin/bash -x -c "cd /usr/src/lfs && \
+                   /tools/bin/make -f $* LFS_BASEDIR=/usr/src install" >>$LOGFILE 2>&1
 
        local COMPILE_SUCCESS=$?
        local PKG_TIME_END=`date +%s`